为了提高 IP 数据报交付成功的机会,在网际层使用了因特网控制报文协议 ICMP (Internet Control Message Protocol)。
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。
ICMP用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息并不传输用户数据,但是对于用户数据的传递起着重要的作用。
IP互联网利用ICMP传输控制报文和差错报文
ICMP报文的封装:封装在IP数据报中
ICMP 报文的种类有两种, 即 ICMP 差错报告报文和 ICMP 询问报文。
ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。
ICMP 差错报告报文共有 5 种 :
• 终点不可达
• 源站抑制
• 时间超过
• 参数问题
• 改变路由(重定向)
ICMP 差错报告报文的数据字段的内容
ICMP主要差错报告类型:
目的地不可达报告
网络不可达、主机不可达、协议和端口不可达等
超时报告
参数出错报告
不应发送 ICMP 差错报告报文的几种情况 :
• 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
• 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
• 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
• 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送 ICMP 差错报告报文。
ICMP 询问报文有四种
• 回送请求和回答报文
• 时间戳请求和回答报文
• 掩码地址请求和回答报文
• 路由器询问和通告报文
ICMP请求/应答报文对:
回应请求与应答
测试目的主机或路由器的可达性
时戳请求与应答
获取其他设备的当前时间
掩码请求与应答
从路由器获取本网的子网掩码
本文转自gauyanm 51CTO博客,原文链接:http://blog.51cto.com/gauyanm/229429,如需转载请自行联系原作者