08 - Transport Layer
description
Transcript of 08 - Transport Layer
![Page 1: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/1.jpg)
Transport Layer 3-1
08 - Transport Layer
![Page 2: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/2.jpg)
Reliable data transfer: getting started
sendside
receiveside
rdt_send(): called from above, (e.g., by app.).
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
Transport Layer 3-2
![Page 3: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/3.jpg)
Reliable data transfer: getting startedWe’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
state2
event causing state transitionactions taken on state transition
state: when in this “state” next state
uniquely determined by
next event
eventactions
Transport Layer 3-3
![Page 4: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/4.jpg)
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
Wait for call from above packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packet,data)deliver_data(data)
Wait for call from
below
rdt_rcv(packet)
sender receiver
Transport Layer 3-4
![Page 5: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/5.jpg)
Channel with bit errors
underlying channel may flip bits in packet checksum to detect bit errors
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
Imagine a telephone conversation.How do humans recover from “errors”during conversation?
Transport Layer 3-5
![Page 6: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/6.jpg)
Channel with bit errors
underlying channel may flip bits in packet checksum to detect bit errors
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
Transport Layer 3-6
![Page 7: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/7.jpg)
Group Assignment #1
Divide into groups of 4 and modify our original FSM to include ACKs and NACKs. Note that an ACK is sent when the packet arrives at the receiver with no errors and
a NACK is sent when the packet is corrupted in transmission.
Wait for call from above packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packet,data)deliver_data(data)
Wait for call from
below
rdt_rcv(packet)
sender receiverTransport Layer 3-7
![Page 8: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/8.jpg)
On the Board
Let’s discuss your solution (Please make any changes to your quiz notes if
necessary).
Transport Layer 3-8
![Page 9: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/9.jpg)
Group Assignment #2
What happens if ACK/NAK corrupted?
sender doesn’t know what happened at receiver!
can’t just retransmit: possible duplicates
Transport Layer 3-9
![Page 10: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/10.jpg)
On the Board
Let’s discuss your solution (Please make any changes to your quiz notes if
necessary).
Key: Introduce sequence numbers.Stop and Wait!
Transport Layer 3-10
![Page 11: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/11.jpg)
Group Assignment #3
How would you replace NACKs in your FSM?
Transport Layer 3-11
![Page 12: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/12.jpg)
On the Board
Let’s discuss your solution (Please make any changes to your quiz notes if
necessary).
Key: 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
Transport Layer 3-12
![Page 13: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/13.jpg)
Group Assignment #4
What if the underlying channels can also lose packets (data or
ACKs)?
Transport Layer 3-13
![Page 14: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/14.jpg)
On the Board
Let’s discuss your solution (Please make any changes to your quiz notes if
necessary).
Key: sender waits “reasonable” amount of time for ACK retransmits if no ACK received in this timeif 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 ACKedrequires countdown timer
Transport Layer 3-14
![Page 15: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/15.jpg)
rdt3.0 in action
Transport Layer 3-15
![Page 16: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/16.jpg)
rdt3.0 in action
Transport Layer 3-16
![Page 17: 08 - Transport Layer](https://reader035.fdocuments.in/reader035/viewer/2022062323/56815854550346895dc5ad6f/html5/thumbnails/17.jpg)
For Next Time…
Pipelined Protocols
Take a look at the Go-Back-N and Selective Repeat protocol applets on the
textbook website. How do these two protocols work?
Transport Layer 3-17