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 segments are the messages
that carry data between TCP devices. The Data field is where
the actual data being transmitted is carried, and since the length of
the Data field in TCP is variable, this raises an interesting
question: how much data should we put into each segment? With protocols
that accept data in blocks from the higher layers there isn't as much
of a question, but TCP accepts data as a constant stream from the applications
that use it. This means it must decide how many bytes to put into each
message that it sends.

A primary determinant of how much
data to send in a segment is the current status of the sliding
window mechanism on the part of the receiver.
When Device A receives a TCP segment from Device B, it
examines value of the Window field to know the limit on how much
data Device B is allowing Device A to send in its next
segment. There are also important issues in the selection and adjustment
of window size that impact the operation of the TCP system as a whole,
which are discussed in the
reliability section.

In addition to the dictates of the
current window size, each TCP device also has associated with it a ceiling
on TCP sizea segment size that will never be exceeded regardless
of how large the current window is. This is called the maximum segment
size (MSS). When deciding how much data to put into a segment, each
device in the TCP connection will choose the amount based on the current
window size, in conjunction with the various algorithms described in
the reliability section, but it will never be so large that the amount
of data exceeds the MSS of the device to which it is sending.

Note: I need to point out that the name maximum segment size is in fact misleading. The value actually refers to the maximum amount of data that a segment can holdit does not include the TCP headers. So if the MSS is 100, the actual maximum segment size could be 120 (for a regular TCP header) or larger (if the segment includes TCP options).

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!