Python:如何处理大于最大UDP安全数据包大小的UDP数据包



我在接收大于最大安全UDP大小的UDP数据包时遇到问题。我使用带有asyncio的python,在那里我创建了一个UdpReceiver类,它实现了用于实现数据报(UDP(协议的基类(asyncio.DatagramProtocol(

def datagram_received(self, raw_data: bytes, addr: Tuple[str, int]) -> None

但是,如果发送的数据超过了最大安全UDP负载,则会将其分段为不同的包。有人知道是否有可能克服网络上的最大安全UDP负载吗?我不需要收到每一条信息,所以我不需要接收所有发送的包裹。如果没有,我如何缓冲数据以组合单个消息中的所有片段?

最大有效载荷大小:最大安全UDP有效载荷为508字节,而数据包大小为576,最大IP标头为60字节,UDP标头为8字节。

异步:https://docs.python.org/3/library/asyncio-protocol.html

路由器通常会剪切或丢弃比MTU更大的UDP片段。

发送具有最大大小和dont fragment标志的数据包。在服务器上,您收到了切割的碎片。将收到的大小发送到客户端,并将其用作最大负载。

使用UDP的安全方法是通过它创建协议。添加具有大小、序列号的标头。。。阅读RTP(rfc3550(

我尝试发送1500字节。对本地网络UDP进行了研究。在互联网上,所有的碎片都没有在另一边收到。

最新更新