ping 原理解析

最近看了好多面试的题目,其中也被问到了关于ping的问题以及一些原理性的东西,于是拜读了很多人的博客,最后也是豁然开朗,决定总结一下,也是为了防止遗忘吧。

要想理解ping的原理,我们首先来看一下ARP的报文格式
arp报文格式
其中op:

1:表示arp请求
2:表示arp应答
3:表示rarp请求
4:表示rarp应答
  • 1
  • 2
  • 3
  • 4

接下来,我们来看一个同一广播域内的ping报文:
在这里插入图片描述
我们的host2想要去ping host1,那么主机1就要封装二层报文,首先host2会查看自己的MAC地址表,看有没有host1的地址,如果没有,host2就会向外部发送ARP广播包
ARP帧报文格式如下:(省略了arp报文的硬件类型,上层协议类型,MAC地址长度,IP地址长度)

目的MAC源MAC帧类型op发送者MAC发送者IP目标MAC目标IP
FF-FF-FF-FF-FF-FF52-54-00-00-11-220806152-54-00-00-11-22192.168.1.200-00-00-00-00-00192.168.1.1

首先,我们的交换机接收到报文以后,会查询交换机的MAC地址表(具有学习功能),如果有host1的MAC地址,直接返回给host2;如果没有,交换机就会向所有端口发送ARP广播,其他端口上的主机发现以后,如果目标不是自己,就会丢弃报文;直到host1主机接收到了报文以后,就会响应host1的MAC地址是多少,同时学习主机host2的MAC地址,并按照同样格式的ARP报文返回给host2.

host1返回的ARP帧报文:

目的MAC源MAC帧类型op发送者MAC发送者IP目标MAC目标IP
52-54-00-00-11-2252-54-00-00-11-110806252-54-00-00-11-11192.168.1.152-54-00-00-11-22192.168.1.2

这个时候,主机host2已经学习到了host1的MAC地址,于是发送icmp报文

目的地址源地址源IP目标IPICMP报文
52-54-00-00-11-1152-54-00-00-11-22 192.168.1.2192.168.1.1 Echo Request

host1收到报文之后,会复

目的地址源地址源IP目标IPICMP报文
52-54-00-00-11-2252-54-00-00-11-11 192.168.1.1192.168.1.2 Echo Answer

接下来,我们来看一看不同广播域之间的ping
在这里插入图片描述
首先要确保全网可达!!!
如果我们的host2 还想ping主机,host2得先去找网关转发,但是如果说,它也不知道网关的情况下怎么办呢?它就会像ping host1那样,先发送ARP报文,确定网关的mac 然后发送icmp报文交给路由器。
我们省略arp报文
host2发送ICMP报文至网关

目的地址源地址源IP目标IPICMP报文
52-54-00-00-11-3352-54-00-00-11-22 192.168.1.2192.168.2.1 Echo Request

当路由器接收到来自host2的icmp报文之后,发现目的地址的IP为192.168.2.1,查询路由发现,得找一个出去的接口,于是去掉原来的mac地址头,加上自己的mac地址头并且向host3转发,(如果网关也没有host3的mac,也得发送ARP报文问询,并且路由器的端口也能学习主机的mac地址,主机host3也能学习路由器的MAC地址),具体报文如下:

目的地址源地址源IP目标IPICMP报文
52-54-00-00-11-5552-54-00-00-11-44 192.168.1.2192.168.2.1 Echo Request

主机host3已经学到了路由器的mac,这会就会返回icmp报文

目的地址源地址源IP目标IPICMP报文
52-54-00-00-11-4452-54-00-00-11-55 192.168.2.1192.168.1.2 Echo Answer

转自:https://blog.csdn.net/zhangyexinaisurui/article/details/82939401 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值