计算机网络路由器查表过程模拟课程设计报告.docx
- 文档编号:12486282
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:13
- 大小:111.47KB
计算机网络路由器查表过程模拟课程设计报告.docx
《计算机网络路由器查表过程模拟课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机网络路由器查表过程模拟课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
计算机网络路由器查表过程模拟课程设计报告
滁州学院
课程设计报告
课程名称:
计算机网络
设计题目:
路由器查表过程模拟
院部:
计算机与信息工程学院
专业:
计算机科学与技术
组别:
第六组
起止日期:
2012年12月29日~2012年1月4日
********
计算机与信息工程学院二○一二年制
课程设计题目
路由器查表过程模拟
组长
杜飞
学号
2011211185
班级
11计科
(1)班
院部
计算机与信息工程学院
专业
计算机科学与技术
组员
王晴雨2011211216,闪露2011211206,成健民2011211182
指导教师
戴支祥
课程设计目的
认识路由器及路由表的建立与更新
课程设计所需环境
硬件:
电脑自带软件:
JCreatorLE
课程设计任务要求
编程模拟路由器查找路由表的过程,用(目的地址掩码下一跳)的IP路由表以及目的地址作为输入,为目的地址查找路由表,找出正确的下一跳并输出结果。
课程设计工作进度计划
序号
起止日期
工作内容
分工情况
1
2012.12.29-
2012.12.30
确定题目要求,确定小组成员,做具体分析
确定小组成员及组长,根据题目要求作出具体分析
2
2012.12.30-2012.1.1
查阅资料,作工作分工
成健民负责查阅资料,杜飞负责对小组成员进行分工
3
2012.1.1-2012.1.2
设计和编写源代码,实现系统功能
王晴雨,闪露负责设计编写源代码,成健民杜飞负责调试源程序
4
2012.1.2-2012.1.3
调试源程序,撰写报告
杜飞,成健民负责调试源程序,小组成员共同编写程序设计报告
5
2012.1.3-2012.1.4
制作ppt
杜飞完成ppt的制作
指导教师签字:
年月日
系(教研室)审核意见:
系(教研室)主任签字:
年月日
课程设计任务书
1引言
随着计算机信息技术的发展,大规模的互联网逐渐流行起来也为路由器的发展提供了良好的基础和平台。
作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP的国际互联网络Internet的主体脉络。
然而如何准确的发送并接受信息则需要通过路由表的准确查找路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。
通过路由表查找过程的设计与模拟可以更好的体现路由的选择,帮助我们准确的理解路由的选择过程。
2需求分析
2.1课程设计题目
路由器查表过程模拟
2.2课程设计任务及要求
编程模拟路由器查找路由表的过程,用(目的地址掩码下一跳)的IP路由表以及目的地址作为输入,为目的地址查找路由表,找出正确的下一跳并输出结果。
3基础知识
3.1路由表
在现代路由器构造中,路由器不直接参与数据包的传输,而是用于生成一个小型指向表,这个指向表仅仅包含由路由算法选择的数据包传输优先路径,这个表格通常为了优化硬件存储和查找而被压缩或提前编译。
本文将忽略这个执行的详细情况而选择整个路径选择/传输信息子系统作为路由表来说明。
3.2路由表的组成
由网络目标、网络掩码、网络地址、接口、跃点数构成。
3.3路由器查询过程
主机H1向H2发送的分组的目的地址是H2的IP地址128.30.33.138.主机H1首先要进行的操作是把本子网的“子网掩码255.255.255.128”与H2的“IP地址128.30.33.138”逐位相“与”,得出128.30.33.128,它不等于H1的网络地址(128.30.33.0)。
这说明H2与H1不在同一个子网上。
因此H1不能把分组直接交付给H2,而必须交给子网上的默认路由器R1,由R1来转发。
路由器R1在收到一个分组后,先由路由表中的第一行,看看这一行的网络地址和收到的分组的网络地址是否匹配。
因为并不知道收到的分组的网络地址,因此只能试试看。
这就是用这一行(子网1)的“子网掩码255.255.255.128”和收到的分组的“目的地址128.30.33.138”逐位相“与”,得出128.30.33.128.然后和这一行给出的目的网络地址进行比较。
但现在比较的结果是不一致(即不匹配)。
用同样方法继续往下找第二行。
用第二行的“子网掩码255.255.255.128”和该分组的“目的地址128.30.33.138”逐位相“与”,结果也是128.30.33.128。
但这个结果和第二行的目的网络地址相匹配,说明这个网络(子网2)就是收到的分组所要寻找的目的网络。
于是不需要找下一个路由器进行间接支付了,R1把分组从接口1直接交付给主机H2(它们都在一个自网上)。
4详细设计
4.1程序流程框图
N
YN
Y
图4-1程序流程框
4.2程序代码解释
⑴路由表输入文件:
将路由表手动输入到luyou.txt文件夹中,在luyou.java中使用FileReader,BufferedReader等类读取文件中的路由表。
路由表及读取文件中路由表的代码如:
表4-1路由表
目的网络地址
子网掩码
下一跳
128.30.33.0
255.255.255.128
接口0
128.30.33.128
255.255.255.128
接口1
128.30.36.0
255.255.255.0
R2
FileReaderfr=newFileReader("c:
\\luyou.txt");
BufferedReaderbr=newBufferedReader(fr);
while((ch=br.readLine())!
=null){//读取文件luyou.txt中的路由表
System.out.println(ch);
}
fr.close();
br.close();
⑵存储文件中路由表的目的网络地址将及子网掩码:
文件中路由表的目的网络地址存储在二维数组a中,其中a[i][j]代表路由表第i+1行目的网络地址第j+1段八位二进制数的十进制数,子网掩码存储在二维数组b中,其中b[i][j]代表路由表第i+1行子网掩码第j+1段八位二进制数的十进制数。
并将本子网网络地址存储在一维c中,c[i]代表本子网网络地址第i+1段八位二进制数的十进制数,本子网子网掩码存储在一维数组d中,d[i]代表本子网子网掩码第i+1段八位二进制数的十进制数。
存储代码如下:
int[][]a={{128,30,33,0},{128,30,33,128},{128,30,36,0}};
int[][]b={{255,255,255,128},{255,255,255,128},{255,255,255,0}};
int[]c={128,30,33,0};
int[]d={255,255,255,128};
⑶目的地址的输入及路由器查询路由表:
从键盘输入目的网络地址,存储在数组f中,f[i]代表目的地址第i+1段八位二进制数的十进制数。
先将数组f中的数据分别与数组d中的数据进行与运算,判断每个d[i]&f[i]是否等于c[i],如果最后i等于4则说明与运算的每个结果均与数组c中的数据相等,即结果与本子网网络地址相等,输出结果。
否则将d[0][j]与f[i]进行与运算,判断每个d[0][j]&f[i]是否等于a[0][j],如果最后j等于4则说明与运算的每个结果均与数组a[0][j]中的数据相等。
否则将d[1][j]与f[i]进行与运算,判断每个d[1][j]&f[i]是否等于a[1][j],如果最后j等于4则说明与运算的每个结果均与数组a[1][j]中的数据相等。
否则将d[2][j]与f[i]进行与运算,判断每个d[2][j]&f[i]是否等于a[2][j],如果最后j等于4则说明与运算的每个结果均与数组a[2][j]中的数据相等。
try{
Scannerinput=newScanner(System.in);
FileReaderfr=newFileReader("c:
\\luyou.txt");
BufferedReaderbr=newBufferedReader(fr);
while((ch=br.readLine())!
=null){
System.out.println(ch);\\按行读出文件内容,即路由表的输出
}
fr.close();
br.close();
System.out.println("请输入目的网络地址");
for(i=0;i<4;i++){
f[i]=input.nextInt();
}
}catch(Exceptione){
}
for(i=0;i<4;i++){
if((f[i]&d[i])!
=c[i])\\与运算实现查找路由表
break;
}
if(i==4)
System.out.println("目的网络地址:
128.30.33.0");
else{
System.out.println("不是直接交付");
for(i=0,j=0;j<4;j++){
if((b[i][j]&f[j])!
=a[i][j])
break;
}
if(j==4)
System.out.println("下一跳:
接口0");
else{
for(i=1,j=0;j<4;j++){
if((b[i][j]&f[j])!
=a[i][j])
break;
}
if(j==4)
System.out.println("下一跳:
接口1");
else{
for(i=1,j=0;j<4;j++){
if((b[i][j]&f[j])!
=a[i][j])
break;
}
if(j==4)
System.out.println("下一跳:
R2");
else
System.out.println("转发分组出错");
}
}
}
5调试操作与说明
5.1路由表输出
首先在文件luyou.txt中输入路由表,运行程序路由表输出
图5-1路由表输出
在图5-1中输入目的地址(每输入一个数据需要回车):
图5-2输入目的地址
运行程序输出结果:
图5-3运行结果
6课程设计总结与体会
经过这些天的课程设计,我们组人员均是受益匪浅:
首先,我们将课本上的知识应用于实际操作当中,加深了对课本知识的理解,同时还锻炼了我们的动手能力。
不仅如此,我们查阅资料的能力也得到了相应的提高了解了路由器的相关知识,路由表的的基本知识。
路由表建立及更新,分组转发数据,等等。
通过子网掩码与目的地址相与,判断本子网的网络地址是否与目的网络相同。
对故障的诊断和排除以及对其原理工作有了一般掌握。
这次课程设计,通过组员合作,培养严谨的工作作风,养好良好的工作习惯,加强了团队精神与合作意识,培养了团队的集体合作精神,而且我们的实践能力、动手能力、对问题的分析能力,以及发现并解决问题的能力都得到了提高。
同时一个好的心态不可或缺,有好的心态才会更加努力,做事效率也是事半功倍。
还要有扎实的理论知识,在操作的过程中知道自己的目的,使学到的理论知识得到充分的验证,有不懂的还要要向组员和老师多多请教。
从中我学到了,只有不断的去动手,不断地去尝试,不断向他人学习,这样才能不断提高自己的创新能力与实践能力,在挫折与失败中不断磨练自己,相信坚持了就会胜利。
本课程设计在进行过程中得到戴老师的悉心指导,多次帮助我们分析思路,开辟视角。
戴老师严谨求实的治学态度,踏实坚韧的工作精力,将是我们毕生收益,在此,谨向戴老师致以诚挚的谢意和崇高的敬意。
7参考文献
[1]谢希仁.计算机网络[M].第五版.北京:
电子工业出版社,2012:
P134-137,189-200
[2]赵生慧.Java面向对象程序设计[M].北京:
中国水利水电出版社,2010:
P133,175
8附录
importjava.io.*;
importjava.util.*;
classluyou{
publicstaticvoidmain(Stringargs[]){
System.out.println("");
int[][]a={{128,30,33,0},{128,30,33,128},{128,30,36,0}};
int[][]b={{255,255,255,128},{255,255,255,128},{255,255,255,0}};
int[]c={128,30,33,0};
int[]d={255,255,255,128};
inti,j;
int[]f=newint[7];
Stringch;
try{
Scannerinput=newScanner(System.in);
FileReaderfr=newFileReader("c:
\\luyou.txt");
BufferedReaderbr=newBufferedReader(fr);
while((ch=br.readLine())!
=null){
System.out.println(ch);
}
fr.close();
br.close();
System.out.println("请输入目的网络地址");
for(i=0;i<4;i++){
f[i]=input.nextInt();
}
}catch(Exceptione){
}
for(i=0;i<4;i++){
if((f[i]&d[i])!
=c[i])
break;
}
if(i==4)
System.out.println("目的网络地址:
128.30.33.0");
else{
System.out.println("不是直接交付");
for(i=0,j=0;j<4;j++){
if((b[i][j]&f[j])!
=a[i][j])
break;
}
if(j==4)
System.out.println("下一跳:
接口0");
else{
for(i=1,j=0;j<4;j++){
if((b[i][j]&f[j])!
=a[i][j])
break;
}
if(j==4)
System.out.println("下一跳:
接口1");
else{
for(i=1,j=0;j<4;j++){
if((b[i][j]&f[j])!
=a[i][j])
break;
}
if(j==4)
System.out.println("下一跳:
R2");
else
System.out.println("转发分组出错");
}
}
}
}
}
评语:
评阅教师签名:
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 路由器 过程 模拟 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)