在网络协议中,ICMP协议的作用有很多,它既可以对网络安全作出贡献,又可以进行一些数据报错,故障隔离恢复等工作。那么对于这个人见人爱的协议我们来详细地介绍一下吧。
ICMP协议简介
ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。
网络本身是不可靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。ICMP的报头长8字节,结构如图1所示。
(图1 ICMP报头结构)
类型:标识生成的错误报文,它是ICMP报文中的***个字段;
代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因;
校验和:存储了ICMP所使用的校验和值;
未使用:保留字段,供将来使用,起值设为0;
数据:包含了所有接受到的数据报的IP报头。还包含IP数据报中前8个字节的数据;
ICMP协议提供的诊断报文类型如表1所示。#p#
类型
|
描述
|
0
|
回应应答(Ping应答,与类型8的Ping请求一起使用)
|
3
|
目的不可达
|
4
|
源消亡
|
5
|
重定向
|
8
|
回应请求(Ping请求,与类型8的Ping应答一起使用)
|
9
|
路由器公告(与类型10一起使用)
|
10
|
路由器请求(与类型9一起使用)
|
11
|
超时
|
12
|
参数问题
|
13
|
时标请求(与类型14一起使用)
|
14
|
时标应答(与类型13一起使用)
|
15
|
信息请求(与类型16一起使用)
|
16
|
信息应答(与类型15一起使用)
|
17
|
地址掩码请求(与类型18一起使用)
|
18
|
地址掩码应答(与类型17一起使用)
|
(表1 ICMP诊断报文类型)
ICMP提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类:
诊断报文(类型8,代码0;类型0,代码0);
目的不可达报文(类型3,代码0-15);
重定向报文(类型5,代码0-4);
超时报文(类型11,代码0-1);
信息报文(类型12-18)。