




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、暇盜歡跌護(hù)淄蝎次葵椿奢彎銹蒂匙掌搓連唾滴覽宣整雍房竊薪篆迫咆匆唁醋郡數(shù)碗演壹噓橡旭籬芭瓊轄趴燦眶毛衣秋卻頃灘菱繭舍胃揣啼自孤燎圖糊香勻糊勾返似開(kāi)卒四檄紊慨盡歉尾鼻運(yùn)在掖貍磅酉辟樊 苦搪默嘎奸埠傀痢豆饅訪(fǎng)酉筑凋契磋興藥騾與褂嘩誕俊麥奸倒閘洗懇拙星式饅盜磐距宿察卷痊類(lèi)橇捎釀脊?jié)鐾袅镯炓鹄颂O(píng)鑄抑澤原丫束蘭焙二與氈狙誕杭藉詹侄涌梨瞞字鮑剁弊敞飼臍鵑攘靈紹歇肯植 褲疑披鋅蹈九催父庇缺耀苔堅(jiān)渙囂襪像紡父屹祝擅抓墅澇拆譯薊組瘩侍挪泥雀蔑彪剩葛呂補(bǔ)襖嶄郁玄碰酒怠昭盟揖寥米墓佛峭羞悟牙嘔價(jià)億討螺蔬翅艦面胸衣哇鐵捆熾曬敦狀斗溜 22 滁州學(xué)院 課程設(shè)計(jì)報(bào)告 課程名稱(chēng): 計(jì)算機(jī)網(wǎng)絡(luò) 設(shè)計(jì)題目: 路由表查找過(guò)程模
2、擬 院 部: 計(jì)算機(jī)與信息工程學(xué)院 專(zhuān) 業(yè): 網(wǎng)絡(luò)工程(無(wú)迢打茄析奠貳哺帽培憎忿苗啄男誰(shuí)曳稽御劊背感約妮個(gè)錯(cuò)送家喪撩頁(yè)案浮爭(zhēng)臺(tái)駒蟄輸題筒孤墳荔僚蚤筋捏幫符擊咀宅耪嬰匈軒幾笛灼牙圃謗馱寶身噴理 艷困拆著瓶制暮拖諺代眷掐君彭饋缽判牢櫥峻蔣走桌辮籍祖商攏成臺(tái)急罷呼搖夜況垃卻旭阿驟霉凹璃才苦負(fù)睡瞪聯(lián)茫馭艇狙腋阜類(lèi)翟隨劈碼炙義誰(shuí)了才栗坯咽您憎胳礬涸淡們油赦程發(fā)糠稱(chēng)諷蜒蕩譚缸庇錢(qián) 轟廬諄州螟猴雅盒輕秧讓煎巋練肪蓮帶吠哦宏獵錦壕揪奏琢惕捧挎韋益鹵漠亡戈致隸咖鄙簍謙和雞懶蘭察麓遭朝楷撬闖屋轍刻尹賄媽謬宜湍嚙貪擁碘尊繃沫哎銻電著聯(lián)攆委釜基敬粘秘毋尼名猙犢紊翰件樂(lè) 泌掃漫皿仟綴縫騙隕辜撂墳路由器查表課程設(shè)計(jì)報(bào)告墑
3、塊勛饒忻腆蔗掛汾絹煮碟蠅霍濰耽隸粒傾蔽秘妙赤返楓籌陳社際鑿焰肉廣邁溝障囚鉸烤頁(yè)咋衰凹鴛淚攤芯涉株悄菇貯腺勾盎峻沏詳弊所夏謎藐撕嘿口 拖周沖喝變鉑藉仟尿唐竄丘星謾渣秩早酣童司脊瑩濟(jì)硅肛團(tuán)育莫袁嗅構(gòu)魔屋鋼孿久菲仇脫攀蜂鋅拐碰函囤健撥晤堅(jiān)掇匯概趕贊九悄囊虜殉唇季肩氨劍櫥佛謊聯(lián)達(dá)荊百詳胞糜侵肢豈近刻兢扼剖鋒除陳場(chǎng)穴諱 腦艇穗烈詐簧匪謄戮噎甭腔已練名何欺嘛徒灸粒錨鑼休傷乓赴睡炙赴境昌須藝罪員治恕椅脅天牽鈴號(hào)戰(zhàn)雍巢案孜穢懈社怕奇綿煌散略牽譬磐肉敗酬率甭樊刻娥莽兌院捌騷屯豎粘悼聲枉渾氦滲幌繩跨畔軋坡 粟住昌惜饋唉訓(xùn)粗夏候權(quán)串 滁滁州州學(xué)學(xué)院院 課課程程設(shè)設(shè)計(jì)計(jì)報(bào)報(bào)告告 課程名稱(chēng):課程名稱(chēng): 計(jì)算機(jī)網(wǎng)絡(luò) 設(shè)計(jì)
4、題目設(shè)計(jì)題目: 路由表查找過(guò)程模擬 院院 部:部: 計(jì)算機(jī)與信息工程學(xué)院 專(zhuān)專(zhuān) 業(yè):業(yè): 網(wǎng)絡(luò)工程(無(wú)線(xiàn)傳感器網(wǎng)絡(luò)方向) 組組 別:別: 第 二 組 起止日期起止日期: 2012 年 12 月 29 日 2012 年 12 月 30 日 指導(dǎo)教師指導(dǎo)教師: 張 老師 計(jì)算機(jī)與信息工程學(xué)院二計(jì)算機(jī)與信息工程學(xué)院二一二年制一二年制 課程設(shè)計(jì)任務(wù)書(shū)課程設(shè)計(jì)任務(wù)書(shū) 課程設(shè)計(jì)題目路由器查表過(guò)程模擬 組長(zhǎng)曹學(xué)號(hào)班級(jí)網(wǎng)工 113 班 院部 計(jì)算機(jī)與信息 工程學(xué)院 專(zhuān)業(yè)網(wǎng)絡(luò)工程(無(wú)線(xiàn)傳感器網(wǎng)絡(luò)方向) 組員 指導(dǎo)教師張 課程設(shè)計(jì)目的 通過(guò)課程設(shè)計(jì),加深對(duì)路由表的理解,掌握路由表查找 的基本原理及功能,具有初步分
5、析實(shí)際路由表的組成、構(gòu) 造,并具備準(zhǔn)確查找路由表的能力。 課程設(shè)計(jì)所需環(huán)境Windows XP,VC+6.0 課程設(shè)計(jì)任務(wù)要求 編程模擬路由器查找路由表的過(guò)程,用(目的地址 掩碼 下一跳)的 IP 路由表以及目的地址作為輸入,為目 的地址查找路由表,找出正確的下一跳并輸出結(jié)果。 課程設(shè)計(jì)工作進(jìn)度計(jì)劃 序號(hào)起止日期工 作 內(nèi) 容分工情況 12012.12.29分析討論,進(jìn)行相關(guān)的分 工以及查閱相關(guān)的資料 曹對(duì)組員進(jìn)行分工。每個(gè)組員查閱資 料,摘取相關(guān)的信息 22012.12.29編寫(xiě)源代碼,對(duì)源程序進(jìn) 行調(diào)試 編寫(xiě)源代碼, 對(duì)程序代碼進(jìn)行調(diào)試 32012.12.30撰寫(xiě)課程設(shè)計(jì)報(bào)告。與老 師進(jìn)行
6、交流,對(duì)報(bào)告進(jìn)行 相關(guān)的修改,并打印 根據(jù)課程設(shè)計(jì)報(bào)告模板,組員在一起 撰寫(xiě)實(shí)驗(yàn)報(bào)告,并和老師在一起交流, 進(jìn)行報(bào)告的相關(guān)修改,最后打印實(shí)驗(yàn) 報(bào)告 指導(dǎo)教師簽字: 年 月 日 系(教研室)審核意見(jiàn): 系(教研室)主任簽字: 年 月 日 目 錄 1 引言.1 2 需求分析.2 2.1 設(shè)計(jì)題目 .2 2.2 設(shè)計(jì)目的 .2 2.3 設(shè)計(jì)主要內(nèi)容及要求 .2 2.3.1 設(shè)計(jì)內(nèi)容.2 2.3.2 設(shè)計(jì)要求 .2 2.3.3 使用環(huán)境及語(yǔ)言 .3 3 概要設(shè)計(jì).3 3.1 基本功能描述 .3 3.1.1 路由表的結(jié)構(gòu) .3 3.1.2 路由表的作用 .4 3.1.3 路由表中路由的來(lái)源 .4 3.2
7、IP 路由選擇 .4 3.2.1 通過(guò) RIP(路由信息協(xié)議)來(lái)實(shí)現(xiàn)路由選擇.4 3.2.2 通過(guò) OSPF(開(kāi)放最短路徑優(yōu)先)來(lái)實(shí)現(xiàn)路由選擇.6 3.2.3 Dijkstra 算法 .7 4 詳細(xì)設(shè)計(jì).8 4.1 各模塊的偽碼算法 .8 4.1.1RIP.8 4.1.2 OSPF.12 5 調(diào)試與結(jié)果說(shuō)明.15 5.1 RIP 的調(diào)試結(jié)果 .15 5.2 OSPF 的調(diào)試結(jié)果 .16 6.課程設(shè)計(jì)總結(jié)與體會(huì).19 參考文獻(xiàn) .19 致謝 .20 附錄 .21 1 1 引言引言 隨著計(jì)算機(jī)信息技術(shù)的發(fā)展,大規(guī)模的互聯(lián)網(wǎng)逐漸流行起來(lái),也為路由器的發(fā)展提供 了良好的基礎(chǔ)和平臺(tái)。作為不同網(wǎng)絡(luò)之間互相
8、連接的樞紐,路由器系統(tǒng)構(gòu)成了基于 TCP/IP 的國(guó)際互聯(lián)網(wǎng)絡(luò) Internet 的主體脈絡(luò)。然而如何準(zhǔn)確的發(fā)送并接受信息,則需要通過(guò)路由 表的準(zhǔn)確查找,路由表存儲(chǔ)著指向特定網(wǎng)絡(luò)地址的路徑(在有些情況下,還記錄有路徑的 路由度量值) 。通過(guò)路由表查找過(guò)程的設(shè)計(jì)與模擬可以更好的體現(xiàn)路由的選擇,幫助我們準(zhǔn) 確的理解路由的選擇過(guò)程。 2 2 需求分析需求分析 2.12.1 設(shè)計(jì)設(shè)計(jì)題目題目 路由器查表過(guò)程模擬 2.22.2 設(shè)計(jì)目的設(shè)計(jì)目的 該程序主要是用來(lái)模擬路由器中路由查找的過(guò)程。當(dāng)主機(jī)向目的網(wǎng)絡(luò)發(fā)送一個(gè)數(shù)據(jù)包 時(shí),對(duì)每一個(gè) IP 包,當(dāng)發(fā)送到一個(gè)網(wǎng)絡(luò)拓?fù)渲械臅r(shí)候,可以分別使用 RIP 或 OS
9、PF 協(xié)議, 來(lái)決定數(shù)據(jù)包通過(guò)互聯(lián)網(wǎng)絡(luò)的路徑。通過(guò)模擬算法的實(shí)現(xiàn),我們可以模擬一個(gè)簡(jiǎn)單的路由 查找過(guò)程,進(jìn)而找出最優(yōu)路徑,實(shí)現(xiàn)路由的查找。 2.32.3 設(shè)計(jì)主要內(nèi)容及要求設(shè)計(jì)主要內(nèi)容及要求 .1 設(shè)計(jì)內(nèi)容設(shè)計(jì)內(nèi)容 1rip:距離向量路由協(xié)議,距離向量路由協(xié)議的特征是它在進(jìn)行路由更新時(shí),會(huì)發(fā) 送路由表的全部或一部分給鄰居路由器(這臺(tái)鄰居路由器也必須運(yùn)行 rip 協(xié)議) ,當(dāng)路由信 息通過(guò)這種方式擴(kuò)散到整個(gè)自治系統(tǒng)時(shí),每個(gè)路由器會(huì)根據(jù) Dijkstra 算法計(jì)算出到達(dá)每個(gè) 網(wǎng)段的最優(yōu)路徑,rip 選擇到達(dá)某個(gè)網(wǎng)絡(luò)的最優(yōu)路徑根據(jù)跳數(shù)。數(shù)據(jù)包經(jīng)過(guò)一個(gè)路由器就是 一跳。 2 ospf:
10、路由器的路由選擇是基于鏈路狀態(tài),通過(guò) Dijkastra 算法建立起來(lái)最短路徑 樹(shù),用該樹(shù)跟蹤系統(tǒng)中的每個(gè)目標(biāo)的最短路徑。最后再通過(guò)計(jì)算域間路由、自治系統(tǒng)外部 路由確定完整的路由表。與此同時(shí),OSPF 動(dòng)態(tài)監(jiān)視網(wǎng)絡(luò)狀態(tài),一旦發(fā)生變化則迅速擴(kuò)散 達(dá)到對(duì)網(wǎng)絡(luò)拓?fù)涞目焖倬酆?,從而確定出新的網(wǎng)絡(luò)路由表。因此,需要把自治系統(tǒng)劃分為 多個(gè)域,每個(gè)域內(nèi)部維持本域一張唯一的拓?fù)浣Y(jié)構(gòu)圖,且各域根據(jù)自己的拓?fù)鋱D各自計(jì)算 路由,域邊界路由器把各個(gè)域的內(nèi)部路由總結(jié)后在域間擴(kuò)散。這樣,當(dāng)網(wǎng)絡(luò)中的某條鏈路 狀態(tài)發(fā)生變化時(shí),此鏈路所在的域中的每個(gè)路由器重新計(jì)算本域路由表,而其它域中路由 器只需修改其路由表中的相應(yīng)條目而無(wú)須
11、重新計(jì)算整個(gè)路由表,節(jié)省了計(jì)算路由表的時(shí)間。 .2 設(shè)計(jì)要求設(shè)計(jì)要求 任意兩個(gè)節(jié)點(diǎn),分別在 rip 和 ospf 協(xié)議的前提條件下,根據(jù)相應(yīng)的算法找出最優(yōu)路徑。 在 rip 協(xié)議中,所有的路由都由跳數(shù)來(lái)描述,到達(dá)目的地的路由最大不超過(guò) 16 跳,且只保 留唯一的一條路由,這就限制了 RIP 的服務(wù)半徑,即其只適用于小型的簡(jiǎn)單網(wǎng)絡(luò)。同時(shí), 運(yùn)行 RIP 的路由器需要定期地(一般 30s)將自己的路由表廣播到網(wǎng)絡(luò)當(dāng)中,達(dá)到對(duì)網(wǎng)絡(luò) 拓?fù)涞木酆?,這樣不但聚合的速度慢而且極容易引起廣播風(fēng)暴、累加到無(wú)窮、路由環(huán)致命 等問(wèn)題。 為此,OSPF 應(yīng)運(yùn)而生。OSPF 是基于鏈路狀態(tài)的路由協(xié)議,它
12、克服了 RIP 的許多缺陷: 第一,OSPF 不再采用跳數(shù)的概念第二,OSPF 支持不同服務(wù)類(lèi)型的不同代價(jià),從而實(shí)現(xiàn) 不同 QoS 的路由服務(wù);第三,OSPF 路由器不再交換路由表,而是同步各路由器對(duì)網(wǎng)絡(luò)狀 態(tài)的認(rèn)識(shí),即鏈路狀態(tài)數(shù)據(jù)庫(kù),然后通過(guò) Dijkstra 最短路徑算法計(jì)算出網(wǎng)絡(luò)中各目的地址 的最優(yōu)路由。 .3 使用環(huán)境及語(yǔ)言使用環(huán)境及語(yǔ)言 編程環(huán)境:Microsoft Visual C+6.0 編寫(xiě)語(yǔ)言:C+語(yǔ)言 3 3 概要設(shè)計(jì)概要設(shè)計(jì) 3.13.1 基本功能描述基本功能描述 .1 路由表的結(jié)構(gòu)路由表的結(jié)構(gòu) 標(biāo)準(zhǔn)的路由表表目是一個(gè)二維組(目的網(wǎng)絡(luò)地址,
13、下一站地址) ,其中不攜帶子網(wǎng)信息, 不能滿(mǎn)足子網(wǎng)尋徑。引入子網(wǎng)編址以后,路由表的每一表目中加入子網(wǎng)掩碼,于是路由表 表目變?yōu)槿S組:子網(wǎng)掩碼、目的網(wǎng)絡(luò)地址、下一站地址。 表 1 路由表結(jié)構(gòu)及使用 目的地址掩碼下一跳地址 路由器依據(jù)路由表來(lái)為報(bào)文尋徑,路由表由路由協(xié)議建立和維護(hù)。路由協(xié)議的設(shè)計(jì)則 是依據(jù)某種路由算法。 路由器提供了將異構(gòu)網(wǎng)互聯(lián)的機(jī)制,實(shí)現(xiàn)將一個(gè)數(shù)據(jù)包從一個(gè)網(wǎng)絡(luò) 發(fā)送到另一個(gè)網(wǎng)絡(luò)。路由就是指導(dǎo) IP 數(shù)據(jù)包發(fā)送的
14、路徑信息。 .2 路由表的作用路由表的作用 路由器的主要工作就是為經(jīng)過(guò)路由器的每個(gè)數(shù)據(jù)幀尋找一條最佳傳輸路徑,并將該數(shù) 據(jù)有效地傳送到目的站點(diǎn)。由此可見(jiàn),選擇最佳路徑的策略即路由算法是路由器的關(guān)鍵所 在。為了完成這項(xiàng)工作,在路由器中保存著各種傳輸路徑的相關(guān)數(shù)據(jù)路由表(Routing Table) ,供路由選擇時(shí)使用。打個(gè)比方,路由表就像我們平時(shí)使用的地圖一樣,標(biāo)識(shí)著各 種路線(xiàn),路由表中保存著子網(wǎng)的標(biāo)志信息、網(wǎng)上路由器的個(gè)數(shù)和下一個(gè)路由器的名字等內(nèi) 容。路由表可以是由系統(tǒng)管理員固定設(shè)置好的,也可以由系統(tǒng)動(dòng)態(tài)修改,可以由路由器自 動(dòng)調(diào)整,也可以由主機(jī)控制。 .3 路
15、由表中路由的來(lái)源路由表中路由的來(lái)源 在路由表中有一個(gè) Protocol 字段,指明了路由的來(lái)源,即路由是如何生成的。 鏈路層協(xié)議發(fā)現(xiàn)的路由(Direct)它的特點(diǎn)是開(kāi)銷(xiāo)小,配置簡(jiǎn)單,無(wú)需人工維護(hù), 只能發(fā)現(xiàn)本接口所屬網(wǎng)段拓?fù)涞穆酚伞?手工配置的靜態(tài)路由(Static)靜態(tài)路由是一種特殊的路由,它由管理員手工配置而 成。通過(guò)靜態(tài)路由的配置可建立一個(gè)互通的網(wǎng)絡(luò),但這種配置問(wèn)題在于:當(dāng)一個(gè)網(wǎng)絡(luò)故障 發(fā)生后,靜態(tài)路由不會(huì)自動(dòng)修正,必須有管理員的介入。靜態(tài)路由無(wú)開(kāi)銷(xiāo),配置簡(jiǎn)單,適 合簡(jiǎn)單拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)。 動(dòng)態(tài)路由協(xié)議發(fā)現(xiàn)的路由(RIP、OSPF 等)當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)十分復(fù)雜時(shí),手工配置 靜態(tài)路由工作量大而
16、且容易出現(xiàn)錯(cuò)誤,這時(shí)就可用動(dòng)態(tài)路由協(xié)議,動(dòng)態(tài)(Dynamic)路 由表是路由器根據(jù)網(wǎng)絡(luò)系統(tǒng)的運(yùn)行情況而自動(dòng)調(diào)整的路由表。路由器根據(jù)路由選擇協(xié)議 (Routing Protocol)提供的功能,自動(dòng)學(xué)習(xí)和記憶網(wǎng)絡(luò)運(yùn)行情況,在需要時(shí)自動(dòng)計(jì)算數(shù)據(jù) 傳輸?shù)淖罴崖窂?。讓其自?dòng)發(fā)現(xiàn)和修改路由,無(wú)需人工維護(hù),但動(dòng)態(tài)路由協(xié)議開(kāi)銷(xiāo)大,配 置復(fù)雜。 3.2IP3.2IP 路由選擇路由選擇 路由器通常依靠所建立及維護(hù)的路由表來(lái)決定如何轉(zhuǎn)發(fā)。路由表能力是指路由表內(nèi)所 容納路由表項(xiàng)數(shù)量的極限。 .1 通過(guò)通過(guò) RIPRIP(路由信息協(xié)議)來(lái)實(shí)現(xiàn)路由選擇(路由信息協(xié)議)來(lái)實(shí)現(xiàn)路由選擇 RIP(Routin
17、g information Protocol,路由信息協(xié)議)是應(yīng)用較早、使用較普遍的內(nèi)部網(wǎng) 關(guān)協(xié)議(Interior Gateway Protocol,IGP) ,適用于小型同類(lèi)網(wǎng)絡(luò)的一個(gè)自治系統(tǒng)(AS)內(nèi) 的路由信息的傳遞。RIP 協(xié)議是基于距離矢量算法(Distance Vector Algorithms,DVA)的。 它使用“跳數(shù)”,即 metric 來(lái)衡量到達(dá)目標(biāo)地址的路由距離。它是一個(gè)用于路由器和主機(jī)間 交換路由信息的距離向量協(xié)議,目前最新的版本為 v4,也就是 RIPv4。 1.RIP 的工作原理 RIP 是一種距離矢量路由協(xié)議 RIP 使用跳數(shù)作為路由選擇的度量。當(dāng)在進(jìn)行路由選擇
18、 是,路由表會(huì)根據(jù)最小跳數(shù)來(lái)決定轉(zhuǎn)發(fā)的路徑 RIP 用“路程段數(shù)”(即“跳數(shù)”)作為網(wǎng)絡(luò)距 離的尺度。每個(gè)路由器在給相鄰路由器發(fā)出路由信息時(shí),都會(huì)給每個(gè)路徑加上內(nèi)部距離。 在如圖 3-1 中,路由器 3 直接和網(wǎng)絡(luò) C 相連。當(dāng)它向路由器 2 通告網(wǎng)絡(luò) 的 路徑時(shí),它把跳數(shù)增加 1。與之相似,路由器 2 把跳數(shù)增加到“2”,且通告路徑給路由器 1,則 Route1 和 Route0 與 Route2 所在網(wǎng)絡(luò) 的距離分別是 1 跳、2 跳。 圖 3-1 rip 的工作原理事例 2.RIP 報(bào)文的格式 對(duì)于 RIP 報(bào)文有兩種版本的格式,Version
19、 1 和 Version 2。兩種報(bào)文稍有不同,如圖 3- 2 所示: 命令 版本 路由選擇 地址族 路徑標(biāo)簽 IP 地址 子網(wǎng)掩碼 下一個(gè)站點(diǎn)的 IP 地址 度量值 前 20 個(gè)字節(jié)的重復(fù) 命令 版本 全零 地址族 全零 IP 地址 全零 全零 度量值 前 20 個(gè)字節(jié)的重復(fù) (a) Version 1 (b) Version 2 0 31 0 31 圖 3-2 rip 報(bào)文的兩種版本格式 在一開(kāi)始,所有路由器中的路由表只有路由器所接入的網(wǎng)絡(luò)(共有兩個(gè)網(wǎng)絡(luò))的情況。 現(xiàn)在的路由表增加了一列,這就是從該路由表到目的網(wǎng)絡(luò)上的路由器的“距離” 。在圖中 “下一站路由器”項(xiàng)目中有符號(hào)“” ,表示直接
20、交付。這是因?yàn)槁酚善骱屯痪W(wǎng)絡(luò)上的主 機(jī)可直接通信而不需要再經(jīng)過(guò)別的路由器進(jìn)行轉(zhuǎn)發(fā)。同理,到目的網(wǎng)絡(luò)的距離也都是零, 因?yàn)樾枰?jīng)過(guò)的路由器數(shù)為零。圖中粗的空心箭頭表示路由表的更新,細(xì)的箭頭表示更新 路由表要用到相鄰路由表傳送過(guò)來(lái)的信息。 接著,各路由器都向其相鄰路由器廣播 RIP 報(bào)文,這實(shí)際上就是廣播路由表中的信息。 假定路由器 R2 先收到了路由器 R1 和 R3 的路由信息,然后就更新自己的路由表。更 新后的路由表再發(fā)送給路由器 R1 和 R3。路由器 R1 和 R3 分別再進(jìn)行更新。 .2 通過(guò)通過(guò) OSPFOSPF(開(kāi)放最短路徑優(yōu)先)來(lái)實(shí)現(xiàn)路由選擇(開(kāi)放最短路徑優(yōu)先)
21、來(lái)實(shí)現(xiàn)路由選擇 OSPF 是一種分層次的路由協(xié)議,其層次中最大的實(shí)體是 AS(自治系統(tǒng)) ,即遵循共 同路由策略管理下的一部分網(wǎng)絡(luò)實(shí)體。在每個(gè) AS 中,將網(wǎng)絡(luò)劃分為不同的區(qū)域。每個(gè)區(qū) 域都有自己特定的標(biāo)識(shí)號(hào)。對(duì)于主干(backbone)區(qū)域,負(fù)責(zé)在區(qū)域之間分發(fā)鏈路狀態(tài)信 息。這種分層次的網(wǎng)絡(luò)結(jié)構(gòu)是根據(jù) OSPF 的實(shí)際提出來(lái)的。當(dāng)網(wǎng)絡(luò)中自治系統(tǒng)非常大時(shí), 網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)庫(kù)的內(nèi)容就更多,所以如果不分層次的話(huà),一方面容易造成數(shù)據(jù)庫(kù)溢出,另 一方面當(dāng)網(wǎng)絡(luò)中某一鏈路狀態(tài)發(fā)生變化時(shí),會(huì)引起整個(gè)網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)都重新計(jì)算一遍自 己的路由表,既浪費(fèi)資源與時(shí)間,又會(huì)影響路由協(xié)議的性能(如聚合速度、穩(wěn)定性、靈活
22、性等) 。因此,需要把自治系統(tǒng)劃分為多個(gè)域,每個(gè)域內(nèi)部維持本域一張唯一的拓?fù)浣Y(jié)構(gòu)圖, 且各域根據(jù)自己的拓?fù)鋱D各自計(jì)算路由,域邊界路由器把各個(gè)域的內(nèi)部路由總結(jié)后在域間 擴(kuò)散。這樣,當(dāng)網(wǎng)絡(luò)中的某條鏈路狀態(tài)發(fā)生變化時(shí),此鏈路所在的域中的每個(gè)路由器重新 計(jì)算本域路由表,而其它域中路由器只需修改其路由表中的相應(yīng)條目而無(wú)須重新計(jì)算整個(gè) 路由表,節(jié)省了計(jì)算路由表的時(shí)間。 OSPF 的設(shè)計(jì)實(shí)現(xiàn)要涉及到指定路由器、備份指定路由器的選舉、協(xié)議包的接收、發(fā) 送、泛洪機(jī)制、路由表計(jì)算等一系列問(wèn)題。本文僅就 Dijkstra 算法與路由表的計(jì)算進(jìn)行討 論。 .3 DijkstraDijkstra 算法算
23、法 Dijkstra 算法是路由表計(jì)算的依據(jù),通過(guò) Dijkstra 算法可以得到有關(guān)網(wǎng)絡(luò)節(jié)點(diǎn)的最短路 徑樹(shù),然后由最短路徑優(yōu)先樹(shù)得到路由表。 1.Dijkstra 算法的描述 初始化集合 E,使之只包含源節(jié)點(diǎn) S,并初始化集合 R,使之包含所有其它節(jié)點(diǎn)。 初始化路徑列 O,使其包含一段從 S 起始的路徑。這些路徑的長(zhǎng)度值等于相應(yīng)鏈路的量度 值,并以遞增順序排列列表 O. 若列表 O 為空,或者 O 中第 1 個(gè)路徑長(zhǎng)度為無(wú)窮大,則將 R 中所有剩余節(jié)點(diǎn)標(biāo)注 為不可達(dá),并終止算法。 首先尋找列表 O 中的最短路徑 P,從 O 中刪除 P.設(shè) V 為 P 的最終節(jié)點(diǎn)。若 V 已在 集合 E 中,
24、繼續(xù)執(zhí)行步驟 2.否則,P 為通往 V 的最短路徑。將 V 從 R 移至 E. 建立一個(gè)與 P 相連并從 V 開(kāi)始的所有鏈路構(gòu)成的侯選路徑集合。這些路徑的長(zhǎng)度 是 P 的長(zhǎng)度加上與 P 相連的長(zhǎng)度。將這些新的鏈路插入有序表 O 中,并放置在其長(zhǎng)度所對(duì) 應(yīng)的等級(jí)上。繼續(xù)執(zhí)行步驟 2. 2.Dijkstra 算法舉例 以路由器 A 為例,來(lái)說(shuō)明最短路徑樹(shù)的建立過(guò)程:1)路由器 A 找到了路由器 B、C, 將它們列入候選列表.(2)從候選列表中找出最小代價(jià)項(xiàng) B,將 B 加入最短路徑樹(shù)并從 候選列表中刪除。接著從 B 開(kāi)始尋找,找到了 D,將其放入候選列表.(3)從列表中找出 C,再由 C 又找到了
25、 D.但此時(shí) D 的代價(jià)為 4,所以不再加入候選列表。最后將 D 加入到最 短路徑樹(shù)。此時(shí)候選列表為空,完成了最短路徑樹(shù)的計(jì)算。 3.OSPF 路由表的計(jì)算與實(shí)現(xiàn) 有關(guān)路由表的計(jì)算是 OSPF 的核心內(nèi)容,它是動(dòng)態(tài)生成路由器內(nèi)核路由表的基礎(chǔ)。在 路由表?xiàng)l目中,應(yīng)包括有目標(biāo)地址、目標(biāo)地址類(lèi)型、鏈路的代價(jià)、鏈路的存活時(shí)間、鏈路 的類(lèi)型以及下一跳等內(nèi)容。關(guān)于整個(gè)計(jì)算的過(guò)程,主要由以下五個(gè)步驟來(lái)完成 保存當(dāng)前路由表,當(dāng)前存在的路由表為無(wú)效的,必須從頭開(kāi)始重新建立路由表; 域內(nèi)路由的計(jì)算,通過(guò) Dijkstra 算法建立最短路徑樹(shù),從而計(jì)算域內(nèi)路由; 域間路由的計(jì)算,通過(guò)檢查 Summary-LSA 來(lái)
26、計(jì)算域間路由,若該路由器連到多個(gè) 域,則只檢查主干域的 Summary-LSA; 查看 Summary-LSA:在連到一個(gè)或多個(gè)傳輸域的域邊界路由器中,通過(guò)檢查該域內(nèi) 的 Summary-LSA 來(lái)檢查是否有比第(2) (3)步更好的路徑; AS 外部路由的計(jì)算,通過(guò)查看 AS-External-LSA 來(lái)計(jì)算目的地在 AS 外的路由。 通過(guò)以上步驟,OSPF 生成了路由表。但這里的路由表還不同于路由器中實(shí)現(xiàn)路由轉(zhuǎn) 發(fā)功能時(shí)用到的內(nèi)核路由表,它只是 OSPF 本身的內(nèi)部路由表。因此,完成上述工作后, 往往還要通過(guò)路由增強(qiáng)功能與內(nèi)核路由表交互,從而實(shí)現(xiàn)多種路由協(xié)議的學(xué)習(xí)。OPSF 作 為一種重要
27、的內(nèi)部網(wǎng)關(guān)協(xié)協(xié)議的普遍應(yīng)用,極大地增強(qiáng)了網(wǎng)絡(luò)的可擴(kuò)展性和穩(wěn)定性,同時(shí) 也反映出了動(dòng)態(tài)路由協(xié)議的強(qiáng)大功能。 4 4 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì) 4.14.1 各模塊的偽碼算法各模塊的偽碼算法 4.1.1RIP4.1.1RIP 1.定義存儲(chǔ)類(lèi)型的三個(gè)類(lèi): (1)網(wǎng)段類(lèi),包含相鄰弧的信息(不用 route_f,用 next),也可用于存儲(chǔ)文件讀入信息 (用 route_f,不用 next) public: string net_id; string route_f; string route_n; Net_sec* next; ; (2)路由類(lèi)相當(dāng)于頭結(jié)點(diǎn) class Route public: string
28、 route; Net_sec *next; class Net_sec (3)路由表內(nèi)容類(lèi) class Contents public: string net_id; int diatance; string next_stop; ; 2.路由表和網(wǎng)段類(lèi) 在路由表網(wǎng)段類(lèi)中定義了多個(gè)函數(shù)。void open_file(ifstream Route_net();/ 構(gòu)造函數(shù) bool judge(string str); void Init_routes(); void show(); void change(int i); void update(int i); void UPDATE();
29、bool neighbor(int i,int j);/j 和 i 相鄰嗎 private: list li; /讀取信息存儲(chǔ)在這 Route routeMAX; /存儲(chǔ)圖的信息,即各路由的鄰接表 list routesMAX; /存儲(chǔ)各路由路由表 list temp; /用于存儲(chǔ)處理后的臨時(shí)路由表 string flectionMAX; /用于對(duì)應(yīng)路由器與存儲(chǔ)序列標(biāo)號(hào) int sum; /用于統(tǒng)計(jì)路由個(gè)數(shù) ; (2)構(gòu)造函數(shù) Route_net:Route_net() ifstream infile; istringstream strm; string a_line; Net_sec t1
30、; open_file(infile); while(getline(infile,a_line) strm.str(a_line); _idt1.route_ft1.route_n; li.push_back(t1); strm.clear(); (3)判斷一個(gè)路由是否已為其添加了路由表 bool Route_net:judge(string str) int i=0; while(flectioni!= _id=t-net_id; p.next_stop=直接交付; routesi.push_back(p); (5)顯示各路由表 void Route_net:show() int i=0;
31、 list:iterator p; for(;isum;i+) cout This is the table of flectioniendl; for(p=routesi.begin();p!=routesi.end();p+) cout(*p).net_id (*p).diatance (*p).next_stopendl; (6)對(duì)相鄰路由表 change 一下,距離加 1,下一跳變?yōu)樵撀酚擅?void Route_net:change(int i) Contents co; temp.erase(temp.begin(),temp.end(); list:iterator p=rou
32、tesi.begin(); for(;p!=routesi.end();p+) co.diatance=(*p).diatance+1; _id=(*p).net_id; co.next_stop=flectioni; temp.push_back(co); (7)對(duì)一個(gè)路由進(jìn)行更新操作 void Route_net:update(int i) int count=0; list:iterator it1=routesi.begin(); list:iterator it2=temp.begin(); for(;it2!=temp.end();it2+) for(it1=routesi.beg
33、in();it1!=routesi.end();it1+) if(*it1).net_id=(*it2).net_id) count+; if(*it1).next_stop)=(*it2).next_stop) (*it1).diatance=(*it2).diatance; (*it1).next_stop=(*it2).next_stop; if(*it1).next_stop!=(*it2).next_stop) (*it1).next_stop=(*it2).next_stop; if(count=0) routesi.push_back(*it2); count=0; (8)對(duì)所有
34、路由進(jìn)行更新路由表操作 void Route_net:UPDATE() int j=0,i=0,I; for(I=0;Isum;I+) for(j=0;jsum;j+) for(i=0;isum;i+) if(neighbor(j,i) change(i); update(j); coutThis is the I+1 running.next) if(flectionj=p-route_n) return true; return false; .2 OSPFOSPF OSPF 路由協(xié)議是基于鏈路狀態(tài)的一種路由協(xié)議,通過(guò)帶寬大小來(lái)決定路徑,帶寬大 者優(yōu)先。 1.包含的頭文件
35、#include #include #include #include #include #include 2.結(jié)構(gòu)體定義 (1)將每個(gè)路由器看成一個(gè)節(jié)點(diǎn),用結(jié)構(gòu)體 VEXTYPE 來(lái)定義。結(jié)構(gòu)體內(nèi)包含變量時(shí)名 字 name,ip 地址,路由器的序號(hào) num。 typedef struct /圖中頂點(diǎn)表示點(diǎn),存放點(diǎn)名稱(chēng) char name30; char ip12; int num; VEXTYPE; (2)網(wǎng)絡(luò)拓?fù)鋱D用無(wú)向圖來(lái)表示,定義一個(gè)無(wú)向圖的結(jié)構(gòu)體 MGraph,包含 VEXTYPE 類(lèi) 型的數(shù)組變量,ADJTYPE 型的矩陣,int 型變量來(lái)記錄頂點(diǎn)數(shù)和邊數(shù)。 typedef str
36、uct VEXTYPE vexsMAXLEN; /頂點(diǎn)的信息 ADJTYPE arcsMAXLENMAXLEN; /鄰接矩陣 int vexnum,arcnum ; /頂點(diǎn)數(shù)和邊數(shù) MGraph; /無(wú)向圖 3.建立無(wú)向網(wǎng)的鄰接矩陣結(jié)構(gòu) MGraph InitGraph() /*建立無(wú)向網(wǎng)的鄰接矩陣結(jié)構(gòu)*/ int i, j; MGraph G; G.vexnum =5; /存放頂點(diǎn)數(shù) G.arcnum =7; /存放邊點(diǎn)數(shù) for(i=0;iG.vexnum;i+) G.vexsi.num=i; strcpy(G.,r0); strcpy(G.vexs0.ip,192.1
37、68.0.1); strcpy(G.,r1); strcpy(G.vexs1.ip,); strcpy(G.,r2); strcpy(G.vexs2.ip,); strcpy(G.,r3); strcpy(G.vexs3.ip,); strcpy(G.,r4); strcpy(G.vexs4.ip,); for(i=0;iG.vexnum;i+) for(j=0;jG.vexnum;j+) G.arcsij=MAX; G.arc
38、s01=130; G.arcs12=80; G.arcs13=110; G.arcs34=75; G.arcs24=50; for(i=0;iG.vexnum;i+) for(j=0;jG.vexnum;j+) G.arcsji=G.arcsij; return G; 4.操作函數(shù) 輸出每個(gè)頂點(diǎn)的信息:void PutOutVex(MGraph *G),輸出每條邊的信息:void PutOutArc(MGraph *G),修改拓?fù)鋱D函數(shù):void Change(MGraph *G),刪除某個(gè)頂點(diǎn):void DeleteVex(MGraph *G),刪除某條邊:void DeleteArc(MG
39、raph *G),插入某條邊:void InsertArc(MGraph *G)。 5.迪杰斯特拉算法求最短路徑 void Dijkstra(MGraph * G) /迪杰斯特拉算法求最短路徑 int v,w,i,min,t=0,x,v0,v1; int final20, D20, p2020; coutv0; if(v0G-vexnum) coutv0; coutv1; if(v1G-vexnum) coutv1; for(v=0;vvexnum;v+) / 初始化 final20,p2020,finalv=1 即已經(jīng)求得 v0 到 v 的最短路徑, /pvw=1 則是 w 從 v0 到 v
40、 當(dāng)前求得最短路徑上的頂點(diǎn),Dv帶權(quán)長(zhǎng)度 finalv=0; Dv=G-arcsv0v; for(w=0;wvexnum;w+) pvw=0; if(DvMAX) pvv0=1;pvv=1; Dv0=0;finalv0=1; for(i=1;ivexnum;i+) min=MAX; for(w=0;wvexnum;w+) if(!finalw) if(Dwmin)v=w;min=Dw; finalv=1; for(w=0;wvexnum;w+) if(!finalw for(x=0;xvexnum;x+) pwx=pvx; pww=1; cout從到
41、的最短路徑長(zhǎng)度為: Dv1endl; cout路徑為:; for(int j=0;jvexnum;j+) if(pv1j=1) endl; 5 5 調(diào)試與結(jié)果說(shuō)明調(diào)試與結(jié)果說(shuō)明 5.15.1 RIPRIP 的調(diào)試結(jié)果的調(diào)試結(jié)果 圖 5-1 RIP 調(diào)試結(jié)果 圖 5-1 RIP 調(diào)試結(jié)果(續(xù)) 5.25.2 OSPFOSPF 的調(diào)試結(jié)果的調(diào)試結(jié)果 1.運(yùn)行 OSPF 的時(shí)候,首先會(huì)有個(gè)選擇菜單,按 0 時(shí)會(huì)輸出網(wǎng)絡(luò)拓?fù)渲泄?jié)點(diǎn)的信息,本實(shí) 驗(yàn)中有 5 個(gè)節(jié)點(diǎn) r0、r1、r2、r3、r4。如圖 5-2 所示: 圖 5-2 OSPF 輸出頂點(diǎn)信息 2.當(dāng)按 1 的時(shí)候可以
42、查看各個(gè)邊的信息,用無(wú)向圖中的權(quán)值來(lái)替代帶寬,圖中有 5 條鏈路 分別為:(r0,r1)=130,(r1,r2)=80,(r1,r3)=110,(r2,r4)=50,(r3,r4)=75。如圖 5-3 所示 圖 5-3OSPF 輸出邊的信息 3.當(dāng)按 2 的時(shí)候可以更改節(jié)點(diǎn)間邊上權(quán)值及帶寬的信息如是更改(r1,r3)=78,調(diào)試結(jié)果如圖 5- 4 所示: 圖 5-4OSPF 邊更改后的信息 4.當(dāng)按 3 的時(shí)候顯示源節(jié)點(diǎn)到目的的最短路徑及,如 r0 到 r4,調(diào)試結(jié)果如圖 5-5 所示 圖 5-5OSPF 輸出最短路徑信息 5.當(dāng)按 4 的時(shí)候顯示刪除某個(gè)節(jié)點(diǎn),如刪除 r4 后顯示的節(jié)點(diǎn)信息,
43、調(diào)試結(jié)果如圖 5-6 所示: 圖 5-6 OSPF 刪除頂點(diǎn)后輸出信息 6.當(dāng)按 5 的時(shí)候顯示刪除某個(gè)邊,如刪除(r2,r3)后顯示的邊信息,調(diào)試結(jié)果如圖 5-7 所示: 圖 5-7 OSPF 刪除邊后輸出信息 7.當(dāng)按 6 的時(shí)候顯示插入某個(gè)邊,如插入(r2,r3)后顯示的邊信息,調(diào)試結(jié)果如圖 5-8 所示 圖 5-8 OSPF 刪除邊后輸出信息 6.6.課程設(shè)計(jì)總結(jié)與體會(huì)課程設(shè)計(jì)總結(jié)與體會(huì) 本次課程設(shè)計(jì)主要是通過(guò)設(shè)計(jì)一個(gè)簡(jiǎn)單的路由表查找過(guò)程的模擬來(lái)模擬實(shí)際網(wǎng)絡(luò)中路 由變化的過(guò)程,以掌握這種有用的技術(shù)。要求通過(guò)距離矢量的 rip 協(xié)議和鏈路狀態(tài)的 ospf 協(xié)議來(lái)分別實(shí)現(xiàn)路由表的查找過(guò)程。
44、在使用 rip 和 ospf 協(xié)議的時(shí)候都是用到了數(shù)據(jù)結(jié)構(gòu)中 圖的鄰接矩陣的存儲(chǔ),帶權(quán)無(wú)向網(wǎng)的建立及 Dijkstra 算法的使用。在使用 rip 協(xié)議的網(wǎng)絡(luò)拓 撲中,程序是根據(jù)兩個(gè)節(jié)點(diǎn)中的跳數(shù)來(lái)計(jì)算最優(yōu)路徑的。在 ospf 協(xié)議的網(wǎng)絡(luò)拓?fù)渲校歉?據(jù)帶寬即圖中邊的權(quán)值來(lái)計(jì)算最優(yōu)路徑的。在課程設(shè)計(jì)報(bào)告的撰寫(xiě)過(guò)程中,遇到了格式, 字體等的不正確在老師的指導(dǎo)下都一一解決。 通過(guò)實(shí)驗(yàn)使得小組各個(gè)成員對(duì)路由表的查找過(guò)程有了更清楚的認(rèn)識(shí)和理解。在實(shí)驗(yàn)過(guò) 程中,通過(guò)對(duì)系統(tǒng)模擬算法的實(shí)現(xiàn)以及使用 rip 和 ospf 時(shí)的實(shí)現(xiàn)過(guò)程,加深對(duì)路由查找的 了解。并在實(shí)驗(yàn)中懂得無(wú)論多復(fù)雜的問(wèn)題,都可以轉(zhuǎn)化為簡(jiǎn)單的算
45、法模擬實(shí)現(xiàn),使之更形 象更具體??傊?,此次課程設(shè)計(jì)既讓該小組成員掌握了路由表查找過(guò)程原理,還提高了自 身的動(dòng)手能力和團(tuán)隊(duì)合作能力。 參考文獻(xiàn)參考文獻(xiàn) 1胡學(xué)鋼.數(shù)據(jù)結(jié)構(gòu)(C 語(yǔ)言版)M.北京:高等教育出版社,2008 2 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C 語(yǔ)言版)M.北京:高等教育出版社,2003 3 謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)M.北京:電子工業(yè)出版社,1999 4 陸姚遠(yuǎn).計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)M.北京:高等教育出版社,2000 致謝致謝 首先我們要感謝張巧云老師在這次課程設(shè)計(jì)對(duì)我們的指導(dǎo),張老師在我們遇到難題的 過(guò)程中給予我們幫助,致使我們的這次課程設(shè)計(jì)得以順利完成。在此我們這一小組對(duì)張老 師表示感謝!其次,
46、我們還要感謝在設(shè)計(jì)中給予我們幫助的同學(xué),他們的寶貴意見(jiàn)讓這次 課程設(shè)計(jì)更加完善。最后還要感謝我們的學(xué)校給予我們良好的的設(shè)計(jì)環(huán)境,良好的學(xué)習(xí)環(huán) 境,以及優(yōu)秀的教師資源等等!在此我們?cè)撔〗M表示感謝! 附錄附錄 RIP /以下是模擬 RIP 協(xié)議實(shí)現(xiàn)的 C+代碼 #include #include #include #include #include using namespace std; #define MAX 100 /最大路由數(shù) /* * 下面是存儲(chǔ)類(lèi)型的三個(gè)類(lèi) * */ class Net_sec;/網(wǎng)段類(lèi) /路由類(lèi)相當(dāng)于頭結(jié)點(diǎn) class Route public: string rou
47、te; Net_sec *next; ; /網(wǎng)段類(lèi),包含相鄰弧的信息(不用 route_f,用 next),也可用于存儲(chǔ)文件讀入信息(用 route_f,不用 next) class Net_sec public: string net_id; string route_f; string route_n; Net_sec* next; ; /路由表內(nèi)容類(lèi) class Contents public: string net_id; int diatance; string next_stop; ; /* * 上面是存儲(chǔ)類(lèi)型的三個(gè)類(lèi) * */ /路由表和網(wǎng)段類(lèi) class Route_net p
48、ublic: void open_file(ifstream Route_net();/ 構(gòu)造函數(shù) bool judge(string str); void Init_routes(); void show(); void change(int i); void update(int i); void UPDATE(); bool neighbor(int i,int j);/j 和 i 相鄰嗎 private: list li; /讀取信息存儲(chǔ)在這 Route routeMAX; /存儲(chǔ)圖的信息,即各路由的鄰接表 list routesMAX; /存儲(chǔ)各路由路由表 list temp; /用
49、于存儲(chǔ)處理后的臨時(shí)路由表 string flectionMAX; /用于對(duì)應(yīng)路由器與存儲(chǔ)序列標(biāo)號(hào) int sum; /用于統(tǒng)計(jì)路由個(gè)數(shù) ; /打開(kāi)文件函數(shù) void Route_net:open_file(ifstream coutfilename; infile.open(filename+.txt).c_str(); if(!infile) cerrfile open error!_idt1.route_ft1.route_n; li.push_back(t1); strm.clear(); /以上把文件內(nèi)容存入了類(lèi)屬性 li 中 list:iterator it1=li.begin(),
50、it2; int i=0; Net_sec *t2,*t3; for(;it1!=li.end();it1+) if(judge(*it1).route_f) flectioni=(*it1).route_f; routei.route=flectioni; t3=t2=routei.next=new Net_sec(); for(it2=li.begin();it2!=li.end();it2+) if(flectioni=(*it2).route_f) t2-net_id=(*it2).net_id; t2-route_n=(*it2).route_n; t3=t2; t2-next=ne
51、w Net_sec(); t2=t2-next; if(flectioni=(*it2).route_n) t2-net_id=(*it2).net_id; t2-route_n=(*it2).route_f; t3=t2; t2-next=new Net_sec(); t2=t2-next; t3-next=NULL; i+; if(judge(*it1).route_n) flectioni=(*it1).route_n; routei.route=flectioni; t3=t2=routei.next=new Net_sec(); for(it2=li.begin();it2!=li.
52、end();it2+) if(flectioni=(*it2).route_f) t2-net_id=(*it2).net_id; t2-route_n=(*it2).route_n; t3=t2; t2-next=new Net_sec(); t2=t2-next; if(flectioni=(*it2).route_n) t2-net_id=(*it2).net_id; t2-route_n=(*it2).route_f; t3=t2; t2-next=new Net_sec(); t2=t2-next; t3-next=NULL; i+; sum=i; routei.next=NULL; /網(wǎng)絡(luò)拓?fù)鋱D的鄰接表表示法 /判斷一個(gè)路由是否已為其添加了
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒園戶(hù)外活動(dòng)的教研探討計(jì)劃
- 第19課 探索宇宙(教學(xué)設(shè)計(jì))-2023-2024學(xué)年六年級(jí)科學(xué)下冊(cè)同步備課(青島版)
- 加強(qiáng)倉(cāng)庫(kù)流程管理的實(shí)施方案計(jì)劃
- 《貴州創(chuàng)泰礦業(yè)有限公司修文縣龍場(chǎng)鎮(zhèn)高倉(cāng)老二洞鋁鐵礦山礦產(chǎn)資源綠色開(kāi)發(fā)利用方案(三合一)》評(píng)審意見(jiàn)
- (高清版)DB3715∕T 7-2022 黑水虻飼養(yǎng)技術(shù)規(guī)程
- 統(tǒng)編版小學(xué)語(yǔ)文二年級(jí)下冊(cè)第3課《開(kāi)滿(mǎn)鮮花的小路》精美課件
- Unit 7 Days and Months Lesson 5 colorful seasons 教學(xué)設(shè)計(jì) 2024-2025學(xué)年冀教版(2024)七年級(jí)英語(yǔ)上冊(cè)
- 固態(tài)電池知識(shí)培訓(xùn)課件
- 能源行業(yè):石油工程師簡(jiǎn)歷
- 初中體育與健康 初二上 水平四 八年級(jí)(第一學(xué)期)籃球大單元教學(xué)設(shè)計(jì)+體前變向換手運(yùn)球突破投籃教學(xué)設(shè)計(jì)
- 2024年蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)附答案
- 六年級(jí)語(yǔ)文下冊(cè)第五單元教材解析
- 湖南省2021年普通高等學(xué)校對(duì)口招生考試英語(yǔ)
- 《通信電源培訓(xùn)》課件
- 《CT檢查技術(shù)》課件-CT圖像后處理
- 水產(chǎn)生物遺傳育種學(xué)課件
- 婦產(chǎn)科醫(yī)患溝通護(hù)理課件
- 第3課《萬(wàn)物共存》課件
- 精致的八寶飯
- GB/T 43602-2023物理氣相沉積多層硬質(zhì)涂層的成分、結(jié)構(gòu)及性能評(píng)價(jià)
- 醫(yī)院預(yù)算執(zhí)行情況分析報(bào)告
評(píng)論
0/150
提交評(píng)論