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.

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

Enjoy The TCP/IP Guide? Get the complete PDF!
The TCP/IP Guide

Custom Search







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 Message Formatting and Data Transfer
Previous Page
Pages in Current Topic/Section
123
4
Next Page
TCP Checksum Calculation and the TCP "Pseudo Header"
Next Topic/Section

TCP Message (Segment) Format
(Page 4 of 4)

TCP Options and Option Field Values

Table 157 shows the main options currently defined for TCP.


Table 157: TCP Options

Option-Kind

Option-Length

Option-Data

Description

0

End Of Option List: A single byte option that marks the end of all options included in this segment. This only needs to be included when the end of the options doesn't coincide with the end of the TCP header.

1

No-Operation: A “spacer” that can be included between options to align a subsequent option on a 32-bit boundary if needed.

2

4

Maximum Segment Size Value

Maximum Segment Size: Conveys the size of the largest segment the sender of the segment wishes to receive. Used only in connection request (SYN) messages.

3

3

Window Size Shift Bits

Window Scale: Implements the optional window scale feature, which allows devices to specify much larger window sizes than would be possible with the normal Window field. The value in Option-Data specifies the power of two that the Window field should be multiplied by to get the true window size the sender of the option is using. For example, if the value of Option-Data is 3, this means values in the Window field should be multiplied by 8, assuming both devices agree to use this feature. This allows very large windows to be advertised when needed on high-performance links. See the topic on data transfer for more.

4

2

Selective Acknowledgment Permitted: Specifies that this device supports the selective acknowledgment (SACK) feature. This was implemented as a two-byte option with no Option-Data field, instead of a single-byte option like End Of Option List or No-Operation. This was necessary because it was defined after the original TCP specification, so an explicit option length had to be indicated for backwards compatibility.

5

Variable

Blocks Of Data Selectively Acknowledged

Selective Acknowledgment: Allows devices supporting the optional selective acknowledgment feature to specify non-contiguous blocks of data that have been received so they are not retransmitted if intervening segments do not show up and need to be retransmitted.

14

3

Alternate Checksum Algorithm

Alternate Checksum Request: Lets a device request that a checksum generation algorithm other than the standard TCP algorithm be used for this connection. Both devices must agree to the algorithm for it to be used.

15

Variable

Alternate Checksum

Alternate Checksum: If the checksum value needed to implement an alternate checksum is too large to fit in the standard 16-bit Checksum field, it is placed in this option.


I have not shown every TCP option in Table 157, just the basic ones defined in RFC 793 and a few others that are interesting and correspond to features described elsewhere in the Guide. Note that most options are sent only in connection request (SYN) segments. This includes the Maximum Segment Size, Window Scale, Selective Acknowledgement Permitted and Alternate Checksum Request options above. In contrast, Selective Acknowledgment and Alternate Checksum options appear in regular data segments, when used.


Previous Topic/Section
TCP Message Formatting and Data Transfer
Previous Page
Pages in Current Topic/Section
123
4
Next Page
TCP Checksum Calculation and the TCP "Pseudo Header"
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.