TCP: Transmission Control Protocol
In preparation of our CCNA exam, we want to make sure we cover the various concepts that we could see on our Cisco CCNA exam. So to assist you, below we will discuss TCP.
Transmission Control Protocol (TCP) is the transport layer protocol in the TCP/IP protocol suite , which provides a reliable stream delivery and virtual connection service to applications through the use of sequenced acknowledgment with retransmission of packets when necessary. Along with the Internet Protocol (IP ), TCP represents the heart of the Internet protocols.
Since many network applications may be running on the same machine, computers need something to make sure the correct software application on the destination computer gets the data packets from the source machine, and some way to make sure replies get routed to the correct application on the source computer. This is accomplished through the use of the TCP “port numbers”. The combination of IP address of a network station and its port number is known as a socket or an “endpoint”. TCP establishes connections or virtual circuits between two “endpoints” for reliable communications. Details of TCP port numbers could be found in the TCP/UDP Port Number document and in the reference.
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 that the application does not have to chop data into blocks before handing it off to TCP. TCP can group bytes into segments and passes them to IP for delivery.
TCP offers reliability by providing connection-oriented, end-to-end reliable packet delivery. 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 timeout mechanism allows devices to detect lost packets and request retransmission.
TCP offers efficient flow control – when sending acknowledgments back to the source, the receiving TCP process indicates the highest sequence number it can receive without overflowing its internal buffers.
Full-duplex operation: TCP processes can both send and receive packets at the same time.
Multiplexing in TCP: numerous simultaneous upper-layer conversations can be multiplexed over a single connection.
Protocol Structure – TCP Transmission Control Protocol
- Source port — Identifies points at which upper-layer source process receives TCP services.
- Destination port — Identifies points at which upper-layer Destination process receives TCP services.
- Sequence number — Usually specifies the number assigned to the first byte of data in the current message. In the connection-establishment phase, this field also can be used to identify an initial sequence number to be used in an upcoming transmission.
- Acknowledgment number – It contains the sequence number of the next byte of data the sender of the packet expects to receive. Once a connection is established, this value is sent.
- Data offset — 4 bits. The number of 32-bit words in the TCP header indicates where the data begins.
- Reserved — 6 bits. Reserved for future use. Must be zero.
- Control bits (Flags) — 6 bits. It carries a variety of control information.
- Window — 16 bits. It specifies the size of the sender's receive window, that is, the buffer space available in octets for incoming data.
- Checksum — 16 bits. It indicates whether the header was damaged in transit.
- Urgent Pointer — 16 bits. it points to the first urgent data byte in the packet.
- Option + Paddling – Specifies various TCP options. There are two possible formats for an option: A single octet of option type. An octet of option type, an octet of option length, and the actual option data octets.
- Data – contains upper-layer information.
I hope you found this article to be of use and it helps you prepare for your Cisco CCNA certification. I am sure you will quickly find out that hands-on real world experience is the best way to cement the CCNA concepts in your head to help you pass your CCNA exam!