Transmission Control Protocol (TCP)
Definition
Fundamental protocol within the Internet protocol suite, often referred to alongside IP or TCP/IP. It enables reliable, ordered and error-checked delivery of a stream of data between appplications running on hosts via an IP network.
Major internet applications such as web browsing, email, and file transfer rely on TCP.
TCP's design aims to provide a reliable, ordered delivery of a byte stream over a network that may be prone to packet loss, duplication, or out-of-order delivery. It's an essential protocol that supports the vast majority of the internet's application layer protocols by providing these critical features.
Key Features
- Connection-Oriented - Connection is established and maintained until the application programs at each end have finished exchanging messages. This is achieved through a handshake process, typically the SYN, SYN-ACK, ACK sequence, to initiate a connection.
- Reliable Delivery - If any packet is lost during transmission, TCP is responsible for retransmitting the lost packet.
- Ordering of Data - If packets arrive out of order, TCP reorders them into their original sequence.
- Error Checking - TCP includes a checksum in its header for error-checking of the header and data. This helps in ensuring that the data transferred is not corrupted.
- Flow Control - Uses flow control mechanisms to prevent a fast sender from overwhelming a slow receiver, thus avoiding congestion and potential loss of data.
- Congestion Control - Implements congestion control algorithms to dynamically manage the data transmission rate in response to network congestion, aiming to reduce packet loss and ensure network stability.
- Full-Duplex Communication - Allows data to be sent and received at the same time between sender and receiver.