电脑技术学习

路由器的关键技术

dn001

  近年来,互联网的发展异常迅猛,应用日益商业化,网上用户数的发展难以猜测。此外,越来越多的用户需要高速接入。有关资料表明,在我国,上网速度慢是众多网民抱怨的首要问题。因此,提高网络带宽、网络服务质量、路由器上的网络治理系统变得日益重要。在保证质量的前提下,最大限度地利用带宽,及早发现并诊断设备故障,迅速方便地根据需要改变配置等网络治理功能,成为直接影响网络用户和网络运营商利益的重要因素。总地来说,路由器的结构正朝着速度更快、服务质量更好和更易于综合化治理三个方向发展。
  
  路由器的两大功能
  数据通路功能:对于每个到达路由器的数据包,在不丢失的情况下,负责寻路。此功能主要包括:转发决定,经由背板输出链路队列调度。转发功能是通过专门硬件来实现的,每一个通过路由器的分组包都要执行这个操作。数据通路功能对改进路由器的性能是很重要的。
  
  控制功能:主要包括路由表的治理和系统的配置与治理,以及与相邻路由器交换路由表信息,通过软件实现等。这些功能不是针对每个数据包的,因此使用频度相对低一些。
  
  路由器的要害技术问题
  就目前路由器设计中的一些要害技术,有的问题已经取得了阶段性的成果,有的才刚刚开始研究。需要说明的是,这个领域的发展非常快。为了便于系统地理解这些要害技术问题,我们根据路由器发展的三大趋势,大致将这些问题分为三类。一是与高速有关的问题,如路由表快速查找、总线背板和交换结构等。二是QoS问题,如数据流和数据包的分类,流量工程和阻塞控制等。三是与软件有关的问题,如软件的稳定性、配置和治理等。需要说明的是,这种分类法并不严格,有些问题可以同时属于两类。
  
  1.与速度有关的技术
  
  * 路由表的快速查找技术
  
  为了解决地址资源紧缺,减少路由表的规模,降低治理难度,互联网采用了CIDR(Classless Inter-Doma in Routing)。这样,路由表中存放的不是一个个具体的IP地址,而是可变长度的网络前缀。路由器在对IP包寻址时,采用最长的网络前缀匹配(LPM-Longest Prefix Matching)。例如,假设路由表中有两个表项“202.168.X.X,输出端口1”和“202.168.16.X,输出端口2”(X表示任意),假如有一个IP包的目的地址为202.168.16.5,那么这个包应该从端口2输出。传统的路由器执行最长网络前缀匹配的时间很长,使得路由表查找成为路由器速度的瓶颈。最近两年出现了一些快速查表算法,能够支持吉比特链路。这些算法包括改进的精确匹配法、基于trie法、并行硬件法、协议改变简化路由表的查询和缓冲法等。这些算法,有些易于硬件实现,有些适合软件实现。对于组播地址寻址,要根据IP包的源地址和组播地址查表,对源地址采用最长前缀匹配法,对目的地址采用精确匹配法。
  
  * 交换结构和调度算法
  
  交换结构有Crossbar、共享存储器和总线三种方式。Crossbar结构的速度由调度器决定,共享存储器结构的速度由存储器的读写速度决定,共享总线结构的速度由总线的容量和仲裁的开销决定。调度器是Crossbar交换结构的核心,它在每个调度时隙内收集各输入端口有关数据包队列的信息,经过一定的调度算法得到输入端口和输出端口之间的一个匹配,提供输入端口到输出端口的通路。采用输入缓冲无阻塞方式的Crossbar,用ESLIP算法实现调度已被一些厂家所采用。调度器设计的难点在于,既要满足系统吞吐率达到100%的要求,又要支持CoS(Classes of Service)。调度算法中,加权公平排队算法(WFQ-Weighted Fair Queuing)和经过改进后的加权公平流排队算法(WF2Q-Weighted Fair Flow Queuing)比较轻易实现,而且性能也不错。总之,要让互联网真正能够综合多种业务,作为网络连接核心设备的路由器,必须提高端口速率和交换容量,提供QoS保证和流量工程(TE-Traffic Engineering)功能。
  
  * 背板总线
  
  由于端口速率高,交换结构需要加速,而且接口板与交换板之间、控制板与接口板之间、控制板与交换板之间的连线很多,目前的高速路由器以及交换机都采用高速背板总线以提高系统的吞吐率。为了提高效率,数据线采用串行差分线路,速率可达每秒钟1~2吉比特。要保证如此高的传输速率和那么多的连线,对背板总线的设计要求非常高。如何降低数据的传输误码率以及保证时钟同步是总线设计中的要害技术。斯坦福大学的Tiny Tera路由器项目中,大量采用串行总线的实现方法值得研究和借鉴。
  
  2.与服务质量有关的技术
  
  * 数据包分类技术
  
  路由器要对到达的分组包进行识别、分类以决定其所应接受的服务类型。当初IETF所考虑的方案是在网络的核心,根据IP报头的TOS(Type of Service)域来识别分组,但是在互联网的发展过程中,由于一直采用“尽力”传输,同时由于终端在发送IP包时不考虑TOS,因此,TOS一直没有发挥作用。目前在边缘设备,根据IP分组的源IP地址、目的IP地址、源端口号、目的端口号、传输层协议类型来对分组进行识别。此外,为了实现防火墙的功能也需要对IP分组进行识别。
  
  在识别时,每条识别规则采用的是源IP地址、目的IP地址、源端口号、目的端口号、传输层协议类型。在上述识别规则中,每个域都可能是一个区间。例如有这样一条识别规则“202.66.83.X,202.66.72.X,X,23,TCP”(X表示任意),这条规则识别从网络202.66.83.X到网络202.66.72.X的telnet数据。从几何的角度来看,假如判别时利用了IP报头的K个域,这个问题实际上是在一个K维空间中有许多互相交叠的实体(每条判别规则对应于一个实体),每当有一个分组到达时,该分组相当于K维空间上的一个点,进行判别实际上是要找出包含该点的优先级最高的实体。
  
  * 数据流的分类
  
  一系列通过给定的源和目的地的数据包被作为数据流,流可以是长时间维持的TCP连接的一系列数据包,也可以是声音或图像的一系列UDP数据包。通常,流有长短之分,划分有两个标准:端口对和主机对。按端口对划分是指同一流的数据包必须具有相同的源、目的地址和TCP/UDP端口号等;按主机对划分只要求各数据包具有相同的源和目的地址。目前常用的流分类器有三种,一种是X/Y分类器,Y为规定的时间间隔,X为数据包数。若在时间Y内某一数据流到达的数据包数大于X,则该流就被认定为长数据流,否则是短数据流;另一种是协议分类器(Protocol Classifier),它规定了所有的TCP包均被定义为数据流;还有一种是端口分类器(Port Classifier),它规定了几个非凡的TCP端口作为长数据流。因为分类要对每个进入路由器的包进行包头检查,我们需要快速的分类算法。
  
  * QoS问题
  
  假如能实现真正的QoS,对于互联网变为一个商业应用的网络来说,当然是最理想的。在目前网络阻塞无法避免的情况下,IETF提出了一些模型和机制来支持QoS,主要有两种实现框架,即IS(Integrated Service)和DS(Differentiated Service)。其中,IS应用资源预留协议(RSVP),在实时业务发送前建立发送通道并预留资源;而DS通过给数据包做标记将数据包分类,使不同的数据包享受不同的服务。实现真正的QoS有一定的难度,无论是采用输出缓冲,还是共享缓冲的交换结构,内部都需要N倍的加速。
  
  * MPLS和流量工程
  
  在互联网上,可以通过MPLS支持显式路由。显式路由可以弥补传统IP网络中OSPF(Open Shortest Path First)协议在源和目的之间只建立一条最短路径的不足。它的好处是,ISP可以在两点之间的不同路径上分配业务量,从而减少业务繁忙的路径的阻塞率,提高线路的利用率,提供一定程度的QoS保证。还可以通过显式路由建立冗余线路,在某些路由器发生故障的情况下,保证通信线路的畅通。IETF的相关工作组和许多网络设备厂商正在进行这方面的工作,并且已经提出了一些实现方案。
  
  * 阻塞控制
  
  TCP协议采用滑动窗口机制进行流量和阻塞控制,实际上是发送端根据网络的阻塞情况调整自己的发送速率。
  
  TCP协议有两个特点,一是不公平性,RTT(Round Trip Time)短的进程发送窗口增加得快,会占用更大的带宽。路由器应该抑制这种不公平性。另一个是同步现象,以前的路由器采用的尾丢弃策略在网络阻塞时,有可能导致许多TCP连接的发送窗口同时急剧下降,然后又同时上升而导致阻塞;如此循环往复,线路的利用率很低。这种现象称为同步,路由器应该采取措施以避免这种现象的发生。
  
  路由器处理阻塞的一个主要措施就是利用TCP协议的丢包性质。当分组丢失时,TCP会降低发送速率,从而减轻路由器的负担。由于TCP协议对丢包很敏感,丢包会造成发送速率急剧下降,路由器应该针对TCP的性能对缓冲治理进行优化,以避免网络性能的急剧下降。
  
  目前,许多路由器采用随机早期检测(RED Random Early Detection)的方法来进行阻塞控制。这种方法通过在阻塞发生前提早丢包,使得终端降低发送速率,以减轻网络负载,避免阻塞,抑制同步现象。RED算法的最大缺点是:只对类似TCP协议自动进行流控的传输层协议起作用;对于UDP协议路由器丢包并不会促使发送端降低发送速率。由于TCP数据流量在网络中所占的比重很大,RED算法的性能还是比较好的。互联网上许多路由器都采用了这种方法进行阻塞控制,事实证实这种方法效果良好。
  
  3.与软件有关的问题
  
  * 软件的重要性
  
  过去,路由器被看作是最佳转发数据包的硬件设备,软件仅提供监视器的功能。但随着路由器的发展,软件在路由器中起的作用越来越大。实际上,实时操作系统(如,通信领域常用PSOS和VxWorks)的选择对一个通信产品来说是至关重要的。假如要开发效率很高的软件,需要操作系统厂商的支持。像Cisco公司,就是自己开发专用的路由器操作系统以及应用软件。假如这种趋势继续发展,终端用户将来可以很方便地在路由器上装载各种应用软件模块,使路由器能够提供防火墙、流量治理策略、非凡应用信令、路由策略等功能。
  
  * 网管系统
  
  目前的网管协议是简单网管协议版本2.0(SNMPv2,Simple Network management Protocol v2.0),在TCP/IP协议中用UDP协议实现。由于路由器在体系结构上的变化,使得一些网管信息需要由底层的硬件来提供,这一点和以前的实现方法是不同的。这里的工作主要是通过网管功能和治理信息数据库(MIB-Management Information Base)的实现来给网络治理者提供充足的治理信息和强大、灵活的治理功能。
  
  * 计费
  
  对用户的数据流量进行计费需要提取IP包的地址、端口、CoS等信息,由于端口速率很高,这部分信息的数据量也是比较大的,假如在接口板上进行处理很不现实。而且,不同的ISP收费的标准很可能是不一样的。因此,应该将计费功能分离出去,路由器接口板只负责提供一个计费信息的接口,把计费信息送出来。之后,可以将这些数据写到外部存储设备,由专门的机器进行计费处理。这样将减轻路由器的负担,计费功能的实现也更加灵活。
  
  * 配置
  
  路由器的配置是一项非常重要而又较困难的工作,一旦出现错误配置,不但难以发现,而且会出现一些难于琢磨的性能问题。随着路由器技术的发展,其配置会越来越简单和有效,这个问题的完善解决将是一个长期的工作。
  
  * 软件的稳定性
  
  大家知道,路由器的硬件可以用热备份、双电源供电、数据通路备份等方法来提高稳定性,但对于软件的稳定性则是一个较难解决的问题。一个大网络系统的稳定性的前提条件是软件的稳定性。软件稳定性的难点在于软件的状态均受不同软件相互作用的影响。
  
  结束语
  从世界范围看,依据目前网络发展情况,吉比特路由器是高速路由器市场的主流,太比特路由器的市场并不大。但就互联网的发展势头来看,太比特路由器将有用武之地,一些公司已经在对它进行一定的应用和测试。如:美国GST公司已经决定在其“SuperNet”网上使用Avici的太比特路由器。
  
  互联网测量统计公司I Amasia2000年6月7日在香港公布的研究报告指出,我国的互联网用户数已达到1230万人。在我国内地,家中上网的用户数目前为570万,办公室上网的人数则为500万;而香港在家中和在办公室上网人数分别为152万和61万。现在我国的网络规模还不大,近期骨干网发展使用的是吉比特路由器,163网就使用了6个Cisco的吉比特路由器。但我们这样的一个泱泱大国,在以后几年,用户的发展潜力是不可估量的,某些骨干节点要考虑太比特路由器,吉比特路由器可能会用在次要节点或边缘节点上。
  
  目前,迫切需要能提供分类业务功能的路由器,IP电话的开通就说明了这一点,假如路由器能实现此功能,不仅IP电话的质量会比现在好得多,而且互联网也将真正成为多媒体网,从而带来更多的商业价值。相信在不远的将来这一切将成为现实。
  
  我国进行路由器产品研发较早的公司有华为和桑达。最近,国内一些有实力的电信企业和科研机构刚刚进入高速、高性能的下一代路由器研究领域。我国在ATM交换机领域已经有过成功的经验,科研人员在较短的时间内研制出了与国际水平相近的产品,并且投入了商用。在下一代路由器的研发方面,我国有希望追赶世界先进水平,相信我国的下一代路由器产品能尽快在市场上占领一席之地。