UDP数据包分片

标签 udp boost-asio fragmentation

在阅读了几十篇文章后,我找不到一个简单问题的答案——UDP 数据报可以分片到达吗?我知道如果它的大小超过 576 字节或类似大小,它可能会在途中变得碎片化,但它会在到达时合并吗?

换句话说,如果我通过 udp::socket::send_to() 发送一个数据包,我可以假设如果它没有在途中丢失,我会通过一个单次调用 udp::socket::async_receive_from()?

最佳答案

OS 网络堆栈将重新组装碎片并将完整的数据包提供给用户空间。如果其中一个片段丢失,用户空间将不会收到其余片段,但什么也不会。

关于UDP数据包分片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23847620/

相关文章:

python - 检查服务器是否在线的合理超时是多少?

ios - Swift:使用 GCDAsyncUdpSocket 接收 UDP

Mac OS X 上的 python 套接字给出 AttributeError : 'module' object has no attribute 'IF_INET'

c++ - Memory SPIKE - boost ASIO 异步读取

c++ - BOOST ASIO POST HTTP REQUEST——标题和正文

file - 如何在写入数百个多兆字节文件时避免文件碎片?

java - UDP读取字节流

c++ - 我可以使用 Boost.Asio 和 Boost.Beast 库发出 HTTPS 请求或 HTTP/2 请求吗?

c# - WPF内存碎片

tcp - IP分片和TCP ACK