RIP路由算法实现

RIP路由算法实现

ID:47433077

大小:248.00 KB

页数:12页

时间:2020-01-11

RIP路由算法实现_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《RIP路由算法实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、RIP路由算法实现【摘要】RIP协议作为一种最简单的内部网关协议,已经非常广泛的应用在网络的传输中。并且在未来的IPV6也是占据很重要的位置。RIP协议未来的发展与变化及其与其他内部网关协议的配合是很重要的事。关键词RIP协议OSPF一、RIP协议介绍RIP(Routing informatiom Protocol)是应用较早、使用较普遍的内部网关协议( Interior Gateway Protocol ,简称IGP),适用于小型同类网络,是典型的距离向量(distance-vector)协议。RIP协议是内部网关

2、协议IGP中最广泛使用的协议,它是一种分布式的基于距离向量的路由选择协议,它最大的优点就是简单。在国家性网络中如当前的因特网,拥有很多用于整个网络的路由选择协议。作为形成网络的每一个自治系统,都有属于自己的路由选择技术,不同的 AS 系统,路由选择技术也不同。作为一种内部网关协议或 IGP(普通内部网关协议),路由选择协议应用于 AS 系统。连接 AS 系统有专门的协议,其中最早的这样的协议是“EGP”(外部网关协议),目前仍然应用于因特网,这样的协议通常被视为内部 AS 路由选择协议。RIP 主要设计来利用同类技术

3、与大小适度的网络一起工作。因此通过速度变化不大的接线连接,RIP 比较适用于简单的校园网和区域网,但并不适用于复杂网络的情况。二、RIP工作流程Rip的工作流程图如下:三、RIP的距离向量算法分析矢量距离算法是路由器确定传播选路信息的一个经典算法,其思路是:路由器在其路由表中列出了所有已知的路由,路由器启动时,对路由选择表进行初始化,每个与自己相连的目的网络生成一个表项,并给出相应的距离,距离通常用跳(Hop)数来表示。每个路由器周期性地向与其直接相连的其他路由器发送自己的路由选择表,如路由器A收到路由器B发来的路由

4、选择表后,A检查该路由选择表列出的每个目的站点以及到该目的站点的距离,如果B知道去目的站点更短的路由,或B列出了A不知道的目的站点,或A目前到某个目的站点的路由经过B,而B到该目的站点的距离有所改变,A就修改自己的路由选择表中相应的项目。矢量距离的内容用一个序偶(V,D)来表示,V为目的站点,D为到该目的站点距离。 矢量距离算法的优点是易于实现,在构成路由表的过程中不消耗CPU资源。但如果网络中路由变化迅速时,算法就难以稳定。如果收到相邻路由器的一个RIP报文: (1)先修改此RIP报文中的所有项目:把“下一跳”字段

5、中的地址都改成X,并把所有距离字段的值加1。 (2)对修改后的RIP报文中的每一个项目重复以下步骤: 若项目中的目的网络不在路由表中,则把该项目添加到路由表中。 否则     若下一条字段给出的路由器地址是同样的,则把收到的项目替换源路由表中的项目。否则 若收到的项目镇南关的距离小于路由表中的距离,则进行更新。否则什么也不做。 (3)若3分钟还没有收到相邻路语气的更新路由表,则把此相邻路由器记为不可达的路由器,即将距离置位16(距离为16表示不可达)。 (4)返回。其实,这种算法的要点就是这样的:设X是结点A到B的最

6、短路劲上的一个结点。若将路径A到B拆成两段路径A到X和X到B,则将每一段路径A到X和X到B也都分别是节点A到X和节点X到B的最短路径。四、RIP算法处理流程图三、测试结果与结果分析1、先构建一个简易的网络,如下所示:31–41--11–32c41–51--网3网4C21–31–51--网5D网2B网121–11--A2、在调试窗口输入以上路由信息,在输入距离大于16的时候会提示重新输入。如下所示:3、输入完成后回车得到如下路由器路由表4、路由器更新后的结果四、程序源代码#include#includ

7、e#includevoidmain(){structrouting{chardst[100];inthopcount;charnext_station[3];};structroutinga[50];structroutingb[50];structroutingc[50];inti,j,r,k,x,y;intp,q,n,s;charm[3],l[3];charstr[50]="目的网络距离下一跳路由器";printf("请输入路由器R1的路由表:");for(i=0;i<

8、=49;i++){printf("目的网络:");scanf("%s",&a[i].dst);printf("距离:");scanf("%d",&a[i].hopcount);printf("下一跳:");scanf("%s",&a[i].next_station);if(a[i].hopcount>=17){printf("路由不可到达请重新

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。