Applications that need reliable data delivery to be provided by the Transport Layer use
Transmission Control Protocol (TCP). TCP establishes bi-directional communication between a
source and destination, verifies that data is delivered correctly, and terminates the
connection when the communication ends.
TCP is a more complex protocol than UDP and has a larger overhead for operation. The header is six 32-bit words in length, three times the size of the UDP header, and a TCP conversation has many more parts than one using UDP. TCP begins by establishing a handshake with the remote host. Then data is exchanged between the hosts. If a segment of the information is sent and a positive acknowledgment is not received back telling that the segment was properly received, TCP will re-transmit the segment. TCP verifies that the all segments are received and ordered properly at the receiving end. It also communicates flow control between the receiver and sender as a part of the acknowledgment messages. When a data transfer is concluded the two systems exchange a termination message to close the connection. Like UDP, TCP is responsible for delivering received data to the correct application process. TCP also uses a 16-bit Source Port and 16-bit Destination Port to identify the application. These are in the first word of the TCP header. The Transmission Control Protocol is documented in RFC 793.
|