作 者:郭云飞 朱宣勇 王娜
本文基于“域内”和“域间”两个层面分别探讨“域内路由”和“域间路由”的关键问题、研究现状和发展方向。
2 域内路由问题
目前网际层的路由本质上是所谓的“单下一跳路由”机制,本节分析“单下一跳路由”机制的利与弊,提出并阐述消除“单下一跳路由”弊端的所谓“多下一跳路由”机制。
2.1单下一跳路由机制是当前网络拥塞问题的重要根源
目前网际层路由系统采用所谓“单下一跳路由”机制。单下一跳路由是指每个路由器将去往相同网络出口所有数据分组均通过其确定的某一个下一跳链路进行转发。导致单下一跳路由的根本原因是路由协议采用的选路算法总是计算节点对之间的最优路径,因而导致信息分组沿最优路径传输,网络流量于是总是倾向占用处理能力强的节点和链路。网络中不同节点对的最优路径趋向重叠,而且这种最优路径的重叠在时间上保持相对稳定,这使得某些节点和链路被长时间过多地占用,传输负荷过大,时常导致局部网络拥塞。从总体上看,当前的“单下一跳路由”机制虽然发现并建立了分组传送的“最优路径”,但却使得网络中各节点和链路对于传输信息分组的作用极其不均衡,在某些节点、链路持续拥塞的同时,其他的几乎持续闲置。
例如:在图1网络中,链路上数字表示传输距离。“单下一跳路由”机制下的路由算法以“最短”为目标算出节点之间传输信息分组的路径,红色箭头标明其他各个节点去往节点A的单一路径;计算任两个节点之间的最短路径,可以发现它们与当前红色标明的路径是重叠的,只是传输的方向可能不同。红色链路组成网络传输的最优路径,网络所有信息分组的传输都由这些红色链路承担,从而当前网络从E1到B1的传输所经历的E1→D1→C1→B1的链路和节点就可能发生拥塞,而其他节点和其他链路因不参与中间数据的转发而相对空闲,黑色标明的链路始终闲置。可见,“单下一跳路由”机制下的路由算法导致“最优路径相对稳定、其他链路则全部闲置”局面的形成,从而为网络实际发生局部拥塞建立了条件。
解决网络传输拥塞问题的一个根本措施在于改变当前网络单下一跳的选路模式,允许多条路径的并行传输,即,每个节点采用多下一跳链路并行转发的路由机制,最终使得在微观上网络各链路的利用率趋向均衡,而在宏观上使得网络流量在空间上均匀分布,在整体上趋向均衡。
2.2多下一跳路由是实现“尽力传送”网络设计目标的重要方面
IP网络的一个设计思想是数据信息分组的“尽力传送”,在可以有效预见的未来,“尽力传送”仍然是一种典型的网络模式。当前的实现思路是根据目的地址选择一条最优路径传输信息分组。也就是说,调用最好的资源来干一件事情。然而,我们认为仅仅这样还没有达到“尽力传送”的设计目标,还应该尽可能地调用更多的资源来完成同一件事,极端的情况是,我们可以调动网络内的所有链路都参与对具有相同网络出口的信息分组的传输。将这一想法落实到单个路由节点,可以这样理解:对于需到达某个出口的分组,该路由器所属链路接口可分为两类,一类是可以接收信息分组,另外一类是可以向其他邻居转发该分组。也就是说,到达同一目的地的诸多分组可以在单个路由器上实现多下一跳链路的分流、分路转发。多下一跳路由要完成的事情就是确定目的网络的多个下一跳转发链路接口,多下一跳路由表项在形式上表现为每个目的网络对应多个下一跳接口。
在单下一跳路由网络中,同一目的地的数据分组通过单一路径进行传输。在多下一跳路由网络中,路由器对于任何去往相同网络出口的分组都可以在多个下一跳中并行地分流转发,通过每个下一跳流出的数据分组都可在局部子网中分流传输,直至出口节点。对比可知,多下一跳路由机制可以明显提高数据传输的效率,使得网络中各资源的利用率趋于均衡,使得网络中的流量总体趋向均衡,令网络传输过程中的拥塞程度降到最低。
2.3多下一跳路由机制可以改善网络的可用性和抗毁性
在当前的单下一跳路由网络中,当网络某处出现故障,路由协议必须计算新的路由。如果在路由重新计算的过程中路由尚未收敛,网络就不能保证相关数据业务的可靠传输。而在多下一跳路由网络中,对于去往相同网络出口的分组,路由器有多个下一跳链路接口可以对其并行地分流转发,如果发现链路层的某个接口出现故障,路由器可以快速中止该接口的转发任务,屏蔽该接口,并通过其他接口正常进行数据的可靠转发。虽然在出现故障后,多下一跳路由协议也需要进行路由计算,但是计算过程中,网络的正常业务不会中断。可见,多下一跳路由机制可以显著改善网络的可用性和抗毁性。
2.4多下一跳路由机制为QoS选路提供了可靠基石
Internet为传送信息分组所进行的选路过程可以分为两步:(1) 标识可行路径:路由协议确定通过网络中的哪些路径可以到达目的网络;(2) 选择传输路径:在第一步提供的路径集合中,为数据分组的转发挑选具体的传输路径。
在传统路由机制约束下,分组选路过程实际上将两者合二为一,或者说只是提供一条路径,分组传输的路径没有可选性。基于此,有关“多路由尺度的路径选择”问题的研究,目前已有思路考虑的是:如何综合多类路由因素,提供一条最优的传输路径。他们只是提供一条可行路径,其他可行路径全部闲置。
对于这个问题的研究,我们认为:所有可行路径都应该放入可行路径集合而不应该主动将其闲置。各类路由因素只是路径特征的描述信息,它只能衡量路径的“好坏”,不能否认路径本身的存在性,它们本身无法成为确定某条路到达某个网络出口可行路径的唯一判据,而只是“选择传输路径”的数量标尺,因此,根据路由参数选路的过程不应该影响网络对于数据分组的正常传输过程。基于此,我们可将选路过程的第一步划分出去,另行研究,要求它提供所有可行路径;同时,将基于多路由尺度的路径选择问题局限于第二步,路径的选择过程不影响路径的分组传输功能;具体路径的选择也变成策略类的选择,从而可以根据各种需求,灵活多样地进行调整。
服务质量(QoS)问题,本质上是根据多个路由参数选择能够满足QoS要求的“好”路。在单下一跳路由机制约束下,这是一个NP完全问题。也就是说,单下一跳路由机制和QoS的需求是矛盾的。在多下一路由机制的框架下,QoS问题其实和分组选路过程的第一步实现了分离,只和第二步相关,也就是说,QoS选路是在已提供的诸多可行路径中选择满足要求的“好”路,即使这个要求通常涉及多个路由参数,这个过程不会影响网络的分组传输过程,可以自由进行。
3 域间路由问题
边界网关协议(BGP)[4]是目前Internet唯一采用的域间路由协议。该协议的基本功能是与其他BGP自治系统交换网络层的可达信息,构造全球路由表,以使数据分组在Internet上全球可达。
BGP协议所具有的基于前缀、路径适量、策略路由和增量式更新4个属性,要求全球路由表必须包含路由器学习到的所有可达前缀,而对每个可达前缀,必须包含完整的自治系统路径信息(AS PATH信息),对每个AS PATH,必须存储所有相关的路径属性(如度量、本地优选等)以供选择最优路径,全球路由器还必须存储所有学习到的路由信息。
假设M表示整个全球路由表占用的内存空间,Nprefix表示全球路由表中可达前缀个数,Npath表示可达某个前缀的路径个数,全球路由表中每个可达路径及相关属性所占内存空间相同且表示为R,则有下式。
M=Nprefix×Npath×R (1)
根据路由观察(RouteViews)得到的数据[5],2007年12月4日全球路由表的Nprefix= 246 778,Npath的数学期望值为36,最大值为43,最小值为1。Nprefix?垌Npath,M是O(Nprefix)级。值得注意的是,近10年来,Nprefix呈现出指数级增长。图2给出了从1989年7月1日至2007年12月4日全球路由表的Nprefix增长图[6]。