目錄
一、基本概念
1、理想的路由算法應具備的特點
2、分層次的路由選擇協議
二、內部網關協議RIP
1、特點
2、路由交換信息
3、距離向量算法
4、壞消息傳送慢問題
5、RIP報文格式
三、內部網關協議OSPF
1、特點
2、其他特點
3、自治系統區域劃分
4、OSPF的5中分組類型
5、OFPS數據報格式
該章節主要討論如何得到路由表
一、基本概念
1、理想的路由算法應具備的特點
正確和完整:所有的數據分組一定最終能到達終點
簡單:不能有太大開銷,增加通信負擔
自適應:自動調整各個路徑的負載,1負擔大了就走2
穩定:網絡拓撲和通信量穩定時,路由路徑不能老是變化
公平:大多數用戶的時延都差不多
最佳:最目標要求而言,相對最優
靜態路由選擇:人工配置,用于小網絡
動態路由選擇:由算法自適應網絡變化而動態調整路由表達到最佳
2、分層次的路由選擇協議
許多單位不希望別人知道自己的路由選擇協議細節,同時希望上網
因此,把整個互聯網分為一個個自治系統(autonomous system) AS
一個自治系統由一個單一的技術來管理多個網絡、IP地址和路由器
A自治系統有A的一套,B有B的一套
你打你的,我打我的
于是,將整個互聯網的路由協議分為兩層:
在一個自治系統內部使用的路由器協議:內部網關協議(Internal Gateway Protocal)
在不同自治系統之間使用的路由器協議:外部網關協議(External Gateway Protocal)
自治系統內的路由選擇:域內路由選擇
不同資質系統之間的路由選擇:域間路由選擇
常用內部網關協議是RIP和OSPF
常用外部網關協議是BGP-4
二、內部網關協議RIP
1、特點
路由信息協議RIP:Routing Information Protocol
是基于距離向量的路由協議
路由表中維護本網絡到每一個目的網絡的距離
距離如何定義:路由器和直接連接的網絡距離為1(也可以定義為0,不影響)
因此,距離也叫做跳數,每經過一個網絡,跳數+1
該協議人為:好的協議就是路徑短
路徑最多15,16不可達
因此RIP只適用于小網絡
RIP對兩個路由器之間,不能同時擁有多個路由
只能有一個,就是跳數最短,網絡最少的一條
不管這一條速度快還是慢,我只管短還是長,不管速度
2、路由交換信息
本路由器需要和其他路由器交換信息建立路由表
那么:
和哪些路由器交換信息?所有的路由器嗎?
僅和相鄰路由器交換信息,不相鄰不交換
交換什么信息?部分信息還是所有信息?
交換全部信息,即所有的路由表信息
什么時候交換信息?條件滿足才交換還是隔一段時間就交換?
按固定的時間間隔交換信息,例如每隔30s
路由器剛開始工作的時候,路由表是空的
路由收斂:自治系統內所有節點得到正確的路由信息
路由表更新的原則是:找出每個目的網路的最短距離
3、距離向量算法
A的相鄰路由器是B
從B->A發來的路由表信息有三個:
目的網絡Net,距離d,下一跳
因為對A來說,到B的下一跳只能是B
所以,B發來的路由表的下一跳都是B
因此,對A來說,B發來的路由只有以下幾種:
A原來沒有
那就加上
A有,目的網絡一樣,查看下一跳
如果下一跳也是B,直接換掉(不管距離長短)
如果嚇一跳不是B(也就是說有別的路徑可以到達目的)
這個時候就看距離,那個距離短,用哪個
3分鐘還沒有收到相鄰路由器信息
即A3分鐘還沒有收到B的路由信息,把到B的路由距離設置為16
標記不可到達
總結:
Net沒有,加上去
Net一樣,看下一跳:下一跳相同,直接更新;下一跳不一樣,看誰短
4、壞消息傳送慢問題
由于上述的更新策略,導致一下問題:
壞消息傳的慢
什么意思?
舉個例子,如圖:
此時Net1故障,R1無法到達Net1,將到Net1距離改為16
30s后,將路由表發送給鄰居R2
但是,還沒到30s,R2就給R1發送自己的路由表信息了
此時,R2到達Net1的信息是:Net1 3 R2
該條信息到達R1后,一對比,Net1 16 直接
下一跳不相同,但是距離更短,更換
于是,R1到Net1的路由被換成:Net1 3 R2
到達30s后,R1再把Net1 4 R1發送給R2
一對比,R2為Net1 2 R1?
?下一跳一樣,直接換
于是,二者不斷更新循環
直到距離加到16才停止
此時,才知道Net1故障
即所謂壞消息慢
5、RIP報文格式
RIP報文用運輸層用戶數據報UDP的數據部分傳送
格式如下:
RIP報文:首部 + 路由部分
路由部分:自治系統號ASN(可能收到本自治系統外的路由信息)
目的網絡、下一跳路由器地址、距離
一個RIP報文最多帶25個路由
超過必須用下一個報文來傳送
綜上所述,由于RIP所采取的路由更新策略
導致了其結構性上的缺點:
1、最大距離15(16不可達),只能用于小網絡 ?
2、更換信息,傳送所有路由信息,開銷大
3、壞消息傳的慢,更新過程收斂時間長
因此,對于大網絡來說,RIP路由策略不適合
于是,有了OSPF路由協議
三、內部網關協議OSPF
1、特點
1、向本自治系統所有路由器發送信息,洪泛法
路由器向所有接口發送信息
相鄰路由器除收到接口,對其余所有接口發送信息
以此類推
最后,所有路由器收到該信息副本
2、發送信息為:所有相鄰路由器鏈路狀態
什么是鏈路狀態?
該路由器和哪些路由器相鄰
該鏈路代價(費用、距離、時延、寬帶等)
3、每隔一段時間 / 鏈路狀態發生變化:則洪泛
由上述三點特征,使得:
所有路由器擁有全網(本自治系統內)的拓撲結構圖
也就是建立了一個鏈路狀態數據庫
該數據庫記錄:全網有多少路由器、相鄰情況、代價情況等
于是,每一個路由器就可以根據這些數據,使用Dijkstra最短路徑算法計算自己的路由表
(OSPF鏈路狀態數據庫更新快,因此更新過程收斂快)
2、其他特點
1、OSPF允許管理員給每條路指定代價
2、到同一個網絡,有多條路代價相同,可以對通信進行均衡平攤
3、路由器交換分組具有鑒別能力,壞的路由器不發
4、支持變長網絡地址劃分,支持誤分類網絡編制CIDR
5、網絡鏈路經常變化,因此讓鏈路狀態帶序號,更新一次,序號+1
? ? ?于是序號越大,狀態越新
3、自治系統區域劃分
為了讓OSPF應用于更大的網絡
OSPF將一個自治系統網路劃分為更小的區域
每個區域用32位標識區域,用點分十進制記錄
每個區域路由器最好不超過200個
劃分好以后:
1、洪泛只局限在一個區域內,以減少通信量
路由器只直到本區域內的網絡拓撲
2、為區域間通信,對區域劃分層次:
上層為主干區域,32位標識規定為0.0.0.0
在主干區域的路由器:叫做主干路由器
區域交界的路由器:叫做區域邊界路由器
每個區域至少一個區域邊界路由器,以維護其他區域通信
在自治系統邊界之間的路由器:叫做自治系統邊界路由器
負責和其他路由器通信
上述所做的區域劃分和層次劃分
目的只有一個:減少路由信息交互負擔
以增強OSPF協議對更大網絡的適應
4、OSPF的5中分組類型
1、問候分組
用于發現和維持鄰居的可達性
說人話就是發個消息,看鄰居家能不能去
規定每10s發送一次
如果40s沒有收到某個鄰居發來的問候分組,則認為鄰居死了,設置為不可達
其余四個分組都是用于同步鏈路狀態信息的
2、數據庫描述分組
向鄰居發送自己的所有鏈路狀態數據
3、數據鏈路請求分組
請求鄰居發送人家的某些鏈路狀態
4、鏈路狀態更新分組
對全網洪泛(本區域內)
(OSPF核心功能)
5、鏈路狀態確認分組
對鏈路更新的確認
向發送鏈路狀態更新分組的路由器發送確認分組
我收到鄰居的鏈路狀態分組,我得告訴人家,我確實收到了
5、OFPS數據報格式
OSPF分組作為IP數據報的數據部分
IP首部協議為89
OSPF分組很短
注意:
洪泛并非所有的路由器都洪泛發送本地鏈路狀體信息
這代價很大
那么怎么做呢?
假設路由器A B相鄰
A的數據庫摘要和B的數據庫摘要互相交換
于是:
A知道有些自己沒有,但B有
同理,B也如此
于是,
A向B發送自己缺少的鏈路狀態請求,這些我沒有,但是B你有,你告訴我
B也向A發送自己缺少的鏈路狀態請求,
經過多輪兩兩之間的交換
最后所有路由器都有了全部的信息
每隔一段時間,如30分鐘,OSPF刷新一次鏈路狀態數據庫
四、學習本章需要具備能力
1、根據RIP路由策略得到路由表
2、認識RIP的特點
3、理解路由算法
4、RIP路由算法的優點和缺點,例如壞消息、收斂、不可達等