4

I have a question on how TCP_ACK works when the original packet are fragmented.

For example, original packet size is 1,500*N bytes and MTU is 1,500. Then, the packet will be frgmented into (approximately) N packets. In this case, how does the receiver sends TCP_ACK to the sender? I checked with wireshark, it seems that the receiver sends TCP_ACK for every two fragmented packet. Is it right?

Could you give me some refereces for this or explanation? Thanks.

1 Answers1

3

IP layer on the receiver stack reassembles all the IP fragments into a single TCP segment before handing the packet over to TCP. Under normal conditions, TCP should send only one ACK for the entire TCP segment. The ACK # would be the next expected SEQ # as usual.

jman
  • 11,334
  • 5
  • 39
  • 61
  • does this mean that if one fragment does not arrive the tcp will send an error to the source for just one fragment, so that this fragment can be resent – EugenSunic Aug 22 '16 at 11:02