Quantcast
Viewing all articles
Browse latest Browse all 10

Transmission Contol Protocol (TCP) confusion

Question

I am confused as to how the TCP actually works. I have read in several books and articles that it is responsible for the rearranging of transmitted datagrams at the receiving host. However, I have been reading RFC 793, and can’t find such specification. On the other hand, RFC 791 (Internet Protocol) explicitly states that the Internet Protocol is responsible for rearranging sent packets at the receiving host. Any help? Thank you!

Answer

From the perspective of IP, a packet is a single unit of data. It may be fragmented as it traverses devices with different MTU (maximum transmission unit), and is responsible for putting those fragments back together at the other end. So a 1500 byte packet may get split into 5 fragments as it traverses part of the network with a 300 MTU and then the packet is reconstructed at the other end.

TCP on the other hand deals with streams of data, consisting of any number of IP packets. So it is TCPs responsibility to ensure that 1) the order of the packets in the stream are correct (when passed up to the next layer), and 2) they all make it through – or indicate an error otherwise

So they are both responsible for data sequence within their own layers.

But each ISO layer has no knowledge of upper layers. So it simply isn’t possible for IP to re-arrange packets in the correct sequence for TCP – the sequence that TCP expects packets to be in is meaningless to IP. In the same way that TCP cannot ensure that an HTTP call is correctly configured, or for ethernet to know that an IP packet is correctly addressed.

Answered by Paul

Viewing all articles
Browse latest Browse all 10

Trending Articles