Transmission Control Protocol (TCP - RFC 793) is considered as a reliable protocol. Transmission Control Protocol (TCP) is responsible for breaking up the message (Data from application layer) into TCP Segments and reassembling them at the receiving side. It is not sure that the data reaching at the receiving device is in the same order as the sending side, because of the problems in network or different paths packets flow to the destination. TCP is responsible for keeping the unordered segments in the right order. TCP assures a reliable delivery by resending anything that gets lost while traveling the network.
Characteristics of Transmission Control Protocol (TCP).
Stream Data transfer: Applications working at the Application Layer transfers a contiguous stream of bytes to the bottom layers. It is the duty of TCP to pack this byte stream to packets, known as TCP segments, which are passed to the IP layer for transmission to the destination device. The application does not have to bother to chop the byte stream data packets.
Reliability: The most important feature of TCP is reliable data delivery. In order to provide reliability, TCP must recover from data that is damaged, lost, duplicated, or delivered out of order by the Network Layer. TCP assigns a sequence number to each byte transmitted, and expects a positive acknowledgment (ACK) from the receiving TCP layer. If the ACK is not received within a timeout interval, the data is retransmitted. The receiving TCP uses the sequence numbers to rearrange the segments when they arrive out of order, and to eliminate duplicate segments.
Flow control: Network devices operate at different data rates because of various factors like CPU and available bandwidth. It may happen a sending device to send data at a much faster rate than the receiver can handle. TCP uses a sliding window mechanism for implementing flow control. The number assigned to a segment is called the sequence number and this numbering is actually done at the byte level. The TCP at the receiving device, when sending an ACK back to the sender, also indicates to the TCP at the sending device, the number of bytes it can receive (beyond the last received TCP segment) without causing serious problems in its internal buffers.
Multiplexing: Multitasking achieved through the use of port numbers.
Connections: Before application processes can send data by using TCP, the devices must establish a connection. The connections are made between the port numbers of the sender and the receiver devices. A TCP connection identifies the end points involved in the connection. A socket number is a combination of IP address and port number, which can uniquely identify a connection.
Full duplex: TCP provides for concurrent data streams in both directions
You have learned the characteristics of Transmission Control Protocol (TCP). Click "Next" to continue.
• TCP/IP Transport Layer
• Transmission Control Protocol (TCP) Segment Header
• TCP Three-way Handshake
• Multiplexing and Demultiplexing using port numbers
• Transmission Control Block (TCB)
• TCP Sliding Window
• TCP Connection Termination
• User Datagram Protocol (UDP)
• Differences between TCP and UDP