TCP/IP學習筆記之七 — IP選路

來源:互聯網
上載者:User
選路IP是最重要的功能之一。為IP層處理過程的簡單流程。需要進行選路的資料報可以由本地主機產生,也可以由其他主機產生。在後一種情況下,主機必須配置成一個路由器,否則通過網路介面接收到的資料報,如果目的地址不是本機就要被丟棄。 IP搜尋路由表的幾個步驟:1) 搜尋必配的主機地址;2) 搜尋匹配的網路地址;3) 搜尋預設表項(一般在路由表中被指定為一個網路表項,其網路號為0); 對於一個給定的路由器,可以列印出五種不同的標誌(flag):U 該路由可以使用。G 該路由是到一個網關(路由器)。如果沒有設定該標誌,說明目的地是直接相連的。H 該路由是到一個主機,也就是說,目的地址是一個完整的主機地址。如果沒有設定該標誌,說明該路由是到一個網路,而目的地址是一個網路地址:一個網路號,或者網路號與子網號的組合。D 該路由是由重新導向報文建立的。M 該路由已被重新導向報文修改。標誌G是非常重要的,因為由它區分了間接路由和直接路由(對於直接路由來說是不設定標誌G的)。其區別在於,發往直接路由的分組中不但具有指明目的端的IP地址,還具有其鏈路層地址。當分組被發往一個間接路由時,IP地址指明的是最終的目的地,但是鏈路層地址指明的是網關(即下一站路由器) 主機路由表的複雜性取決於主機所在網路的拓撲結構。1)最簡單的(也是最不令人感興趣的)情況是主機根本沒有與任何網路相連。TCP/IP協議仍然能用於這樣的主機,但是只能與自己本身通訊!這種情況下的路由表只包含環回介面一項。2)接下來的情況是主機連在一個區域網路上,只能訪問區域網路上的主機。這時路由表包含兩項:一項是環回介面,另一項是區域網路(如乙太網路)。3)如果主機能夠通過單個路由器訪問其他網路(如Internet)時,那麼就要進行下一步。一般情況下增加一個預設表項指向該路由器。4)如果要新增其他的特定主機或網路路由,那麼就要進行最後一步。 每當初始化一個介面時(通常是用ifconfig命令設定介面地址),就為介面自動建立一個直接路由。對於點對點鏈路和環回介面來說,路由是到達主機(例如,設定H標誌)。對於廣播介面來說,如乙太網路,路由是到達網路。 如果一份IP資料報沒有路由的預設項和匹配項,那麼要看該IP資料報是由主機產生的還是被轉寄的(例如,我們就充當一個路由器)。如果資料報是由本地主機產生的,那麼就給發送該資料報的應用程式返回一個差錯,或者是“主機不可達差錯”或者是“網路不可達差錯”。如果是被轉寄的資料報,那麼就給原始發送端發送一份ICMP主機不可達的差錯報文。 當IP資料報應該被發送到另一個路由器時,收到資料報的路由器就要發送ICMP重新導向差錯報文給IP資料報的發送端。1)我們假定主機發送一份IP資料報給R1。這種選路決策經常發生,因為R1是該主機的預設路由。2)R1收到資料報並且檢查它的路由表,發現R2是發送該資料報的下一站。當它把資料報發送給R2時,R1檢測到它正在發送的介面與資料報到達介面是相同的(即主機和兩個路由器所在的LAN)。這樣就給路由器發送重新導向報文給原始發送端提供了線索。3)R1發送一份ICMP重新導向報文給主機,告訴它以後把資料報發送給R2而不是R1。 ICMP重新導向報文: ICMP重新導向報文的不同代碼值 ICMP重新導向報文的規則:首先,重新導向報文只能由路由器產生,而不能由主機產生。另外,重新導向報文是為主機而不是為路由器使用的。假定路由器和其他一些路由器共同參與某一種選路協議,則該協議就能消除重新導向的需要。 初始化路由表的新方法:利用ICMP路由器通告和請求報文。一般認為,主機在引導以後要廣播或多播傳送一份路由器請求報文。一台或更多台路由器響應一份路由器通告報文。另外,路由器定期地廣播或多播傳送它們的路由器通告報文,允許每個正在監聽的主機相應地更新它們的路由表。RFC1256[Deering1991]確定了這兩種ICMP報文的格式。  ICMP路由器發現報文的路由器操作:當路由器啟動時,它定期在所有廣播或多播傳送介面上發送通告報文。準確地說,這些通告報文不是定期發送的,而是隨機傳送的,以減小與子網上其他路由器發生衝突的機率。一般每兩次通告間隔450秒和600秒。一份給定的通告報文預設生命週期是30分鐘。使用生命週期域的另一個時機是當路由器上的某個介面被關閉時。在這種情況下,路由器可以在該介面上發送最後一份通告報文,並把生命週期值設為0。除了定期發送主動提供的通告報文以外,路由器還要監聽來自主機的請求報文,並發送路由器通告報文以響應這些請求報文。如果子網上有多台路由器,由系統管理員為每個路由器設定優先等級。 ICMP路由器發現報文的主機操作:主機在引導期間一般發送三份路由器請求報文,每三秒鐘發送一次。一旦接收到一個有效通告報文,就停止發送請求報文。主機也監聽來自相鄰路由器的請求報文。這些通告報文可以改變主機的預設路由器。另外,如果沒有接收到來自當前預設路由器的通告報文,那麼預設路由器會逾時。只要有一般的預設路由器,該路由器就會每隔10分鐘發送通告報文,報文的生命週期是30分鐘。這說明主機的預設表項是不會逾時的,即使錯過一份或兩份通告報文。 ICMP路由器發現報文的實現路由器發現報文一般由使用者進程(精靈)建立和處理。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.