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 Data Handling and Processing: Streams, Segments and Sequence Numbers
(Page 2 of 3)
TCP Data Packaging: Segments
Of course, TCP must take these bytes
and send them using a network-layer protocol, meaning the Internet Protocol.
IP is a message-oriented protocol, not stream-oriented. Thus, we have
simply passed the buck to TCP, which must take the stream
from the application and divide it into discrete messages for IP. These
messages are called TCP segments.
Note: As an aside, this is one of the most confusing data structure names in the world of networking. From a dictionary definition standpoint, referring to a piece of a stream as a segment is sensible, but most people working with networks don't think of a message as being a segment. In the industry, the term also refers to a length of cable or a part of a local area network, among other things, so watch out for that.
TCP segments are treated by IP like
all other discrete messages for transmission. They are placed into IP
datagrams and transmitted to the destination device. The recipient unpackages
the segments and passes them to TCP, which converts them back to a byte
stream to send to the application. This process is illustrated in Figure 202.
Figure 202: TCP Data Stream Processing and Segment Packaging
TCP is different from most protocols because it does not require applications that use it to send data to it in messages. Once a TCP connection is set up, an application protocol can send TCP a steady stream of bytes that does not need to conform to any particular structure. TCP packages these bytes into segments that are sized based on a number of different parameters. These segments are passed to IP, where they are encapsulated into IP datagrams and transmitted. The process is reversed by the receiving device: segments are removed from IP datagrams, then the bytes are taken from the segments and passed up to the appropriate recipient application protocol as a byte stream.
The TCP layer on a device
accumulates data it receives from the application process stream. On
regular intervals, it forms segments to be transmitted using IP. The
size of the segment is controlled by two primary factors. The first
issue is that there is an overall limit to the size of a segment, chosen
to prevent unnecessary fragmentation at the IP layer. This is governed
by a parameter called the maximum
segment size (MSS), which is determined
during connection establishment. The second is that TCP is designed
so that once a connection is set up, each of the devices tells the other
how much data it is ready to accept at any given time. If this is lower
than the MSS value, a smaller segment must be sent. This is part of
window system described in the next topic.
Key Concept: TCP is designed to have applications send data to it as a stream of bytes, rather than requiring fixed-size messages to be used. This provide maximum flexibility for a wide variety of uses, because applications dont need to worry about data packaging, and can send files or messages of any size. TCP takes care of packaging these bytes into messages called segments.
|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!|
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.