计算机网络路由器查表过程模拟课程设计报告.docx

上传人:b****1 文档编号:265913 上传时间:2022-10-08 格式:DOCX 页数:13 大小:69.45KB
下载 相关 举报
计算机网络路由器查表过程模拟课程设计报告.docx_第1页
第1页 / 共13页
计算机网络路由器查表过程模拟课程设计报告.docx_第2页
第2页 / 共13页
计算机网络路由器查表过程模拟课程设计报告.docx_第3页
第3页 / 共13页
计算机网络路由器查表过程模拟课程设计报告.docx_第4页
第4页 / 共13页
计算机网络路由器查表过程模拟课程设计报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

计算机网络路由器查表过程模拟课程设计报告.docx

《计算机网络路由器查表过程模拟课程设计报告.docx》由会员分享,可在线阅读,更多相关《计算机网络路由器查表过程模拟课程设计报告.docx(13页珍藏版)》请在冰豆网上搜索。

计算机网络路由器查表过程模拟课程设计报告.docx

滁州学院

课程设计报 告

课程名称:

计算机网络

设计题目:

路由器查表过程模拟

院 部:

计算机与信息工程学院

专 业:

计算机科学与技术

组 别:

第六组

起止日期:

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课程设计总结与体会

经过这些天的课程设计,我们组人员均是受益匪浅:

首先,我们将课

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1