从 PC 执行巨型数据包 ping(Windows 10)

从 PC 执行巨型数据包 ping(Windows 10)

参考此链接如何测试 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)重新启动计算机

相关内容