专注SIP通讯产品与方案

路由器基本工作和路由协议

一、路由器基本工作过程
       在路由器中可以支持多种协议栈数据的转发。路由器在OSI的参考模型中,是一个第3层的网络连接设备。路由器连接的体系结构如图6所示。每台路由器可以有多个不同的网络接口。
       IP网采用无连接方式传送IP数据分组或称数据包,每一分组包含源站和目的站的IP地址,可以独立地在网上传送。IP数据包的转发是根据IP协议由路由器完成的。
路由器连接体系结构
 
图6    路由器连接体系结构
       路由器在接收到数据时,要对其传输路径进行选择,则需要维护一个称为“路由表”的数据结构。概括地讲,路由表就是包含若干条目,供路由器选路时查询数据包传输路径的表项。路由表中的一个条目至少要包含数据报的目的IP地址(通常是目的主机所在网络的地址)、下一跳路由器(即从本路由器出发按所给路径到给定目的地所要通过的下一个路由器)的地址和相应的网络接口等几项内容。当数据包达到路由器后,路由器就根据数据包的目的地址查询路由表中的相应条目,并按照其中的指示把数据包转发到相应的方向。因此,路由表要能够正确的反映实际网络的拓扑结构,这样才能保证路由器做出的路径选择是正确的。当网络拓扑发生变化的时候,路由表也应该做相应的变动,即路由器必须能生成路由表并在必要的时候更新路由表。 
       路由器的基本工作过程如下。
       图7(a)是一个简单路由IP网的例子。有4个A类网络通过3个路由器连接在一起。每一个网络上都可能有成千上万个主机,可以想象,若按这些主机的完整IP地址来制作路由表,则这样的路由表显然过于复杂和庞大。若按主机所在的网络号Net-id来制作路由表,那么每一个路由器中的路由表就只包含4个要査找的网络,路由表大大简化。路由器是根据路由表查找路由的,它根据目的站所在的网络找出下一跳(下一个路由器)。以路由器R2的路由表为例,由于R2同时连接在网络2和网络3上,因此只要目的站在这两个网络上.都可由路由器R2直接交付(当然要通过地址转换协议ARP才能找到这些主机相应的物理地址)。若目的站在网络1中,则下一站路由器应为R1,根据路由表其1P地址为20.0.0.7.由于路由器R2和R1同时连接在网络2上,因此从路由器R2转发分组到路由器R1是很容易的。同理,若目的站在网络4中,则路由器R2应将分组转发给IP地址为30.0.0.1的路由器R3。最后由路由器R3转交给目的主机。选择算法
       既然在选择路由时路由表只根据目的站的网络号.那么就可以将整个网络拓扑简化为图7.7(E)所示的那样。在简化图中,网络变成了一条链路,但每个路由器旁边都注明其IP地址。使用这样的简化图,可使我们不用关心某个网络内部的拓扑以及网络包含有多少台计算机,因为这些对研究路由选择问题并没什么关系。简化图强调了在互联网中转发分组时是从一个路由器转发到下一个路由器。只有路由中最后一个路由器才将数据报交付给主机。
互联网转发分组
图7     互联网转发分组的简化图
二、路由选择算法及路由协议
       路由器要实现数据转发的功能.至少需要完成两个工作:
       ① 选路策略。根据数据包的目的地和网络的拓扑结构选择一条最佳路径.把对应不同目的地的最佳路径存放在路由表中,及如何建立并维护路由表。包括静态路由选择以及各种动态路由协议。
       ② 选路机制。査路由表从而决定向哪个接口转发数据,并执行相应的操作。即如何根据路由表内容转发数据包。
       选路策略只影响路由表的内容,比如对同一个目的IP地址来说.由于选路策略的不同,最佳路径可能会不一样,但这并不影响选路机制的执行过程,只是会对其执行的结果产生影响。 
1. 路由选择算法
       路由选择的基本概念可参见6.1.2节的相关内容,而互联网中的路由选择算法是指路由器获得对网络拓扑结构的认知,并为数据包选择正确传输路径的方法或者策略。一个理想的路由算法至少应该具备以下几点特征:
       ① 完整性和正确性:即每个路由器中的路由表都必须给出到所有可能目的节点的下一跳应怎样走,且给出的走法是正确的。
       ② 简单性:即路由选择的计算不应使网络通信量增加太多的额外开销。
       ③ 健壮性:主要指当某些节点、链路出现故障不能工作,或故障恢复后投入运行,算法能及时改变路由。
       ④ 公平性:即算法对所有用户都平等的。
       ⑤ 最佳性:即以最低的成本来实现路由算法。
       互联网的复杂性使得当前使用的路由算法主要是动态的、分布式的。目前互联网上的动态路由协议主要基于两种动态分布式路由选择算法:距离矢量路由算法和链路状态路由算法。
2. 路由协议
       由于互联网规模太大,分布范围太广,所以路由表中对应每一个目的网络都有一个条目是不可能的,同样.也不可能采用一个全局的路由算法或协议。因此.Internet将整个网络划分为若干个相对自治的局部系统,即自治系统(AS:AutonomousSystem)0自治系统可以定义为同一机构下管理的路由器和网络的集合。
路由协议
       路由协议是IP路由器最重要的一个组成部分,可以分为内部网关协议(IGP:InteriorGatewayProtoco)和外部网关协议(EGP:ExteriorGatewayProtocol)两大类。内部网关协议是用于自治系统内部的动态路由协议,包括路由信息协议RIP、开放最短路径优先OS-PF、()SI的IS-IS和Cisco路由器系统中的        EIGRP(EnhancedInterior Gateway RoutingProtocol,增强型内部网关路由选择协议)等;而外部网关协议则是用于自治系统之间拓扑信息交换的路由协议,包含边界网关协议BGP等。
       为了降低数据包在网络中的传输开销和时延,要求为数据选择的路径是最短的。这里的“最短”在不同的场合具有不同的含义,它可以是跳数的多少、物理距离的长短或者时延的大小等。互联网中使用的各种路由协议或者路由算法,其根本目的就是寻找源节点和目的节点之间最短的一条路径,即最短路由。其中RIP和BGP使用距离矢量路由算法,OSPF使用链路状态路由算法来寻找最短路由。
      下面对主要的RIP和OSPF路由协议进行简要介绍。
       在各种内部网关协议中,RIP是出现最早,也是使用时间最长的协议之一,它使用距离矢量算法来计算路由。具体来说,各个路由器都维持一个距离矢量表,对每个目的节点都有一个对应的表项,包括到该目的节点最短路径上的下一个路由器和到该目的节点的最短路径长度两项内容。路由器周期地和相邻路由器交换路由表中的信息,即向邻居路由器发送路由表的全部或部分。各个路由器根据收到的信息,重新计算到各目的节点的距离,并对自己的路由表进行修正。这样使得每一个路由器都可以知道其他路由器的情况,并形成关于 
       网络“距离”的累积透视图.并据此更新路由表。RIP的优点是易于实现,但难以适应网络拓扑的剧烈变动或者大型的网络环境。
       OPSF的提出主要是为了克服RIP的缺陷。在网络中,每个OSPF路由器都维护一个用于跟踪网络状态的链路状态数据库,内容是反映路由器状态的各种链路状态通告,包括路由器可用接口、已知可达路由和链路状态信息。各OSPF路由器都会主动测试所有与之相邻的路由器的状态,并根据测试结果设置相关链路的状态。这样,路由器就得到了一张整个网络拓扑结构的图,再利用最短路由选择算法(详见6.1.2节)计算所有路由,并写到路由表中。OPSF能够及时反映网络拓扑结构的变化,收敛速度很快,适用于规模较大及拓扑变化比较快的网络,但对处理器性能要求比较高,占用的网络带宽比较多。