Internet 控制报文协议 -- ICMP

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




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号