最通俗的ping原理

2021-06-26 09:14:46 字數 2303 閱讀 7008

pc10 ping pc1

10.10 20.1

首先此資料在pc10上網路層進行封裝,封裝格式如下

10.10 20.1 protocol icmp ping

判斷目標ip和我源ip是否在乙個網段裡面,結果發現不在乙個網段裡面,此時由於我pc10上配置來乙個預設閘道器,由於pc機又是一台簡單到路由器,就會在他到路由表裡面會自動生成乙個路由條目,格式為

0.0.0.0 0.0.0.0 192.168.10.254

這條路由稱之為預設路由,也就是說當結果發現不在乙個網段裡面的時候,此時pc10查它到路由表**,怎麼查?拿目標ip和預設路由的子網掩碼做位與結果,結果0.0.0.0,這個就是目標ip到網路號,正好符號預設路由的目標網段,一旦符合,就沿此路由將資料進行**,**的方式就是把資料送往下一跳192.168.10.254,這個資訊是網路層推斷出來到資訊,接著將此資訊下發給資料鏈路層,接著就去資料鏈路層進行封裝,封裝到格式如下

mr m10 type 10.10 20.1 protocol icmp ping

接著在物理層轉換為位元流通過本地網絡卡出去,抵達交換機f0/10口,進入交換機,查mac位址表進行**,發現目標mac對應的是f0/21,此時將資料從f0/21口**出去,由於f0/21打為了trunk,裡面有dot1q協議,此時改寫這個原始幀,由於這個幀從vlan 10來的,所以改寫的方式如下

mr m10 vlan10 type 10.10 20.1 protocol icmp ping

然後從f0/21發出去,抵達上面交換機的f0/21口,由於此介面也打為了trunk,當它收到這個幀的時候,檢視目標mac,再查源mac,看到裡面有乙個vlan 10,就把vlan 10到標籤乾掉

mr m10 type 10.10 20.1 protocol icmp ping

把此幀丟給本交換機到vlan 10管理域, 進入來本交換機的vlan 10,再查mac位址表**,結果就從f0/10埠出去,由於此介面也打為了trunk,又要繼續封裝

mr m10 vlan10 type 10.10 20.1 protocol icmp ping

封裝完後從f0/1口出去把,抵達路由器到f0/0.10子介面,此子介面首先收到到是位元流,再查資料幀頭部,目標mac是mr,就是我的嘛!既然是我的,我就把目標mac拆掉,再讀源mac,並把它拆掉,然後再讀vlan 10,由於為子介面也封裝來dot1q,就可以識別vlan 10,並且為子介面也關聯的是vlan 10,所以就把vlan 10拆掉

10.10 20.1 protocol icmp ping

接著看資料報,首先看源ip,是10.10,再看目標ip是20.1,這些位址都不是我路由器的位址吧,既然這個資料報不是發給我的,我只能檢視,而不能拆,由於我是路由器,我有路由表, 我可以想辦法盡量將此包通過我的路由表**出去,怎麼**?拿目標20.1和我路由表中到每一條路由條目的子網掩碼作位與運算,看是否符合該路由條目到目標網路號,發現,正好有一條符合把,通過查路由表,發現此資料報就可以從f0/0.20口出去,沒有說明目標要去往**把,這個是路由器網路層得出到結論,然後繼續開始去二層封裝

m1 mr type 10.10 20.1 protocol icmp ping

此時將資料幀通過f0/0.20口發出去把,由於此介面封裝來802.1q,它關聯到是vlan 20,所以在此幀中還要打標記,結果如下

m1 mr vlan20 type 10.10 20.1 protocol icmp ping

離開路由器之後,抵達交換機的f0/1口,由於此介面是trunk,首先檢視目標mac,發現不是自己的,然後再檢視源mac,再把vlan 20乾掉把

m1 mr type 10.10 20.1 protocol icmp ping

把此幀丟給此交換機的vlan 20,然後進入交換機,查mac位址表**,發現通過f0/21口出去,由於此介面也是trunk,改寫此資料幀

m1 mr vlan20 type 10.10 20.1 protocol icmp ping

通過f0/21進入下面的交換機,由於此介面也是trunk,改寫資料幀,把vlan 20乾掉

m1 mr type 10.10 20.1 protocol icmp ping

把此資料丟給本交換機到vlan 20

再查mac位址表**,發現要從此交換機到f0/1口把資料**出去,由於此介面是access口,不對資料幀做任何操作,此時此資料幀就可以通過f0/1離開交換機,抵達pc1,然後pc1首先收到位元流,再看幀,發現目標mac是我,就拆掉,再看源mac,記下來,拆掉,然後再拆掉type欄位,然後再看資料報,源ip記下來,再看目標ip是我,然後就可以將源目標ip都拆掉,在拆掉protocol欄位,發現裡面是乙個ping包,此時我就收到來這個ping包,然後我再回應,過程同上!

最通俗的CRC校驗原理剖析

以下內容摘自筆者即將出版的最新著作 深入理解計算機網路 一書。本書將於12月底出版上市,敬請留意!本書原始目錄參見此文 5.3.2 迴圈冗餘校驗檢錯方案 上節介紹的奇偶校驗碼 pcc 只能校驗一位錯誤,本節所要介紹的迴圈冗餘校驗碼 crc 的檢錯能力更強,可以檢出多位錯誤。1.crc校驗原理 crc...

最通俗的CRC校驗原理剖析

以下內容摘自筆者即將出版的最新著作 深入理解計算機網路 一書。本書將於12月底出版上市,敬請留意!本書原始目錄參見此文 5.3.2 迴圈冗餘校驗檢錯方案 上節介紹的奇偶校驗碼 pcc 只能校驗一位錯誤,本節所要介紹的迴圈冗餘校驗碼 crc 的檢錯能力更強,可以檢出多位錯誤。1.crc 校驗原理 cr...

ping命令最實用的

在做軟體測試的時候時常遇到網路連線問題,今天整理了一下關於網路基礎知識中的網路命令ping命令在專案中是使用頻率最高的,一般我們用的都是它的基本功能,今天和大家來詳細看下ping命令的7個基礎用法,掌握了秒變大神!1 ping命令基礎 2 ping t的使用 3 ping a的使用 4 ping n...