IMP协议详细信息
ICMP协议是网络层协议。
新建立的网络通常需要进行简单的测试才能验证网络是否顺畅,但IP协议并不提供可靠的传输。 如果发生丢包,IP协议将无法通知传输层有无丢包和丢包的原因。
因此,需要-ICMP协议来实现这种功能。
IMP协议的功能
ICMP协议的功能主要包括:
检查IP包是否成功到达目标地址,并通知IP包在发送过程中被丢弃的原因
如下图所示。
有几点需要注意:
1.ICMP基于IP协议进行操作,但不是传输层功能,因此网络层协议ICMP仍然只能与IPv4结合使用,对于IPv6,需要使用ICMPv6 ICMP消息格式
ICMP消息包含在IP数据报中,并且IP报头位于该消息的开头。 一条ICMP消息包括IP报头(至少20字节)、ICMP报头(至少字节)、ICMP消息(属于ICMP消息的数据部分)。 如果IP标头中的协议字段值为1,则表示这是ICMP消息。 ICMP标头如下图所示。
下图:
字段说明:
ICMP大致分为两种消息。
一个是导致通知错误的原因一个用于诊断查询
类型和含义如下
常见的ICMP消息
适当的要求
我们使用的ping操作包含相应的请求(类型字段值8 )和响应)类型字段值0 ) ICMP消息。
流程:
主机向节点发送类型字段值为8的ICMP消息。 如果中途没有例外,则如果目标没有对ICMP作出响应,或者传输失败,则目标将返回类型字段值为0的ICMP消息,指示主机存在。
不可实现目标、源抑制和超时消息
这三种消息的格式是相同的。
)1)无法到达目的地的消息)类型值3 )路由器或主机无法传递数据时使用。
例如,如果尝试连接到对方不存在的系统端口(端口号小于1024 ),则会返回类型字段值为3、代码字段值为3的ICMP消息。
常见的不可达类型包括网络不可达(代码字段值0 )、主机不可达(代码字段值1 )和协议不可达(代码字段值2 )。
)2)源抑制消息)类型字段的值为4,代码字段的值为0 ) )起到控制流量的作用,并通知主机数据报流量的减少。 因为ICMP没有响应转发的消息,所以停止该消息后,主机会逐渐恢复传输率。
)3)没有连接方式的网络问题是在数据报丢失、长时间在网络上徘徊找不到目标、拥塞导致主机无法在规定的时间内重组数据报段的情况下,ICMP超时
超时信息(类型字段的值为11 )的代码字段有两种类型的值。 代码字段值为0表示传输超时,代码字段值为1表示分段重组超时。
时间戳请求
时间戳请求消息(类型值字段13 )和时间戳响应消息(类型值字段14 )用于测试两台主机之间数据报的往返传输时间。
在传输时,主机填充原始时间戳,接收方在接受并填充接收时间戳之后,以类型值字段14的消息格式返回,发送方计算这个时间差。
(某些系统不响应此消息)
平钉命令
使用方法如下。
请注意,在此ping的是域名,而不是url。 域名可以通过DNS解析为IP地址
关于DNS,可以在这里写链接的内容
ping命令的功能
)1)可以验证网络的连接性
)2)响应时间和TTL )统计IP数据包中的时间到生命周期、生存周期)
那我们是怎么验证的呢?
(1) ping命令首先向对方发送ICMP Echo Request
)2)对方接收到后,返回ICMP Echo Reply
)3)如果没有返回,则认为是超时,指定的网络地址不存在。
问题:
telnet有23个端口,ssh有22个端口,ping有多少个端口?
ping命令基于ICMP,位于网络层。
端口号是传输层的内容。 因此,ICMP完全不关注端口号这样的信息。
跟踪路径
跟踪也是基于ICMP协议实现的。
功能:
在到达目标主机之前要经过多少台路由器,或者打印可执行的主机。
以下是示例。
————————————————
这是CSDN博客“honeyRJ”的原创文章,符合CC 4.0 BY-SA版权协议。 请附上原文来源的链接和本声明。
原文链接: https://blog.csdn.net/Baidu _ 37964071/article/details/80514340