The Transmission Control Protocol (TCP) is a key technology[1] that makes the internet[2] work. It was introduced by Vint Cerf and Bob Kahn in 1974 and detailed in the Request for Comments (RFC) 675. TCP is a set of rules for managing the delivery of data over the internet or other networks. It ensures data travels safely, quickly, and in the right order from one computer[3] to another. TCP is responsible for creating a connection between computers, maintaining it, and ending it when it’s no longer needed. It also takes care of re-sending any data that gets lost along the way. TCP is used by many internet applications like email[5], web browsing, and streaming media. It’s also important for managing network performance and security[4]. TCP’s segment structure, which includes a header and data section, contains important information for data delivery. Despite its many strengths, TCP also has vulnerabilities that need to be managed, like the potential for denial of service attacks.
The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite. It originated in the initial network implementation in which it complemented the Internet Protocol (IP). Therefore, the entire suite is commonly referred to as TCP/IP. TCP provides reliable, ordered, and error-checked delivery of a stream or octets (bytes) between applications running on hosts communicating via an IP network. Major internet applications such as the World Wide Web, email, remote administration, and file transfer rely on TCP, which is part of the Transport layer of the TCP/IP suite. SSL/TLS often runs on top of TCP.
Protocol stack | |
Abbreviation | TCP |
---|---|
Developer(s) | Vint Cerf and Bob Kahn |
Introduction | 1974 |
Based on | Transmission Control Program |
OSI layer | Transport layer (4) |
RFC(s) | RFC 9293 |
TCP is connection-oriented, and a connection between client and server is established before data can be sent. The server must be listening (passive open) for connection requests from clients before a connection is established. Three-way handshake (active open), retransmission, and error detection adds to reliability but lengthens latency. Applications that do not require reliable data stream service may use the User Datagram Protocol (UDP) instead, which provides a connectionless datagram service that prioritizes time over reliability. TCP employs network congestion avoidance. However, there are vulnerabilities in TCP, including denial of service, connection hijacking, TCP veto, and reset attack.