One of the main protocols in the TCP/IP suite is Transmission Control Protocol (TCP). It provides reliable and ordered delivery of data between applications running on hosts on a TCP/IP network. Because of the reliable nature of TCP, many applications that require high reliability, such as FTP, SSH, SMTP, HTTP, etc. use this protocol.
TCP is a connection-oriented protocol. This means that before sending the data, a connection between two hosts must be established. Also, the process used to establish a TCP connection is known as the three-way handshake. When the connection has been established, then data transfer phase begins. After the data is transmitted, then the connection is terminated.
Also, one other notable characteristic of TCP is its reliable delivery. TCP uses sequence numbers to identify the order of the bytes sent from each computer. This is done so that the data can be reconstructed in order. In case any data is lost during the transmission, the sender can also re-transmit the data.
Because of all of its characteristics, TCP is also considered to be complicated and costly in terms of network usage. The TCP header is up to 24 bytes long .
Fields of Transmission Control Protocol Header
- source port – the port number of the application on the host sending the data.
- destination port – the port number of the application on the host receiving the data.
- sequence number – used to identify each byte of data.
- acknowledgment number – the next sequence number that the receiver is expecting.
- header length – the size of the TCP header.
- reserved – always set to 0.
- flags – It sets up and terminates a session.
- window – the window size the sender is willing to accept.
- checksum – used for error-checking of the header and data.
- urgent – indicates the offset from the current sequence number, where the segment of non-urgent data begins.
- options – various TCP options, such as Maximum Segment Size (MSS) or Window Scaling.
TCP is a Transport layer protocol (Layer 4 of the OSI model).