ICMP简介
IP协议是一种不可靠无连接的包传输,当数据包经过多个网络传输后,可能出现错误、目的主机不响应、包拥塞和包丢失等。为了处理这些问题,在IP层引入了一个子协议ICMP。ICMP数据报有两种形式:差错数据报和查询数据报。ICMP数据报封装在IP数据报里传输。ICMP报文可以被IP协议层、传输层协议和用户进程使用。ICMP和IP一样,都是不可靠传输,ICMP的信息也可能丢失。为了防止ICMP信息无限制连续发送,对ICMP数据报传输中的问题不能再使用ICMP传输。查询报文是成对出现的,它帮助主机或网络管理员从一个路由器或另一个主机得到特定的信息。
ICMP报文的两大类型
差错报告报文,不能纠正差错,它只是报告差错。差错纠正留给高层协议去做。差错报文总是发送给原始的数据源,因为在数据报中关于路由惟一可用的信息就是源IP地址和目的IP地址。 ICMP使用源IP地址将差错报文发送给数据报的源端。差错报文中的数据部分包括了原始数据报的首部加上原始数据报数据的前8个字节。 原始数据报的首部给出了关于原始数据报本身的信息。原始数据报的前8个字节数据提供了关于端口号和序号等信息。
查询报文,除差错报告外,ICMP还能对某此网络问题进行诊断。这是通过使用由4对不同报文组成的查询报文来完成的。 它们分别是: “回送请求和回答”、 “时间戳请求和回答”、 “地址掩码请求和回答”以及 “路由器询问和通告”。