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 Characteristics: How TCP Does What It Does
(Page 1 of 2)
In the
preceding topic we began our high-level
look at TCP by examining the most important functions the protocol performsas
well as a few that it does not. In many ways, it is more interesting
to look at how TCP does its job than the functions of
the job itself. By examining the most important attributes of TCP and
its operation, we can get a better handle on the way TCP works. We can
also see the many ways that it contrasts to its simpler transport layer
sibling, UDP.
TCP Characteristics
The following are the ways that I
would best describe the Transmission Control Protocol and how it performs
the functions described in the preceding topic:
- Connection-Oriented: TCP requires that
devices first establish a connection with each other before they send
data. The connection creates the equivalent of a circuit between the
units, and is analogous to a telephone call. A process of negotiation
occurs to establish the connection, ensuring that both devices agree
on how data is to be exchanged.
- Bidrectional: Once a connection is established,
TCP devices send data bidirectionally. Both devices on the connection
can send and receive, regardless of which of them initiated the connection.
- Multiply-Connected and Endpoint-Identified:
TCP connections are identified by the pair of sockets used by the two
devices in the connection. This allows each device to have multiple
connections opened, either to the same IP device or different IP devices,
and to handle each connection independently without conflicts.
- Reliable: Communication using TCP is said
to be reliable because TCP keeps track of data that has been
sent and received to ensure it all gets to its destination. As we saw
in the previous topic, TCP can't really guarantee that data
will always be received. However, it can guarantee that
all data sent will be checked for reception, and checked for data integrity,
and then retransmitted when needed. So, while IP uses best effort
transmissions, you could say TCP tries harder, as the old rent-a-car
commercial goes.
- Acknowledged: A key to providing reliability
is that all transmissions in TCP are acknowledged (at the TCP layerTCP
cannot guarantee that all such transmissions are received by the remote
application). The recipient must tell the sender yes, I got that
for each piece of data transferred. This is in stark contrast to typical
messaging protocols where the sender never knows what happened to its
transmission. As we will see, this is fundamental to the operation of
TCP as a whole.
- Stream-Oriented: Most lower-layer protocols
are designed so that to use them, higher-layer protocols must send them
data in blocks. IP is the best example of this; you send it a message
to be formatted and it puts that message into a datagram. UDP is
the same. In contrast, TCP allows applications
to send it a continuous stream of data for transmission. Applications
don't need to worry about making this into chunks for transmission;
TCP does it.
- Data-Unstructured: An important consequence
of TCP's stream orientation is that there are no natural divisions between
data elements in the application's data stream. When multiple messages
are sent over TCP, applications must provide a way of differentiating
one message (data element, record, etc.) from the next.
- Data-Flow-Managed: TCP does more than
just package data and send it as fast as possible. A TCP connection
is managed to ensure that data flows evenly and smoothly, with
means included to deal with problems that arise along the way.
Key Concept: To summarize TCPs key characteristics, we can say that it is connection-oriented, bidirectional, multiply-connected, reliable, acknowledged, stream-oriented and flow-managed. |
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.
|