Understanding TCP Sliding Windows in Computer Networks

tcp sliding windows flow control and congestion n.w
1 / 26
Embed
Share

Explore the concept of TCP sliding windows, flow control, and congestion control in computer networks from a systems approach. Learn about sender and receiver variables, buffer management, and window sizes for efficient data transmission.

  • TCP sliding windows
  • Flow control
  • Congestion control
  • Computer networks
  • Systems approach

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. TCP Sliding Windows, Flow Control, and Congestion Control Lecture material taken from Computer Networks A Systems Approach , Fourth Ed.,Peterson and Davie, Morgan Kaufmann, 2007. Advanced Computer Networks TCP Sliding Windows

  2. Sliding Windows Outline Generic Sliding Windows Receiver Response Choices Introduction to TCP Sliding Windows Flow control and buffers Advertised window Congestion control Advanced Computer Networks TCP Sliding Windows 2

  3. Sliding Windows Normally a data link layer concept. Our interest is understanding the TCP mechanism at the transport layer. Each frame is assigned a sequence number: SeqNum. The sender maintains three variables: send window size (SWS), last ACK received (LAR), and last Frame sent (LFS). Advanced Computer Networks TCP Sliding Windows 3

  4. Sender Variables SWS :: the upper bound on the number of outstanding frames (not ACKed) the sender can transmit. LAR :: the sequence number of the last ACK received. LFS :: the sequence number of the last frame sent. Advanced Computer Networks TCP Sliding Windows 4

  5. Sender Invariant LFS LAR SWS SWS LAR LFS Advanced Computer Networks TCP Sliding Windows 5

  6. Sender Window An arriving ACK LAR moves right 1 sender can send one more frame. Associate a timerwith each frame the sender transmits. Sender retransmits the frame if the timer times out. Sender buffer :: up to SWS frames. Advanced Computer Networks TCP Sliding Windows 6

  7. Receiver Variables Receiver window size (RWS) :: the upper bound on the number of out-of-order frames the receiver is willing to accept. Largest acceptable frame (LAF) :: the sequence number of the largest acceptable frame. Last frame received (LFR) :: the sequence number of the last frame received. Advanced Computer Networks TCP Sliding Windows 7

  8. Receiver Invariant LAF LFR RWS RWS LFR LAF Advanced Computer Networks TCP Sliding Windows 8

  9. Receiver Window When a frame arrives with SeqNum: If (SeqNum LFR or SeqNum > LAF) the frame is discarded because it is outside the window. If (LFR < SeqNum LAF) the frame is accepted. Advanced Computer Networks TCP Sliding Windows 9

  10. Receiver ACK Decisions SeqNumToAck :: largest sequence number not yet ACKed such that all frames SeqNumToAck have been received. Receiver ACKs receipt of SeqNumToAck and sets LFR = SeqNumToAck LAF = LFR + RWS SeqNumToAck is adjusted appropriately! Advanced Computer Networks TCP Sliding Windows 10

  11. Generic ACK Choices 1. ACK sequence number indicates thelast frame successfully received. - OR - 2. ACK sequence number indicates thenext frame the receiver expects to receive. Both of these can be strictly individual ACKs or represent cumulative ACKing. Cumulative ACKs is the most common technique. Advanced Computer Networks TCP Sliding Windows 11

  12. Generic Responses to a Lost Packet or Frame 1.Use a duplicate ACK. 2. Use a selective ACK [SACK]. 3. Use a negative ACK [NACK] . Advanced Computer Networks TCP Sliding Windows 12

  13. TCP Sliding Windows * In practice, the TCP implementation switches from packet pointers to byte pointers. Guarantees reliable delivery of data. Ensures data delivered in order. Enforces flow control between sender and receiver. The idea is: the sender does not overrun the receiver s buffer. Advanced Computer Networks TCP Sliding Windows 13

  14. Figure 5.3 TCP Managing a Byte Stream Application process Application process Write Read bytes bytes TCP TCP Send buffer Receive buffer Segment Segment Segment Transmit segments P&D slide Advanced Computer Networks TCP Sliding Windows 14

  15. Figure 5.8 Relationship between TCP Send Buffer and TCP Receive Buffer Sending application Receiving application TCP TCP LastByteWritten LastByteRead LastByteAcked LastByteSent NextByteExpected LastByteRcvd (a) (b) P&D slide Advanced Computer Networks TCP Sliding Windows 15

  16. Receivers Advertised Window The big difference in TCP is that the size of the sliding window size at the TCP receiver is not fixed. The receiver advertisesan adjustable window size (AdvertisedWindow field in TCP header). Sender is limited to having no more than AdvertisedWindow bytes of unACKed data at any time. Advanced Computer Networks TCP Sliding Windows 16

  17. Figure 5.4 TCP Header Format P&D slide Advanced Computer Networks TCP Sliding Windows 17

  18. Figure 5.5 Simplified TCP P&D slide Advanced Computer Networks TCP Sliding Windows 18

  19. TCP Flow Control The discussion is similar to the previous sliding window mechanism except we add the complexity of sending and receiving application processes that are filling and emptying their local buffers. Also we introduce the complexity that buffers are of finite size without worrying about where the buffers are stored. MaxSendBuffer MaxRcvBuffer Advanced Computer Networks TCP Sliding Windows 19

  20. TCP Flow Control The receiver throttles the sender by advertising a window size no larger than the amount it can buffer. On TCP receiver side: LastByteRcvd - LastByteRead MaxRcvBuffer to avoid buffer overflow! Advanced Computer Networks TCP Sliding Windows 20

  21. TCP Flow Control TCP receiver advertises: AdvertisedWindow = MaxRcvBuffer - (LastByteRcvd - LastByteRead) i.e., the amount of free space available in the receiver s buffer. Advanced Computer Networks TCP Sliding Windows 21

  22. TCP Flow Control The TCP sender must adhere to the AdvertisedWindow from the receiver such that LastByteSent LastByteAcked AdvertisedWindow or use EffectiveWindow EffectiveWindow = AdvertisedWindow (LastByteSent LastByteAcked) Advanced Computer Networks TCP Sliding Windows 22

  23. TCP Flow Control Sender Flow Control Rules: 1. EffectiveWindow > 0 for sender to send more data. 2. LastByteWritten LastByteAcked MaxSendBuffer equality here send buffer is full!! TCP sender process must block the sender application. Advanced Computer Networks TCP Sliding Windows 23

  24. TCP Congestion Control CongestionWindow :: a variable held by the TCP source for each connection. * TCP is modified such that the maximum number of bytes of unacknowledged data allowed is the minimum of CongestionWindowand AdvertisedWindow. MaxWindow :: min (CongestionWindow , AdvertisedWindow) Advanced Computer Networks TCP Sliding Windows 24

  25. TCP Congestion Control Finally, we have that EffectiveWindow = MaxWindow (LastByteSent LastByteAcked) The idea :: the source s effective window can be no faster than the slowest of the network (i.e., its core routers)or the destination Host. The TCP source receives implicit and/or explicit indications of congestion by which to reduce the size ofCongestionWindow. Advanced Computer Networks TCP Sliding Windows 25

  26. Sliding Windows Summary Generic Sliding Windows Receiver Response Choices Introduction to TCP Sliding Windows Flow control and buffers Advertised window Congestion control Advanced Computer Networks TCP Sliding Windows 26

More Related Content