计算机网络路由器查表过程模拟课程设计报告.docx
- 文档编号:265913
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:13
- 大小:69.45KB
计算机网络路由器查表过程模拟课程设计报告.docx
《计算机网络路由器查表过程模拟课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机网络路由器查表过程模拟课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
滁州学院
课程设计报 告
课程名称:
计算机网络
设计题目:
路由器查表过程模拟
院 部:
计算机与信息工程学院
专 业:
计算机科学与技术
组 别:
第六组
起止日期:
2012年12月29日~2012年1月4日
指导教师:
戴支祥
计算机与信息工程学院二○一二年制
课程设计任务书
课程设计题目
路由器查表过程模拟
组长
杜飞
学号
2011211185
班级
11计科
(1)班
院部
计算机与信息工
程学院
专业
计算机科学与技术
组员
王晴雨2011211216,闪露2011211206,成健民2011211182
指导教师
戴支祥
课程设计目的
认识路由器及路由表的建立与更新
课程设计所需环境
硬件:
电脑 自带软件:
JCreator LE
课程设计任务要求
编程模拟路由器查找路由表的过程,用(目的地址掩码下一跳)的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引言 3
2需求分析 4
2.1课程设计题目 4
2.2课程设计任务及要求 4
3基础知识 4
3.1路由表 4
3.2路由表的组成 4
3.3路由器查询过程 4
4详细设计 5
4.1程序流程框图 5
4.2程序代码解释 6
5调试操作与说明 8
5.1路由表输出 8
6课程设计总结与体会 9
7参考文献 10
8附录 10
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程序流程框图
开始
提示用户输入目的的IP地址
打开路由表文件
读入目的IP地址
4.2程序代码解释
图4-1程序流程框
判断是否为
直接交付?
N
Y
找到?
Y
N
结束
输出下一跳
输出结果
转发分组出错
查找路由表
⑴路由表输入文件:
将路由表手动输入到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课程设计总结与体会
经过这些天的课程设计,我们组人员均是受益匪浅:
首先,我们将课
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 路由器 过程 模拟 课程设计 报告