1 RIPng简介

路由技术的发展是与整个因特网的发展密切相关的。随着因特网规模和负载的增长,产生了地址空间不足及路由器存储和交换的信息量急剧增加等一系列问题,使得 IPv6得以长足发展,并将最终取代IPv4。同时现有的基于IPv4的路由协议也必须加以改造,使之符合未来因特网的发展要求。

众所周知,路由协议有基于距离矢量和链路状态两种。使用最广泛的一种基于距离矢量的路由协议是选路信息协议RIP(Routing  Information  Protocol)。RIP产生较早,经过多年的应用,已经产生成熟的标准和产品。RIP最大的优点是其比较简单,在规模不大、拓扑结构比较简单的网络上 易于操作和维护。但对于规模较大的网络,由于其存在选路环路及无限计数等问题,选路性能不如基于链路状态的协议(如OSPF),因而较少采用。

RIP作为一种成熟的路由标准,在因特网中有着广泛的应用,特别是在一些中小型网络中。正是基于这种现状,同时考虑到RIP与IPv6的兼容性问 题,IETF对现有技术进行改造,制定了IPv6下的RIP标准,即RIPng(RIP next  generation)。下面的各节中将分别对RIPng的消息格式、工作原理、与RIPv1及RIPv2的主要差别、协议的缺点及改进方向、发展趋势等 方面做简单的介绍。

 2 RIPng的报文格式

RIPng是基于UDP的协议,并且使用端口号521发送和接收数据报。RIPng报文大致可分为两类:选路信息报文和用于请求信息的报文。它们都使用相 同的格式,由固定的首部和路由表项RTE(Route Table Entry)组成,其中路由表项可以有多个。

首部包括命令字段和版本号字段。同RIP一样,命令字段用来区分报文要实现的各种操作。其中命令号1表示请求部分或全部选路信息,命令号2表示响应,其中包含一个或多个RTE。

路由器或主机可以通过发送请求命令向另一个路由器请求选路信息。路由器使用响应命令回答。版本号字段包含了协议的版本号(目前的版本号值为1),接收方会检测该字段,以确定对方运行的RIPng协议本地是否能进行正确的解释。

报文的剩余部分是一个RTE序列,其中每一个RTE由目的IPv6前缀、路由标记、前缀的有效长度以及到目的网络的花费等4部分组成。

IPv6的地址为128bit,因此在RTE中占用16字节。

路由标记字段是从RIP中保留下来的,其最主要的用途是用来对外部路由做标志,以区分内部路由和外部路由,供外部网关路由协议(如EGP或BGP)使用。该字段也可用于其他目的,只要网络内所有运行RIPng的路由器对其解释是一致的。

前缀长度字段指明了前缀中有效位的长度,IPv6中使用了前缀长度的概念代替了IPv4中的子网掩码。由于IPv6地址的意义很明确,因此RIPng中不再区分网络路由、子网路由或主机路由。

路由花费字段指明到目的网络的花费,由于RIPng的最大工作直径为15跳,因此该字段可以为1和15之间的任意值,16即意味着目的地不可达。RIPng中仍然使用固定的度量方式,即该字段的含义只能是跳数,路由器不能对其进行其他的解释。

RIPng并没有限制报文的大小,RIPng报文所能携带的最大RTE的数目是由物理介质的MTU所决定的,计算公式如下:

报文长度 = RTE数目×20 + 4

其中RTE数目的计算公式如下:

RTE数目=INT[(MTU - IPv6首部长度 - UDP首部长度 - RIPng首部长度) / RTE长度]

与RIPv2不同的是,RIPng的下一跳字段是由一个单独的RTE指定的。RIPng使用单独的RTE表示下一跳的原因是IPv6的地址多达 128bit,若将下一跳字段与目的网络地址放在同一个RTE中,则RTE的大小几乎将会增加一倍,因此RIPng中采取目的网络地址和下一跳分开的方法 来减小RTE的长度。在表示下一跳的RTE中,路由标记和前缀长度字段必须为零,而度量字段为0xFF。

3 RIPng的工作原理

RIPng把参与通信的机器分为主动和被动两种方式。主动路由器向其他路由器通告路由,而被动路由器接收通告并更新其路由,被动路由器自己并不通告路由。只有路由器以主动方式使用RIPng,主机只能使用被动方式,因为主机并不了解路由信息。

运行RIPng的路由器维持一个到所有可能目的网络的路由表,路由器周期性地(RFC推荐为30s)向邻居节点发送该路由器的路由表,接收方通过接收邻居 路由器的周期性通告更新自己的路由表。这种周期性的路由信息的交换使得每个路由器形成对网络拓扑结构的局部的认识。RIPng使用到达目的站点所经过的链 路数,即跳数来度量路由花费,同时RFC规定RIPng的工作范围为15跳,数值16表示无穷大,即意味着路由不可达。

路由器通常不会主动发出请求报文来进行路由请求,路由请求通常只是在路由器刚启动或是路由器正在寻找路由信息时才会发出请求报文以获得响应。

路由器在查询响应、周期更新、触发更新三种情况下会收到响应报文。路由器根据响应报文判断是否对本地路由表进行更新。由于响应报文可能对本地路由表进行改动,因此对报文的来源必须进行严格的检查,以确认报文的合法性。

众所周知,基于距离矢量算法的路由协议会产生慢收敛和无限计数问题,这样就引发了路由的不一致。RIPng使用水平分割技术、毒性逆转技术、触发更新技术 来解决这些问题,但是这些技术的引入,同时又带来了另一些问题,如采用触发更新技术后,如果不对产生的报文进行合理的控制,很容易产生广播风暴。

路由器周期性的报文广播和触发更新给网络造成很多额外的负载,为减少路由信息的数量,RIPng可以采用多播技术发送更新报文,同时利用一个小的随机时延对触发更新报文进行抑制。

介绍RIPng的工作原理就不能不提到定时器,定时器在RIPng中起着非常重要的作用,RIPng使用定时器来实现路由表的更新、报文的发送。周期性的 报文广播是由定时器实现的,另外为防止路由表长时间未更新而失效,每个路由表项有两个定时器与之相联系,超时的路由表项最终将会被删除,以防止路由器广播 和使用已经失效的路由。RIPng中使用的定时器     主要有以下三个:

(1)启动周期性广播的定时器。此定时器被设置成25s到35s之间的任一随机数。这样设置的目的是为了避免网络上所有路由器以相同的定时发送更新报文,利用随机间隔可以均衡通信量,从而减少路由器之间发生冲突的可能性。

(2)期满定时器。路由器只要收到通往特定信宿路由,就对通往该信宿的期满定时器初始化。期满定时器被设定为180s,如果一条路由在期满定时器超时前未 得到相关报文的更新,则该条路由不再有效,但仍保留在路由表中,以便通知其他路由器这条路由已经失效。

(3)垃圾收集定时器。路由器对无效路由打上尺度为无穷大的无效标记并将垃圾收集定时器初始化。此时,定时器被设置为120s,在这段时间内这些路由仍然会被路由器周期性地广播,这样相邻路由器就能迅速从路由表中删除该路由。

4 RIPv1、RIPv2和RIPng的比较

根据上面的介绍,我们应该看到RIPng的目标并不是创造一个全新的协议,而是对RIP进行必要的改造以使其适应IPv6下的选路要求,因此RIPng的 基本工作原理同RIP是一样的,其主要的变化在地址和报文格式方面。下面列举了一些RIPv1、RIPv2与RIPng之间的主要区别:

(1)地址版本。RIPv1、RIPv2是基于IPv4的,地址域只有32bit,而RIPng基于IPv6,使用的所有地址均为128bit。

(2)子网掩码和前缀长度。RIPv1被设计成用于无子网的网络,因此没有子网掩码的概念,这就决定了RIPv1不能用于传播变长的子网地址或用于 CIDR的无类型地址。RIPv2增加了对子网选路的支持,因此使用子网掩码区分网络路由和子网路由。IPv6的地址前缀有明确的含义,因此RIPng中 不再有子网掩码的概念,取而代之的是前缀长度。同样也是由于使用了IPv6地址,RIPng中也没有必要再区分网络路由、子网路由和主机路由。

(3)协议的使用范围。RIPv1、RIPv2的使用范围被设计成不只局限于TCP/IP协议簇,还能适应其他网络协议簇的规定,因此报文的路由表项中包 含有网络协议簇字段,但实际的实现程序很少被用于其他非IP的网络,因此RIPng中去掉了对这一功能的支持。

(4)对下一跳的表示。RIPv1中没有下一跳的信息,接收端路由器把报文的源IP地址作为到目的网络路由的下一跳。RIPv2中明确包含了下一跳信息, 便于选择最优路由和防止出现选路环路及慢收敛。与RIPv2不同,为防止RTE过长,同时也是为了提高路由信息的传输效率,RIPng中的下一跳字段是作 为一个单独的RTE存在的。

(5)报文长度。RIPv1、RIPv2中对报文的长度均有限制,规定每个报文最多只能携带25个RTE。而RIPng对报文长度、RTE的数目都不作规 定,报文的长度是由介质的MTU决定的。RIPng对报文长度的处理,提高了网络对路由信息的传输效率。

(6)安全性考虑。RIPv1报文中并不包含验证信息,因此也是不安全的,任何通过UDP的520端口发送分组的主机,都会被邻机当作一个路由器,从而很 容易造成路由器欺骗。RIPv2设计了验证报文来增强安全性,进行路由交换的路由器之间必须通过验证才能接收彼此的路由信息,但是RIPv2的安全性还是 很不充分的。IPv6包含有很好的安全性策略,因此RIPng中不再单独设计安全性验证报文,而是使用IPv6的安全性策略。

(7)报文的发送方式。RIPv1使用广播来发送路由信息,不仅路由器会接收到分组,同一局域网内的所有主机也会接收到分组,这样做是不必要的,也是不安 全的。因此RIPv2和RIPng既可以使用广播也可以使用多播发送报文,这样在支持多播的网络中就可以使用多播来发送报文,大大降低了网络中传播的路由 信息的数量。

转载于:https://blog.51cto.com/cisco130/1282722

RIPng 原理和实践相关推荐

  1. Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27

    Atitit.java jna  调用c  c++ dll的原理与实践  总结  v2  q27 1. Jna简单介绍1 2. Jna范例halo owrld1 3. Jna概念2 3.1. (1)需 ...

  2. Atitit.软件兼容性原理与实践 v3 q326.docx

    Atitit.软件兼容性原理与实践 v3 q326.docx 1. 架构兼容性1 2. Api兼容性1 2.1. 新api  vs  修改旧的api1 3. Web方面的兼容性(js,html)1 3 ...

  3. 2018-2019-2 网络对抗技术 20165239Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165239 Exp3 免杀原理与实践 win10 ip地址 192.168.18.1 fenix ip地址为 192.168.18.128 (1)杀软是如何 ...

  4. 20155222卢梓杰 实验三 免杀原理与实践

    实验三 免杀原理与实践 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 实验步骤如下 1.先对实验二中生 ...

  5. Webpack原理与实践

    简单了解了几个常用的插件,一般适合用于任何类型的项目,不管是否使用了框架.webpack为每个工作环节都预留了合适的钩子,扩展时只需要找到合适的时机去做合适的事情. 写在前面 webpack插件机制的 ...

  6. 图解Spark原理及实践----大数据技术栈12

    回顾:大数据平台技术栈 (ps:可点击查看),今天就来说说其中的Spark! 来自:ITPUB Spark 已经成为广告.报表以及推荐系统等大数据计算场景中首选系统,因效率高,易用以及通用性越来越得到 ...

  7. NLP汉语自然语言处理原理与实践

    NLP汉语自然语言处理原理与实践 作者:郑捷 ISBN号:9787121307652 出版时间:2017-01-01 出版社:电子工业出版社

  8. 《新一代SDN——VMware NSX 网络原理与实践》——导读

    ** 前言 ** 当企业需要搭建一个"云"的时候,无论它是公有云还是私有云,其基础架构一定涉及网络.计算和存储这三大块.NIST对云计算的定义中,明确提出了云中资源需要实现&quo ...

  9. Docker容器的原理与实践(上)

    本文来自网易云社区. 虚拟化 是一种资源管理技术,将计算机的各种资源予以抽象.转换后呈现出来, 打破实体结构间的不可切割的障碍,使用户可以比原本更好的方式来应用这些资源. Hypervisor 一种运 ...

最新文章

  1. hard_negative_mining
  2. 利用opencv改变视频长宽
  3. 查看修改Linux隐藏文件的四种简便方法
  4. 云原生除了K8S、微服务,还有...?
  5. linux 虚拟机设置好固定ip 修改了 dns 网络需要设置成桥接模式
  6. LeetCode 540. 有序数组中的单一元素(Single Element in a Sorted Array) 42
  7. espcms联动筛选功能开发
  8. 计算机离散数学视频教程,离散数学(全105讲)【理工学社】
  9. 实验1 小信号调谐放大器(单调谐与双调谐放大器)
  10. 5个月的精华:Spring/SpringBoot扩展点手册:手册在手,编码无忧:全网独一份 - 第451篇
  11. 【180628】VC++方格益智小游戏
  12. Pycharm专业版申请免费学生激活连接远程服务器编译配置图片显示变量观察等
  13. Crosslink-NX器件应用案例(2): MIPI的多源合成(MUX)与分发(DeMUX)
  14. 国内三大制式3G网络简介及比较
  15. 交通·未来第3期:基于实时WiFi-蓝牙检测数据的交通目标定位及出行模式甄别技术...
  16. 万字详解 Tomcat 组成与工作原理
  17. 密切值法解简单评价问题附matlab代码
  18. 【历史上的今天】4 月 22 日:Mosaic 浏览器发布;第一个商业软件的开发者出生;计算机先驱诞生日
  19. xbox虚拟服务器,《微软模拟飞行》体积减半,主机版也快到来了
  20. java成绩管理系统毕业论文_java web学生成绩管理系统,可作为java毕业论文

热门文章

  1. nacos 配置动态刷新_nacos配置中心修改后刷新
  2. r语言 col_R语言代码相关疑问标准提问
  3. rocketmq python 一个进程订阅多个topic_玩转不同业务场景,这些RabbitMQ特性会是得力助攻...
  4. python语音转文字源码_【python3】Python十行代码搞定文字转语音
  5. 判断请求是否为Ajax请求的小妙招
  6. CentOS 如何搭建本地和局域网yum源
  7. Linux 中创建 USB 启动盘来拯救 Windows 用户
  8. java获取鼠标在窗口_Java获取窗口鼠标坐标以及键盘按键
  9. PTA数据结构与算法题目集(中文)7-25
  10. 网络协议分层_接口测试之网络分层和数据