我想向本地网络中的所有对等方发送广播消息.消息是32位整数.我可以肯定,这个消息不会让我支离破碎,对吧?将有两个选项: - 对等体将立即接收整个消息 - 对等体根本不会接收消息
更进一步,4个字节是最大数据大小,可以在一个UDP数据报中发送?我使用基于以太网的网络占99%.
IPv4指定支持的最小MTU为576字节,包括IP标头.您的4字节UDP有效负载将导致IP数据包远小于此,因此您不必担心碎片.
此外,您期望的结果 - "对等体将立即接收整个消息或对等体将根本不接收消息" 始终是UDP如何工作,即使存在碎片.如果片段没有到达,您的应用程序根本不会收到数据包.
对于UDP的规则是"包可以到外的顺序,重复,或根本没有.如果数据包没有到达,这将是整个数据包,并没有错误.".("无错误"显然仅在IP校验和的适度限制内是正确的).