IP路由選擇過程(概況)

瞭解完IP協議簇後,經過別人寫的IP路由選擇過程簡單瞭解下數據的行走過程。windows

轉自:https://blog.csdn.net/weixin_44059188/article/details/99628775緩存

IP路由選擇過程(概況)

用戶在Host_Aping Host_BIP地址網絡

1)ICMP生成一個迴應請求——數據字段中的字母併發

2)ICMP將該請求交給IP,後者建立一個分組ide

3)建立分組後,IP判斷目標IP地址位於本地網絡仍是遠程網絡.net

4)IP判斷出這是一個遠程請求,所以必須將分組發送到默認網關,以便它可以被路由到遠程網絡blog

5)在Host_A上,配置的默認網關爲172.16.10.1。所以必須知道IP地址爲172.16.10.1的接口E0的硬件地址。只有知道硬件地址後,才能將分組交給數據鏈路層,再由後者將其封裝成幀,併發送到與網絡172.16.10.1相連的路由器接口(在LAN內,主機只能經過硬件地址進行通訊,所以Host_A想要與Host_B通訊,必須將分組發送給本地網絡的默認網關的介質訪問控制地址)接口

注:MAC地址只能用於LAN內部通訊,而不能用於穿越路由器進行通訊路由

6)檢查主機的地址解析協議(ARP)緩存,看看默認網關的IP地址是否已被解析爲硬件地址。若是已解析,就能夠直接將分組交給數據鏈路層,由它封裝成幀;若是還未解析,將在本地網絡中發送ARP廣播,以查詢172.16.10.1對應的硬件地址,路由器將相應該請求,並提供接口E0的硬件地址,而主機將緩存該硬件地址get

7)分組和目標硬件地址被交給數據鏈路層,LAN驅動程序將根據LAN類型,來提供介質訪問。而後生成一個幀,它使用控制信息對分組進行封裝

IP路由選擇過程(概況)
ping Host_B時,Host_A發送給Lab_A的幀

8)幀建立好後,被交給物理層,物理層以每次1比特的方式將幀放到物理介質上

9)當前衝突域中的每臺設備都接收這些比特,並將其封裝成幀。每臺設備都執行CRC計算,而且將結果與FCS字段的值對比,若是不一樣就丟棄該幀;相同就查看硬件地址,看指的是否是本身,若是是本身,就查看「以太類型」字段,來獲悉使用的網絡層協議

10)從幀中提取分組並將其餘部分丟棄,將分組交給指定的協議(此處是IP)

11)IP接收分組並檢查其目標IP地址。由於該目標IP地址與該路由器配置的全部地址都不匹配,所以路由器會在路由選擇表中查找目標IP網絡

12)路由選擇表必須有前往網絡172.16.20.0的路由,不然路由器將當即丟棄分組,並向始發設備發送一條ICMP消息,來講明目標網絡不可達

13)若是在路由選擇表中找到了前往目標網絡的路由,路由器將分組交換到指定的出站接口(此處是E1)

14)路由器將分組交換到接口E1的緩衝區

15)E1的緩衝區須要知道目標主機的硬件地址,所以查看ARP緩存。若是Host_B的硬件地址之前已經被解析過了,而且包含在路由器的ARP緩存中,將直接把分組以及該硬件地址交給數據鏈路層以便封裝成幀;若是沒有被解析過,路由器將經過E1發送ARP請求,來查詢172.16.20.2對應的硬件地址,而後Host_B將做出響應,並提供本身的硬件地址。而後分組和目標硬件地址交給數據鏈路層,以便將分組封裝成幀

16)數據鏈路層建立一個幀,包含目標硬件地址、源硬件地址、「以太類型」字段和FCS字段,這個幀被交給物理層,物理層以每次1比特的方式將幀放到物理介質上

17)Host_B接收這個幀,並執行CRC計算(相同)→查看目標硬件地址(相同)→查看「以太類型」字段→肯定是哪個網絡層協議(IP)

18)在網絡層,IP收到分組後對IP報頭執行CRC計算(相同)→查看目標地址(相同)→查看「協議」字段→肯定將分組的有效負載交給誰

19)有效負載被交給ICMP,後者知道這是一個迴應請求,所以當即對請求進行響應:將分組丟棄並生成一個迴應應答

20)爲封裝回應應答,建立一個包含源IP地址、目標IP地址、」協議「字段和有效負載的分組

21)IP檢查目標IP地址位於本地LAN仍是遠程網絡,因爲目標設備位於遠程網絡中,所以須要將分組發送到默認網關

22)在windows設備的註冊表中找到默認網關的IP地址,並查看ARP緩存,看看是否將默認網關的IP地址解析爲硬件地址

23)獲悉默認網關的硬件地址後,將其與分組一塊兒交給數據鏈路層,以便將分組封裝成幀

24)數據鏈路層將分組封裝成幀

25)這個幀被交給物理層,讓它經過網絡介質以每次1比特的方式發送出去

26)路由器的接口E1接收這些比特,並將它們組裝成幀。而後執行CRC計算,將結果與FCS字段的值進行比較,看其是否相同

27)肯定CRC相同後,查看目標硬件地址(相同)→從幀中提取分組,查看「以太類型」字段,肯定將其分組交給哪個網絡層協議(IP)

28)協議爲IP,所以分組被交付給IP。IP首先對IP報頭執行CRC檢查,再查看目標IP地址

29)因爲路由器知道如何前往網絡172.16.10.0,出站口爲E0,所以分組被交換到接口E0

30)路由器查看ARP緩存,看看是否曾經將172.16.10.2解析爲硬件地址

31)因爲在一開始分組前往Host_B期間,路由器已經緩存了172.16.10.2對應的硬件地址所以將該硬件地址和分組一塊兒交給數據鏈路層

32)數據鏈路層使用目標硬件地址和源硬件地址建立一個幀,而且將「以太類型」字段設置爲IP,而後對整個幀執行CRC計算,並將結果放到FCS字段中

33)這個幀被交給物理層,讓它以每次1比特的方式發送到本地網絡上

34)目標主機接收這個幀,執行CRC檢查並檢查目標硬件地址,再查看「以太類型」字段來肯定將分組交給誰

35)指定的接收方爲IP,所以分組被交給網絡層協議IP。IP檢查「協議」字段,來肯定將有效負載交給誰。IP發現應該將有效負載交給交給ICMP,而ICMP判斷出這個分組時ICMP迴應應答

36)ICMP在用戶界面上顯示一個 !,以肯定它收到了應答。而後ICMP試圖再向目標主機發送4個迴應請求

這是簡單的不一樣網段數據路由過程。還不太詳細,大概瞭解下過程,後面會從集中瞭解下各類數據封裝結構、及解封裝,而後把每一步的封裝內容加入到路由選擇過程當中。這是整個網絡技術的精髓也是基礎,把這些搞清楚,可以觸類旁通,同時也是對進軍CCIE/HCIE有利。

相關文章
相關標籤/搜索