于网络排障以及系统管理工作里头,运用 ping 命令去发送大尺寸数据包,这属于一项既常见又实用的高级技巧,它不但是测试网络连通性的基础工具,更是评估网络路径质量、找出MTU限制问题的关键手段,掌握它的正确用法,能够协助我们深入洞悉网络行为,精确地定位性能瓶颈 。

为什么用linux ping大包能测试网络质量

传统的ping命令,其默认发送的是小包,这一行为主要是为了检测主机能否可达。可是,小包测试常常没办法将网络路径上潜藏的丢包、抑或是延迟linux之家,又或者是带宽瓶颈等问题给暴露出来。发送大尺寸的数据包,会占用更为漫长的传输时间,还会占用更多的链路资源,会给网络带来更大的压力。

大包男生大翻盖_大包男_linux ping大包

在这个进程当中,往返时间即RTT的变动、丢包率的提升会愈发显著。要是一条链路于小包情形里展现稳定,然而在大包测试之际出现延迟急剧增加或者频繁丢包,极有可能存有中间节点处理能力欠缺、带宽拥堵或者MTU不相匹配等状况。所以,大包测试是用以衡量网络“健壮性”以及“承载能力”的有效探针。

linux ping大包命令的具体参数怎么设置

Linux系统之内,运用 ping 命令去发送大包主要依靠两个参数,-s 用以指明发送的ICMP数据部分大小,-M 是用来设置路径MTU探测模式的。其中最常被使用的命令格式为 ping -s 包大小 目标主机,举例来说,ping -s 5000 192.168.1.1 会试着发送总长度高于5000字节的数据包。

大包男_linux ping大包_大包男生大翻盖

需要留意的是,此处所指定的“包大小”乃是ICMP报文数据部分的长度,整个IP数据包的总长度还得加上IP头部以及ICMP头部的开销,另外,可以运用 -c 参数去限制发送的次数,以此避免无休止的测试linux ping大包,就像 ping -s 8000 -c 10 这样,熟悉这些核心参数的组合,是开展有效测试的第一步。

ping大包时如何选择合适的包大小

并非越大越好地去选择包大小,得依据测试目的以及网络环境来决定。常见的测试包大小范围处于1500字节至9000字节之间。1500字节是标准以太网的MTU值,运用此大小能够测试数据包是不是需要在标准链路层进行分片。

linux ping大包_大包男_大包男生大翻盖

要是打算测试巨型帧也就是Jumbo Frames的支持状况,或者去发现分片点,那就能够从1472字节开始,这1472字节是1500减去包头得出的,然后逐步进行增加,比如说去测试2000字节、4000字节、8000字节。在广域网测试期间,鉴于中间网络设备呈现复杂状态,所以建议从较小的值开始递增测试,这个较小的值举例来说像1000字节,接着观察在哪个尺寸上会出现丢包或者延迟异常的情况,进而以此定位路径上的MTU限制。

linux ping大包与网络MTU有什么关系

最大传输单元,也就是MTU,它决定了网络接口一次能够发送的那个最大数据帧大小。要是使用 ping 发送时,那IP数据包的总长度超过路径上某段链路的MTU了,这样子该数据包就必定得被分片,不然就会被丢弃,然后返回“需要分片但设置了不分片位”的ICMP错误。这种情况就是MTU不匹配的典型表现。

采取利用ping大包这种方式,且进行MTU路径发现,它是排查此类问题的有效手段。借助组合-M参数,像ping -M do -s 1472目标IP这样,能够主动去设置“禁止分片”标志。一旦包大小超出路径MTU,便会立刻收到错误反馈,依据此能帮助我们精准探测出整条路径所能够支持的最大无分片传输单元(PMTU)。

大包男_linux ping大包_大包男生大翻盖

如何分析linux ping大包的返回结果

剖析结果之际,首要予以留意的是丢包率,也就是packet loss,以及往返时间,即round-trip time。稳定的低延迟状况加零丢包这种情形乃是最为理想的状态。要是大包测试之时出现丢包的情况,然而小包却呈正常态势,那么极有可能是中间路由器的缓冲区不够充足,或者链路存在着拥塞现象。在延迟这方面,不但得查看平均值,更应当关注延迟所产生的波动,也就是抖动。

是不是有 Frag neededTime to live exceeded 等特殊的ICMP错误消息返回,这得留意,这些可是定位路由和MTU问题的关键线索。另外呢,不同包大小时会有RTT变化趋势,这可以拿来对比。正常状况下,包大小改变时RTT会随其线性平缓增加;要是在某个尺寸上RTT突然跳变,那就或许触发了设备的分片处理或者触发了QoS策略 。

linux ping大包在网络排障中的实际应用案例

linux ping大包_大包男生大翻盖_大包男

于实际的运维情形当中,用户给出反馈称,访问某一内部应用时,其速度显得缓慢,然而基础网络的连通情况却是正常的。运用默认的ping测试,并未发现异常之处,紧接着运用 ping -s 4000 对应用服务器展开测试,当即观察到存在10%的丢包现象linux运维面试题,且延迟高达200ms。这一情况提示出linux ping大包,在路径之上存在着节点,该节点对于大数据包的处理效果欠佳。

再进一步运用MTU路径发现,最终确定公司出口防火墙的一个策略,此策略针对大于1500字节的UDP/ICMP包实施了限速举措。将该策略予以调整后,大包测试恢复到正常状态,应用访问速度方面的问题也得到了解决。还有另一个案例,在跨数据中心传输大文件时效率很低,借助大包ping测试有所发现,当包大小超过1400字节之际开始产生分片,最终经过详细排查找出是虚拟专用网络隧道MTU配置有误。

你于日常工作期间,有没有借助发送大包 ping 测试,成功找出过一个超乎想象的网络故障之处呢?欢迎于评论区分享你的实战经历,要是觉得此文对你有益处,请毫不吝啬地进行点赞与转发。

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复