1. 程式人生 > >【TCP/IP】IP路由選擇

【TCP/IP】IP路由選擇

否則 spa dsm mil adding 搜索 應該 區分 class

IP層在內存中有一個路由表,當有數據要發送時,它要對該表進行一次搜索以確認轉發地址。收到的數據到達IP層時。IP層會檢查數據報的目的地址是否為本機IP或廣播IP:
  • 假設是,就依據IP首部協議字段的協議分發到對應的模塊進行處理。
  • 假設不是,那麽:
    • IP層被設為路由器功能,則對此數據報進行轉發。
    • 否則,丟棄該數據被報。

路由表內容例如以下所看到的:
字段 說明
目的IP地址 能夠是網絡地址。也能夠是主機地址。由以下的標誌字段區分
下一跳路由器IP地址 與當前網絡接口直接相連的路由器或主機網絡接口的IP地址。詳細是哪一個由以下的標誌字段區分
標誌 一個標誌區分目的IP是網絡地址還是主機地址。還有一個標誌區分下一跳路由器是真的路由器還是網絡接口
網絡接口 指明相應的數據報應該從哪個網絡接口發出去

IP路由選擇的大致步驟例如以下:
  • 搜索路由表,尋找能與目的IP地址全然匹配的表目。

    假設找到,則發送。

    否則,運行下一步。

  • 搜索路由表,尋找能與目的網絡號相匹配的表目。假設找到,則發送。

    否則,運行下一步。

  • 搜索路由表,尋找標為“默認”的表目。

    假設找到。則發送。

    否則。運行下一步。

  • 發送失敗,該數據不能被傳送。
為一個網絡指定一個路由器,也就是路由表的標誌字段指明目的IP地址是一個網絡地址。這使得路由表的規模不會太大。


例1: 源主機和目的主機處在同一個以太網上。源主機的IP層依據目的主機IP地址搜索路由表,找到了一個網絡號匹配的表項。然後將數據發送出去。

例如以下圖所看到的:

技術分享
以太網幀首部的目的地址是主機sun的以太網接口地址;IP數據報首部的目的地址是主機sun的IP地址。
例2: 源主機和目的主機處在不同網絡中。

例如以下圖所看到的:

技術分享
技術分享
主機bsdi要發送數據到外網的server192.48.96.9。首先主機搜索路由表,選擇默認表目發送到主機sun。

由於bsdi和sun在一個以太網內。所以發送之前先用ARP協議得到sun的MAC地址。接下來,sun繼續選擇默認表目發送到主機netb,這裏不是使用的以太網,而是SLIP協議。所以數據報不包括鏈路層首部。netb相同選擇默認表目發送到gateway。在這之前netb通過ARP協議獲得gateway的MAC地址。gateway選擇默認表目以類似的方式發送到外網。

註意,數據報的目的IP始終指向終於的目的IP地址。

可是以太網幀首部的48bit目的地址始終指向下一站鏈路層地址,這個以太網地址是通過地址解析協議(ARP)來獲得的。


參考: 《TCP/IP具體解釋》 P27-P30.

【TCP/IP】IP路由選擇