1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Ping原理詳解

        共 1733字,需瀏覽 4分鐘

         ·

        2021-03-15 04:38

        關(guān)注「開源Linux」,選擇“設(shè)為星標(biāo)”
        回復(fù)「學(xué)習(xí)」,有我為您特別篩選的學(xué)習(xí)資料~

        前言

        Ping是排除設(shè)備訪問故障的常見方法。它使用Internet控制消息協(xié)議ICMP(Internet Control Message Protocol)確定以下內(nèi)容:

        • 遠(yuǎn)程設(shè)備是否處于可訪問狀態(tài)。

        • 訪問遠(yuǎn)程設(shè)備時是否丟失報文。

        • 本端與遠(yuǎn)程設(shè)備之間通信的往返延遲。

        Ping原理

        現(xiàn)在以一個實(shí)例來說明Ping的實(shí)現(xiàn)過程。

        如下圖所示,PC1想要Ping通PC2,即Ping 11.1.1.2。

        1. PC1的Ping程序生成一個ICMP請求報文。

          1. 如果PC1沒找到下一跳,則得不到下一跳的IP,也得不到下一跳的MAC地址,以太幀頭無法進(jìn)行封裝,于是PC1就Ping不通PC2。

          2. 如果PC1找到了下一跳,得到了下一跳的IP,但此時還不知道下一跳的MAC地址,故PC1要發(fā)送ARP廣播請求。

          3. ICMP報文沿協(xié)議棧向下傳輸?shù)絀P層,封裝IP頭,包含源地址IP與目的地址IP。

            在此封裝過程中,IP層已經(jīng)根據(jù)IP地址和掩碼判斷出了源IP與目的IP不屬于同一網(wǎng)段。

            1. ICMP報文再向下傳到鏈路層,準(zhǔn)備進(jìn)行以太幀頭的封裝,但由于無法知道目的MAC地址,暫時無法進(jìn)行封裝。

            2. 由于已經(jīng)知道了源IP與目的IP不屬于同一網(wǎng)段,故PC1要查找FIB表,找自己的下一跳。

        2. 下一跳(Switch a口10.1.1.2/24)收到此請求以后,發(fā)現(xiàn)請求所對應(yīng)的IP地址是自己,于是回復(fù)一個ARP單播應(yīng)答給PC1,此應(yīng)答包含了10.1.1.2/24所對應(yīng)的MAC地址。

        3. PC1此時已經(jīng)收到ARP應(yīng)答,得到了下一跳的MAC地址,進(jìn)行以太幀頭的封裝,然后將數(shù)據(jù)報發(fā)送給Switch。

          當(dāng)PC1向Switch發(fā)送ARP請求時,將自己的IP地址到物理地址的映射寫入ARP請求中。當(dāng)Switch收到PC1的ARP請求后,Switch就將PC1的這一映射寫入到了自己的ARP緩存中。這是因?yàn)橐院蠛芸赡躍witch也要向PC1進(jìn)行數(shù)據(jù)傳送,為了以后彼此通信的方便,避免總是發(fā)送ARP請求及應(yīng)答,減少網(wǎng)絡(luò)上的通信。

        4. Switch收到數(shù)據(jù)報文后,剝掉以太幀頭,上送到IP層,發(fā)現(xiàn)IP首部中的目的IP地址11.1.1.2/24不是自己,需要轉(zhuǎn)發(fā),故查找自己的路由表,重新進(jìn)行數(shù)據(jù)報文的封裝。

          當(dāng)封裝到以太幀頭時,發(fā)現(xiàn)目的MAC地址(11.1.1.2/24對應(yīng)的MAC地址)未知,故Switch也要發(fā)送ARP廣播請求。

        5. PC2收到此請求以后,發(fā)現(xiàn)請求所對應(yīng)的IP地址是自己,于是回復(fù)一個ARP單播應(yīng)答給Switch,此應(yīng)答包含了11.1.1.2/24所對應(yīng)的MAC地址。

          與前面Switch學(xué)習(xí)PC1的ARP映射一樣,PC2也相應(yīng)地在自己的ARP緩存中記錄了Switch b口的IP地址到物理地址的映射。

        6. Switch此時已經(jīng)收到ARP應(yīng)答,得到了PC2的MAC地址,進(jìn)行以太幀頭的封裝。然后將數(shù)據(jù)報發(fā)送給PC2。

        7. PC2收到此數(shù)據(jù)報文后,拆封以太幀頭,拆封IP首部后發(fā)現(xiàn)是個ICMP請求報文,于是會回復(fù)一個ICMP應(yīng)答報文給PC1。此時的源IP地址變成了PC2的IP地址11.1.1.2/24,目的IP地址變成了PC1的IP地址10.1.1.1/24。

          由于目的IP與源IP不在同一網(wǎng)段,所以PC2也要查找FIB表,經(jīng)查找得知下一為Switch b口11.1.1.1/24。如前所述,PC2的ARP緩存中已經(jīng)記錄了Switch b口的映射信息,故不需要再向Switch發(fā)送ARP請求,直接在ARP緩存中讀到Switch 11.1.1.1/24的MAC地址進(jìn)行封裝,將數(shù)據(jù)發(fā)給Switch。

          同理Switch也不需要向PC1發(fā)送ARP請求,直接在自己的ARP緩存中讀到PC1的MAC地址,將數(shù)據(jù)報文轉(zhuǎn)發(fā)給PC1。

        8. PC1收到數(shù)據(jù)報文后,逐層拆封以太幀頭、IP首部,得到ICMP應(yīng)答報文,顯示Ping通。

        關(guān)注「開源Linux」加星標(biāo),提升IT技能

        瀏覽 73
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點(diǎn)贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            欧美综合一区二区三区 | 操逼网欧美| 毛片小视频色逼 | 国产黄片aaa | 亚洲区小说区图片区qvod | 性一交一性一交肉体 | 欧美乱大交做爰3XXX无码性色情 | 性色无码 | 人妻无码一区二区三区久 | 天天日夜夜草 |