参考此链接如何测试 9000 MTU/巨型帧是否正常工作 - Blah,云。
我尝试按照其说明指南从我的电脑(Windows 10)ping 巨型数据包。
ping -f -l 9000 192.168.1.88
但是,它显示如下错误:
对 192.168.1.88 执行 ping 操作,数据为 9000 字节:
数据包需要分片但设置了 DF。
我该怎么做才能使巨型数据包 ping 成功?
答案1
直接来自微软的 Technet 页面:
错误信息:
数据包需要分片但设置了 DF。
解释:
数据包长度太大,ping 命令无法处理。
用户操作:
通过从命令行中删除 -f 选项来关闭“不分段”标志,然后重试。在禁用“不分段”标志之前,您可以尝试使用 -l 选项来减小数据包大小。
正如页面所示,这意味着您发送的数据包大于可以处理的大小。
答案2
对于后来偶然发现这一点的人来说,尽管有“store=persistent”参数,但 netsh 方式似乎并不是持久的。
修改注册表很烦人,但 Powershell 可以解决问题:
假设您有名为 iSCSI1、iSCSI2 等的接口。
Get-NetAdapterAdvancedProperty "iSCSI*" -DisplayName "Jumbo*" | Set-NetAdapterAdvancedProperty -RegistryValue "9014"
然后你可以用 ping 来验证:
ping -f -l 8972 [host IP]
答案3
您选择了 4K MTU,而不是该教程测试的 9K MTU。目前,您可以发送的最大 ping 数据包大小为 4000。
答案4
设置 NIC 属性是不够的,因为那样只允许您接收巨型帧。
您还需要告诉 Windows 使用巨型帧。
1)在命令提示符或 PowerShell 中输入:
netsh interface ipv4 show subinterface
记下要启用巨型帧的接口的名称。
2)然后输入:
netsh interface ipv4 set subinterface “TheNameOfYourInterface” mtu=9000 store=persistent
3)重新启动计算机