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.

The Book is Here... and Now On Sale!

Get The TCP/IP Guide for your own computer.
The TCP/IP Guide

Google
Web TCP/IP Guide






Table Of Contents  The TCP/IP Guide
 9  TCP/IP Lower-Layer (Interface, Internet and Transport) Protocols (OSI Layers 2, 3 and 4)
      9  TCP/IP Transport Layer Protocols
           9  Transmission Control Protocol (TCP) and User Datagram Protocol (UDP)
                9  TCP/IP Transmission Control Protocol (TCP)
                     9  TCP Message Formatting and Data Transfer

Previous Topic/Section
TCP Maximum Segment Size (MSS) and Relationship to IP Datagram Size
Previous Page
Pages in Current Topic/Section
1
23456
Next Page
TCP Immediate Data Transfer: "Push" Function
Next Topic/Section

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 server—this 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:

  1. Transmit Category #1: Bytes Sent And Acknowledged

  2. Transmit Category #2: Bytes Sent But Not Yet Acknowledged

  3. Transmit Category #3: Bytes Not Yet Sent For Which Recipient Is Ready

  4. 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 doesn’t 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 receiver’s complement to Transmit Categories #1 and #2.

  • Receive Category #3: Bytes Not Yet Received For Which Recipient Is Ready. This is the receiver’s complement to Transmit Category #3.

  • Receive Category #4: Bytes Not Yet Received For Which Recipient Is Not Ready. This is the receiver’s complement to Transmit Category #4.

Previous Topic/Section
TCP Maximum Segment Size (MSS) and Relationship to IP Datagram Size
Previous Page
Pages in Current Topic/Section
1
23456
Next Page
TCP Immediate Data Transfer: "Push" Function
Next Topic/Section

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!
Donate $2
Donate $5
Donate $10
Donate $20
Donate $30
Donate: $



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.