TCP represents Transmission Control Protocol. It is a transport layer protocol that facilitates the transmission of packets from source to destination. It is a connectionoriented protocol that defines it creates the connection before the communication that appears between the computing devices in a network.
TCP organizes information so that it can be sent between a server and a user. It maintains the integrity of the information being communicated over a network. Before it sends data, TCP creates a connection between a source and its destination, which it provides remains live until communication starts. It then divides huge amounts of information into smaller packets, while providing data integrity is established throughout the process.
TCP can send data from high-level protocols that require all information to arrive. These contain peer-to-peer sharing protocols such as File Transfer Protocol (FTP), Secure Shell (SSH), and Telnet. It can send and receive email through Internet Message Access Protocol (IMAP), Post Office Protocol (POP), and Simple Mail Transfer Protocol (SMTP), and for internet creation through the Hypertext Transfer Protocol (HTTP).
The TCP application in the network protocol stack of the operating framework is responsible for creating and removing the end-to-end connections and transferring information. The TCP application is contained by multiple network applications, including web browsers or servers, via particular interfaces. Each connection should continually be recognized by two represented endpoints (client and server).
Each packet contains the 32-bit sequence number. These numbers are used for both acknowledgement and window mechanism. This data is exchanged in the byte units called a segment. A segment consists of fixed 20 bytes plus followed by zero or more data bytes.
The TCP software decides the segment size. In this, some restrictions are put on the segment size as follows −
Each segment involving the TCP header must fit in the 65525 byte IP payload.
Each segment must fit in the maximum transfer unit (MTU). Each network has a maximum transfer unit (MTU).
If a segment becomes too large, then it is broken into small fragments. On each fragmentation done by a router, then to each fragment, a new IP header is appended. Therefore, the fragmentation increases the overhead.
The basic protocol used by TCP entities is the sliding window protocol. A sender starts a timer as soon as a sender transmits a segment where the destination receives the segment. It sends back acknowledgement along with data, if any. The acknowledgement number is equal to the following sequence number it expects to receive. If the sender’s timer goes out before the acknowledgement is received, then the sender will send the unacknowledged packet again.
As the segments can be fragmented, a port of the transmitted segment can reach the destination, while maybe lost the remaining part or segments arrive out of order. Sometimes segments get delayed so much that the timer is out, and retransmissions take place.
In retransmitted segments, they can take a different route than the original segment. Then fragments of the initial segment & retransmitted segments both can sporadically reach the destination. So a careful administration technique is required to achieve a reliable byte stream. There is a possibility of congestion along the path.