版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 課程名稱: 計(jì)算機(jī)網(wǎng)絡(luò) </p><p> 設(shè)計(jì)題目: 路由器查表過程模擬 </p><p> 院 部: 計(jì)算機(jī)與信息工程學(xué)院 </p
2、><p> 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p> 組 別: </p><p> 起止日期: 2012年12月 29日 ~ 2012 年 1月4 日 </p><p> 指導(dǎo)教師:
3、 </p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p><b> 目錄</b></p><p><b> 1 引言3</b></p><p><b> 2 需求分析4</b>&l
4、t;/p><p> 2.1 課程設(shè)計(jì)題目4</p><p> 2.2課程設(shè)計(jì)任務(wù)及要求4</p><p><b> 3 基礎(chǔ)知識4</b></p><p><b> 3.1 路由表4</b></p><p> 3.2路由表的組成4</p><
5、;p> 3.3路由器查詢過程4</p><p><b> 4詳細(xì)設(shè)計(jì)5</b></p><p> 4.1 程序流程框圖5</p><p> 4.2程序代碼解釋6</p><p> 5調(diào)試操作與說明8</p><p> 5.1 路由表輸出8</p><
6、;p> 6課程設(shè)計(jì)總結(jié)與體會9</p><p><b> 7參考文獻(xiàn)10</b></p><p><b> 8附錄10</b></p><p><b> 1 引言</b></p><p> 隨著計(jì)算機(jī)信息技術(shù)的發(fā)展,大規(guī)模的互聯(lián)網(wǎng)逐漸流行起來也為路由器的發(fā)
7、展提供了良好的基礎(chǔ)和平臺。作為不同網(wǎng)絡(luò)之間互相連接的樞紐,路由器系統(tǒng)構(gòu)成了基于TCP/IP 的國際互聯(lián)網(wǎng)絡(luò)Internet 的主體脈絡(luò)。然而如何準(zhǔn)確的發(fā)送并接受信息則需要通過路由表的準(zhǔn)確查找路由表存儲著指向特定網(wǎng)絡(luò)地址的路徑(在有些情況下,還記錄有路徑的路由度量值)。通過路由表查找過程的設(shè)計(jì)與模擬可以更好的體現(xiàn)路由的選擇,幫助我們準(zhǔn)確的理解路由的選擇過程。</p><p><b> 2 需求分析<
8、;/b></p><p> 2.1 課程設(shè)計(jì)題目</p><p><b> 路由器查表過程模擬</b></p><p> 2.2課程設(shè)計(jì)任務(wù)及要求</p><p> 編程模擬路由器查找路由表的過程,用(目的地址 掩碼 下一跳)的IP路由表以及目的地址作為輸入,為目的地址查找路由表,找出正確的下一跳并輸出結(jié)果
9、。</p><p><b> 3 基礎(chǔ)知識</b></p><p><b> 3.1 路由表</b></p><p> 在現(xiàn)代路由器構(gòu)造中,路由器不直接參與數(shù)據(jù)包的傳輸,而是用于生成一個(gè)小型指向表,這個(gè)指向表僅僅包含由路由算法選擇的數(shù)據(jù)包傳輸優(yōu)先路徑,這個(gè)表格通常為了優(yōu)化硬件存儲和查找而被壓縮或提前編譯。本文將忽略這
10、個(gè)執(zhí)行的詳細(xì)情況而選擇整個(gè)路徑選擇/傳輸信息子系統(tǒng)作為路由表來說明。</p><p><b> 3.2路由表的組成</b></p><p> 由網(wǎng)絡(luò)目標(biāo)、網(wǎng)絡(luò)掩碼、網(wǎng)絡(luò)地址、接口、躍點(diǎn)數(shù)構(gòu)成。</p><p> 3.3路由器查詢過程</p><p> 主機(jī)H1向H2發(fā)送的分組的目的地址是H2的IP地址128.30
11、.33.138.主機(jī)H1首先要進(jìn)行的操作是把本子網(wǎng)的“子網(wǎng)掩碼255.255.255.128”與H2的“IP地址128.30.33.138”逐位相“與”,得出128.30.33.128,它不等于H1的網(wǎng)絡(luò)地址(128.30.33.0)。這說明H2與H1不在同一個(gè)子網(wǎng)上。因此H1不能把分組直接交付給H2,而必須交給子網(wǎng)上的默認(rèn)路由器R1,由R1來轉(zhuǎn)發(fā)。</p><p> 路由器R1在收到一個(gè)分組后,先由路由表中的
12、第一行,看看這一行的網(wǎng)絡(luò)地址和收到的分組的網(wǎng)絡(luò)地址是否匹配。因?yàn)椴⒉恢朗盏降姆纸M的網(wǎng)絡(luò)地址,因此只能試試看。這就是用這一行(子網(wǎng)1)的“子網(wǎng)掩碼255.255.255.128”和收到的分組的“目的地址128.30.33.138”逐位相“與”,得出128.30.33.128.然后和這一行給出的目的網(wǎng)絡(luò)地址進(jìn)行比較。但現(xiàn)在比較的結(jié)果是不一致(即不匹配)。</p><p> 用同樣方法繼續(xù)往下找第二行 。用第二行的
13、“子網(wǎng)掩碼255.255.255.128”和該分組的“目的地址128.30.33.138”逐位相“與”,結(jié)果也是128.30.33.128。但這個(gè)結(jié)果和第二行的目的網(wǎng)絡(luò)地址相匹配,說明這個(gè)網(wǎng)絡(luò)(子網(wǎng)2)就是收到的分組所要尋找的目的網(wǎng)絡(luò)。于是不需要找下一個(gè)路由器進(jìn)行間接支付了,R1把分組從接口1直接交付給主機(jī)H2(它們都在一個(gè)自網(wǎng)上)。</p><p><b> 4詳細(xì)設(shè)計(jì)</b></
14、p><p> 4.1 程序流程框圖</p><p><b> N</b></p><p> Y N</p><p><b> Y</b></p><p><b> 圖4-1程序流程框</b><
15、/p><p><b> 4.2程序代碼解釋</b></p><p> ?、怕酚杀磔斎胛募簩⒙酚杀硎謩?dòng)輸入到luyou.txt文件夾中,在luyou.java中使用FileReader,BufferedReader等類讀取文件中的路由表。路由表及讀取文件中路由表的代碼如:</p><p><b> 表4-1路由表</b>&
16、lt;/p><p> FileReader fr=new FileReader("c:\\luyou.txt");</p><p> BufferedReader br=new BufferedReader(fr);</p><p> while((ch=br.readLine())!=null){ //讀取文件luyou.tx
17、t中的路由表</p><p> System.out.println(ch);</p><p><b> }</b></p><p> fr.close();</p><p> br.close();</p><p> ?、拼鎯ξ募新酚杀淼哪康木W(wǎng)絡(luò)地址將及子網(wǎng)掩碼:文件中路由表的目的網(wǎng)絡(luò)
18、地址存儲在二維數(shù)組a中,其中a[i][j]代表路由表第i+1行目的網(wǎng)絡(luò)地址第j+1段八位二進(jìn)制數(shù)的十進(jìn)制數(shù),子網(wǎng)掩碼存儲在二維數(shù)組b中,其中b[i][j]代表路由表第i+1行子網(wǎng)掩碼第j+1段八位二進(jìn)制數(shù)的十進(jìn)制數(shù)。并將本子網(wǎng)網(wǎng)絡(luò)地址存儲在一維c中,c[i]代表本子網(wǎng)網(wǎng)絡(luò)地址第i+1段八位二進(jìn)制數(shù)的十進(jìn)制數(shù),本子網(wǎng)子網(wǎng)掩碼存儲在一維數(shù)組d中,d[i]代表本子網(wǎng)子網(wǎng)掩碼第i+1段八位二進(jìn)制數(shù)的十進(jìn)制數(shù)。存儲代碼如下:</p>
19、<p> int[][] a={{128,30,33,0},{128,30,33,128},{128,30,36,0}};</p><p> int[][] b={{255,255,255,128},{255,255,255,128},{255,255,255,0}};</p><p> int[] c={128,30,33,0};</p><p>
20、; int[] d={255,255,255,128};</p><p> ?、悄康牡刂返妮斎爰奥酚善鞑樵兟酚杀恚簭逆I盤輸入目的網(wǎng)絡(luò)地址,存儲在數(shù)組f中,f[i]代表目的地址第i+1段八位二進(jìn)制數(shù)的十進(jìn)制數(shù)。先將數(shù)組f中的數(shù)據(jù)分別與數(shù)組d中的數(shù)據(jù)進(jìn)行與運(yùn)算,判斷每個(gè)d[i]&f[i]是否等于c[i],如果最后i等于4則說明與運(yùn)算的每個(gè)結(jié)果均與數(shù)組c中的數(shù)據(jù)相等,即結(jié)果與本子網(wǎng)網(wǎng)絡(luò)地址相等,輸出結(jié)果。否則
21、將d[0][j]與f[i]進(jìn)行與運(yùn)算,判斷每個(gè)d[0][j]&f[i]是否等于a[0][j],如果最后j等于4則說明與運(yùn)算的每個(gè)結(jié)果均與數(shù)組a[0][j]中的數(shù)據(jù)相等。否則將d[1][j]與f[i]進(jìn)行與運(yùn)算,判斷每個(gè)d[1][j]&f[i]是否等于a[1][j],如果最后j等于4則說明與運(yùn)算的每個(gè)結(jié)果均與數(shù)組a[1][j]中的數(shù)據(jù)相等。否則將d[2][j]與f[i]進(jìn)行與運(yùn)算,判斷每個(gè)d[2][j]&f[i]是
22、否等于a[2][j],如果最后j等于4則說明與運(yùn)算的每個(gè)結(jié)果均與數(shù)組a[2][j]中的數(shù)據(jù)相等。</p><p><b> try{</b></p><p> Scanner input=new Scanner(System.in);</p><p> FileReader fr=new FileReader("c:\\luyo
23、u.txt");</p><p> BufferedReader br=new BufferedReader(fr);</p><p> while((ch=br.readLine())!=null){</p><p> System.out.println(ch); \\按行讀出文件內(nèi)容,即路由表的輸出</p><p>
24、;<b> }</b></p><p> fr.close();</p><p> br.close();</p><p> System.out.println("請輸入目的網(wǎng)絡(luò)地址");</p><p> for(i=0;i<4;i++){</p><p>
25、 f[i]=input.nextInt();</p><p><b> }</b></p><p> }catch(Exception e){</p><p><b> }</b></p><p> for(i=0;i<4;i++){</p><p> if
26、((f[i]&d[i])!=c[i]) \\與運(yùn)算實(shí)現(xiàn)查找路由表</p><p><b> break;</b></p><p><b> }</b></p><p><b> if(i==4)</b></p><p> System.out.prin
27、tln("目的網(wǎng)絡(luò)地址:128.30.33.0");</p><p><b> else{</b></p><p> System.out.println("不是直接交付");</p><p> for(i=0,j=0;j<4;j++){</p><p> if((b
28、[i][j]&f[j])!=a[i][j])</p><p><b> break;</b></p><p><b> }</b></p><p><b> if(j==4)</b></p><p> System.out.println("下一跳:接
29、口0");</p><p><b> else{</b></p><p> for(i=1,j=0;j<4;j++){</p><p> if((b[i][j]&f[j])!=a[i][j])</p><p><b> break;</b></p>&l
30、t;p><b> }</b></p><p><b> if(j==4)</b></p><p> System.out.println("下一跳:接口1");</p><p><b> else{</b></p><p> for(i=1,
31、j=0;j<4;j++){</p><p> if((b[i][j]&f[j])!=a[i][j])</p><p><b> break;</b></p><p><b> }</b></p><p><b> if(j==4)</b></p>
32、;<p> System.out.println("下一跳:R2");</p><p><b> else</b></p><p> System.out.println("轉(zhuǎn)發(fā)分組出錯(cuò)");</p><p><b> }</b></p><
33、;p><b> }</b></p><p><b> }</b></p><p><b> 5調(diào)試操作與說明</b></p><p><b> 5.1 路由表輸出</b></p><p> 首先在文件luyou.txt中輸入路由表,運(yùn)行程序
34、路由表輸出</p><p><b> 圖5-1路由表輸出</b></p><p> 在圖5-1中輸入目的地址(每輸入一個(gè)數(shù)據(jù)需要回車):</p><p> 圖5-2 輸入目的地址</p><p><b> 運(yùn)行程序輸出結(jié)果:</b></p><p><b>
35、 圖5-3運(yùn)行結(jié)果</b></p><p> 6課程設(shè)計(jì)總結(jié)與體會</p><p> 經(jīng)過這些天的課程設(shè)計(jì),我們組人員均是受益匪淺:</p><p> 首先,我們將課本上的知識應(yīng)用于實(shí)際操作當(dāng)中,加深了對課本知識的理解,同時(shí)還鍛煉了我們的動(dòng)手能力。不僅如此,我們查閱資料的能力也得到了相應(yīng)的提高了解了路由器的相關(guān)知識,路由表的的基本知識。路由表建立
36、及更新,分組轉(zhuǎn)發(fā)數(shù)據(jù),等等。通過子網(wǎng)掩碼與目的地址相與,判斷本子網(wǎng)的網(wǎng)絡(luò)地址是否與目的網(wǎng)絡(luò)相同。對故障的診斷和排除以及對其原理工作有了一般掌握。</p><p> 這次課程設(shè)計(jì),通過組員合作,培養(yǎng)嚴(yán)謹(jǐn)?shù)墓ぷ髯黠L(fēng),養(yǎng)好良好的工作習(xí)慣,加強(qiáng)了團(tuán)隊(duì)精神與合作意識,培養(yǎng)了團(tuán)隊(duì)的集體合作精神,而且我們的實(shí)踐能力、動(dòng)手能力、對問題的分析能力,以及發(fā)現(xiàn)并解決問題的能力都得到了提高。同時(shí)一個(gè)好的心態(tài)不可或缺,有好的心態(tài)才會更加
37、努力,做事效率也是事半功倍。還要有扎實(shí)的理論知識,在操作的過程中知道自己的目的,使學(xué)到的理論知識得到充分的驗(yàn)證,有不懂的還要要向組員和老師多多請教。從中我學(xué)到了,只有不斷的去動(dòng)手,不斷地去嘗試,不斷向他人學(xué)習(xí),這樣才能不斷提高自己的創(chuàng)新能力與實(shí)踐能力,在挫折與失敗中不斷磨練自己,相信堅(jiān)持了就會勝利。</p><p> 本課程設(shè)計(jì)在進(jìn)行過程中得到戴老師的悉心指導(dǎo),多次幫助我們分析思路,開辟視角。戴老師嚴(yán)謹(jǐn)求實(shí)的治
38、學(xué)態(tài)度,踏實(shí)堅(jiān)韌的工作精力,將是我們畢生收益,在此,謹(jǐn)向戴老師致以誠摯的謝意和崇高的敬意。</p><p><b> 7參考文獻(xiàn)</b></p><p> [1] 謝希仁. 計(jì)算機(jī)網(wǎng)絡(luò)[M]. 第五版. 北京:電子工業(yè)出版社,2012:P134-137,189-200</p><p> [2] 趙生慧. Java 面向?qū)ο蟪绦蛟O(shè)計(jì)[M].
39、 北京: 中國水利水電出版社, 2010:P133,175</p><p><b> 8附錄</b></p><p> import java.io.*;</p><p> import java.util.*;</p><p> class luyou{</p><p> public
40、 static void main(String args[]){</p><p> System.out.println("");</p><p> int[][] a={{128,30,33,0},{128,30,33,128},{128,30,36,0}};</p><p> int[][] b={{255,255,255,128},
41、{255,255,255,128},{255,255,255,0}};</p><p> int[] c={128,30,33,0};</p><p> int[] d={255,255,255,128};</p><p><b> int i,j;</b></p><p> int[] f=new int[7]
42、;</p><p> String ch;</p><p><b> try{</b></p><p> Scanner input=new Scanner(System.in);</p><p> FileReader fr=new FileReader("c:\\luyou.txt");
43、</p><p> BufferedReader br=new BufferedReader(fr);</p><p> while((ch=br.readLine())!=null){</p><p> System.out.println(ch);</p><p><b> }</b></p>
44、<p> fr.close();</p><p> br.close();</p><p> System.out.println("請輸入目的網(wǎng)絡(luò)地址");</p><p> for(i=0;i<4;i++){</p><p> f[i]=input.nextInt(); </p
45、><p><b> }</b></p><p> }catch(Exception e){</p><p><b> }</b></p><p> for(i=0;i<4;i++){</p><p> if((f[i]&d[i])!=c[i])</p
46、><p><b> break;</b></p><p><b> }</b></p><p><b> if(i==4)</b></p><p> System.out.println("目的網(wǎng)絡(luò)地址:128.30.33.0");</p>
47、<p><b> else{</b></p><p> System.out.println("不是直接交付");</p><p> for(i=0,j=0;j<4;j++){</p><p> if((b[i][j]&f[j])!=a[i][j])</p><p>
48、<b> break;</b></p><p><b> }</b></p><p><b> if(j==4)</b></p><p> System.out.println("下一跳:接口0");</p><p><b> else{
49、</b></p><p> for(i=1,j=0;j<4;j++){</p><p> if((b[i][j]&f[j])!=a[i][j])</p><p><b> break;</b></p><p><b> }</b></p><p&
50、gt;<b> if(j==4)</b></p><p> System.out.println("下一跳:接口1");</p><p><b> else{</b></p><p> for(i=1,j=0;j<4;j++){</p><p> if((b[i]
51、[j]&f[j])!=a[i][j])</p><p><b> break;</b></p><p><b> }</b></p><p><b> if(j==4)</b></p><p> System.out.println("下一跳:R2&q
52、uot;);</p><p><b> else</b></p><p> System.out.println("轉(zhuǎn)發(fā)分組出錯(cuò)");</p><p><b> }</b></p><p><b> }</b></p><p&g
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)】軟件路由器的組建
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)---軟件路由器的組建
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)--交換機(jī)、路由器配置
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 《計(jì)算機(jī)網(wǎng)絡(luò)》課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)報(bào)告
- 計(jì)算機(jī)網(wǎng)絡(luò)模擬方案課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 《計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)》
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
- 計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)
評論
0/150
提交評論