澳门新葡亰网址下载网络协议补完计划–ICMP协议

by admin on 2020年1月25日

ICMP报文的格式和种类

rague | 13 九月, 2007 16:41

——————————–格式————————————-  
  各个ICMP报文的前32bits都以四个长度固定的字段:type类型字段(8位卡塔尔(قطر‎、code代码字段(8位卡塔尔(قطر‎、checksum校验和字段(二十个人State of Qatar

8bits连串和8bits代码字段:一齐决定了ICMP报文的项目。见怪不怪的有:
  
  类型8、代码0:回射诉求。
  
  类型0、代码0:回射应答。
  
  类型11、代码0:超时。
  
  16bits校验和字段:富含数据在内的总体ICMP数据包的校验和,其总结方法和IP尾部校验和的计量办法是肖似的。

下图是一张ICMP回射诉求和应答报文尾部格式

澳门新葡亰网址下载 1

对此ICMP回射乞求和回答报文来说,接下去是16bits标识符字段:用于标记本ICMP进程。
  
末段是16bits行列号字段:用于决断回射应答数据报。

ICMP报文蕴含在IP数据报中,归属IP的叁个顾客,IP底部就在ICMP报文的眼下

多个ICMP报文满含IP头部(20字节)、ICMP底部(8字节)和ICMP报文

IP尾部的Protocol值为1就评释这是叁个ICMP报文

ICMP尾部中的类型(Type)域用于评释ICMP报文的效能及格式

除此以外还或者有代码(Code)域用于详细表明某种ICMP报文的系列

不无数据都在ICMP尾部前边。科雷傲FC定义了13种ICMP报文格式,具体如下:

品类代码 类型描述

0 响应应答(ECHO-REPLY)

3 不可达到

4 源抑制

5 重定向

8 响应央求(ECHO-REQUEST)

11 超时

12 参数失灵

13 时间戳央浼

14 时间戳应答

15 音信伏乞(*已作废)

16 音信应答(*已作废)

17 地址掩码央浼

18 地址掩码应答

里面代码为15、16的音信报文已经作废。

上边是三种不认为奇的ICMP报文:

1.响应必要

我们数不胜数使用最多的ping,正是响应要求(Type=8)和应对(Type=0),生龙活虎台主机向多个节点发送二个Type=8的ICMP报文,假使中途未有分外(举个例子被路由器放弃、目的不回应ICMP或传输失利),则指标重回Type=0的ICMP报文,表明那台主机存在,更详细的tracert通过计算ICMP报文通过的节点来规定主机与目的之内的互联网间距。

2.对象不可达到、源禁止和过期报文

那二种报文的格式是意气风发律的,目的不可达到报文(Type=3)在路由器或主机无法传递数据报时使用,比如大家要连接对方四个官样文章的种类端口(端口号小于
1024)时,将回到Type=3、Code=3的ICMP报文,它要报告大家:“嘿,别连接了,作者不在家的!”,不以为奇的不行达到类型还应该有互连网不可达到(Code=0)、主机不可达到(Code=1)、左券不可达到(Code=2)等。源禁绝则肩负贰个决定流量的剧中人物,它打招呼主机减弱数额报流量,由于
ICMP未有过来传输的报文,所以蓬蓬勃勃旦甘休该报文,主机就能够慢慢恢复传输速率。最终,无连接方式互联网的标题正是数据报会错失,或许长日子在网络游荡而找不到目的,大概拥塞引致主机在规准期期内不也许重新组合数据报分段,那时就要触发ICMP超时报文的发出。超时报文的代码域有二种取值:Code=0表示传输超时,Code=1表示结合分段超时。

3.时间戳

日子戳伏乞报文(Type=13)和岁月戳应答报文(Type=14)用于测量试验两台主机之间数据报来回二次的传导时间。传输时,主机填充原始时间戳,选拔方收到乞请后填充选取时间戳后以Type=14的报文格式重返,发送方计算那一个时刻差。一些体系不响应这种报文。

——————————–种类————————————-

ICMP报文格式
ICMP就算是互联网层的情商,但要将ICMP报文放入IP中发送。

ICMP报文的公共头标由1字节的品种(type)、1字节的
代码(code)和2字节的校验和(checksum)组成。
类型域和代码域用来标志种种ICMP报文。类型域表示ICMP报文的门类,如今已定义了14
种,从品类值来看ICMP报文可分为二大类。

第1 类是取值为1~127的差错报文,

第2类是取值128以上的是音信(informational)报文。

1不能够达到信宿(Destination Unreachable)差错报文
2分组过大(Packet Too Big)差错报文
3超时(Time Exceeded)差错报文
4参数难点(Parameter Problem)差错报文
129遍来必要(Echo Request)报文
1贰16回到应答(Echo Reply)报文
130组成员查询(Group Membership Query)
131组分子报告(Group Membership Report)
132组分子结束(Group Membership Termination)
133路由器央求(Router Solicitation)
134路由器公告(Router Advertisement)
135邻机央浼(Neighbor Solicitation)
136邻机布告(Neighbor Advertisement)
137 重定向(Redirect)

王者 14310116049

澳门新葡亰网址下载 2

转载自:

  • 前言
  • ICMP左券概述
  • ICMP公约落到实处原理
  • ICMP数据包的格式
  • 常见的ICMP报文
  • 参谋资料

【嵌牛导读】ICMP全称Internet Control Message
Protocol(网际调控消息协议)

前言

参照他事他说加以考查浙大东军事和政院学出版社-罗军周主要编辑的《TCP/IP公约及网络编制程序本领》实行学习。本篇首要参照第五章:《ICMP左券》用于测量检验互连网恐怕检查测量试验IP数据包传输进程中的各样不当、并通告源地址。

提及ICMP,一些人或然会感觉目生,实际上,ICMP与大家连带。在互联网种类构造的各档期的顺序中,都亟需调整,而不一致的档期的顺序有两样的分工和垄断(monopoly卡塔尔(قطر‎内容,IP层的垄断(monopoly卡塔尔(قطر‎机能是最复杂的,首要担负差错调整、拥塞调节等,任何决定都以创建在信息的功底之上的,在遵照IP数据报的互联网体系中,网关必得和睦管理数据报的传输工作,而IP合同本人未有内在机制来赢得差错消息并处理。为了管理这一个不当,TCP/IP设计了ICMP合同,当某些网关开掘传输错误时,立刻向信源主机发送ICMP报文,报告出错音信,让信源主机采纳相应管理办法,它是黄金时代种错误和决定报中华全国文艺界抗击敌人组织议,不止用于传输差错报文,还传输调节报文。

ICMP合同概述

因为IP公约是不可信赖赖的传输服务、因而源地址产生的IP数据包很也许不可能达到指标地址(目之处空中楼阁、进度中某链路中断等卡塔尔。那时ICMP合同就能够检查实验IP数据包传输进度中的各样错误、并公告源地址。要求专心的是:ICMP被动触及一定是失误、但主动触发或然是测验。(比如type
= 13/14 type = 8/0)

【嵌牛鼻子】ICMP

ICMP公约落到实处原理

让发掘错误的路由器、向数据包的(通过IP数据包的新闻获取卡塔尔国源主机地址出殡二个ICMP数据包、并且经过ICMP数据包报告出错的原原本本的经过。

急需专一的是。ICMP公约是IP公约的互补、ICMP与IP左券坐落于同二个档次,但ICMP报文是封装在IP数据报的数目部分进行传输的。不过、此次IP传输假如出错、ICMP合同鲜明、将扬弃本次ICMP发送。

【嵌牛提问】icmp的左券有啥样?

ICMP数据包的格式

澳门新葡亰网址下载 35-1

ICMP报文即便细分为超级多类,但看看能够分为如图所示的三大
类:差错报告、调整报文和号召应对报文。

澳门新葡亰网址下载 45-2

  • 0 响应应答(ECHO-REPLY)

  • 3 不可到达

    澳门新葡亰网址下载 55-3

  • 4 源抑制

  • 5 重定向

  • 8 响应必要(ECHO-REQUEST)

  • 11 超时

  • 12 参数失灵

  • 13 时间戳央浼

  • 14 时间戳应答

  • 15 消息诉求

  • 16 新闻应答

  • 17 地址掩码须要

  • 18 地址掩码应答

  • ##### 响应央浼

咱们平日行使最多的ping,正是响应央浼和回应,黄金时代台主机向一个节点发送二个Type=8的ICMP报文,假使路上未有特别(比如被路由器屏弃、指标不回应ICMP或传输战败),则目的重临Type=0的ICMP报文,表达那台主机存在,更详细的tracert通过测算ICMP报文通过的节点来规定主机与对象以内的互联网间隔。

  • ##### 目的不可到达、源制止和过期报文

那二种报文的格式是相符的:对象不可达到报文在路由器或主机不可能传递数据报时使用,比如大家要连接对方一个不设有的体系端口(端口号小于1024)时,将赶回Type=3、Code=3的ICMP报文,它要告知大家:“嘿,别连接了,小编不在家的!”,管见所及的不可到达类型还应该有网络不可达到、主机不可到达、公约不可达到等。源抑制则出任三个说了算流量的剧中人物,它打招呼主机械收割缩多少报流量,由于ICMP未有过来传输的报文,所以借使结束该报文,一准时间后主机就能够慢慢回复传输速率。无连接格局互联网的难点就算多少报文错过,或许长日子在互连网游荡而找不到目的,也许窒碍以致主机在规准时期内无法重新组合数据报分段,那时将在触发ICMP超时报文的产生。超时报文的代码域有三种取值:Code=0表示传输超时,Code=1表示结合分段超时。

  • ##### 时间戳

岁月戳央求报文和岁月戳应答报文用于测量试验两台主机之间数据报来回叁次的传导时间。传输时,主机填充原始时间戳,接受方收到诉求后填充接纳时间戳后以Type=14的报文格式重返,发送方总计这几个时刻差。一些种类不响应这种报文。

  • ##### 关于终极七个字段

澳门新葡亰网址下载 6

对于由于错误被动生成的ICMP报文中还索要加上源IP数据包的IP尾部以至数据部分的前陆玖人、以源主机方便定位。举个例子:3、不可达到。4、源制止。5、重定向。11、超时。12、参数失灵。

【嵌牛正文】

参谋资料

ICMP数据包构造剖判ICMP公约数据包格式

ICMP报文格式

IC M P全数报文的前4个字节都以均等的,不过剩下的任何字节则互不相似。。

项目字段能够有1 5个不等的值,以描述特定类型的I C M P报文。有个别I C M
P报文还选拔代码字段的值来越发描述差别的准绳。

表示ICMP头部的数据构造

typedefstruct icmp_hdr

{ unsigned char icmp_type; //音信类型

unsigned char icmp_code; //代码

unsigned short icmp_checksum; //校验和

unsigned short icmp_id; //ID号

unsigned short icmp_sequence; //序列号

unsigned long
icmp_TImestamp;
//时间戳

} ICMP_HDR,*PICMP_HDR;

ICMP报文的门类

ICMP 平日被以为是 IP
层的一个组成都部队分,它传递差错报文以致别的须求注意的新闻。ICMP 报文平常被
IP 层或更加高层磋商(TCP 或 UDP)使用。ICMP 报文是在 IP
数据报之中传输的。IP 公约是不可信公约,无法保障 IP
数据报能够成功的到达指标主机,不能够進展差错调控,而 ICMP 合同能够扶持 IP
公约实现这么些成效。上面是 ICMP 报文的数据架构:

类型:一个 8 位类型字段,表示 ICMP 数据包类型;

代码:叁个 8
位代码域,表示钦定项目中的三个功能,要是三个品类中唯有大器晚成种效应,代码域置为
0;

侦察和:数据包中 ICMP 部分上的一个 16 位查验和;

澳门新葡亰网址下载 7

ICMP 差错报文

当发送黄金时代份差错报文时,报文始终满含 IP 的首部和发生 ICMP 差错报文的 IP
数据报的前 8 位字节。那样,选取 ICMP
差错报文的模块就能够把它与有些特定的协商(依据 IP
数据报首部中的合同字段来决断)和客户进度(依据包括在 IP 数据报前 8
个字节中的 TCP 或 UDP 报文首部中的 TCP 或 UDP 端口号来剖断)联系起来。

上面种种意况不会促成发生 ICMP 差错报文:

ICMP 报文差错(ICMP查询报文也许会发生ICMP差错报文);

目标地址是广播地址或多播地址的 IP 数据报;

用作链路层广播的数据报;

不是 IP 分片的第一片;

源地址不是单个主机的数据报,也等于说,源地址不容许是零地址、环回地址、广播地址或多播地址;

以下针对 ICMP 差错报文的系列进行剖判:

1、ICMP 指标不可达新闻:IP 路由器不可能将 IP
数据报发送给指标地址时,会给发送端主机重返多少个对象不可达 ICMP
音讯,并在这里个音信中体现不可达的实际原因。

2、ICMP
重定向音讯:假设路由器发掘发送端主机使用次优的路径发送数据时,那么它会回来三个ICMP
重定向音讯给那么些主机,这一个音信富含了最合适的路由新闻和源数据。主要发生在路由器持有更加好的路由消息的状态下,路由器会通过那么些ICMP 重定向音信给发送端主机叁个更合适的出殡路由。

3、ICMP 超时音信:IP 数据包中有一个字段
TTL(TIme
to live,生存周期),它的值随着每经过四个路由器就能够减 1,直到减到 0 时该
IP 数据包被放任。此时,IP 路由器将发送二个 ICMP
超时新闻给发送端主机,并通报该包已被抛弃。

4、源制止音讯:当 TCP/IP
主机发送数据到另风流浪漫主机时,固然速度高达路由器或然链路的饱和状态,路由器发出一个ICMP 源禁止新闻。

各类类型的I C M
P报文如图所示,分裂种类由报文中的类型字段和代码字段来一齐决定。图中的最后两列评释I
C M P报文是风华正茂份查询报文依旧意气风发份不是报文。因为对I C M
P差错报文有的时候供给作特别管理,因而大家供给对它们进行区分。例如,在对I C M
P差错报文进行响适那个时候候,恒久不会转移另风流倜傥份I C M
P差错报文(若无那些界定准绳,恐怕会遇见三个大过爆发另一个大过的情形,却非再发生差错,那样会无小憩地生生不息下去)。

当发送生机勃勃份I C M P差错报文时,报文始终满含I P的首部和产生I C M
P差错报文的I P数据报的前8个字节。这样,接纳I C M
P差错报文的模块就能够把它与有个别特定的协商(遵照I
P数据报首部中的合同字段来判定)和客户进度(依据满含在I
P数据报前8个字节中的T C P或U D P报文首部中的T C P或U D
P端口号来判定)联系起来。6 。 5节将譬世尊证实某个。

上边各个意况都不会造成发生I C M P差错报文:

1) ICMP差错报文(可是,I C M P查询报文大概会发出I C M P差错报文)。

2) 目标地点是广播地址或多播地址的I P数据报。

3) 作为链路层广播的数据报。

4) 不是I P分片的首先片。

5)
源地址不是单个主机的数据报。那正是说,源地址不可能为零地址、环回地址、广播地

址或多播地址。

这么些准则是为着制止过去同意I C M
P差错报文对播音分组响应所带动的广播沙暴。

澳门新葡亰网址下载 8

上边是二种不感觉奇的ICMP报文:

1.响应诉求

咱俩普通行使最多的ping,就是响应乞请(Type=8)和回答(Type=0),一台主机向三个节点发送一个Type=8的ICMP报文,若是中途未有充裕(比方被路由器吐弃、目的不回应ICMP或传输战败),则指标再次回到Type=0的ICMP报文,表达那台主机存在,更详尽的tracert通过总计ICMP报文通过的节点来规定主机与指标之间的互联网间隔。

2.目的不可达到、源制止和过期报文

那三种报文的格式是平等的,指标不可到达报文(Type=3)在路由器或主机不能够传递数据报时使用,比如我们要接二连三对方贰个不设有的系统端口(端口号小于1024)时,将赶回Type=3、Code=3的ICMP报文,它要报告大家:“嘿,别连接了,小编不在家的!”,管见所及的不得达到类型还只怕有互连网不可到达(Code=0)、主机不可达到(Code=1)、合同不可到达(Code=2)等。源抑制则担当二个说了算流量的角色,它打招呼主机缩短数额报流量,由于ICMP未有过来传输的报文,所以假诺结束该报文,主机就能逐年复苏传输速率。最终,无连接形式互联网的标题就是数码报会错失,也许长日子在网络游荡而找不到指标,可能堵塞导致主机在确准时间内不可能重新组合数据报分段,此时将在触发ICMP超时报文的发出。超时报文的代码域有三种取值:Code=0表示传输超时,Code=1表示结合分段超时。

3.时间戳

岁月戳央求报文(Type=13)和岁月戳应答报文(Type=14)用于测量试验两台主机之间数据报来回一回的传输时间。传输时,主机填充原始时间戳,选拔方收到诉求后填充接纳时间戳后以Type=14的报文格式重返,发送方总结那么些小时差。一些系统不响应这种报文。

ICMP 查询报文

—-ICMP
回送新闻:用于举办通信的主机或路由之间,剖断发送数据包是或不是中标达到对端的音讯。可以向对端主机发送回送央求新闻,也可以收起对端主机回来的回送应答信息。

—-ICMP
地址掩码音讯:重要用于主机或路由想要通晓子网掩码的景观。能够向那多少个主机或路由器发送
ICMP 地址掩码诉求新闻,然后经过采纳 ICMP
地址掩码应答音讯获得子网掩码音讯。

—-ICMP 时间戳音信:能够向那几个主机或路由器发送 ICMP
时间戳央浼消息,然后通过选取 ICMP 时间戳应答新闻得届期间音讯。

Ping 程序

Ping 程序选用 ICMP
回显乞求报文和回显应答报文(而不用经过传输层)来测量检验对象主机是还是不是可达。它是叁个反省类别连接性的主导确诊工具。

ICMP 回显哀告和 ICMP 回显应答报文是相称工作的。当源主机向指标主机发送了
ICMP 回显央浼数据包后,它愿意着对象主机的回答。目的主机在接纳三个 ICMP
回显需要数据包后,它会调换源、指标主机的地址,然后将收受的 ICMP
回显央求数据包中的多寡部分稳如泰山地封装在友好的 ICMP
回显应答数据包中,然后发回给发送 ICMP
回显供给的一方。假如校验精确,发送者便认为指标主机的回显服务平常,也即物理连接畅通。

举个例子:在极限上 Ping
下Google的地点,奇妙的开采谷歌地址既然不用翻墙都能上了,並且丢包率 0%。

$ ping www.google.com

PING www.google.com (173.194.127.148) 56(84) bytes of data.

64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148):
icmp_req=1
ttl=48TIme=11.0
ms

64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148):
icmp_req=2
ttl=48TIme=10.8
ms

64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148):
icmp_req=3 ttl=48 time=11.1 ms

64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148):
icmp_req=4 ttl=48 time=10.8 ms

64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148):
icmp_req=5 ttl=48 time=11.1 ms

64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148):
icmp_req=6 ttl=48 time=11.0 ms

64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148):
icmp_req=7 ttl=48 time=10.5 ms

64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148):
icmp_req=8 ttl=48 time=9.96 ms

64 bytes from hkg03s13-in-f20.1e100.net (173.194.127.148):
icmp_req=9 ttl=48 time=10.9 ms

^C

— www.google.com ping statistics —

9 packets transmitted, 9 received, 0% packet loss, time 8009ms

rtt min/avg/max/mdev = 9.963/10.830/11.123/0.368 ms

Traceroute 程序

Traceroute 程序主要用以侦测源主机到指标主机之间所通过的路由的情状。

Traceroute 使用 ICMP 报文和 IP 首部中的 TTL 字段,它充裕利用了 ICMP
超时音讯。其原理超轻松,开首时发送二个 TTL 字段为 1 的 UDP
数据报,而后每一遍接到 ICMP 超时萧后,按梯次再发送三个 TTL 字段加 1 的 UDP
数据报,以显明路径中的每一个路由器,而各类路由器在抛开 UDP
数据报时都会再次回到一个 ICMP 超时报文,而结尾到达目标主机后,由于 ICM
P选拔了二个不容许的值作为 UDP
端口(大于30000)。那样目标主机就能发送三个端口不可达的 ICMP 差错报文。

ICMP左券的应用

1 ICMP地址掩码诉求与应对

I C M P地址掩码央浼用于无盘系统在引导进度中获得自个儿的子网掩码。系统广播

它的I C M P央求报文(那风流倜傥历程与无盘系统在辅导进度中用锐界 A 锐界 P获取I
P地址是看似的)。无盘

系统获得子网掩码的另贰个主意是B O O T P公约。如图

I C M
P报文中的标记符和连串号字段由发送端放肆选取设定,这一个值在回复元帅被再次来到。

像这种类型,发送端就能够把回应与央求举办相配。

大家可以写三个简单易行的顺序(取名称叫i c m p a d d r m a s k),它发送少年老成份I C
M P地址掩码央求报

文,然后打字与印刷出富有的答复。由于日常是把诉求报文发往广播地址,由此这里大家也这么做。

指标地址(1 4 0 。 2 5 2 。 1 3 。 6 3)是子网1 4 0 。 2 5 2 。 1 3 。
32的播报地址。

sun% icmpaddrmask 140.252.13.63

receivedmask = ffffffe0, from 140.252.13.来3自3 本 机

receivedmask = ffffffe0, from 140.252.13.来3自5 b s d i

receivedmask = ffff0000, from 140.252.13.来3自4 s v r 4

在输出中大家第生龙活虎注意到的是,从s v r 4再次来到的子网掩码是错的。显著,固然s v
r 4接口

早就设置了不利的子网掩码,不过S V Odyssey4如故再次回到了一个平时的B类地址掩码,就如子网并

荒诞不经相像。

svr4% ifconfig emd0

emd0:flags=23《UP,BROADCAST,NOTRAILERS》

inet140.252.13.34 netmask ffffffe0 broadcast 140.252.13.63

S V 索罗德 4管理I C M P地址掩码请求进程存在过错。

小编们用t c p d u m p命令来查阅主机b s d i上的情况,输出如图6 –
5所示。我们用- e选项来查阅

硬件地址。

发到广播地址的ICMP地址掩码央求

只顾,就算在线路上哪些也看不见,可是发送主机s u n也能收到到I C M
P应答(带有上边

“来自本机”的输出游)。这是广播的平时天性:发送主机也能因而某种内部环回机制收到一份广播报文拷贝。由冬白术语“广播”的概念是指局域英特网的全体主机,因而它必需总结出殡和下葬主机在内。

接下去,b s d i广播应答,而s v r
4却只把应答传给伏乞主机。经常,应答地址必需是单播地址,除非必要端的源I
P地址是0 。 0 。 0 。
0。本例不归于这种情景,因而,把应答发送到广播地址是B S D / 3 8
6的二个里头差错。

RAV4 F C规定,除非系统是地点掩码的授权代理,不然它不能够发送地址掩码应答(为

了成为授权代理,它必须开展特别规计划,以发送那个回应。参见附录E)。不过,正如

咱俩从本例中看出的那样,大好些个主机在吸纳伏乞时都发送贰个应对,以致有点主

机还发送差错的对答。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图