TCP explained

One of the main protocols in the
TCP/IP suite is Transmission Control Protocol (TCP). TCP provides
reliable and ordered delivery of data between applications running on
hosts on a TCP/IP network. Because of its reliable nature, TCP is used
by applications that require high reliability, such as FTP, SSH, SMTP,
HTTP, etc.TCP is connection-oriented, which
means that, before data is sent, a connection between two hosts must be
established. The process used to establish a TCP connection is known as
the three-way handshake. After the connection has been established, the
data transfer phase begins. After the data is transmitted, the
connection is terminated.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 so that the data can be
reconstructed in order. If any data is lost during the transmission, the
sender can retransmit the data.Because of all of its characteristics,
TCP is considered to be complicated and costly in terms of network
usage. The TCP header is up to 24 bytes long and consists of the
following fields:

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 – used to set up and terminate 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.NOTE – TCP is a Transport layer protocol (Layer 4 of the OSI model).