您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 计算机网络路由器查表过程模拟课程设计报告
1滁州学院课程设计报告课程名称:计算机网络设计题目:路由器查表过程模拟院部:计算机与信息工程学院专业:计算机科学与技术组别:第六组起止日期:2012年12月29日~2012年1月4日指导教师:戴支祥计算机与信息工程学院二○一二年制2课程设计任务书课程设计题目路由器查表过程模拟组长杜飞学号2011211185班级11计科(1)班院部计算机与信息工程学院专业计算机科学与技术组员王晴雨2011211216,闪露2011211206,成健民2011211182指导教师戴支祥课程设计目的认识路由器及路由表的建立与更新课程设计所需环境硬件:电脑自带软件:JCreatorLE课程设计任务要求编程模拟路由器查找路由表的过程,用(目的地址掩码下一跳)的IP路由表以及目的地址作为输入,为目的地址查找路由表,找出正确的下一跳并输出结果。课程设计工作进度计划序号起止日期工作内容分工情况12012.12.29-2012.12.30确定题目要求,确定小组成员,做具体分析确定小组成员及组长,根据题目要求作出具体分析22012.12.30-2012.1.1查阅资料,作工作分工成健民负责查阅资料,杜飞负责对小组成员进行分工32012.1.1-2012.1.2设计和编写源代码,实现系统功能王晴雨,闪露负责设计编写源代码,成健民杜飞负责调试源程序42012.1.2-2012.1.3调试源程序,撰写报告杜飞,成健民负责调试源程序,小组成员共同编写程序设计报告52012.1.3-2012.1.4制作ppt杜飞完成ppt的制作指导教师签字:年月日系(教研室)审核意见:系(教研室)主任签字:年月日3目录1引言........................................................................32需求分析....................................................................42.1课程设计题目..............................................................42.2课程设计任务及要求.........................................................43基础知识....................................................................43.1路由表....................................................................43.2路由表的组成...............................................................43.3路由器查询过程.............................................................44详细设计.....................................................................54.1程序流程框图..............................................................54.2程序代码解释...............................................................55调试操作与说明...............................................................85.1路由表输出................................................................86课程设计总结与体会...........................................................97参考文献....................................................................108附录........................................................................1041引言随着计算机信息技术的发展,大规模的互联网逐渐流行起来也为路由器的发展提供了良好的基础和平台。作为不同网络之间互相连接的枢纽,路由器系统构成了基于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.然后和这一行给出的目的网络地址进行比较。但现在比较的结果是不一致(即不匹配)。5用同样方法继续往下找第二行。用第二行的“子网掩码255.255.255.128”和该分组的“目的地址128.30.33.138”逐位相“与”,结果也是128.30.33.128。但这个结果和第二行的目的网络地址相匹配,说明这个网络(子网2)就是收到的分组所要寻找的目的网络。于是不需要找下一个路由器进行间接支付了,R1把分组从接口1直接交付给主机H2(它们都在一个自网上)。4详细设计4.1程序流程框图NYNY图4-1程序流程框4.2程序代码解释⑴路由表输入文件:将路由表手动输入到luyou.txt文件夹中,在luyou.java中使用开始打开路由表文件提示用户输入目的的IP地址读入目的IP地址判断是否为直接交付?输出结果查找路由表找到?转发分组出错输出下一跳结束6FileReader,BufferedReader等类读取文件中的路由表。路由表及读取文件中路由表的代码如:表4-1路由表目的网络地址子网掩码下一跳128.30.33.0255.255.255.128接口0128.30.33.128255.255.255.128接口1128.30.36.0255.255.255.0R2FileReaderfr=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则说明与运算的每个结果7均与数组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;i4;i++){f[i]=input.nextInt();}}catch(Exceptione){}for(i=0;i4;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;j4;j++){if((b[i][j]&f[j])!=a[i][j])break;}if(j==4)8System.out.println(下一跳:接口0);else{for(i=1,j=0;j4;j++){if((b[i][j]&f[j])!=a[i][j])break;}if(j==4)System.out.println(下一跳:接口1);else{for(i=1,j=0;j4;j++){if((b[i][j]&f[j])!=a[i][j])break;}if(j==4)System.out.println(下一跳:R2
本文标题:计算机网络路由器查表过程模拟课程设计报告
链接地址:https://www.777doc.com/doc-2060725 .html