Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 合同模板 > 路由协议(RIP-OSPF和BGP)

路由协议(RIP-OSPF和BGP)

收藏

本作品内容为路由协议(RIP-OSPF和BGP),格式为 doc ,大小 87552 KB ,页数为 10页

路由协议(RIP-OSPF和BGP)


('《TCP/IP协议族》(英文版)第13章路由协议(RIP,OSPF和BGP)所谓“互联网络”(internet)是指由路由器连接而成的多个网络的组合体。当数据报从一个源端传送到一个目标端时,可能需要通过很多个路由器才到达与目标网络连接的路由器。路由器的作用是从一个网络中接收数据包(packet,分组),然后将它传送给另一个网络。一个路由器通常与几个网络连接,这样,当它收到一个数据包时,应该将数据包转发给哪个网络呢?路由器是按最佳化原则进行判定:哪个可用的路径是最佳路径?人们用metric来表示通过某个网络时所指定的“成本”(cost,代价)。一个特定路由的总metric,等于包含了该路由的多个网络的metric之和。路由器根据最短(最小)的metric来选择路由。分配给每个网络的metric取决于协议的类型。某些简单的协议,如“路由信息协议”(RIP),将每个网络同等处理,即通过每个网络的cost是一样的,或者说都是一个“跳数”(onehopcount)。所以如果一个数据包通过10个网络才到达目标端,其总cost就是10个“跳数”。其他协议,如“开放最短路径优先协议”(OSPF),则允许管理员根据所需的服务类型,为通过一个网络指定cost。通过某个网络的路由可以具有不同的cost(metric)。例如,如果所需的服务类型是“最大吞吐量”(throughput),一条卫星链路就比一条光纤链路具有更低的metric。另一方面,如果所需的服务类型是“最小延迟”,一条光纤链路就比一条卫星链路具有更低的metric。OSPF允许每个路由器根据所需的服务类型拥有几个路由表。其他协议定义metric的方法则完全不同。在“边缘网关协议”(BGP)中,评定的标准是可以由管理员设置的所谓“策略”(policy)。“策略”定义了应该选择的是哪个路径。不管metric是如何确定的,路由器在准备转发数据包时,都必须使用路由表。路由表应为数据包规定最佳路径。不过,路由表可以是静态的,也可以是动态的。“静态路由表”是那种不经常变化的路由表。而“动态路由表”是那种当互联网络中的某处出现变化时能自动更新的路由表。今天,互联网络需要的是动态路由表。这种路由表要求互联网络出现变化时即被尽快更新。例如,当某个路由关闭(down)时,需要进行更新;而当一个更好的路由建立后,也需要进行更新。各种路由协议都是为了动态路由表的需要而制定的。一个路由协议是一组规则和程序的组合,用于使互联网络中的路由器们相互告知有关的变化情况。它使路由器们共享它们所掌握的互联网络或相邻路由器的情况。这种信息的共享使得旧金山市的某个路由器可以知道德克萨斯州的网络出现故障了。路由协议还包含了将从其他路由器接收的信息综合起来的处理程序。13.1内部和外部路由今天,一个互联网络可能很大,以致一个路由协议无法完成为所有路由器更新路由表的任务。为此,需要将一个互联网络分为若干“自治系统”(autonomoussystems,AS)。一个“自治系统”是指由同一个管理员管理的一组网络和路由器。自治系统内部的路由称为“内部路由”,自治系统之间的路由称为“外部路由”。每个自治系统都可以选择一个内部路由协议来处理该自治系统内部的路由。但是,自治系统之间的路由通常只能使用一个外部路由协议来处理。现在使用的内部和外部路由协议很多。本章只介绍最常用的几种。下面讨论两个内部路由协议(RIP和OSPF)和一个外部路由协议(BGP)。RIP和OSPF可用于自治系统内部路由表的更新。BGP可用于为连接自治系统的各个路由器进行路由表更新。图13.2中,路由器R1,R2,R3和R4使用一个内部路由协议和一个外部路由协议。其他路由器只使用内部路由协议。细实线表示使用内部路由协议的各路由器间的通信连接。虚线则表示使用外部路由协议的各路由器间的通信连接。13.2RIP(路由信息协议)路由信息协议是一个用于自治系统内部的所谓“内部路由协议”。它是一种非常简单的协议,基于所谓“距离向量路由”(使用Bellman-Ford算法来计算路由表)技术。在本节中,我们首先研究RIP所应用的“距离向量路由”的原理,然后讨论RIP协议本身。距离向量路由在“距离向量路由”中,每个路由器都定期地和其相邻的路由器们共享它们对整个互联网络掌握的情况。理解这一算法的工作原理有三个关键,如下:1、共享整个自治系统的情况每个路由器都和其相邻的路由器们共享它们对整个互联网络掌握的情况。开始时,一个路由器掌握的情况可能是很少的,便是它知道多少并不重要;它发送它所知道的所有情况。2、只和相邻的路由器共享每个路由器只向相邻的路由器发送自己掌握的情况。它通过自己的所有端口发送自己知道的所有情况。3、定期地共享每个路由器都定期地(如每隔30秒)向相邻的路由器发送自己掌握的情况。术语“距离向量”起源于定期信息发送,一个报文包含有成对的列表(V,D),这里的V表示目的地(叫做向量),D是到达那个目的地的距离。注意距离向量是以第一人称报告路由的,即我们把一个路由器送来的通告看成它在说:“我可以到达距离为D的目的地V”。(《计算机网络——习题与解析》P183)路由表每个路由器都保持一张路由表,表中为路由器知道的每一个目标网络设置一条记录。该记录由目标网络的IP地址、到达目标的最短距离(用“跳数”表示)和下一跳(为了到达最后目标应将数据包转送给它的下一个路由器)三个部分组成。跳数是指数据包到达最后目标所进入的网络数目。路由表中还含有诸如该记录最后更新时间等其他信息。示例如下:表13.1距离向量路由表距离跳数下一跳其他信息163.5.0.07172.6.23.4197.5.13.05176.3.6.17189.45.0.04200.5.1.6115.0.0.06131.4.7.19RIP更新算法路由表根据收到的RIP响应报文(message)进行更新。以下是RIP所使用的更新算法:接收:一个RIP响应报文1.为每个advertised(被发布)的目标增加一个跳数值;2.对每个advertised的目标重复以下步骤:1.如果(目标不在路由表中)1.将advertised的信息添加到路由表中。2.否则1.如果(下一跳字段相同)1.用advertised的记录替换表中的记录2.否则1.如果(advertised跳数小于表中的跳数)1.把它加到路由表中2.否则2.什么都不做3.返回在图13.3中,一个路由器从路由器C处收到一个RIP报文。该报文列出了目标网络及其相应的跳数。要求更新算法,第一步是将跳数加1,然后将这个更新了的RIP数据包与原来的路由表比较。结果是产生了一个使用到达每个目标最新跳数的路由表。对Net1,因为没有新信息,所以Net1的记录保持不变。对Net2,表中的信息和报文中的信息确定是同一个“下一跳”(路由器C)。虽然路由表中的跳数(2)小于报文中的跳数(5),按算法还是选择了从报文中接收来的跳数,因为原始的值来自路由器C。这个值现在无效了,因为路由器C正在宣告一个新值。Net3是一个新增的目标。对Net6,RIP数据包含有一个较低的跳数,于是该值出现在新路由表中。Net8和Net9保留原来的值,因为报文中对应的跳数并无任何改进。路由表的初始化将一台路由器刚加入到网络中时,它使用自己的配置文件来初始化自己的路由表。此路由表只含有直接连接的网络和跳数(初始值均为1)。“下一跳”字段则为空白。图13.4表示了一个小自治系统中各初始的路由表。更新路由表每个路由表都使用上述的RIP更新算法,根据所接收的RIP报文进行更新。图13.5表示了上面那个自治系统的最新路由表。RIP报文格式RIP报文的格式如下:命令版本保留协议族全为0网络地址重复全为0全为0距离·命令(8位)规定报文类型:请求(1)响应(2)·版本(8位)规定RIP版本,此处为版本1(还有版本2)·协议族(16位)规定所用协议族。TCP/IP为2。·地址(14字节)规定目标网络的地址。IP只用四个字节,其余均填上0。·距离(32位)规定了从advertising路由器到目标网络的跳数。注意:每个目标网络均重复报文的一部分(阴影部分)。我们将它称为“一条记录”。请求和响应RIP使用两种报文:请求和响应请求请求报文是由刚启动的路由器发出,或者由某些记录已超时的路由器发出。请求可以是针对部分记录,也可以是针对全部记录。命令:1版本保留命令:1版本保留协议族全为0协议族全为0网络地址全为0全为0全为0全为0全为0全为0全为0a.针对部分记录的请求(阴影部分重复)b.针对全部记录的请求响应响应可以是solicited或unsolicited的。所谓“solicited响应”只能答复一个请求。它含有相应请求中规定的目标的信息。而所谓“unsolicited响应“则是每隔30秒定时发送,含有整个路由表的信息。下图是由一个RIP响应报文发布的有关三个网络的信息。命令:2版本保留协议族:2全为0141.12.0.0全为0全为05协议族:2全为0181.2.0.0全为0全为02协议族:2全为097.0.0.0全为0全为04141.12.0.05181.2.0.0297.0.0.04概念化报文RIP中的定时器(TimersinRIP)RIP使用三个定时器来支持它的操作:·定期(periodic)定时器25~35秒更新计时器·过期(expiration)定时器180秒路由限时器·垃圾搜集(garbagecollection)定时器120秒路由清除计时器“定期”定时器“定期”定时器控制“定期更新报文”的发布。虽然协议规定这个定时器必须设置为30秒,这个工作模型实际使用的是一个25~35秒之间的随机数,以防止由于路由器同时更新而在互联网上形成同步从而导致过载。每个路由器都有一个定期定时器,它被随机地设置为25~35之间的某个数,采用倒计数制。当计数值为零时,更新报文就被发出,然后定时器又被随机地设置一次。如果RIP使用其他附加的定时方法来发送更新信息(如“触发更新”,见下),定期定时器的工作并不受影响。定期更新报文按原定时间间隔发出,与其他定时系统的更新报文互不相干。“过期”定时器过期定时器决定了路由的有效性。如果一个路由器接收到某个路由更新信息,过期定时器将被设置为180秒(专为此特定路由)。每次收到该路由的最新的更新信息,定时器就被复位。在通常情况下,更新信息是30秒出现一次。但是,如果互联网络上出现问题,在所规定的180秒时间内没收到更新信息,该路由的跳数就被设置为16(表示目标是不可到达的)。每一个路由都有它自己的过期定时器。“垃圾搜集”定时器当与某个路由有关的信息变成无效时,路由器并不立即从其路由表中清除该路由,而是以metric值16继续发布该路由。同时,一个称为“垃圾搜集定时器”的定时器被设置为120秒(专为此路由)。当计数值变成0时,该路由才从路由表中被清除。这个定时器使相邻的路由器们可以在某个路由被清除前便知道该路由已经失效了。慢收敛(SlowConvergence)使用RIP时遇到的一个问题是“慢收敛”问题,这意味着在互联网络中某处的改变非常缓慢地传递到该互联网络的其他部分。例如,假设图3.10中的网络1中发生了某种改变,路由器R1立即自我更新。但是,因为每个路由器每隔30秒才发送其定期更新报文,这意味平均需要15秒(在0~30秒范围内平均)的时间才能到达R2。到达R3,则需要另外15秒,以此类推。当更新信息最后到达路由器Rn时,需要经过15×n秒时间。如果n是20,则需要300秒。而在300秒时间内,一个ATM网络可以发送十几亿个二进制位的信息。如果这种改变对这些信息有影响,那就意味有十亿个位的信息丢失了。克服RIP问题的一个方法是将跳数限制在15以内。这样做可以防止数据包在互联网络中长久游荡,引进网络阻塞。一个使用RIP的自治系统被限制在跳数为15的范围内;所以跳数为16时,表示无限大,用来表示一个不可到达的网络(见图13.11)。不稳定性(Instability)使用RIP时一个更严重的问题是不稳定性,即一个运行RIP的互联网络可能变得不稳定了。如果出现这个问题,数据包可能在路由器间循环传送。将跳数限制在15将改善稳定性,但不能完全解决问题。为了理解这个问题,假定图13.12中与Net1的连接失效了。路由器A的路由表中到Net1的cost是1。路由器B只能通过路由器A访问Net1,所以到Net1的cost是2。路由器A访问Net1失败时,立即作出响应,并将到Net1的cost改为16(无限远)。但是,它需要多达30秒时间才能将它的更新信息发送出去。在此期间,可能发生这样的事:路由器B向路由器A发送自己的更新报文。于是路由器A便有了两个与Net1有关的记录:本身路由表中的跳数值是16,而路由器B报告的信息却是2。路由器A因此而受骗,认为还可以通过路由器B从“后门”访问Net1,于是就将到Net1的跳数值改为3(2+1),并将此更新信息发送给路由器B。这样路由器B就有两个到达Net1的跳数值3(来自A)和2(自身路由表)。路由器B知道只能通过路由器A才能访问Net1,所以就忽略了自身路由表中较低的跳数值,将该跳数值改为4(3+1)。这种来回更新持续发生,一直到两个路由器都达到跳数值16。到了此时,路由器们才明白到Net1原来是“无路可通”!改进不稳定性的一些补救技术已经提出了一些补救技术来改进稳定性,但是没有一种是百分之百有效的。触发更新法(TriggeredUpdate)如果网络中没有什么变化,更新信息按正常的30秒间隔发送。但是,如果出现变化,路由器便立即动作发送自己的新路由表,这个过程叫做“触发更新”。触发更新可以改善稳定性。每个收到表明网络发生改变更新信息的路由器都立即发出新的信息,其时间大大小于15秒的平均值。如在图13.12中,当路由器A认识到Net1是不可访问时,便将自身路由表中的跳数值改为16,然后立即发送给路由器B。然后是路由器B修改路由表,这样两个路由表中到Net1的跳数值都是16了。发送含有递增跳数值的更新报文可以避免上述循环问题。虽然触发更新可以极大地改进路由问题,但它不能解决所有的路由问题。例如,用这样方法无法处理路由器的故障问题。水平分割法(SplitHorizons)水平分割法是第二种用于改善稳定性的方法,它利用的是路由报文发送的选择性;一个路由器必须识别不同的端口。如果一个路由器已经从某个端口处接收到了路由更新信息那么这同一个更新信息就不能通过此端口再发送回去。如果一个端口已经发送信息以帮助某个路由器进行更新,这种更新的信息不得回送;它是已知的,所以是不需要的。图13.13是这个概念的示意图。图中,路由器B通过其左端口已经接收到关于Net1和Net2的信息;这个信息被更新,并通过右端口(而非左端口)传送出去。同样,路由器B接收到的关于Net3的信息被更新,并且只能通过路由器B的左端口传送出去。水平分割法肯定可以改善稳定性。假定图13.12中Net1对路由器A是不可访问的。路由器B从路由器A收到关于Net1的信息;它并不将关于Net1的信息发送给路由器A。所以路由器A不仅有一条关于Net1的记录(跳数值16),而且不会再受骗认为要到达Net1可以通过什么“后门”。路由器A将自身的路由表发送给B,最后两者对Net1的跳数都成为16了。反向抑制法(PoisonReverse)此法是水平分割法的一个变种。在本办法中,路由器收到的信息被用于更新路由表,然后转发到所有端口。但是,从某个端口传来的路由表记录如果通过同一个端口出去,它的跳数值被设为16。图13.14是这个概念的示意图:路由器B已通过其左端口接收到关于Net1和Net2的信息;所以它以跳数16发送关于这些网络的信息。同样,关于Net3的信息从右端口进来,在右向的更新报文中Net3的cost被设为16。使用本法后稳定性被改善了。假定图13.12中Net1对路由器A是不可访问的。路由器B从A收到关于Net1的信息。它对A没有影响,如果Net1是可以访问的,因为路由器A并不选择B的Net1记录。但是如果Net1失效了,二者的跳数值都是16,从而避免了不稳定性。RIP第2版RIP第2版被设计用来克服第1版存在的某些问题。第2版的设计者们并不增加每条记录报文的长度,只是用新的字段替代了第1版中供TCP/IP协议由0填充的各个字段。报文格式图13.15为RIP第2版的报文格式。这个报文的新字段如下:图13.15RIP第2版格式命令版本保留协议族路由标签(routetag)网络地址子网掩码下一跳地址距离·路由标签本字段带有诸如自治系统编号等信息。它可以用来使RIP能接收来自某个外部路由协议的信息。·子网掩码四字节字段,存放子网掩码。·下一跳地址本字段规定了下一跳的地址。例如,这个字段在两个自治系统共享一个网络(主干,backbone)特别有用。此外报文可以规定在同一个自治系统或其他自治系统中,数据包下一步应发送给哪个路由器。认证(authentication)为了阻止未经许可的路由发布,数据包中加入认证功能,但并没有增加新的字段,只是将报文的第一条记录留出来存放认证信息。为了表示该记录是认证信息而不是路由信息其协议字段值取FFFF16(下图)。第二个字段是认证类型,它规定了认证所用的方法,第三个字段则为具体的认证数据。图13.16认证命令版本保留FFFF认证类型认证数据多播第1版RIP采用广播形式向每一个网络邻居发布RIP报文,这种情况下,不仅网络上所有的路由器接收到数据包,而且所有主机也接收到数据包。而第2版RIP使用多播地址224.0.0.9将RIP报文仅向网络中的路由器发布。重复封装RIP报文被封装在UDP用户数据报中。RIP报文中没有指示报文长度的字段,长度由UDP数据包中相应字段规定。分配给UDP中RIP使用的公认端口号是520。RIP通过公认端口号520使用UDP服务。13.3OSPF协议“开放最短路径优先”(OSPF,OpenShortestPathFirst)是另一种现在正在流行的内部路由协议。它同样适合在一个自治系统内部使用。某些称为“自治系统边界路由器”的特殊路由器用来阻止(dissipating)其他自治系统的信息进入当前系统。为了提高路由传送效率,并采用定时方式,OSPF将一个自治系统分成若干个区域(area)。区域所谓“区域”是指某个自治系统内部若干网络、主机和路由器的一种组合。一个自治系统可以分成许多个不同的区域。一个区域内的所有网络必须相连。一个区域内的路由器向整个区域广播(flood)路由信息。在区域边界处,若干称为“区域边界路由器”的特殊路由器将整个区域的信息加以汇总,然后转发给其他区域。在自治系统内区域之间有一个特殊的区域叫做“backbone”(主干区),一个自治系统内的所有区域都必须与这个主干区相连。换言之,主干区起主区域的作用,其他区域则为从区域的作用。不过这并不表示各区域内的路由器不能彼此相连。主干区内的路由器称为“主干区路由器”(backbonerouters)。注意,一个主干区路由器也可以同时是一个区域边界路由器。如果由于某些问题,主干区和区域间的连接中断了,管理员必须在路由器间建立一条“虚拟链路”(virtuallink)以确保主干区作为主区域的功能得以保持。每个区域都有一个区域标识号。主干区的标识号是0。图13.17为某个自治系统及其各个区域。度量值(Metric)OSPF协议允许管理员为每一个路由分配一个被称为“度量值”的cost(开销数)。这种度量值可以按服务类型(最小延迟、最大吞吐量等)。事实上,一个路由器可能有几份路由表,每份基于不同的服务类型。链路状态路由OSPF使用“链路状态路由”算法来更新区域内的各路由表。在具体讨论OSPF协议之前,让我们先讨论一下“链路状态路由”算法,它用来使一个区域内的每个路由器与其他路由器共享情况。共享它们对相邻路由器的掌握情况。理解这一算法的工作原理有三个关键,如下:1、共享关于相邻路由器的情况每个路由器都向区域内的所有其他的路由器发送其“邻居的状态”。2、和每个路由器共享每个路由器都向区域内的所有其他的路由器发送其“邻居的状态”,方法是进行“广播”(flooding),即将信息发给它的所有相邻路由器(通过它的所有输出端口)。每个相邻的路由器也向它的所有“邻居”发送数据包,以此类推。每一个接收到该数据包的路由器又将该数据报复制后发给它的“邻居”。最后,每个路由器(无一例处地)都收到了同样的信息。3、状态改变信息共享每个路由器仅在路由状态发生改变时才共享相邻路由器的状态。这个规则与距离向量算法正好相反,后者是不管路由状态是否改变,总是定时发送路由信息。所以链路状态路由算法的这个特性使得互联网络的流量低于使用距离向量算法时的流量。链路状态路由的思想是:每一个路由器都应该对每一时刻整个互联网络的拓扑情况有一个精确的了解。换言之,每个路由器都应该有一张整个互联网络的“拓扑图”。根据这个拓扑,路由器可以计算出它本身和每一个网络之间最短的路径。这里的拓扑图实际上是由结点和edges(线段)组成的图。不过,要用图来表示一个互联网络,我们还需要更多的定义。链路类型在OSPF术语中,一个网络称为一个“链路”(link)。现在已经定义的链路状态有四种:点对点(point-to-point),transient,stud和virtual。·点对点链路一个点对点的链路连接两个路由器,中间没有任何其他主机或路由器。换言之,此链路(网络)的作用就是用来连接两个路由器。这种链路的一个例子就是通过电话线或T线路连接两个路由器。对这种链路类型无需分配网络地址。用图形表示,路由器是各个结点,链路则为连接结点的一条双向线段。在线段两端,标出其度量值(通常两端是一样的)。换言之,每个路由器在链路的另一端只有一个邻居(见下图)。44点对点网络·Transient(瞬态)链路一个transient链路是一个连接了几个路由器的网络。数据可以通过任何一个路由器进入,同样可以通过任何一个路由器出去。所有具有两个或两个以上路由器的LAN和某些WAN都属于这一类型。此时,每个路由器都有若干相邻路由器。例如,看一看图13.20a所示的以太网情况。路由器A的相邻路由器有B、C、D和E。路由器B的相邻路由器有A、C、D和E。此时若要表示相邻关系,可以用图13.20b表示。以太网a.Transientnetworkb.非真实的表示c.真实的表示图13.20Transient链路路由器路由器ABCDEABCDE派定的路由器ABCDE这种表示方式既很低效也不真实。说它低效是因为每个路由器需要向其他四个邻居发布信息,发布的总数有20个。说它不真实是因为在每个路由器对之间并不存在单独的网络(链路);总共只有一个网络,它在所有五个路由器之间起一个十字路口的作用。为了表示每个结点如何通过一个网络与其他所有路由器连接,可以将网络本身表示为一个结点。但是,由于一个网络并不是一台机器,它不能起路由器的作用。网络中的众多路由器中的一台承担了这一责任。它被赋予了双重作用:既是一个真正的路由器,又是一个“派定的路由器”(designatedrouter)。我们可以通过13.20c中的拓扑图来表示一个Transient网络的连接情况。这样每个路由器只有一个相邻的路由器,即“派定的路由器”。另一方面,这个派定的路由器(即网络)有五个“邻居”。显然,向邻居通报信息的个数从20减少到10了。同样,链路被表示为结点间的一条双向线段。但是,从每个结点到这个派定的路由器只取一个度量值,从派定的路由器到任何其他结点不存在度量值。原因是这个“派定的路由器”表示的是一个网络。我们只能给通过此网络的数据包分配一个cost,不能重复计算。当一个数据包进行一个网络时,我们分配了一个cost;当一个数据包离开这个网络向往路由器时,不需要计算cost。·Stub(树桩式)链路所谓“stub链路”是指一个只与一个路由器连接的网络。数据包通过这个路由器进行网络,也通过同一个路由器离开网络。它是transien网络的一种特例。我们可以将路由器表示为一个结点,将网络表示为一个“派定的路由器”。但是,链路只是单向的,即从路由器到网络(见图13.21)。以太网a.stub链路b.表示法图13.21stub链路·Virtual(虚拟)链路当两个路由器间的链路中断时,管理员可能使用一条更长路径(可能会通过很多个路由器)在它们之间创建一条虚拟链路。派定的路由器AA',)


  • 编号:1700672048
  • 分类:合同模板
  • 软件: wps,office word
  • 大小:10页
  • 格式:docx
  • 风格:商务
  • PPT页数:87552 KB
  • 标签:

广告位推荐

相关合同模板更多>