Ping命令原理

Ping命令的原理

参考文献:ping命令详解
ping命令的原理其实网上十分多大佬已经解答了,这里我就简单的记录下自己的理解。
若主机A要想ping主机B,分为两种情况,一种是同一网段,一种是不同网段。不过大致的流程都差不多。先说统一的大致步骤。
第一步:查Mac地址表。没有目的Mac地址就发送ARP请求,以得知目的Mac地址。

ARP地址解析协议
地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行

第二步:有目的Mac地址就发送ICMP报文。

ICMP互联网控制报文协议。
ICMP 主要的功能包括:确认 IP 包是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。

MAC地址信息
Vlan、Mac Address、 Type 、 Ports

第一种情况:主机A和主机B在同一网段。它们通过一个交换机连接
A ping B。
主机A会先查询本机的Mac地址表。发现没有主机B的Mac地址。这时主机A会向交换机发出ARP请求。
请求内容包括:源Mac地址(在这里就是A的Mac地址)、目的Mac地址(现在未知)、源IP地址、目的IP地址等。

交换机收到后,发现自己A、B的Mac地址都没有,它就会先学习主机A的Mac地址,将其和对应端口加入到自己的Mac地址表中。然后将除主机A所在端口以外的其他端口,转发ARP请求。

其他主机收到ARP请求后,对看看是否找的是自己,不是则丢弃,是则回应。

那么主机B收到后,则会学习到主机A的Mac地址,并回复ARP请求。
回复请求内容包括:源Mac地址(在这里就是B的Mac地址)、目的Mac地址(在这里就是A的Mac地址)、源IP地址、目的IP地址等。

然后这个ARP请求就原路返回:主机B->交换机->主机A。返回过程中,交换机和主机A就学习到了主机B的Mac地址和对应的端口。

好了,现在大家都知道对方的Mac地址了。可以传输ICMP报文了。

主机A发送ICMP协议报文。
主机A发送ICMP报文内容包括:源Mac地址(在这里就是A的Mac地址)、目的Mac地址(在这里就是B的Mac地址)、源IP地址、目的IP地址、ICMP报文等。
主机A->交换机->主机B。

主机B收到后,回复主机A,也是ICMP协议报文。
主机B发送ICMP报文内容包括:源Mac地址(在这里就是B的Mac地址)、目的Mac地址(在这里就是A的Mac地址)、源IP地址、目的IP地址、ICMP报文等。
主机A<-交换机<-主机B。

第二种情况:主机A和主机B在不同网段。它们通过一个路由器通讯
主机A想ping主机B,发现对方和自己不是一个网段。怎么办,主机A就会通过网关路由器转发给主机B。
主机A->路由器端口1->路由器端口2->主机B

主机A就会发送ICMP报文给路由器端口1,但它不知道路由器端口1的Mac地址。那么就通过ARP请求,就可以相互学习到对方的Mac地址和对应端口了。

主机A->路由器端口1

端口1收到ICMP报文后,通过路由器端口2,发给主机B。如果端口2不知道主机B的Mac地址。也可以通过ARP请求,相互学习Mac地址。并加入到Mac地址表中。

路由器端口1->路由器端口2->主机B

主机B收到主机A的ICMP报文后,也会返回ICMP报文以回应主机A。
主机A<-路由器端口1<-路由器端口2<-主机B

这就是主机Aping主机B的大致的流程了

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值