ICMP协议介绍

一、背景

    当我们搭建好网络后,如何去测试网络的连通性呢?如何判断该网络是连通的还是没有连通呢。

二、ICMP定义

    ICMP(Internet Control Message Protocol,互联网控制消息协议)是一个网络层协议,基于IP协议运行。ICMP协议定义了错误报告和其他回送给源节点的关于IP数据包处理情况的消息,可以用于报告IP数据包传递过程中发生的错误、失败等信息,提供网络针对等功能。

三、ICMP封装及消息类型

ICMP封装格式

图2

    对于IP协议来说,后续的数据部分为载荷数据,如果是一个ICMP包,则该载荷就是ICMP协议相关信息。

    ICMP报文的第一个4字节是统一的格式,共有3个字段:类型、代码和校验和。第二个4个字节是跟ICMP的类型有关,不同类型该信息也不一样,最后4个字节是数据字段,该字段长度与ICMP的类型有关
ICMP报文消息类型

    ICMP消息分为两种类型,即ICMP差错消息和ICMP查询消息。对于ICMP差错消息要做特殊处理,例如,在对ICMP差错消息进行响应时,永远不会生成另一份ICMP差错消息。如果没有这个限制规则,可能会遇到一个差错产生另一个差错的情况,而差错再产生差错,这样会无休止地循环下去。

类型字段的值

ICMP

消息类型

差错消息查询消息
0Echo Reply
3Destination Unreachable
4Source Quench
5Redirect
8Echo Request
11Time Exceeded
12Parameter Problem
13Timestamp Request
14Timestamp Reply
15Infomation Request
16Information Reply

常用ICMP消息的含义如下:

  • 目的不可达(Destination Unreachable):目的主机可能不存在或已关机,可能发送者提供的源路由要求无法实现,或设定了不分段的包太大而不能封装于帧中。在这些情况下,路由器检测出错误,并向源发送者发送一个ICMP Destination Unreachable消息。它包含了不能到达目的地的数据包完整IP头,以及其载荷数据的前64比特,这样发送者就能知道哪个包无法投递。

  • 回波请求(Echo Request):是由主机或路由器向一个特定的目的主机发出的询问。这种询问消息用来测试目的站是否可达。

  • 回波响应(Echo Reply):对回波请求做出响应时发送。收到Echo Request的主机对源主机发送ICMP Echo Reply消息作为响应。

  • 参数问题(Parameter Problem):假设一个IP包的头中产生错误或非法值,路由器发现问题后向源发送一个Parameter Problem消息。这个消息包含了有问题的IP头和一个指向出错字段的指针。

  • 重定向(Redirect):假设主机向路由器发送了一个包,而此路由器知道其他一些路由器能将分组更快地投递,为了方便以后路由,此路由器向主机发送一个Redirect消息。它通知主机其他路由器的位置,以及今后应当具有相同目的地址的包发向哪里。这就允许主机动态地更新它的路由表,更好地适应网络条件的变化

  • 源抑制(Source Quench):当某个速率较高的源主机向另一个速率较慢的目的主机(或路由器)发送一连串的数据包时,就有可能使速率较慢的目的主机产生拥塞,因而不得不丢弃一些数据包。源主机通过高层协议得知丢失了一些数据包,就会不断地重发这些数据包,这就使得原本已经拥塞的目的主机更加拥塞。在这种情况下,目的主机就要向源主机发送ICMP Source Quench消息,使源站暂停发送。

  • 超时(Time Exceeded):当IP包中的TTL字段减到0或分片重组定时器到期时,此包或任何未重组的分片将从网络中被删除。删除分组的路由器接着向源发送一个Time Exceeded消息,说明分组未被投递。

  • 时间戳请求和时间戳应答(Timestamp Request and Timestamp Reply):时间戳分组使主机能估计它到另一个主机一次往返通信所需的时间。源主机创建并发送一个含有发送时刻(源时间戳)的Timestamp Request消息,目的主机收到分组后创建一个含有原时间戳和目的主机接收时间戳以及目的主机传输时间戳的Timestamp Reply消息。当源主机收到Timestamp Reply时,它同时记录分组的到达时刻。这些时间戳使主机能够估计网络的IP包投送效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值