Transmission Control Protocol [12] is a reliable connection-oriented protocol that allows a byte stream, originating on one machine, to be delivered without error to any other machine. It fragments the message into discrete packets and passes them onto the internet layer.
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 the 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.
The operation of the TCP protocol can be divided into three distinct sections: