我会说它看起来很正常。但我认为你这样做有点错误。
Ping 只有一个功能:探测,即“你好,你在吗”-“你好,是的,我在这里”。虽然它向您显示了两台主机之间的延迟,但它不是网络性能工具。
您的“空”网络永远不会沉默。当您将两个网络设备(任何设备)连接在一起时,它们将立即开始交换各种信息;可用性、功能、链接状态等。这是(如 ICMP)网络管理流量,由 CPU 处理。
任何网络设备的主要功能都是流量转发。当讨论的第一个数据包到来时,第 2 层交换机将首先检查 MAC/ARP 表以查看通向目标的端口是否已知。如果没有,它将通过 ARP 网络学习目标端口。一旦知道,流量转发就被委托给转发引擎。CPU 在该讨论中不会接触数据包,但仍会继续与其他网络设备通信。L3 转发(即路由)通常完全由 CPU 完成。这取决于设备,一些路由交换机能够进行类似于 L2 交换的硬件数据包转发。这被称为“一次路由/多次切换”或“多层切换”。
网络设备被配置为维护网络的主要功能。所有管理流量都被赋予次要优先级,而 ICMP ping 具有最低的低优先级。这是 - 据我所知 - 适用于所有设备。允许 ICMP 具有更高的优先级将为诸如Ping of Death和Ping Flood之类的 DOS 攻击打开大门。
因此,测试 2 和 3 无关紧要。设备正在响应,这表明流量正在正确流动。设备不会为 ping 牺牲 CPU 周期,它们只会在(或如果!)有时间时做出响应。一旦网络获得更多流量,您可以预期网络设备 ping 响应的变化更大。这仍然是预期的行为,它们的延迟与网络性能没有任何关系。主机到主机的响应时间应该受到的影响较小。
测试 1 和 4 更明智;但它们不是 L2 和 L3 转发性能之间的有效比较。在测试 1 中,您正在 ping 一个“资源”,在测试 4 中,您正在 ping 一个服务器 - 即不是同一个设备。虽然网络可能正在发挥作用,但延迟取决于接收者。以上内容也适用于任何计算机;NIC 是一个网络设备,ICMP 由 CPU 处理……也许您的服务器正在花时间响应。当您 ping 到不同的子网时,您会带来另一个潜在的延迟来源 - 默认网关。
如果要测试网络的转发能力,则需要以不同的方式进行。
- 下载iperf。这是一个简单但非常强大的网络性能工具。从默认 TCP 测试开始。之后您可以更改参数、运行 UDP 测试等以进行更具体的测试。
- 在所有测试中使用相同的两个设备以排除基于主机的差异
- 连接的位置取决于测试的具体内容 - 布线、接线板等也是潜在的延迟来源
- 我会在所有测试中使用静态 IP;我不希望我的测试设备做任何我没有明确指示他们做的事情,包括更新 IP
Ping 谬误