文章目录
网际控制报文协议ICMP
–Internet Control Message Protocol
ICMP报文的特点
- 为了更有效地转发IP数据报和提高数据报成功交付的机会,在IP层使用ICMP协议, 用来测试网络层是不是有故障,若有故障,该协议还能报告故障。
- ICMP协议是IP层协议,ICMP虽然封装在IP数据报中,但是其仍然是IP层协议
- ICMP的消息大致分为两类,一类是差错报文–通知出错原因(tracert),另一类是查询报文–用于诊断的查询消息(ping)
ICMP报文的格式
ICMP的8位类型字段和8位代码字段共同决定了ICMP报文的类型
ICMP报文的分类
常见的ICMP差错报告报文
ICMP不能纠错,只能检查错误,发现错误报告给最初的数据源。
-
ICMP报文的前8个字节决定了ICMP报文的类型以及出错的原因。
-
ICMP报文的数据部分包含两部分:收到的有问题的IP数据报的IP首部和数据报前8字节(TCP或UDP前8字节包含源端口和目的端口)
1、终点不可达-类型值为3
2、源点抑制-类型值为4
3、路由重定向-类型值为5
4、超时-类型值为11
5、参数有问题-类型值为12
常见的ICMP查询报文
-可以用ping命令来实现
–具体分为:
1、回答请求与回答报文
其类型为8或0,判定两个主机之间是否可达,
2、时间戳请求与回答
其类型为13或14,用来确定IP数据报在两台机器之间来回所需的往返时间
ICMP报文类型汇总
ICMP报文的应用举例
PING
- 用来测试两个主机之间的连通性
- 是应用层直接使用网络层ICMP的例子,没有通过运输层的TCP、UDP
表明主机和csdn的服务器之间是连通的
Traceroute
-win系统为traceert命令
- 跟踪一个分组从源点到终点的路径
- 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。
a,最左侧的,1,2,3,4~20,这标明在我使用的宽带上,经过20个路由节点,可以到达腾讯的服务;如果是电信可能有不同;其他的IP,也有可能不同;各位可以多去测试;
b,中间这三列,单位是ms,是表示我们连接到每个路由节点的速度,返回速度和多次链接反馈的平均值;
c,后面的IP,就是每个路由节点对应的IP,每个ip输入什么,各位通过http://tool.chinaz.com的ip详细查询去了解
d,*,在一些路由结点上上,返回消息是超时,这表示这个路由节点和当前我们使用的宽带,是无法联通的至于原因,就有很多种了,比如:特意在路上上做了过滤限制;比如确实是路由的问题等,具体问题具体分析;
返回消息是超时,这表示这个路由节点和当前我们使用的宽带,是无法联通的至于原因,就有很多种了,比如:特意在路上上做了过滤限制;比如确实是路由的问题等,具体问题具体分析;
e,如果在测试的时候,大量的都是*和返回超时,那就说明这个IP,在各个路由节点都有问题。