计算机网络课程设计报告--RIP协议路由表调整算法的实现.docx

上传人:lao****ou 文档编号:1118597 上传时间:2024-11-20 格式:DOCX 页数:9 大小:47.33KB
下载 相关 举报
计算机网络课程设计报告--RIP协议路由表调整算法的实现.docx_第1页
第1页 / 共9页
计算机网络课程设计报告--RIP协议路由表调整算法的实现.docx_第2页
第2页 / 共9页
计算机网络课程设计报告--RIP协议路由表调整算法的实现.docx_第3页
第3页 / 共9页
计算机网络课程设计报告--RIP协议路由表调整算法的实现.docx_第4页
第4页 / 共9页
计算机网络课程设计报告--RIP协议路由表调整算法的实现.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机网络课程设计报告--RIP协议路由表调整算法的实现.docx》由会员分享,可在线阅读,更多相关《计算机网络课程设计报告--RIP协议路由表调整算法的实现.docx(9页珍藏版)》请在第一文库网上搜索。

1、计算机网络课程设计报告题目:RIP协议路由表调整算法的实现一、问题描述通过已知的网络的拓扑结构,使用c+程序来模拟路由器的相互学习的过程。使每相邻的两个路由器相互学习。通过相邻的路由器的路由表来更新自己的路由表。从而来达到相互学习的目的。二、概要设计1.2.使用二维数组存储路由表的目的网络、距离、下一跳等信息。使用文本文档存储各个路由器的网络拓扑,初始化时只包含相邻路由。3.使用构造函数实现路由表的初始化操作。图1路由表得初始化4.设计算法,实现路由表的调整。图2路由表调整算法5.使用循环算法实现路由表的更新。抽象数据类型定义如下:c1assRoutepub1ic:stringroute;st

2、ringnet_right;stringnet_1eft;;*路由表*/c1assRoute1istspub1ic:stringnet;intdistance;stringnext_route;;c1assNetwork*路由器名称*/*右接口*/*左接口*/*目的网络*/*距离*/*下一跳*/pub1ic:NetworkO;voidshow();voidbgroutesO;voidchange(inti);voidchange2(inti);voidupdate(inti,intj);voidUPDATEO;boo1neighbor(inti,intj);Route1istsrts2012;

3、Routert20;private:intn,n1;inttiaomu20;intadd20;;*各个路由器的路由条目*/*各个路由器新增加的路由条目三、详细设计代码如下:inc1udeftinc1udeinc1udettinc1udeinc1udeusingnamespacestd;c1assRoutepub1ic:stringroute;/*路由器名称*/stringnet_right;/*右接口*/stringnet_1eft;*左接口*/;*路由表*/c1assRoute1istspub1ic:stringnet;*目的网络*/intdistance;*距离*/stringnext_r

4、oute;*下一跳*/;c1assNetworkpub1ic:NetworkO;voidshow();voidbgroutesO;voidchange(inti);voidchange2(inti);voidupdate(inti,intj);voidUPDATEO;boo1neighbor(inti,intj);Route1istsrts2012;Routert20;private:intn,n1;inttiaomu20;*各个路由器的路由条目*/intadd20;/*各个路由器新增加的路由条目*/;/*构造函数*/Network::NetworkO(cout请输入路由器个数:;cinn;/

5、*输入路由器个数*/n1=n;for(intj=0;j20;j+)(tiaomuj=0;addj=0;ifstrearninfi1e(data.txt”,ios:in);if(!infi1e)cerr打开网络拓扑结构文件失败!请创建data.txt文件后重试!end1;exit(1);inti=0;whi1e(n1)(__right;i+;)infi1e,c1oseO;*初始化路由表*/voidNetwork:bgroutes0(for(inti=0;in;i+)(=_1eft;rtsi0.distance=1;rtsi0.next_route=直接交付;tiaomui+;=_right;rt

6、si1.distance=1;rtsi1.next_route=直接交付;tiaomui+;)*显示所有路由表*/voidNetwork:show()(for(inti=0;in;i+)(coutwrti.route的路由表:end1;cout目的网络距离下一跳,end1;for(intj=0;jtiaomui;j+)(rtsij.distancertsij.next_routeend1;)coutend1;coutend1;coutend1;coutend1;./*对相邻路由表,距离加1,下一跳变为该路由名字*/voidNetwork:change(inti)for(intj=0;jtiao

7、mui;j+)(rts19j.distance=rtsij.distance;rts19j.next_route=rtsij.next_route;rtsij.distance=rtsij.distance+1;rtsij.next_route=rti1route;)*将改变后的路由表变回来*/voidNetwork:change2(inti)for(intj=0;jn+1;j+)(rtsij.distance=rts19j.distance;rtsij.next_route=rts19j.next_route;*对一个路由表进行更新操作*/voidNetwork:update(inti,in

8、tj)(intx,y;intsi;boo1you=true;*若原来的路由表中没有相同的目的网络N,则把该项目添加到路由表中。for(X=0;Xtiaomui;x+)(for(y=0;ytiaomuj;y+)(if()!=()(for(intt=0;ttiaomui;t+)(if()=()you=fa1se;if(you)(=;rtsitiaomui.distance=rtsjy.distance;rtsitiaomui.next_route=rtsjy.next_route;tiaomui+;addi+;you=true;)*有相同的目的网络,如果下一跳相同,则直接加入*/for(X=0;X

9、tiaomui-addi;x+)(for(y=0;ytiaomuj;y+)(if()=()if(rtsix.next_route)=(rtsjy.next_route)(=;rtsix.distance=rtsjy.distance;*有相同的目的网络,如果下一跳不相同,比较距离,小的加入*/you=true;for(x=0;xtiaomui-addi;x+)(for(y=0;ytiaomui-addi;y+)(if(=)(if(rtsiy.next_route)!=(rtsjx.next_route)(if(rtsiy.distance=rtsjx.distance)(you=fa1se;s

10、i=y;if(you)(rtsis1.next_route=rtsjx.next_route;rtsis1.distance=rtsjx.distance;you=true;)./*对所有路由表进行更新*/voidNetwork:UPDATE()charstop;for(intt=0;tn-1;t+)*循环次数*/(for(intj=0;jn;j+)*学习者*/(for(inti=0;in;i+)*被学习的路由器*/(if(neighbor(i,j)(change(i);update(j,i);change2(i);S1eep(1000);*stop=getcharO;*/cout,=,end

11、1;coutw根据rti.route路由表修改rtj.route的路由表,end1;cout,=,end1;for(intx=0;xn;x+)(coutrtx.route的路由表end1;cout,目的网络距离下一跳end1;for(inty=0;ytiaomux;y+)(rtsxy.distancertsxy.next_routeend1;)coutend1;)coutend1;coutend1;coutend1;)*判断两路由是否相邻*/boo1Network:neighbor(inti,intj)if(i-j=1)return(true);if(j-i=1)return(true);return(fa1se);intwe1comeO(COUt*Cnd1;COUt,R1P协议路由表调整算法的实现end1;COUt”*mend1;coutend1;coutend1;intmainOwe1com

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

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服