C++ 如何增加UDP的最大数据包大小?
我通常发送3到15KB的数据包,但有时我需要发送大约0.8-0.9MB的大数据包。在这种情况下,UDP套接字将停止,因为可能对单个数据包大小有一些限制C++ 如何增加UDP的最大数据包大小?,c++,udp,C++,Udp,我通常发送3到15KB的数据包,但有时我需要发送大约0.8-0.9MB的大数据包。在这种情况下,UDP套接字将停止,因为可能对单个数据包大小有一些限制 如何增加此限制以发送大数据包?UDP数据包头中的长度字段的宽度仅为16位;你不能有一个大于65535字节的UDP数据包(也包括报头,所以实际上限制是65527字节;由于IP有其他限制,它甚至可能更低)。请注意,大于MTU的UDP数据包(主机之间希望如此)将被IP拆分。如果其中一个部分丢失,整个UDP数据包将被丢弃。没有重传 在本地局域网上,由于通
如何增加此限制以发送大数据包?UDP数据包头中的
长度
字段的宽度仅为16位;你不能有一个大于65535字节的UDP数据包(也包括报头,所以实际上限制是65527字节;由于IP有其他限制,它甚至可能更低)。请注意,大于MTU的UDP数据包(主机之间希望如此)将被IP拆分。如果其中一个部分丢失,整个UDP数据包将被丢弃。没有重传
在本地局域网上,由于通信量较低,您可能不会注意到这一差异,但在任何不太理想的情况下,这可能会对性能造成巨大影响
我认为最好是:
- 对大于几KB的任何内容使用TCP
- 拆分您的消息(您很快就会发现您正在重新发明TCP)
- 在UDP之上使用其他经过良好测试的协议。一个例子是