数据包大小超过 1500

Posted

技术标签:

【中文标题】数据包大小超过 1500【英文标题】:Packet size more than 1500 【发布时间】:2020-03-24 02:13:28 【问题描述】:

我正在尝试使用 SharpPcap 和 PacketDotNet 发送超过 2000 字节的数据。 但是,MTU(1500 字节)小于数据的大小。 我尝试使用https://support.zen.co.uk/kb/Knowledgebase/Changing-the-MTU-size-in-Windows-Vista-7-or-8 设置 MTU(至 5000),但仍然抛出如下错误:

SharpPcap.PcapException: Can't send packet: send error: PacketSendPacket failed
at SharpPcap.LibPcap.LibPcapLiveDevice.SendPacket(Byte[] p, Int32 size)
at SharpPcap.LibPcap.PcapDevice.SendPacket(Byte[] p)
at SharpPcap.LibPcap.PcapDevice.SendPacket(Packet p)

谁能帮帮我...

【问题讨论】:

【参考方案1】:

为了在 Windows 中发送大于 1500 字节的以太网数据包,您需要 2 件事:

更改 MTU(您已经了解了)
    netsh interface ipv4 set subinterface "Your Interface Name" mtu=2000 store=persistent
您需要在设备管理器中激活巨型帧

请注意,这必须在发送数据包的设备和接收数据包的设备上完成。

【讨论】:

以上是关于数据包大小超过 1500的主要内容,如果未能解决你的问题,请参考以下文章

UDP数据包的大小

丢弃大于 1500 字节的 UDP 数据包

路由器mtu值设置

网络原理-2

路由器里的MTU能改吗?把MT改小网速会快些吗?

如果我在 C# 中发送 0 有效载荷数据,udp 数据包的大小是多少?