RIP路由協(xié)議原型系統(tǒng)的實(shí)現(xiàn)(謝剛)_第1頁(yè)
RIP路由協(xié)議原型系統(tǒng)的實(shí)現(xiàn)(謝剛)_第2頁(yè)
RIP路由協(xié)議原型系統(tǒng)的實(shí)現(xiàn)(謝剛)_第3頁(yè)
RIP路由協(xié)議原型系統(tǒng)的實(shí)現(xiàn)(謝剛)_第4頁(yè)
RIP路由協(xié)議原型系統(tǒng)的實(shí)現(xiàn)(謝剛)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課課程程設(shè)設(shè)計(jì)計(jì)報(bào)報(bào)告告課程名稱:課程名稱: 計(jì)算機(jī)網(wǎng)絡(luò) 設(shè)計(jì)題目設(shè)計(jì)題目: RIP路由協(xié)議原型系統(tǒng)的實(shí)現(xiàn) 系系 別:別: 計(jì)算機(jī)與信息工程學(xué)院 專專 業(yè):業(yè): 物聯(lián)網(wǎng)專業(yè) 組組 別:別: 第五組 -起止日期起止日期: 2014 年 6 月 8 日2014 年 6 月 14 日-指導(dǎo)教師指導(dǎo)教師: 劉進(jìn)軍 計(jì)算機(jī)科學(xué)與技術(shù)系二計(jì)算機(jī)科學(xué)與技術(shù)系二一四年制一四年制滁州學(xué)院本科課程設(shè)計(jì)2 / 20課程設(shè)計(jì)任務(wù)書課程設(shè)計(jì)任務(wù)書組長(zhǎng)謝剛學(xué)號(hào)2012211588班級(jí)2012 級(jí)物聯(lián)網(wǎng)系別計(jì)算機(jī)與信息工程學(xué)院專業(yè)物聯(lián)網(wǎng)專業(yè)組員謝剛指導(dǎo)教師老師 劉進(jìn)軍課程設(shè)計(jì)目的1)進(jìn)一步理解動(dòng)態(tài)內(nèi)部網(wǎng)關(guān)協(xié)議 RIP 的工

2、作原理。2)學(xué)會(huì)將所學(xué)知識(shí)聯(lián)合運(yùn)用,如本次 RIP 協(xié)議原型系統(tǒng)的設(shè)計(jì)即是將網(wǎng)絡(luò)與數(shù)據(jù)結(jié)構(gòu)(圖)及 C 編程語(yǔ)言相結(jié)合。3)提高團(tuán)隊(duì)合作能力,發(fā)揮每一名組員的長(zhǎng)處。4)體會(huì)做一個(gè)項(xiàng)目的流程(包括前期的資料收集,系統(tǒng)要求分析,系統(tǒng)實(shí)現(xiàn)的語(yǔ)言選擇及實(shí)現(xiàn)方法的討論等) 。課程設(shè)計(jì)所需環(huán)境1)Windows 操作系統(tǒng)平臺(tái)2)VC+6.0 編譯環(huán)境3) Cisco Packet Tracer 仿真軟件課程設(shè)計(jì)任務(wù)要求1)實(shí)現(xiàn)一個(gè) RIP 路由協(xié)議的原型系統(tǒng)2)廣播發(fā)布本地節(jié)點(diǎn)的路由信息3)其它節(jié)點(diǎn)接收信息并選擇最優(yōu)路徑4)支持最大不超過 15 跳的特性5)動(dòng)態(tài)支持網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化(如增加路由節(jié)點(diǎn))課程

3、設(shè)計(jì)工作進(jìn)度計(jì)劃序號(hào)起止日期工 作 內(nèi) 容分工情況12014 年 6 月 8 日2014 年 6 月 9 日展開思路討論工作并搜集相關(guān)資料參考相關(guān)資料獨(dú)立完成22014 年 6 月 9 日2014 年 6 月 10 日分析課程設(shè)計(jì)要求,確定目標(biāo)參考相關(guān)資料獨(dú)立完成32014 年 6 月 10 日2014 年 6 月 11 日設(shè)計(jì)軟件功能模塊參考相關(guān)資料獨(dú)立完成42014 年 6 月 11 日2014 年 6 月 12 日編寫代碼、實(shí)現(xiàn)功能模塊參考相關(guān)資料獨(dú)立完成52014 年 6 月 12 日2014 年 6 月 13 日系統(tǒng)整合以及測(cè)試參考相關(guān)資料獨(dú)立完成62014 年 6 月 13 日20

4、14 年 6 月 14 日完成課程設(shè)計(jì)文檔參考相關(guān)資料獨(dú)立完成教研室審核意見:教研室主任簽字: 年 月 日滁州學(xué)院本科課程設(shè)計(jì)3 / 20目目 錄錄1. 引言引言. 42. 系統(tǒng)開發(fā)分析系統(tǒng)開發(fā)分析. 4 2.1 系統(tǒng)需求分析系統(tǒng)需求分析. 4 2.2 系統(tǒng)設(shè)計(jì)原理系統(tǒng)設(shè)計(jì)原理43. 系統(tǒng)功能描述與軟件模塊劃分系統(tǒng)功能描述與軟件模塊劃分.54. 系統(tǒng)設(shè)計(jì)詳細(xì)系統(tǒng)設(shè)計(jì)詳細(xì). 5 4.14.1 程序流程圖程序流程圖 6 6 4.2 程序源代碼程序源代碼7 5. 設(shè)計(jì)過程關(guān)鍵問題及其解決方法設(shè)計(jì)過程關(guān)鍵問題及其解決方法. 10 5.1 如何實(shí)現(xiàn)廣播本地路由及更新動(dòng)態(tài)更新路由表如何實(shí)現(xiàn)廣播本地路由及更

5、新動(dòng)態(tài)更新路由表. 10 5.2 如何在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)改變后實(shí)現(xiàn)動(dòng)態(tài)更新維護(hù)路由表如何在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)改變后實(shí)現(xiàn)動(dòng)態(tài)更新維護(hù)路由表.116. 程序設(shè)計(jì)結(jié)果界面演示程序設(shè)計(jì)結(jié)果界面演示11 6.1 設(shè)計(jì)結(jié)果演示設(shè)計(jì)結(jié)果演示.117. 課程設(shè)計(jì)總結(jié)與體會(huì)課程設(shè)計(jì)總結(jié)與體會(huì)157.1 總結(jié)總結(jié).157.2 體會(huì)體會(huì).17致謝致謝17參考文獻(xiàn)參考文獻(xiàn)18滁州學(xué)院本科課程設(shè)計(jì)4 / 201 引言引言 RIP(Routing information Protocol,路由信息協(xié)議)是應(yīng)用較早、使用較普遍的內(nèi)部網(wǎng)關(guān)協(xié)議(Interior Gateway Protocol,IGP) ,適用于小型同類網(wǎng)絡(luò)的一個(gè)自治

6、系統(tǒng)(AS)內(nèi)的路由信息的傳遞。RIP 協(xié)議是基于距離矢量算法(DistanceVectorAlgorithms)的,在默認(rèn)情況下,RIP 使用一種非常簡(jiǎn)單的度量制度:距離就是通往目的站點(diǎn)所需經(jīng)過的鏈路數(shù),取值為 115,數(shù)值 16 表示無窮大。它使用“跳數(shù)”,即 metric 來衡量到達(dá)目標(biāo)地址的路由距離。這種協(xié)議的路由器只關(guān)心自己周圍的世界,只與自己相鄰的路由器交換信息,范圍限制在 15 跳(15 度)之內(nèi),再遠(yuǎn),它就不關(guān)心了。RIP 進(jìn)程使用 UDP 的 520 端口來發(fā)送和接收 RIP 分組。RIP 分組每隔 30s 以廣播的形式發(fā)送一次,為了防止出現(xiàn)“廣播風(fēng)暴”,其后續(xù)的的分組將做隨

7、機(jī)延時(shí)后發(fā)送。在 RIP 中,如果一個(gè)路由在 180s 內(nèi)未被刷,則相應(yīng)的距離就被設(shè)定成無窮大,并從路由表中刪除該表項(xiàng)。RIP 應(yīng)用于 OSI 網(wǎng)絡(luò)七層模型的網(wǎng)絡(luò)層。RIP 是一個(gè)用于路由器和主機(jī)間交換路由信息的距離向量協(xié)議,目前最新的版本為v4,也就是 RIPv4。2系統(tǒng)開發(fā)分析系統(tǒng)開發(fā)分析2.1 系統(tǒng)需求分析1.實(shí)現(xiàn)一個(gè) RIP 路由協(xié)議的原型系統(tǒng)。2.廣播發(fā)布本地節(jié)點(diǎn)的路由信息。3.其它節(jié)點(diǎn)接收信息并選擇最優(yōu)路徑。4.支持最大不超過 15 跳的特性。5.動(dòng)態(tài)支持網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化(如增加路由節(jié)點(diǎn))2.2 系統(tǒng)設(shè)計(jì)原理RIP 協(xié)議是動(dòng)態(tài)路由協(xié)議,其運(yùn)行至路由器中,而路由器是運(yùn)行路由協(xié)議軟件

8、的專用硬件,它的主要功能可以分成兩部分:路由選擇和分組轉(zhuǎn)發(fā)。其中路由選擇是基礎(chǔ)。一個(gè)路由器對(duì)到來的每一個(gè)分組先選擇合適的路由,然后才能依據(jù)此路由進(jìn)行正確的轉(zhuǎn)發(fā),本滁州學(xué)院本科課程設(shè)計(jì)5 / 20次課程設(shè)計(jì)就是設(shè)計(jì)有著廣泛的使用范圍的動(dòng)態(tài)路由協(xié)議 RIP 協(xié)議體統(tǒng)原型。它是距離向量協(xié)議中的一種,屬于內(nèi)部網(wǎng)關(guān)協(xié)議。運(yùn)行協(xié)議的相鄰路由器通過彼此之間交換路由信息RIP 的距離向量,從而知道網(wǎng)絡(luò)的連接情況,實(shí)現(xiàn)各個(gè)網(wǎng)絡(luò)之間的連通,這也是距離向量名稱的由來。(Distance Vector)運(yùn)行協(xié)議的每個(gè)路由器都要維護(hù)一張自己的路由 RIP 表,該路由表是相應(yīng)于與它直接相聯(lián)和通過路由器相連的網(wǎng)絡(luò)連接情況而

9、動(dòng)態(tài)變化的。因此協(xié)議屬于動(dòng)態(tài)路由協(xié) RIP 議。路由器根據(jù)路由表對(duì)發(fā)給它的包進(jìn)行轉(zhuǎn)發(fā),從而實(shí)現(xiàn) IP 路由功能。3系統(tǒng)功能描述與系統(tǒng)模塊劃分系統(tǒng)功能描述與系統(tǒng)模塊劃分本設(shè)計(jì)實(shí)現(xiàn)的 RIP 路由協(xié)議的原型系統(tǒng)功能主要包括,一:初始化每個(gè)路由器的路由表信息。即在使用者輸入網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的路由節(jié)點(diǎn)數(shù)及鏈路數(shù)后,系統(tǒng)首先會(huì)自動(dòng)生成每個(gè)節(jié)點(diǎn)到其相鄰路由節(jié)點(diǎn)的路由信息,具體包括:目的地址、跳數(shù)、下一跳,初始設(shè)置相鄰節(jié)點(diǎn)的跳數(shù)為 1。 二:當(dāng)路由器的初始路由表建立后,接下來就開始進(jìn)行鄰接節(jié)點(diǎn)的路由信息廣播,即路由節(jié)點(diǎn)將自身的路由表信息廣播至其相鄰的節(jié)點(diǎn),具體的廣播信息是將每一條路由的目的地址不變,跳數(shù)加一,

10、嚇一跳修改為自身路由器接口的名稱進(jìn)行傳送,收到廣播信息的路由表對(duì)收到的每一條路由信息進(jìn)行判斷,分兩大情況::若原來的路由表中沒有目的網(wǎng)絡(luò) N,則將該項(xiàng)添加到路由表中,否則(即在該路由表中有到目的網(wǎng)絡(luò) N 的信息,則觀察下一條)此時(shí)分兩種小情況 1:若嚇一跳與原路由表項(xiàng)相同,則無條件進(jìn)行更新。2:若嚇一跳與原路由表項(xiàng)不相同,則若收到的路由信息中距離 d 小于路由表中的距離,則進(jìn)行更新。 (還有對(duì)于接受的路由信息跳數(shù)=16 的信息,則將跳數(shù)置為 16,表明不可達(dá)。 )三:動(dòng)態(tài)改變網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),即當(dāng)因?yàn)閷?shí)際需要,需增設(shè)路由節(jié)點(diǎn)時(shí),系統(tǒng)會(huì)根據(jù)增設(shè)的路由節(jié)點(diǎn)數(shù)、名稱、鏈路數(shù),首先進(jìn)行新增設(shè)節(jié)點(diǎn)的路由表信

11、息初始化,而后將該節(jié)點(diǎn)的路由信息想鄰接節(jié)點(diǎn)進(jìn)行廣播,隨后整個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)向鄰接節(jié)點(diǎn)進(jìn)行路由信息廣播,這樣經(jīng)過幾輪廣播后,每一個(gè)節(jié)點(diǎn)都接收到了新增路由節(jié)點(diǎn)的最小路徑信息,從而實(shí)現(xiàn)了路由表的動(dòng)態(tài)維護(hù)與創(chuàng)建。4系統(tǒng)設(shè)計(jì)詳細(xì)系統(tǒng)設(shè)計(jì)詳細(xì)4,1 程序流程圖滁州學(xué)院本科課程設(shè)計(jì)6 / 20滁州學(xué)院本科課程設(shè)計(jì)7 / 20開始輸入要建立網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)所需路由節(jié)點(diǎn)數(shù)及鏈路數(shù)各路由節(jié)點(diǎn)向鄰接節(jié)點(diǎn)廣播路由信息各節(jié)點(diǎn)接收信息便進(jìn)行路由表的更新建立各節(jié)點(diǎn)的初始路由表廣播信息內(nèi)容:目的地址:不變跳數(shù):加 1嚇一跳:修改為廣播該路由信息的路由節(jié)點(diǎn)名稱若原來的路由表中無到此網(wǎng)絡(luò)的信息,則添加,否則 1:若嚇一跳與原路由表項(xiàng)相同

12、,則無條件進(jìn)行更新。2:若嚇一跳與原路由表項(xiàng)不相同,則判斷距離 d 若小于路由表中的距離,則更新。 (還有對(duì)于接受的路由信息跳數(shù)=16 的信息,則將跳數(shù)置為 16)節(jié)點(diǎn)路由信息更新完畢,詢問是否還需添加新的路由節(jié)點(diǎn)否結(jié)束是初始化新增路由節(jié)點(diǎn)路由表滁州學(xué)院本科課程設(shè)計(jì)8 / 204.2 程序源碼因?yàn)橄到y(tǒng)的設(shè)計(jì)涉及到網(wǎng)絡(luò)拓?fù)鋱D的存儲(chǔ),所以本設(shè)計(jì)采用數(shù)據(jù)結(jié)構(gòu)中圖的存儲(chǔ)思想來進(jìn)行拓?fù)浣Y(jié)構(gòu)的存儲(chǔ),輸出。下面是系統(tǒng)設(shè)計(jì)的主要代碼:首先分別設(shè)置了 4 種類型的結(jié)構(gòu)體,以來表示鏈路信息、路由表、路由器,網(wǎng)絡(luò)拓?fù)鋱D。#include#include#define MAX_VERTEX_NUM 15#define

13、 MAX 15#include typedef struct ArcCell/存儲(chǔ)鏈路信息int adj;ArcCell,AmMAX_VERTEX_NUMMAX_VERTEX_NUM;typedef struct/路由表char destinationMAX;int distance;char nextjumpMAX;TNode;typedef struct/路由結(jié)點(diǎn)char rMAX;/存儲(chǔ)路由器名稱TNode tMAX;/存儲(chǔ)路由結(jié)點(diǎn)的路由表信息。VNode;typedef structVNode vexMAX;Am arcs;int vexnum,arcnum;Graph;/用圖來存儲(chǔ)網(wǎng)

14、絡(luò)拓?fù)浣Y(jié)構(gòu)。/另外在此設(shè)置一個(gè)全局變量,用來辨別路由表中信息的結(jié)束。TNode end=,0,;copy(char *str1,char *str2)int i; char *temp = str2; for(i=0;*temp!=0;i+) *(str1+i)=*(str2+i); temp+; *(str1+i)=0; /第一步:待設(shè)計(jì)好需要的結(jié)構(gòu)模型后,接下來開始根據(jù)路由節(jié)點(diǎn)的個(gè)數(shù)及鏈路數(shù)進(jìn)滁州學(xué)院本科課程設(shè)計(jì)9 / 20行網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的構(gòu)造,詳細(xì)代碼如下:Graph Create()Graph G;int i,j,k,count;char v120,v220;printf(分別輸入網(wǎng)絡(luò)

15、拓?fù)浣Y(jié)構(gòu)中的路由數(shù)和鏈路數(shù)(中間用逗號(hào)隔開):n);scanf(%d,%d,&G.vexnum,&G.arcnum);printf(分別輸入路由器名稱及路由表n);int LocateVex(Graph *G,char s);void initRoute(Graph *G,int i,int j);for(i=0;iG.vexnum;i+)/構(gòu)造路由結(jié)點(diǎn)count=0;printf(輸入第%d 個(gè)路由器名稱:n,i+1);scanf(%s,G.vexi.r);G.vexi.t0=end;for(i=0;iG.vexnum;i+)/初始化鄰接矩陣for(j=0;jG.vexnum

16、;j+)G.arcsij.adj=10000;for(k=0;kG.arcnum;k+)/構(gòu)造鄰接矩陣printf(輸入第%d 條鏈路的兩端路由器的名稱:n,k+1);scanf(%s%s,v1,v2);/用 scanf 輸入多個(gè)字符串,中間用空格隔開。i=LocateVex(&G,v1);j=LocateVex(&G,v2);G.arcsij.adj=1;G.arcsji.adj=1;/初始化該鏈路兩端路由節(jié)點(diǎn)的路由表。initRoute(&G,i,j);return G;int compare(char a,char b);void printG(Graph *G)

17、;void insertNewRoute(Graph *G);/其中的 LocateVex()函數(shù)用來確定 s 在圖中的位置,具體實(shí)現(xiàn)如下:int LocateVex(Graph *G,char s)int i;for(i=0;i(*G).vexnum;i+)滁州學(xué)院本科課程設(shè)計(jì)10 / 20 if(compare(s,(*G).vexi.r)=1)return i;return -1;/第二步:構(gòu)造完網(wǎng)路拓?fù)鋱D后,接下來進(jìn)行拓?fù)浣Y(jié)構(gòu)中路由節(jié)點(diǎn)的路由表信息的初始化。void initRoute(Graph *G,int i,int j)int m,n;for(m=0;(*G).vexi.tm.

18、distance!=0;m+);copy(*G).vexi.tm.destination,(*G).vexj.r);(*G).vexi.tm.distance=1;copy(*G).vexi.tm.nextjump,(*G).vexi.r);(*G).vexi.tm+1=end;for(n=0;(*G).vexj.tn.distance!=0;n+);copy(*G).vexj.tn.destination,(*G).vexi.r);(*G).vexj.tn.distance=1;copy(*G).vexj.tn.nextjump,(*G).vexj.r);(*G).vexj.tn+1=end

19、;/第三步:開始進(jìn)行鄰接節(jié)點(diǎn)的路由信息廣播:void Exchange(Graph *G)int i,j,k,h,count;char c; TNode temp;for(i=0;i(*G).vexnum;i+)for(j=0;j16) temp.distance=16;copy(temp.nextjump,(*G).vexi.r);count=0;for(h=0;(*G).vexj.th.distance!=0;h+)滁州學(xué)院本科課程設(shè)計(jì)11 / 20if(compare(temp.destination,(*G).vexj.r)=1)/表明該條路由信息的目的地址指向的是路由結(jié)點(diǎn) j 本身,

20、因而不需要更新及修改。count+;break;if(compare(*G).vexj.th.destination,temp.destination)=1)count+;if(compare(*G).vexj.th.nextjump,temp.nextjump)=1)(*G).vexj.th.distance=temp.distance;else if(*G).vexj.th.distancetemp.distance)(*G).vexj.th.distance=temp.distance;copy(*G).vexj.th.nextjump,temp.nextjump);if(count=0

21、)copy(*G).vexj.th.destination,temp.destination);(*G).vexj.th.distance=temp.distance;copy(*G).vexj.th.nextjump,temp.nextjump);(*G).vexj.th+1=end;/printf(路由器%s 向路由器%s 發(fā)送消息n,(*G).vexi.r,(*G).vexj.r);printG(G);/printf(若需在原有網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中增加新的節(jié)點(diǎn),請(qǐng)輸入#鍵n);getchar();scanf(%c,&c);if(c=#)insertNewRoute(G);滁州學(xué)院本科課

22、程設(shè)計(jì)12 / 20/第四步:增加路由表,實(shí)現(xiàn)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動(dòng)態(tài)變化及路由表信息的動(dòng)態(tài)更新與維護(hù)。void insertNewRoute(Graph *G)int i,j,nVexNum,nArcNum,k,num;char v120,v220;printf(分別輸入新增加的路由數(shù)和鏈路數(shù)(中間用逗號(hào)隔開):n);scanf(%d,%d,&nVexNum,&nArcNum);printf(分別輸入路由器名稱及路由表n);for(num=0;numnVexNum;num+)printf(輸入新增第%d 個(gè)路由器名稱:n,num+1);scanf(%s,(*G).vexnum+(*

23、G).vexnum.r);(*G).vexnum+(*G).vexnum.t0=end; (*G).vexnum+=nVexNum;(*G).arcnum+=nArcNum;for(k=0;knArcNum;k+)/構(gòu)造鄰接矩陣printf(輸入新增路由節(jié)點(diǎn)后第%d 條鏈路的兩端路由器的名稱:n,k+1);scanf(%s%s,v1,v2);/用 scanf 輸入多個(gè)字符串,中間用空格隔開。i=LocateVex(G,v1);j=LocateVex(G,v2);(*G).arcsij.adj=1; (*G).arcsji.adj=1; initRoute(G,i,j);for(i=0;i(*G

24、).vexnum;i+)/初始化鄰接矩陣for(j=0;j(*G).vexnum;j+)if(*G).arcsij.adj!=1)(*G).arcsij.adj=10000;Exchange(G);/下面是系統(tǒng)設(shè)計(jì)過程中所需的輔助自定義函數(shù)。int compare(char a,char b)int j; for(j=0;aj!=0&bj!=0;j+)if(aj!=bj)return 0;滁州學(xué)院本科課程設(shè)計(jì)13 / 20return 1;/顯示網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu):void printG(Graph *G)int i,j;for(i=0;i(*G).vexnum;i+)printf(t 路t

25、 由t 器%s:n,(*G).vexi.r);printf(目的地址tt 距離tt 下一跳nn);for(j=0;(*G).vexi.tj.distance!=0;j+)printf(%sttt%dtt%snn,(*G).vexi.tj.destination,(*G).vexi.tj.distance,(*G).vexi.tj.nextjump);printf(nn);/顯示指定路由節(jié)點(diǎn) v 的路由表:void printv(VNode v)int i;printf(t 路t 由t 器%sn,v.r);printf(目的地址tt 距離tt 下一跳nn); for(i=0;v.ti.dista

26、nce!=0;i+)printf(%sttt%dtt%snn,v.ti.destination,v.ti.distance,v.ti.nextjump); printf(nn);/通過主函數(shù)進(jìn)行函數(shù)的調(diào)用運(yùn)行:void main()Graph G=Create();printG(&G);Exchange(&G);滁州學(xué)院本科課程設(shè)計(jì)14 / 205設(shè)計(jì)過程關(guān)鍵問題及其解決辦法設(shè)計(jì)過程關(guān)鍵問題及其解決辦法5.15.1 如何如何實(shí)現(xiàn)廣播本地路由及更新動(dòng)態(tài)更新路由表。實(shí)現(xiàn)廣播本地路由及更新動(dòng)態(tài)更新路由表。路由器最初啟動(dòng)時(shí)只包含了其直連網(wǎng)絡(luò)的路由信息,并且其直連網(wǎng)絡(luò)的 metric 值

27、為1,然后它向周圍的其他路由器發(fā)出完整路由表的 RIP 請(qǐng)求。路由器根據(jù)接收到的 RIP 應(yīng)答來更新其路由表,具體方法是添加新的路由表項(xiàng),并將其 metric 值加 1。如果接收到與已有表項(xiàng)的目的地址相同的路由信息,則分下面四種情況分別對(duì)待:第一種情況,已有表項(xiàng)的來源端口與新表項(xiàng)的來源端口相同,那么無條件根據(jù)最新的路由信息更新其路由表;第二種情況,已有表項(xiàng)與新表項(xiàng)來源于不同的端口,那么比較它們的 metric 值,將 metric值較小的一個(gè)最為自己的路由表項(xiàng);第三種情況,新舊表項(xiàng)的 metric 值相等,普遍的處理方法是保留舊的表項(xiàng)。第四種情況,新表項(xiàng)在該路由表中不存在,則將跳數(shù)加一,嚇一跳

28、改為原發(fā)送路由器后添加到表項(xiàng)后。 5.25.2 如何在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)改變后實(shí)現(xiàn)動(dòng)態(tài)更新維護(hù)路由表。如何在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)改變后實(shí)現(xiàn)動(dòng)態(tài)更新維護(hù)路由表。首先要實(shí)現(xiàn)新添加路由表的路由信息初始化,而后再更新與之相鄰的路由節(jié)點(diǎn)的路由信息,接下來就進(jìn)行路由信息的鄰接節(jié)點(diǎn)廣播,從而達(dá)到全網(wǎng)絡(luò)的路由信息更新。6程序設(shè)計(jì)結(jié)果界面演示程序設(shè)計(jì)結(jié)果界面演示6.16.1 設(shè)計(jì)結(jié)果演示設(shè)計(jì)結(jié)果演示程序運(yùn)行過程演示以及結(jié)果如下:1分別從鍵盤輸入網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的路由數(shù)和鏈路數(shù)(中間用逗號(hào)隔開)例如輸入 3,2 表示共有兩個(gè)路由器和一條鏈路,如圖 1-1 所示拓?fù)浣Y(jié)構(gòu): 圖 1-12再分別輸入各個(gè)路由器名稱及其鏈路(中間用空格隔

29、開)例如分別依次輸入第一個(gè)路由器名稱 v1 ,第二個(gè)路由器名稱 v2 及兩個(gè)路由器間的鏈路v1 v2.程序輸入數(shù)據(jù)界面與按下 ENTER 鍵后各路由表的初始路由信息如圖 1-2滁州學(xué)院本科課程設(shè)計(jì)15 / 20 4接下來改變?cè)季W(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),增加新的路由節(jié)點(diǎn),如圖 1-3 中拓?fù)浣Y(jié)構(gòu)所示: 圖 1-3運(yùn)行命令后輸入如下:輸入新增第 1 個(gè)路由器名稱:v4輸入新增路由節(jié)點(diǎn)后第 1 條鏈路的兩端路由器的名稱:v2 v4 增加路由結(jié)點(diǎn)輸入界面如圖 1-4 所示:滁州學(xué)院本科課程設(shè)計(jì)16 / 20 圖 1-4按下 ENTER 鍵程序進(jìn)行 v4 路由器的路由表信息初始化及路由信息廣播:V4 路由表初始信息動(dòng)態(tài)生成如圖 1-7: 圖 1-5V2 向 v4 廣播信息如圖 1-6 所示: 圖 1-6幾輪廣播信息結(jié)束后,各路由節(jié)點(diǎn)路由信息如下圖 1-7 與 1-8 所示:滁州學(xué)院本科課程設(shè)計(jì)17 / 20圖 1-8 圖 1-95.若還需要在原有的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中繼續(xù)增加新的節(jié)點(diǎn),再輸入#鍵,按以上步驟繼續(xù)操作,能實(shí)現(xiàn)不斷增加路由結(jié)點(diǎn)以及鏈路,并將路由表的持續(xù)更新。滁州學(xué)院本科課程設(shè)計(jì)18 / 207課程設(shè)計(jì)總結(jié)與體會(huì)課程設(shè)計(jì)總結(jié)與體會(huì)7.17

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論