我通常发送 3 到 15 KB 的数据包,但有时我需要发送一个大约 0.8-0.9 MB 的大数据包。在这种情况下,UDP 套接字将停止,因为单个数据包大小可能存在一些限制。
我怎样才能增加这个限制,以便我可以发送大数据包?
UDP包头中的length
字段只有16位宽;你不能有一个大于 65,535 字节的单个 UDP 数据包(也包括标头,所以实际上限制是 65,527 字节;它可能甚至更低,因为 IP 有其他限制)。
请注意,大于 MTU 的 UDP 数据包(在您的主机之间的每一个希望)将按 IP 拆分。如果其中一个部分丢失,则整个 UDP 数据包将被丢弃。没有重传。
在本地 LAN 上,流量较低时您可能不会注意到差异,但在任何不太理想的情况下,这可能会对性能造成巨大影响。
我认为这会更好:
尽管第 4 层标头中的字段大小有限制,但可以使用 >64K 的数据包。请参阅IPv6 Jumbograms。