2

Consider an example where host-A is sending data to host-B. While the fragments traverses many routers in between, some of the fragments are lost. So now the router identifies this and waits for that lost packet to arrive or it just routes it to the next router? If this is true, how does the lost packet be recovered?

3

There's no mechanism to request a fragment be resent. The entire packet cannot be reassembled, so the entire packet will have to be resent. This is why Fragmentation Is Bad(tm).

Routers typically do not care about fragmentation. They pass things on exactly as they receive them. (unless it's the source of the fragmentation.) As such, the router will be unaware of missing fragments.

(I'm ignoring the practice of "virtual reassembly".)

6
  • So, it is the job of the receiver to reassemble all the packets and see if anything is missing and then ask for a re transmission? I am assuming all received fragments will be reassembled at network layer of receiver. In this case if any fragment is missing, reassembly cant be done. So, will this still go to transport layer and then a re-transmission is requested since few fragments are missing? May 14 '16 at 22:59
  • 2
    Yes, it is the joint responsibility of the sender and recieved to ensure all the info that is required reaches the destination. That may not required every packet if recovery is possible; it may not require negotiating this on a packet-by-packet basis it the protocol can deal with them arriving out of order.. Both of which illustrate why the router doesn't try to make this decision; understanding all the possible protocols how they are being used, and how they might be implemented/optimized simply can not be part of its job.
    – keshlam
    May 15 '16 at 2:28
  • 2
    This also gets into QoS questions. If the protocol is e.g. streaming video, discarding lost packets may provide superior performance (at the cost of brief visual glitches). That's why this decision usually lives at the TCP/UDP layer of the stack, well above where routers live.
    – Kevin
    May 15 '16 at 4:11
  • @RakeshNittur Only senders retry, the receiver does not ask for more. It is up to the sender to retransmit until an acknowledgement or timeout. Acknowledgements can be dropped too, so the receiver sends another ACK of they receive a retransmit they don't need, effectively causing the ACK to retransmit in a roundabout way.
    – doug65536
    May 15 '16 at 5:11
  • @keshlam Citation needed. Which protocol does that? In TCP/IP only senders retry.
    – doug65536
    May 15 '16 at 5:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.