更改最大UDP数据包大小

时间:2015-03-15 00:41:09

标签: windows udp packet packet-capture packet-loss

似乎我无法接收消息大于4096字节的UDP数据包。 我在哪里可以更改此限制?

操作系统或网络适配器是否相关?

我在Windows Server 2012 R2上遇到此问题,而它在Windows 8.1上运行正常。

任何提示都会非常感激。

2 个答案:

答案 0 :(得分:0)

您需要在发送方处提高套接字发送缓冲区大小,并在接收方处提供套接字接收缓冲区大小。但是,UDP有效载荷大小的普遍接受的实际限制是534字节。在上面,它们可以被分段,如果片段没有到达,整个数据报就会丢失。

答案 1 :(得分:0)

根据the Microsoft documentation for socket optionsSO_MAX_MSG_SIZE选项是"协议支持的面向消息的套接字的最大出站邮件大小。" UDP套接字是面向消息的套接字" (而不是"面向流的套接字&#34 ;; TCP套接字是面向流的)。

这表明操作系统强加了最大邮件大小。可悲的是,该页面说"是"在" Set" SO_MAX_MSG_SIZE行的列,因此您的程序无法覆盖该最大值。