The TCP provides reliable transmission of data in an IP environment. TCP corresponds to the transport layer (Layer 4) of the OSI reference model. Among the services TCP provides are stream data transfer, reliability, efficient flow control, full-duplex operation, and multiplexing.With stream data transfer, TCP delivers an unstructured stream of bytes identified by sequence numbers. This service benefits applications because they do not have to chop data into blocks before handing it off to TCP. Instead, TCP groups bytes into segments and passes them to IP for delivery.
TCP offers reliability by providing connection-oriented, end-to-end reliable packet delivery through an internetwork. It does this by sequencing bytes with a forwarding acknowledgment number that indicates to the destination the next byte the source expects to receive. Bytes not acknowledged within a specified time period are retransmitted.
The reliability mechanism of TCP allows devices to deal with lost, delayed, duplicate, or misread packets. A time-out mechanism allows devices to
detect lost packets and request retransmission.
TCP offers efficient flow control, which means that, when sending acknowledgments back to the source, the receiving TCP process indicates the highest sequence number it can receive without overflowing its internal buffers.
It is so important in the Internet protocol suite that sometimes the entire suite is referred to as "the TCP/IP protocol suite
TCP Packet format:
TCP Packet Field Descriptions:
• Source Port and Destination Port—Identifies points at which upper-layer source and destination
processes receive TCP services.
• Sequence Number—has a dual role:
1) If the SYN flag is set (1), then this is the initial sequence number. The sequence number of the actual first data byte and the acknowledged number in the corresponding ACK are then this sequence number plus 1.
2) If the SYN flag is clear (0), then this is the accumulated sequence number of the first data byte of this segment for the current session.
• Data Offset—Indicates the number of 32-bit words in the TCP header.
• Acknowledgment Number—Contains the sequence number of the next byte of data the sender of
the packet expects to receive.
• Reserved—Remains reserved for future use.
• Flags—Carries a variety of control information, including the SYN and ACK bits used for
connection establishment, and the FIN bit used for connection termination.
• Window—Specifies the size of the sender’s receive window (that is, the buffer space available for
• Checksum—The 16-bit checksum field is used for error-checking of the header and data.
• Urgent Pointer—Points to the first urgent data byte in the packet.