5.14 鏈路狀態路由選擇
鏈路狀態路由(LS)基本原理:
- 發現 它的鄰居節點,瞭解它們的網絡地址(發送hello報文)
- 設置 到它的每個鄰居的成本度量
- 構造 一個分組LSP,包含它所瞭解到的上述所有信息
- 發送 這個分組給所有其他的路由器(這一步非常重要)
- 計算 基於完整的網絡圖,計算到每個目標的最短路徑
開銷/量度/代價:自動發現設置或人工配置
常見量度:鏈路帶寬(反比)
延遲亦可作爲量度
發送一個特別的ECH0分組,另一端立刻回送一個應答
通過測量往返時間RTT,可以獲得一個合理的延遲估計值
可多次測量,取平均值
一個鏈路狀態分組/公告(LSP/LSA)包含:
- 發送方的標識(自己)
- 序列號(Seq.)
- 年齡(Age)
- 鄰居列表
- 到鄰居的成本/量度
發送LSP/LSA:
每個LSP分組都包含一個序列號,遞增
路由器記錄下它所看見的所有(源路由器、序列號)對
當一個的新的分組到達時,路由器根據記錄判斷:
》如果該分組是新的,就被泛洪廣播(序列號不在表中,轉發到除了來的線路以外的所有線路)
》如果是重複分組,即舊的被丟棄(系列號相等,喜新厭舊)
》如果是過時分組,則被拒絕(序列號比對應源路由器發送的曾經到過的序列號還小)
序列號迴轉問題(比如兩位二進制表示:00->01->10->11->00…)
這個問題會導致路由器無法甄別哪個是新的,哪個是舊的
解決辦法:
使用32-bit長的序列號
解決路由器崩潰,序列號損壞問題
每一個分組的序列號之後加一個年齡age
》每過一秒,age-1
》age=0,丟掉對應的LSP
還有一種解決辦法:
》LSP/LSA不直接分發,首先放到保留區
》新到達的LSP/LSA會和保留區中的比較
路由器空閒時,掃描保留區,以選擇LSP/LSA進行確認或轉發,以保證獲得所有的分組。
分發完全,構造出全網圖
每個路由器,採用最短路徑算法,遍歷圖
計算結果:生成樹/彙集樹
根據樹,生成路由表
鏈路狀態路由(LS)的優缺點
5.15 單區域OSPF
OSPF:開放的最短路徑優先
鏈路狀態路由的典型實例
OSPF特點:
》可以在大型網絡中使用
》無路由自環
》支持VLSM、CIDR等
》使用帶寬作爲度量值(10^8/BW)
》收斂速度塊
》通過分區實現高效的網絡管理
重要術語:
》RouterID:32位,自治系統內唯一
》協議號:89
》TTL=1:通常OSPF只傳給鄰居路由器
OSPF使用的代價是帶寬,計算時用10^8/帶寬
OSPF的五種分組類型:
OSPF運行的五步:
》建立路由器毗鄰關係(最重要,兩臺建立了全毗鄰關係的路由器,LSP數據庫完全一致。)
》選舉DR和BDR
》發現路由
》選擇最佳路由
》維護路由信息
DR的選舉過程類似於村長的選舉:
5.16無類域間路由CIDR
IP主要面臨兩大問題
(1)分類造成了數百萬個地址浪費
》A類地址網絡: 16M個 地址(太大)
》C類地址網絡: 256個地址(太小)
》B類地址網絡: 65, 536個地址(夠用)
(2)路由表膨脹
》早期網絡數不多, 現在網絡數超過百萬
CIDR緩解了地址枯竭的趨勢,尤其是緩解了B類地址枯竭的趨勢,控制甚至縮減了路由表的開銷
CIDR的基本思想描述在RFC1519中
&分配地址方法:按需分配
&實例:用戶需要2000個IP地址
》CIDR之前:分一個B類地址(65000多個)
》CIDR之後:分一個塊地址x. x. x. x/21(21位網絡位,11位主機位)
2^11-2=2046>2000
有了CIDR後,路由表必須擴展(增加一個32位的子網掩碼):
每一個路由表有一個三元組:
》目的IP地址
》子網掩碼
》輸出線路
IP地址聚合的關鍵:確定IP地址中固定不變的網絡位數
聚合結果:超網
聚合的前提條件
》子網構成的地址空間是連續的
》下一跳相同
聚合的另一個好處:隔離了路由翻動
RTA下的某條具體路由的Down/Up狀態不會影響到彙總後的路由狀態
5.17網絡地址翻譯NAT
NAT是一個IP地址耗盡的快速修補方案,在RFC3022中有所描述
NAT:私有IP地址和公有IP地址之間的轉換
PAT(超載):多個私有IP地址和一個公有IP地址之間的轉換
內部網絡使用私人地址;當內網需要和外網通信的時候,私人地址轉換成合法的global的IP地址
NAT轉換器(NAT Box)的位置和功能:
》由NAT轉換器完成私人地址和公有地址的轉換;並且維護一個地址轉換表。
》當有外網的分組到達時,NAT轉換器查找地址轉換表,轉換分組目標地址之後,轉發該分組到內網。
》NAT轉換器可以是一個專用的服務器,也可以運行在內網的邊界路由器上,也可以在家用路由器(AP)上。
NAT工作原理:
5.18互聯網控制消息協議ICMP
》向源報告錯誤
》測試網絡:ping、tracert
ICMP應用:
ping時,源機將向目的站點發送一個ICMP回聲請求報文
目的站點接收到,必須向源站點發回一個ICMP回聲應答報文
源站點收到應答報文,則判斷目的站點是可達的,否則爲不可達
測試TCP/IP是否正常工作 ping 127.0.0.1
網絡設備是否正常 ping 本機IP地址
檢查對外連接的路由器 ping 默認網關IP
檢查與某臺設備的暢通情況 ping IP
檢查DNS設置 ping www.scut.edu.cn
執行DNS反向查詢 ping -a IP地址
tracert:可以通過ICMP超時報文來得到一張途徑的路由器列表(最大30跳)
路徑MTU:動態發現互聯網上任意一條路徑的最大傳輸單元的技術
一般來說,ICMP消息僅送給源機
規定:ICMP消息不生成自己的差錯報告
【判斷】若源機Ping目的機,發出一個回聲請求,卻沒收到應答報文,則目的機必定不可達。
參考答案:錯誤
解析:不一定不可達,目的站點發送的應答報文可能丟失,因此實際上通常會多次Ping。
5.19地址解析協議ARP
封裝的任務:
》添加尋址所需的信息
》比如:IP地址、MAC地址
如果發放只知道目的地址的IP地址而不知道MAC地址,就需要發送地址解析協議ARP(定義在RFC826中)
ARP是一個運行在局域網中的協議,它將目標機的IP地址映射到MAC地址上
請求機發送的ARP請求幀(MAC地址是48個1):
目標機的ARP應答幀中有明確的目的MAC地址(單播回請求機)
優化ARP:
動態建立、更新和維護ARP表:
》應答
》ARP請求中的源IP/MAC地址信息
》免費ARP
》週期性刪除過時信息
ARP請求只能發送在一個LAN中,不同LAN發送需要通過默認網關中轉。(遠程主機的MAC地址解析,需要用到默認網關)
主機自己的ARP表(可以用ARP工具程序進行查看,刪除和增加等操作):
》通過廣播ARP請求中的源設備信息添加和更新表
》利用自己的ARP請求之應答信息來添加和更新表
》刪除超過一定時限的信息
但是ARP動態更新存在安全隱患(產生各種ARP病毒)
5.20擁塞規則
擁塞:當一個子網或子網的一部分出現太多分組的時候,網絡的性能急劇下降
擁塞控制的兩類措施:
》開環(提前設計準備,但隨着時間推移,力不從心)
》閉環
閉環建立在反饋環路的概念上
》監視系統
》傳遞擁塞信號
》調整運行,控制擁塞
擁塞量度(數值越大,擁塞越嚴重):
》因爲缺乏緩存空間而丟棄的分組百分比
》平均隊列長度
》超時和重傳的分組數
》平均分組延遲
》分組延遲的標準方差
解決措施 1.降低負載(拒絕服務、服務降質、繞開擁塞點)2.增加資源(增加帶寬)
解決速度:
數據報子網中的流量限制方法:
》每臺路由器可以監視它的輸出線路和其它資源的使用情況
》每條線路和一個實變量u關聯在一起,其值位於(0.0-1.0)之間
》無論何時,只要u超出了閾值,對應的線路就進入到警告狀態(處於警告狀態後可以抑制分組)
》每個新到達的分組都將被檢查,看它的輸出線路是否處於“警告狀態”
抑制分組生效時間慢,逐跳抑制可以快速緩解擁塞點壓力
隨機早起檢測(RED):提前檢測,防患於未然
負載脫落(丟棄分組):
5.21流量整形
(減少擁塞的可能性)
漏桶算法:
》每個主機連接到網絡的接口中都有一個漏桶,即一個優先長度的內部隊列
》當桶中有分組的時候,輸出速率是恆定的,當桶空的時候,輸出速率是0
》當一個分組到達滿的桶的時候,分組將被丟棄(滿則溢)
》每個時鐘嘀嗒(tick),僅允許一個分組或固定數量的分組發送出去
缺點:滿則溢,不能大量地突發數據
令牌桶算法:
》當大量數據突發的時候,令牌桶算法允許輸出加快到某種程度
》令牌桶擁有令牌(tokens) ,且以每△T秒產生一個令牌的速度往桶中注入令牌
》一個分組要發送的時候,它必須從桶中取出和獲取到一個令牌
》令牌桶算法允許累積令牌,但最多可以累積n (令牌桶的容量)個令牌
與漏桶算法相比:
》令牌桶允許突發,但是最大突發受制於令牌桶容量的限制
》當桶滿的時候,令牌桶算法丟掉的是令牌(不是分組)