环境:
os:CentOS Linux 7

1. 背景

使用vmware创建了一个centos7的虚机,端口ens33的mtu值默认为1500,如图

使用命令ping <ip> -M do -s <packagesize> -c 5来验证不分片时最大的传输包长,有如下结果

  • -M do:表示ping包不分片
  • -s:指定icmp报文中数据部分的大小(单位:字节/B)
  • -c:指定发送ping包的个数

图上可以看出当-s 1472可以正常ping通,当-s 1473时显示message超过mtu限定值

今天就这个1472怎么来的,展开分析

2. MTU

最大传输单元MTU(Maximum Transmission Unit,MTU),是指网络能够传输的最大数据包大小,以字节为单位。MTU的大小决定了发送端一次能够发送报文的最大字节数。如果MTU超过了接收端所能够承受的最大值,或者是超过了发送路径上途经的某台设备所能够承受的最大值,就会造成报文分片甚至丢弃,加重网络传输的负担。如果太小,那实际传送的数据量就会过小,影响传输效率

如图,通常情况下MTU用以指示整个IP报文的最大长度(IP头+三层Payload),换句话说MTU是一个三层的定义。此外IP报文头固定20字节,所以当MTU为1500时,数据载荷可以封装1480字节(如果是发送ping包,这里的1480就是指ICMP报文的长度)

3. ICMP报文

Ping程序是最常见的用于检测IPv4和IPv6网络设备是否可达的调试手段,它使用ICMP的echo信息来确定。当ICMP报文的type字段为0时,代表Echo响应;当ICMP报文的type字段为8时,代表Echo请求。

  • Type:Type字段表明消息的类型,1B
  • Code:Code字段表示此消息类型细分的类型,1B
  • Checksum:表示ICMP报文的校验和,2B
  • Identifier:2B
  • Sequence number:2B
  • Optional data:数据部分,对应命令ping <ip> -M do -s <packagesize> -c 5-s的大小

所以当ICMP报文类型为0或8时,其固定的报文头长度为8B

4. wireshark抓包

下图是执行ping 172.16.16.1 -M do -s 1472 -c 5时的抓包结果

5. 总结

  • MTU默认值为1500,一般指IP报文长度为1500B;由于IP头默认20B,所以ICMP报文为1480B
  • ICMP报文头为8B,所以ICMP载荷为1472B,对应ping命令的-s参数大小

在MTU为1500,不分片的条件下,ping包长最大为1472B的理解相关推荐

  1. IP分片 ping包

    通常ping命令发送的icmp包的大小是一定的,比较小. 如果要使发送的包在发送过程中分片,要使用参数加大ip包的负载,也就是icmp包的大小. -l 选项可以设置IP包的负载大小,后面的数值设置ic ...

  2. Bellhop 海底地形起伏条件下的传播特性

    文章目录 前言 一.预备内容 二.水平海底波导(水平海底) 1.海底水平的深海波导中的声线 ①.环境文件 ②.Matlab 命令 ③.执行结果 2.海底水平的深海波导中的本征声线 ①.环境文件 ②.M ...

  3. 在城域网条件下城乡学校之间校际合作和互动发展研究

    茂名市<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> &quo ...

  4. linux系统下的ip分片程序,Linux下IP分片与重组

    Linux下IP――分片与重组 原理介绍 为一个数据包片再次分片 为数据包分片和为数据包片再次分片之间的细微差别就在于网关处理MF比特的不同.但一个网关为原来为分片的数据包分片时,除了末尾的数据包片, ...

  5. 在不允许新建对象的条件下,将list中指定条件的值去除

    package com.liujianwang.learning;import java.util.LinkedList; import java.util.List;public class Lis ...

  6. ISME:南土所梁玉婷组-不同气候条件下微生物代谢及残体介导施肥对土壤有机碳的影响...

    不同气候条件下微生物代谢及残体介导施肥对土壤有机碳的影响 Microbial metabolism and necromass mediated fertilization effect on soi ...

  7. Nature子刊:干旱条件下土壤细菌网络的稳定性不如真菌网络

    应对干旱,细菌崩了,真菌依然很稳 Soil bacterial networks are less stable under drought than fungal networks Nature C ...

  8. EM不同气候条件下土壤稀有与丰富微生物类群的分化策略

    点击蓝字关注我们 题目:不同气候条件下土壤稀有与丰富微生物类群的分化策略 期刊:Environmental Microbiology (2020) 三年均IF:5.2 通讯作者:梁玉婷 & 孙 ...

  9. 集群空间服务器接收不到消息,解决Redis集群条件下键空间通知服务器接收不到消息的问题...

    解决Redis集群条件下键空间通知服务器接收不到消息的问题 键空间通知介绍 键空间通知使得客户端可以通过订阅频道或模式, 来接收那些以某种方式改动了 Redis 数据集的事件. 可以通过对redis的 ...

最新文章

  1. yum update不升级内核方法
  2. STL容器汇总(一)
  3. 荣耀手表2鸿蒙,鸿蒙2.0曝光 计划在明年用于手表手环上
  4. IpIImage - CvMat 转换方法
  5. C++STL与泛型编程(4)OOP(面向对象编程) Vs. GP(泛型编程)
  6. win10一键重装系统​
  7. TCP/IP review之 静态路由
  8. Cocos2d-js-v3.2 在 mac 上配置环境以及编译到 Andorid 的注意事项(转)
  9. python爬虫步骤-黑客基础 编写Python爬虫入门步骤
  10. Makeflie自动生成依赖,自动化编译
  11. java案例代码16-java正则表达式的使用
  12. 推荐几款精美耐看的xshell配色方案
  13. 如何看待越来越多年轻人追捧「摸鱼哲学」,拒绝努力的年轻人真比老一辈活得更通透吗?
  14. 全网最全java Springboot对接微信公众号开发平台(可能是最全)!
  15. 【ArcGIS Pro二次开发】(15):用地用海名称和代码互转
  16. 淘宝品牌产品无授权开直通车怎么实现
  17. 输出直角三角形图案-c++
  18. springboot和springcloud的区别是什么?
  19. html5隐藏%3ctextarea,html text隐藏,html textarea
  20. 应变片悬臂梁 电桥电路计算

热门文章

  1. Golang将十进制转化为二进制字符串
  2. 橡皮筋CRectTracker使用心得
  3. Unity Scene中不显示天空盒效果
  4. win10电脑分盘+并盘
  5. excel mysql 参数查询语句_如何用SQL语句查询Excel数据
  6. python模拟生成steam手机二次验证令牌
  7. TMI4054锂电池充电管理IC
  8. python3.6环境下安装gevent,附协程TCP服务器客户端代码
  9. 生日祝福html_太康县网上订生日蛋糕预定跑腿送货上门提前预订蛋糕电话
  10. 什么软件可以提取视频中的音频制作成手机铃声 1