| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
TCP Sliding Window Data Transfer and Acknowledgement Mechanics (Page 4 of 6) The Relationship Between Send and Receive Pointers The SND and RCV pointers are complementary, of course, just as the categories are, with each device managing both the sending of its data and receiving of data from its peer. Assuming we have a client and a server, then:
Since the SND and RCV values are complementary, the send window of one device is the receive window of the other, and vice-versa. Note, however, that the values of the pointers do not always line up exactly between the two devices, because at any given time, some bytes may be in transit between the two. Figure 220, for example, shows the receive pointers of the recipient prior to receiving bytes 32 to 45, which are shown in transit in Figure 219. Both SND and RCV pointers are all maintained in the transmission control block (TCB) for the connection held by each device. As data is exchanged the pointers are updated, and communication about the state of the send and receive streams is exchanged using control fields in the TCP segment format. The three most important ones are:
The Acknowledgment Number field is critical because this is what a device uses to tell its peer what segments it has received. The system is cumulative: the Acknowledgment Number field says I have received all data bytes with sequence numbers less than this value. This means if a client receives many segments of data from a server in rapid succession, it can acknowledge all of them using a single number, as long as they are contiguous. If they are not contiguous, then things get more complicated.
Home - Table Of Contents - Contact Us The TCP/IP Guide (http://www.TCPIPGuide.com) Version 3.0 - Version Date: September 20, 2005 © Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved. Not responsible for any loss resulting from the use of this site. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||