版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 目 錄摘要1關鍵詞1abstract1key words11 引言12 路由器簡介12.1 什么是路由器12.2 路由器結構22.3 路由器分類22.4 路由器基本功能33 eigrp33.1 eigrp定義33.2 eigrp的特點43.3 eigrp路由協(xié)議對比43.4 eigrp距離54 dual54.1 本地計算64.2 擴散計算64.3 完成擴散計算64.4 保持活動的路由75 eigrp協(xié)議與ospf協(xié)議簡單比較76 eigrp路由協(xié)議的實現(xiàn)76.1 實現(xiàn)的總體框架76.2 全局數(shù)據結構86.3 接口鏈路檢測任務126.4 路由的插入與刪除12致謝12參考文獻12eigrp路由協(xié)
2、議分析計算機科學網絡工程專業(yè) 魏曉暉指導教師 吳俊華摘要:現(xiàn)如今,強大而豐富的網絡世界離不開路由協(xié)議的存在,而在路由協(xié)議中,eigrp路由協(xié)議則擔當了很重要的角色。首先介紹了路由器基本組成與結構,并且重點對eigrp路由協(xié)議進行了研究,分析其優(yōu)越性以及適用環(huán)境等。然后將eigrp路由協(xié)議與其他協(xié)議進行比較,形象對比突出了eigrp協(xié)議的優(yōu)點與特點。然后介紹了擴散更新算法dual,最后,系統(tǒng)的對eigrp路由協(xié)議進行了分析,并且完成了eigrp路由協(xié)議的實現(xiàn),eigrp數(shù)據包的接口檢測任務以及路由的插入與刪除等功能。關鍵詞:路由器 路由協(xié)議 dual eigrpeigrp routing pro
3、tocol analysis student majoring in network engineering wei xiaohui tutor wu junhuaabstract: now, the powerful and rich online world can not do without the presence of the routing protocol, routing protocol, eigrp routing protocols play a very important role. first introduced the basic composition an
4、d structure of router, and focusing on the eigrp routing protocol, analyze its advantages as well as the applicable environment. eigrp routing protocol is compared with other protocols, image contrast highlights the advantages and characteristics of eigrp protocol. dual (diffused update algorithm, d
5、iffusing update algorithm), and then introduced the system eigrp routing protocol analysis, and complete implementation of the eigrp routing protocol, eigrp packet interface detects the insertion and deletion of tasks and routing functions .key words:router;routing protocol;dual;eigrp;1 引言在信息化時代的今天,
6、強大的網絡系統(tǒng)對路由協(xié)議進行了考驗。各種路由器的協(xié)同工作,也是對路由協(xié)議的使用與實現(xiàn)提出了挑戰(zhàn)。而路由協(xié)議中,動態(tài)路由則顯得格外重要。本文對路由協(xié)議進行簡單介紹,并重點介紹eigrp的特點與實現(xiàn)方法。對dual(diffused update algorithm,擴散更新算法)的實現(xiàn)做出分析,以及eigrp的具體使用做出全面解析。2 路由器簡介2.1 什么是路由器路由器(router)是連接因特網中各局域網、廣域網的設備,它會根據信道的情況自動選擇和設定路由,以最佳路徑,按前后順序發(fā)送信號的設備。 路由器是互聯(lián)網絡的樞紐、“交通警察”。目前路由器已經廣泛應用于各行各業(yè),各種不同檔次的產品已成為
7、實現(xiàn)各種骨干網內部連接、骨干網間互聯(lián)和骨干網與互聯(lián)網互聯(lián)互通業(yè)務的主力軍。路由和交換之間的主要區(qū)別就是交換發(fā)生在osi參考模型第二層(數(shù)據鏈路層),而路由發(fā)生在第三層,即網絡層。這一區(qū)別決定了路由和交換在移動信息的過程中需使用不同的控制信息,所以兩者實現(xiàn)各自功能的方式是不同的。路由器是工作在osi參考模型第三層網絡層的數(shù)據包轉發(fā)設備。路由器通過轉發(fā)數(shù)據包來實現(xiàn)網絡互連。雖然路由器可以支持多種協(xié)議(如tcp/ip、ipx/spx、appletalk等協(xié)議),但是在我國絕大多數(shù)路由器運行tcp/ip協(xié)議。路由器通常連接兩個或多個由ip子網或點到點協(xié)議標識的邏輯端口,至少擁有1個物理端口。路由器根據
8、收到數(shù)據包中的網絡層地址以及路由器內部維護的路由表決定輸出端口以及下一跳地址,并且重寫鏈路層數(shù)據包頭實現(xiàn)轉發(fā)數(shù)據包。路由器通過動態(tài)維護路由表來反映當前的網絡拓撲,并通過與網絡上其他路由器交換路由和鏈路信息來維護路由表。2.2 路由器結構2.2.1 路由器基本組件路由器中負責執(zhí)行操作系統(tǒng)的指令是cpu,而防止ram中內容斷電丟失的隨機訪問存儲器 (ram)也起到了重要作用。路由器中還包括運行操作系統(tǒng)、運行配置文件、ip路由表、arp 緩存以及數(shù)據包緩存區(qū)等。而保存開機自檢軟件,存儲路由器的啟動引導程序的則是我們所說的rom,即只讀存儲器。路由器中不可缺少的bootstrap 指令以及基本的自檢軟
9、件也起到了重要作用。而存儲啟動配置非易失 ram (nvram)中則包括ip地址,路由協(xié)議,主機名等。平常所說的閃存則是運行操作系統(tǒng)(cisco ios)。interfaces擁有多種物理接口用于連接網絡。路由器接口分類包括廣域網接口、局域網接口以及配置接口。下面,以圖表方式,系統(tǒng)介紹路由器各組件之間的聯(lián)系:用戶接口dual uartcf存儲卡閃存默認為32mb啟動romnvram2mb或4mb閃存用戶接口dual uart128mb(可擴展至348mb)系統(tǒng)控制asiccpum860處理器fastethernet0/1fastethernet0/0插槽1hwic/wic/vwic插槽0hwi
10、c/wic/vwic圖1路由器各組件聯(lián)系圖2.2.2 分層模型1977年,國際標準化組織(iso)制定了開放系統(tǒng)互連基本參考模型(osi),osi參考模型采用分層結構技術,將整個網絡的通信功能分為職責分明的七層,由高到低分別是:應用層、表示層、會話層、傳輸層、網絡層、數(shù)據鏈路層、物理層。目前計算機網絡通信中采用最為普遍的tcp/ip協(xié)議吸收了osi標準中的概念及特征。tcp/ip模型由四個層次組成即應用層、傳輸層、網絡層、數(shù)據鏈路層+物理層。只有對等層才能相互通訊。一方在某層上的協(xié)議是什么,對方在同一層次上也必須采用同一協(xié)議。路由器就工作在tcp/ip模型的第三層網絡層,主要作用是為收到的報文
11、尋找正確的路徑,并把它們轉發(fā)出去。2.3 路由器分類當前路由器的分類方法有很多種,當然,各種分類方法有一定的關聯(lián),但是又并不是完全一致的。大致可以從以下幾個層次上分類:從結構上分,路由器可分為模塊化結構與非模塊化結構,通常中高端路由器為模塊化結構,低端路由器為非模塊化結構。 從網絡位置劃分,路由器可分為核心路由器與接入路由器。核心路由器位于網絡中心,通常使用高端路由器,要求快速的包交換能力與高速的網絡接口,通常是模塊化結構;接入路由器位于網絡邊緣,通常使用中低端路由器,要求相對低速的端口以及較強的接入控制能力。 從功能上劃分,路由器可分為通用路由器與專用路由器。一般所說的路由器為通用路由器。專
12、用路由器通常為實現(xiàn)某種特定功能對路由器接口、硬件等作專門優(yōu)化,例如接入路由器用作接入撥號用戶,增強pstn接口以及信令能力;vpn路由器增強隧道處理能力以及硬件加密;寬帶接入路由器強調寬帶接口數(shù)量及種類。 從性能上分,路由器可分為線速路由器以及非線速路由器。通常線速路由器是高端路由器,能以媒體速率轉發(fā)數(shù)據包;中低端路由器是非線速路由器,但是一些新的寬帶接入路由器也有線速轉發(fā)能力。 在標準的制定中,路由器從能力上區(qū)分可分為:高端路由器和低端路由器等類別,背板交換能力大于20gbit/s,包交換能力大于20mbit/s的路由器稱為高端路由器;包交換能力小于1mbit/s的路由器稱為低端路由器。以市
13、場占有率最大的cisco公司為例,12000系列為高端路由器,7500以下系列路由器為低端路由器。顯然上述劃分存在空檔:包交換能力1mbit/s以上20mbit/s以下的路由器沒有參照標準。按照標準系列,應當有中檔路由器規(guī)范。但是由于中檔路由器沒有特殊性,可以參照低端路由器或高端路由器,所以不再單獨另立標準。2.4 路由器基本功能路由器的一個作用是連通不同的網絡,另一個作用是選擇信息傳送的線路。選擇通暢快捷的近路,能大大提高通信速度,減輕網絡系統(tǒng)通信負荷,節(jié)約網絡系統(tǒng)資源,提高網絡系統(tǒng)暢通率,從而讓網絡系統(tǒng)發(fā)揮出更大的效益來。 從過濾網絡流量的角度來看,路由器的作用與交換機和網橋非常相似。但是
14、與工作在網絡物理層,從物理上劃分網段的交換機不同,路由器使用專門的軟件協(xié)議從邏輯上對整個網絡進行劃分。例如,一臺支持ip協(xié)議的路由器可以把網絡劃分成多個子網段,只有指向特殊ip地址的網絡流量才可以通過路由器。對于每一個接收到的數(shù)據包,路由器都會重新計算其校驗值,并寫入新的物理地址。因此,使用路由器轉發(fā)和過濾數(shù)據的速度往往要比只查看數(shù)據包物理地址的交換機慢。但是,對于那些結構復雜的網絡,使用路由器可以提高網絡的整體效率。路由器的另外一個明顯優(yōu)勢就是可以自動過濾網絡廣播。從總體上說,在網絡中添加路由器的整個安裝過程要比即插即用的交換機復雜很多。 一般說來,異種網絡互聯(lián)與多個子網互聯(lián)都應采用路由器來
15、完成。 路由器的主要工作就是為經過路由器的每個數(shù)據幀尋找一條最佳傳輸路徑,并將該數(shù)據有效地傳送到目的站點。由此可見,選擇最佳路徑的策略即路由算法是路由器的關鍵所在。為了完成;這項工作,在路由器中保存著各種傳輸路徑的相關數(shù)據路徑表(routing table),供路由選擇;時使用。路徑表中保存著子網的標志信息、網上路由器的個數(shù)和下一個路由器的名字等內容。路徑表可以是由系統(tǒng)管理員固定設置好的,也可以由系統(tǒng)動態(tài)修改,可以由路由器自動調整,也可以由主機控制。 3 eigrp3.1 eigrp定義eigrp是enhanced interior gateway routing protocol的縮寫即增強
16、內部網關路由線路協(xié)議。也翻譯為“加強型內部網關路由協(xié)議”。eigrp是cisco公司的私有協(xié)議。cisco公司是該協(xié)議的發(fā)明者和唯一具備該協(xié)議解釋和修改權的廠商。 eigrp結合了鏈路狀態(tài)和距離矢量型路由選擇協(xié)議的cisco專用協(xié)議,采用彌散修正算法(dual)來實現(xiàn)快速收斂,可以不發(fā)送定期的路由更新信息以減少帶寬的占用,支持appletalk、ip、novell和netware等多種網絡層協(xié)議。3.2 eigrp的特點eigrp是cisco的私有路由協(xié)議,它綜合了距離矢量和鏈路狀態(tài)兩者的優(yōu)點,它的特點使得eigrp在路由協(xié)議中擔當了重要角色:快速收斂:快速收斂是因為使用了散播更新算法,通過在
17、路由表中備份路由而實現(xiàn),也就是到達目的網絡的最小開銷和次最小開銷(也叫適宜后繼, feasible successor)路由都被保存在路由表中,當最小開銷的路由不可用時,快速切換到次最小開銷路由上,從而達到快速收斂的目的。鏈路狀態(tài)包(link-state packet,lsp)的轉發(fā)是不依靠路由計算的,所以在大型網絡中可以較為快速的進行收斂。它只宣告鏈路和鏈路狀態(tài),而不宣告路由,所以即使鏈路發(fā)生了變化,不會引起該鏈路的路由被宣告.但是鏈路狀態(tài)路由協(xié)議使用的是dijkstra算法,dijkstra(迪杰斯特拉)算法是典型的單源最短路徑算法,用于計算一個節(jié)點到其他所有節(jié)點的最短路徑。主要特點是以起
18、始點為中心向外層層擴展,直到擴展到終點為止。該算法比較復雜,并且占cpu和內存資源,eigrp采用的彌散更新算法(diffusing update algorithm),通過多個路由器并行的進行路由計算,可以在無環(huán)路產生的情況下達到快速的收斂的效果。減少帶寬占用:eigrp不作周期性的更新,它只在路由的路徑和速度發(fā)生變化以后做部分更新.當路徑信息改變以后,dual只發(fā)送那條路由信息改變了的更新,而不是發(fā)送整個路由表。和更新傳輸?shù)揭粋€區(qū)域內的所有路由器上的鏈路狀態(tài)路由協(xié)議相比,dual只發(fā)送更新給需要該更新信息的路由器。在wan低速鏈路上,eigrp可能會占用大量帶寬,默認只占用鏈路帶寬50%,
19、之后發(fā)布的ios允許使用命令ip bandwidth-percent eigrp來修改這一默認值。無縫連接數(shù)據鏈路層協(xié)議和拓撲結構:eigrp不要求對osi參考模型的2層協(xié)議做特別的配置。不像ospf、ospf對不同的兩層協(xié)議要做不同配置,比如以太網和幀中繼,eigrp能夠有效的工作在lan和wan中,而且eigrp保證網絡及不會產生環(huán)路(loop-free);而且配置起來很簡單;支持vlsm;它使用組播和單播,不使用廣播,這樣做節(jié)約了帶寬;它使用和igrp一樣的度的算法,但是是32位長的;它可以做非等價的路徑的負載平衡。3.3 eigrp路由協(xié)議對比在對eigrp路由協(xié)議進行分析時,先介紹一
20、下路由協(xié)議的距離向量算法與鏈路狀態(tài)算法以及兩者所用于的協(xié)議和特點,并進行比對:距離向量路由算法(bellman-ford routing algorithm),也叫做最大流量演算法(ford-fulkerson algorithm), 其被距離向量協(xié)議作為一個算法,如rip, bgp, iso idrp, novell ipx。用于igrp(interior gateway routing protocol,內部網關路由協(xié)議),rip(routing information protocol,路由信息協(xié)議)和bgp(border gateway protocol,邊界網關協(xié)議)等協(xié)議,每個路由
21、器只知道其鄰居提供的信息,路由器只用直接連接的鄰居提供的信息作出路由決策,路由器也只向直接連接的鄰居提供它所知道的路由信息,收到和發(fā)送的信息還可以因為安全原因或通信工程原因而進一步過濾。在距離向量路由算法中,相鄰路由器之間周期性地相互交換各自的路由表備份。當網絡拓撲結構發(fā)生變化時,路由器之間也將及時地相互通知有關變更信息。鏈路狀態(tài)路由算法(link state routing)要求每個參與該算法的結點都有完全的網絡拓撲信息,他們執(zhí)行以下兩項任務:第一,主動測試所有鄰結點的狀態(tài)。兩個共享一條鏈接的結點是鄰結點,他們連接到同一條鏈路,或者連接到同一廣播型物理網絡;第二,定期地將鏈路狀態(tài)傳播給所有其
22、他的結點(或稱路由結點)。用于ospf(open shortest path first,開放式最短路徑優(yōu)先)和isis(intermediate systemtointermediate system,中介系統(tǒng))等協(xié)議,一定網絡區(qū)域的所有路由器對該區(qū)域的拓撲有相同的了解,它對于網絡中各種設備的位置比距離向量有更全面的了解。eigrp使用的技術dual(擴散更新算法)類似于距離向量協(xié)議,但cisco公司稱它為平衡混合型,平衡混合型的意思是它同時具有距離向量和鏈路狀態(tài)算法的特點,其實eigrp的核心邏輯上是距離向量,但它傳輸拓撲信息的目的是像鏈路狀態(tài)一樣繪出網絡的地圖。因此使它比傳統(tǒng)距離向量協(xié)議
23、更優(yōu)秀:eigrp保存拓撲表中所有鄰居發(fā)來的所有路由,而不只是保存迄今為止收到的最佳路由,而rip則只保存迄今為止收到的最佳路由,放棄其余所有路由。由于eigrp不僅僅知道一個路由,因此在當前路由消失的同時能更快切換到替換路由,這也使得eigrp在多變而又不穩(wěn)定的網絡中起到重要作用。eigrp有自動查詢功能,在無法訪問目的地而又沒有替換路由時能對鄰居進行查詢。而運行傳統(tǒng)距離向量協(xié)議的路由器則是被動的等待鄰居尋找和報告更好的路由。由于匯聚過程(從路由丟失到重新得到路由的這個過程)是主動的而不是被動的(被動的等待路由超時),因此eigrp的匯聚過程可以和最佳鏈路狀態(tài)協(xié)議相媲美。3.4 eigrp距
24、離和其他協(xié)議相似,eigrp用距離(metrics)來度量到目的地的路由。eigrp擁有兩種距離:向量距離(vector metric)和復合距離(composite metric),這兩者之間是可以相互轉換的。向量距離是路由器到目的地子網的6個參數(shù)組成的向量,包括:帶寬、延遲、負荷、可靠性、步數(shù)和mtu(最小傳輸單元)。如下所示:vector metric:minimum bandwidth is 100000 kbittotal delay is 100 microsecondsreliability is 255255load is l255minimum mtu is 1500hop
25、count is 1復合距離是個整數(shù),只在路由器內部使用,不發(fā)給eigrp鄰居。它是為了方便在內部計算和比較。把向量距離轉化為復合向量可分兩步:posite metric =k1*bw+k2*bw(256-load)+k3*dlyposite metric=composite metric*k5(reliability+k4)(只用于k5不等于0時)此處:bw=(10000000bandwidth)*256dly=delay*256delay的單位為10微秒,bandwidth的單位為kbps。一般來說,k1和k3缺省為1,其它的因子缺省為0。k2、k4和k5是igrp時代的遺留產物。所以,缺
26、省復合距離是總延遲和最小帶寬倒數(shù)的和。k值可以改動,但要讓eigrp順利工作,eigrp鄰居之間的k值一定要相同。改變k值可以仿真與其他的路由協(xié)議相似的eigrp功能,具體如下:(1) 仿真rip,將所有接口的延遲設置成相等值,并將除k3以外的所有k值置0。(2) 仿真ospf,將接口延遲設置為ospf的成本,并將除k3以外的所有k值置0。(3) 選擇最小端對端帶寬的路由,將除k1以外的所有k值置為0。由此可見,eigrp路由協(xié)議的功能強大。4 dualeigrp的核心算法是dual(擴散更新算法),dual的工作過程能保證路由總是無環(huán)的。dual算法分為本地計算和擴散計算兩部分。這里要明確三
27、條基本dual規(guī)則:(1) dual規(guī)則1:路由器選擇新的后繼時,它將新報告距離告訴所有其他鄰居。(2) dual規(guī)則2:每次路由器選擇后繼時,它將一個抑制更新(無窮大)發(fā)給后繼。(3) dual規(guī)則3:抑制更新發(fā)給后繼能訪問的接口上的所有鄰居,除非關閉分割層面。關閉分割層面時,它只發(fā)給后繼。dual算法主要針對各種輸入事件作出反映,以下為eigrp對路由丟失和鏈路故障、鄰居丟失等輸入事件的處理方法:(1) eigrp用正常更新分組報告路由丟失,并將向量距離的delay部分設置為無窮。(2) eigrp把直接連接子網的丟失當作從路由器外部源收到的更新分組,delay部分設置為無窮。(3) ei
28、grp把鏈路丟失當作直接連接子網的丟失加上一個或幾個鄰居丟失。(4) eigrp把鄰居丟失當作來自該鄰居的更新分組,該鄰居的delay部分設置為無窮。4.1 本地計算本地計算是在被動狀態(tài)下,對新輸入的事件作出的反映,對路由進行評估,尋找最佳后繼和可行后繼。它可以啟動擴散計算,在擴散計算收到所有的應答報文后,收斂后,又開始本地計算。它也可能改變后繼,切換到可行后繼。這是在路由器本地立即進行的。路由保持被動狀態(tài)(不進行擴散計算),不涉及其他路由。4.2 擴散計算輸入事件后,eigrp路由器找不到替換路由,例如沒有替換路由、新的最佳路由經過報告增加路由距離的后繼、新的最佳路由不經過可行后繼時,將會進
29、行擴散計算,向所有鄰居詢問替換路由。擴散計算按下列步驟進行:(1) 路由表中將該路由設置為活動狀態(tài)(active)。這個標志防止循環(huán)查詢。(2) 根據鄰居表,建立應答狀態(tài)表,跟蹤鄰居的應答。并啟動定時器,保證網絡在規(guī)定的時間內匯聚。(3) 向所有的鄰居發(fā)出查詢請求。查詢分組包括新的臨時最佳向量距離,告訴鄰居網絡拓撲已改變。(4) 收集所有鄰居的應答,并存放在拓撲表中。各個鄰居的響應狀態(tài)用應答狀態(tài)表來跟蹤。(5) 在收到所有鄰居的應答后, 將路由狀態(tài)設置為被動狀態(tài),重新本地計算,在拓撲表中選擇最佳路由并在路由表中安裝新的最佳路由。(6) 如果需要,向鄰居發(fā)出更新報文,表示網絡拓撲的改變。而對于接
30、收到查詢報文的路由器而言,它按下列規(guī)則處理查詢:如果發(fā)送查詢的路由器原先提供了所查詢路由的拓撲信息,則查詢信息覆蓋前面從發(fā)送查詢的鄰居那里接受的信息。如果路由器收到拓撲表中所沒有的路由查詢,則它立即答復無限距離并停止查詢處理。如果路由已經活動,則路由器答復當前最佳路由并停止查詢處理。如果查詢不是來自后續(xù)者,則路由器答復當前最佳路由。如果只從后繼收到查詢而沒有其他eigrp鄰居,則路由答復無限距離。如果查詢來自后繼且當前路由器還有其他可行后繼,則路由器重新選擇到目的地的最佳路由。如果這個路由經過可行后繼,則路由器選擇替換路由并向查詢產生者報告新的最佳路由。如果沒有替換路由,或新最佳路由仍然指向發(fā)
31、送查詢的路由器,或新最佳路由不經過可行后繼,則路由器遞歸傳遞查詢給其它鄰居,即啟動擴散計算。4.3 完成擴散計算啟動查詢的路由器收到鄰居的應答時,它把收到的數(shù)據存放在拓撲表中,并標記應答表中的相應項目。收到所有的應答后,把路由標記設置為被動狀態(tài),又開始本地計算,選擇新最佳的路由,并在路由表中安裝新的最佳路由參與擴散計算的其他路由器可能還不知道最優(yōu)路由,因此還要將擴散計算結果重新告訴這些路由器,發(fā)更新包給他們。4.4 保持活動的路由由于擴散計算規(guī)則中,要求路由器從查詢的所有鄰居收到應答之后才能選擇新的最佳路由。在一些極端情形下,鄰居可能無法響應查詢。例如在鄰居出現(xiàn)故障時,鄰居路由器重新啟動,還沒
32、有通過hello機制,或者傳輸媒介擁塞,或者軟硬件出錯時。在這種情形下,啟動擴散計算的路由器無法完成計算。為了防止這種情況,eigrp確定了擴散計算允許的最長時間。當擴散計算超過規(guī)定的最長時間時,擴散計算提前退出,清除與無響應鄰居的相鄰性,然后繼續(xù)計算,就象這些鄰居應答了無限距離。退出擴散計算的路由稱為保持活動的路由(sia,struck inactive)。缺省的sia超時為3分鐘。5 eigrp協(xié)議與ospf協(xié)議簡單比較eigrp支持在同一共享媒介上運行幾個eigrp進程,因為每個eigrp分組中都包括as號;而ospf在同一共享媒介上只支持一個ospf進程。ospf只支持等成本負荷平衡,
33、而eigrp支持不等成本比例負荷平衡。eigrp可以根據優(yōu)先級的不同,進行自動匹配流量,而ospf則只有相同優(yōu)先級的,才能達到負載均衡的目的。對ospf進行配置和管理時,需要網絡分析員具有較高的網絡知識水平,而對于eigrp協(xié)議組建網絡時,路由器配置很簡單,不需要針對不同網絡接口類型而進行不同的配置。所以對于網絡分析員的水平要求不需要太高。ospf將網絡中所有改變傳遞給區(qū)域中每個路由器,而eigrp則只影響部分相關的路由器。這使得eigrp將占用更少的帶寬去完成相同的數(shù)據傳遞與操作。ospf顯然有更健全的hello協(xié)議,因為它先驗證雙向訪問性再建立相鄰性,但eigrp的hello協(xié)議在公用子網
34、上的鄰居有不同定時要求時更容易適應。ospf能很好地處理有些路由器無法對付網絡改變量的環(huán)境,這些路由器可能錯誤地路由通信,但網絡其他部分不受影響。在eigrp中。單個錯誤工作或過載路由器就可能因為sia事件而使整個網絡停頓。eigrp的收斂時間對比與ospf有明顯的減少,而eigrp傳輸協(xié)議在適應不同鄰居響應時間和損失性鏈路時要比ospf好得多。ios版本的eigrp還能使網絡操作員比使用ospf相關show命令更好地監(jiān)視鄰居和響應性。盡管跟蹤sia事件是個困難的任務,但至少eigrp show命令允許一步步找出潛在瓶頸,最終找出不良路由器。而ospf則沒有類似的機制。6 eigrp路由協(xié)議的
35、實現(xiàn)6.1 實現(xiàn)的總體框架eigrp路由協(xié)議是在已開發(fā)的路由器上實現(xiàn)的,它是基于ppc的芯片,在vxworks平臺下開發(fā)的。此路由器已有rip、ospf等路由協(xié)議和ppp、hdlc、framerelay、ethernet等鏈路協(xié)議。該路由器有四個串口和一個網口,eigrp工作在ip上層,與tcp同層,協(xié)議號為88??紤]到這是網絡編程,傳統(tǒng)上可以采用raw socket套接字來進行收發(fā)數(shù)據包,但考慮到與原先開發(fā)出來的ospf協(xié)議兼容,采用直接注冊到ip層,調用ip層的輸出函數(shù)發(fā)送eigrp的數(shù)據報,接收數(shù)據包由注冊到內核的通知函數(shù)來處理。本實現(xiàn)總共啟動三個任務,分別是主循環(huán)任務、定時器任務和接口
36、鏈路檢測任務,由主循環(huán)任務來主控,再加上用戶配置shell任務和注冊到內核的eigrp數(shù)據包通知函數(shù),這四個任務和通知函數(shù)采用vxworks提供的消息隊列(message queue)來進行任務間通信。主循環(huán)任務主要處理eigrp協(xié)議的初始化,它包括各種接口表,拓撲表,eigrp進程信息表的初始化,創(chuàng)建消息隊列。然后讀消息隊列,讀到后,分配消息到相應的消息處理程序,等待消息處理程序返回,再繼續(xù)讀消息,一直讀到消息隊列中無消息時,阻塞掛起。主循環(huán)任務由用戶配置shell任務啟動,在用戶開啟eigrp路由協(xié)議時啟動。在用戶關閉eigrp路由協(xié)議時,自行退出。定時器任務主要產生各種定時信息,比如he
37、llo報文的定時發(fā)送,鄰居保持定時器超時的監(jiān)測,監(jiān)測可靠傳輸報文的應答超時,如查詢時未應答的超時重發(fā)等,保持活動路由(sia)的超時監(jiān)測。接口鏈路檢測任務監(jiān)測接口鏈路的通、斷狀態(tài),便于及時知道鄰居的復位和相關接口路由的改變。接口鏈路檢測任務和定時器任務是由主循環(huán)任務產生和刪除的。用戶配置shell任務主要處理用戶對eigrp協(xié)議的配置。比如eigrp進程的啟動或關閉、接口的關閉、帶寬或延遲的改變,hello定時發(fā)送間隔的改變等。eigrp數(shù)據包通知函數(shù)主要是接收eigrp數(shù)據包。它是由主循環(huán)任務注冊到內核的,在主循環(huán)任務退出前,取消注冊,也就取消了通知函數(shù)的作用。它相當于一個接收eigrp數(shù)據
38、包的任務。定時器任務、接口鏈路檢測任務、用戶配置shell任務和eigrp數(shù)據包通知函數(shù)并不直接處理各種輸入事件,只是根據不同的輸入事件來產生不同的消息,通過消息隊列傳遞給主循環(huán)任務,由主循環(huán)任務安排相應的消息處理程序來處理不同的輸入事件。6.2 全局數(shù)據結構6.2.1 消息隊列在本實現(xiàn)中,消息隊列為各任務提供通信機制。用戶配置shell任務、eigrp接收包的通知函數(shù)、定時器任務和接口鏈路檢測任務發(fā)送消息,而主循環(huán)接受消息。考慮到效率,減小拷貝數(shù)量,消息隊列中傳遞的是指針,而不是具體的內容,這個指針指向具體的內容。例如在傳遞eigrp數(shù)據包時,這種方式可避免多次拷貝,加快處理速度,提高效率。
39、但需注意的是:被傳遞指針指向的內存的釋放,避免內存泄漏。由于消息發(fā)送到處理有一個處理時間,因此如果在短時間內有很多消息時,那么消息就需要在消息隊列中排隊。本消息隊列提供優(yōu)先級服務,對于緊急事務消息,在發(fā)送時選取緊急標志(msg_pri_urgent),可被主循環(huán)優(yōu)先接收,優(yōu)先處理。例如用戶信息顯示和整個eigrp路由協(xié)議進程的關閉等消息,這樣處理在于讓用戶配置shell一敲入命令,馬上就能得到顯示,不至于有很大的延遲,讓用戶等待很長時間。對于eigrp進程關閉消息的優(yōu)先,可避免一些不需要處理的消息,因為eigrp進程馬上就要關閉,處理了也沒多大用處。因此在eigrp主循環(huán)任務結束刪除消息隊列時
40、,要把未處理的消息一一讀出來,釋放這些消息中指針指向的內存,因為本消息隊列傳遞的是指針,需要釋放這些指針指向的內存。另外,在發(fā)送消息時,選擇超時timeout標志時,選擇no_wait,不等待發(fā)送成功就可以返回。因為考慮到eigrp接收包處理程序,這是一個內核程序,不能有很大的延遲。在用戶配置shell任務中,有延遲會造成用戶shell不連貫,影響用戶的使用。這樣實現(xiàn)就可能造成有些消息沒有發(fā)送成功,但只要把消息隊列的長度配置到一個比較能接受的長度,就可忽略這個問題。在接受消息時,選擇超時timeout標志時,選擇wait_forever,在消息隊列無消息時,主循環(huán)就阻塞,要一直讀到有消息為止。
41、6.2.2 eigrp接口表eigrp接口表管理著哪些接口運行eigrp協(xié)議,并儲存這些接口上的鄰居。在這里沒有直接用鄰居表,因為用接口表更為方便直接。如要查詢鄰居,則從相應的接口表中的鄰居鏈表來查詢。接口表里還有接口的各種信息,如帶寬、延遲、當前的狀態(tài)等。它的數(shù)據結構如下:struct eigrp_interface intfnum_link;struct eigrp_interfaceuint tab_state; 接口是否運行eigrpuint group_id; 接口運行所在的自治域組uint no_recv; 接口過濾uint no_send; 接口過濾uint state; 接e1
42、鏈路的狀態(tài)uint auto_sys_num;eigrp的自治域號word mtu; 接口的mtuuint type; 接口的傳輸類型,比如點對點,廣播ipaddr addr; 接口的地址ipaddr mask; 接口的地址掩碼uint hello interval;hello的時間間隔uint hold time;保持間隔uint hello timer; 用于定時器處理uint k1,k2,k3,k4,k5; 接口的k值uint seq; 發(fā)送的序列號uint bandwidth;接口的帶寬uint delay;接口的延遲char auth key10; 驗證密碼uint auth fla
43、g; 驗證開啟標志structifnet*ifnet;接口在內核的鏈路指針struct eigrp neighbor*nb head; 接口維持的鄰居表;在這里,接口數(shù)目num link可以改變,在于用戶的配置。在本路由器七有四個串口和一個網口,每個串口都可以運行幀中繼frame-relay,而幀中繼中有子接口的概念,這樣各個運行幀中繼的接口可有八個子接口,這樣加上網口,一共最多33個接口。但就目前的網絡而言,幀中繼用的很少了,并考慮到本路由器的用途(作為接入路由器),即使運行幀中繼,也一般只用主接口,不用另外的七個子接口,這樣一般來說總共五個接口。但為了保持以后的兼容性,在設計上,我們考慮了
44、幀中繼子接口的問題。我們把常用的接口放在接口表的前面。在不用幀中繼子接口時,可把num_link改小為5,減小空間,也加快處理速度。以下為設備與序號的對應關系:序號設備e0序號w2.1-w2.7w1.1-w1.7s1.1-s1.7s2.1-s2.7w2w1s2s126-3219-2512-185-1143210設備圖2 設備與序號對應關系e0為網口,只有一個接口,eigrp協(xié)議不支持以太網的子接口。s1、s2、w1、w2為串口1、串口2、串口3、串口4。s1.1-s1.7為運行幀中繼的串口1的子接口,其他類似。開始筆者考慮用鏈表而不用數(shù)組來動態(tài)實現(xiàn)接口表,鏈表可以節(jié)省空間,不需要一一匹配,但鏈
45、表查找比較慢,添加、刪除也容易出錯。因為本實現(xiàn)中接口表的查找比較頻繁,接口的關閉和開啟也比較頻繁,采用數(shù)組就可避免以上問題,通過接口的序號馬上就能查到接口表,更改數(shù)組中的標志就可完成接口的關閉和開啟。這里的鄰居表掛在接口表中,采用鏈表形式,是因為鄰居數(shù)不確定。這里的下層鏈路指針ifnet是為了發(fā)送eigrp包準備的,要慎用,要與接口狀態(tài)鏈路狀態(tài)state結合起來用。因為在本路由器實現(xiàn)中,接口鏈路掛到內核時,ifnet指針是隨機分配的。在接口鏈路斷了時,應把ifnet置為空(null),重新連接時,置為相應的ifnet結構指針。6.2.3 eigrp拓撲表eigrp的拓撲表不是ospf那樣的整個
46、網絡的拓撲結構,是鄰居發(fā)送過來的拓撲信息和自己本地網絡的拓撲信息,但也很龐大,因此本拓撲以目的地地址為導向,采用哈希(hash)表機制,來存儲拓撲表信息。拓撲信息有內部和外部之分,都要考慮到,具體如下:struct eigrp_top *eigrp_tophash_n;struct eigrptopuint in ext;內部路由、外部路由uint ext_prot; 外部路由的協(xié)議uint ext_prot_flag; 外部路由的標志uint group;運行eigrp協(xié)議所在的自治域組uint ext_metric;外部路由的距離uint redis_flag;重分布的標志ipaddr d
47、est_addr; 目的地地址ipaddr dest_mask;目的地掩碼uint local_dis;uint dest_state; 目的地是否為活動狀態(tài)uint retry_flag;重傳標志uint query_counter; 向多少個鄰居數(shù)發(fā)送查詢包uint update_counter;向多少個鄰居數(shù)發(fā)送更新包uint reply_counter; 向多少個鄰居數(shù)發(fā)送應答包uint active_timer; 用于保持活動定時器uint dest_fd; 最佳距離uint dest_fc: 可行后繼條件uint as_num; 自治域號uint sr_id; 后繼在后繼表中的索引
48、uint bw_min; 最小帶寬uint delay_sum 最小延遲;uint ad bw; 報告帶寬uint ad delay; 報告延遲uint acttimestamp;開始活動的時間struct fc_sr fesb_srnum_fs;后繼表struct outstanding_nb *outstanding_nb;未處理的鄰居struct eigrp top*next_p;下個拓撲信息;哈希機制為:把目的地地址按點分地址分為4個部分,然后相加,模255,得到哈希值。以此哈希值為索引,找到相應的拓撲鏈表,再比較目的地地址和掩碼,查詢到所需的拓撲信息。如:192+168+0+0=36
49、0360mod255=105以哈希值105為索引得到eigrp_top105拓撲鏈表,這個拓撲鏈表是所有哈希值為105的拓撲鏈,然后在鏈表中查找地址為的那一段拓撲信息。這樣作,既節(jié)省存貯空間,查找速度又快。在每個拓撲信息罩,還有后繼表,表示從這些鄰居罩得到有關此目的地的拓撲信息。因為eigrp路由協(xié)議需要保存從所有的鄰居得到的拓撲信息,方便直接選取替換路由。后繼表采用數(shù)組的形式,有個數(shù)限制,這里還有待商榷,可以考慮鏈表的形式。6.2.4 eigrp進程運行表eigrp協(xié)議可以讓多個eigrp進程同時運行,因此需建立一個表來保存其運行狀態(tài)。由于各個eigrp協(xié)議的運行自治域號是隨機的,不連續(xù),不
50、便于管理和訪問。筆者采用自治域組號來連續(xù)表示自治域號,以自治域組號group_id來索引自治域號as_nurn。具體如下:struct eigrp_tab eigrp_tabnum_group;struct eigrp_tab uint off_on; 開啟標志uint as_num;自治域號uint rd; 重分發(fā)類型uint no_auto;是否自動匯總uint sia_timer;保持定時器時間uint distance_int;內部路由管理等級uint distance_ext;外部路由管理等級;6.2.5 eigrp狀態(tài)表eigrp狀態(tài)表存儲各個eigrp進程的一些統(tǒng)計信息,便于跟蹤
51、調試。如收、發(fā)包的個數(shù)等信息。6.2.6 重傳隊列在發(fā)送可靠傳輸數(shù)據包時,在得到對方的應答之前,需保存自己的發(fā)送數(shù)據,重傳隊列就是這種保存實體,每當發(fā)送一個可靠傳輸數(shù)據包時,把它掛到重傳隊列中,如果在規(guī)定的時間內得到它的應答,則從重傳隊列中刪除相應的數(shù)據包,如果沒有得到它的應答,則重發(fā)該數(shù)據包,該重發(fā)時間由定時器來監(jiān)視。重傳隊列采用鏈表機制,它包括發(fā)送地址和發(fā)送信息。這里需注意的是:在第一次發(fā)送數(shù)據包時,很可能是組播,而第二次發(fā)送就是單播,因此掛到重傳隊列中的數(shù)據包的發(fā)送地址均為單播地址。6.2.7 eigrp數(shù)據包通常情況下,編譯器為了高效的存取結構成員,會在結構中插入一些字節(jié),使各個成員都
52、放置在以某種方式對齊的地址上。但是如果結構表達的是需要發(fā)送的數(shù)據幀時,這樣反而會導致數(shù)據幀的字段位置改變??梢越咕幾g器gcc的這種行為,方法是在結構定義的結束大括號之過后添加_attribute_(packed),就可保證數(shù)據結構按定義的方式存貯。這種方式處理的結構有struct eigrp_header,struct general_tlv,struct ip_inter_tlv,struct ip_exter_tlv,這些都是數(shù)據包的定義結構。調用eigrp_attach()函數(shù)來注冊eigrp協(xié)議,分配一個新的protosw數(shù)據空間,在整個新的protosw數(shù)據結構的函數(shù)指針只填寫了p
53、r_input,指向eigrp_input()(eigrp數(shù)據包輸入處理函數(shù)),其他的指針均賦值為null。這樣就限制了eigrp協(xié)議不處理icmp報文,不能創(chuàng)建eigrp之上的socket套接字,曾經關心icmp報文的主要原因是icmp可以報告接口關閉,試驗的結果是確實可以報告,但對接口重新啟動卻沒有任何反應。實際上,利用路由域(pf_route)的socket套接字監(jiān)聽接口狀態(tài)變化的消息更可靠,也更完善,因此eigrp不需要再接收處理icmp報文。eigrp協(xié)議的protosw數(shù)據結構中其它的函數(shù)指針為null,在使用中并不存在危險。根據bsd的源代碼,這些指針當中,系統(tǒng)不加檢驗就調用的只
54、是pr_input()和pr_usrreq(),對eigrp而言,前者指向eigrp_ input() ,而后者只是在socket相關的調用中用到,本實現(xiàn)不需要在eigrp協(xié)議上創(chuàng)建socket套接字,因此很安全。6.3 接口鏈路檢測任務在接口鏈路發(fā)生改變時,eigrp協(xié)議會迅速改變到該目的地的路由。而本路由器并沒有這種接口鏈路改變的通知機制,為了和下層鏈路協(xié)議分離,筆者采用一個socket任務,用路由域(pf route)的socket來監(jiān)聽接口鏈路狀態(tài)變化。因此在vxworks內核裁減時,一定要包含該路由域選項。rt_socket_fd=socket(pf_route,sock_raw,0
55、);需要注意一點,socket套接字是在主控任務中創(chuàng)建的,然后傳遞給接口鏈路檢測任務,而不是由接口鏈路檢測任務自行創(chuàng)建路由域socket。因為由接口鏈路任務自行創(chuàng)建socket可能失敗,而此時唯一的選擇就是退出任務,因此對主任務而言,可能出現(xiàn)task spawn()(產生一個任務)調用成功但接口任務卻沒有真正啟動,要發(fā)現(xiàn)這種情況也比較困難。其次接口任務由主任務刪除,這樣就沒有機會關閉socket,占用了系統(tǒng)資源。采用傳入參數(shù)的方式,主任務可以根據socket創(chuàng)建成功與否決定是否啟動接口檢測任務,刪除任務后也可以關閉創(chuàng)建的socket。6.4 路由的插入與刪除一般來說,路由選取過程選取到目的地損
56、耗最小的路徑,即距離最短。但在本地接口網絡的路由選取上選擇此接口作為下一跳接口。因為本地連接子網的路由的管理等級(administrative distance)較短。本地連接的管理等級為0,eigrp路由選擇過程對內部和外部路由設置了不同的管理等級,缺省內部路由為90,外部路由為170,因此優(yōu)先考慮本地接口路由。致謝 豐富而又充實的大學生活即將畫上句號,回首過去,我不但在學習和生活上感受良多,而且在思想認識上,更是受益匪淺。在此,首先要感謝我的導師吳俊華老師,在大學的幾年里,她對我的耐心教導和關懷,都是我進步的動力,也是我順利完成學位論文的基礎與源泉。吳老師不僅學識淵博,而且理論與實踐功底都
57、非常深厚,并且對待工作以及科研教學更是一絲不茍,堅持不懈,是我終身的啟迪老師。生活中,吳老師和藹可親,對待學生想對待自己的孩子一樣,鼓勵我,指導我,在此,我謹向我的啟迪導師表示最誠摯的敬意和由衷的感激。感謝曲阜師范大學計算機科學學院的領導和老師們,感謝您們對我的教導、幫助和鼓勵。感謝我的父母對我多年的養(yǎng)育,謝謝您們,是您們在我成長的路上鋪墊基石,是您們對我無微不至的關愛與呵護。最后,感謝我的母校曲阜師范大學,感謝百忙之中審查我論文的各位老師以及所有關心和幫助我的老師、同學和朋友們。參考文獻1 徐利大眾科技j中文科技期刊數(shù)據庫,2009,3:23-242 思科網絡實驗室路由交換實驗指南m2010
58、:2-63 華為3com技術有限公司網絡學院教材m杭州:華為3com培訓中心,2009:9-244 劉曉輝網絡安全設計,配置與管理大全m電子工業(yè)出版社,2009:144-1495 李玉峰路由器緩存需求j軟件學報,2008:49-536 張小平可擴展路由器j軟件學報,2008:27-287 徐明偉路由器分布式控制研究綜述j電子學報,2010:45-498 王芳路由器訪問控制列表及其應用技術研究d解放軍信息工程大學,2007:112-1159 趙清泉eigrp協(xié)議剖析j硅谷,2008,1:5-810 龍芳,黃進勇基于opnet仿真的eigrp和ospf路由協(xié)議性能分析j電子技術,2010,11:3
59、3-3811 席東cisco路由協(xié)議eigrp的分析j華章,2012,4:2-512 王秋艷,朱民eigrp路由協(xié)議的研究與分析j中國科技信息,2011,18:4-5-下面是贈送的excel操作練習 不需要的下載后可以編輯刪除(excel 2003部分)7 公式和函數(shù)l (1)打開當前試題目錄下文件excel-10.xls;(2)利用函數(shù)計算每個人各階段總成績,并利用函數(shù)計算各階段的平均成績;(3)“平均成績”行數(shù)字格式都為帶一位小數(shù)(例如0.0)格式;(4)同名存盤。步驟:n 文件在各階段總成績單元格內,點插入,點函數(shù),在對話框中選擇求和函數(shù)“sum”,在對話中number1內點右側的按鈕,將出現(xiàn)另外一個對話框,在文件中選擇需要求和的單元格,然后點該對話框的右側按鈕,點確定(完成一個總成績求和后,利用填充柄完成其他的總成績求和,或者重復上面的順序)在平均成績單元格內,點插入,點函數(shù),選擇算術平均值函數(shù)average,出現(xiàn)對話框后,采用求和時的相同方法,完成操作選中平均成績行,點右鍵點設置單元格,點數(shù)字,在分類項下點數(shù)值,設小數(shù)位為1,n 確定保存l (1)打開當前試題目錄下文件excel-13.xls;(2)根據工作表中給定數(shù)據,按“合計=交通費+住宿費+補助”公式計算“合計”數(shù),并計算交通費、住宿費和補助的合計數(shù);(3)所有數(shù)字以單元格格式中貨幣類的“¥”貨幣符號、小
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GH/T 1430-2023農民專業(yè)合作社信用信息數(shù)據元
- 《汽車結構認識》課件
- 單位管理制度合并選集【職員管理】十篇
- 單位管理制度范例選集職工管理十篇
- 單位管理制度呈現(xiàn)合集職工管理十篇
- 單位管理制度呈現(xiàn)大合集員工管理
- 《店鋪運營管理》課件
- 《生藥分析1》課程實施大綱
- 某科技園物業(yè)管理方案
- 2024年供電公司安全稽查總結
- 錨桿框格梁施工技術交底
- 深圳分區(qū)地圖可移動編輯
- 2023年新版烏斯特統(tǒng)計公報即將發(fā)布
- 污水處理廠安全生產風險分級管控體系方案全套資料匯編完整版
- 人教部編版三年級語文上冊古詩詞日積月累默寫模板
- 高危急性胸痛的快速診斷和誤診病案分析
- (完整版)綜合醫(yī)院康復醫(yī)學科建設與管理指南
- GB/T 41649-2022木制玩具中甲醛釋放量的測定燒瓶法
- JJF 1384-2012開口/閉口閃點測定儀校準規(guī)范
- GB/T 33720-2017LED照明產品光通量衰減加速試驗方法
- 教師政治紀律方面存在的問題及整改措施集合5篇 教師政治紀律方面存在的問題及整改措施怎么寫
評論
0/150
提交評論