您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 通信网理论基础(第三部分)2Internet单播路由协议
2019/8/151通信网理论基础第三章(2)因特网的路由协议参考书籍:高等计算机网络-体系结构、协议机制、算法设计与路由器技术徐珞、吴建平等著,机械工业出版社2003,9南京邮电大学张顺颐2012,4,132019/8/152Internet路由信息协议内部网关协议之1:路由信息协议RIP一、路由信息协议RIP路由信息协议RIP是内部网关协议的一种。(一)RIP协议的发展过程RIP协议让互联网中所有的路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表。使得从每一个路由器到每一个目的网络的路由都是最短的,即跳数最少。2019/8/15320世纪80年代,加州大学伯克利分校在开发Unix系统的同时,在routed程序中设计实现了RIP协议软件。Routed程序被绑定在BSDUnix系统中一起推出,被广泛的使用于早期网络中的主机之间交换路由信息。2019/8/154RIP协议认为,好的路由就是跳数少,即通过的路由器数目少,称为“距离短”。RIP协议定义:路由器直接到所在网络距离为0(也有定义为1的),到非直接连接的网络的距离则为所经过的路由器的数加1。尽管RIP/routed没有非常突出的优点,但是由于Unix操作系统的普及,RIP/routed也逐渐被推广使用,为许多人所接受,成为中小型网络中最基本的路由协议程序。2019/8/155IGP:内部网关协议;EGP:外部网关协议;2019/8/156这是因为RIP具有自身的特点。首先,在小型的网络环境中,从使用的网络带宽以及协议配置和管理复杂程度上看,RIP的运行开销很小;其次,与其它路由协议相比,RIP使用简单的距离-向量算法,实现更容易;由于历史的原因,RIP的应用范围非常广,在未来的一段时间内仍然会使用在各种网络环境中。因此,在路由器的设计中,RIP协议是不可缺少的路由协议之一。2019/8/157RIP协议虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但是由于每一个路由器的位置不同,其路由表是不一样的。RIP协议使用运输层的用户数据报协议UDP进行传送,因此RIP协议的位置应当在应用层。但是转发IP数据报的过程是在网络层完成的。2019/8/1581、路由信息协议RIP(RoutingInformaitionProtocol)RIP是内部网关协议IGP中最先得到广泛使用的协议。RIP是分布式的基于距离向量的路由选择协议,特点是简单。距离:RIP协议要求网络中的每一个路由器都要维护从它自己到其它每一个目的网络的距离记录,即距离向量。2019/8/159RIP协议定义距离:从一个路由器到其直接连接的网络的距离定为1,而从一个路由器到非直接连接的网络距离定义为所经过的路由器数加1。所以,这里距离也称为“跳数(hopcount)”。RIP不能在两个网络之间同时使用多个路由。2019/8/1510各种路由协议都是要满足路由器不断地和其它的路由器交换路由信息,为了便于问题的讨论,需要明确:不相邻的路由器不交换信息。即一个路由器只与相邻的路由器交换信息,因为每个路由器不需要考虑不相邻的路由器的情况,那样情况非常复杂;2019/8/1511交换的信息是本路由器当前所知道的全部信息,即自己的路由表;也就是说,所交换的信息是到本自治系统中所有网络的(最短)距离,以及到每个网络应该经过的下一跳路由器。至于本路由器怎样获得这些信息,以及路由表是否完整,那并不重要;2019/8/1512Internet网络的结构特点2019/8/1513按固定的时间间隔交换路由信息;然后更新路由表。当然在网络发生拓扑变化时,应该即时交换信息。目前使用的RIP协议版本有RIPv1,是1988年6月提出的,RIPv2,是1998年11月提出的,两者之间的不同是,后者在协议报文的路由表项中增加了子网掩码信息,安全认证,不同路由协议之间的交互等功能。2019/8/1514二、RIP协议的报文结构1、RIPv1报文结构。RIPv1的报文结构如图1所示。每个报文都包括一个报文命令字段、一个报文版本字段以及一些路由信息项(一个RIP报文中最多允许25个路由信息项)。RIP报文的最大长度为4+20×25=504字节,加上UDP报头的8字节,一共是512字节。如果路由表的路由项数目大于25时,那么就需要多个RIP报文来完成路由信息的传播过程。2019/8/1515图1RIPv1报文结构2019/8/1516Command字段:标识RIP报文的类型,目前RIP只支持两种报文类型,分别是请求报文(request)和响应报文(response)。Version字段:表示RIP报文的版本信息,RIPv1报文中此字段为1。AddressFamilyIdentifier字段:表示路由信息所属的地址族,目前RIP中规定此字段必须为2,表示使用IP地址族。IPv4Address字段:表示路由信息对应的目的地IP地址,可以是网络地址、子网地址以及主机地址。2019/8/1517Metric字段:表示从本路由器到达目的地的距离,目前RIP协议将路由路径上经过的路由器数作为距离度量值。MustBeZero字段:协议规定这些字段必须为0。当需要发送请求对方路由器全部路由表信息的请求报文时,RIP使用另一种报文结构,如图2所示。此报文结构中路由信息项的地址族标识符字段为0,目的地址字段为0,距离度量字段为16。2019/8/1518图2RIPv1请求全部路由信息报文结构2019/8/1519RIP协议因此,RIP协议使用的最大距离为15,16则表示不可达。故只能在比较小的网络中使用。网络规模大时,可以使用OSPF协议(内部网关协议,也称最短路径优先协议)。如果网络中发生了故障,则故障路由器信息可能要多次才能更新。此即RIP协议的特点“坏消息传得慢,好消息传得快”,这是因为网络的故障是由跳数不可达来表示的,跳数不可达需要特殊为16时才可判为不可达;而新的可达路由,则直接转发即可,所以传得很快。2019/8/15202、RIPv2报文结构。RIPv2充分利用了RIPv1报文结构中未被使用的字段,对RIPv1进行了进一步的扩展,包括:采用多播方式提高网络报文利用效率;为每个路由表项增加子网掩码信息;对RIP交互报文增加安全机制以及为不同路由协议的交互提供支持等。2019/8/1521图3RIPv2报文结构2019/8/1522RIPv2报文结构中与RIPv1不一致的字段的简单说明:Unused字段:RIPv2不对此字段做任何处理,不要求字段必须为0。Version字段:对于RIPv2来说,此字段为2。RouteTag字段:表示路由对应的自治系统号,从而用于协议的交互。SubnetMask:表示路由信息对应的子网掩码,增加对CIDR路由的支持。NextHop:表示路由对应的下一跳路由器IP地址,如为0.0.0.0,则以此RIP报文的发送源地址作为下一跳路由器。2019/8/1523为了给RIP路由交互报文提供认证功能,RIPv2在每个路由交互报文中增加了认证字段,报文结构如图4所示,RIPv2利用了一个完整的路由信息项来实现认证功能,这样整个报文最多只能包括24个路由信息项。2019/8/1524图4RIPv2认证字段报文结构2019/8/1525AuthenticationType字段:表示认证的类型,当前协议只规定为2,表示明文密码认证。Authentication字段:表示认证的数据,即认证密码值。该字段为16字节,未满16字节的最后填0。2019/8/1526(三)RIP协议的基本特点1、协议运行过程当系统启动时,RIP协议处理模块在所有RIP配置运行的接口处发出request报文,然后RIP协议就进入了循环等待状态,等待外部RIP协议报文(包括请求报文和响应报文)的到来。2019/8/1527而接收到request报文的相邻路由器会发出包含它们路由表信息的response报文。当请求的路由器接收到一个response报文后,它会逐一处理收到的路由表项内容。如果报文中的表项为新的路由表项,那么就会向路由表加入该表项。2019/8/1528如果该报文表项已经在路由表中存在,那么首先判断此更新路由是否就是本地路由当初获得的源主机,如果是,则无论表项的距离度量值(metric)如何,都需要更新表项;如果不是,那么只有当更新表项的metric值小于路由表中相应表项metric值时才需要替代原来的表项。2019/8/15292、定时器定义系统启动后,路由器以30秒的间隔自动发送response报文,在这种response报文中会包括本路由器中除一些被水平分裂等策略抑制之外的所有路由信息。协议将此定时器存于路由更新定时器(UpdateTimer)。2019/8/1530为了防止整个网络中参与RIP协议交互的路由器同时广播路由更新报文从而造成网络的拥塞,协议规定在30秒的基本更新时间间隔上附加一个随机变化量,此变化量为5秒。因此真正RIP协议实现中更新定时器的值变化范围为25秒到35秒。2019/8/15313、慢收敛问题及对策包括RIP在内的所有距离向量算法路由协议都有一个严重的缺陷,即慢收敛(slowconvergence)问题,或者称为计数至无穷(counttoinfinity)。2019/8/1532图5慢收敛问题实例2019/8/1533如图5所示,图5a是一个正常的网络拓扑结构,从R1可以直接到达net1,从R2经过R1可到达net1。正常情况下,R2收到R1的距离向量报文后,会建立一条路径(net1,R1,1)。2019/8/1534现在假设从R1到net1的路径因故障而崩溃,但R1依然能正常工作。R1一旦检测到net1不可到达,它会立即将原来去往net1的路径废除(将距离值设为16)。然后会出现两种情况:2019/8/1535第一种,在收到来自R2的路由更新请求报文之前,R1将修改后的路径(net1,R1,1)删除。这时整个网络路由状态是正确的。第二种,R2赶在R1发送新的更新路由报文之前广播自己的路由更新报文,该报文中必然有一条(net1,R1,1)表项,说明从R2出发,经过一个路由器就可以到达net1。这时R1会根据此表项来修改自已的路由表,产生关于net1的新路径(net1,R2,2)。于是在R1与R2之间出现了路由环路,如图5b所示。2019/8/1536上述路径环路会通过R1、R2之间不断的路由更新报文交换而解除,但是解除过程是非常缓慢的。在出现路径环路之后,在下一轮路由广播中,R1将向R2广播(net1,R2,2)表项,R2收到此表项后,将去往net1的路径改为(net1,R1,3);2019/8/1537然后R2向R1通告(net1,R1,3)表项,R1将去往net1的路由项改为(net1,R2,4)…如此下去,直到路径长度变为16。也就是说,要经过7次来回(至少30×7秒)路径环路才可以消除。这就是所谓的慢收敛问题。更为复杂的路由环路还有可能发生在一系列路由器之间。2019/8/1538为了克服慢收敛问题,RIP协议中提出了以下方法:(1)简单的水平分裂法。当路由器从某个网络接口发送RIP路由更新报文时,其中不能包含从该接口获取的路径信息,即自身提供的路由信息不再采用。这样就避免了形成路由环路。2019/8/1539(2)带有毒性逆转的水平分裂法。路由器向某一个接口发送RIP路由更新报文时,包含从该接口获取的路由信息,但是将这些路由项的路径设为无穷。水平分裂法可以避免两个路由器之间产生的路径环路现象,但是它仍然不能完全避免路径环路的产生。2019/8/1540(3)触发更新法。为了加速网络路由收敛的速度,协议提出了触发更新法。它的做法是:一旦发现某一些路由表项发生变化,就立即广播路由更新报文,而不必等待下一次刷新周期。2019/8/1541触发更新法能够大大加快路由的收敛速度,但是它同样存在着更新报文数量太多、太频繁的缺点,因此需要对触发更新报文的发送频率做严
本文标题:通信网理论基础(第三部分)2Internet单播路由协议
链接地址:https://www.777doc.com/doc-322705 .html