我是靠谱客的博主 仁爱豆芽,最近开发中收集的这篇文章主要介绍icmp协议_【HCIA】ICMP协议详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ec6344f6c96de4dd88c050e29fd2b2e7.png

一、ICMP协议介绍

Internet控制消息协议ICMP(Internet Control Message Protocol)是IP协议的辅助协议,用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

e8eeb996d05cc4d33aec1d60b7153f2d.png

ICMP消息封装在IP报文中,IP报文头部Protocol值为1时表示ICMP协议。

字段解释:

  • ICMP消息的格式取决于Type和Code字段,其中Type字段为消息类型,Code字段包含该消息类型的具体参数。

  • 校验和字段用于检查消息是否完整。

  • 消息中包含32bit的可变参数,这个字段一般不使用,通常设置为0。在ICMP重定向消息中,这个字段用来指定网关IP地址,主机根据这个地址将报文重定向到指定网关。在Echo请求消息中,这个字段包含标识符和序号,源端根据这两个参数将收到的回复消息与本端发送的Echo请求消息进行关联。尤其是当源端向目的端发送了多个Echo请求消息时,需要根据标识符和序号将Echo请求和回复消息进行一一对应。

二、ICMP重定向

ICMP重定向报文是ICMP控制报文中的一种。在特定的情况下,当路由器检测到一台机器使用非最优路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。

ed1fab8cf04cce28e6180c6ed401db51.png

ICMP重定向过程:

  1. 主机A希望发送报文到服务器A,于是根据配置的默认网关地址向网关RTB发送报文。

  2. 网关RTB收到报文后,检查报文信息,发现报文应该转发到与源主机在同一网段的另一个网关设备RTA,此转发路径是更优的路径,所以RTB会向主机发送一个Redirect消息,通知主机直接向另一个网关RTA发送该报文。

  3. 主机收到Redirect消息后,会向RTA发送报文,然后RTA会将该报文再转发给服务器A。

三、ICMP差错检测

ICMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往返时间等。ICMP的一个典型应用是Ping。

Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息。用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试。

2bd65b37af9007f740ebef185076fc6c.png

bae669fcaeca3c2d15dc2e80ee1d9235.png

四、ICMP错误报告

ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。

  • 如果网络中发生了环路,导致报文在网络中循环,且最终TTL超时,这种情况下网络设备会发送TTL超时消息给发送端设备。

  • 如果目的地不可达,则中间的网络设备会发送目的不可达消息给发送端设备。目的不可达的情况有多种,如果是网络设备无法找到目的网络,则发送目的网络不可达消息;如果网络设备无法找到目的网络中的目的主机,则发送目的主机不可达消息。

1dc7c98d0b6217162ae0212b9410c9b7.png

0c8b82696eb8558de229df5e879ce24b.png

ICMP的另一个典型应用是Tracert。Tracert基于报文头中的TTL值来逐跳跟踪报文的转发路径。为了跟踪到达某特定目的地址的路径,源端首先将报文的TTL值设置为1。该报文到达第一个节点后,TTL超时,于是该节点向源端发送TTL超时消息,消息中携带时间戳。然后源端将报文的TTL值设置为2,报文到达第二个节点后超时,该节点同样返回TTL超时消息,以此类推,直到报文到达目的地。这样,源端根据返回的报文中的信息可以跟踪到报文经过的每一个节点,并根据时间戳信息计算往返时间。

4a78a9e98379deb7d329ef73ed24e2af.png

HCIA系列文章:

  1. 【HCIA】数据通信网络基础

  2. 【HCIA】网络类型与网络拓扑

  3. 【HCIA】网络参考模型与协议

  4. 【HCIA】TCP的建立与断开

  5. 【HCIA】网络层协议

  6. 【HCIA】IPv4地址介绍

最后

以上就是仁爱豆芽为你收集整理的icmp协议_【HCIA】ICMP协议详解的全部内容,希望文章能够帮你解决icmp协议_【HCIA】ICMP协议详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部