ICMP(Internet Control Message Protocol)协议简介

本文深入探讨了ICMP协议的原理与应用,包括EchoRequest/Reply、目的不可达消息、源抑制、路由重定向、TTL超时消息等关键功能,以及ICMP在实际网络诊断中的作用,如通过Traceroute进行网络路径追踪。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ICMPInternet Control Message Protocol)协议简介

IP相关的控制功能在这个协议里面实现了。

ICMP协议的功能:基于IP进行传输,ICMP这个消息的本身会被封装到IP数据包里面进行传输。IP层的控制协议,比如一些通知信息、错误告警、控制错误的消息都是通过ICMP来发送的。许多类别的消息,有一系列的类型号来规定里面的类型,比如为8的一个消息表示echo request,知道是echo request之后应该回一个类型号为0的消息echo Relay,像这些个类型号是ICMP功能的分类。

Echo Request/Reply

网络连通性测试,Ping命令基于的下层协议:Ping的完成细节是,发送一个Echo request,希望回应一个Echo reply,如果发出请求有回应表示在IP这个层面上是连通的。类型号为8/0

 

目的不可达消息:0表示目标网络不可达;1表示目的主机不可达;2表示目的协议不可达;3表示目的端口不可达;使得源主机知道为何没有到达对方。

 

源抑制(source quench):解决目的或中继节点的拥塞问题,类型号为4;如果源主机发送数据太快,目的主机工作太慢,以至于目的主机来不及接收发送过来的消息,浪费了大量的网络带宽。目的主机如果接收不过来发送过来的消息,就可以像源主机发送源抑制消息,源主机每接收到一次源抑制消息就会将发送速率降低一点,一直降低到接不到源抑制消息。这是一种握手的信息,使他们的速度能够匹配起来。

 

路由重定向,通知源主机最佳路径信息的变化,类型号为5

 

TTL超时消息:TTL超时,路由器丢弃数据包后对源主机的错误通知信息;Traceroute(Tracert)基于的下层协议,类型号为11;IP包的头里面有一个字段叫做TTL,指生存周期,通常发送数据包的时候要置一下TTL的值,每跳过一个路由器这个值会减一,当还没有到达时就减到0了,这种情况就是TTL超时,我们说这个数据包在网上生存的时间太长了,已经超时了,减到0的这台路由器会丢弃这个数据包,然后向源主机发送一条TTL超时消息,告诉说这个数据包在网上跑的时间太长了,已经把它扔了,避免了IP数据包在网上无线循环。

Tracert实现原理就是靠TTL超时消息。

 

用法: tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]

               [-R] [-S srcaddr] [-4] [-6] target_name

选项:

    -d                 不将地址解析成主机名。

    -h maximum_hops    搜索目标的最大跃点数。

    -j host-list       与主机列表一起的松散源路由(仅适用于 IPv4)

    -w timeout         等待每个回复的超时时间(以毫秒为单位)

    -R                 跟踪往返行程路径(仅适用于 IPv6)

    -S srcaddr         要使用的源地址(仅适用于 IPv6)

    -4                 强制使用 IPv4

    -6                 强制使用 IPv6

 

IP包头错误

IP包头错误,丢弃后对源主机的错误通知信息,类型号12。

IPICMP协议,ARP都是工作在网络层,他们实际上是整个TCPIP运行的基石,是整个网络的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值