CN Final Slides
CN Final Slides
CN Final Slides
N1 190.135.170.160/28
N1 190.135.170.160/28
1 ARP Query
- Laptop1 prepares an ARP packet
- The ARP packet is put into the link layer frame
- The frame is then broadcasted into the
subnetwork
Protocol Types
N1 190.135.170.160/28
2 ARP Response
- The destination host prepares an ARP response
- The ARP response packet is put into the link
layer frame
- The frame is then sent to Laptop0
- Hardware Type
- This field specifies the link-layer protocol type.
Example: Ethernet is 0x0001
- Protocol Type
- This field specifies the internetwork protocol for
which the ARP request is intended.
- For IPv4, this has the value 0x0800
- Hardware length (HLEN)
- Length (in octets) of a hardware address.
Ethernet address length is 6.
- Is ARP a link-layer protocol or a network-layer
- Protocol length (PLEN)
protocol?
- Length (in octets) of internetwork addresses.
- It can be seen as a network-layer protocol as ARP
The internetwork protocol is specified in
packets are encapsulated within a link-layer frame
PTYPE. Example: IPv4 address length is 4.
- It can be seen as a link-layer protocol as ARP
- Operation Code
packets contains link layer addresses
- Specifies the operation that the sender is
- Thus, ARP is a protocol that straddles the boundary
performing: 1 for request, 2 for reply.
between the link layer and network layers
N1 121.234.218.128/26
N6 121.234.218.192/26
Every host is given the information of a router that serves as a default exit path for ip packet travelling
outside the subnetwork
- In particular, the host is given the ip address of the gateway-router interface through which the
gateway router is connected to the subnetwork of which host is a part
- In case Laptop1 has to send an ip packet to a destination which is off the subnetwork, it must first
send it to the default gateway interface
Transport Layer
Client-Server Architecture
- In a client-server architecture, there is an always-on host, called the server which services requests from
many other hosts, called clients.
- The server-host runs the server-application; client-hosts run the client-application
- A classic example is the Web application for which an always-on Web server (server-application)
services requests from browsers (client-application) running on client-hosts
- Reliable Communication
- the problem of reliable communication is of central importance to networking
- The Reliable Communication Goals:
- no transferred data bits are corrupted or lost, and
- all are delivered in the order in which they are sent
- Thus, we are looking for a guaranteed delivery of data to the destination
- TCP accepts the connection and opens a new socket specific to this
Server Side Application: SApp2 connection between CApp2 and SApp2
- This new socket is now identified by the following tuple
- SApp2 is running at server H2 S.P. 345 D.P. 500
- It takes help of TCP for incoming traffic S. IP H1 D. IP H2
- SApp2 runs in always-on mode This marks the end of connection establishment between CApp2 and
- TCP opens a socket for SApp2 process SApp2
and assigns a unique identifier (port
number) - say 500 I Data Transfer
- The incoming traffic for SApp2 must carry - Subsequently, the communication data between CApp2 and SApp2
along this port number - enters/leaves CApp2 through the socket with port number 345, and
- enter/leaves SApp2 through the socket having identifier as the
Client Side Application: CApp2 above 4 tuple
The well-known ports are listed at https://www.iana.org/assignments/
- CApp2 is running at client H1 service-names-port-numbers/service-names-port-numbers.txt
- It takes help of TCP for its communication
to SApp2 running at H2
Flag bits
- URG set to ”1” indicates presence of some
urgent data. The location is given by 16-bit
urgent data pointer field.
- ACK - used for reliable data transfer protocols.
- PSH set to ”1” indicates that the receiver
should pass the data to the upper layer
immediately
- RST, SYN, and FIN are used for TCP
connection establishment and tear down
Kurose
- Step- 1
- The client-side first sends a special TCP segment to the
server-side TCP
- This special segment contains no application-layer data.
- One of the flag bits in this segment’s header, the SYN
bit, is set to 1
- Step- 3
- This special segment is called a SYN segment
- Upon receiving the SYNACK segment, the client also
- Step- 2 allocates buffers and variables to the connection
- Once the IP packet containing the TCP SYN segment - The client host then sends the server yet another
arrives at the server host, the server extracts the SYN segment which acknowledges the server’s
segment, allocates the TCP buffers and variables to the connection-granted segment.
connection, and sends a connection-granted segment
back to the TCP client - The SYN bit, in this segment, is set to ”0”
- The connection-granted segment (referred to as - This segment may carry client-to-server data in the
SYNACK segment) also contains no application-layer segment payload !!
data; the SYN bit is also set to 1
src: Kurose
destHost=’ipAddress’ hostIP=’ ’
port=8728 port=8728
ClientSocket= socket.socket( ServerSocket= socket.socket(
socket.AF_INET,socket.SOCK_STREAM) socket.AF_INET,socket.SOCK_STREAM)
ClientSocket.connect((destHost, port)) ServerSocket.bind((hostIP,port))
query = int(input(”Enter a number: ”)) ServerSocket.listen(1)
ClientSocket.send((str(query)).encode()) (ClientSocket,Address) = ServerSocket.accept()
response = ClientSocket.recv(2048).decode() z = ClientSocket.recv(1024).decode()
print(”Number Squared:”, response) x = int(z)
ClientSocket.close() w = x*x
ClientSocket.send((str(w)).encode())
ClientSocket.close()
À À
Client Server
import socket import socket
destHost=’ipAddress’ hostIP=’ ’
port=8728 port=8728
cs= socket.socket( ss= socket.socket(
socket.AF_INET,socket.SOCK_STREAM) socket.AF_INET,socket.SOCK_STREAM)
cs.connect((destHost, port)) ss.bind((hostIP,port))
query = int(input(”Enter a number: ”)) ss.listen(1)
cs.send((str(query)).encode()) (connection,Address) = ss.accept()
response = cs.recv(2048).decode() z = connection.recv(1024).decode()
print(”Number Squared:”, response) x = int(z)
cs.close() w = x*x
connection.send((str(w)).encode())
connection.close()
FTP 21
SSH 22
Telnet 23
SMTP 25
HTTP 80
HTTPS 443
DHCP request
Host ip address
Subnet mask
- We have learned to assign ip addresses to each Gateway ip
host/interface manually Local DNS server ip
- Can this be done on an auto mode ?
Laptop2 → ALL
Laptop2 → ALL
Network Address Translation (Protocol) : allows a network administrator to use ip addresses for its
hosts in the network which are not globally unique!
- We call these ip addresses (not globally unique) - private ip addresses
- The Internet Assigned Numbers Authority (IANA) has reserved the following three blocks of the IP
address space for private ip addresses:
Source: Kurose
The reliable data transmission goal: a guaranteed delivery of data to the destination
- no transferred data bits are corrupted or lost, and
- all are delivered in the order in which they are sent
- You might need a RDT protocol at the link layer if the source and destination in the same subnetwork !
- You might need a RDT protocol at the transport layer if the source and destination are in different
network !
- IP protocol at the network layer has not implemented any RDT!
- We discuss the problem of RDT as a standalone problem - but use link layer framework for simple
notations!
Reliable
Physical Layer
Unreliable
Reliable
Source Destination
rdt.send() deliver.data()
rdt.ss rdt.rs
Unreliable
Assumptions
No error in data
No frame lose
No out of order frames
Receiver is able to receive data as fast as the sender happens to send data
rdt.send(data) rdt.rcv(frame)
− − − − − − − − − − −− − − − − − − − − − − −−
frame = makeframe(data) data = Extract(frame)
udt.send(frame) deliver.data(data)
rdtA.ss rdtA.rs
No frame lose
Receiver is able
to receive data
rdt.rcv(RcvFrame) ∧ isACK(RcvFrame)
as fast as the − − − − − − − − − − −−
sender happens ⊥
to send data
rdtB.ss
rdt.rcv(RcvFrame) ∧ isError(RcvFrame)
Wait from − − − − − − − − − − −−
start
Layer Below SndFrame = MakeFrame(NAK)
udt.send(SndFrame)
rdt.rcv(RcvFrame) ∧ isErrorFree(RcvFrame)
− − − − − − − − − − −−
data = Extract(RcvFrame)
SndFrame = MakeFrame(ACK)
udt.send(SndFrame)
rdtB.rs
Mahavir Jhawar Computer Networks Ashoka University 170 / 243
Table of Contents
rdt.send(data)
− − − − − − − − − − −−
SndFrame = MakeFrame(0,data, checksum)
udt.send(SndFrame)
rdt.rcv(RcvFrame) ∧ [isNAK(RcvFrame)
Wait for 0call Wait for k isCorrupt(RcvFrame)]
start
from ULayer ACK0/NAK0 − − − − − − − − − − −−
udt.send(SndFrame)
rdt.rcv(RcvFrame) ∧ [isNAK(RcvFrame)
k isCorrupt(RcvFrame)] Wait for Wait for 1call
− − − − − − − − − − −− ACK1/NAK1 from ULayer
udt.send(SndFrame)
rdtC.ss
rdt.rcv(RcvFrame) ∧ [IsErrorFree(RcvFrame)
∧ HasSeq0(RcvFrame)
− − − − − − − − − − −−
rdt.rcv(RcvFrame) ∧ IsCorrupt(RcvFrame) Data = Extract(RcvFrame) rdt.rcv(RcvFrame) ∧ isCorrupt(RcvFrame)
− − − − − − − − − − −− Deliver(Data) − − − − − − − − − − −−
SndFrame = MakeFrame(NAK, Checksum) SndFrame = MakeFrame(ACK, Checksum) SndFrame = MakeFrame(NAK, Checksum)
udt.send(SndFrame) udt.send(SndFrame) udt.send(SndFrame)
rdtC.rs
timeout
Wait for 0call Wait for − − − − − − − − − − −−
start
from ULayer ACK0 udt.send(SndFrame)
StartTimer
rdt.rcv(RcvFrame) ∧ isACK(RcvFrame, 0)
rdt.rcv(RcvFrame) ∧ isACK(RcvFrame, 1) ∧ IsErrorFree(RcvFrame)
∧ IsErrorFree(RcvFrame) − − − − − − − − − − −−
− − − − − − − − − − −− rdt.send(data) StopTimer
StopTimer − − − − − − − − − − −−
SndFrame = MakeFrame(1,data, checksum)
udt.send(SndFrame)
StartTimer
timeout
− − − − − − − − − − −− Wait for Wait for 1call
udt.send(SndFrame) ACK1 from ULayer
StartTimer
rdtD.ss
Definitions (Recall)
Bandwidth The bandwidth of a medium is given by the number of bits that can be transmitted
(read - emitted into the medium) over the medium in one second.
- Throughput ≡ Effective Bandwidth !!
Latency of a Message Latency of a message bn . . . b1 is the amount of time that elapsed from
when b1 got emitted by sender into the medium until bn is received by the receiver
Latency = Transmission time + Propagation time + Queuing time !!
Message Size
Transmission time of a message is equal to
Bandwidth
Propagation time is the time required for a single bit to travel from sender to receiver
Queuing time is set to 0 for our case now
Suppose a link between A and B has bandwidth 1 Mbps and propagation delay 20 milliseconds.
Compute the latency of a 1000-bit size frame.
- Transmission delay = 1000/106 = 1/103 = 1 millisecond
- Propagation delay = 20 milliseconds.
- The latency of a 1000-bit size frame on this link is 21 milliseconds.
1 1 1
- The efficiency of the Stop-and-Wait is given by = = .
1+2T (M/L) 1+2T (106 /8000) 1+0.25T ×103
1
- The later is equal to 4 in this problem.
1 1
- Thus, = 4.
1+0.25T ×103 )
- Suppose that the Stop-and-Wait protocol is used on a link with a bit rate (bandwidth) of 64
kilobits/sec
- Link has 20 milliseconds propagation delay.
- Assume that the transmission time for the acknowledgment and the processing time at nodes are
negligible.
- Compute the minimum frame size in bytes to achieve a link utilization of at least 50%
- We want 1
1+2T (M/L)
≥ 1
2, where T = 20/103 and M = 64 × 103 .
- Solving for L, we get L ≥ 2560 bits = 320 bytes.
A solution: sender is allowed to send multiple frames without waiting for ACK/NAKs
- The technique is known as pipelining
- What are the consequences ?
At the sender’s end
- In Stop-and-wait RDT, the sender would wait for at most one unacknowledged frame
- Here, the sender will be waiting for more than one unacknowledged frames
- This requires more than two sequence numbers 0 and 1 to be used
- Managing out of order ACKs
At the receiver’s end
- Managing out of order frames
Two approaches to pipelining
1 Go-Back-N (GBN)
2 Selective Repeat (SR)
- Are we to run 8 ”timers” (for unacknowledged packets {6, . . . , 13}) each beginning after the
respective packets having left the sender?
- Yes, we do - but there is a constraint here !
If a timeout occurs for the timer of the base packet, then the sender resends all unacknowledged
packets with the sequence numbers lying in [base, nextseqnum − 1]
At any point in the protocol, the Receiver-side view can be summarised as follows:
[` + 1, ` + N]
Source: Kurose
GBN improves on the simple stop-and-wait protocol by allowing the sender to ”fill the pipeline” and
thus avoiding the channel utilisation problem.
- However GBN suffers badly on the following account - a single packet error can cause GBN to
retransmit a large number of packets, unnecessarily.
The Selective Repeat protocol avoid unnecessary retransmission by having the sender retransmit only
those that it suspects were lost or corrupted on way to the receiver.
- This individual retransmission require that the receiver individually acknowledge correctly received
packets
In stop-and-wait protocol, the maximum number of unacknowledged frames at any time was allowed to
be ”one”
- The available sequence numbers are two: ”0” and ”1”
In SR, the window-size is set to N > 1, i.e., the maximum number of unacknowledged frames at any
time was allowed to be ”N”.
- Can the available sequence numbers be limited to N + 1, say {0, 1, 2, . . . , N}??
In SR, the window-size is set to N > 1, i.e., the maximum number of unacknowledged frames at any
time was allowed to be ”N”.
- Can the available sequence numbers be limited to 2N − 1, say {0, 1, 2, . . . , 2N − 2}??
- The answer is No!
- It can be shown that the following bound is necessary
Observation: The above situation could occur as we allowed some of the packets to be delayed long
enough before they are delivered at the receiver.
- In reality, 2N-size sequence number set, for a window of size N, provided it is taken care that a packet
cannot live in the network for longer than some fixed maximum amount of time.
In your system, every file can be accessed if you know - The path to the WebFile is referred to as URI (Uniform
the path to locate it. Resource Identifier)
- For example,
- URIs are a convention for locating files globally
- As the target file exists inside a host, URIs must resolve
˜/Bob/Documents/Pictures/bob-certificate.jpg to the IP address of the host
- For this resolution to be efficient, the URIs must follow
is the path to locate the file bob-certificate.jpg in Bob’s some hierarchical structure
computer.
- Sharing path to a file over a computer network is
similar!!
- Suppose, Bob wants others to be able to access
bob-certificate.jpg and additional 10 files, from any
where, over the network
Problem: Your system is given an URI that it wants to visit over the network to retrieve an object file
The DNS uses large number of servers, organised in a hierarchical fashion and distributed around the
world.
- The mapping of the corresponding IP for a given URI is present in one kind of DNS server; but to
reach that server you trace through several other DNS servers; the trace path is determined by the
hierarchy present in the host name
- There are three classes of DNS servers that are present in a typical trace path
Authoritative DNS Servers Every network must keep its DNS mapping in a DNS server - called its
authoritative DNS server (or Name server).
Top-level domain (TLD) Servers These are responsible for top-level domains. For a given DNS
mapping, an authoritative DNS server, depending on the entry’s top-level domain, would contact a
TLD server who manages a list of authoritative DNS servers who are keeping hostname-to-IP address
of specific top-level domains. Appropriate record is registered with the TLD server.
Root DNS Servers They maintain details of TLD servers.
DNS Records The DNS servers store various types of records, including records that provide
hostname-to-IP address mappings. These are called Resource Records (RRs)
Resource Records Type:
Type Name Value
A Hostname IP address
NS Domain Host name of Authoritative DNS for
the Domain
CNAME Alias host name Canonical host name
MX Alias host name of mail server Canonical host name of mail server
request-header Accept
Accept-Charset
Accept-Encoding
Accept-Language
Authorization
If-Modified-Since Response Header Lines
Proxy-Authorization The response-header fields allow the server to pass
additional information about the response which cannot
. be placed in the Status- Line
.
.
A proxy server is a network entity that satisfies HTTP requests on the behalf of an origin Web server.
A user’s browser can be configured so that all of the user’s HTTP requests are first directed to the
proxy server
- For a HTTP connection between user’s browser and a web server, the browser first established a TCP
connection to the Proxy server and request for the object from the web server.
- The proxy server checks to see if it has a copy of the object stored locally. If it does, it returns the
object within an HTTP response to the client browser.
ICMP, uses the basic support of IP as if it were a higher level protocol, however, ICMP is actually an
integral part of IP, and must be implemented by every IP module.
- The ICMP messages typically report errors in the processing of ip packets.
- No ICMP messages are sent about ICMP messages.
- Also ICMP messages are only sent about errors in handling fragment zero of fragemented ip packets.
- ICMP does not take transport level services
- The data received in the echo message must be returned in the echo reply message.
- The identifier and sequence number may be used by the echo sender to aid in matching the replies
with the echo requests.
- The echoer returns these same values in the echo reply.
- Traceroute is a program that will attempt to - This warning message includes the name of the
identify all the routers in between you and some router and its IP address.
other computer out on the internet - - When this ICMP message arrives back at the
demonstrating the hop-to-hop quality of the source, the source obtains the round-trip time
internet. from the timer and the name and IP address of
- Traceroute is implemented with ICMP the nth router from the ICMP message
messages. - One of the datagrams will eventually make it all
- Traceroute in the source sends a series of the way to the destination host.
ordinary IP datagrams to the destination. - Because this datagram contains a UDP
- Each of these datagrams carries a UDP segment with an unlikely port number, the
segment with an unlikely UDP port number. destination host sends a port unreachable ICMP
- The first of these datagrams has a TTL of 1, message (type 3 code 3) back to the source.
second of 2, the third of 3, and so on. - When the source host receives this particular
- When the nth datagram arrives at the nth ICMP message, it knows it does not need to
router, the nth router observes that the TTL of send additional probe packets.
the datagram has just expired
- According to the rules of the IP protocol, the
router discards the datagram and sends an
ICMP warning message to the source (type 11
code 0).
- So far we have learned network-layer’s - Whenever a sender host (S) sends a packet to a
forwarding function destination host (R) (S and R are present in
- When a packet arrives to a router, the router different networks), the packet is transferred to
indexes a forwarding table and determines the its default router (Source Router ).
link interface to which the packet is to be - The problem of routing a packet from source
directed. host to destination host clearly boils down to
- We now turn our attention to the network the problem of routing the packet from Source
layer’s routing function Router to Destination Router
- The job of routing is to determine good paths The purpose of a routing algorithm is then
(routes), from senders to receivers, through the simple: given a set of routers, with links
network of routers. connecting the routers, a routing algorithm
finds a good path from source router to
destination router.
n
OSPF (Open Shortest Path First) -
Link-state algorithms
Routing in the Internet
Intra-domain Routing
n
Distance-vector algorithms RIP (Routing Information Protocol)
Routing =
Routing in the Internet
n n
Inter-domain Routing Hierarchical Routing BGP (Border Gateway Protocol)
Routing in the Internet
0 Initialization
1 V 0 = {u}
2 for all nodes v
3 if v ∈ NB(u)
4 then Du (v ) = c(u, v )
5 else Du (v ) = ∞
6
7 Loop
8 Find w ∈ V\V0 s.t. Du (w ) is minimum
Input 9 V 0 ← V 0 ∪ {w }
- G = (V , E ), u ∈ V = {v1 , . . . , vn } 10 For each v ∈ NB(w )\V0 , update:
11 Du (v ) ← min Du (v ), Du (w ) + c(w , v )
Output
- [(lcpu→v , Du∗ (v1 )), · · · , (lcpu→vn , Du∗ (vn ))], where 12 untill V0 = V
1
lcpu→v is a least-cost-path from u to vi , and
i
Du∗ (vi ) = cost(lcpu→v ).
i Claim: Du (v ) = Du∗ (v ) if v ∈ V0 .
It runs for (n − 1) iterations satisfying the following:
Step Partial Output
1 [(lcpu→v , Du∗ (vi1 ))]
i1
2 [(lcpu→v , Du∗ (vi1 )), (lcpu→v , Du∗ (vi2 ))]
i1 i2
. .
. .
. .
n-1 [(lcpu→v , Du∗ (vi1 )), . . . , (lcpu→v , Du∗ (vin−1 ))]
i 1 i n−1
0 Initialization
1 V 0 = {u}
2 for all nodes v
3 if v ∈ NB(u)
4 then Du (v ) = c(u, v )
5 else Du (v ) = ∞
6
7 Loop
8 Find w ∈ V\V0 s.t. Du (w ) is minimum
9 N 0 ← N 0 ∪ {w }
10 For each v ∈ NB(w )\V0 , update:
11 Du (v ) ← min Du (v ), Du (w ) + c(w , v )
12 untill V0 = V
N0 Du (v ) Du (w ) Du (x ) Du (y ) Du (z)
u 2 5 1 ∞ ∞
ux 2 4 1 2 ∞
uxy 2 3 1 2 4
uxyv 2 3 1 2 4
uxyvw 2 3 1 2 4
uxyvwz 2 3 1 2 4
0 Initialization
1 For all y ∈ V
2 Dx (y ) = c(x , y ) if y ∈ NB(x )
3 Dx (y ) = ∞ if y ∈ / NB(x )
4 Set D[x ] = [Dx (y )]y ∈V
14 If D[x ] changed
15 Send D[x ] to all w ∈ NB(x )
12 Forever
NEXT-HOP provides a critical link between the inter-AS and intra-AS routing protocols
Network AS-PATH NEXT-HOP
- The NEXT-HOP attribute in a received BGP-route is the
X ASk, . . . , AS2, AS1 ?
ip-address of the ASk-interface from which the BGP-route exited
How BGP advertisements, received over eBGP/iBGP, - An AND operation between NEXTHOP in BGP
cause routing/forwarding tables in Routers to update advertisement and the subnetmask in the forwarding
- e.g., what happens when 1Rd receive the following BGP table entry tells that the NEXTHOP interface is
advertisement from 1Rb (over an iBGP session) present in 110.15.0.0/24
138.16.64.0/22 AS2 110.15.0.2 - The router 1Rd finally adds the following entry in its
forwarding table
- The following is an entry in the forwarding table of 1Rd
as a result of the intra-domain routing (say RIP) Dest. Net. Add. Subnet Mask Next Hope IP
110.15.0.0 255.255.0.0 110.13.0.2
Dest. Net. Add. Subnet Mask Next Hope IP 138.16.64.0 255.255.252.0 110.13.0.2
110.15.0.0 255.255.0.0 110.13.0.2
**refer to the link-costs
Wireless Local Area Network - Physical Layer : In a wired LAN (such as Ethernet)
- Wireless LAN is another LAN technology signals traveled in a guided media
- For Wireless LAN, like any other LAN, we will learn its
physical and link layer technology
- The media is wireless, and it is uniquely defined by a - Also assume, data bits are represented as {−1, 1}
frequency band - Transmit data = d1 d2 . . . dn using FB1 as follows
- The two-fold problem:
data bits Encoding di , (c11 , c12 , . . . , c1m )
d1 (z11 , . . . , z1m ) = (d1 c11 , . . . , d1 c1m )
d2 (z21 , . . . , z2m ) = (d2 c11 , . . . , d2 c1m )
. .
. .
. .
dn (zn1 , . . . , znm ) = (dn c11 , . . . , dn c1m )
- D = (d1 d2 . . . dn ) → Z =
(z11 . . . z1m z21 . . . z2m · · · zn1 . . . znm )
- Encode Z using FB1 and transmit the resulting signal
- Problem#1 - MAC problem - If no interference, the receiver gets correct signal,
- Problem#2 - Media Interference Problem (not an issue extracts Z and finally extracts D as follows:
for wired LANs) Encoded bits Decoding
- Addressing Problem#2 z11 c11 +···+z1m c1m
- Assume hosts are transmitting in one of the three (z11 , . . . , z1m ) m
= d1
z21 c11 +···+z2m c1m
distinct frequency bands FB1, FB2, and FB3 (z21 , . . . , z2m ) m
= d2
- We therefore have three media in place. . .
- To each band, associate the following: . .
. .
FB1 C1 = (c11 , c12 , . . . , c1m ) zn1 c11 +···+znm c1m
FB2 C2 = (c21 , c22 , . . . , c2m ) where (zn1 , . . . , znm ) m
= dn
FB3 C3 = (c31 , c32 , . . . , c3m )
cij ∈ {−1, 1}
- Assume that hCi , Cj i = 0
The case of the Interference - A receiver in FB1 band will reconstruct the original
data D from Z ∗ as follows:
- Some other host, at the same time, happens to transmit
data D 0 = (d10 , . . . , dn0 ) using the frequency band FB2 - Reconstruction of the bit d1
- Encoding: z ∗ c11 +···+z ∗ c1m
11 1m
D 0 → Z 0 = (z11
0 0
. . . z1m 0
z21 0
. . . z2m 0
· · · zn1 0
. . . znm ) m
z 0 c11 +···+z 0 c1m
where Zij0 = di0 c2j z c +···+z c
= 11 11 m 1m 1m + 11 1m
m
- Signals for both Z and Z 0 are in propagation and 0 0
d c21 c11 +···+d c2m c1m
suppose they collide = d1 + 1 m
1