Ping过程原理详解

🌺个人主页:杨永杰825_Spring,Mysql,多线程-CSDN博客

🎉相关链接:http中重定向和请求转发的区别?-CSDN博客
每日一句:成为架构师路途遥远

📢欢迎大家:关注🔍+点赞👍+评论📝+收藏⭐️

前言

Ping(Packet Internet Groper)是一种网络工具,用于测试两台计算机之间的连接性和传输速度。它的原理是发送ICMP(Internet Control Message Protocol)数据包到目标计算机,目标计算机接收到数据包后会返回一个响应。

Ping命令通过发送一组数据包到目标计算机,并等待目标计算机的响应,来测试网络连接的可靠性和传输速度。Ping命令可以用于测试局域网(LAN)中的计算机和互联网中的服务器。Ping命令使用ICMP协议,它是一种用于在IP网络上发送错误消息和操作消息的协议。

Ping命令的过程如下:

  1. 发送ICMP请求包:发送者向目标计算机发送一个ICMP请求包,该请求包包含一个特定的标识符和序列号,以便能够区分其他请求包。

  2. 接收ICMP响应包:目标计算机接收到请求包后,会发送一个ICMP响应包作为回复。

  3. 计算延迟时间:发送者接收到响应包后,计算从发送请求包到接收响应包的延迟时间,通常称为往返时间(RTT)。

  4. 输出结果:Ping命令将RTT时间及其他统计信息输出给用户。

通过Ping命令可以测试网络连接的可靠性和传输速度,它是一种简单而强大的网络工具,可以帮助管理员更好地维护网络设备和解决网络故障。

我在这里讲拼的两情况,一种是同一网段内,一种是跨网段的ping ….

首先,如果主机A,要去 ping主机B,那么主机A,就要封装二层报文,他会先查自己的MAC地址表,如果没有B的MAC地址,就会向外发送一个ARP广播包

其中ARP报文格式如下:

以太网目的MAC以太网源MAC帧类型硬件类型46OP发送端以太网MAC发送端IP地址目的MAC目的IP
FF-FF-FF-FF-FF-FF00-50-56-C0-00-0108060800100-50-56-C0-00-011.1.1.100-00-00-00-00-001.1.1.3

其中OP

 1 :表示ARP请求

 2:表示ARP应答

表示RARP请求

4:表示RARP应答

        首先,交换机会收到这个报文后,交换机有学习MAC地址的功能,所以他会检索自己有没有保存主机B有MAC,如果有,就返回给主机A, 如果没有,就会向所有端口发送ARP广播 ,其它主机收到后,发现不是在找自己,就纷纷丢弃了该报文,不去理会。。直到主机B收到了报文后,就立即响应,我的MAC地址是多少,同时学到主机A的MAC地址,并按同样的ARP报文格式返回给主机A

ARP报文格式:

以太网目的MAC以太网源MAC帧类型硬件类型46OP发送端以太网MAC发送端IP地址目的MAC目的IP
00-50-56-C0-00-0100-50-56-C0-00-0308060800200-50-56-C0-00-031.1.1.300-50-56-C0-00-011.1.1.1

这时候主机A学到了主机B的MAC,就把这个MAC封装到ICMP协议的二层报文中向主机B发送,报文格式如下:

目的地址源地址源IP目的IPICMP报文
00-50-56-C0-00-0300-50-56-C0-00-011.1.1.11.1.1.3Echo request

当主机B收到了这个报文后,发现是主机A 的ICPM回显请求,就按同样的格式,返回一个值给主机A,这样就完成了同一网段内的ping过程…

目的地址源地址源IP目的IPICMP报文
00-50-56-C0-00-0100-50-56-C0-00-031.1.1.31.1.1.1Echo answer

在这里,我讲了这么久的 局域网内的PING,实际过程的发生不到 1毫秒….

如果主机A要ping主机C,那么主机A发现主机C的IP和自己不是同一网段,他就去找 *网关* 转发,但是他也不知道网关的MAC情况下呢?他就会向之前那个步骤一样 先发送一个ARP广播,学到网关的MAC,再发封装ICMP报文给网关路由器.

报文格式如下:

目的地址源地址源IP目的IPICMP报文
00-50-56-C0-00-0200-50-56-C0-00-011.1.1.12.1.1.1Echo request

        当路由器收到主机A发过来的ICMP报文,发现自己的目的地址是其本身MAC地址,根据目的的IP2.1.1.1,查路由表,发现2.1.1.1/24的路由表项,得到一个出口指针,去掉原来的MAC头部.加上自己的MAC地址向主机C转发…( 如果网关也没有主机C的MAC地址,还是要向前面一个步骤一样,ARP广播一下即可相互学到….路由器2端口能学到主机D的MAC,主机D也能学到路由器2端口的MAC. .) ,报文格式如下:

目的地址源地址源IP目的IPICMP报文
00-50-56-C0-00-0500-50-56-C0-00-041.1.1.12.1.1.1Echo request

最后,在主机C已学到路由器2端口MAC,路由器2端口转发给路由器1端口,路由1端口学到主机A的MAC的情况下,他们就不需要再做ARP解析,就将ICMP的回显请求回复过来..报文格式大致如下:

目的地址源地址源IP目的IPICMP报文
00-50-56-C0-00-0400-50-56-C0-00-052.1.1.11.1.1.1Echo Answer

 

  • 16
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java杨永杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值