- icmp协议用来传递差错、控制、查询信息,是tcp/ip协议簇中重要的协议之一,在网络设备间传递差错报文,传输控制、差错、查询等信息。
- icmp重定向:主机a希望给服务器a发送数据包,但是主机a的网关设置的是RTB,这是RTB接收到主机A的报文,检查该报文信息,发现报文应转发到同一网段的另一个网络设备RTA,因为该路径更忧,会更快的通往服务器A,因此,RTB会回复一个ICMP重定向报文,通知主机A发送报文到另一个网络设备。主机A收到消息后,会将报文发送给RTA,RTA再将报文发送给目的服务器。
- icmp差错检测:icmp echo request 和 icmp echo reply
这两个消息分别查询和响应某种信息,进行差错检测。
Icmp echo 消息通常用于诊断源与目的网络之间的连通性,同时还能提供其他信息,如报文往返时间等。
icmp报文格式。
icmp协议封装在ip协议中,其中type表示icmp消息类型,code表示同一消息类型中的不同信息。
Type Code 描述
0 0 Reply
3 0 网络不可达
3 1 主机不可达
3 1 协议不可达
3 3 端口不可达
5 3 重定向
8 0 request
- icmp错误报告
当网络设备无法访问目标网络时,会自动发送icmp目的不可达报文到发送设备
icmp定义了各种错误信息,用于诊断网络连接性的问题,根据这些错误信息,源设备可以判断出数据传输失败的原因。
比如,如果网络中发生了环路,导致报文在网络中循环,最终TTL超时,这种情况下网络设备会发送TTL超时消息给发送端设备。
又如如果目的地不可达,则中间的网络设备会发送目的不可达消息给发送设备。目
的不可达情况有多种 ,如果网络设备无法找到目的网络则发送网络不可达,如果网络设备无法找到目的网络中的主机,则发送主机不可达。
- ping命令的应用
ping命令的输出信息中包括目的地址、报文长度、序号、TTL值、以及往返时间。
序号指包含在echo回复消息(type=0)中的可变参数字段,TTL值和往返时间包含在消息的ip头中。
- tracert的应用
tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1,该报文到达第一个节点后,TTL超时,于是该节点向源端发送超时信息,消息中包含时间戳。然后源端将报文的TTL值设为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息。以此类推,直到报文到达目的地。这样,,源端根据返回的报文中的信息可以追踪到报文经过的每一个节点,并根据时间戳信息计算往返时间。tracert是检测网络丢包及时延的有效手段,同时可以帮助管理员发现网络中的路由环路。
参照华为认证hcia R&S 2.5版