INFO: UDP Datagram Can Be Silently Discarded if Larger than MTUID: Q233401
|
When a UDP datagram is larger than the MTU size of physical media
and there is no ARP entry for the host it is sent to,
Microsoft Windows TCP/IP implementation keeps only the last fragment of
the UDP datagram sent to a given destination while waiting for an ARP reply. The rest of fragments are silently discarded.
For example, when a WinSock application attempts to send a single UDP datagram with 12501 bytes of data,
the IP layer performs fragmentation and generates nine IP fragments on an Ethernet. The first eight fragments are discarded and only the last fragment is kept while waiting for an ARP reply. When the first ARP
reply is received, only the last fragment is sent.
This behavior is by design and complies to Host Requirement RFC stating that ARP should save at least one packet.
To avoid the UDP packet drop:
Value: ArpCacheMinReferencedLife
Key: Hkey_Local_Machine\System\CurrentControlSet\Services\
\Tcpip\Parameters
For more information about the ARP cache life, refer to the following
article:
Q166750: ARP Cache Entries May Not Time Out for 10 Minutes
Additional query words: winsock udp sentto drop arp cache
Keywords : kbIP kbWinsock
Version : WINDOWS:95; winnt:3.5,3.51,4.0,4.0 SP4,5.0
Platform : WINDOWS winnt
Issue type : kbinfo
Last Reviewed: June 10, 1999