Transmission Control Protocol (TCP)
What is TCP (Transmission Control Protocol)?
TCP, or the Transmission Control Protocol, is a communication protocol that was introduced to the world in a 1974 paper entitled A Protocol for Packet Network Intercommunication. Even if you haven't heard of TCP, you've heard of what runs on it, including the world wide web, e-mail, and peer-to-peer file sharing, among others.
While TCP is used to connect network devices to the internet, it can also be used as a communication protocol for a private intranet or extranet.
How does TCP work?
TCP provides communication between an application program and the Internet Protocol (they are frequently written as TCP/IP.) An application does not need to required packet fragmentation on the transmission medium or other mechanisms for sending data in order to be sent via TCP. While IP handles actual delivery of the data, TCP keeps track of 'segments' - the individual units of data transmission that a message is divided into for efficient routing through the network.
Due to unpredictable network behavior, IP packets can be lost or delivered out of order; TCP detects and minimizes these issues by reordering packet data or requesting redelivery. This accuracy comes with a tradeoff in speed. TCP is known more for reliability, but this accuracy comes from trading speed, sometimes coming with a delay of several seconds.
Additional Readings from the Blog
- Best Practices for TCP_NODELAY, Nagle's Altorithm, and TCP_QUICKACK
- What is TCP Windowing?
- TCP RTOs: Retransmission Timeouts & Application Performance Degradation
- What is Karn's Algorithm for Optimizing TCP?
- Download: How to Optimize TCP: Nagle Delays and Beyond
- What is the Difference Between TCP & HTTP?