华云数据:ping不通 找房东——从一个ping包来解析网络转发原理

随着云计算业务的快速发展,国内外云计算企业的专利之争也愈发激烈。在云计算这样的技术领域,专利储备往往代表着企业最新的技术实力。华云数据本期“智汇华云”专栏将从一个ping包来解析网络转发原理,与大家共同分享云计算领域的最新技术与解决方案。

背景

“房东,我ping不通了”,相信在外打工租房的各位都有过这个经历吧。ping不通,一个简单的现象,其实蕴藏着很多的过程,今天我们就来谈谈,ping不通该怎么办。

基础概念

在说这些之前,先介绍几个概念:

1、ping包

ping包走的是ICMP协议,什么是ICMP协议呢,Internet控制报文协议,字面意思不好理解,作用很简单,就是发送一些控制消息,来检测链路。

要了解一个协议,我们一般先看它是怎么封装的,查什么书籍都是假的,最好的办法就是自己去抓一个包看看,抓包的工具有很多种,我喜欢用wireshark(windows)和tcpdump(linux),抓包工具怎么用,自行去度娘。

抓到的报文如下,一步步慢慢分析:

华云数据:ping不通 找房东——从一个ping包来解析网络转发原理

我们知道,MAC地址是用来唯一标识网卡的,暂时理解为网卡门牌号吧。

DMAC:目的mac,也就是你的数据包要发给谁,

SMAC:源mac,你自己网卡的门牌号

type:数据包的类型

Tips: 小知识,这里插一句,如果是三层转发,DMAC一般是你网关的mac地址,如果是二层转发,DMAC则是目的端的MAC地址,这也是区分一个数据包是二层还是三层转发最好的方法。

IP层,主要看几个吧。

dscp:最大的用处就是区分报文优先级,我们都知道,协议报文需要高优先级

flags:分片的标志,下面的fragment offset是指分片的偏移量

protocol: 协议类型,可以看到 我们的ping是通过icmp协议

华云数据:ping不通 找房东——从一个ping包来解析网络转发原理

这里的type 8 code 0,是icmp request,具体这些代表什么意思,我们可以去查RFC792

https://tools.ietf.org/html/rfc792

WHAT?什么是RFC,我只听过KFC,问题不大,自己去度娘。

2、ARP

ARP是什么,地址解析,所谓的地址解析就是根据IP地址来获取MAC地址,上面的报文你也看到了,你要ping别人,要知道别人的IP,别人的mac,发到网关的需要知道网关的mac,发到目的端的需要知道目的端的mac。

ARP的过程很简单,客户端先发一个ARP请求,比如你知道了10.10.10.10这个IP,但是你不知道mac,你就需要发一个ARP请求来获取。

好了 我们照例抓一个包,来看看ARP是怎么工作的。

华云数据:ping不通 找房东——从一个ping包来解析网络转发原理

10.51.30.122这个地址收到ARP请求后,会发一个单播报文给我,告诉我它的mac,同时他也会记录我的mac和IP,在他那边会保存我的ARP信息,同时我也保存了它的,下次我再找他,直接查ARP表就可以了,不再需要再发一起ARP请求,当然,如果ARP老化了,那么这样的流程还得再来一次咯。

3、DNS

有些人喜欢ping百度,如果ping的是域名,那中间又多了一层处理,那就是域名解析,来来来,继续抓包。

华云数据:ping不通 找房东——从一个ping包来解析网络转发原理

于是我重新封装报文,目的ip直接选择了216这个地址发送了icmp request。

华云数据:ping不通 找房东——从一个ping包来解析网络转发原理

很明显,我没有直接去114.114.114.114的路由,所以我只能发给网关,也就是上图的192.168.0.1,由网关去处理(如果你不知道网关的mac,需要先发广播ARP给网关,拿到网关的mac来维护ARP表),之后网关把域名解析的结果返还给我,我就有了baidu的IP地址。

2、有了目的IP,客户端就准备封装报文,因为是三层转发,我不需要知道百度的mac地址,我只要知道网关的mac就行了,dmac=网关mac,dip=百度IP,直接发送ping包,由于网关的mac上面已经发送过一次ARP请求了,所有网关的ARP已经保存在客户端的ARP表了。

华云数据:ping不通 找房东——从一个ping包来解析网络转发原理

4、百度收到了我的ping包以后,于是如法炮制的获取它的网关ARP信息,再把封装好的icmp reply给我发了回来,等我的网关收到了这个reply以后,发现目的IP是我,通过路由直接转发给了我,这里整个过程就完成了。

Tips:对于过来的数据包,网关会自行学习数据包的源mac信息,维护自己的mac表和ARP表。

好了,如果ping不通,那么你想想有哪些原因呢,一步步地去检查,一步步地去抓包分析,你就能找到原因,ping不通,不用找房东,自己把网线捋一捋,不就通了啊。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/936085.html

(0)
上一篇 2025年1月4日 17:44:51
下一篇 2025年1月4日 17:45:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论

联系我们

156-6553-5169

在线咨询: QQ交谈

邮件:253000106@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

联系微信