Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 更改最大UDP数据包大小_Windows_Udp_Packet_Packet Capture_Packet Loss - Fatal编程技术网

Windows 更改最大UDP数据包大小

Windows 更改最大UDP数据包大小,windows,udp,packet,packet-capture,packet-loss,Windows,Udp,Packet,Packet Capture,Packet Loss,似乎我无法接收消息大于4096字节的UDP数据包。 在哪里可以更改此限制 是操作系统还是网络适配器相关 我的Windows Server 2012 R2在我的Windows 8.1 pc上运行正常时出现了此问题 任何提示都将不胜感激。您需要在发送方提高套接字发送缓冲区大小,在接收方提高套接字接收缓冲区大小。然而,普遍接受的UDP有效负载大小的实际限制是534字节。除此之外,它们可以被分割,如果一个片段没有到达,整个数据报将丢失。根据,有一个SO\u MAX\u MSG\u SIZE选项,即“协议

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

是操作系统还是网络适配器相关

我的Windows Server 2012 R2在我的Windows 8.1 pc上运行正常时出现了此问题


任何提示都将不胜感激。

您需要在发送方提高套接字发送缓冲区大小,在接收方提高套接字接收缓冲区大小。然而,普遍接受的UDP有效负载大小的实际限制是534字节。除此之外,它们可以被分割,如果一个片段没有到达,整个数据报将丢失。

根据,有一个
SO\u MAX\u MSG\u SIZE
选项,即“协议支持的面向消息的套接字的最大出站消息大小”。UDP套接字是“面向消息的套接字”(与“面向流的套接字”相反);TCP套接字是面向流的)


这表明操作系统施加了最大消息大小。遗憾的是,该页面在
SO\u MAX\u MSG\u SIZE
行的“Set”列中没有说“yes”,因此您的程序无法覆盖该最大值。

我使用开源软件Packetsender()进行测试(因此您所述的软件限制在本例中不应该是问题)。当我在本地Win 8.1 pc上使用它时,每次尝试都会得到预期的响应(超过4096字节)。当我在Win Server 2012上执行相同操作时,只有当数据包大小小于4096字节时,我才会收到响应(即使我尝试了100次,所以我认为这不会是packetloss)。所以我猜它必须是操作系统或网络适配器相关的,因为我使用相同的软件来接收和发送数据包。