當(dāng)前位置:首頁(yè) >  IDC >  云計(jì)算 >  正文

華云數(shù)據(jù):ping不通 找房東——從一個(gè)ping包來(lái)解析網(wǎng)絡(luò)轉(zhuǎn)發(fā)原理

 2019-03-04 15:19  來(lái)源: 互聯(lián)網(wǎng)   我來(lái)投稿 撤稿糾錯(cuò)

  阿里云優(yōu)惠券 先領(lǐng)券再下單

隨著云計(jì)算業(yè)務(wù)的快速發(fā)展,國(guó)內(nèi)外云計(jì)算企業(yè)的專(zhuān)利之爭(zhēng)也愈發(fā)激烈。在云計(jì)算這樣的技術(shù)領(lǐng)域,專(zhuān)利儲(chǔ)備往往代表著企業(yè)最新的技術(shù)實(shí)力。華云數(shù)據(jù)本期“智匯華云”專(zhuān)欄將從一個(gè)ping包來(lái)解析網(wǎng)絡(luò)轉(zhuǎn)發(fā)原理,與大家共同分享云計(jì)算領(lǐng)域的最新技術(shù)與解決方案。

背景

“房東,我ping不通了”,相信在外打工租房的各位都有過(guò)這個(gè)經(jīng)歷吧。ping不通,一個(gè)簡(jiǎn)單的現(xiàn)象,其實(shí)蘊(yùn)藏著很多的過(guò)程,今天我們就來(lái)談?wù)?,ping不通該怎么辦。

基礎(chǔ)概念

在說(shuō)這些之前,先介紹幾個(gè)概念:

1、ping包

ping包走的是ICMP協(xié)議,什么是ICMP協(xié)議呢,Internet控制報(bào)文協(xié)議,字面意思不好理解,作用很簡(jiǎn)單,就是發(fā)送一些控制消息,來(lái)檢測(cè)鏈路。

要了解一個(gè)協(xié)議,我們一般先看它是怎么封裝的,查什么書(shū)籍都是假的,最好的辦法就是自己去抓一個(gè)包看看,抓包的工具有很多種,我喜歡用wireshark(windows)和tcpdump(linux),抓包工具怎么用,自行去度娘。

抓到的報(bào)文如下,一步步慢慢分析:

首先是以太頭

我們知道,MAC地址是用來(lái)唯一標(biāo)識(shí)網(wǎng)卡的,暫時(shí)理解為網(wǎng)卡門(mén)牌號(hào)吧。

DMAC:目的mac,也就是你的數(shù)據(jù)包要發(fā)給誰(shuí),

SMAC:源mac,你自己網(wǎng)卡的門(mén)牌號(hào)

type:數(shù)據(jù)包的類(lèi)型

Tips: 小知識(shí),這里插一句,如果是三層轉(zhuǎn)發(fā),DMAC一般是你網(wǎng)關(guān)的mac地址,如果是二層轉(zhuǎn)發(fā),DMAC則是目的端的MAC地址,這也是區(qū)分一個(gè)數(shù)據(jù)包是二層還是三層轉(zhuǎn)發(fā)最好的方法。

IP層,主要看幾個(gè)吧。

dscp:最大的用處就是區(qū)分報(bào)文優(yōu)先級(jí),我們都知道,協(xié)議報(bào)文需要高優(yōu)先級(jí)

flags:分片的標(biāo)志,下面的fragment offset是指分片的偏移量

protocol: 協(xié)議類(lèi)型,可以看到 我們的ping是通過(guò)icmp協(xié)議

icmp里面比較重要的2個(gè) type和code,以此來(lái)決定這個(gè)icmp報(bào)文是干嘛的。

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

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

WHAT?什么是RFC,我只聽(tīng)過(guò)KFC,問(wèn)題不大,自己去度娘。

2、ARP

ARP是什么,地址解析,所謂的地址解析就是根據(jù)IP地址來(lái)獲取MAC地址,上面的報(bào)文你也看到了,你要ping別人,要知道別人的IP,別人的mac,發(fā)到網(wǎng)關(guān)的需要知道網(wǎng)關(guān)的mac,發(fā)到目的端的需要知道目的端的mac。

ARP的過(guò)程很簡(jiǎn)單,客戶端先發(fā)一個(gè)ARP請(qǐng)求,比如你知道了10.10.10.10這個(gè)IP,但是你不知道m(xù)ac,你就需要發(fā)一個(gè)ARP請(qǐng)求來(lái)獲取。

好了 我們照例抓一個(gè)包,來(lái)看看ARP是怎么工作的。

ARP的請(qǐng)求報(bào)文是一個(gè)廣播報(bào)文,所以他的dmac就是ff:ff:ff:ff:ff:ff,你知道了對(duì)方的IP,但是不知道對(duì)方的mac,所以你的target mac就填00:00:00:00:00:00就行,看上圖,這是一個(gè)ARP請(qǐng)求報(bào)文,我想知道10.51.30.122的mac是多少。ARP請(qǐng)求報(bào)文會(huì)在局域網(wǎng)廣播,如果你不是10.51.30.122,那么你收到這個(gè)報(bào)文后,會(huì)直接丟棄不處理,如果你恰好是10.51.30.122這個(gè)IP,那么就會(huì)做一個(gè)ARP應(yīng)答。

我們?cè)賮?lái)看一個(gè)ARP應(yīng)答報(bào)文。

10.51.30.122這個(gè)地址收到ARP請(qǐng)求后,會(huì)發(fā)一個(gè)單播報(bào)文給我,告訴我它的mac,同時(shí)他也會(huì)記錄我的mac和IP,在他那邊會(huì)保存我的ARP信息,同時(shí)我也保存了它的,下次我再找他,直接查ARP表就可以了,不再需要再發(fā)一起ARP請(qǐng)求,當(dāng)然,如果ARP老化了,那么這樣的流程還得再來(lái)一次咯。

3、DNS

有些人喜歡ping百度,如果ping的是域名,那中間又多了一層處理,那就是域名解析,來(lái)來(lái)來(lái),繼續(xù)抓包。

可以看到 我由于不知道百度的IP是多少,所以我先發(fā)給了114.114.114.114,域名解析服務(wù)器,他幫我解析以后再把IP告訴我。

于是我重新封裝報(bào)文,目的ip直接選擇了216這個(gè)地址發(fā)送了icmp request。

大功告成,ping也就通了。

排查

搞什么??文章的標(biāo)題不是ping不通嗎,那你解釋一堆ping通干什么,其實(shí)我們從原理里面反推一下,ping不通的理由到底有哪些嘛~ 每一個(gè)環(huán)節(jié)都檢查一遍,那么問(wèn)題不就迎刃而解了嘛~

來(lái)來(lái)來(lái),我先來(lái)畫(huà)個(gè)圖,二層轉(zhuǎn)發(fā)不過(guò)網(wǎng)關(guān)我就不畫(huà)了,直接來(lái)一個(gè)三層轉(zhuǎn)發(fā)圖。

這是一個(gè)簡(jiǎn)單的圖,下面我來(lái)慢慢的一步步的寫(xiě)下步驟,假設(shè)我就去ping百度,一般現(xiàn)在看自己能不能上網(wǎng)不都是ping百度嘛。

1、首先客戶端要對(duì)百度的域名進(jìn)行解析才能獲取到IP地址,才能進(jìn)一步封裝自己的ping包,所以他首先發(fā)到域名服務(wù)器(假設(shè)我配置的是114.114.114.114),等域名服務(wù)器幫我解析好以后,給了我百度的IP地址,220.181.57.216,那么這里,我要去域名服務(wù)器,我是怎么去的呢,當(dāng)然首先查看路由表。

很明顯,我沒(méi)有直接去114.114.114.114的路由,所以我只能發(fā)給網(wǎng)關(guān),也就是上圖的192.168.0.1,由網(wǎng)關(guān)去處理(如果你不知道網(wǎng)關(guān)的mac,需要先發(fā)廣播ARP給網(wǎng)關(guān),拿到網(wǎng)關(guān)的mac來(lái)維護(hù)ARP表),之后網(wǎng)關(guān)把域名解析的結(jié)果返還給我,我就有了baidu的IP地址。

2、有了目的IP,客戶端就準(zhǔn)備封裝報(bào)文,因?yàn)槭侨龑愚D(zhuǎn)發(fā),我不需要知道百度的mac地址,我只要知道網(wǎng)關(guān)的mac就行了,dmac=網(wǎng)關(guān)mac,dip=百度IP,直接發(fā)送ping包,由于網(wǎng)關(guān)的mac上面已經(jīng)發(fā)送過(guò)一次ARP請(qǐng)求了,所有網(wǎng)關(guān)的ARP已經(jīng)保存在客戶端的ARP表了。

3、數(shù)據(jù)包到了網(wǎng)關(guān),因?yàn)槭堑焦W(wǎng)去,這里面的處理就不說(shuō)了,用一條命令可以查看你的數(shù)據(jù)包經(jīng)過(guò)了多少的躍點(diǎn)。

4、百度收到了我的ping包以后,于是如法炮制的獲取它的網(wǎng)關(guān)ARP信息,再把封裝好的icmp reply給我發(fā)了回來(lái),等我的網(wǎng)關(guān)收到了這個(gè)reply以后,發(fā)現(xiàn)目的IP是我,通過(guò)路由直接轉(zhuǎn)發(fā)給了我,這里整個(gè)過(guò)程就完成了。

Tips:對(duì)于過(guò)來(lái)的數(shù)據(jù)包,網(wǎng)關(guān)會(huì)自行學(xué)習(xí)數(shù)據(jù)包的源mac信息,維護(hù)自己的mac表和ARP表。

好了,如果ping不通,那么你想想有哪些原因呢,一步步地去檢查,一步步地去抓包分析,你就能找到原因,ping不通,不用找房東,自己把網(wǎng)線捋一捋,不就通了啊。

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)文章

  • 2023全球云計(jì)算市場(chǎng)份額排名

    關(guān)注盧松松,會(huì)經(jīng)常給你分享一些我的經(jīng)驗(yàn)和觀點(diǎn)。最近Synergy研究院發(fā)布了最新的全球云計(jì)算市場(chǎng)份額排名。亞馬遜依舊是以31%的的市場(chǎng)份額排名第一,微軟azure24%排名第二,Google云11%排名第三,阿里云4%排名第四。騰訊云和IBM、甲骨文并列2%。通過(guò)上面的圖片也可以判斷出:(1)云市場(chǎng)

    標(biāo)簽:
    云計(jì)算應(yīng)用
  • 青云QingCloud開(kāi)源容器平臺(tái)KubeSphere助力微宏科技落地微服務(wù)架構(gòu)

    杭州微宏科技有限公司于2012年成立,專(zhuān)注于業(yè)務(wù)流程管理和自動(dòng)化(BPM&BPA)軟件研發(fā)和解決方案供應(yīng)商。創(chuàng)始團(tuán)隊(duì)畢業(yè)于浙江大學(xué)、清華大學(xué)、美國(guó)Rice大學(xué)和UniversityofTexas等海內(nèi)外知名高校,曾服務(wù)于世界知名軟件公司和500強(qiáng)企業(yè)。公司在自建IDC機(jī)房的物理服務(wù)器上搭建了K8s集

    標(biāo)簽:
    云計(jì)算應(yīng)用
  • HashData 入選“綠色計(jì)算最具價(jià)值解決方案”,打造綠色計(jì)算數(shù)智動(dòng)力

    12月13日-14日,由綠色計(jì)算產(chǎn)業(yè)聯(lián)盟(GCC)、邊緣計(jì)算產(chǎn)業(yè)聯(lián)盟(ECC)聯(lián)合舉辦“2023計(jì)算產(chǎn)業(yè)生態(tài)大會(huì)”(CIEC2023)在北京舉行。作為計(jì)算領(lǐng)域的權(quán)威會(huì)議,本次大會(huì)邀請(qǐng)了多位兩院院士、眾多產(chǎn)業(yè)專(zhuān)家,聚焦計(jì)算產(chǎn)業(yè)前沿技術(shù)、發(fā)展趨勢(shì)、創(chuàng)新應(yīng)用及發(fā)展成果,以計(jì)算能力賦能千行百業(yè)。酷克數(shù)據(jù)(H

    標(biāo)簽:
    云計(jì)算應(yīng)用
  • 身邊云搭建新用工時(shí)代智慧平臺(tái),以數(shù)字技術(shù)賦能零工產(chǎn)業(yè)發(fā)展

    近日,暨南大學(xué)經(jīng)濟(jì)與社會(huì)研究院和智聯(lián)招聘聯(lián)合發(fā)布《2023中國(guó)新型靈活就業(yè)報(bào)告》,對(duì)我國(guó)新型靈活就業(yè)最新發(fā)展趨勢(shì)進(jìn)行了詳細(xì)分析。報(bào)告認(rèn)為,靈活就業(yè)已經(jīng)成為傳統(tǒng)就業(yè)的重要補(bǔ)充,甚至在個(gè)別特定行業(yè)、職業(yè)已經(jīng)占據(jù)主要地位,如何規(guī)范好靈活就業(yè)的發(fā)展,是數(shù)字經(jīng)濟(jì)時(shí)代的一個(gè)重要命題。數(shù)字浪潮孕育“新個(gè)體”,靈活

    標(biāo)簽:
    云計(jì)算應(yīng)用
  • 青云科技入選中國(guó)物聯(lián)網(wǎng)企業(yè)投資價(jià)值50強(qiáng),加速企業(yè)業(yè)務(wù)場(chǎng)景創(chuàng)新

    近日,2022“物聯(lián)之星”物聯(lián)網(wǎng)行業(yè)年度榜單的結(jié)果正式公布!青云科技(qingcloud.com,股票代碼:688316)憑借著卓越的產(chǎn)品和應(yīng)用,脫穎而出,在眾多優(yōu)秀企業(yè)中名列中國(guó)物聯(lián)網(wǎng)企業(yè)投資價(jià)值50強(qiáng)。“物聯(lián)之星”評(píng)選活動(dòng)始于2007年,歷經(jīng)15個(gè)年頭的發(fā)展和沉淀,是中國(guó)物聯(lián)網(wǎng)行業(yè)規(guī)格隆重、影響

熱門(mén)排行

信息推薦