IP協議詳解之二 深入理解IP路由選擇過程

2021-06-27 04:34:39 字數 3859 閱讀 9452

ip路由選擇,是思科網路工程師必須要了解的乙個基礎知識。其實,ip路由並沒有大家想的那麼複雜。筆者在這篇文章中,將通過乙個案例,來幫助大家深入了解ip路由的選擇過程。希望這篇文章能夠幫助大家掃清ip路由選擇上的一些誤區。 

如下圖,現在這麼乙個網路。主機甲與主機乙分別在兩個不同的網段上,中間通過路由器進行連線。現在假設主機甲要跟主機乙進行通訊,那麼主機甲如何才能夠找到主機乙的位置呢?筆者現在就通過這個例子,跟大家詳細解釋ip路由選擇的整個過程。在這裡,筆者以cisco的路由器為例進行介紹。 

假設現在主機甲的使用者利用ping命令,來確認主機乙的連通性問題。這個網路架構雖然比較簡單,但是其路由選擇過程的步驟則是一步不缺的。主要通過如下步驟: 

第一步:當使用者在主機甲上輸如ping 172.168.80.8之後,主機甲中有乙個網際網路控制報文協議,英文簡稱為icmp。這個協議將建立乙個回應請求資料報,在它的資料域中只包含有字母。 

第二步:英特網控制報文協議會將這個有效負荷(即剛建立的資料報)交給網際網路協議(英文簡稱ip)。然後這個網際網路協議也會建立乙個資料報。在這個英特網協議建立的資料報中,所包含的內容要比網際網路控制報文協議所建立的資料報豐富的多。在這個包中包括主機甲的ip位址、目的地主機已的ip位址以及值為01h的協議字段。當資料報到達主機乙時,這些內容就是告訴對方,應該將這個有效負荷交給網際網路控制報文協議來處理。

第三步:ip協議會判斷目的ip位址是屬於遠端網路,還是在本地網路。由於根據ip位址規劃規則,主機甲與主機已是屬於不同的網路。此時,剛才英特網協議(ip)所建立的資料報將會被傳送到預設的閘道器中去。在主機甲的網路屬性配置中,除了有自身的邏輯ip位址,還有預設的閘道器位址。閘道器位址就是用來不同網路之間的主機進行通訊的一扇門。只有通過閘道器,主機甲的資料報才能夠被傳送到不同網路的主機乙中。

第四步:確認路由器相應介面的mac位址。假設主機甲(ip位址為172.168.60.6)的預設閘道器被配置為172.168.60.1。若主機甲的資料報要傳送到這個預設閘道器上,則就必須知道其對應的路由器介面的實體地址,即mac位址。因為只有如此,資料報才能夠被傳遞到更下一層的資料鏈路層並根據一定的規則生成幀。然後主機甲才能夠把資料報傳送給172.168.60.0網路連線的路由器介面。在本地區域網上,主機只可以通過硬體位址來相互之間進行通訊。所以當主機甲要把資料報傳送給特定的閘道器時,必須要知道這個閘道器所對應的mac位址。這乙個過程是不可避免的。為了達到這個目的,主機甲首先會檢查自己的arp快取,檢視乙個預設閘道器的ip位址是否已經解析為對應介面的硬體位址。如果在arp快取表中已經有對應的記錄,表示已經被成功解析。此時,資料報將會被釋放並傳遞到資料鏈路層並生成幀。其中目的方的硬體位址也將同資料報一起下傳到資料鏈路層。通常情況下,在主機甲上,可以通過arp命令來檢視主機當前的ip位址與mac位址的對應表。如下圖。筆者現在電腦所設定的預設閘道器為192.168.0.254,後面的16位字元就是預設閘道器所對應的硬體位址。

第五步:生成幀。當這個資料報和目的方的硬體位址被傳遞給資料鏈路層之後,區域網驅動器將用來提供**訪問服務,以通過乙太網進行資料傳輸。乙個資料幀即將產生,使用一些控制資訊來封裝這個資料報。在這個資料幀中會包含有目的方和源方的硬體位址。以及乙太網型別字段。這個乙太網型別字段主要用來描述的是交付這個資料報到資料鏈路層的網路層協議。在這個幀的結尾,是一種被稱作為幀校驗序列的字段,它是裝載迴圈冗餘校驗計算值的區域。也就是說,在這個幀中,主要包括目的mac位址(對應路由器介面的mac位址)、源mac位址(主機甲的mac位址)、乙太網型別字段、資料報、幀校驗序列五部分內容。注意,這裡指的目的位址並不是主機乙的位址,而是裡主機甲最近的預設閘道器位址。在第一次通訊時,主機甲並不知道主機乙的mac位址。一旦完成幀的封裝,則這個幀將會被交付到物理層。如果企業網路是利用雙絞線組建的話,則將會以一次一位的方式發往物理**。

以上五個步驟主要都是在主機甲上完成。這五個步驟執行完畢之後,ip路由選擇過程的前期工作就算完成了。接下來的就要看路由器的表演了。 

第六步:在主機甲所在的衝突域中的每台網路裝置都將接收這些位並重新合併成資料幀。接收完畢後,他們會執行crc過程並核對儲存在幀校驗序列欄位中的內容。如果這兩個值不匹配的話,則這個幀將會被丟棄。如果兩個值相同(主機甲的預設閘道器,即緊鄰主機甲的路由器介面),則網路裝置會接收這個幀,並核查目的方的硬體位址,檢查他們是否也匹配。如果目的方的硬體位址也是匹配的,那麼路由器將會檢視這個幀的乙太網型別字段,以了解在網路層上採用了什麼協議,然後路由器就會抽出幀中的資料報,把其餘部分內容丟棄。然後把抽出來的資料報傳送給乙太網型別欄位中列出的上層協議,如英特網網路協議(ip)等等。 

第七步:判斷路由表專案。英特網網路協議(ip)會接收這個資料報,並檢查目的ip位址。在這個案例中,由於資料報中的目的位址與接收路由器所配置的任何位址都不相匹配。此時,路由器就會在自己的路由表中,檢視目的ip網路的位址。在這個案例中,由於路由器同時連線著172.16.80.0的網路。所以在這個路由器的路由表中,有相關的紀錄。若沒有記錄的話,則這個資料報會被直接丟棄。若路由器丟棄資料報的話,則會傳送乙個「目標位址不可達」的錯誤資訊給主機甲。 

第八步:路由器**資料報。如果路由器的確在他的路由表中找到了相應網路的記錄,則資料報就會被**到輸出介面。在本例中,就是主機乙所連線的介面。路由器會將這個資料報交換到對應介面的緩衝區內。 

第九步:緩衝區中資料的處理。路由器對應介面的緩衝區需要了解目的方主機的硬體位址。因為這個資料報中已經有目的方的ip位址,所以,路由器會先檢查arp快取表。如果主機甲的硬體位址已經被解析並儲存在路由器的arp緩衝中,則這個資料報和這個硬體位址將被傳遞到資料鏈路層以便重新生成幀。通常情況下,若路由器以前跟主機乙通訊過的話,則這個ip位址與mac位址的對應記錄將會在思科路由器arp緩衝表中儲存四個小時。連續四個小時沒有通訊的話,則這個對應的記錄將會被刪除。如果在路由器的arp緩衝表中沒有相關記錄的話,則路由器介面會在其連線的網路內部,傳送乙個arp請求。這個arp請求就像乙個廣播,我現在需要知道ip位址為172.12.80.8的mac位址。此時。其他網路裝置發現自己不是這個ip位址,就會拋棄這個包。而主機乙發現有人在問自己的mac位址,就會進行響應。告訴路由器,我的ip位址就是這個,我的mac位址是多少。路由器知道目的主機乙的mac位址之後,就會把資料報連同目的方的mac位址傳遞到下一層的資料鏈路中。 

第十步:路由器會重複上面的第五步操作,生成資料幀。併發送到物理層,以一次一位的方式再傳送到物理**上。在網路中進行傳輸。

在路由器上的工作也完成。通過以上的分析,我們可以看到,路由器的作用主要就是進行資料交換。把其收到的資料報根據一定的規則**到另乙個可達的介面上。路由器就好像是乙個十字路口,各個資料報都根據自己所需要到達的目的地,現在合適的出口。

第十一步:主機乙會接收到這個資料幀並執行crc過程。如果運算結果與幀校驗序列中字段的內容相同,則這個幀中目的方的mac位址將會被讀取。主機乙會判斷這個mac位址是否跟自己的mac位址相同。若相同的話,則會抽取其中的資料報,並根據乙太網字段型別中指定的協議,把資料報傳遞給相應的協議處理。由於這個案例中,資料報中是乙個回應請求。主機乙就會把這個資料報交給icmp協議處理。icmp協議會應答這個請求,同時把這個資料報丟棄並迅速生成乙個新的有效負荷來作為回應應答。然後主機乙會利用同樣的過程把資料報以及目的mac位址(路由器對應介面的實體地址)傳遞到下一層,讓其生成幀。在資料幀上,會帶有目的mac位址、源mac位址、資料報、乙太網字段型別、幀校驗序列欄位等內容傳送到下一層。然後再一位位的傳送到物理**。 

第十二步:路由器再重複第六步到第十步的過程,把資料報從乙個接**換傳遞到另乙個介面中。然後主機甲就收到乙個回應資訊,表示到主機乙的道路是通的。 

以上這個十二個步驟就完成了ip路由選擇的全部過程。再複雜的網路,也只是中間多了幾個節點,多重複了幾個步驟而已。網路管理員了解了這個ip路由選擇的過程,那麼在日後網路故障的排查中,會更加的得心應手。

深入理解IP路由選擇過程

ip路由選擇,是思科網路工程師必須要了解的乙個基礎知識。其實,ip路由並沒有大家想的那麼複雜。筆者在這篇文章中,將通過乙個案例,來幫助大家深入了解ip路由的選擇過程。希望這篇文章能夠幫助大家掃清ip路由選擇上的一些誤區。如下圖,現在這麼乙個網路。主機甲與主機乙分別在兩個不同的網段上,中間通過路由器進...

網路知識總結 (二)IP協議詳解

ip協議 是tcp ip協議族的動力,它為上層提供無狀態 無連線 不可靠的服務。不可靠 不能保證ip資料報能準確的傳送到目的端。ipv4頭部通常為 20 位元組,除非含有可變長的選項部分。當ip資料報長度超過幀的mtu時,ip資料報將被分片傳輸。分片可能發生在傳送端 中轉路由器或傳輸過程中,但最終在...

TCP IP協議學習之二(網際協議IP)

在進行通訊的時候,我們需要知道資料報去往何處,需要知道本地位址與目標位址,乙個典型的ip資料報如下 可以看到上面的ip資料的ip頭有20個位元組,其中含有32位的源ip位址與目的ip位址。這裡需要說明下首部的幾個標誌為 ttl time to live 生存時間字段設定了資料報可以經過的最多路由器數...