C# UdpClient发送超过1500字节MTU的数据包会怎么样

如果不设置DontFragment

udpClient.DontFragment = false;

那么可以发送数据包。接收端随缘收到数据包。使用WireShark可以检测到网卡上对应的数据包。

如果设置DontFragment

udpClient.DontFragment = true;

在windows上会 使用winSock2的Send函数,然后会立刻返回-1。

错误码是WSAEMSGSIZE,表示message size太大。

Message too long.
A message sent on a datagram socket was larger than the internal message buffer or some other network limit, or the buffer used to receive a datagram was smaller than the datagram itself.

使用WireShark检测不到网卡上对应的数据包。

posted @ 2022-10-04 16:50  dewxin  阅读(465)  评论(0编辑  收藏  举报