UDP fragmentation packet order

796 views Asked by At

I send mixtures of large UDP packets back-to-back with small UDP packets. The large packets get fragmented to my MTU.

  • On RHEL6 (CentOS6), the small UDP packets always arrive at the receivers in the correct order with respect to the final fragment of any previous large packet.
  • On RHEL7, this no longer is the case. The small packet can get transmitted in-between the fragments of the larger packet, thus causing the receiver to see the small packet BEFORE the reassembled large packet.

As near as I can tell with ethtool, the configuration of the NIC is the same on both machines (It's actually the same machine and I swap hard drives).

So, my question is... What controls this behavior in RHEL7+? It's not udp-fragmentation-offload (That's set the same in both configurations). I'd like to find out how to force the fragments to be transmitted as a complete group, with no interfering packets, in RHEL7+.

Thanks,

XL600

1

There are 1 answers

0
László Papp On

If you just would like to force the fragmented UDP packets to be sequential in order without packets in-between, you could enforce this behaviour by:

sudo ethtool -L [INTERFACE_NAME] combined 1

But in general, it is not good to rely on this. Better to have reader code that does not make this assumption.