TCP (Transmission Control Protocol) is a vital network protocol used to transmit data over networks. A protocol, when speaking of networks, is a set of guidelines and procedures that control how data transmission is executed so users, regardless of location, or the software or hardware utilized, follow the same procedures.
TCP functions in conjunction with IP (Internet Protocol) as TCP/IP. This term is listed in the network settings of your computer, smartphone or mobile device. The IP part refers to the addressing and forwarding of data packets from source to destination, while TCP oversees the transmission reliability.
In May 1974, the Institute of Electrical and Electronic Engineers (IEEE) released “A Protocol for Packet Network Intercommunication,” written by Bob Kahn and Vint Cerf, which described an internetworking protocol for sharing resources using packet-switching between the nodes. The protocol was developed along with Gérard Le Lann to integrate concepts from the French CYCLADES project.
A central control component of the model was the Transmission Control Program that integrated connection-oriented links and datagram services between hosts. Later, the monolithic Transmission Control Program was split into a modular architecture consisting of the Transmission Control Protocol at the transport layer and the Internet Protocol at the internet layer. The model was then informally named TCP/IP, or formally the Internet Protocol Suite.
In the article below, we will answer the question, “What is TCP?” and also look at how it works, how it continues to be developed, and the proposed changes.
What Is TCP?
The purpose of Transmission Control Protocol is to manage the data transfer so it is reliable. On the Internet, for example, data is transmitted in packets – units of data sent independently on the network and reassembled after they have reached the destination to return the original data.
Data transmission on a network is carried out in layers, with protocols on each layer complimenting the functions of other layers. This layer set is referred to as a protocol stack. Both TCP and IP work together in the stack, one above the other. For example, in one stack, you may have HTTP – TCP – IP – WiFi, which means that when, for instance, a computer is opening a web page, it utilizes the HTTP protocol to obtain the web page in HTML, TCP manages the transmission, IP – the network channeling, and WiFi takes care of the local area network transmission.
Thus, Transmission Control Protocol is liable for safeguarding reliability during transmission. Data transmission is reliable when the following requirements are satisfied:
All the packets arrive at the destination and no packets are lost (users don’t want letters or sentences to be missing when they send an email or instant messages).
There is no delay that might impact data quality (users want a conversation during a VoIP call or streaming audio to be unfailing, so all spoken words are recognizable).
All data packets are reconstructed in the proper order (users want words in an emailed sentence to be in the order they were written.
How Transmission Control Protocol Works
Transmission Control Protocol labels packets so they are numbered and ensures they have a deadline to arrive at their destination, as well as other technical provisions. When a packet is received, the sending device will be notified with an acknowledgment packet. If, following the time-out, an acknowledgment has not been received, the source will send a copy of the missing or belated packet.
Out-of-order packets will not be acknowledged; therefore, all packets will always be assembled in order, without any holes and within a prearranged and adequate delay.
Although IP has a comprehensive mechanism for addressing (IP addresses), Transmission Control Protocol does not have such a complex addressing system since it does not require one. It only utilizes numbers specified by the device it is functioning on to detect where packets for each service are being sent and received. These numbers are referred to as ports. For example, Internet browsers utilize the port 80 for TCP, and port 25 is used for email. The port number will usually be included in the IP address for a service, e.g. 192.168.66.5:80.
Transmission Control Protocol Development
Transmission Control Protocol is an intricate protocol. Despite important improvements over the years, its fundamental operation has not varied significantly since the first specification (RFC 675) was introduced in 1974 and the v4 specification (RFC 793) was announced in September 1981.
RFC 1122 (Host Requirements for Internet Hosts) simplified several TCP protocol implementation requirements. A listing of the 8 requisite specifications and more than 20 highly recommended enhancements is available in RFC 7414. This list includes RFC 2581 (TCP Congestion Control) one of the most significant TCP-related RFCs of the past few years, details updated algorithms that prevent undue congestion. In 2001, RFC 3168 was created to detail Explicit Congestion Notification (ECN), a congestion prevention signaling mechanism.
The original Transmission Control Protocol congestion prevention algorithm was referred to as “TCP Tahoe”, although alternative algorithms have been suggested (such as TCP Hybla, FAST TCP, TCP New Reno, TCP Reno, and TCP Vegas).
Transmission Control Protocol Interactive (iTCP) is an exploration into Transmission Control Protocol extensions that enables applications to support Transmission Control Protocol events and record handler components that are capable of launching applications for different purposes, such as application-assisted congestion control.
Multipath Transmission Control Protocol (MPTCP), a continuing effort within the IETF that hopes to enable a Transmission Control Protocol connection to use several paths to maximize the use of resources and increase redundancy. The redundancy provided by Multipath TCP in the context of wireless networks allows different networks to be used simultaneously, facilitating higher throughput and improved handover capacity. Multipath TCP also delivers performance benefits in datacenter settings. The reference implementation of Multipath TCP is being advanced in the Linux kernel. Multipath Transmission Control Protocol is employed to support the Siri voice recognition application on iPhones, iPads, and Macs.
Transmission Control Protocol Cookie Transactions (TCPCT) is an extension developed in December 2009 to protect servers from denial-of-service attacks. In contrast to SYN cookies, TCPCT does not interfere with TCP extensions like window scaling. TCPCT was created because of deficiencies in DNSSEC, in which servers must manage significant numbers of short-term Transmission Control Protocol connections.
Tcpcrypt, an extension recommended in July 2010 to enable transport-level encryption directly, has been developed to work transparently without any configuration. In contrast to TLS (SSL), tcpcrypt does not specify authentication but offers simple primitives down to the application that provides that. As of 2010, the first tcpcrypt IETF outline has been launched and applications exist for numerous major platforms.
TCP Fast Open, an extension to accelerate the opening of sequential TCP connections between two endpoints, works by omitting the three-way handshake utilizing a cryptographic “cookie”. The extension is similar to a previous proposal referred to as T/TCP, which was not broadly implemented due to security concerns. As of July 2012, it is an IETF Internet draft.
Proposed in May 2013, Proportional Rate Reduction (PRR) is a Transmission Control Protocol extension created by Google engineers. PRR guarantees that the TCP window size following recovery resembles the Slow-start threshold as much as possible. The algorithm is designed to enhance recovery speed and is the default congestion control algorithm in Linux 3.2+ kernels.
Recently, computer scientists at the University of California, Riverside, revealed a security flaw that impacts all Wi-Fi routers. Hackers may be able to manipulate the weakness in the transmission control protocol and execute a web cache poisoning attack to steal user passwords, login information, and additional private data.
Unfortunately, a fix is not currently possible given that the vulnerability arises from a 20-year-old design based on Transmission Control Protocol and Wi-Fi. To keep hackers from utilizing the exploit, researchers have asked manufacturers to build routers that function on different frequencies to transmit and receive data.