Windows 更改最大UDP数据包大小
似乎我无法接收消息大于4096字节的UDP数据包。 在哪里可以更改此限制 是操作系统还是网络适配器相关 我的Windows Server 2012 R2在我的Windows 8.1 pc上运行正常时出现了此问题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选项,即“协议
任何提示都将不胜感激。您需要在发送方提高套接字发送缓冲区大小,在接收方提高套接字接收缓冲区大小。然而,普遍接受的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)。所以我猜它必须是操作系统或网络适配器相关的,因为我使用相同的软件来接收和发送数据包。