前提:
IP數據報的首部中沒有地方能夠用來指明“下一跳路由器的 IP 地址”。
那么。當路由器接受到一個待轉發的報文時。是怎樣確定將該報文的傳向呢?在此,我們引入“路由表”概念。
路由表如圖所看到的:
當一個IP報文傳到路由器R2時,則會通過查詢R2所維護的路由表,依據IP報文段中的目的地址進行匹配。
得到對應的下一跳地址。
這樣,
IP 數據報終於一定能夠找到目的主機所在目的網絡上的路由器(可能要通過多次的間接交付)。
僅僅有到達最后一個路由器時,才試圖向目的主機進行直接交付。
當然,路由表內容不止上圖所看到的。例如以下:
特定主機路由:
這樣的路由是為特定的目的主機指明一個路由。
採用特定主機路由可使網絡管理人員能更方便地控制網絡和測試網絡,同一時候也可在須要考慮某種安全問題時採用這樣的特定主機路由。
默認路由:
作用:
路由器還可採用默認路由以降低路由表所占用的空間和搜索路由表所用的時間。
僅僅要目的網絡在路由表中匹配不到,就一律選擇默認路由(詳情見后面:分組轉發規則)
用途:
假設一個主機連接在一個小網絡上。而這個網絡僅僅用一個路由器和因特網連接,那么在這樣的情況下使用默認路由是非 常合適的。 。
當路由器收到待轉發的數據報,不是將下一跳路由器的 IP 地址填入 IP 數據報,而是送交下層的網絡接口軟件。
確認下一跳路由器之后,
網絡接口軟件使用 ARP 負責將下一跳路由器的 IP 地址轉換成硬件地址。並將此硬件地址放在鏈路層的 MAC 幀的首部。然后依據這個硬件地址找到下一跳路由器。
以下列出路由器之間分組轉發的算法:
(1) 從數據報的首部提取目的主機的 IP 地址 D, 得出目的網絡地址為 N。
(2) 若網絡 N 與此路由器直接相連。則把數據報直接交付目的主機 D。否則是間接交付,運行(3)。
(3) 若路由表中有目的地址為 D 的特定主機路由。則把數據報傳送給路由表中所指明的下一跳路由器。否則,運行(4)。
(4) 若路由表中有到達網絡 N 的路由,則把數據報傳送給路由表指明的下一跳路由器。否則,運行(5)。
(5) 若路由表中有一個默認路由。則把數據報傳送給路由表中所指明的默認路由器;否則,運行(6)。
(6) 報告轉發分組出錯。
本文由Cout_Sev 搜集整理並改動
轉載請注明出處
謝謝!