ping 命令是测试网络是否连通最常用的命令,而无论是 Windows 还是 Linux,ping 命令都可以指定包长度,这对于验证网络设备的 MTU 非常有帮助。

先来看看在不同的操作系统下如何指定 ping 包长度及其各自的含义。

Windows

Windows 的 ping 命令通过 -l 参数指定包长度:> ping 192.168.1.1 -l 1000

使用 Wireshark 抓包看看:

可以看到 Length 为 1042 字节,比指定的包长度多了 42 字节。注意到 ICMP data 的长度正好是 1000 字节,加上 ICMP header 8 字节,IP header 20 字节,Ethernet header 14 字节,正好是 1042 字节。

也就是说,ping 命令指定的是 ICMP payload 的长度(不包括 ICMP header)。ping 命令作为 ICMP 协议的具体实现,这样的设定也符合逻辑。

当不使用 -l 参数时,默认的包长(ICMP payload)是 32 字节。

GNU/Linux

Linux 的 ping 命令通过 -s 参数指定包长度:$ ping 192.168.1.1 -s 1000

同样使用 Wireshark 抓包看看:

可以看到,Length 同样是 1042 字节,但 ICMP data 只有 992 字节,这是因为在 ICMP data 之前还有 8 个字节用于填入时间戳,也属于 ICMP payload 的一部分,只是 Wireshark 解析时分开显示而已。

当不使用 -s 参数时,默认的包长(ICMP payload)是 56 字节。

MTUIn computer networking, the maximum transmission unit (MTU) is the size of the largest protocol data unit (PDU) that can be communicated in a single network layer transaction.

也就是说,MTU 是 Maximum Transmission Unit(最大传输单元)的缩写,指的是「网络层」单次传输的最大字节数。

常见的 MTU 设置为 1500。而以太网帧长度的允许范围是 64—1518 字节(不考虑 jumbo 帧),指的是以太网线路上可传输的整个以太网帧的长度,扣除 14 字节以太网帧头、4 字节帧校验和之后,最大值正好是 1500 字节。

ping 与 MTU

假如要使用 ping 命令验证网络设备的 MTU,应该如何指定 ping 命令的包长度参数呢?由于 MTU 是整个 IP 包的最大长度,那么 ICMP 包的最大 payload 就是 MTU - 20 (IP header) - 8 (ICMP header),因此能 ping 通且不分片的最大参数值是 MTU - 28。

假如 MTU 为 1500,那么 ping 命令的长度参数最大可指定为 1472:

大于 1472 的值将导致分片:

小结Windows 和 Linux 下的 ping 命令分别使用 -l 和 -s 指定包长度。

ping 命令指定的包长度是 ICMP payload 的长度(不包括 ICMP header),加上 42 字节后为以太网帧的总长度。

MTU 指的是网络层协议的包长度。

ping 命令中指定的能 ping 通且不分片的最大长度是 MTU - 28。

以上。

linux ping mtu值,ping 包长度及 MTU相关推荐

  1. 计算机网络mtu值设置,应该如何设置mtu值才可以让网速达到最快-电脑自学网

    应该如何设置mtu值才可以让网速达到最快. 操作步骤: 第一步.测出自己当前网络最佳MTU值 敲下 "Win键+R",然后在运行窗口后输入"cmd",再敲回车键 ...

  2. windows中探测计算网络的MTU值,window中ping命令参数和Linux中ping命令参数

    索引 探测路由wan口MTU值方法: window中使用ping命令添加的参数信息 Linux系统下ping指令的格式及参数 如何探测window的MTU值,批处理之路由MTU值探测 探测路由wan口 ...

  3. 使用ping检测MTU值

    ping ping (Packet Internet Groper)是一种因特网包探索器,用于测试网络连接量的程序 . Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 主要是向特定 ...

  4. 用ping追踪计算机的最佳MTU值修改MTU值

    用ping追踪计算机的最佳MTU值&修改MTU值 1.什么是MTU MTU是Maximum Transmission Unit的缩写.意思是网络上传送的最大数据包.MTU的单位是字节. 大部分 ...

  5. LINUX手动查看和修改MTU值的方法

    默认的ANDROID系统中不带BUSYBOX,所以无法用BUSYBOX IFCONFIG来查看修改MTU值.其实网卡的MTU值是保存在/sys/class/net/eth0/mtu文件中,所以可以通过 ...

  6. 系统MTU值的更改方法

    windows7 一.找到最合适的MTU值 用Ping 命令来查找最合适的MTU值,如果不明白MTU 是怎么回事,可以参见的我另一篇文章<[WindowsXP 技巧]修改 MTU 值,让网络更快 ...

  7. Win10系统正确设置MTU值加快WIFI速度的方法

    MTU是Maximum Transmission Unit缩写,中文名:最大传输单元. 工具/原料 硬件:电脑 操作系统:Windows 10 方法/步骤 第一步:查询自己电脑的MTU值 右键[开始] ...

  8. mtu 服务器优化,修改MTU值优化网络

    一.MTU值对网络的影响 MTU,即Maximum Transmission Unit(最大传输单元),此值设定TCP/IP协议传输数据报时的最大传输单元.设置合适的MTU值可以解决"部分网 ...

  9. mtu设置失败_Oracle RAC该调整网卡MTU值

    在Oracle RAC的环境中,如果我们发现OSW监控数据显示包重组失败率过高,就需要引起足够的重视,因为这很可能会引发member kill/Node kill等重大故障,甚至在有些场景会连带影响到 ...

  10. 关于Oracle RAC调整网卡MTU值的问题

    墨墨导读:在Oracle RAC的环境中,如果我们发现OSW监控数据显示包重组失败率过高,就需要引起足够的重视,因为这很可能会引发member kill/Node kill等重大故障,甚至在有些场景会 ...

最新文章

  1. 测试函数: Ackely,Rastrigin,Griewangk,SumSquartes,Sphere,Quartic,Schwefel' Problem 12等
  2. 10 张图打开 CPU 缓存一致性的大门
  3. SPSS(|PASW)18 学习笔记(1):入门示例-克山病例
  4. [微信小程序系列] 动画案例之圆点沿着圆圈运动
  5. Mybatis和Spring整合
  6. rmi java 服务_javaweb项目启动时自动启动rmi服务器实例
  7. 退火算法 贪婪算法_算法贪婪策略简介
  8. mysql忘记密码怎么办?
  9. 2017.10.1 互不侵犯king 思考记录
  10. iOS中如何旋转UIView
  11. 那些前端应该知道的HTTP知识
  12. oracle 开启事务_javaSE第十四部分 JDBC(2)mysql事务和JDBC实现事务
  13. Atitit。Time base gc 垃圾 资源 收集的原理与设计
  14. picGo图片上传到码云失败,报错404-{“message”:“Branch”}的解决方法
  15. 磁共振线圈分类_磁共振检查的线圈选择
  16. 懂电脑的都不会买i7处理器,程序员:我有一个十几万的电脑梦
  17. Educoder---Java继承与接口、文件
  18. 为什么只有涨价才能救小米?
  19. 360oauth token是什么意思_Oauth/access token
  20. 【黑金动力社区】【FPGA黑金开发板】他和它的故事 之模块的沟通

热门文章

  1. svn up出现类似svn: Error converting entry in directory ‘.‘ to UTF-8问题解决
  2. Microsoft SQL Server 2005简体中文开发版下载
  3. 【PTA】7-1 jmu-Java-01入门-取数字浮点数(5分)
  4. PAT 计算机程序设计能力考试
  5. 老兵戴辉:华为操作系统28年史
  6. linux UART(RS232/485)驱动实验
  7. ubuntu + usb转RS232驱动
  8. linux wine-qq介绍2009版QQ精简
  9. 【NOIP2013提高组】华容道
  10. 使用AIDL挂断电话