Transmission Control Protocol
The TCP/IP model (RFC 1122) |
---|
Application Layer |
Transport Layer |
Internet Layer |
Link Layer |
The Transmission Control Protocol (TCP) is one of the main protocols of the Internet Protocol Suite. TCP is part of the popular "TCP/IP" combination used by the Internet. The Internet Protocol, or IP, makes sure data on the internet gets to the right place. Then TCP makes sure the data is put in the right order, and none of it is missing. TCP also helps to control traffic on the internet so it doesn't get overloaded. These protocols, which are kind of like languages that computers use, are designed so that any computer, and any program (like a Web browser or e-mail client), can use them.
Importance of TCP
TCP makes it easier for computer programs to communicate with each other, typically over a computer network. When a program wants to send a lot of data, TCP is in charge of chopping the data up, sending it through the network, and putting it back together correctly on a different computer. In the process, IP chooses which wires and "intersections" get used to send all the data pieces in the fastest way. It does this using packets.
If there are a lot of people using the network, it can get overloaded. Also sometimes weather, power outages, and other problems can make communication hard. Routers on the Internet use something called load balancing to try to fix some of these problems. But still, information can be delivered out of order, get lost, or even duplicated. TCP is designed to notice all of these problems and try to fix them. This can take awhile, which is why the Internet sometimes seems slow. Once the TCP receiver has finally reassembled a perfect copy of the data originally transmitted, it passes that data to the computer program that asked for it. Then the program doesn't have to know about the network, and TCP doesn't have to know about the program's data.
Further reading
- W. Richard Stevens. TCP/IP Illustrated, Volume 1: The Protocols. ISBN 0-201-63346-9
- W. Richard Stevens and Gary R. Wright. TCP/IP Illustrated, Volume 2: The Implementation. ISBN 0-201-63354-X
- W. Richard Stevens. TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols. ISBN 0-201-63495-3
Other websites
- Dissertation about TCP improvements in wired and wireless networks (Dissertation)
- IANA Port Assignments
- John Kristoff's Overview of TCP (Fundamental concepts behind TCP and how it is used to transport data between two endpoints)
- RFC 675 - Specification of Internet Transmission Control Program, December 1974 Version
- RFC 793 - TCP v4
- RFC 1122 - includes some error corrections for TCP
- RFC 1323 - TCP-Extensions
- RFC 1379 - Extending TCP for Transactions -- Concepts
- RFC 1948 - Defending Against Sequence Number Attacks
- RFC 2018 - TCP Selective Acknowledgment Options
- RFC 2581 - TCP Congestion Control
- RFC 2988 - Computing TCP's Retransmission Timer
- RFC 4614 - A Roadmap for TCP Specification Documents
- TCP, Transmission Control Protocol
- TCP EFSM diagram - A detailed description of TCP states.
- The basics of Transmission Control Protocol
- The Law of Leaky Abstractions by Joel Spolsky
- Checksum example