一、引言
前一章已經說過了IP數據包是如何分發的。為啥這一章還要說這個問題?在網絡很小、只有單個連接點、沒有多余的路由的時候,使用靜態選路是可以的。但是一旦網絡變大一點就會出現各種問題。在大網絡中的網絡選路將在該節說明。 ??動態選路協議用于路由器間的通信。該章主要介紹3種動態選路協議:RIP,OSPF,BGP。在Internet這樣的大型的網絡系統中,將這些主機劃分若干個系統(分組)中,一臺主機只屬于一個系統(組)中,如將一個公司或學校定一個為一個系統(組),這些系統(組)叫做自治系統(AS,Autonomous System).正如其名一樣。每一個AS通常由單個實體管理。一組AS組織成Internet。在同一AS中在該系統下的所有路由器選擇同一種選路協議。我們稱這種路由協議為IGP(Interior Gateway Protocol,內部網關協議)
;在不同的AS中的路由器的選路協議我們稱為EGP(Exterier Gateway Protocol,外部網關協議)
。常用的IGP協議有RIP與OSPF,常用的EGP協議有BGP。
二、RIP協議
RIP(Routing Infromation Protocol 路由信息協議)數據包包含在UDP數據包中。RIP協議現在總共分兩個版本RIP-1與RIP2,RIP常用UDP端口號是520.
1. RIP-1協議
RIP-1數據包如下:
- 命令:長度一個字節。1-請求,2-應答,3/4-舍棄不用,5-輪詢,6-輪詢表項;
- 版本字段:長度一個字節。RIP-1協議為1,RIP-2協議為2;
- 一條路由項:長度20個字節。
- 地址系列: 2個字節,指明是何種地址。值為2表示IP地址。
- 度量:路由器跳轉數,直連為1,最大為16
2.運行流程
初始化
:在啟動路由守護程序,先判斷有哪些網絡端口,并且在每一個接口上發送一個RIP請求數據包。對于點對點的網絡中,直接發給連接主機。如果是網絡,這種請求是以廣播的形式發送出去的。這種請求報文的命令字段為 1,但地址系列字段設置為 0,而度量字段設置為 16。這是一種要求另一端完整路由表的特殊請求報文。接收請求
:如果這個請求是剛才提到的特殊請求,那么路由器就將完整的路由表發送給請求者。就處理請求中的每一個表項:如果有連接到指明地址的路由,則將度量設置成我們的值,否則將度量置為16(度量為16是一種稱為“無窮大”的特殊值,它意味著沒有到達目的的路由)。然后發回響應。接收到的響應
:使響應生效,可能會更新路由表。可能會增加新表項,對已有的表項進行修改,或是將已有表項刪除。定期選路更新
:每過30秒,所有或部分路由器會將其完整路由表發送給相鄰路由器。發送路由表可以是廣播形式的(如在以太網上),或是發送給點對點鏈路的其他終點的。觸發更新
:每當一條路由的度量發生變化時,就對它進行更新。不需要發送完整路由表,而只需要發送那些發生變化的表項。
3.RIP-2協議
RIP-2協議是對RIP-1協議的擴充,該協議不改變RIP-1協議內容,只是所有的填充0區域利用上了。
- 路由域:一個選路守護程序的標識符,它指出了這個數據報的所有者。在一個Unix實現中,它可以是選路守護程序的進程號。該域允許管理者在單個路由器上運行多個RIP實例,每個實例在一個選路域內運行。
- 路由標記:為了支持外部網關協議而存在的。它攜帶著一個 EGP和BGP的自治系統號。
- 32位子網掩碼:每個表項的子網掩碼應用于相應的IP地址上。
三、OSPF協議
OSPF(Open Shortest Path First 開放式最短路徑優先)是除RIP外的另一個IGP協議。它克服了RIP的所有限制。 ??與采用距離向量的 R I P協議不同的是, O S P F是一個鏈路狀態協議。距離向量的意思是,R I P發送的報文包含一個距離向量(跳數)。每個路由器都根據它所接收到鄰站的這些距離向量來更新自己的路由表。 ??在一個鏈路狀態協議中,路由器并不與其鄰站交換距離信息。它采用的是每個路由器主動地測試與其鄰站相連鏈路的狀態,將這些信息發送給它的其他鄰站,而鄰站將這些信息在自治系統中傳播出去。每個路由器接收這些鏈路狀態信息,并建立起完整的路由表。 參考鏈接:kalng.blog.51cto.com/3145815/829…
四、BGP協議
BGP(Border Gateway Protocol 邊界網關協議)是一種不同自治系統的路由器之間進行通信的EGP協議。 ??BGP與RIP和OSPF的不同之處在于BGP使用TCP作為其傳輸層協議。兩個運行BGP的系統之間建立一條TCP連接,然后交換整個BGP路由表。從這個時候開始,在路由表發生變化時,再發送更新信號。 ??BGP是一個距離向量協議,但是與(通告到目的地址跳數的)RIP不同的是,BGP列舉了到每個目的地址的路由(自治系統到達目的地址的序列號)。這樣就排除了一些距離向量協議的問題。采用16 bit 數字表示自治系統標識。 ??BGP通過定期發送keepalive數據包給其鄰站來檢測 TCP連接對端的鏈路或主機失敗。兩個報文之間的時間間隔建議值為30秒。
都看到這里了,要不要掃二維碼關注一下微信公眾號林灣村龍貓。