CSE/EE 461 Sliding Windows and ARQ
description
Transcript of CSE/EE 461 Sliding Windows and ARQ
![Page 1: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/1.jpg)
CSE/EE 461
Sliding Windows and ARQ
![Page 2: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/2.jpg)
2
Last Time
• We finished up the Network layer– Internetworks (IP)– Routing (DV/RIP, LS/OSPF)
• It was all about routing: how to provide end-to-end delivery of packets. Physical
Data LinkNetwork
TransportSession
PresentationApplication
![Page 3: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/3.jpg)
3
This Time
• We begin on the Transport layer
• Focus– How do we send information reliably?
• Topics– The Transport layer– Acknowledgements and
retransmissions (ARQ)– Sliding windows
PhysicalData LinkNetwork
TransportSession
PresentationApplication
![Page 4: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/4.jpg)
4
The Transport Layer
• Builds on the services of the Network layer
• Communication between processes running on hosts– Naming/Addressing
• Stronger guarantees of message delivery– Reliability
![Page 5: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/5.jpg)
5
Example – Common Properties
TCP• Connection-oriented• Multiple processes• Byte-stream delivery
– In-order delivery– Single delivery– Arbitrarily long messages
• Synchronization• Flow control• Reliable delivery
IP• Datagram oriented• Lost packets• Reordered packets• Duplicate packets• Limited size packets
![Page 6: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/6.jpg)
6
What does it mean to be “reliable”
• Some options:1. A packet sent is a packet received2. A packet not sent is a packet not received3. A packet received is a packet sent4. A packet not received is a packet not sent5. An acknowledged packet means the packet was received6. A received acknowledgement for a packet sent means the packet was
received7. An unreceived acknowledgment for a packet sent means the packet was
not received
![Page 7: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/7.jpg)
7
Internet Transport Protocols
• UDP– Datagram abstraction between processes– With error detection
• TCP– Bytestream abstraction between processes– With reliability– Plus congestion control (later!)
![Page 8: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/8.jpg)
8
Automatic Repeat Request (ARQ)
• Packets can be corrupted or lost. How do we add reliability?• Acknowledgments (ACKs) and retransmissions after a timeout• ARQ is generic name for protocols based on this strategy
Sender Receiver
Frame
ACKTim
eout
T im
e
Sender Receiver
Frame
Tim
eout
Frame
ACKTim
eout
![Page 9: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/9.jpg)
9
The Need for Sequence Numbers
• In the case of ACK loss (or poor choice of timeout) the receiver can’t distinguish this message from the next– Need to understand how many packets can be outstanding
and number the packets; here, a single bit will do
Sender Receiver
Frame
ACKTim
eout
Frame
ACKTim
eout
Sender Receiver
Frame
ACKTim
eout
Frame
ACKTim
eout
![Page 10: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/10.jpg)
10
Stop-and-Wait
• Only one outstanding packet at a time
• Also called alternating bit protocol
0
1
0
1
Sender Receiver
0
1
1
0
![Page 11: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/11.jpg)
11
Limitation of Stop-and-Wait
• Lousy performance if wire time << prop. delay– Max BW: B– Actual BW: M/2D
• Example: B = 100Mb/s, M=1500Bytes, D=50ms• Actual BW = 1500Bytes/100ms --> 15000 Bytes/s --
> 100Kb/s• 100Mb vs 100Kb?
Data
Ack
![Page 12: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/12.jpg)
12
More BW Please
• Want to utilize all available bandwidth– Need to keep more data “in flight”– How much? Remember the bandwidth-delay product?
• Leads to Sliding Window Protocol• Window size says how much data can be sent
without waiting for an acknowledgement
![Page 13: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/13.jpg)
13
Sliding Window – Sender
• Window bounds outstanding data– Implies need for buffering at sender
• Specifically, must buffer unacked data• “Last” ACK applies to in-order data
– Need not buffer acked data• Sender maintains timers too
– Go-Back-N: one timer, send all unacknowledged on timeout– Selective Repeat: timer per packet, resend as neededm
Window Size
“Last” ACK Last Sent
… …Sender:
![Page 14: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/14.jpg)
14
Sliding Window – Timeline
Sender Receiver
Tim
e
Data
Ack
•Receiver ACK choices:–Individual
•Each packet acked–Cumulative (TCP)
•Ack says “got everything up to X-1…” •really, “my ack means that the next byte I am expecting is X”
–Selective (newer TCP)•Acks says “I got X through Y”
– Negative•Acks says “I did not get X”
![Page 15: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/15.jpg)
15
Sliding Window – Receiver
• Receiver buffers too:– data may arrive out-of-order– or faster than can be consumed by receiving
process• No sense having more data on the wire than can be
buffered at the receiver.– In other words, receiver buffer size limits the
window size
<= Receive Window
“Last” Received Largest Accepted
… …Receiver:
![Page 16: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/16.jpg)
16
Flow Control
• Sender must transmit data no faster than it can be consumed by the receiver– Receiver might be a slow machine– App might consume data slowly
• Implement by adjusting the size of the sliding window used at the sender based on receiver feedback about available buffer space– This is the purpose of the Advertised Window field
![Page 17: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/17.jpg)
17
Sending application
LastByteWritten
TCP
LastByteSentLastByteAcked
Receiving application
LastByteRead
TCP
LastByteRcvdNextByteExpected
Sender and Receiver Buffering
= available buffer = buffer in use
LastByteAcked <= LastByteSentLastByteWritten <= LastByteSent
LastByteRead < NextByteExpectedNextByteExpected <= LastByteRvcd+1
== if data arrives in orderelse start of first gap.
These bytes havenot shown up yet.
These bytes have gone to the app.
![Page 18: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/18.jpg)
18
Flow Control
LastByteRcvd - LastByteRead <= MaxRcvBuffer
AdvertisedWindow = MaxRcvBuffer - ((NextByteExpected -1) - LastByteRead“All the buffer space minus the buffer space that’s in use.”
MaxRcvBufferMaxSendBuffer
As data arrives, receiver acknowledges it so long as all preceding bytes have also arrived.Advertised Window potentially shrinks depending on how fast receiving app is drawing out Data.
![Page 19: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/19.jpg)
19
Flow Control On the Sender
MaxRcvBufferMaxSendBuffer
LastByteSent - LastByteAcked <= AdvertisedWindow ‘don’t send that which is unwanted.’
EffectiveWindow = AdvertisedWindow - (LastByteSent - LastByteAcked)
OK to send that which there is room for, which is that which was advertisedminus that which I’ve already sent since receiving the last advertisement.
![Page 20: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/20.jpg)
20
Sending Side -- One last detail
MaxRcvBufferMaxSendBuffer
LastByteWritten - LastByteAcked <= MaxSendBufferCan only hang on to unsent and unacked data if there’s room for it.
==> BLOCK write(y) if(LastByteWritten - LastByteAcked) + y > MaxSendBuffer
![Page 21: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/21.jpg)
21
Example – Exchange of Packets
SEQ=1
SEQ=2
SEQ=3SEQ=4
ACK=2; WIN=3
ACK=3; WIN=2
ACK=4; WIN=1
ACK=5; WIN=0
Receiver has buffer of size 4 and application doesn’t readStall due to
flow control here
T=1
T=2
T=3
T=4
T=5
T=6
![Page 22: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/22.jpg)
22
Example – Buffer at Sender
21 3 4 5 6 7 8 9
21 3 4 5 6 7 8 9
21 3 4 5 6 7 8 9
21 3 4 5 6 7 8 9
21 3 4 5 6 7 8 9
21 3 4 5 6 7 8 9
T=1
T=2
T=3
T=4
T=5
T=6
=acked
=sent
=advertised
![Page 23: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/23.jpg)
23
Packet Format
QuickTime™ and aTIFF (Uncompressed) decompressor
are needed to see this picture.
16 bit window size getsCramped with largeBandwidth x delay
16 bits --> 64KBD ethernet: 122KBSTS24 (1.2Gb/s): 14.8MB
32 bit sequence numbermust not wrap around fasterthan the maximum packetlifetime. (120 seconds) -- 622Mb/s link: 55 seconds
![Page 24: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/24.jpg)
24
Sliding Window Functions
• Sliding window is a mechanism• It supports multiple functions:
– Reliable delivery • If I hear you got it, I know you got it.• ACK (Ack # is “next byte expected”)
– In-order delivery• If you get it, you get it in the right order. • SEQ # (Seq # is “the byte this is in the sequence”)
– Flow control• If you don’t have room for it, I won’t send it.• Advertised Receiver Window• AdvertisedWindow is amount of free space in buffer
![Page 25: CSE/EE 461 Sliding Windows and ARQ](https://reader035.fdocuments.in/reader035/viewer/2022062315/56815a6a550346895dc7c11b/html5/thumbnails/25.jpg)
25
Key Concepts
• Transport layer allows processes to communicate with stronger guarantees, e.g., reliability
• Basic reliability is provided by ARQ mechanisms– Stop-and-Wait through Sliding Window plus
retransmissions