Internet 控制报文协议 -- ICMP

2016-01-06 22:09:37   最后更新: 2016-01-06 22:09:37   访问数量:1307




ICMP 经常被认为是 IP 层的一个组成部分,它传递差错报文以及其他需要注意的信息

 

他可以用于无盘系统引导过程中获取自己的子网掩码、系统查询当前时间戳或检验端口是否可达(分别对应的类型字段为:17、18,13、14,15、16)

 

ICMP 协议的不同类型是由报文中的类型和代码字段来共同决定的

ICMP 报文分为差错报文和查询报文,对于一个差错报文的响应永远都不会是一个差错报文,这个限制是为了避免无休止的差错报文的循环响应

 

下面的情况会导致 ICMP 产生差错报文:

  1. ICMP 查询报文可能收到差错报文作为响应
  2. 目的地址是广播地址或多播地址的 IP 数据报
  3. 作为链路层广播的数据报
  4. 不是 IP 分片的第一片
  5. 源地址不是单个主机的数据报(源地址是零地址、环回地址、广播地址或多播地址)

 

下表罗列了所有的 ICMP 报文的类型和对应的代码:

类型代码描述查询差错
00Echo Reply
回显应答(PING应答)
x 
30Network Unreachable
网络不可达
 x
31Host Unreachable
主机不可达
 x
32Protocol Unreachable
协议不可达
 x
33Port Unreachable
端口不可达
 x
34Fragmentation needed but no frag. bit set
需要进行分片但设置不分片比特
 x
35Source routing failed
源站选路失败
 x
36Destination network unknown
目的网络未知
 x
37Destination host unknown
目的主机未知
 x
38Source host isolated (obsolete)
源主机被隔离(作废不用)
 x
39Destination network administratively prohibited
目的网络被强制禁止
 x
310Destination host administratively prohibited
目的主机被强制禁止
 x
311Network unreachable for TOS
由于服务类型TOS,网络不可达
 x
312Host unreachable for TOS
由于服务类型TOS,主机不可达
 x
313Communication administratively prohibited by filtering
由于过滤,通信被强制禁止
 x
314Host precedence violation
主机越权
 x
315Precedence cutoff in effect
优先中止生效
 x
40Source quench
源端被关闭(基本流控制)
  
50Redirect for network
对网络重定向
  
51Redirect for host
对主机重定向
  
52Redirect for TOS and network
对服务类型和网络重定向
  
53Redirect for TOS and host
对服务类型和主机重定向
  
80Echo request
回显请求(PING请求)
x 
90Router advertisement
路由器通告
  
100Route solicitation
路由器请求
  
110TTL equals 0 during transit
传输期间生存时间为0
 x
111TTL equals 0 during reassembly
在数据报组装期间生存时间为0
 x
120IP header bad (catchall error)
坏的IP首部(包括各种差错)
 x
121Required options missing
缺少必需的选项
 x
130Timestamp request (obsolete)
时间戳请求(作废不用)
x 
14 Timestamp reply (obsolete)
时间戳应答(作废不用)
x 
150Information request (obsolete)
信息请求(作废不用)
x 
160Information reply (obsolete)
信息应答(作废不用)
x 
170Address mask request
地址掩码请求
x 
180Address mask reply
地址掩码应答
  

 

PING 的命名源于声呐操作,PING 程序的目的是为了检测另一台主机是否可达

PING 程序的主要工作是发送一份 ICMP 回显请求给目的主机,并等待 ICMP 回显应答

PING 程序不仅可以测试另一台主机是否可达,还可以测试主机的往返时间

 

PING 程序一般是在内核中实现 ICMP 的功能,他只利用 ICMP 回显请求和应答报文,而不用经过传输层

 

欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,只有全部原创,只有干货没有鸡汤

 






读书笔记      技术帖      龙潭书斋      time      ping      协议      protocol      icmp      internet      tcp/ip详解      子网掩码      时间戳      掩码     


京ICP备15018585号