Please Whitelist This Site?
I know everyone hates ads. But please understand that I am providing premium content for free that takes hundreds of hours of time to research and write. I don't want to go to a pay-only model like some sites, but when more and more people block ads, I end up working for free. And I have a family to support, just like you. :)
If you like The TCP/IP Guide, please consider the download version. It's priced very economically and you can read all of it in a convenient format without ads.
If you want to use this site for free, I'd be grateful if you could add the site to the whitelist for Adblock. To do so, just open the Adblock menu and select "Disable on tcpipguide.com". Or go to the Tools menu and select "Adblock Plus Preferences...". Then click "Add Filter..." at the bottom, and add this string: "@@||tcpipguide.com^$document". Then just click OK.
Thanks for your understanding!
Sincerely, Charles Kozierok
Author and Publisher, The TCP/IP Guide
|
NOTE: Using software to mass-download the site degrades the server and is prohibited. If you want to read The TCP/IP Guide offline, please consider licensing it. Thank you.
|
|
|
|
TCP Sliding Window Data Transfer and Acknowledgement Mechanics
(Page 1 of 6)
The TCP
connection establishment process is employed
by a pair of devices to create a TCP connection between them. Once all
the setup is done, transmission
control blocks (TCBs) set up, parameters
have been exchanged and so forth, the
devices are ready to get down to business: transferring data.
The sending of data between TCP devices
on a connection is accomplished using the
sliding window system we explored in the fundamentals section.
It's now time to take a more detailed look at exactly how sliding windows
are implemented to allow data to be sent and received. For ease of explanation,
we'll assume that our connection is between a client and a serverthis
is easier than the whole Device A / Device B
thing.
Sliding Window Transmit Categories
Each of the two devices on a connection
must keep track of the data it is sending, as well as the data it is
receiving from the other device. This is done by conceptually dividing
the bytes into the categories we saw in the sliding windows overview.
For data being transmitted, there are four transmit categories:
- Transmit Category #1: Bytes
Sent And Acknowledged
- Transmit Category #2: Bytes
Sent But Not Yet Acknowledged
- Transmit Category #3: Bytes
Not Yet Sent For Which Recipient Is Ready
- Transmit Category #4: Bytes
Not Yet Sent For Which Recipient Is Not Ready
Sliding Window Receive Categories
For data being received, there is
no need to separate into received and acknowledged and received
and unacknowledged the way the transmitter separates its first
two categories into sent and acknowledged and sent
but not yet acknowledged. The reason, of course, is that the transmitter
must wait for acknowledgment of each transmission, while the receiver
doesnt need acknowledgment that it received something.
Thus, one receive category corresponds
to Transmit Categories #1 and #2, while the other two correspond to
Transmit Category #3 and Transmit Category #4 respectively, making three
receive categories overall. To help make more clear how the categories
relate, I am numbering them as follows:
- Receive Category #1+2: Bytes Received
And Acknowledged. This is the receivers complement to Transmit
Categories #1 and #2.
- Receive Category #3: Bytes Not Yet Received
For Which Recipient Is Ready. This is the receivers complement
to Transmit Category #3.
- Receive Category #4: Bytes Not Yet Received
For Which Recipient Is Not Ready. This is the receivers complement
to Transmit Category #4.
If you find The TCP/IP Guide useful, please consider making a small Paypal donation to help the site, using one of the buttons below. You can also donate a custom amount using the far right button (not less than $1 please, or PayPal gets most/all of your money!) In lieu of a larger donation, you may wish to consider purchasing a download license of The TCP/IP Guide. Thanks for your support! |
|
|
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.
|