已閱讀5頁,還剩63頁未讀, 繼續(xù)免費閱讀
(通信與信息系統(tǒng)專業(yè)論文)ospf協(xié)議的實現(xiàn).pdf.pdf 免費下載
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
摘要 f 目前,隨著網(wǎng)絡(luò)的規(guī)模不斷擴大,對路由協(xié)議提出了越來越高的要求,而 現(xiàn)今普遍運行的r i p ( r o u t i n g i n f o r m a t i o np r o t o c 0 1 ) 已不能滿足這要求。因此, 就需要使用其它的路由協(xié)議。本課題正是針對這一需求,來實現(xiàn)o s p f ( o p e n s h o r t e s tp a t hf i r s t ) 協(xié)議的。y 該論文介紹了現(xiàn)今網(wǎng)絡(luò)上所使用的多種路由協(xié)議,提出了r i p 協(xié)議的不足, 并借此闡述了o s p f 協(xié)議的優(yōu)點。緊接著,以鏈路狀態(tài)數(shù)據(jù)庫為核心,層層深 入的介紹了o s p f 協(xié)議的原理及工作流程。在實現(xiàn)部分,結(jié)合目前教研室已開 發(fā)了的路由器軟件,分析了其體系結(jié)構(gòu)。并以此為基礎(chǔ),研究了o s p f 路由協(xié) 議實現(xiàn)的方案,利用p s o s y s t c m 這一嵌入式實時多任務(wù)操作系統(tǒng),完成并實現(xiàn) 了該模塊的主體部分以及其中的一些子模塊。經(jīng)調(diào)試,該程序已能正常運行。 最后,搭建了一個測試平臺,模擬實際的網(wǎng)絡(luò)環(huán)境,編制了測試程序?qū)σ褜崿F(xiàn) 的部分進行了測試,給出了測試的結(jié)果。 該工作對路由協(xié)議的研究起著非常重要的作用,對程序的進一步優(yōu)化打下 了堅實的基礎(chǔ)。 關(guān)鍵字:r i p , o 妊,鏈b ;葛醞數(shù)據(jù)庫,鏈路狀慕r 產(chǎn)告,指派路言氧,備 份指派路由器 i i a b s t r a c t w i t ht h ed e v e l o p m e n to ft h en e t w o r ks c a l e ,i tb e c o m e sm o r ei m p o r t a n tt ot h e p e r f o r m a n c e o ft h e r o u t i n gp r o t o c 0 1 h o w e v e r , t h e r i p p r o t o c o l ,w h i c h i s p r e v a l e n t l yu s e di nr o u t i n gt e c h n o l o g y , c a r ln o tr e a c h t h i sd e v e l o p i n gr e q u i r e m e n t h e n c e ,i tn e e d so t h e rr o u t i n gp r o t o c o l s t h i sp r o j e c tj u s t a i m sa tt h i sn e e dt o i m p l e m e n t t h eo s p f r o u t i n gp r o t o c 0 1 t h i sd i s s e r t a t i o ni n t r o d u c e ss e v e r a lr o u t i n gp r o t o c o l sw h i c ha l eu s e di nt h e i n t e r n e t ,a n dd i s c u s s e st h ed e f i c i e n c yo f t h er i pa n dt h ea d v a n t a g e so ft h eo s p f n e x t ,i tg o e sg r a d u a l l yd e e pi n t ot h ep r i n c i p l ea n dt h ew o r k i n gf l o wb a s e do nt h e l s d b i nt h e i m p l e m e n t i n gc h a p t e r s ,ia n a l y s e s t h es t r u c t u r eo ft h er o u t e r s s o f t w a r ew h i c hw a sd e v e l o p e db y0 1 1 1 l a bt e a m a n db a s e do ni t , ip u tf o r w a r dt h e p r o j e c to fr e a l i z i n gt h eo s p fm o d u l ,a n di m p l e m e n t t h em a i nm o d u l ea n ds o m eo f s u b m o d u l e sb a s e do nt h ep s o s y t e m a f t e rd e b u g g i n g ,t h ep r o g r a mc a no p e r a t e n o r m a l l y a tl a s t ,im a k eat e s t i n gp l a t f o r mw h i c hi s u s e dt os i m u l a t et h er e a l n e t w o r ke n v i r o n m e n t ,t e s tt h ep r o g r a mw h i c hh a db e e ni m p l e m e n t e da n dg i v et h e t e s tr e s u l t t h i sp r o j e c ti s v e r yu s e f u lt ot h er e s e a r c ho fr o u t i n gp r o t o c o l s m o r e o v e r , i t c o n s t r u c tas o l i db a s i st ot h ef u r t h e r o p t i m i z a t i o n k e y w o r d s :r i eo s p f , l s d b ,l s a ,d r ,b d r i i i 獨創(chuàng)性聲明 本人聲明所呈交的學(xué)位論文是本人在導(dǎo)師指導(dǎo)下進行的研究工作及取得的 研究成果。據(jù)我所知,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含 其他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲得電子科技大學(xué)或其它教 育機構(gòu)的學(xué)位或證書而使用過的材料。與我一同工作的同志對本研究所做的任 何貢獻已在論文中作了明確的說明并表示謝意。 簽名: ! 堡七 日期:佃,年2 月2 8 日 關(guān)于論文使用授權(quán)的說明 本學(xué)位論文作者完全了解電子科技大學(xué)有關(guān)保留、使用學(xué)位論文的規(guī)定, 有權(quán)保留并向國家有關(guān)部門或機構(gòu)送交論文的復(fù)印件和磁盤,允許論文被查閱 和借閱。本人授權(quán)電子科技大學(xué)可以將學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù) 據(jù)庫進行檢索,可以采用影印、縮印或掃描等復(fù)印手段保存、匯編學(xué)位論文。 ( 保密的學(xué)位論文在解密后應(yīng)遵守此規(guī)定) 簽名:掉導(dǎo)師簽名:主么璺日 日期:出瑁1 年j 土月2 艿目 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 引言 “我們?yōu)槭裁葱枰W(wǎng)絡(luò)? ”這是一個老師曾經(jīng)問他的學(xué)生的一個問題。有 學(xué)生說:“因為我們想去更遠(yuǎn)的地方?!笔堑?,我們能夠通過網(wǎng)絡(luò)了解發(fā)生在很 遠(yuǎn)的地方的事情。網(wǎng)絡(luò)是信息的高速公路,它是靠作用與立交橋一樣的路由器 將它連接并延伸的。路由器通過查找自己的路由表來獲知該將信息往哪一條路 上送,由此可以得知,路由器需要掌握網(wǎng)絡(luò)的路由情況,而路由器又是通過路 由協(xié)議來得到這一信息的。因此,路由協(xié)議對路由器來說是非常重要的。路由 協(xié)議的好壞會直接影響到路由器的性能。 現(xiàn)在,網(wǎng)絡(luò)上普遍使用的路由協(xié)議是r i p 。它是一個非常簡單的路由協(xié)議, 人們對于它已做了深入的研究,并不斷地對它進行改進。從產(chǎn)品的角度來講, 應(yīng)用它的路由器已經(jīng)是很成熟的了。但是,由于它自身的一些沒有辦法改變的 致命弱點,限制了它適用的范圍,使得它只能適用于規(guī)模較小的網(wǎng)絡(luò)。從市場 的角度來講,隨著i n t e m e t 的發(fā)展,接入i n t e m e t 的路由器越來越多,路由負(fù)載 不斷增加,網(wǎng)絡(luò)規(guī)模不斷擴大,我們需要適用于大網(wǎng)的路由協(xié)議,以改善網(wǎng)絡(luò) 的性能。o s p f 就是個很好的選擇。但是,由于它的復(fù)雜性,完全掌握該技 術(shù)的團體和個人還是少數(shù)。人們對于它的研究也遠(yuǎn)不如r 皿那樣深入,該協(xié)議 也許還有很多需要改進的地方。因此,對于我們來說,我們有必要對該路由協(xié) 議進行研究,有必要自己去設(shè)計一套具有自主知識產(chǎn)權(quán)的軟件。 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 第一章i n t e m e t 上路由協(xié)議的使用現(xiàn)狀 1 1自治系統(tǒng)的劃分 早期的i n t e r n e t 是由a r p a n c t 及其伙伴網(wǎng)絡(luò)如s a t n e t 發(fā)展起來的。起初,它 連接的是研究中心的獨立計算機,后來,發(fā)展到可以向局域網(wǎng)提供訪問服務(wù)。 不過,直到2 0 世紀(jì)8 0 年代早期,它都仍然是一個網(wǎng)絡(luò)。在這種情況下,所有 的路由器都采用同一網(wǎng)關(guān)一網(wǎng)關(guān)協(xié)議( g g p ) 來共享路由信息,路由表中包含 了i n t e m e t 上所有的i p 網(wǎng)絡(luò)項和量度值。 隨著i n t e r n e t 的發(fā)展,接入i n t e r n e t 的路由器越來越多,路由負(fù)載不斷增加, 路由表的大小也隨著接入的網(wǎng)絡(luò)數(shù)量的增加而增加。路由器和鏈路的數(shù)目越多, 就越可能出現(xiàn)問題。每次鏈路通或斷,都必須重新計算整個路由表。在這種情 況下,重新計算路由表的工作量將大大的增加。為了讓整個網(wǎng)絡(luò)的路由信息一 致,還必須在網(wǎng)絡(luò)上傳送變化以后的路由信息,這將引起網(wǎng)絡(luò)上數(shù)據(jù)流量的增 加。這是管理巨型網(wǎng)絡(luò)所引起的一個問題:路由負(fù)載問題。此外,管理巨型網(wǎng) 絡(luò)還會引起其他的一些問題,如:路由器種類的增加,裝配在其上的軟件的不 相同,將導(dǎo)致各自特定的g g p 之間無法正常工作,進一步導(dǎo)致無法進行維修和 故障隔離;隨著路由器數(shù)量的增加,當(dāng)路由算法的新版本出現(xiàn)的時候,還需要 在同一時間對所有的路由器升級,這就會給路由算法新版本的推廣工作帶來很 大的困難。 從上面出現(xiàn)的一系列問題,我們可以看出,要想從根本上解決這個問題, 就必須改變“單一網(wǎng)絡(luò)”這種模型。將i n t e m e t 劃分成一系列的自治系統(tǒng),每 一個自治系統(tǒng)由同一個機構(gòu)管理下的一系列路由器和網(wǎng)絡(luò)組成。一個自治系統(tǒng) 內(nèi)的路由器交換網(wǎng)絡(luò)拓?fù)湫畔?,尋找最佳路徑。自治系統(tǒng)內(nèi)的網(wǎng)絡(luò)拓?fù)湫畔⒉?為自治系統(tǒng)外的路由器所知道。自治系統(tǒng)之間通過專門的路由器進行連接,這 些路由器之間交換可達性信息,尋找可達路徑。這樣一來,可大大的減少路由 表的條數(shù),減小網(wǎng)絡(luò)的規(guī)模,讓網(wǎng)絡(luò)更加便于管理。 1 2 路由協(xié)議的使用 在路由器上使用的路由協(xié)議有靜態(tài)路由協(xié)議和動態(tài)路由協(xié)議之分。靜態(tài)路 由協(xié)議不利用網(wǎng)絡(luò)的信息,只是按照某種固定的規(guī)則去選擇路由。這樣,在網(wǎng) 絡(luò)的拓?fù)浒l(fā)生變化的時候,它不能及時的調(diào)整自己的路由信息,最多只是由操 2 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 怍人員偶爾對網(wǎng)絡(luò)的狀態(tài)的變化作出反應(yīng)。由于它不能對網(wǎng)絡(luò)的改變作出反映, 故一般用于網(wǎng)絡(luò)規(guī)模不大、拓?fù)浣Y(jié)構(gòu)固定的網(wǎng)絡(luò)中。其優(yōu)點是簡單、高效、可 靠。與之相反,動態(tài)路由協(xié)議則能根據(jù)網(wǎng)絡(luò)拓?fù)涞淖兓? 比如某個網(wǎng)絡(luò)端口不 能工作) ,在一段網(wǎng)絡(luò)路由信息匯聚的時間后,計算出新的、正確的路由,以適 應(yīng)網(wǎng)絡(luò)流量和拓?fù)涞淖兓.?dāng)然,動態(tài)路由也有不能正常工作的情況,這就需 要靜態(tài)路由作為它的補充。在這里我們討論的僅是動態(tài)路由協(xié)議。 在自治系統(tǒng)內(nèi)的路由器我們稱之為內(nèi)部網(wǎng)關(guān),它們之間通過交換網(wǎng)絡(luò)拓?fù)?信息,來尋找最佳路徑。在此過程中所使用的路由協(xié)議,被稱之為內(nèi)部網(wǎng)關(guān)協(xié) 議( i g p ) 。常見的i g p 有:p 、o s p f 、i o r p 、e i o r p 等。 在自治系統(tǒng)外的路由器我們稱之為外部網(wǎng)關(guān),它們之間通過交換可達性信 息,來尋找可達路徑。連接兩個自治系統(tǒng)的外部網(wǎng)關(guān)并不需要了解這兩個自治 系統(tǒng)的具體的網(wǎng)絡(luò)拓?fù)洌恍枰私馔ㄟ^它可以到達哪些網(wǎng)絡(luò)。在此過程中所 使用的路由協(xié)議,被稱之為外部網(wǎng)關(guān)協(xié)議( e o p ) 。常見的e o p 有:e g p 、b o p 、 b g p 一4 等。 這樣的策略也很適合現(xiàn)在的實際情況。不同的i n t e r a c t 服務(wù)提供商( i s p 根據(jù)自己的需要和管理策略,將自己管理的網(wǎng)絡(luò)劃為一個自治系統(tǒng),在這個自 治系統(tǒng)內(nèi)采用自己的路由策略來管理自己的網(wǎng)絡(luò)?;诶娴目紤],i s p 不愿 意向別人提供自己網(wǎng)絡(luò)的詳細(xì)路由信息。同時,基于網(wǎng)絡(luò)的發(fā)展趨勢,i s p 之 間又必須進行互聯(lián)。外部網(wǎng)關(guān)協(xié)議正好滿足這一要求,i s p 之間可以通過外部 網(wǎng)關(guān)協(xié)議來進行連接。 這樣一來,在市場上就出現(xiàn)了種類和功能繁多的路由器,它們支持各種不 同的路由選擇算法。有的適用于自治系統(tǒng)之內(nèi),有的適用于連接自治系統(tǒng)。 1 3內(nèi)部網(wǎng)關(guān)協(xié)議( i g p ) 在適用于自治系統(tǒng)內(nèi)部的路由器上,即內(nèi)部網(wǎng)關(guān)上,目前多采用的是r i p 協(xié)議。r i p 協(xié)議之所以被廣泛應(yīng)用,主要是由于它很簡單。r i p 是一種距離向 量協(xié)議。對于距離向量協(xié)議來說,它告知鄰居整個網(wǎng)絡(luò)的拓?fù)?。r i p 通過周期 性的將自己的路由表廣播出去來實現(xiàn)這一點,這樣還可以達到維護路由器之間 的相鄰關(guān)系的作用。同時它也會收到別人廣播的路由表,它會根據(jù)這些路由表 的內(nèi)容來生成自己的路由表。當(dāng)然,簡單也必須要付出一定的代價: 1 對于龐大而又復(fù)雜的網(wǎng)絡(luò)來說,r i p 可能根本無法勝任。雖然在網(wǎng)絡(luò)的 拓?fù)浣Y(jié)構(gòu)發(fā)生變化后,r i p 會重新計算新的路由,計算到各個網(wǎng)絡(luò)和路 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 由器的距離值,在這種情況下如果遇到距離值計數(shù)到無窮大等情況,計 算就變得非常緩慢,網(wǎng)絡(luò)的收斂速度將變得相當(dāng)緩慢。為了加快網(wǎng)絡(luò)的 收斂速度,將1 6 設(shè)置為極限值,在進行計數(shù)時,只要距離值達到了1 6 就認(rèn)為兩點之間不可達。然而,這樣就將r i p 限制在小網(wǎng)絡(luò)上使用了, 因為在大網(wǎng)絡(luò)上兩點之間的距離值往往會大于1 6 。 2 周期性的廣播路由表將消耗大量的網(wǎng)絡(luò)帶寬。這個問題對于大網(wǎng),尤其 是慢速鏈路和廣域網(wǎng)就更加突出了。 3 在重新計算路由的過程中,路由器處于一種過渡階段,網(wǎng)絡(luò)上會出現(xiàn)大 量的廣播報文,并會引起循環(huán),從而造成網(wǎng)絡(luò)暫時的擁塞。 4 r i p 在對兩點之間的距離進行量度的時候,其標(biāo)準(zhǔn)是路徑上所經(jīng)過的路 由器的數(shù)目( h o p ) ,選擇h o p 數(shù)最少的那條路徑。這樣就沒有考慮到網(wǎng) 絡(luò)延遲和鏈路狀態(tài)等對兩點之間傳輸距離的影響。 針對于r i p 的不足,我們大都采用o s p f 協(xié)議。o s p f 是一種鏈路狀態(tài)協(xié)議。 對于鏈路狀態(tài)協(xié)議來說,它向整個網(wǎng)絡(luò)告知自己的鄰居信息。因此,在這個協(xié) 議中,各個網(wǎng)絡(luò)節(jié)點不必交換通往目的站點的距離,而只需維護一張網(wǎng)絡(luò)的“拓 撲圖”,在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)生變化的時候及時更新這張拓?fù)鋱D。各個路由器根據(jù) 這張圖分別計算到不同目的地的距離,從而生成各自的路由表。它解決了r i p 所不能解決的一些問題: 1 無h o p 數(shù)的限制,因此不必被限制在小網(wǎng)中使用。 2 每個路由器都掌握了網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),各自按照拓?fù)浣Y(jié)構(gòu)來進行路由優(yōu) 化算法,形成自己的優(yōu)化路由。 3 更新報文的發(fā)送是在路由發(fā)生了變化的時候,而不是周期性的發(fā)送,故 減少了網(wǎng)絡(luò)上的路由信息的流量,有利于帶寬的有效利用。 4 支持多種度量制式,充分考慮網(wǎng)絡(luò)延遲、鏈路狀態(tài)和吞吐量等因素對兩 點之間傳輸距離的影響。 5 支持具有相同量度值的多條鏈路之間的負(fù)載分擔(dān)。 o s p f 的功能很強大,這些都只是它的功能中的一部分。另一方面,它也很 復(fù)雜,因此它遠(yuǎn)不如r i p 應(yīng)用廣泛。正是由于這個原因,現(xiàn)在完全掌握這個技 術(shù)的人還是少數(shù)。 目前,我們教研室正在進行路由器的研發(fā)工作,考慮到網(wǎng)絡(luò)的發(fā)展趨勢, 以及組網(wǎng)特點的改變和需求,o s p f 應(yīng)該是路由器所必須支持的基本協(xié)議之一。 在這種情況下,我們就有必要自組研究,自行開發(fā)具有自主知識產(chǎn)權(quán)的o s p f 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 軟件。我所做的工作正是這其中的一部分。 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 第二章o s p f 協(xié)議解析 在前面一章我們已經(jīng)簡要的介紹了一些o s p f 協(xié)議的特點,現(xiàn)在,我們將 就其中的一些主要細(xì)節(jié)和關(guān)鍵技術(shù)進行一個較深入的討論。這都將圍繞著鏈路 狀態(tài)數(shù)據(jù)庫來展開。 o s p f 用鏈路狀態(tài)數(shù)據(jù)庫來表述網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),用加權(quán)有向圖描述了路由 的評價方式,定義了幾種網(wǎng)絡(luò)類型,采用三種協(xié)議來生成和維護計算路由的相 關(guān)數(shù)據(jù)。 2 1鏈路狀態(tài)數(shù)據(jù)庫 網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)在o s p f 中用鏈路狀態(tài)數(shù)據(jù)庫來表述,它是o s p f 協(xié)議中 關(guān)鍵的一個部分。在一個自治系統(tǒng)中,所有運行o s p f 的路由器都需要維護一 個相同的鏈路狀態(tài)數(shù)據(jù)庫。其實,這個數(shù)據(jù)庫就是一張有關(guān)這個自治系統(tǒng)拓?fù)?結(jié)構(gòu)的圖,同時它還是一張加權(quán)的圖。圖中每一條邊都與一個權(quán)值相關(guān)聯(lián),權(quán) 值表示沿這條邊所示的方向傳輸數(shù)據(jù)的代價。這個代價值可以是由管理員自己 配置的,也可以是從其它的路由協(xié)議中獲得的。這樣一來,所有路由器都了解 了整個自治系統(tǒng)的拓?fù)浣Y(jié)構(gòu)。在此基礎(chǔ)之上,每個路由器根據(jù)這張加權(quán)圖利用 d i j k s t r a 的s p f 算法來計算到每一個目的地的最短路徑,從雨生成路由表。正 是由于這個原因,使得盡管路由計算是分布式的,但其計算的結(jié)果與集中式計 算出來的結(jié)果一樣精確。 個自治系統(tǒng)是由一系列的網(wǎng)絡(luò)和路由器所組成的,那么,我們應(yīng)該怎樣 來表示這個自治系統(tǒng)呢? 在存放這個自治系統(tǒng)拓?fù)浣Y(jié)構(gòu)的鏈路狀態(tài)數(shù)據(jù)庫中, 我們應(yīng)該怎樣來表示這些網(wǎng)絡(luò)和路由器? 我們用有向圖來描述一個自治系統(tǒng)。網(wǎng)絡(luò)和路由器是這個圖中的頂點。網(wǎng) 絡(luò)和路由器之間以及路由器和路由器之間的關(guān)系則用圖中的點和邊來表示:如 果表示兩個路由器的點用一條邊連接起來,則表示這兩個路由器通過一個點到 點的網(wǎng)絡(luò)相連;如果一個表示路由器的點和個表示網(wǎng)絡(luò)的點用一條邊連接起 來,則表示這個路由器有一個接口與這個網(wǎng)絡(luò)相連。按照這樣的規(guī)則,圖2 - 1 所示的網(wǎng)絡(luò),就可以用圖2 2 所示的圖來表示。其中r t a 、r t b 、r t c 和r t d 分別表示路由器a 、b 、c 和d ,n 1 n 5 分別表示網(wǎng)絡(luò)l 5 。每條邊旁邊的數(shù) 字表示這條邊所對應(yīng)的權(quán)值。 6 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 圖2 - 1 網(wǎng)絡(luò)實例 一竺戈 1 ,n 厶 1 7 8 1 0 0 0 o ) 寸p ,r t c 衛(wèi) n 2 6 4 3 2 o 圖2 - 2 在圖2 之所示的圖中,r t a 、r t b 和r t c 與n 1 之間的連接示雙向的,這 表示n 1 是一個t r a n s i t 網(wǎng)絡(luò),它為其它網(wǎng)絡(luò)間的通信提供通路,而其它的網(wǎng)絡(luò) 與路由器之間的連接都是單向的,對網(wǎng)絡(luò)而言就是只有入邊,而沒有出邊,這 表示這個網(wǎng)絡(luò)是一個s t u b 網(wǎng)絡(luò),這種網(wǎng)絡(luò)只提供網(wǎng)絡(luò)內(nèi)的目的之間的通信,不 為其他網(wǎng)絡(luò)間的通信提供通路。這兩種網(wǎng)絡(luò)是o s p f 中典型的兩種網(wǎng)絡(luò)類型。 。v。一竺一啪慧 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 前面所討論的都是怎樣用圖來表示網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),那么,在屬于該自治 系統(tǒng)的所有路由器上又是怎樣來存放這張圖的呢? 表2 1 描述了鏈路狀態(tài)數(shù)據(jù) 庫的邏輯表示。 表2 - 1鏈路狀態(tài)數(shù)據(jù)庫的邏輯表示 在有了這個數(shù)據(jù)庫以后,各個路由器就可以根據(jù)它來生成最短樹,從而計 算出自己的路由表。 2 2生成樹 每個o s p f 路由器利用形成的鏈路狀態(tài)數(shù)據(jù)庫,通過d i j k s t r a 算法,以自己 為根節(jié)點得到一個最短樹。因此最短樹因運行該算法的路由器不同而不同。最 短樹給出了去任何目的網(wǎng)絡(luò)和主機的整個路徑,但只有下一跳地址在i p 轉(zhuǎn)發(fā)中 使用。 現(xiàn)在,我們就以r t a 為例,在其上運行d i j k s t r a 算法,得到最短樹,然后 再根據(jù)這個最短樹來計算出r t a 的路由表。由于這個鏈路狀態(tài)數(shù)據(jù)庫只是有關(guān) 本自治系統(tǒng)內(nèi)的,所以,得到的路由表也只是本自治系統(tǒng)內(nèi)的路由表。只是圖 2 3 給出了r t a 計算的最短樹。表2 2 則是r t a 計算出來的路由表。 表2 - 2r t a 的路由表 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) d 喱 5 n 5 :2 0 2 1 1 31 4 0 3 0,ln 2 :2 0 2 6 4 3 2 0 2 4 圖2 - 3r t a 計算的最短樹 從表2 1 我們可以看出,在這個鏈路狀態(tài)數(shù)據(jù)庫中包含了整個自治系統(tǒng)所 有的網(wǎng)絡(luò)和路由器。從表2 2 可以看出,整個自治系統(tǒng)中所有的網(wǎng)絡(luò)在路由表 中都有對應(yīng)的表項。這樣一來,當(dāng)自治系統(tǒng)的規(guī)模擴大的時候,就會產(chǎn)生一些 問題:所包含的網(wǎng)絡(luò)和路由器的數(shù)目就會增多,鏈路狀態(tài)數(shù)據(jù)庫也就會變得相 當(dāng)龐大,從而超出一定的限額;利用這個鏈路狀態(tài)數(shù)據(jù)庫計算最短樹的時間也 會因此而超出一定的限額;路由表的大小也會因此而超出一定的限額;當(dāng)某一 條鏈路的狀態(tài)發(fā)生了變化的時候,o s p f 路由器會向自治系統(tǒng)中所有的路由器 通告這個變化,大量的路由更新報文會使得網(wǎng)絡(luò)帶寬的有效利用率變低,我們 又一次面對與r i p 帶給我們的同樣的問題。為了解決這個問題,o s p f 協(xié)議允 許把自治系統(tǒng)劃分為更小的單位,我們稱之為區(qū)域( a r e a ) 。 2 3區(qū)域的劃分 首先我們需要說明的一個問題就是:什么是區(qū)域? 在o s p f 協(xié)議中允許將 連續(xù)的網(wǎng)絡(luò)和主機組合在一起形成一個集合,再加上有接口與這個集合中的任 何一個網(wǎng)絡(luò)相連的路由器就形成了一個區(qū)域。這樣一來,我們就可以將自治系 統(tǒng)劃分為若干個區(qū)域。每個區(qū)域獨立的運行鏈路狀態(tài)算法,區(qū)域內(nèi)的網(wǎng)絡(luò)拓?fù)?結(jié)構(gòu)對于區(qū)域外的路由器是不可見的,同樣區(qū)域外的拓?fù)浣Y(jié)構(gòu)對于區(qū)域內(nèi)的路 由器同樣是不可見的。處于同一個區(qū)域中的路由器共同維護一個相同的鏈路狀 態(tài)數(shù)據(jù)庫。這就使得位于一個a s 內(nèi)的路由器的鏈路狀態(tài)數(shù)據(jù)庫也不再完全相 同,不同區(qū)域的路由器具有不同的鏈路狀態(tài)數(shù)據(jù)庫。由于這個數(shù)據(jù)庫中只記錄 9 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 了該區(qū)域中的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),所以鏈路狀態(tài)數(shù)據(jù)庫的大小被縮小了。這種拓?fù)?結(jié)構(gòu)的隔離使得網(wǎng)絡(luò)的擴散過程止步于區(qū)域的邊界,從而減少了網(wǎng)絡(luò)的流量。 這一個一個獨立的區(qū)域又是怎樣聯(lián)系起來的呢? 它們是通過接在不同區(qū)域 的路由器聯(lián)系起來的。這樣的路由器我們把它稱之為區(qū)域邊界路由器( a b r : a r e ab o r d e rr o u t e r ) 。它們屬于多個區(qū)域,在其上維護多個鏈路狀態(tài)數(shù)據(jù)庫。 為了區(qū)分不同的區(qū)域,我們對區(qū)域進行了編號,不同的區(qū)域分以不同的編 號。但是,在這里面有一個特殊的區(qū)域,它的編號必須是0 。這個區(qū)域我們稱 之為主干區(qū)域( b a c k b o n ea r e a ) ,它是由所有的區(qū)域邊界路由器所組成的。它 負(fù)責(zé)非主干區(qū)域間的通信,因此,它必須是連續(xù)的( c o n t i g u o u s ) ,即使不是物 理上連續(xù)的,也應(yīng)該通過虛擬鏈路的建立保證其邏輯上的連續(xù)。 這就是在一個自治系統(tǒng)當(dāng)中我們所采取的一些改進措施,如果一個自治系 統(tǒng)要與其它的自治系統(tǒng)進行路由的交換,那又應(yīng)該怎樣辦呢? 這是通過自治系 統(tǒng)邊界路由器( a sb o r d e rr o u t e r ) 來實現(xiàn)的。通過它將a s 外的路由信息傳進 自治系統(tǒng)內(nèi),同時也向其它a s 宣告本a s 的一些可達信息。 有了這樣的劃分之后,一個自治系統(tǒng)中的路由器就可以分為以下三種: 1 區(qū)域內(nèi)部路由器:直連的所有網(wǎng)絡(luò)都在一個區(qū)域的路由器。 2 區(qū)域邊界路由器:與多個區(qū)域相連的路由器。它將一個區(qū)域的路由信息 匯總壓縮后向主干區(qū)域發(fā)布,同樣也將主干區(qū)域的路由信息向其他區(qū)域 發(fā)布。 3 a s 邊界路由器:負(fù)責(zé)與a s 外的路由器交換路由信息的路由器。 2 4 鏈路狀態(tài)廣告及其分類 我們將路由器產(chǎn)生的鏈路狀態(tài)信息稱為鏈路狀態(tài)廣告( l s a ;l i n ks t a t e a d v e r t i s e m e n t ) 。鏈路狀態(tài)數(shù)據(jù)庫中存放的、路由器之間相互交換的就是一條一 條的鏈路狀態(tài)廣告。根據(jù)路由器類型的不同,它所產(chǎn)生的鏈路狀態(tài)廣告的類型 和內(nèi)容也就不相同。 鏈路狀態(tài)廣告共分為5 類,表2 - 3 描述各種不同的l s a 的詳細(xì)的情況: 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 表2 3o s p fl s a s l s a 類型對該l s a 的描述 類型1 所有的路由器都要生成該l s a 。它描述了位于同 r o u t e r - l s a s一區(qū)域下路由器的接口的狀態(tài),只在一個區(qū)域內(nèi)擴 散。 由廣播型網(wǎng)絡(luò)和n b m a ( n o n - b r o a d c a s t 類型2m u l t i - a c c e s s ) 網(wǎng)絡(luò)中的指派路由器為該網(wǎng)絡(luò)生成。 n e t w o r k l s a s 它描述了一個網(wǎng)絡(luò)的情況,記錄了位于該網(wǎng)絡(luò)中的 路由器。只在一個區(qū)域內(nèi)擴散。 由區(qū)域邊界路由器( a b r ) 生成。只在與此l s a 類型3 和類型4相應(yīng)的某個區(qū)域中擴散。每一個s u r n m a r y l s a 描 s u m m a r y - l s a s 述了一個區(qū)域外部但仍在a s 內(nèi)部的路由。類型3 描述的目的地址為網(wǎng)絡(luò),而類型4 的目的地址為自 治系統(tǒng)邊界路由器( a s r ) 。 類型5 由自治系統(tǒng)邊界路由器生成。每個 a s e x t e m a l l s a sa s e x t e r n a l l s a 描述了一條自治系統(tǒng)以外的路 由。在整個自治系統(tǒng)中擴散。 注:指派路由器是在廣播型網(wǎng)絡(luò)和n b m a ( n o n b r o a d c a s tm u l t i a c c e s s ) 網(wǎng)絡(luò)上執(zhí)行特殊功能的路由器。在這些網(wǎng)絡(luò)中,接在該網(wǎng)絡(luò)上的所有路由器之 間都需要建立鄰接關(guān)系,以便相互交換鏈路狀態(tài)信息。如果接在該網(wǎng)絡(luò)上的路 由器數(shù)目很大,則需要建立的鄰接關(guān)系的數(shù)量就很大。指派路由器的引入,網(wǎng) 絡(luò)中的非指派路由器只需要與指派路由器建立鄰接關(guān)系,非指派路由器之間并 不需要建立鄰接關(guān)系,這樣就使得這種類型的網(wǎng)絡(luò)中所需要建立的鄰接關(guān)系的 數(shù)量減少,從而也減小了網(wǎng)絡(luò)的開銷。為了保證該策略的可靠性,我們還引入 了備份指派路由器。平時,備份指派路由器與指派路由器和非指派路由器均保 持這鄰接關(guān)系。當(dāng)指派路由器發(fā)生故障的時候,它就接替指派路由器的工作。 在這里面涉及到一個l s a 的區(qū)分問題。我們用與每一個l s a 相對應(yīng)的廣 告路由器標(biāo)識( r o u t e r i d ) 、鏈路狀態(tài)標(biāo)識( l i n ks t a t e i d ) 和鏈路狀態(tài)類型( l i n k 皇蘭型墊查蘭堡主堂垡堡皇! q ! 堅塑叢塑壅翌 一 s t a t et y p e ) 的組合來標(biāo)識它。不同的l s a 具有不同的標(biāo)識。 2 5鏈路狀態(tài)數(shù)據(jù)庫的形成與維護 我們已經(jīng)討論了鏈路狀態(tài)數(shù)據(jù)庫的內(nèi)容,現(xiàn)在我們自然該來討論它是怎樣 形成的,以及當(dāng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)發(fā)生變化的時候,它又是怎樣來進行更新,從 而維護一張有關(guān)網(wǎng)絡(luò)的最新的拓?fù)鋱D。 在o s p f 協(xié)議中鏈路狀態(tài)數(shù)據(jù)庫的形成與維護是通過三種協(xié)議( h e l l o 協(xié)議、 交換協(xié)議和擴散協(xié)議) 來完成的。 2 5 1h e i i o 協(xié)議 從前面的討論,我們知道運行o s p f 協(xié)議的路由器向全網(wǎng)告知自己的鄰居 信息,當(dāng)鄰居狀態(tài)發(fā)生變化的時候,它又會向全網(wǎng)通告這個變化。那么,o s p f 路由器怎么知道自己的鄰居是誰,怎樣檢測到自己的鄰居已經(jīng)發(fā)生了變化? 這 一切都是由h e l l o 協(xié)議來完成的。除此之外,在前面所提到的指派路由器和備 份指派路由器的選舉,也是由它來完成的。因此,我們可以從以下的幾個方面 來描述h e l l o 協(xié)議: 1 動態(tài)發(fā)現(xiàn)新鄰居 h e l l o 協(xié)議中規(guī)定,一個運行o s p f 協(xié)議的路由器從它加入網(wǎng)絡(luò)起,就需要 定期的向網(wǎng)絡(luò)發(fā)送h e l l o 分組。鄰居通過收到這個h e l l o 分組來發(fā)現(xiàn)它的存在。 而它則通過收到鄰居發(fā)送的h e l l o 分組來發(fā)現(xiàn)自己的鄰居。 2 確認(rèn)鄰居問的雙向連接關(guān)系 鄰居之間要進行進一步的操作,必須先建立雙向連接。如果o s p f 路由器 檢測到鄰居發(fā)來的h e l l o 報文的鄰居列表中含有自己,說明鄰居已經(jīng)收到了自己 發(fā)送的h e l l o 報文,能夠在網(wǎng)絡(luò)上看見自己。此時,鄰居間的雙向連接關(guān)系就建 立起來了。 3 維持與鄰居間的鄰接關(guān)系 一個o s p f 路由器通過定期( 如1 0 秒) 向網(wǎng)絡(luò)發(fā)送h e l l o 分組來告知鄰居 自己的存在,同時它通過收到鄰居的h e l l o 報文,來確保鄰居還活著。如果一個 o s p f 路由器在規(guī)定的時間內(nèi)( 通常為發(fā)送h e l l o 分組時間間隔的4 倍,如4 0 秒) 沒有收到鄰居發(fā)送的h e l l o 分組,則該路由器可以確認(rèn)此鄰居已經(jīng)死掉了, 從而來發(fā)現(xiàn)拓?fù)浣Y(jié)構(gòu)的變化。 4 指派路由器的選舉 1 2 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 對于廣播型網(wǎng)絡(luò)和n b m a ( n o n b r o a d c a s tm u l t i a c c e s s ) 網(wǎng)絡(luò),我們在所 有與該o s p f 路由器建立了雙向連接的鄰居之間,通過路由器的優(yōu)先級、i d ( i d e n t i f i c a t i o n ) 的比較,來選出指派路由器。其它的所有路由器需要與它交 換彼此的鏈路狀態(tài)數(shù)據(jù)庫,從而建立鄰接關(guān)系。 h e l l o 分組的發(fā)送可以以組播的形式,發(fā)給網(wǎng)絡(luò)上的所有o s p f 路由器,或 者以單播的形式發(fā)給自己的鄰居。 對于選舉了指派路由器的網(wǎng)絡(luò),在指派路由器和非指派路由器之間;對于 其它的網(wǎng)絡(luò),在建立了雙向連接的路由器之間,都需要建立鄰接關(guān)系,這就需 要隨時保持鏈路狀態(tài)數(shù)據(jù)庫的一致。這個一致是通過交換協(xié)議和擴散協(xié)議來完 成的。 2 5 2 交換協(xié)議 交換協(xié)議僅用于鏈路狀態(tài)數(shù)據(jù)庫的初始同步,它規(guī)定了剮建立雙向連接而 又需要建立鄰接關(guān)系的路由器之間的鏈路狀態(tài)數(shù)據(jù)庫怎樣進行初始的交換。 在這個交換過程中,路由器雙方是非對稱的,一個扮演“主”的角色,另 外一個扮演“從”的角色。因此,這個過程的第一步就是“主”“從”角色的協(xié) 商。之后,進行的操作就是“主”“從”之間相互告訴對方自己的鏈路狀態(tài)數(shù)據(jù) 庫中的內(nèi)容。在第二步中,“主”路由器主動發(fā)起交換過程,告知“從”路由器 自己的鏈路狀態(tài)數(shù)據(jù)庫中有什么內(nèi)容,“從”路由器收到后,進行應(yīng)答,并在應(yīng) 答分組中帶上自己的鏈路狀態(tài)數(shù)據(jù)庫的內(nèi)容。此時,雙方傳送的是“數(shù)據(jù)庫描 述分組”,這些分組只標(biāo)志了各個不同的l s a ,而不是對每條l s a 的具體內(nèi)容 進行述說。在此過程中雙方都會將對方的數(shù)據(jù)庫中的內(nèi)容與自己的數(shù)據(jù)庫中的 內(nèi)容進行比較,若發(fā)現(xiàn)自己的數(shù)據(jù)庫中沒有該項記錄,則將它放入一個請求鏈 表中,以便稍后向鄰居索要該記錄。自然,交換過程的第三步就是向?qū)Ψ桨l(fā)自 己的請求鏈表,并在收到對方請求后,將對方請求的l s a 發(fā)給它。 在此過程完成后,雙方鏈路狀態(tài)數(shù)據(jù)庫的內(nèi)容都達到了一致,這兩個路由 器之間的連接關(guān)系就建立起來了。 2 5 3 擴散協(xié)議 交換協(xié)議僅僅保證了在初始時刻,鄰接路由器間鏈路狀態(tài)數(shù)據(jù)庫的一致, 然而,當(dāng)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)發(fā)生了變化的時候,一個路由器檢測到了這樣的變化, 它就會修改自己的鏈路狀態(tài)數(shù)據(jù)庫的內(nèi)容,為了保證鏈路狀態(tài)數(shù)據(jù)庫的一致性, 它還必須將這個變化傳出去,此時,交換協(xié)議就沒有辦法工作了,這就需要用 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 其它的協(xié)議來完成。這個功能就是由擴散協(xié)議完成的。在擴散協(xié)議當(dāng)中通過發(fā) 送和接收鏈路狀態(tài)更新分組來實現(xiàn)。 1 鏈路狀態(tài)更新分組的發(fā)送 當(dāng)一個路由器檢測到它的一個鄰居的狀態(tài)發(fā)生了變化的時候,會立即更新 自己的鏈路狀態(tài)數(shù)據(jù)庫中的相應(yīng)記錄,并將更新后的l s a 裝在鏈路狀態(tài)更新分 組中發(fā)給與自己相連的其它節(jié)點。在一個鏈路狀態(tài)更新分組中可能包含有多個 l s a ,它的傳送距離只有一跳( h o p ) 。為了保證這個算法的可靠性,發(fā)送方在 發(fā)出更新報文后,必須等待接收方發(fā)來的確認(rèn)。如果,發(fā)送方在規(guī)定的時間內(nèi) 沒有收到確認(rèn),它會以一定的時間間隔重新發(fā)送更新分組,直到收到對方的確 認(rèn)為止。 2 鏈路狀態(tài)更新分組的接收 當(dāng)一個路由器收到鄰居發(fā)來的鏈路狀態(tài)更新分組后,它會采取如下的一些 措施: ( 1 ) 在數(shù)據(jù)庫中搜索相應(yīng)的記錄; ( 2 ) 如果該記錄不存在,就把它加入數(shù)據(jù)庫,并廣播該報文: ( 3 ) 如果該記錄比自己數(shù)據(jù)庫中的記錄新,則替換數(shù)據(jù)庫中的記錄,并 廣播該報文; ( 4 ) 如果數(shù)據(jù)庫中的記錄新,就把這個更新的記錄告訴發(fā)方; ( 5 ) 如果和數(shù)據(jù)庫中的記錄一樣,則不做任何操作。 在這里面我們涉及到比較相同的l s a 的新舊問題,此時,我們是通過比較 它們的鏈路狀態(tài)序列號( l s s e q u e n c en u m b e r ) 、l sa g e 和l sc h e c k s u m 來實現(xiàn) 的。 通過這3 個協(xié)議的相互協(xié)調(diào)工作,路由器上的鏈路狀態(tài)數(shù)據(jù)庫得以形成, 并隨時更新,以保證自己的鏈路狀態(tài)數(shù)據(jù)庫所描述的網(wǎng)絡(luò)拓?fù)涫亲钚碌?。每?dāng) 鏈路狀態(tài)數(shù)據(jù)庫發(fā)生了變化的時候,我們就必須重新生成最短樹,然后根據(jù)它 重新計算出自己的路由表,以完成o s p f 路由選擇協(xié)議的全部功能。 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 第三章程序設(shè)計總體框架 接下來的工作就是要實現(xiàn)o s p f 路由協(xié)議,完成其中所描述的功能,最終 生成路由表。 整個程序的實現(xiàn)是以教研室已開發(fā)了的路由器作為平臺,在此基礎(chǔ)上,加 入一個相對獨立的模塊來實現(xiàn)o s p f 的功能。路由器中已有的軟件為它提供基 本的通信服務(wù)以及其它的一些信息,而這個o s p f 模塊提供相應(yīng)的接1 3 供路由 器上的其它軟件調(diào)用它。 下面,我將從整個路由器軟件的開發(fā)情況、o s p f 路由協(xié)議模塊的細(xì)分、 o s p f 模塊中的數(shù)據(jù)結(jié)構(gòu)以及o s p f 模塊怎樣與整個路由器軟件進行銜接等方 面來簡要的介紹一下程序設(shè)計的總體框架。 3 1 程序的開發(fā)環(huán)境 既然我們所開發(fā)的o s p f 路由協(xié)議軟件是以已有的路由器作為平臺,那么, 我們首先需要了解的就是已有的路由器軟件的開發(fā)環(huán)境、它的結(jié)構(gòu)以及已經(jīng)實 現(xiàn)了的功能。 路由器軟件的開發(fā)和調(diào)試是采用可裁減的p s o s y s t e m 嵌入式實時多任務(wù)操 作系統(tǒng)。 3 1 1 p s o s y s t e m 開發(fā)環(huán)境 p s o s y s t e m 是個高性能的實時操作系統(tǒng),它提供了基于開放系統(tǒng)標(biāo)準(zhǔn)的 多任務(wù)環(huán)境。p s o s y s t e m 采用模塊化的結(jié)構(gòu),其系統(tǒng)庫提供了以實時多任務(wù)內(nèi) 核為核心的若干組件,每一個組件提供一類服務(wù)。p s o s y t e m 軟件結(jié)構(gòu)如圖3 1 所示。 在這個結(jié)構(gòu)中: 1 p s o s + :p s o s y t e m 實時多任務(wù)操作系統(tǒng)的內(nèi)核,提供任務(wù)的管理、調(diào) 度,任務(wù)間的通信、同步,內(nèi)存的分配、管理等服務(wù); 2 p n a + :t c p i p 網(wǎng)絡(luò)管理器( t c p i pn e t w o r km a n a g e r ) ,提供t c p i p 網(wǎng)絡(luò)服務(wù),包括a r p 、i p 、i c m p 、t c p u d p 等協(xié)議和標(biāo)準(zhǔn)的s o c k e t 接口: 3 p r p c + :遠(yuǎn)程進程調(diào)用庫( r e m o t e p r o c e d u r ec a l ll i b r a r y ) ; 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 固詈霧甲 4 p h i l e + :文件系統(tǒng)管理器( f i l es y s t e m m a n a g e r ) ,提供本地或網(wǎng)絡(luò)文 件的訪問: 5 p r p e c + :a n s i c 標(biāo)準(zhǔn)庫; 6 p r o b e + :提供有關(guān)調(diào)試的服務(wù); 利用p s o s y t e m 提供的這一系列服務(wù),用戶可以自己選擇所需要的組件, 將其包含在目標(biāo)代碼中,通過庫函數(shù)調(diào)用的方式來使用這些組件提供的服務(wù)。 使用這樣的系統(tǒng),我們在主機上開發(fā)應(yīng)用程序,在目標(biāo)機上運行可執(zhí)行的 映像文件,這個映像文件包括p s o s y t e m 軟件和自己的應(yīng)用程序代碼。在調(diào)試 的時候,我們可以采取兩種方式:直接在目標(biāo)系統(tǒng)上調(diào)試或在開發(fā)機上進行遠(yuǎn) 程調(diào)試。當(dāng)選擇進行遠(yuǎn)程調(diào)試的時候,又可以根據(jù)實際情況選擇通過c o n s o l e 口或利用p n a + 組件通過t c p i p 網(wǎng)絡(luò)進行調(diào)試。 根據(jù)所需開發(fā)的路由器軟件的特點,為了開發(fā)一套具有自主知識產(chǎn)權(quán)的軟 件,為了更有利于今后軟件的升級和優(yōu)化,在實際進行路由器軟件開發(fā)的時候, 我們只利用了p s o s y t e m 系統(tǒng)的內(nèi)核( p s o s + ) 和p r p e c + 、p r o b e + 、d h i l e + ,自己設(shè)計了一套t c p i p 協(xié)議棧的軟件。 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 3 1 2 路由器軟件結(jié)構(gòu) 整個路由器軟件的體系結(jié)構(gòu)如圖3 2 所示。 t f t pt e l n e t i m i b i 酬s n m pa g e n t o s p fr i p ,r j p 2 善 、 r 、l t c p i p 軟4 ( 爿r o u t e t a b l e 0 抽象網(wǎng)絡(luò)接口 善善善 以太網(wǎng)鏈路級驅(qū)動軟件 i p p p 鏈路級 h d l c 甚茹鼉h 快速轉(zhuǎn)發(fā)軟件 驅(qū)動軟件驅(qū)動軟件 0善善 局域網(wǎng)接口廣域網(wǎng)接口 圖3 - 2 路由器軟件結(jié)構(gòu) 叫配詈軟件l d i t i 設(shè)備驅(qū)動軟件 i c o n s o l e 口 1 在這個結(jié)構(gòu)中,劃虛線的部分為路由器軟件的核心部分。其中: ( 1 ) 局域網(wǎng)接口主要支持e t h e r n e t 接口,指e t h e m e t 的接口驅(qū)動程序; ( 2 ) 廣域網(wǎng)接口是指廣域網(wǎng)的接口驅(qū)動程序; 它們直接與物理網(wǎng)卡打交道。在其上覆蓋了相應(yīng)的鏈路曾驅(qū)動軟件。 ( 3 ) 抽象網(wǎng)絡(luò)接口是i p 層與下面物理網(wǎng)絡(luò)接口的抽象。該接口屏蔽了具體 的物理網(wǎng)絡(luò)實現(xiàn)細(xì)節(jié),使上層( i p ) 所看到的各種網(wǎng)絡(luò)都具有完全相同 的接口。廣域網(wǎng)、局域網(wǎng)在這里的接口是完全相同的。這樣,當(dāng)下層軟 件發(fā)生變化或增加新的下層軟件的時候,上層可以不做修改。 ( 4 ) t c p i p 軟件包括t c p i p 協(xié)議族軟件和s o c k e t 接口,以此來代替 p s o s y t e m 中提供的p n a + 通信模塊。 ( 5 ) 位于t c p i p 軟件之上的是一個s n m p ( 簡單網(wǎng)絡(luò)管理) 的代理,管理 員可以通過它來讀取路由器設(shè)備的一些參數(shù),對設(shè)備的狀態(tài)和參數(shù)進行 設(shè)置。 ( 6 ) o s p f r i p 模塊利用t c p i p 軟件提供的通信服務(wù),與網(wǎng)絡(luò)中其它的路由 皇蘭型墊奎堂堡主堂垡笙苧! 旦! 些塑望墮塞翌 一 一 器進行通信,通過計算得到一張路由表,t c p i p 軟件則通過查找這張 路由表來決定一個i p 數(shù)據(jù)報的轉(zhuǎn)發(fā)路徑。 2 位于虛線外的模塊則是路由器所提供的一些服務(wù)和為了讓這個路由器 正常運行而進行配置的模塊。 3 1 3 現(xiàn)有路由協(xié)議軟件 路由協(xié)議的實現(xiàn),構(gòu)成了路e h - 1 器軟件上的個重要的模塊路由模塊a 從路由器的軟件結(jié)構(gòu)可以看出,路由模塊是路由器軟件中重要的一個部分,它 通過t c p i p 軟件獲得信息,又利用獲得的信息生成路由表,從而來影響t c p i p 軟件的工作。路由模塊的結(jié)構(gòu)如圖3 。3 所示。 圖3 - 3 路由模塊結(jié)構(gòu) 更 除路 在路由模塊中我們已經(jīng)實現(xiàn)了靜態(tài)路由和附p ,r 】p 2 路由協(xié)議。它們已能相 互配合完成一定的功能。 1 靜態(tài)路由是由網(wǎng)絡(luò)管理員在路由選擇前就建立的,除非網(wǎng)絡(luò)管理員干 預(yù),否則靜態(tài)路由不會發(fā)生變化。其實現(xiàn)是由管理員通過配置模塊設(shè)置 到路由轉(zhuǎn)發(fā)表中去的,同樣管理員還可以將不正確的靜態(tài)路由刪除。 2 對于r i p 協(xié)議的實現(xiàn),我們是按照r f c l 0 5 9 ( r 口) 和r f c l 7 2 3 ( 她p 2 ) 的規(guī)定來進行的。實現(xiàn)了r i p 和r i p 2 的的兼容。 目前,我們所需要做的工作就是實現(xiàn)o s p f 這種路由協(xié)議軟件,以加強路 由器的路由選擇功能,適應(yīng)網(wǎng)絡(luò)的迅速發(fā)展。 3 2o s p f 路由協(xié)議模塊的劃分 o s p f 協(xié)議軟件的開發(fā),是按照r f c 2 3 2 8 ( o s p fv e r s i o n 2 ) 的規(guī)定來進行 1 8 電子科技大學(xué)碩士學(xué)位論文:o s p f 協(xié)議的實現(xiàn) 根據(jù)前面的分析,我們可以將整個o s p f 模塊劃分為以下幾個部分: 1 通信子塊:通過它與t c p f l p 軟件打交道,進行數(shù)據(jù)的收和發(fā),并完成 相應(yīng)的數(shù)據(jù)處理。利用t c p i p 軟件提供的服務(wù),為其它子塊提供統(tǒng)一 的通信接口,屏蔽掉通信的具體細(xì)節(jié)。根據(jù)o s p f 協(xié)議所描述的功能, 我們可以將通信予塊進行進一步的細(xì)分: ( 1 1h e l l o 協(xié)議子塊:完成h e l l o 協(xié)議所描述的功能。 f 1 接收h e l l o 分組,檢查其中的內(nèi)容,以發(fā)現(xiàn)新鄰居的存在,判 斷鄰居之間應(yīng)建立的狀態(tài)關(guān)系以及己建立的狀態(tài)是否應(yīng)發(fā)生改 變,從而向鄰居有限狀態(tài)機發(fā)送相應(yīng)的信號。檢查分組中相應(yīng) 的內(nèi)容,發(fā)送信號給接口有限狀態(tài)機; b 根據(jù)不同的網(wǎng)絡(luò)接口類型,以不同的形式發(fā)送h e l l o 分組,告 知鄰居自己的存在; c 收集鄰居路由器的優(yōu)先級、路由器i d 等信息,以便在廣播型 網(wǎng)絡(luò)和n b m a 網(wǎng)絡(luò)上選舉指派路由器和備份指派路由器。 ( 2 ) 交換協(xié)議予塊:完成交換協(xié)議所描述的功能。在應(yīng)建立連接關(guān)系的 路由器之間,啟動并完成鏈路狀態(tài)數(shù)據(jù)庫的初始同步。 ( 3 ) 擴散協(xié)議予塊:完成擴散協(xié)議所描述的功能。 a 接收更新分組,并將接收到的更新分組中的l s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道德講堂考核制度
- 安環(huán)管理考核制度
- 公司計量考核制度
- 庫房損壞考核制度
- 稽核崗位考核制度
- 固井公司考核制度
- 電工管理考核制度
- 節(jié)約獎罰考核制度
- 2025年四川煙草商業(yè)系統(tǒng)員工招聘管理與專業(yè)技術(shù)類崗位總及筆試參考題庫附帶答案詳解
- 2025年北京巴士傳媒股份有限公司招聘4人筆試參考題庫附帶答案詳解
- 肝性腦病的分級及護理
- 2025年湖北高考真題化學(xué)試題(原卷版)
- 2025年中考數(shù)學(xué)二輪復(fù)習(xí)專題一 數(shù)與式中的化簡與計算(含答案)
- T/CECS 10011-2022聚乙烯共混聚氯乙烯高性能雙壁波紋管材
- GA/T 2157-2024毛細(xì)管電泳遺傳分析儀
- 《胰高血糖素抵抗》課件
- 艾滋病實驗室課件
- (高清版)AQ 1056-2008 煤礦通風(fēng)能力核定標(biāo)準(zhǔn)
- 高中名校自主招生考試數(shù)學(xué)重點考點及習(xí)題精講講義上(含答案詳解)
- 論地理環(huán)境對潮汕飲食文化的影響
- 2023年安徽省中考數(shù)學(xué)試卷及答案詳解
評論
0/150
提交評論