Ping的原理

        ping,Packet Internet Groper,是一种因特网包探索器,用于测试网络连接量的程序。

ICMP

首先了解ICMP互联网控制报文协议,用于传输网络包在网络传输环境中遇到的问题。

ICMP报文是封装在IP包里面的,它工作在网络层,是IP协议的助手。

 

ICMP 包头的类型字段,大致可以分为两大类:

  • 一类是用于诊断的查询消息,也就是「查询报文类型
  • 另一类是通知出错原因的错误消息,也就是「差错报文类型

 查询报文类型:

        0和8:回送消息,用于进行通信的主机或路由器之间,判断发送的数据包是否已经成功到达对端的一种消息。

 差错报文类型:

3--目标不可达消息;

4--原点抑制消息;

5--重定向消息;

11--超时消息。

3--目标不可达消息:

目标不可达:IP 路由器无法将 IP 数据包发送给目标地址,会在ICMP包头代码字段显示发送不可达的具体原因

 0网络不可达:路由器中路由表匹配不到接收方的IP网络号,就通过ICMP协议以网络不可达的原因告知主机。

1主机不可达:路由表中没有主机信息,或者主机没有连接到网络,同过ICMP告知主机不可达。

2协议不可达:找到对端主机了,但是对端主机防火墙禁止TCP访问,会通过协议不可达的原因告知主机。

3端口不可达:找到对端主机了,防火墙也没限制,但是对端主机没有进程监听8080端口,会通过ICMP协议以端口不可达原因告知主机。

4不分片位代码:发送端主机发送IP数据报时,将IP首部的分片禁止标志位设置为1.途中的路由器遇到超过MTU大小的数据包时,不会进行分片,直接抛弃。

4-原点抑制消息

使用低速广域线路的情况下,连接 WAN 的路由器可能会遇到网络拥堵的问题。

ICMP 原点抑制消息的目的就是为了缓和这种拥堵情况

路由器向低速发送数据时,发送队列的缓存变为0无发送出去,可以向IP包的源地址发送一个ICMP原点抑制信息。

5--重定向消息:

路由器发现发送端主机使用了不是最优路径发送数据,它会返回一个ICMP重定向消息给这个主机。这个消息中包含了最合适的路由信息和源数据。告诉发送端下次发给另外一个路由器。

11--超时消息:

IP包中有一个字段叫做TTL,他的值随着每经过一次路由器就会减一,直到减到0时该IP包会被抛弃。

查询报文类型的使用:

5.2 ping 的工作原理 | 小林coding (xiaolincoding.com)

差错报文类型的使用:

5.2 ping 的工作原理 | 小林coding (xiaolincoding.com)

        Ping 是工作在 TCP/IP 网络体系结构中应用层的一个服务命令, 主要是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议) 请求报文,测试目的站是否可达及了解其有关状态。

一般来说,ping 可以用来检测网络通不通。它是基于ICMP协议工作的。假设机器 A ping 机器 B,工作过程如下:

  1. ping 通知系统,新建一个固定格式的 ICMP 请求数据包
  2. ICMP 协议,将该数据包目标机器 B 的 IP 地址打包,一起转交给 IP 协议层
  3. IP 层协议将本机 IP 地址为源地址机器 B 的 IP 地址为目标地址,加上一些其他的控制信息,构建一个 IP 数据包
  4. 先获取目标机器 B 的 MAC 地址。
  5. 数据链路层构建一个数据帧,目的地址是 IP 层传过来的 MAC 地址,源地址是本机的 MAC 地址
  6. 机器 B 收到后对比目标地址,和自己本机的 MAC 地址是否一致,符合就处理返回,不符合就丢弃。
  7. 根据目标主机返回的 ICMP 回送回答报文中的时间戳,从而计算出往返时间(RTT)发送消息到接到响应的时间。
  8. 最终显示结果有这几项:发送到目的主机的 IP 地址、发送 & 收到 & 丢失的分组数往返时间的最小、最大 & 平均值

        Ping的底层原理依赖于ICMP协议和网络协议栈的实现,通过发送特定类型的消息并解析目标主机的响应来测试主机之间的连通性和延迟。Ping的结果可以用于网络故障排除、网络性能测试以及判断目标主机是否可达等应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值