【协议森林】透视RIP协议

news/2024/5/18 16:36:56 标签: udp, tcp/ip, c++

【摘要】

本文试图以简明的方式,结合智能终端产品的实际使用需求,从几个角度对RIP协议进行简要说明;希望可成为相关开发人员的有益参考;对于其中可能存在的问题或错误,欢迎在评论区提出讨论;

【何为RIP协议】

何为RIP协议?RIP协议是一种内部网关协议(IGP),是一种底层基于贝尔曼福特算法的动态路由选择协议,用于自治系统(AS)内的路由信息的传递。RIP协议基于距离矢量算法(DistanceVectorAlgorithms),使用“跳数”(即metric)来衡量到达目标地址的路由距离。这种协议的路由器只关心自己周围的世界,只与自己相邻的路由器交换信息,范围限制在15跳之内,再远它也爱莫能助,所以rip只适用于小区域。Rip协议运行在UDP协议之上,使用520端口,使用224.0.0.9作为组播地址,向外组播路由信息。

RIP的实质:将路由表信息封装在RIP报文头中,广播或组播的方式告诉其他设备, 已达到自治网络中路由信息共享。RIP更多用于互联网的一部分(比如整个中国电信的网络)。这样一个互联网的部分往往属于同一个ISP或者有同一个管理机构,所以叫做自治系统。自治系统内部的主机和路由根据通向外部的边界路由器来和其它的自治系统通信。各个边界路由器之间通过BGP来生成自己前往其它AS的routing table,而自治系统内部则参照边界路由器,使用RIP来决定routing table。

【RIP工作原理】

RIP通过广播UDP报文来交换路由信息,每30秒发送一次路由信息更新。RIP提供跳跃计数(hopcount)作为尺度来衡量路由距离,跳跃计数是一个包到达目标所必须经过的路由器的数目。如果到相同目标有二个不等速或不同带宽的路由器,但跳跃计数相同,则RIP认为两个路由是等距离的。RIP最多支持的跳数为15,即在源和目的网间所要经过的最多路由器的数目为15,跳数16表示不可达。

【RIPv1、RIPv2和RIPng的联系】

1.都是距离矢量的路由协议(距离代表跳数,矢量代表方向),使用跳数作为度量来衡量到达目的网络的距离,适合小型网络。

2.工作过程相同,也就是路由的交互过程相同:

路由器运行RIP后,首先发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应。网络稳定后,路由器会周期性发送路由更新信息。

3.RIP度量值使用标准相同:

RIP使用跳数作为度量值来衡量到达目的网络的距离。

缺省情况下,直连网络的路由跳数为0。当路由器发送路由更新时,会把度量值加1。RIP规定超过15跳为网络不可达。

4.时间参数(定时器)相同:

周期通告路由信息的时间都为30秒,路由老化时间都为180秒,垃圾定时器都为120秒(response报文发送四次的时间)。

5.承载协议相同:

都是用UDP协议承载报文,但端口号不相同:RIPV1和RIPV2使用UDP端口号520,而RIPng使用UDP端口号521。

【RIPv1、RIPv2和RIPng的区别】

1.使用场景不同:RIPV1和RIPV2用于IPV4的网络中,而RIPng用于IPV6网络中。

2.RIP报文发送的目的地址不同:RIPV1是以广播报文的方式发送,RIPV2目的地为组播地址:224.0.0.9,RIPng目的地为组播地址:ff02::9/8

3.路由条目的下一跳地址不同:RIPV1和RIPv2路由条目的下一跳地址为全局私网或公网地址,RIPng路由条目的下一跳地址为0::0或者链路本地地址。

4.是否是无类路由协议:RIPv1是有类别路由协议,不支持VLSM和CIDR。RIPv2为无类别路由协议,支持VLSM,支持路由聚合与CIDR。在IPV6中由于地址格式的不同,有类和无类这一概念就不再使用,所以RIPng在这个点上不在作对比。但RIPng也支持ipv6路由聚合。

5.报文格式不同:

6.安全认证不同:

RIPV1不支持认证,RIPV2支持认证,RIPng本身不提供认证机制,依靠IPv6提供的安全机制(扩展报头)来保证自身报文的合法性。在实际的开发中,通过配置相关命令,来使用RIP。

RIP的基本逻辑是:如果A距离B为6,而我距离A为1,那么我途径A到B的距离为7。 RIP支持V1和V2版本,配置命令: routed -d -g -v 1; routed -d -g -v 2 -a 2 -p aaaa

7.与网络层协议的兼容性不同:

RIP不仅能在IP网络中运行,也能在IPX网络中运行;RIPng只能在IPv6网络中运行。

 7.组网原理

加入讨论

​​​​​​​

 


http://www.niftyadmin.cn/n/1114139.html

相关文章

MSE初始化和基本操作

MSE默认的登录账户密码可能是:login/password (admin/admin). l 初始化配置完成后,下次使用root登录时,仅显示Linux shell提示符,而不是安装脚本。 您可以随时重新运行安装脚本,以root身份登录并运行/opt/mse/setup/se…

escape() VS encodeURI() VS encodeURIComponent()

JavaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 。 下面简单介绍一下它们的区别 1 escape()函数 定义和用法 escape() 函数可对…

【OMNeT+INET】浅谈OMNeT开源库INET(一)

【前言】 更多讨论欢迎加入学习QQ群:157696125 本文试图以简明的方式,结合实际项目使用需求,从几个角度对开源库INET进行简要说明;希望可对各位研究生同学和开发人员有益参考;对于其中可能存在的问题或错误,欢迎在评论区提出讨论; 【INET为何物】 INET框架(https://i…

序算法时间复杂度、空间复杂度分享

今天分享的是时间复杂度、空间复杂度相关内容,可以简单了解下复杂度相关的知识。复杂度:复杂度描述的是算法执行时间或占用空间与数据规模的增长关系我们用大O表示法来表达复杂度关系 T(n) O(f(n))其中 T(n) 是代码的执行时间,n 表示数据的规…

数据库的四种隔离级别

1、read uncommitted:读未提交 SQL1:select * from test where id 1 SQL2:update test set namenewname where id 1 原理 操作一在进行数据库读操作时,不对数据库上任何锁; 操作二在进行更新操作时,对数据…

ASA-有关AAA用户登录的问题

问题示例:I have created a test user that is set to privilege 15 in the config: When I log in to the ASA 5510 I am in privilege 1 according to sh curpriv: Attempting enable fails even though I know I have the correct enable password: Logging in …

交互设计的KISS原则

2019独角兽企业重金招聘Python工程师标准>>> KISS原则就是Keep It Simple and Stupid. 简单是软件设计之美, 简单的设计使得软件产品易于开发, 易于维护. 简单代表着高质量, 少加班, 每个人都希望自己的工作是简单的. 在KISS原则之外, 应该有一个更重要的原则: Usef…

OkHttp使用Get和Post访问服务器的工具类(一)

首先来简单介绍一下okttp框架,类似于HttpUrlConnection,Android6.0以后,废弃了Apache Http Client,只有HttpUrlConnection和OkHttp了,相对而言,OkHttp越来越受到开发者的喜爱,那么它的优势在哪呢…