In my scenario, my server sending down 3004 packet. Because of MTU, the ip layer fragement my packet into 3 frame.
This is what I see on Wireshark:
Frame 1: payload: 0-1479 (1480 bytes)
Frame 2: payload: 1480-2959 (1480 bytes)
Frame 3: payload: 2960-3011 (52 bytes)
The frame 1 has 8 bytes UDP Header.
The issue happening on my read handler function. The packet that I receive only the first frame which is 1472 bytes (1480 bytes - 8 bytes udp header)
So whenever I send data bigger than 1500, my packet always get truncated to 1472.
Also I could not find the remaining of frame (Frame 2 and Frame 3) being received on read handler at all. Is there a set in Network Extension to prevent this from happening ?
I try to set MTU to 4000 (for example) on network settings but it still happening.
Thanks
EDIT:
I try to capture packet on iPhone as well. According to my pcap file, the data captured and assambled correctly. I received correct size of UDP packet on pcap file. But my read handler still only give me 1472 bytes size packet.
This is the frame that being assembled on iPhone
Frame 1: payload: 0-1471 (1472 bytes)
Frame 2: payload: 1472-1479 (8 bytes)
Frame 3: payload: 1480-2951 (1472 bytes)
Frame 4: payload: 2952-2959 (8 bytes)
Frame 5: payload: 2960-3011 (52 bytes)