I have proprietary application sending out multicast packet to the network. It is running on the linux with NIC MTU 1500.
And then I write a simple java program to using MulticastSocket class to receive message. I found it is DatagramPacket size is ~7900. The receiver program is running on the linux with NIC MTU 1500.
I rewrite the program in C and using recvfrom() call, but the result is the same.
I don’t understand why? is it packet size limited by NIC MTU? or can it be override by the program?
Fragmentation and reassembly happen at the IP layer, which is beneath the UDP protocol, so it’s essentially hidden from view. You can test for fragmentation by setting the ‘do not fragment’ flag on varying packet sizes.