ccn2001 Slides3 6pp
ccn2001 Slides3 6pp
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 1 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 2
Adapted in part from J. Kurose (Umass)
data link
gi
– flow control
ca
physical
l
network
en
data link
d-
data link
d
physical
tr
network
sp
data link
unicast or multicast delivery: UDP
or
physical
t
application
transport
• Services not available:
network
data link
physical – real-time
– bandwidth guarantees
– reliable multicast
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 5 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 6
1
Multiplexing / demultiplexing Multiplexing / demultiplexing
Multiplexing:
Recall: segment - unit of data Demultiplexing: delivering
exchanged between gathering data from multiple 32 bits
received segments to
transport layer entities app processes, enveloping
correct app layer processes data with header (later used source port # dest port #
– aka TPDU: transport
protocol data unit for demultiplexing)
receiver other header fields
P3 P4 multiplexing/demultiplexing:
application-layer M M
data • based on sender, receiver
application port numbers, IP
segment P1 transport P2
header M addresses application
M network
application application – source, dest port #s in data
segment Ht M transport transport
each segment (message)
network
Hn segment network
– recall: well-known port
numbers for specific
applications TCP/UDP segment format
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 7 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 8
2
UDP: more Error Detection and Correction
• Single bit-errors vs Burst Errors
32 bits
110101 → 100101 vs 100001
Length, in source port # dest port #
• n-bit codeword = m message bits + r check bits
bytes of UDP length checksum
segment, • Hamming Distance = # of different bits
including 1010101
header
1001010
Application
0011111 ⇒ Hamming distance = 5
data • Distance d code = minimum Hamming distance
(message) between any two code words written in the code
• To detect d-bit errors, distance d+1 code required
UDP segment format • To correct d-bit errors, distance 2d+1 code required
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 13 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 14
3
Principles of Reliable Data
UDP Servers
Transfer
• Most UDP servers are “iterative” => a • Important in app., transport, link layers
single server process receives and • top-10 list of important networking topics!
handles incoming requests on a “well-
known” port.
• Can filter client requests based on
incoming IP/port addresses or wild card
filters
• Port numbers may be reused, but packet
is delivered to at most one end-point.
• Queues to hold requests if server busy • Characteristics of unreliable channel will determine
complexity of reliable data transfer protocol (rdt)
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 19 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 20
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 23 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 24
4
Rdt1.0: Reliable Transfer over Rdt2.0: Channel with Bit Errors
a Reliable Channel (cont.)
• Underlying channel may flip bits in
packet
– recall: UDP checksum to detect bit
errors
• The question: how to recover from
errors:
– acknowledgements (ACKs): receiver
explicitly tells sender that pkt received
OK
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 25 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 26
5
Rdt2.0: In Action (no errors) Rdt2.0: In action (error
scenario)
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 35 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 36
6
Rdt2.1: Receiver, Handles
Rdt2.1: Discussion
Garbled ACK/NAKs
Sender:
• seq # added to pkt
• two seq. #’s (0,1) will suffice. Why?
• must check if received ACK/NAK
corrupted
• twice as many states!
– state must “remember” whether
“current” pkt has 0 or 1 seq. #
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 37 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 38
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 41 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 42
7
Mechanisms learnt so far… Rdt3.0: Channels with Errors
• Mechanisms:
– Checksum: detects corruption in pkts & acks
and Loss
– ACK: “packet correctly received” New assumption: underlying channel
– Duplicate ACK: “packet incorrectly received” can also lose packets (data or ACKs)
– Sequence number: identifies packet or ack – What’s the difference, anyway?
• 1-bit sequence number used both in – Checksum, seq. #, ACKs, retransmissions
forward & reverse channel will help, but not enough
• Reliability capabilities achieved:
– An error-free channel Q: how to deal with loss?
– A forward & reverse channel with bit-errors – Sender waits until certain data or ACK
– Detects duplicates of packets/acks lost, then retransmits
– NAKs eliminated – Yuck: drawbacks?
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 43 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 44
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 47 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 48
8
Mechanisms learnt so far…
• Mechanisms: Performance of Rdt3.0
– Checksum: detects corruption in pkts & acks
• rdt3.0 works, but performance stinks!
– ACK: “packet correctly received”
– Duplicate ACK: “packet incorrectly received” • example: 1 Gbps link, 15 ms e2e prop.
– Sequence number: identifies packet or ack delay, 1KB packet:
• 1-bit sequence number used both in forward & 8kb/pkt
Ttransmit = = 8 microsec
reverse channel 10**9 b/sec
– Timeout only at sender fraction of time
=
8 microsec
= 0.00015
Utilization = U =
• Reliability capabilities achieved: sender busy sending 30.016 msec
– An error-free channel
– 1KB pkt every 30 msec -> 33kB/sec thruput
– A forward & reverse channel with bit-errors
over 1 Gbps link
– Detects duplicates of packets/acks
– NAKs eliminated – Problem: network protocol limits use of
– A forward & reverse channel with packet-errors (loss) physical resources!
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 49 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 50
9
Sliding Window Protocols: Efficiency
Pipelined protocols
Ntframe
U=
2tprop+tframe
tframe Data
tprop N
= 2α+1
1 if N>2α+1
Ack
Go-Back-N Go-Back-N
Sender: • ACK(n): ACKs all pkts up to, including
• k-bit seq # in pkt header seq # n - “cumulative ACK”
– Allows upto N = 2k – 1 packets in-flight, – Sender may receive duplicate ACKs
unacked
(see receiver)
• “Window”: limit on # of consecutive unacked pkts
– Robust to losses on the reverse channel
– In GBN, window = N
– Can pinpoint the first packet lost, but
cannot identify blocks of lost packets in
window
• One timer for oldest-in-flight pkt
• Timeout => retransmit pkt “base” and all
higher seq # pkts in window
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 57 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 58
Receiver:
• ACK-only: always send ACK for
correctly-received pkt with highest in-
order seq #
– may generate duplicate ACKs
– need only remember expectedseqnum
– A.k.a. “receiver window”
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 59 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 60
10
GBN: Receiver Extended FSM
• out-of-order pkt:
– discard (don’t buffer) -> no receiver GBN in
buffering! action
– ACK pkt with highest in-order seq #
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 61 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 62
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 65 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 66
11
Selective Repeat Selective repeat
Sender Receiver
Data from above : Pkt n in [rcvbase, rcvbase+N-1]
• if next available seq # in window, send pkt • send ACK(n): “selective ack”
• out-of-order: buffer
• timeout(n):
• in-order: deliver (also deliver buffered, in-
– resend pkt n, restart timer
order pkts), advance window to next not-
• ACK(n) in [sendbase,sendbase+N]: yet-received pkt
– mark pkt n as received pkt n in [rcvbase-N,rcvbase-1]
– if n smallest unACKed pkt, advance window
• ACK(n)
base to next unACKed seq #
otherwise:
• ignore
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 67 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 68
Nak 1
• With Errors: 1
Σ i Pi-1(1-P)
Nr=Σ
=1/(1-P)
• U= (1-P) if N>(1+2α α)
α ) otherwise
N(1-P)/(1+2α
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 69 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 70
12
Reliability Mechanisms: Summary Reliability Mechanisms: Summary
• Checksum: detects corruption in pkts & acks
• Timeout only at sender.
• ACK: “packet correctly received”
– One timer for entire window (go-back-N)
– Duplicate ACK: “packet incorrectly received”
– One timer per pkt (selective repeat)
– Cumulative ACK: acks all pkts upto & incl. seq #
(GBN) • Window: sender and receiver side.
– Selective ACK: acks pkt “n” only (selective repeat) – Limits on what can be sent (or expected to be
received).
• Sequence number: identifies packet or ack
– Window size (W) upto N –1 (Go-back-N)
– 1-bit sequence number used both in forward &
reverse channels – Window size (W) upto N/2 (Selective Repeat)
– k-bit sequence number in both forward & reverse • Buffering
channels. – Only at sender (Go-back-N)
• Let N = 2k – 1 = sequence number space size – Out-of-order buffering at sender & receiver
(Selective Repeat)
Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 73 Rensselaer Polytechnic Institute © Shivkumar Kalvanaraman & © Biplab Sikdar 74
13