Tcp sequencing and IP fragmentation

I know TCP segments are numbered (with sequence numbers) for reassembly/error recovery reasons.  
How do TCP segments and IP fragmentation correlate?  If the sender has an IP datagram that exceeds the layer 2's MTU, it fragments the datagrams and each datagram gets sent as separate frames across the wire.

Now, what is responsible for reassembly on the other end?   I know that with packet fragmentation, a packet id is defined and the "fragment" flag is turned on.  What is TCP's job in the reassembly of fragged IP datagrams?  Arent the fragmented packets ID'd anyway?
Who is Participating?

Improve company productivity with a Business Account.Sign Up

LimeSMJConnect With a Mentor Commented:
The Internet layer (IP protocol) within the TCP/IP architecture is responsible for reassmebly of a fragmented packet.

If a packet hits a network where the MTU is lower than the originator, the packet is fragmented to allow for transmission.  The fragmentation is done usually by the routers along the way so the sender does not know of the packet manipulation (sender won't decrease packet size if MTU is smaller).  Since the sender is only sending sequenced packet numbers (not caring about fragmentation), the fragmented packets need to have their own sequencing flags added in by the router - so that the IP layer can defragment at the receiving end.

TCP's job is provide the transmission link... IP helps negotiate the data packets along the way.

dissolvedAuthor Commented:
Cant fragmentation occur between the network layer and data link layer as well?
I heard that if an IP datagram is handed to the data link layer, it will be fragmented if it is to big. And each packet leaving the network will have the fragment flag turned on.

dissolvedAuthor Commented:
Also, cant the receiver send a ICMP error back to the sender saying "needs fragmentation" or something like that?
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

The ICMP request for fragmentation is generated by a router if the packet received has the "do not fragment" bit set and cannot be forwarded because the next hop MTU is too small for the packet (fragmenting is not possible to make the MTU smaller, so this error occurs).  The actual destination computer would never send an ICMP request for fragmentation.
I am not sure what you meant by :

"...IP datagram is handed to the data link layer, it will be fragmented if it is to big..."

The IP datagram is the packet itself... the sent payload.  If the sending computer knows of potential MTU problems, it may allow the packet to be fragmented (thus preventing any transmission delays).  Unless there is a stack misconfiguration, there is no way for a datagram to be internally fragmented between the OSI layers.
dissolvedAuthor Commented:
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.