① 什麼是ad hoc 計算方法
http://ke..com/view/28428.htm
Ad hoc Ad hoc網路
摘要:本文首先介紹了Ad hoc網路的特點和應用領域。然後對Ad hoc網路的體系結構進行了研究,給出了結點和網路的幾種組織結構。最後對Ad hoc網路面臨的特殊問題進行了深入分析,並對這些問題的影響及引發的研究方向進行了討論。
關鍵詞 Ad hoc網路 自組織 多跳 體系結構
1 引言
我們經常提及的移動通信網路一般都是有中心的,要基於預設的網路設施才能運行。例如,蜂窩移動通信系統要有基站的支持;無線區域網一般也工作在有AP接入點和有線骨幹網的模式下。但對於有些特殊場合來說,有中心的移動網路並不能勝任。比如,戰場上部隊快速展開和推進,地震或水災後的營救等。這些場合的通信不能依賴於任何預設的網路設施,而需要一種能夠臨時快速自動組網的移動網路。Ad hoc網路可以滿足這樣的要求。
Ad hoc網路的前身是分組無線網(Packet Radio Network)。對分組無線網的研究源於軍事通信的需要,並已經持續了近20年。早在1972年,美國DARPA(Defense Advanced Research Project Agency)就啟動了分組無線網(PRNET,Packet Radio NETwork)項目,研究分組無線網在戰場環境下數據通信中的應用。項目完成之後,DAPRA又在1993年啟動了高殘存性自適應網路(SURAN,SURvivable Adaptive Network)項目。研究如何將prnet的成果加以擴展,以支持更大規模的網路,還要開發能夠適應戰場快速變化環境下的自適應網路協議。1994年,DARPA又啟動了全球移動信息系統(GloMo,Globle Mobile Information Systems)項目。在分組無線網已有成果的基礎上對能夠滿足軍事應用需要的、可快速展開、高抗毀性的移動信息系統進行全面深入的研究,並一直持續至今。1991年成立的IEEE802.11標准委員會採用了「Ad hoc網路」一詞來描述這種特殊的對等式無線移動網路。
在Ad hoc網路中,結點具有報文轉發能力,結點間的通信可能要經過多個中間結點的轉發,即經過多跳(MultiHop),這是Ad hoc網路與其他移動網路的最根本區別。結點通過分層的網路協議和分布式演算法相互協調,實現了網路的自動組織和運行。因此它也被稱為多跳無線網(MultiHop Wireless Network)、自組織網路(SelfOrganized Network)或無固定設施的網路(Infrastructureless Network)。
2 Ad hoc網路的特點和應用
2.1 Ad hoc網路的特點
Ad hoc網路是一種特殊的無線移動網路。網路中所有結點的地位平等,無需設置任何的中心控制結點。網路中的結點不僅具有普通移動終端所需的功能,而且具有報文轉發能力。與普通的移動網路和固定網路相比,它具有以下特點:
1.無中心:Ad hoc網路沒有嚴格的控制中心。所有結點的地位平等,即是一個對等式網路。結點可以隨時加入和離開網路。任何結點的故障不會影響整個網路的運行,具有很強的抗毀性。
2.自組織:網路的布設或展開無需依賴於任何預設的網路設施。結點通過分層協議和分布式演算法協調各自的行為,結點開機後就可以快速、自動地組成一個獨立的網路。
3.多跳路由:當結點要與其覆蓋范圍之外的結點進行通信時,需要中間結點的多跳轉發。與固定網路的多跳不同,Ad hoc網路中的多跳路由是由普通的網路結點完成的,而不是由專用的路由設備(如路由器)完成的。
4.動態拓撲:Ad hoc網路是一個動態的網路。網路結點可以隨處移動,也可以隨時開機和關機,這些都會使網路的拓撲結構隨時發生變化。
這些特點使得Ad hoc網路在體系結構、網路組織、協議設計等方面都與普通的蜂窩移動通信網路和固定通信網路有著顯著的區別。
2.2 Ad hoc網路的應用領域
由於Ad hoc網路的特殊性,它的應用領域與普通的通信網路有著顯著的區別。它適合被用於無法或不便預先鋪設網路設施的場合、需快速自動組網的場合等。針對Ad hoc網路的研究是因國事應用而發起的。因此,軍事應用仍是Ad hoc網路的主要應用領域,但是民用方面,Ad hoc網路也有非常廣泛的應用前景。它的應用場合主要有以下幾類:
2 Ad hoc網路
1.軍事應用:軍事應用是Ad hoc網路技術的主要應用領域。因其特有的無需架設網路設施、可快速展開、抗毀性強等特點,它是數字人戰場通信的首選技術。Ad hoc網路技術已經成為美軍戰術互聯網的核心技術。美軍的近期數字電台和無線互聯網控制器等主要通信裝備都使用了Ad hoc網路技術。
2.感測器網路:感測器網路是Ad hoc網路技術的另一大應用領域。對於很多應用場合來說感測器網路只能使用無線通信技術。而考慮到體積和節能等因素,感測器的發射功率不可能很大。使用Ad hoc網路實現多跳通信是非常實用的解決方法。分散在各處的感測器組成Ad hoc網路,可以實現感測器之間和與控制中心之間的通信。這在爆炸殘留物檢測等領域具有非常廣闊的應用前景。
3.緊急和臨時場合:在發生了地震、水災、強熱帶風暴或遭受其他災難打擊後,固定的通信網路設施(如有線通信網路、蜂窩移動通信網路的基站等網路設施、衛星通信地球站以及微波接力站等)可能被全部摧毀或無法正常工作,對於搶險救災來說,這時就需要Ad hoc網路這種不依賴任何固定網路設施又能快速布設的自組織網路技術。類似地,處於邊遠或偏僻野外地區時,同樣無法依賴固定或預設的網路設施進行通信。Ad hoc網路技術的獨立組網能力和自組織特點,是這些場合通信的最佳選擇。
4.個人通信:個人區域網(PAN,Personal Area Network)是Ad hoc網路技術的另一應用領域。不僅可用於實現PDA、手機、手提電腦等個人電子通信設備之間的通信,還可用於個人區域網之間的多跳通信。藍牙技術中的超網(Scatternet)就是一個典型的例子。
5.與移動通信系統的結合:Ad hoc網路還可以與蜂窩移動通信系統相結合,利用移動台的多跳轉發能力擴大蜂窩移動通信系統的覆蓋范圍、均衡相鄰小區的業務、提高小區邊緣的數據速率等。
在實際應用中,Ad hoc網路除了可以單獨組網實現局部的通信外,它帶可以作為末端子網通過接入點接入其他的固定或移動通信網路,與Ad hoc網路以外的主機進行通信。因此,Ad hoc網路也可以作為各種通信網路的無線接入手段之一。
3 Ad hoc網路的體系結構
3.1 結點結構
Ad hoc網路中的結點不僅要具備普通移動終端的功能,還要具有服文轉發能力,即要具備路由器的功能。因此,就完成的功能而言可以將結點分為主機、路由器和電台三部分。其中主機部分完成普通移動終端的功能,包括人機介面、數據處理等應用軟體。而路由器部分主要負責維護網路的拓撲結構和路由信息,完成報文的轉發功能。電台部分為信息傳輸提供無線信道支持。從物理結構上分,結構可以被分為以下幾類:單機機單電台、單主機多電台、多主機單電台和多主機多電台。手持機一般採用的單主機單電台的簡單結構。作為復雜的車載台,一個結點可能包括通信車內的多個主機。多電台不僅可以用來構建疊加的網路,還可用作網關結點來互聯多個Ad hoc網路。
3.2 網路結構
Ad hoc網路一般有兩種結構:平面結構和分級結構。
在平面結構中,所有結點的地位平等,所以又可以稱為對等式結構。
分級結構中,網路被刈分為簇。每個簇由一個簇頭和多個簇成員組成。這些簇頭形成了高一級的網路。在高一級網路中,又可以分簇,再次形成更高一級的網路,直至最高級。在分級結構中,簇頭結點負責簇間數據的轉發。簇頭可以預先指定,也可以由結點使用演算法自動選舉產生。
分級結構的網路又可以被分為單頻分級和多頻分級兩種。單頻率分級網路中,所有結點使用同一個頻率通信。為了實現簇頭之間的通信,要有網關結點(同時屬於兩個簇的結點)的支持。而在多頻率分組網路中,不同級採用不同的通信頻率。低級結點的通信范圍較小,而高級結點要覆蓋較大的范圍。高級的結點同時處於多個級中,有多個頻率,用不同的頻率實現不同級的通信。在兩級網路中,簇頭結點有兩個頻率。頻率1用於簇頭與簇成員的通信。而頻率2用於簇頭之間的通信。分級網路的每個結點都可以成為簇頭,所以需要適當的簇頭選舉演算法,演算法要能根據網路拓撲的變化重新分簇。
平面結構的網路比較簡單,網路中所有結點是完全對等的,原則上不存在瓶頸,所以比較健壯。它的缺點是可擴充性差:每一個結點都需要知道到達其他所有結點的路由。維護這些動態變化的路由信息需要大量的控制消息。在分級結構的網路中,簇成員的功能比較簡單,不需要維護復雜的路由信息。這大大減少了網路中路由控制信息的數量,因此具有很好的可擴充性。由於簇頭結點可以隨時選舉產生,分級結構也具有很強的抗毀性。分級結構的缺點是,維護分級結構需要結點執行簇頭選舉演算法,簇頭結點可能會成為網路的瓶頸。
因此,當網路的規模較小時,可以採用簡單的平面式結構;而當網路的規模增大時,應用分級結構。美軍在其戰術互聯網中使用近期數字電台(NTDR,Near Term Digital Radio)組網時採用的就是雙頻分級結構。
[編輯本段]Ad Hoc類問題
個性化問題,就是那些不能用一種已經被充分研究的演算法來解決的問題。每個個性化問題都是不同的;沒有具體的或者一般的演算法能夠解決這類問題。
當然,這使得問題個個有趣,而後讓每個人面對一個新的挑戰。解決此問題可能需要一種新的數據結構或者一套不尋常的循環或條件的組合。有時候,這些問題所需要的解決方案是十分罕見的,或至少很少遇到的。
個性化問題通常需要認真審題,有時候做題者會因要將題目中的細枝末節仔細聯系起來而放棄此題。
個性化問題仍然需要合理的優化和某種程度上的分析,例如避免使用五層嵌套的循環。
[編輯本段]Ad Hoc網路中的關鍵技術
1. 信道接入技術:Ad Hoc網路的無線信道是多跳共享的多點信道,所以不同於普通網路的共享廣播信道、點對點無線信道和蜂窩移動通信系統中由基站控制的無線信道。該技術控制節點如何接入無線信道。信道接入技術主要是解決隱藏終端和暴露終端問題,影響比較大的有MACA協議,控制信道和數據信道分裂的雙信道方案和基於定向天線的MAC協議,以及一些改進的MAC協議。
2. 網路體系結構:網路主要是為數據業務設計的,沒有對體系結構做過多考慮,但是當Ad Hoc網路需要提供多種業務並支持一定的QoS時,應當考慮選擇最為合適的體系結構,並需要對原有協議棧重新進行設計。
3. 路由協議:Ad Hoc路由面臨的主要挑戰是傳統的保存在結點中的分布式路由資料庫如何適應網路拓撲的動態變化。Ad Hoc網路中多跳路由是由普通節點協作完成的,而不是由專用的路由設備完成的。因此,必須設計專用的、高效的無線多跳路由協議。目前,一般普遍得到認可的代表性成果有DSDV、WRP、AODV、DSR、TORA和ZRP等。至今,路由協議的研究仍然是Ad Hoc網路成果最集中的部分。
4. QoS保證:Ad Hoc網路出現初期主要用於傳輸少量的數據信息。隨著應用的不斷擴展,需要在Ad Hoc網路中傳輸多媒體信息。多媒體信息對時延和抖動等都提出了很高要求,即需要提供一定的QoS保證。Ad Hoc網路中的QoS保證是系統性問題,不同層都要提供相應的機制。
5. 多播/組播協議:由於Ad Hoc網路的特殊性,廣播和多播問題變得非常復雜,它們需要鏈路層和網路層的支持。目前這個問題的研究己經取得了階段性進展。
6. 安全性問題:由於Ad Hoc網路的特點之一就是安全性較差,易受竊聽和攻擊,因此需要研究適用於Ad Hoc網路的安全體系結構和安全技術。
7. 網路管理:Ad Hoc網路管理涉及面較廣,包括移動性管理、地址管理和服務管理等,需要相應的機制來解決節點定位和地址自動配置等問題。
8. 節能控制:可以採用自動功率控制機制來調整移動節點的功率,以便在傳輸范圍和干擾之間進行折衷;還可以通過智能休眠機制,採用功率意識路由和使用功耗很小的硬體來減少節點的能量消耗。
② 有關無線感測器網路中時間同步機制有哪些方法和策略
1 時間同步技術的重要性
感測器節點的時鍾並不完美,會在時間上發生漂移,所以觀察到的時間對於網路中的節點來說是不同的。但很多網路協議的應用,都需要一個共同的時間以使得網路中的節點全部或部分在瞬間是同步的。
第一,感測器節點需要彼此之間並行操作和協作去完成復雜的感測任務。如果在收集信息過程中,感測器節點缺乏統一的時間戳(即沒有同步),估計將是不準確的。
第二,許多節能方案是利用時間同步來實現的。例如,感測器可以在適當的時候休眠(通過關閉感測器和收發器進入節能模式),在需要的時候再喚醒。在應用這種節能模式的時候,節點應該在同等的時間休眠和喚醒,也就是說當數據到來時,節點的接收器可以接收,這個需要感測器節點間精確的定時。
2 時間同步技術所關注的主要性能參數
時間同步技術的根本目的是為網路中節點的本地時鍾提供共同的時間戳。對無線感測器
網路WSN(Wireless Sensor Networks)[1]
的時間同步應主要應考慮以下幾個方面的問題:
(1)能量效率。同步的時間越長,消耗的能量越多,效率就越低。設計WSN的時間同步演算法需以考慮感測器節點有效的能量資源為前提。
(2) 可擴展性和健壯性。時間同步機制應該支持網路中節點的數目或者密度的有效擴展,並保障一旦有節點失效時,餘下網路有效且功能健全。
(3)精確度。針對不同的應用和目的,精確度的需求有所不用。
(4)同步期限。節點需要保持時間同步的時間長度可以是瞬時的,也可以和網路的壽命一樣長。
(5)有效同步范圍。可以給網路內所有節點提供時間,也可以給局部區域的節點提供時間。
(6)成本和尺寸。同步可能需要特定的硬體,另外,體積的大小也影響同步機制的實現。 (7)最大誤差。一組感測器節點之間的最大時間差,或相對外部標准時間的最大差。 3 現有主要時間同步方法研究
時間同步技術是研究WSN的重要問題,許多具體應用都需要感測器節點本地時鍾的同步,要求各種程度的同步精度。WSN具有自組織性、多跳性、動態拓撲性和資源受限性,尤其是節點的能量資源、計算能力、通信帶寬、存儲容量有限等特點,使時間同步方案有其特
殊的需求,也使得傳統的時間同步演算法不適合於這些網路[2]
。因此越來越多的研究集中在設
計適合WSN的時間同步演算法[3]
。針對WSN,目前已經從不同角度提出了許多新的時間同步演算法[4]
。
3.1 成對(pair-wise)同步的雙向同步模式
代表演算法是感測器網路時間同步協議TPSN(Timing-Sync Protocol for Sensor
Networks)[5~6]
。目的是提供WSN整個網路范圍內節點間的時間同步。
該演算法分兩步:分級和同步。第一步的目的是建立分級的拓撲網路,每個節點有個級別。只有一個節點與外界通信獲取外界時間,將其定為零級,叫做根節點,作為整個網路系統的時間源。在第二步,每個i級節點與i-1(上一級)級節點同步,最終所有的節點都與根節點同步,從而達到整個網路的時間同步。詳細的時間同步過程如圖 1 所示。
圖1 TPSN 同步過程
設R為上層節點,S為下層節點,傳播時間為d,兩節點的時間偏差為θ。同步過程由節點R廣播開始同步信息,節點S接收到信息以後,就開始准備時間同步過程。在T1時刻,節點S發送同步信息包,包含信息(T1),節點R在T2接收到同步信息,並記錄下接收時間T2,這里滿足關系:21TTd
節點R在T3時刻發送回復信息包,包含信息(T1,T2,T3)。在T4時刻S接收到同步信息包,滿足關系:43TTd
最後,節點S利用上述2個時間表達式可計算出的值:(21)(43)2
TTTT
TPSN由於採用了在MAC層給同步包標記時間戳的方式,降低了發送端的不確定性,消除了訪問時間帶來的時間同步誤差,使得同步效果更加有效。並且,TPSN演算法對任意節點的同步誤差取決於它距離根節點的跳數,而與網路中節點總數無關,使TPSN同步精度不會隨節點數目增加而降級,從而使TPSN具有較好的擴展性。TPSN演算法的缺點是一旦根節點失效,就要重新選擇根節點,並重新進行分級和同步階段的處理,增加了計算和能量開銷,並隨著跳數的增加,同步誤差呈線性增長,准確性較低。另外,TPSN演算法沒有對時鍾的頻差進行估計,這使得它需要頻繁同步,完成一次同步能量消耗較大。
3.2 接收方-接收方(Receiver-Receiver)模式
代表演算法是參考廣播時間同步協議RBS(Reference Broadcast Synchronization)[7]
。RBS是典型的基於接收方-接收方的同步演算法,是Elson等人以「第三節點」實現同步的思想而提出的。該演算法中,利用無線數據鏈路層的廣播信道特性,基本思想為:節點(作為發
送者)通過物理層廣播周期性地向其鄰居節點(作為接收者)發送信標消息[10]
,鄰居節點記錄下廣播信標達到的時間,並把這個時間作為參考點與時鍾的讀數相比較。為了計算時鍾偏移,要交換對等鄰居節點間的時間戳,確定它們之間的時間偏移量,然後其中一個根據接收
到的時間差值來修改其本地的時間,從而實現時間同步[11]
。
假如該演算法在網路中有n個接收節點m個參考廣播包,則任意一個節點接收到m個參考包後,會拿這些參考包到達的時間與其它n-1個接收節點接收到的參考包到達的時間進行比較,然後進行信息交換。圖2為RBS演算法的關鍵路徑示意圖。
網路介面卡
關鍵路徑
接收者1
發送者
接收者2
圖2 RBS演算法的關鍵路徑示意圖
其計算公式如下:
,,1
1,:[,]()m
jkikkinjnoffsetijTTm
其中n表示接收者的數量,m表示參考包的數量,,rbT表示接收節點r接收到參考包b時的時鍾。
此演算法並不是同步發送者和接收者,而是使接收者彼此同步,有效避免了發送訪問時間對同步的影響,將發送方延遲的不確定性從關鍵路徑中排除,誤差的來源主要是傳輸時間和接收時間的不確定性,從而獲得了比利用節點間雙向信息交換實現同步的方法更高的精確度。這種方法的最大弊端是信息的交換次數太多,發送節點和接收節點之間、接收節點彼此之間,都要經過消息交換後才能達到同步。計算復雜度較高,網路流量開銷和能耗太大,不適合能量供應有限的場合。
3.3 發送方-接收方(Sender-Receiver)模式
基於發送方-接收方機制的時間同步演算法的基本原理是:發送節點發送包含本地時間戳的時間同步消息,接收節點記錄本地接收時間,並將其與同步消息中的時間戳進行比較,調整本地時鍾。基於這種方法提出的時間同步演算法有以下兩種。
3.3.1 FTSP 演算法[8]
泛洪時間同步協議FTSP(Flooding Time Synchronization Protocol)由Vanderbilt大學Branislav Kusy等提出,目標是實現整個網路的時間同步且誤差控制在微秒級。該演算法用單個廣播消息實現發送節點與接收節點之間的時間同步。
其特點為:(1)通過對收發過程的分析,把時延細分為發送中斷處理時延、編碼時延、傳播時延、解碼時延、位元組對齊時延、接收中斷處理時延,進一步降低時延的不確定度;(2)通過發射多個信令包,使得接收節點可以利用最小方差線性擬合技術估算自己和發送節點的頻率差和初相位差;(3)設計一套根節點選舉機制,針對節點失效、新節點加入、拓撲變化
等情況進行優化,適合於惡劣環境[12]
。
FTSP演算法對時鍾漂移進行了線性回歸分析。此演算法考慮到在特定時間范圍內節點時鍾晶振頻率是穩定的,因此節點間時鍾偏移量與時間成線性關系,通過發送節點周期性廣播時間同步消息,接收節點取得多個數據對,構造最佳擬合直線,通過回歸直線,在誤差允許的時間間隔內,節點可直接通過它來計算某一時間節點間的時鍾偏移量而不必發送時間同步消息進行計算,從而減少了消息的發送次數並降低了系統能量開銷。
FTSP結合TPSN和RBS的優點,不僅排除了發送方延遲的影響,而且對報文傳輸中接收方的不確定延遲(如中斷處理時間、位元組對齊時間、硬體編解碼時間等)做了有效的估計。多跳的FTSP協議採用層次結構,根節點為同步源,可以適應大量感測器節點,對網路拓撲結構的變化和根節點的失效有健壯性,精確度較好。該演算法通過採用MAC層時間戳和線性回歸偏差補償彌補相關的錯誤源,通過對一個數據包打多個時戳,進而取平均和濾除抖動較大的時戳,大大降低了中斷和解碼時間的影響。FTSP 採用洪泛的方式向遠方節點傳遞時間基準節點的時間信息,洪泛的時間信息可由中轉節點生成,因此誤差累積不可避免。另外,FTSP的功耗和帶寬的開銷巨大。
3.3.2 DMTS 演算法[9]
延遲測量時間同步DMTS (delay measurement time synchronization) 演算法的同步機制是基於發送方-接收方的同步機制。DMTS 演算法的實現策略是犧牲部分時間同步精度換取較低的計算復雜度和能耗,是一種能量消耗輕的時間同步演算法。
DMTS演算法的基本原理為:選擇一個節點作為時間主節點廣播同步時間,所有接收節點通過精確地測量從發送節點到接收節點的單向時間廣播消息的延遲並結合發送節點時間戳,計算出時間調整值,接收節點設置它的時間為接收到消息攜帶的時間加上廣播消息的傳輸延遲,調整自己的邏輯時鍾值以和基準點達成同步,這樣所有得到廣播消息的節點都與主節點進行時間同步。發送節點和接收節點的時間延遲dt可由21()dtnttt得出。其中,nt為發送前導碼和起始字元所需的時間,n為發送的信息位個數,t為發送一位所需時間;1t為接收節點在消息到達時的本地時間;2t為接收節點在調整自己的時鍾之前的那一時刻記錄的本地時間,21()tt是接收處理延遲。
DMTS 演算法的優點是結合鏈路層打時間戳和時延估計等技術,消除了發送時延和訪問時延的影響,演算法簡單,通信開銷小。但DMTS演算法沒有估計時鍾的頻率偏差,時鍾保持同步的時間較短,沒有對位偏移產生的時間延遲進行估計,也沒有消除時鍾計時精度對同步精度的影響,因此其同步精度比FTSP略有下降,不適用於定位等要求高精度同步的應用。
基於發送方-接收方單向同步機制的演算法在上述三類方法中需要發送的時間同步消息數目最少。發送節點只要發送一次同步消息,因而具有較低的網路流量開銷和復雜度,減少了系統能耗。
4 結論
文章介紹了WSN時間同步演算法的類型以及各自具有代表性的演算法,分析了各演算法的設計原理和優缺點。這些協議解決了WSN中時間同步所遇到的主要問題,但對於大型網路,已有的方法或多或少存在著一些問題:擴展性差、穩定性不高、收斂速度變慢、網路通信沖突、能耗增大。今後的研究熱點將集中在節能和時間同步的安全性方面。這將對演算法的容錯性、有效范圍和可擴展性提出更高的要求。
③ 網路中的ospf 是什麼意思
[編輯本段]OSPF協議OSPF(Open Shortest Path First開放式最短路徑優先)是一個內部網關協議(Interior Gateway Protocol,簡稱IGP),用於在單一自治系統(autonomous system,AS)內決策路由。與RIP相對,OSPF是鏈路狀態路由協議,而RIP是距離矢量路由協議。
一。OSPF起源
I E T F為了滿足建造越來越大基於I P網路的需要,形成了一個工作組,專門用於開發開放式的、鏈路狀態路由協議,以便用在大型、異構的I P網路中。新的路由協議以已經取得一些成功的一系列私人的、和生產商相關的、最短路徑優先( S P F )路由協議為基礎, S P F在市場上廣泛使用。包括O S P F在內,所有的S P F路由協議基於一個數學演算法—D i j k s t r a演算法。這個演算法能使路由選擇基於鏈路-狀態,而不是距離向量。O S P F由I E T F在2 0世紀8 0年代末期開發,O S P F是S P F類路由協議中的開放式版本。最初的O S P F規范體現在RFC 11 3 1中。這個第1版( O S P F版本1 )很快被進行了重大改進的版本所代替,這個新版本體現在RFC 1247文檔中。RFC 1247 OSPF稱為O S P F版本2是為了明確指出其在穩定性和功能性方面的實質性改進。這個O S P F版本有許多更新文檔,每一個更新都是對開放標準的精心改進。接下來的一些規范出現在RFC 1583、2 1 7 8和2 3 2 8中。O S P F版本2的最新版體現在RFC 2328中。最新版只會和由RFC 2138、1 5 8 3和1 2 4 7所規范的版本進行互操作。
鏈路是路由器介面的另一種說法,因此OSPF也稱為介面狀態路由協議。OSPF通過路由器之間通告網路介面的狀態來建立鏈路狀態資料庫,生成最短路徑樹,每個OSPF路由器使用這些最短路徑構造路由表。
OSPF路由協議是一種典型的鏈路狀態(Link-state)的路由協議,一般用於同一個路由域內。在這里,路由域是指一個自治系統(Autonomous System),即AS,它是指一組通過統一的路由政策或路由協議互相交換路由信息的網路。在這個AS中,所有的OSPF路由器都維護一個相同的描述這個AS結構的資料庫,該資料庫中存放的是路由域中相應鏈路的狀態信息,OSPF路由器正是通過這個資料庫計算出其OSPF路由表的。
作為一種鏈路狀態的路由協議,OSPF將鏈路狀態廣播數據包LSA(Link State Advertisement)傳送給在某一區域內的所有路由器,這一點與距離矢量路由協議不同。運行距離矢量路由協議的路由器是將部分或全部的路由表傳遞給與其相鄰的路由器。
二.OSPF的hello協議
1.Hello協議的目的:
1.用於發現鄰居
2.在成為鄰居之前,必須對Hello包里的一些參數協商成功
3.Hello包在鄰居之間扮演著keepalive的角色
4.允許鄰居之間的雙向通信
5.它在NBMA(Nonbroadcast Multi-access)網路上選舉DR和BDR
2.Hello Packet包含以下信息:
1.源路由器的RID
2.源路由器的Area ID
3.源路由器介面的掩碼
4.源路由器介面的認證類型和認證信息
5.源路由器介面的Hello包發送的時間間隔
6.源路由器介面的無效時間間隔
7.優先順序
8.DR/BDR
9.五個標記位(flag bit)
10.源路由器的所有鄰居的RID
三.OSPF的網路類型
OSPF定義的5種網路類型:
1.點到點網路
2.廣播型網路
3.非廣播型(NBMA)網路
4.點到多點網路
5.虛鏈接(virtual link)
1.1.點到點網路, 比如T1線路,是連接單獨的一對路由器的網路,點到點網路上的有效鄰居總是可以形成鄰接關系的,在這種網路上,OSPF包的目標地址使用的是224.0.0.5,這個組播地址稱為AllSPFRouters.
2.1.廣播型網路,比如乙太網,Token Ring和FDDI,這樣的網路上會選舉一個DR和BDR,DR/BDR的發送的OSPF包的目標地址為224.0.0.5,運載這些OSPF包的幀的目標MAC地址為0100.5E00.0005;而除了DR/BDR以外的OSPF包的目標地址為224.0.0.6,這個地址叫AllDRouters.
3.1.NBMA網路, 比如X.25,Frame Relay,和ATM,不具備廣播的能力,因此鄰居要人工來指定,在這樣的網路上要選舉DR和BDR,OSPF包採用unicast的方式
4.1.點到多點網路 是NBMA網路的一個特殊配置,可以看成是點到點鏈路的集合. 在這樣的網路上不選舉DR和BDR.
5.1.虛鏈接: OSPF包是以unicast的方式發送
所有的網路也可以歸納成2種網路類型:
1.傳輸網路(Transit Network)
2.末梢網路(Stub Network )
四.OSPF的DR及BDR
在DR和BDR出現之前,每一台路由器和他的鄰居之間成為完全網狀的OSPF鄰接關系,這樣5台路由器之間將需要形成10個鄰接關系,同時將產生25條LSA.而且在多址網路中,還存在自己發出的LSA 從鄰居的鄰居發回來,導致網路上產生很多LSA的拷貝,所以基於這種考慮,產生了DR和BDR.
DR將完成如下工作
1. 描述這個多址網路和該網路上剩下的其他相關路由器.
2. 管理這個多址網路上的flooding過程.
3. 同時為了冗餘性,還會選取一個BDR,作為雙備份之用.
DR BDR選取規則: DR BDR選取是以介面狀態機的方式觸發的.
1. 路由器的每個多路訪問(multi-access)介面都有個路由器優先順序(Router Priority),8位長的一個整數,范圍是0到255,Cisco路由器默認的優先順序是1優先順序為0的話將不能選舉為DR/BDR.優先順序可以通過命令ip ospf priority進行修改.
2. Hello包里包含了優先順序的欄位,還包括了可能成為DR/BDR的相關介面的IP地址.
3. 當介面在多路訪問網路上初次啟動的時候,它把DR/BDR地址設置為0.0.0.0,同時設置等待計時器(wait timer)的值等於路由器無效間隔(Router Dead Interval).
DR BDR選取過程:
1. 在和鄰居建立雙向(2-Way)通信之後,檢查鄰居的Hello包中Priority,DR和BDR欄位,列出所有可以參與DR/BDR選舉的鄰居.所有的路由器聲明它們自己就是DR/BDR(Hello包中DR欄位的值就是它們自己的介面地址;BDR欄位的值就是它們自己的介面地址)
2. 從這個有參與選舉DR/BDR權的列表中,創建一組沒有聲明自己就是DR的路由器的子集(聲明自己是DR的路由器將不會被選舉為BDR)
3. 如果在這個子集里,不管有沒有宣稱自己就是BDR,只要在Hello包中BDR欄位就等於自己介面的地址,優先順序最高的就被選舉為BDR;如果優先順序都一樣,RID最高的選舉為BDR
4. 如果在Hello包中DR欄位就等於自己介面的地址,優先順序最高的就被選舉為DR;如果優先順序都一樣,RID最高的選舉為DR;如果選出的DR不能工作,那麼新選舉的BDR就成為DR,再重新選舉一個BDR。
5. 要注意的是,當網路中已經選舉了DR/BDR後,又出現了1台新的優先順序更高的路由器,DR/BDR是不會重新選舉的
6. DR/BDR選舉完成後,DRother只和DR/BDR形成鄰接關系.所有的路由器將組播Hello包到AllSPFRouters地址224.0.0.5以便它們能跟蹤其他鄰居的信息,即DR將泛洪update packet到224.0.0.5;DRother只組播update packet到AllDRouter地址224.0.0.6,只有DR/BDR監聽這個地址.
簡潔的說:DR的篩選過程
1.優先順序為0的不參與選舉
2.優先順序高的路由器為DR
3.優先順序相同時,以router ID 大為DR。
router ID 以回環介面中最大ip為准。
若無回環介面,以真實介面最大ip為准。
4.預設條件下,優先順序為1
五.OSPF鄰居關系
鄰接關系建立的4個階段:
1.鄰居發現階段
2.雙向通信階段:Hello報文都列出了對方的RID,則BC完成.
3.資料庫同步階段:
4.完全鄰接階段: full adjacency
鄰居關系的建立和維持都是靠Hello包完成的,在一般的網路類型中,Hello包是每經過1個HelloInterval發送一次,有1個例外:在NBMA網路中,路由器每經過一個PollInterval周期發送Hello包給狀態為down的鄰居(其他類型的網路是不會把Hello包發送給狀態為down的路由器的).Cisco路由器上PollInterval默認60s Hello Packet以組播的方式發送給224.0.0.5,在NBMA類型,點到多點和虛鏈路類型網路,以單播發送給鄰居路由器。鄰居可以通過手工配置或者Inverse-ARP發現.
OSPF路由器在完全鄰接之前,所經過的幾個狀態:
1.Down:此狀態還沒有與其他路由器交換信息。首先從其ospf介面向外發送hello分組,還並不知道DR(若為廣播網路)和任何其他路由器。發送hello分組是,使用組播地址224.0.0.5。
2.Attempt: 只適於NBMA網路,在NBMA網路中鄰居是手動指定的,在該狀態下,路由器將使用HelloInterval取代PollInterval來發 送Hello包.
3.Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然沒有建立起來.
4.two-way: 雙向會話建立,而 RID 彼此出現在對方的鄰居列表中。(若為廣播網路:例如:乙太網。在這個時候應該選舉DR,BDR。)
5.ExStart: 信息交換初始狀態,在這個狀態下,本地路由器和鄰居將建立Master/Slave關系,並確定DD Sequence Number,路由器ID大的的成為Master.
6.Exchange: 信息交換狀態:本地路由器和鄰居交換一個或多個DBD分組(也叫DDP) 。DBD包含有關LSDB中LSA條目的摘要信息)。
7.Loading: 信息載入狀態:收到DBD後,使用LSACK分組確認已收到DBD.將收到的信息同LSDB中的信息進行比較。如果DBD中有更新的鏈路狀態條目,則想對方發送一個LSR,用於請求新的LSA 。
8.Full: 完全鄰接狀態,這種鄰接出現在Router LSA和Network LSA中.
六.OSPF泛洪
Flooding採用2種報文
LSU Type 4---鏈路狀態更新報文
LSA Type 5---鏈路狀態確認報文
(補充下)
{
Hello Type 1 ---Hello協議報文
DD(Data Description) Type 2----鏈路數據描述報文
LSR Type 3----鏈路狀態請求報文
}
在P-P網路,路由器是以組播方式將更新報文發送到組播地址224.0.0.5.
在P-MP和虛鏈路網路,路由器以單播方式將更新報文發送至鄰接鄰居的介面地址.
在廣播型網路,DRother路由器只能和DR&BDR形成鄰接關系,所以更新報文將發送到224.0.0.6,相應的DR以224.0.0.5泛洪LSA並且BDR只接收LSA,不會確認和泛洪這些更新,除非DR失效 在NBMA型網路,LSA以單播方式發送到DR BDR,並且DR以單播方式發送這些更新.
LSA通過序列號,校驗和,和老化時間保證LSDB中的LSA是最新的,
Seq: 序列號(Seq)的范圍是0x80000001到0x7fffffff.
Checksum: 校驗和(Checksum)計算除了Age欄位以外的所有欄位,每5分鍾校驗1次.
Age: 范圍是0到3600秒,16位長.當路由器發出1個LSA後,就把Age設置為0,當這個LSA經過1台路由器以後,Age就會增加1個LSA保存在LSDB中的時候,老化時間也會增加.
當收到相同的LSA的多個實例的時候,將通過下面的方法來確定哪個LSA是最新的:
1. 比較LSA實例的序列號,越大的越新.
2. 如果序列號相同,就比較校驗和,越大越新.
3. 如果校驗和也相同,就比較老化時間,如果只有1個LSA擁有MaxAge(3600秒)的老化時間,它就是最新的.
4. 如果LSA老化時間相差15分鍾以上,(叫做MaxAgeDiff),老化時間越小的越新.
5. 如果上述都無法區分,則認為這2個LSA是相同的.
六.OSPF區域
區域長度32位,可以用10進制,也可以類似於IP地址的點分十進制分3種通信量
1. Intra-Area Traffic:域內間通信量
2. Inter-Area Traffic:域間通信量
3. External Traffic:外部通信量
路由器類型
1. Internal Router:內部路由器
2. ABR(Area Border Router):區域邊界路由器
3. Backbone Router(BR):骨幹路由器
4. ASBR(Autonomous System Boundary Router):自治系統邊界路由器.
虛鏈路(Virtual Link)
以下2中情況需要使用到虛鏈路:
1. 通過一個非骨幹區域連接到一個骨幹區域.
2. 通過一個非骨幹區域連接一個分段的骨幹區域兩邊的部分區域.
虛鏈接是一個邏輯的隧道(Tunnel),配置虛鏈接的一些規則:
1. 虛鏈接必須配置在2個ABR之間.
2. 虛鏈接所經過的區域叫Transit Area,它必須擁有完整的路由信息.
3. Transit Area不能是Stub Area.
4. 盡可能的避免使用虛鏈接,它增加了網路的復雜程度和加大了排錯的難度.
OSPF區域—OSPF的精華
Link-state 路由在設計時要求需要一個層次性的網路結構.
OSPF網路分為以下2個級別的層次:
骨幹區域 (backbone or area 0)
非骨幹區域 (nonbackbone areas)
在一個OSPF區域中只能有一個骨幹區域,可以有多個非骨幹區域,骨幹區域的區域號為0。
各非骨幹區域間是不可以交換信息的,他們只有與骨幹區域相連,通過骨幹區域相互交換信息。
非骨幹區域和骨幹區域之間相連的路由叫邊界路由(ABRs-Area Border Routers),只有ABRs記載了各區域的所有路由表。各非骨幹區域內的非ABRs只記載了本區域內的路由表,若要與外部區域中的路由相連,只能通過本區域的ABRs,由ABRs連到骨幹區域的BR,再由骨幹區域的BR連到要到達的區域。
骨幹區域和非骨幹區域的劃分,大大降低了區域內工作路由的負擔。
七.LSA類型
1.類型1:Router LSA:每個路由器都將產生Router LSA,這種LSA只在本區域內傳播,描述了路由器所有的鏈路和介面,狀態和開銷.
2.類型2:Network LSA:在每個多路訪問網路中,DR都會產生這種Network LSA,它只在產生這條Network LSA的區域泛洪描述了所有和它相連的路由器(包括DR本身).
3.類型3:Network Summary LSA :由ABR路由器始發,用於通告該區域外部的目的地址.當其他的路由器收到來自ABR的Network Summary LSA以後,它不會運行SPF演算法,它只簡單的加上到達那個ABR的開銷和Network Summary LSA中包含的開銷,通過ABR,到達目標地址的路由和開銷一起被加進路由表裡,這種依賴中間路由器來確定到達目標地址的完全路由(full route)實際上是距離矢量路由協議的行為
4.類型4:ASBR Summary LSA:由ABR發出,ASBR匯總LSA除了所通告的目的地是一個ASBR而不是一個網路外,其他同NetworkSummary LSA.
5.類型5:AS External LSA:發自ASBR路由器,用來通告到達OSPF自主系統外部的目的地,或者OSPF自主系統那個外部的預設路由的LSA.這種LSA將在全AS內泛洪
6.類型6:Group Membership LSA
7.類型7:NSSA External LSA:來自非完全Stub區域(not-so-stubby area)內ASBR路由器始發的LSA通告它只在NSSA區域內泛洪,這是與LSA-Type5的區別.
8.類型8:External Attributes LSA
9.類型9:Opaque LSA(link-local scope,)
10.類型10:Opaque LSA(area-local scope)
11.類型11:Opaque LSA(AS scope)
八.OSPF末梢區域
由於並不是每個路由器都需要外部網路的信息,為了減少LSA泛洪量和路由表條目,就創建了末節區域,位於Stub邊界的ABR將宣告一條默認路由到所有的Stub區域內的內部路由器.
Stub區域限制:
a) 所有位於stub area的路由器必須保持LSDB信息同步, 並且它們會在它的Hello包中設置一個值為0的E位(E-bit),因此這些路由器是不會接收E位為1的Hello包,也就是說在stub area里沒有配置成stub router的路由器將不能和其他配置成stub router的路由器建立鄰接關系.
b) 不能在stub area中配置虛鏈接(virtual link),並且虛鏈接不能穿越stub area.
c) stub area里的路由器不可以是ASBR.
d) stub area可以有多個ABR,但是由於默認路由的緣故,內部路由器無法判定哪個ABR才是到達ASBR的最佳選擇.
e)NSSA允許外部路由被宣告OSPF域中來,同時保留Stub Area的特徵,因此NSSA里可以有ASBR,ASBR將使用type7-LSA來宣告外部路由,但經過ABR,Type7被轉換為Type5.7類LSA通過OSPF報頭的一個P-bit作Tag,如果NSSA里的ABR收到P位設置為1的NSSA External LSA,它將把LSA類型7轉換為LSA類型5.並把它洪泛到其他區域中;如果收到的是P位設置為0的NSSAExternal LSA,它將不會轉換成類型5的LSA,並且這個類型7的LSA里的目標地址也不會被宣告到NSSA的外部NSSA在IOS11.2後支持.
f)totally stub area完全的stub區域,連類型3的LSA也不接收。
OSPF的包類型:
類型號 包 作用 可靠性
1 HELLO 1、用於發現鄰居2、建立鄰接關系3、維持鄰接關系4、確保雙向通信 5、選舉DR和BDR
2 Database Description 資料庫的描述 DBD 可靠
3 Link-state Request 鏈路狀態請求包 LSR 可靠
4 Link-state Update 鏈路狀態更新包 LSU 可靠
5 Link-state Acknowledment 鏈路狀態確認包 LSACK
AS 自治系統(autonomous system):一組相互管理下的網路,它們共享同一個路由選擇方法,自治系統由地區再劃分並必須由IANA分配一個單獨的16位數字。地區通常連接到其他地區,使用路由器創建一個自治系統。
OSPF單區域及多區域的基本配置命令
配置LOOPBACK介面地址
ROUTER(config)#interface loopback 0
ROUTER(config)#ip address IP地址 掩碼
1.ospf區域的配置
router ospf 100
network 192.168.1.0 0.0.0.255 area 0
router-id 192.168.2.1 手動設置router-id
area 1 default-cost 50 手動設置開銷
#clean ip ospf process
2.配置ospf明文認證
interface s0
ip ospf authentication
ip ospf authentication-key <密碼>
3.配置ospf密文認證
interface s0
ip ospf authentication
ip ospf message-digest-key 1 md5 7 <密碼>
4.debug ip ospf adj 開啟ospf調試
show ip protocols
show ip ospf interface s0
5.手動配置介面花銷,帶寬,優先順序
inter s0
ip ospf cost 200
bandwith 100
ip ospf priority 0
6.虛鏈路的配置
router ospf 100
area <area-id> virtual-link <router-id>
show ip ospf virtual-links
Show ip ospf border-routers
Show ip ospf process-id
Show ip ospf database
show ip ospf database nssa-external
7.OSPF路由歸納
Router ospf 1\\對ASBR外部的路由進行路由歸納
Summary-address 200.9.0.0 255.255.0.0
Router ospf 1\\執行AREA1到AREA0的路由歸納
Area 1 range 192.168.16.0 255.255.252.0
8.配置末節區域
IR area <area-id> stub
ABR area <area-id> stub
9.配置完全末節區域
IR area <area-id> stub
ABR area <area-id> stub no-summary
10.配置NSSA
ASBR router ospf 100
area 1 nssa
ABR router ospf 100
area 1 nssa default-information-orrginate