設(shè)計任務(wù)書-施工圖設(shè)計(模板)及Rip-2協(xié)議_第1頁
設(shè)計任務(wù)書-施工圖設(shè)計(模板)及Rip-2協(xié)議_第2頁
設(shè)計任務(wù)書-施工圖設(shè)計(模板)及Rip-2協(xié)議_第3頁
設(shè)計任務(wù)書-施工圖設(shè)計(模板)及Rip-2協(xié)議_第4頁
設(shè)計任務(wù)書-施工圖設(shè)計(模板)及Rip-2協(xié)議_第5頁
已閱讀5頁,還剩41頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第一章RIP協(xié)議簡介 3第二章 V-D算法的介紹 41 路由表的建立 42 距離向量算法 5第三章協(xié)議中的特殊處理 81 對相同路由開銷的的處理 82 對過時路由的處理 83 布局改變時的處理 9第四章RIP協(xié)議的實現(xiàn) 10第五章傳統(tǒng)RIP協(xié)議 121 RIP協(xié)議的報文格式 122 協(xié)議處理 14第六章RIP-2的對撥號網(wǎng)的支持 161 對撥號網(wǎng)路由的處理 162 報文格式的擴展 17第七章RIP-2和其它路由協(xié)議的配合 18

第一章RIP協(xié)議簡介 路由器的關(guān)鍵作用是用于網(wǎng)絡(luò)的互連,每個路由器與兩個以上的實際網(wǎng)絡(luò)相連,負責(zé)在這些網(wǎng)絡(luò)之間轉(zhuǎn)發(fā)數(shù)據(jù)報。在討論IP進行選路和對報文進行轉(zhuǎn)發(fā)時,我們總是假設(shè)路由器包含了正確的路由,而且路由器可以利用ICMP重定向機制來要求與之相連的主機更改路由(具體請看IP部分的相應(yīng)章節(jié))。但在實際情況下 ,IP進行選路之前必須先通過某種方法獲取正確的路由表。在小型的、變化緩慢的互連網(wǎng)絡(luò)中,管理者可以用手工方式來建立和更改路由表。而在大型的、迅速變化的環(huán)境下,人工更新的辦法慢得不能接受。這就需要自動更新路由表的方法,即所謂的動態(tài)路由協(xié)議,RIP是其中最簡單的一種。RIP(routeinformationprotocol)協(xié)議是基于V-D算法(又稱為Bellman-Ford算法)的內(nèi)部動態(tài)路由協(xié)議。V-D是Vector-Distance的縮寫,因此V-D算法又稱為距離向量算法。這種算法在ARPARNET早期就用于計算機網(wǎng)絡(luò)的路由的計算。RIP協(xié)議在目前已成為路由器、主機路由信息傳遞的標準之一,就因為這個原因,RIP協(xié)議被大多數(shù)IP路由器商業(yè)賣主廣泛使用。 先大致解釋一下什么是內(nèi)部路由協(xié)議。由于歷史的原因,當前的INTERNET網(wǎng)被組成一系列的自治系統(tǒng),各自治系統(tǒng)通過一個核心路由器連到主干網(wǎng)上。而一個自治系統(tǒng)往往對應(yīng)一個組織實體(比如一個公司或大學(xué))內(nèi)部的網(wǎng)絡(luò)與路由器集合。每個自治系統(tǒng)都有自己的路由技術(shù),對不同的自治系統(tǒng)路由技術(shù)是不相同的。用于自治系統(tǒng)間接口上的單獨的協(xié)議稱為外部路由器協(xié)議,簡稱EGP(ExteriorGatewayProtocol)。用于自治系統(tǒng)內(nèi)部的路由協(xié)議稱為內(nèi)部路由器協(xié)議,簡稱IGP(InteriorGatewayProtocol)。 內(nèi)部路由器與外部路由器協(xié)議EGP不同,外部路由協(xié)議只有一個,而內(nèi)部路由器協(xié)議則是一族。各內(nèi)部路由器協(xié)議的區(qū)別在于距離制式(distancemetric, 即距離度量標準)不同,和路由刷新算法不同。RIP協(xié)議是最廣泛使用的IGP之一,著名的路徑刷新程序Routed便是根據(jù)RIP實現(xiàn)的。RIP協(xié)議被設(shè)計用于使用同種技術(shù)的中型網(wǎng)絡(luò),因此適應(yīng)于大多數(shù)的校園網(wǎng)和使用速率變化不是很大的連續(xù)線的地區(qū)性網(wǎng)絡(luò)。對于更復(fù)雜的環(huán)境,一般不使用RIP協(xié)議。 在實現(xiàn)時,RIP作為一個系統(tǒng)長駐進程(daemon)而存在于路由器中,它負責(zé)從網(wǎng)絡(luò)系統(tǒng)的其它路由器接收路由信息,從而對本地IP層路由表作動態(tài)的維護,保證IP層發(fā)送報文時選擇正確的路由,同時廣播本路由器的路由信息,通知相鄰路由器作相應(yīng)的修改。RIP協(xié)議處于UDP協(xié)議的上層(如圖1.1),RIP所接收的路由信息都封裝在UDP的數(shù)據(jù)報中,RIP在520號端口上接收來自遠程路由器的路由修改信息,并對本地的路由表做相應(yīng)的修改,同時通知其它路由器。通過這種方式,達到全局路由的有效。 RIP協(xié)議分為傳統(tǒng)RIP協(xié)議、需求RIP協(xié)議(DemandRIP)和觸發(fā)RIP,而傳統(tǒng)RIP協(xié)議又分為RIP-1,和RIP-2兩個版本。需求RIP 協(xié)議和觸發(fā)RIP協(xié)議與傳統(tǒng)RIP協(xié)議的區(qū)別在于需求RIP協(xié)議和觸發(fā)RIP協(xié)議支持對撥號網(wǎng)的路由的維護,增添了幾種相應(yīng)的報文命令,增加了報文發(fā)送確認方式。quidway2501上目前的RIP-2不是采取需求RIP協(xié)議和觸發(fā)RIP的方式,但為了支持撥號網(wǎng)的路由的維護2,也汲取了這兩種協(xié)議的一些處理方式。其中主要改進在于對撥號網(wǎng)的路由進行處理時,并不象對局域網(wǎng)的路由一樣設(shè)置一定的生存周期,當然為此而付出的代價也是很大的。第二章 V-D算法的介紹路由表的建立IP路由表需要一個建立過程,它的建立過程指的是它的初始化過程。任何路由器啟動時,都必須首先獲取一個初始路由表。不同的網(wǎng)絡(luò)操作系統(tǒng),獲取初始路由表的方式不同,總的來說,有三種方式。第一種,路由器系統(tǒng)啟動時,從外存讀入一個完整的尋徑表,長駐內(nèi)存使用;系統(tǒng)關(guān)閉時再將當前路由表(可能經(jīng)過刷新),寫回外存,供下次使用。第二種,系統(tǒng)啟動時,只提供一個空表,通過執(zhí)行顯式命令(比如批處理文件中的命令)來填充。第三種,系統(tǒng)啟動時,從與本路由器直接相連的各網(wǎng)絡(luò)地址中,推導(dǎo)出一組初始路由,當然通過初始路由只能訪問相連網(wǎng)上的主機。顯見,無論哪種情況,初始路由表總是不完善的,需要不斷地運行過程中加以補充,這就是路由表的刷新。RIP正是用于路由表的維護和刷新,RIP協(xié)議中的路由刷新算法是距離向量算法,它采取的路由表的初始化方式是上述三種中的最后一種。距離向量算法 距離向量算法的思想很簡單:所有參加RIP協(xié)議的路由器周期性地向外廣播路由刷新報文,主要內(nèi)容是由很多路由項(entry)組成的路由刷新報文。對路由來說,最主要的內(nèi)容是目的地址和下一跳地址(nexthop)。對動態(tài)路由協(xié)議來說,為了找到本協(xié)議概念中的最佳路由,還必須注意路由的開銷(metric)。所以路由項主要包括了目的地址、下一跳地址和路由開銷。其他的如路由標記(tag)等內(nèi)容在講報文格式時,將具體講到。 在設(shè)計時,每個路由器的另外RIP管理了一個路由數(shù)據(jù)庫,該路由數(shù)據(jù)庫為系統(tǒng)中所有可能的信宿包含一個路由項,并為每個信宿保留如下信息:目的地址:在算法的IP實現(xiàn)中,這指的是主機或網(wǎng)絡(luò)的IP地址。下一跳地址:到信宿的路由中的第一個路由器。接口:用于到下一跳物理網(wǎng)絡(luò)。metric值:一個數(shù),指明本路由器到信宿的開銷。定時器:路由項最后一次被修改的時間。路由標記:區(qū)分路由為內(nèi)部路由協(xié)議的路由還是外部路由協(xié)議的路由的標記。數(shù)據(jù)庫由與系統(tǒng)直接相連的實體的描述初始化,通過從相鄰路由器受到的報文修改維護。 路由器間交換的最重要的信息是修改報文,參加路由維護計劃的路由器發(fā)送當前存在于實體的描述路由數(shù)據(jù)庫的路由修改報文。僅通過相鄰路由器間交換路由信息是可以維護整個系統(tǒng)的最佳路由的,這在接下來的討論中會逐步得到證明。 距離向量算法總是基于一個這樣的事實:路由數(shù)據(jù)庫中的路由已是目前通過報文交換而得到的最佳路由。同時,報文交換僅限于相鄰的實體間,也就是說,實體共享同一個網(wǎng)絡(luò)。當然,要定義路由是最佳的,就必須有衡量的辦法,這就用到前面所說的“metric”。RIP簡單的網(wǎng)絡(luò)中,通常用可行路由所經(jīng)的路由器數(shù)簡單地計算metric值。在復(fù)雜的網(wǎng)絡(luò)中,metric一般代表該路由傳輸數(shù)據(jù)報的延遲或其它發(fā)送開銷。令D(i,j)代表從實體i到實體j的最佳路由的metric值,d(i,j)代表從i直接到j(luò)的開銷,因為開銷是可加的,算法中最佳路由如此獲取表示: D(i,i)=0, 對所有的iD(i,j)=MIN[d(i,j)+D(k,j), 當i不等于k時實體i從相鄰路由器k收到k到j(luò)的開銷的估計D(i,j),i將D(i,j)加上i到k的開銷估計d(i,j),i比較從所有相鄰路由器得到的數(shù)值,取得最小數(shù),就得到了它到j(luò)的最佳路由。具體地說,距離向量算法如下所述: 首先,路由器剛啟動時,對距離向量路由表(V-D路由表)進行初始化,該初始化路由表包含所有去往與本路由器直接相連的網(wǎng)絡(luò)的路徑。由于去往直接相連的網(wǎng)絡(luò)不經(jīng)過中間路由器,所以初始化的V-D路由表中的各路由的距離均為0。圖2.1初始V-D路由表的一個示例。 信宿網(wǎng) 距離 路徑 10.0.0.0 0 直接 20.0.0.0 0 直接 30.0.0.0 (a)30.0.0.040.0.0.0G220.0.0.0G40.0.0.0G220.0.0.0G110.0.0.0 (b) 圖2.1 (a)路由器G1的初始V-D路由表 (b)路由器G2附近的網(wǎng)絡(luò)拓撲 圖2.1的“信宿網(wǎng)”域含信宿網(wǎng)IP地址。然后,各路由器周期性地向外廣播其V-D路由表內(nèi)容。與某路由器直接相連的(位于同一物理網(wǎng)絡(luò))的路由器收到該路由表報文后,根據(jù)此報文對本地路由表進行刷新。刷新時,路由器逐項檢查來自相鄰路由器的V-D報文,遇到下述表目之一,須修改本地路由表(假設(shè)路由器Gi收到路由器Gj的V-D報文):Gj列出的某表目Gi路由表中沒有。則Gi路由表中須增加相應(yīng)表目,其“信宿”是Gj表目中的信宿,其“路徑”為“Gj”(即下一路由器為Gj)。Gj去往某信宿的距離值比Gi去往該信宿的距離減1還小。這種情況說明,Gi去往某信宿若經(jīng)過Gj,距離會更短。則Gi修改本表目,其中“信宿”域不變,“距離”為Gj表目中距離加1,“路徑”為“Gj”。Gi去往某信宿的路由經(jīng)過Gj,而Gj去往該信宿的路由發(fā)生變化。這里分兩種情況:Gj的V-D表不再包含去往某信宿的路由,則GI中相應(yīng)路由須刪除。Gj的V-D表中去往某信宿的路由距離發(fā)生變化,則Gi中相應(yīng)表目“距離”須修改,以Gj中的“距離”加1取代原來的距離。圖2.2中對以上描述給出直觀的說明,其中Gi、Gj為相鄰路由器。 圖2.2(a)路由器Gi原路由表;(b)路由器Gj廣播的V-D報文;(c)路由器Gj刷新后的路由表圖2.2中,“ ”所指示為須刷新的表目,“ ”為引起刷新的表目,“”為刷新后的表目。 這里要特別強調(diào)的是,V-D算法的路由刷新發(fā)生在相鄰路由器之間,所以V-D報文不一定以廣播方式發(fā)送出去,一種比較優(yōu)化的思想是路由器直接向相鄰路由器發(fā)送V-D報文,不必采用廣播方式。第三章協(xié)議中的特殊處理對相同路由開銷的的處理 當修改報文中的路由開銷和路由數(shù)據(jù)庫的路由開銷相同時,不修改路由數(shù)據(jù)庫中的路由。這種情況對應(yīng)在實際網(wǎng)絡(luò)中的問題,是指網(wǎng)絡(luò)中出現(xiàn)了多條開銷相同的路由時,路由如何選擇的問題。在這種情況下,采用先入為主的原則,即采用以前的路由。這符合處理方式的簡單性和實用性。對過時路由的處理 根據(jù)V-D算法,一條路由只在出現(xiàn)一條更優(yōu)路由時才被刷新,否則,將繼續(xù)保留在路由數(shù)據(jù)庫中。這就忽略了這樣一種情況,即當某條路由突然崩潰,需要選擇一條新的路由來代替現(xiàn)存路由。但這靠V-D中的刷新算法來是不能得到解決的。 針對這種情況,在實際應(yīng)用中,RIP規(guī)定,所有機器對其路由數(shù)據(jù)庫中的每一表目都設(shè)置一個時鐘,每增加一個新表目,就相應(yīng)設(shè)置一個新時鐘。在收到V-D報文中假如有關(guān)于此路由的表目,則將時鐘清零,重新記時。假如在規(guī)定時間內(nèi),一直未收到該路由的刷新信息,時鐘期滿,則將該路由從路由數(shù)據(jù)庫中刪除。 如果到指定的信宿有其它路由,則新的路由將從進一步收到的定時刷新報文中獲得,否則去往原信宿的路由不存在。布局改變時的處理 在上一章所述的V-D算法中,有一個嚴重的問題,即“慢收斂”(slowconvergence)問題,又叫“計算到無窮”(counttoinfinity)。 如圖3.1(a)中所示正常網(wǎng)間網(wǎng)拓撲結(jié)構(gòu),從G1可直接到達網(wǎng)絡(luò)Net1,從G2經(jīng)G1(距離為1)可到達Net1.正常情況下,G2收到G1的V-D報文后,會建立一條路由(1,G1,1). 現(xiàn)在假設(shè)從G1到Net1的路由因故障而崩潰,但G1依然能正常工作.G1一旦檢測到不可達,會立即將原來的路由廢除(將距離改為16).然后會出現(xiàn)兩種可能: 第一種,在收到來自G2的V-D報文之前,G1將修改后的路由信息廣播出去,于是G2將修改其路由數(shù)據(jù)庫,將原來去往Net1的路由(1,G1,1)刪除.這是完全正常的. 第二種,在G1發(fā)送新的報文之前,G2廣播自己的V-D報文.該報文中必然有一條路由(1,1)表目,說明從G2出發(fā),經(jīng)1個驛站可以到達Net1.G1收到該報文 后,顯然會根據(jù)此表目更改自己的路由表,產(chǎn)生關(guān)于Net1的新路由(1,G2,2).于是G1與G2間產(chǎn)生尋徑環(huán),如圖3.1(b)所示. 上述路由環(huán)會通過G1和G2間的不斷V-D報文交換而解除,但解除的過程是非常緩慢的:出現(xiàn)路由環(huán)后,在下一輪路由廣播中,G1將向G2通告(1,2)表目,G2收到此表目修改本地路由數(shù)據(jù)庫,將去往Net1的路由改為(1,G1,3).然后,G2向G1通告(1,3)表目,G1將去往Net1的表目改為(1,G2,4)...如此下去,直到路由長度變?yōu)?6.也就是說,至少要經(jīng)過7番來回(至少30*7秒),路由環(huán)才能解除.這就是所謂滿收斂問題. 其實這只是一種非常簡單的情況,路由環(huán)也可以建立在不相鄰的路由器之間.對于這種情況,如果減小路由的最大長度,對解決慢收斂問題將有所幫助,但這會限制網(wǎng)點的規(guī)模,無疑是不行的. 對于這種問題,有很多種辦法,在本協(xié)議的實現(xiàn)中,用的是水平分割(SplitHorizon)和毒性逆轉(zhuǎn)法(PoisonReverse),并在毒性逆轉(zhuǎn)時采用觸發(fā)刷新(TriggeredUpdate).具體實現(xiàn)是這樣的: 水平分割:當路由器從某個網(wǎng)絡(luò)接口發(fā)送RIP路由刷新報文時,其中不包含從該接口獲取的路由信息. 毒性逆轉(zhuǎn):某路徑崩潰后,最早廣播此路由的路由器將原路由繼續(xù)保留在若干報文中,但指明該路由為無限長. 觸發(fā)刷新:一旦檢測到路由崩潰,立即廣播路由刷新報文,而不等到下一刷新周期. 根據(jù)路由環(huán)產(chǎn)生的過程,可知通過水平分割法對解決兩路由器之間形成的路由環(huán)是極為有效的方法.毒性逆轉(zhuǎn)法可解決多路由器之間的路由環(huán)問題.使用觸發(fā)刷新,顯然可以加快新路由的有效刷新. 更有這樣一個事實,從本接口發(fā)出的路由再從別的接口收到,對本地路由表是不會幫助的,正是基于這種考慮,水平分割是在RIP協(xié)議的實現(xiàn)中是必不可少的.對于這一點在后來的討論中會更清楚地得到認識.第四章RIP協(xié)議的實現(xiàn)RIP根據(jù)V-D算法的特點,將協(xié)議的參加者分為主動機和被動機兩種。主動機主動向外廣播路由刷新報文,被動機被動地接收路由刷新報文。一般情況下,主機作為被動機,路由器則既是主動機又是被動機,即在向外廣播路由刷新報文的同時,接受來自其它主動機的V-D報文,并進行路由刷新。 RIP規(guī)定,路由器每30秒向外廣播一個V-D報文,報文信息來自本地路由表。RIP的V-D報文中,其距離以驛站計:與信宿網(wǎng)絡(luò)直接相連的路由器規(guī)定為一個驛站,相隔一個路由器則為兩個驛站……以此類推。一條路由的距離為該路由(從信源機到信宿機)上的路由器數(shù)。為防止尋徑環(huán)長期存在,RIP規(guī)定,長度為16的路由為無限長路由,即不存在的路由。所以一條有效的路由長度不得超過15。正是這一規(guī)定限制了RIP的使用范圍,使RIP局限于中小型的網(wǎng)絡(luò)網(wǎng)點中。為了保證路由的及時有效性,RIP采用觸發(fā)刷新技術(shù)和水平分割法。當本地路由表發(fā)生修改時,觸發(fā)廣播路由刷新報文,以迅速達到最新路由的廣播和全局路由的有效。水平分割法是指當路由器從某個網(wǎng)絡(luò)接口發(fā)送RIP路由刷新報文時,其中不包含從該接口獲取的路由信息。這是由于從某網(wǎng)絡(luò)接口獲取的路由信息對于該接口來說是無用信息,同時也解決了兩路由器間的慢收斂問題。對于局域網(wǎng)的路由,RIP規(guī)定了路由的超時處理。主要是考慮到這樣一個情況,如果完全根據(jù)V-D算法,一條路由被刷新是因為出現(xiàn)一條路由開銷更小的路由,否則路由會在路由表中一直保存下去,即使該路由崩潰。這勢必造成一定的錯誤路由信息。為此,RIP規(guī)定,所有機器對其尋徑表中的每一條路由都設(shè)置一個時鐘,每增加一條新路由,相應(yīng)設(shè)置一個新時鐘。在收到的V-D報文中假如有關(guān)于此路由的表目,則將時鐘清零,重新計時。假如在120秒內(nèi)一直未收到該路由的刷新信息,則認為該路由崩潰,將其距離設(shè)為16,廣播該路由信息。如果再過60后仍未收到該路由的刷新信息,則將它從路由表中刪除。如果某路由在距離被設(shè)為16后,在被刪除前路由被刷新,亦將時鐘清零,重新計時,同時廣播被刷新的路由信息。至于路由被刪除后是否有新的路由來代替被刪除路由,取決于去往原路由所指信宿有無其它路由。假如有,相應(yīng)路由器會廣播之。機器一旦收到其它路由的信息,自然會利用V-D算法建立一條新路由。否則,去往原信宿的路由不再存在。RIP啟動和運行的整個過程如下所描述: 某路由器剛啟動RIP時,以廣播的形式向相鄰路由器發(fā)送請求報文,相鄰路由器的RIP收到請求報文后,響應(yīng)請求,回發(fā)包含本地路由表信息的響應(yīng)報文。RIP收到響應(yīng)報文后,修改本地路由表的信息,同時以觸發(fā)修改的形式向相鄰路由器廣播本地路由修改信息。相鄰路由器收到觸發(fā)修改報文后,又向其各自的相鄰路由器發(fā)送觸發(fā)修改報文。在一連串的觸發(fā)修改廣播后,各路由器的路由都得到修改并保持最新信息。同時,RIP每30秒向相鄰路由器廣播本地路由表,各相鄰路由器的RIP在收到路由報文后,對本地路由進行的維護,在眾多路由中選擇一條最佳路由,并向各自的相鄰網(wǎng)廣播路由修改信息,使路由達到全局的有效。同時RIP采取一種超時機制對過時的路由進行超時處理,以保證路由的實時性和有效性。RIP作為內(nèi)部路由器協(xié)議,正是通過這種報文交換的方式,提供路由器了解本自治系統(tǒng)內(nèi)部個網(wǎng)絡(luò)路由信息的機制。 RIP-2支持版本1和版本2兩種版本的報文格式。在版本2中,RIP還提供了對子網(wǎng)的支持和提供認證報文形式。版本2的報文提供子網(wǎng)掩碼域,來提供對子網(wǎng)的支持;另外,當報文中的路由項地址域值為0xFFFF時,默認該路由項的剩余部分為認證。RIP2對撥號網(wǎng)的支持則是參考需求RIP和觸發(fā)RIP的形式經(jīng)修改而加入的新功能。這時,我們只是要求在撥號網(wǎng)撥通之后對路由進行30秒一次的廣播,而在沒撥通時并不作如是要求,這是根據(jù)具體情況變通的結(jié)果。第五章傳統(tǒng)RIP協(xié)議 正如前幾章所說,RIP協(xié)議是來允許路由器(或相關(guān)產(chǎn)品)通過基于IP網(wǎng)絡(luò)交換有關(guān)計算路由信息的一種距離向量協(xié)議。RIP傳送路由信息給信宿,信宿可以是路由器和主機,當信宿是主機時,主機必須有多個接口。 RIP作為一個系統(tǒng)常駐進程(daemon)存在,它負責(zé)從網(wǎng)絡(luò)信筒中其它路由器接收路由更改信息,從而對本地IP層的路由進行動態(tài)地維護,保證IP層發(fā)送報文時選擇正確的路由。RIP協(xié)議處于UDP協(xié)議的上層,RIP所接收的路由修改信息都封裝在UDP的數(shù)據(jù)報中,RIP在520號端口上接收來自遠程路由器的路由修改信息,并對本地的路由表做相應(yīng)的修改,同時通知其它的路由器,通過這種方式,達到全局路由的的有效。RIP協(xié)議的報文格式本協(xié)議在實現(xiàn)過程中支持RIPVersion1和RIPVersion2兩種格式的報文。RIP數(shù)據(jù)報一共有五類,由Command域確定數(shù)據(jù)報的類型,如圖4.1所示。 類型 意義路徑信息請求路徑信息響應(yīng)過時過時留作Sun微系統(tǒng)公司內(nèi)部使用 圖4.1RIP報文類型其中第1、2類報文是最重要的一對,后者是從發(fā)送該報文的路由器的尋徑表中取出的V-D報文。各種RIP報文的格式相同,包括一個固定的報頭和一個可選的V-D表。其格式如圖4.2和圖4.3所示,圖2是RIPVersion1的報文格式,圖3是RIPVersion2的報文格式。RIPVersion1的報文格式:RIPVersion2的格式:其中:Metric:到下一路由器的權(quán)值。AddressFamilyIdentifier:指示路由項中的地址種類,這里應(yīng)為2。IpAddress:地址域,包括網(wǎng)絡(luò)類和IP地址在內(nèi),RIP報文中對每一網(wǎng)絡(luò)共有14個字節(jié)的地址空間。RIPVersion2報文的特有的一些屬性:RouteTag:外部路由標記,是表示路由是保留還是重播的屬性。它提供一種從外部路由中分離內(nèi)部路由的方法,用于傳播從外部路由器協(xié)議(EGP)獲得的路由信息。Subnetmask:子網(wǎng)掩碼,應(yīng)用于IP地址產(chǎn)生非主機部分地址,為0時表示不包括子網(wǎng)掩碼部分,使得RIP能夠適應(yīng)更多的環(huán)境。NextHop:下一驛站,可以對使用多路由協(xié)議的網(wǎng)絡(luò)環(huán)境下的路由進行優(yōu)化。認證,確認合法的信息包,目前支持純文本的口令形式。認證是每一報文的功能,因為在報文頭中只提供兩字節(jié)的空間,而任一合理的認證表均要求多余兩字節(jié)的空間,故RIPVersion2認證表使用一個完整的RIP路由項。如果在報文中最初路由項AddressFamilyIdentifier域的值是0xFFFF,路由項的剩余部分就是認證。包含認證RIP報文路由項采用如下格式:組播,為了降低那些沒有監(jiān)聽RIPVersion2報文的主機的不必要的開銷,IP多目傳送地址被用于定時廣播。IP多目地址是224.0.0.9。為了支持向后兼容,多目地址的使用是可配置的。如果能夠多目傳送,則它將被支持它所有接口使用。管理信息庫,允許在路由軟件內(nèi)部對RIP操作進行監(jiān)聽和控制。如果RIP-2路由器接收RIP-1的請求,它將以RIP-1的響應(yīng)方式響應(yīng)。如果路由器被配置成只發(fā)送RIP-2報文,它將不響應(yīng)RIP-1的請求。協(xié)議處理RIP協(xié)議的運行過程就是路由器軟件對消息輸入和輸出處理過程,其輸入和輸)出處理大致如下所描述:(一)輸入處理:主要是指路由器協(xié)議軟件對在520號UDP端口收到的數(shù)據(jù)報進行的處理。對于輸入處理,首先必須先作一定格式檢查,檢查通過后,再分別對幾種輸入消息做相應(yīng)的處理。請求報文:路由器在開始運行時,為了從鄰機處獲取路由表的初始值,通常會發(fā)一個請求。報文的Command字段為(request)。對所有或部分路由表的請求,一般以廣播形式從520號UDP端口發(fā)送。實際中,這種請求有兩種格式:請求獲取路由表的全部和請求獲取路由表的某些特定路由項。路由軟件先逐個路由項地處理請求,如果沒有任何路由項,也就沒有響應(yīng);如果請求中恰好只有一個路由項,并且addressfamilyidentifier為0,metric為16,則表示需要接收方發(fā)送所有路由表的請求;除此之外,則是要求部分路由,處理很簡單,沿著請求路由項表一個一個看,對于每個路由項,在主機路由數(shù)據(jù)庫中查找,如果找到,則將該路由的metric值填入數(shù)據(jù)報的metric字段,如果沒有,則向其中填16。一旦所有路由項均已處理,將command字段設(shè)為響應(yīng)(response),并將該數(shù)據(jù)報發(fā)回其來自的端口。注意,根據(jù)請求是否關(guān)于指定的一批目的地,還是關(guān)于整個路由表,處理有所不同。如果關(guān)于整個路由表,輸出作普通的處理即可,包括水平分割和子網(wǎng)隱藏,因此來自路由表的某些路由項將被隱藏;如果是指定路由項,則將查找結(jié)果返回,不作水平分割,如果需要還要返回子網(wǎng)信息。2.響應(yīng)報文:因為指定查詢、路由修改等原因而收到響應(yīng)。不論收到什么樣的響應(yīng),RIP處理程序就開始更新它的路由表。路由表的每一項至少都要包括如下內(nèi)容:目的站點的地址;通往目的站點的量度值;“下一個路由器”的地址;“最近更新過”的標志;幾個定時器。因為處理響應(yīng)可能修改主機路由表,所以必須作嚴格的有效性檢查。對于RIPVeon1數(shù)據(jù)報,對mustbezero域必須進行查零處理,對RIPVersion2數(shù)據(jù)報則可忽略。數(shù)據(jù)報驗證有效后,還要對其路由項逐個進行驗證。全部通過后,我們設(shè)置metric=MIN(metric+cost,16),16代表無限長,然后檢查是否已有路由到達該地址,如果沒有,則加入路由表,但是如果metric是無限長,則不要將其加入路由表;如果現(xiàn)有路由不比新加的路由差,我們也不將其加入路由表。對此,需要執(zhí)行以下動作:根據(jù)收到的數(shù)據(jù)報設(shè)置目的地和metric根據(jù)數(shù)據(jù)報的來源主機設(shè)置路由器為該路由設(shè)置超時值,如果垃圾回收定時器正在運行,將其停止設(shè)置路由改變標志,給輸出進程發(fā)信號,觸發(fā)一次修改如果現(xiàn)存一個路由,首先比較路由器,如果來自同一路由器,對超時值重新進行初始化,然后比較metric。如果數(shù)據(jù)報來自與現(xiàn)存路由同樣的路由器且新的metric值與舊的不同,或者新的比舊的低,進行如下動作:將新的metric填入,并將該路由器設(shè)置為數(shù)據(jù)報的來源為此路由初始化超時值設(shè)置路由改變標志,給輸出進程發(fā)信號,觸發(fā)一次修改如果新metric是16,啟動刪除進程(只是在metric剛剛被設(shè)為16時啟動)如果新的metric值與舊的相等,除了重新初始化超時值外什么也不干(二)輸出處理:用于產(chǎn)生包含全部或部分路由表的響應(yīng)信息的處理,可能由于輸入進程發(fā)現(xiàn)請求或路由修改而觸發(fā)。先看后兩種情況下如何選擇目的地址。如果一個響應(yīng)要發(fā)送給所有目的地,則響應(yīng)信息發(fā)送給每個點到點連接的網(wǎng)絡(luò)的對端,而且響應(yīng)在支持廣播的網(wǎng)絡(luò)上進行廣播。但是如果網(wǎng)絡(luò)不支持廣播,或者在沉默的路由器,就有必要指定一張實際的臨近主機和路由器表,顯式地向每一個發(fā)送數(shù)據(jù)報。觸發(fā)的修改因為兩個方面需要處理:觸發(fā)的修改在容量有限或有許多路由器的網(wǎng)絡(luò)上可能導(dǎo)致格外大的負載,因此協(xié)議要求實現(xiàn)方在限制觸發(fā)式修改出現(xiàn)的頻率上采取一定的措施,觸發(fā)式修改發(fā)送后,需要隨機地將一個定時器設(shè)置成1到5秒,如果在定時器超時前發(fā)生其它修改,需要到定時器超時才觸發(fā)其中之一,然后定時器再隨機地設(shè)置成1到5秒,觸發(fā)式修改可能被一般修改所禁止;觸發(fā)式修改可能不必包括整個路由表,原則上說,只有改變過的路由才需要包括,作為觸發(fā)式修改一部分的信息至少包括設(shè)置了路由修改標志的路由,也可以包括附加路由和全部路由。如果完整的修改需要多個數(shù)據(jù)報,則發(fā)送全部路由極有可能被打斷;而觸發(fā)式修改處理時,需要產(chǎn)生每個直連網(wǎng)絡(luò)的信息。產(chǎn)生觸發(fā)式修改或一般修改時,都需要進行水平分割操作。如果產(chǎn)生輸出的同時也允許輸入處理,則必須建立相應(yīng)的互斥機制,產(chǎn)生觸發(fā)式修改信息時,路由改變標志不得因處理輸入而改變。觸發(fā)式修改與其它修改的唯一不同之處在于:可能會忽略某些改變過的路由,今后推出的其它機制恐怕要適應(yīng)觸發(fā)式修改。第六章RIP-2的對撥號網(wǎng)的支持根據(jù)前面所說到的RIP協(xié)議我們不難看出,RIP進行報文刷新的基礎(chǔ)是網(wǎng)絡(luò)在刷新過程中一直保持連通,否則將有的路由器的報文一直不被收到,最終到達該路由器的路由將被其它路由器因超時而刪除,而本路由器到其它路由器的路由亦將由于長期不被刷新而被刪除。就這點來說,對于局域網(wǎng)和專線網(wǎng)來說,無疑是可行的;但對于撥號網(wǎng)絡(luò)(例如X.25網(wǎng)和ISDN網(wǎng))來說,網(wǎng)絡(luò)在可以被撥通的情況下并非一直保持連接,自然亦不可能在不需要傳送數(shù)據(jù)時因為要發(fā)送RIP報文而每30秒撥通一次網(wǎng)絡(luò)。同時,路由信息亦可能因提供給撥號網(wǎng)上路由器的帶寬不夠而傳輸失敗。種種情況表明,前面所描述的RIP協(xié)議已遠遠不夠這種需求。針對這種情況,我對RIP協(xié)議的實現(xiàn)作了進一步的改進和擴展,經(jīng)過擴展和改進后,本文檔中描述的RIP協(xié)議已不是傳統(tǒng)意義上的RIP協(xié)議所能概括的了。對撥號網(wǎng)路由的處理針對撥號網(wǎng)上路由的特點,我們不可能象在局域網(wǎng)和專線網(wǎng)一樣在撥號網(wǎng)上對路由進行30秒的定時廣播,從而也就決定了我們對撥號網(wǎng)上的路由不能象對局域網(wǎng)上的路由一樣進行超時處理。正是基于這種考慮,為了保證路由的及時性和可行性的考慮,我們規(guī)定撥號網(wǎng)上的路由修改報文的發(fā)送在如下幾種情況下進行:當收到路由修改的特定的請求時;當路由數(shù)據(jù)庫被從別的接口收到新路由報文改變時;當?shù)弥承潘迯牟豢蛇_變成可達時;當某接口從電路DOWN到電路UP時。這就存在這樣一個問題,RIP報文是通過UDP的520號端口發(fā)送的,而UDP是不可靠的傳送方式,這顯然必須考慮報文傳輸失敗的可能性。為此,我們在傳送時采取了報文傳送的重發(fā)和確認機制。在發(fā)送報文時,當發(fā)送完請求報文或修改報文后,如果在5秒鐘仍未收到信宿回發(fā)過來的確認報文,重發(fā)請求報文或確認報文。如果在重發(fā)后5秒后仍未收到確認報文,則繼續(xù)重發(fā)直到收到信宿的確認報文為止。如果在重發(fā)10次后,認為收到信宿的確認報文,則認為傳輸失敗,將對應(yīng)路由的Metric值設(shè)為16。在接收報文時,當收到信源發(fā)來的請求或修改報文后,要對收到的報文進行確認,并向原信源發(fā)送相應(yīng)的確認報文。如果從撥號網(wǎng)上下一驛站路由器收到路由修改報文,則修改報文中的路由項將一直認為是可達的直到某次發(fā)送路由報文失敗。撥號網(wǎng)與局域網(wǎng)和專線網(wǎng)對超時處理的不同也體現(xiàn)在路由數(shù)據(jù)庫中。在路由數(shù)據(jù)庫中,路由分為兩種,一種是“臨時性路由”,一種是“永久性路由”?!芭R時性路由”針對于局域網(wǎng)路由和廣域網(wǎng)專線上的路由。這種路由每30秒廣播一次,在一定時間內(nèi)沒有收到路由刷新報文后,進行超時處理?!坝谰眯月酚伞敝傅氖前〒芴柧W(wǎng)上的路由,在沒有收到刷新報文仍不不進行超時處理,但當對某信宿發(fā)送報文失敗時則將該路由改為“臨時性路由”。另外還有一種情況需要將“永久性路由”改為“臨時性路由”,這將在后面說到。報文格式的擴展為了更好地處理撥號網(wǎng)上的路由刷新,參照RFC/1581/15822091/2092標準,對報文格式進行了的改進和擴充修改。對報文的修改主要是支持三種新的報文分組類型,在報文命令域數(shù)值標識:9UpdateRequest 修改請求10UpdateResponse 修改響應(yīng) 11UpdateAcknowledge修改確認同時對各類型報文添加一個報文頭: UpdateRequest(9)++ | Version(1) | mustbezero(3) | ++UpdateResponse(10)和UpdateAcknowledge(11) ++ |Version(1) | Flush(1) |Sequencenumber(2)|++其中Version域指的是各報

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論