因特網的內部網關協議

    我們在之前的學習當中知道了路由表的重要性,但是我們並沒有探討路由表到底是如何生成的,這篇文章,我們就要來探討一下這個問題。目前因特網採用路由選擇協議來來獲得路由表中的項目。

    路由選擇協議可以分爲兩大類,一種是靜態路由選擇協議動態路由選擇協議。靜態路由選擇協議主要依靠的是人工設置路由表的方式來設置路由表中的項目,而動態路由選擇協議主要是自適應的,適合於大型的因特網,所以我們把主要的目光放在動態路由選擇協議的特點上。

     由於一個路由選擇協議最主要的是路由選擇算法,所以我們不可能讓一個算法的對象設置爲整個因特網上的所有主機,同時有些機構不希望外界知道自己機構內部的通信協議,所以整個因特網被劃分爲一個個的自治系統。每個自治系統的內部使用單一的路由選擇協議,這種協議稱之爲內部網關協議,而自治系統之間也需要交換路由表的信息,這個時候就需要使用外部網關協議。所以我們分爲兩個部分來討論。

    內部網關協議之一——路由信息協議(RIP)

    RIP的主要特點是以跳數的多少來衡量路由的好壞,相鄰的路由的跳數定義爲1,和相鄰的路由的相鄰路由定義爲2,以此類推。RIP選擇最少跳數的路由作爲路由表項目。需要注意的是,RIP最多允許一條路徑包含15個路由器,當距離爲16的時候,代表這個IP地址不可達。

    要想弄清楚RIP協議,最重要的是弄清楚三個要點,第一:當前路由器和那些路由器交換信息?第二:交換什麼信息?第三:在什麼時候交換信息?

    第一個問題的答案是——當前路由器僅和其相鄰的路由器交換信息。

    第二個問題的答案是——交換當前路由器中所有的路由表。

    第三個問題的答案是——按固定的時間間隔來交換路由信息。(在網絡拓撲發生變化的時候,路由器也要向相鄰的路由器交換必要的路由信息)

    RIP最關鍵的當然是距離向量算法。當路由器收到一個相鄰路由發過來的RIP報文,進行以下步驟:

    (1)首先明白當前路由表項目中重要的三個要素——下一跳的地址,距離,目的地址。例如,路由器X將其路由表中的信息發給當前路由器,那麼下一跳的地址是X,距離等於當前路由器X發過來的時候的距離加一,目的地址不變。

    (2)經過上面處理之後,如果目的地址在當前路由器不存在,那麼就把上面的路由信息放置到當前路由器中的路由表中。如果目的地址在當前路由器的路由表中,且下一跳地址爲X,則更新當前的路由表項目的信息。如果目的地址在路由表中,但是下一跳地址不是X,且X的距離比舊路由信息中的距離要小,那麼就將之前路由表中的信息代替掉。

    (3)如果三分鐘還沒收到相鄰路由器的路由更新信息,就將這個 路由器的距離設置爲16,表示不可達。

    (4)返回。

    對於一個協議我們有必要研究其報文的內容,RIP使用UDP來進行協議的傳輸。

    其中RIP首部爲4字節,RIP數據部分,圖中每一行的長度也爲4字節,所以傳播路由表中的一個項目需要20字節。而一共最大能傳播25個項目。

    其他RIP協議需要注意的地方——RIP協議所在的網絡拓撲一旦出現問題,那麼可能需要比較長的時間才能趨於穩定。這種情況出現在,假設原本和路由器1直接相連的網絡1突然出現故障,那麼路由器1就將路由表中的關於網路1的項目改爲1,16,網絡1。而正在此時,和路由器直接相連但是要通過路由器1到達網絡1的路由器2可能已經把報文發給了路由器1,報文爲1,2,網絡1。此時路由器1更新路由表中的項目,這樣來回幾次,才能最後收斂,這個在教科書上稱之爲,壞消息傳播的快!

    內部網關協議之二——開放最短路徑優先(OSPF)

    我們再討論RIP的時候我們說明了三個要點——和哪些路由器交換路由信息,交換什麼信息,和什麼時候交換信息。同樣在這裏OSPF也需要討論這三個要點。

    (1)OSPF和自制系統中所有的路由器交換信息。路由器將信息發送給所有相鄰的路由器,相鄰的路由器再將信息轉發給相鄰的路由器。

    (2)OSPF交換的信息是和它相鄰所有路由器的鏈路狀態,而不僅僅是“距離”。這裏鏈路狀態其實很靈活,可以由管理員來設置相應的鏈路代價。

    (3)在網絡拓撲發生變化的時候OSPF要交換信息,在規定的時間間隔也要交換信息。

    需要注意的是路由器交換的信息只是它所知道的部分信息,由於路由信息不斷地在全網當中不斷地傳播,所以所有的路由器都知道全網中所有的路由器的鏈路狀態,知道全網的網絡拓撲,因此可以建立一個數據庫,建立起路由表。

    由於OSPF可以適用於很大的網絡,所以在具體的實現過程當中在自治系統當中劃分出更多的區域,這樣可以減少算法的開銷,收斂的也更加地快。

    我們再來看一下OSPF的報文的具體內容。(OSPF使用IP數據報進行傳送)


   其中需要解釋的是OSPF數據報的類型。一共有五種。

   (1)問候分組,這個是探索相鄰的路由器是否可達,也是進行其他報文交換的基礎。

   (2)數據庫描述分組,向相鄰的路由器傳達當前路由器中所有的摘要信息。

   (3)鏈路狀態請求分組,向路由器請求數據庫中某部分的詳細信息。

   (4)鏈路狀態更新分組,將鏈路狀態的信息向全網洪範發送。

   (5)鏈路狀態確認分組,對鏈路狀態更新分組的確認。

   還有需要注意的地方就是——當OSPF報文在全網當中洪範地傳播的時候,當前路由器需要給相鄰的路由器傳播這份報文,但是不能重新傳給上游的路由器。

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章