1 cse 524: lecture 7 transport layer functions. 2 administrative homework #2 out see
DESCRIPTION
3 Where we’re at… Internet architecture and history Internet protocols in practice Application layer Transport layer Network layer Data-link layer Physical layerTRANSCRIPT
![Page 1: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/1.jpg)
1
CSE 524: Lecture 7
Transport layer functions
![Page 2: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/2.jpg)
2
Administrative
• Homework #2 out• See
http://www.cse.ogi.edu/class/cse524/homework.html
![Page 3: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/3.jpg)
3
Where we’re at…• Internet architecture and history
• Internet protocols in practice
• Application layer
• Transport layer
• Network layer
• Data-link layer
• Physical layer
![Page 4: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/4.jpg)
4
Transport layer outline
• Transport layer functions• Specific Internet transport layers
![Page 5: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/5.jpg)
5
Transport Layer
• provide logical communication between app’ processes running on different hosts
• transport protocols run in end systems
• transport vs network layer services:
• network layer: data transfer between end systems
• transport layer: data transfer between processes – relies on, enhances, network
layer services
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
![Page 6: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/6.jpg)
6
Transport Layer Functions
• Demux to upper layer• Quality of service• Security• Delivery semantics• Flow control• Congestion control• Reliable data transfer
![Page 7: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/7.jpg)
7
applicationtransportnetwork
M P2applicationtransportnetwork
TL: Demux to upper layer (application)
Recall: segment - unit of data exchanged between transport layer entities – aka TPDU: transport
protocol data unit receiver
HtHn
Demultiplexing: delivering received segments to correct app layer processes
segmentsegment M
applicationtransportnetwork
P1M
M MP3 P4
segmentheader
application-layerdata
![Page 8: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/8.jpg)
8
TL: Quality of service
• Provide predictability and guarantees in transport layer– Operating system issues
• Protocol handler scheduling• Buffer resource allocation• Process/application scheduling• Support for signaling (setup, management, teardown)
– In-network issues• L4 (transport) switches, L5 (application) switches, and NAT devices
![Page 9: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/9.jpg)
9
TL: Security
• Provide at the transport level– Secrecy
• No eavesdropping
– Integrity• No man-in-the-middle attacks
– Authenticity• Ensure identity of source
• What is the difference between transport layer security and network layer security?
• Does the end-to-end principle apply?
![Page 10: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/10.jpg)
10
TL: Delivery semantics
• Reliable vs. unreliable• Unicast vs. multicast• Ordered vs. unordered• Any others?
![Page 11: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/11.jpg)
11
TL: Flow control
• Do not allow sender to overrun receiver’s buffer resources– Similar to data-link layer flow control, but done on an end-
to-end basis
![Page 12: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/12.jpg)
12
TL: Congestion control
Congestion:• informally: “too many sources sending too much data too fast
for network to handle” • sources compete for resources inside network• different from flow control!• manifestations:
– lost packets (buffer overflow at routers)– long delays (queueing in router buffers)
![Page 13: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/13.jpg)
13
TL: Congestion
• Why is it a problem?– Sources are unaware of current state of resource– Sources are unaware of each other– In many situations will result in < 1.5 Mbps of
“goodput” (more later)
10 Mbps
100 Mbps
1.5 Mbps
![Page 14: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/14.jpg)
14
TL: Causes/costs of congestion: scenario 1
• two senders, two receivers
• one router, infinite buffers
• no retransmission
• large delays when congested
• maximum achievable throughput
unlimited shared output link buffers
Host Ain : original data
Host B
out
![Page 15: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/15.jpg)
15
TL: Causes/costs of congestion: scenario 2
• one router, finite buffers • sender retransmission of lost packet
finite shared output link buffers
Host A in : original data
Host B
out
'in : original data, plus retransmitted data
![Page 16: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/16.jpg)
16
TL: Causes/costs of congestion: scenario 2 • no loss : (goodput)
• “perfect” retransmission only when loss:
• retransmission of delayed (not lost) packet makes larger (than perfect
case) for same
inout
=
inout>
inout
“costs” of congestion: • more work (retrans) for given “goodput”• unneeded retransmissions: link carries multiple copies of pkt
![Page 17: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/17.jpg)
17
TL: Causes/costs of congestion: scenario 3
• four senders• multihop paths• timeout/retransmit
inQ: what happens as
and increase ?in
finite shared output link buffers
Host Ain : original data
Host B
out
'in : original data, plus retransmitted data
![Page 18: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/18.jpg)
18
TL: Causes/costs of congestion: scenario 3
Another “cost” of congestion: • when packet dropped, any “upstream transmission capacity
used for that packet was wasted!
Host A
Host B
o
u
t
![Page 19: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/19.jpg)
19
TL: Congestion Collapse• Increase in network load results in decrease of useful work done
– Spurious retransmissions of packets still in flight• Classical congestion collapse• Solution: better timers and congestion control
– Undelivered packets• Packets consume resources and are dropped elsewhere in network• Solution: congestion control for ALL traffic
– Fragments• Mismatch of transmission and retransmission units• Solutions:
– Make network drop all fragments of a packet (early packet discard in ATM)– Do path MTU discovery
– Control traffic• Large percentage of traffic is for control• Headers, routing messages, DNS, etc.
– Stale or unwanted packets• Packets that are delayed on long queues• Solution: better congestion control and active queue management
![Page 20: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/20.jpg)
20
TL: Preventing Congestion Collapse• End-host vs. network controlled
– Trust hosts to do the right thing • Hosts adjust rate based on detected congestion (TCP)
– Don’t trust hosts and enforce within network• Network adjusts rates at congestion points
– Scheduling– Queue management
• Hard to prevent global collapse conditions locally
• Implicit vs. explicit rate control– Infer congestion from packet loss or delay
• Increase rate in absence of loss, decrease on loss (TCP Tahoe/Reno)• Increase rate based on delay behavior (TCP Vegas, Packet pair)
– Explicit signaling from network• Congestion notification (DECbit, ECN)• Rate signaling (ATM ABR)
![Page 21: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/21.jpg)
21
TL: Goals for congestion control mechanisms• Use network resources efficiently
– 100% link utilization, 0% packet loss, Low delay– Maximize network power: (throughput/delay) – Efficiency/goodput: Xknee = xi(t)
• Preserve fair network resource allocation– Fairness: (xi)2/n(xi
2)– Max-min fair sharing
• Small flows get all of the bandwidth they require• Large flows evenly share leftover
– Example• 100Mbs link• S1 and S2 are 1Mbs streams, S3 and S4 are infinite greedy streams• S1 and S2 each get 1Mbs, S3 and S4 each get 49Mbs
• Convergence and stability• Distributed operation• Simple router and end-host behavior
![Page 22: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/22.jpg)
22
TL: Congestion Control vs. Avoidance
• Avoidance keeps the system performing at the knee/cliff
• Control kicks in once the system has reached a congested state
Load
Throughput
Load
Delay
![Page 23: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/23.jpg)
23
TL: Basic Control Model
• Of all ways to do congestion, the Internet chooses….– Mainly end-host, window-based congestion control
• Only place to really prevent collapse is at end-host• Reduce sender window when congestion is perceived• Increase sender window otherwise (probe for bandwidth)
– Congestion signaling and detection• Mark/drop packets when queues fill, overflow• Will cover this separately in later lecture
• Given this, how does one design a windowing algorithm which best meets the goals of congestion control?
![Page 24: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/24.jpg)
24
TL: Linear Control
• Many different possibilities for reaction to congestion and probing– Examine simple linear controls– Window(t + 1) = a + b Window(t)
– Different ai/bi for increase and ad/bd for decrease
• Supports various reaction to signals– Increase/decrease additively– Increase/decrease multiplicatively– Which of the four combinations is optimal?
![Page 25: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/25.jpg)
25
TL: Phase plots
• Simple way to visualize behavior of competing connections over time
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
![Page 26: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/26.jpg)
26
TL: Phase plots
• What are desirable properties?• What if flows are not equal?
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2Optimal point
Overload
Underutilization
![Page 27: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/27.jpg)
27
TL: Additive Increase/Decrease
T0
T1
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
• Both X1 and X2 increase/decrease by the same amount over time– Additive increase improves fairness and additive decrease
reduces fairness
![Page 28: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/28.jpg)
28
TL: Muliplicative Increase/Decrease
• Both X1 and X2 increase by the same factor over time– Extension from origin – constant fairness
T0
T1
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
![Page 29: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/29.jpg)
29
TL: Convergence to Efficiency & Fairness
• From any point, want to converge quickly to intersection of fairness and efficiency lines
xH
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
![Page 30: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/30.jpg)
30
TL: What is the Right Choice?
• Constraints limit us to AIMD– AIMD moves towards optimal point
x0
x1
x2
Efficiency Line
Fairness Line
User 1’s Allocation x1
User 2’s Allocation
x2
![Page 31: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/31.jpg)
31
TL: Reliable data transfer
• Error detection, correction• Retransmission• Duplicate detection• Connection integrity
![Page 32: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/32.jpg)
32
TL: Principles of Reliable data transfer
• important in app., transport, link layers
• characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)
![Page 33: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/33.jpg)
33
TL: Reliable data transfer: getting started
sendside
receiveside
rdt_send(): called from above, (e.g., by app.). Passed data to deliver to receiver upper layer
udt_send(): called by rdt,to transfer packet over unreliable channel to
receiver
rdt_rcv(): called when packet arrives on rcv-side of channel
deliver_data(): called by rdt to deliver data to
upper
![Page 34: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/34.jpg)
34
TL: Reliable data transfer: getting started
We’ll:• incrementally develop sender, receiver sides of
reliable data transfer protocol (rdt)• consider only unidirectional data transfer
– but control info will flow on both directions!
• use finite state machines (FSM) to specify sender, receiver
state1 state
2
event causing state transitionactions taken on state transition
state: when in this “state” next state uniquely determined by next
event
eventactions
![Page 35: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/35.jpg)
35
TL: Rdt1.0: reliable transfer over a reliable channel
• underlying channel perfectly reliable– no bit errors– no loss of packets
• separate FSMs for sender, receiver:– sender sends data into underlying channel– receiver read data from underlying channel
![Page 36: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/36.jpg)
36
TL: Rdt2.0: channel with bit errors
• underlying channel may flip bits in packet• the question: how to recover from errors:
– acknowledgements (ACKs): receiver explicitly tells sender that pkt received OK
– negative acknowledgements (NAKs): receiver explicitly tells sender that pkt had errors
– sender retransmits pkt on receipt of NAK
• new mechanisms in rdt2.0 (beyond rdt1.0):– error detection– receiver feedback: control msgs (ACK,NAK) rcvr->sender
![Page 37: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/37.jpg)
37
TL: rdt2.0: FSM specification
sender FSM receiver FSM
![Page 38: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/38.jpg)
38
TL: rdt2.0: operation with no errors
Wait for call from above
snkpkt = make_pkt(data, checksum)udt_send(sndpkt)
extract(rcvpkt,data)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) && isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) && isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) && corrupt(rcvpkt)
Wait for ACK or
NAK
Wait for call from
below
rdt_send(data)
![Page 39: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/39.jpg)
39
TL: rdt2.0: error scenario
Wait for call from above
snkpkt = make_pkt(data, checksum)udt_send(sndpkt)
extract(rcvpkt,data)deliver_data(data)udt_send(ACK)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) && isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) && isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) && corrupt(rcvpkt)
Wait for ACK or
NAK
Wait for call from
below
rdt_send(data)
![Page 40: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/40.jpg)
40
TL: rdt2.0 has a fatal flaw!
What happens if ACK/NAK corrupted?
• sender doesn’t know what happened at receiver!
• can’t just retransmit: possible duplicate
What to do?• sender ACKs/NAKs receiver’s
ACK/NAK? What if sender ACK/NAK lost?
• retransmit, but this might cause retransmission of correctly received pkt!
Handling duplicates: • sender adds sequence
number to each pkt• sender retransmits current
pkt if ACK/NAK garbled• receiver discards (doesn’t
deliver up) duplicate pkt
Sender sends one packet, then waits for receiver response
stop and wait
![Page 41: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/41.jpg)
41
TL: rdt2.1: sender, handles garbled ACK/NAKs
![Page 42: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/42.jpg)
42
TL: rdt2.1: receiver, handles garbled ACK/NAKs
![Page 43: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/43.jpg)
43
TL: rdt2.1: discussion
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. #
Receiver:• must check if received
packet is duplicate– state indicates whether 0 or 1
is expected pkt seq #
• note: receiver can not know if its last ACK/NAK received OK at sender
![Page 44: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/44.jpg)
44
TL: rdt2.2: a NAK-free protocol
• same functionality as rdt2.1, using NAKs only• instead of NAK, receiver sends ACK for last pkt
received OK– receiver must explicitly include seq # of pkt being ACKed
• duplicate ACK at sender results in same action as NAK: retransmit current pkt
![Page 45: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/45.jpg)
45
rdt2.2: sender, receiver fragments
Wait for call 0 from
above
sndpkt = make_pkt(0, data, checksum)udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,1) )
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0)
Wait for ACK
0sender FSMfragment
Wait for 0 from below
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data)deliver_data(data)sndpkt = make_pkt(ACK1, chksum)udt_send(sndpkt)
rdt_rcv(rcvpkt) && (corrupt(rcvpkt) || has_seq1(rcvpkt))udt_send(sndpkt)
receiver FSMfragment
![Page 46: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/46.jpg)
46
TL: rdt3.0: channels with errors and loss
New assumption: underlying channel can also lose packets (data or ACKs)– checksum, seq. #, ACKs,
retransmissions will be of help, but not enough
Q: how to deal with loss?
Approach: sender waits “reasonable” amount of time for ACK
• retransmits if no ACK received in this time
• if pkt (or ACK) just delayed (not lost):– retransmission will be
duplicate, but use of seq. #’s already handles this
– receiver must specify seq # of pkt being ACKed
• requires countdown timer
![Page 47: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/47.jpg)
47
TL: rdt3.0 sender
sndpkt = make_pkt(0, data, checksum)udt_send(sndpkt)start_timer
rdt_send(data)
Wait for
ACK0
rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||isACK(rcvpkt,1) )
Wait for call 1 from
above
sndpkt = make_pkt(1, data, checksum)udt_send(sndpkt)start_timer
rdt_send(data)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0)
rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) ||isACK(rcvpkt,0) )
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1)
stop_timerstop_timer
udt_send(sndpkt)start_timer
timeout
udt_send(sndpkt)start_timer
timeout
rdt_rcv(rcvpkt)
Wait for call 0from
above
Wait for
ACK1
rdt_rcv(rcvpkt)
![Page 48: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/48.jpg)
48
TL: rdt3.0 in action
![Page 49: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/49.jpg)
49
TL: rdt3.0 in action
![Page 50: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/50.jpg)
50
TL: Performance of rdt3.0
• rdt3.0 works, but performance stinks• example: 1 Gbps link, 15 ms e-e prop. delay, 1KB packet:
Ttransmit
= 8kb/pkt10**9 b/sec= 8 microsec
● U sender: utilization – fraction of time sender busy sending● 1KB pkt every 30 msec -> 33kB/sec thruput over 1 Gbps link● network protocol limits use of physical resources!
U sender = .008
30.008 = 0.00027
microseconds
L / R RTT + L / R
=
L (packet length in bits)R (transmission rate, bps) =
![Page 51: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/51.jpg)
51
TL: rdt3.0: stop-and-wait operation
first packet bit transmitted, t = 0
sender receiver
RTT
last packet bit transmitted, t = L / R
first packet bit arriveslast packet bit arrives, send ACK
ACK arrives, send next packet, t = RTT + L / R
U sender = .008
30.008 = 0.00027
microseconds
L / R RTT + L / R
=
![Page 52: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/52.jpg)
52
TL: Pipelined protocols
Pipelining: sender allows multiple, “in-flight”, yet-to-be-acknowledged pkts– range of sequence numbers must be increased– buffering at sender and/or receiver
• Two generic forms of pipelined protocols: go-Back-N, selective repeat
![Page 53: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/53.jpg)
53
TL: Pipelining: increased utilization
first packet bit transmitted, t = 0
sender receiver
RTT
last bit transmitted, t = L / R
first packet bit arriveslast packet bit arrives, send ACK
ACK arrives, send next packet, t = RTT + L / R
last bit of 2nd packet arrives, send ACKlast bit of 3rd packet arrives, send ACK
U sender = .024
30.008 = 0.0008
microseconds
3 * L / R RTT + L / R
=
Increase utilizationby a factor of 3!
![Page 54: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/54.jpg)
54
TL: Go-Back-N
Sender:• k-bit seq # in pkt header• “window” of up to N, consecutive unack’ed pkts allowed
• ACK(n): ACKs all pkts up to, including seq # n - “cumulative ACK”● may receive duplicate ACKs (see receiver)
• timer for each in-flight pkt• timeout(n): retransmit pkt n and all higher seq # pkts in window
![Page 55: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/55.jpg)
55
TL: GBN: sender extended FSM
![Page 56: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/56.jpg)
56
TL: GBN: receiver extended FSM
receiver simple:• ACK-only: always send ACK for correctly-received pkt
with highest in-order seq #– may generate duplicate ACKs– need only remember expectedseqnum
• out-of-order pkt: – discard (don’t buffer) -> no receiver buffering!– ACK pkt with highest in-order seq #
![Page 57: 1 CSE 524: Lecture 7 Transport layer functions. 2 Administrative Homework #2 out See](https://reader035.vdocuments.net/reader035/viewer/2022062911/5a4d1bf47f8b9ab0599e7a4e/html5/thumbnails/57.jpg)
57
TL: GBN in action