Transmission Control Protocol is a reliable connection-oriented protocol that allows a byte stream, originating on one machine, to be delivered without error on any other machine. It fragments the message into discrete packets and passes them onto the internet layer.
The internet layer contains the Internet Protocol (IP). This protocol is responsible for delivery of IP packets where they are supposed to go. The issues involved in this protocol are packet routing and congestion avoidance.
TCP has the ability to handle flow control. This prevents the source machine from swamping a slower destination machine with data. If the destination machine's buffer becomes full with incoming packets, the TCP will send a control signal to the source machine indicating that it cannot handle any more information at the moment and to slow down the transmission.
TCP has to ability to handle sequencing. When packets are being sent out, not all of them will take the same route. This may result in packets being delivered out of sequence. TCP has a way of reordering the segments to avoid the need of the sender resending all the segments again.
In the previous section, it was noted that UDP could be compared to the postal service. In a similar analogy, TCP can be compared to the telephone system. When a call is made, a direct connection is made between the two people involved in the conversation. There is a definite path for the voice data to travel along, and it is not possible for the information to be waylaid on the way.
The operation of the TCP protocol can be divided into three distinct sections: