目前,出现的对提高路由器性能起要害作用的几项新技术主要有以下几个方面:一是越来越多的功能以硬件方式来实现,CMOS集成技术的提高使很多功能可以在专用集成电路(ASIC)芯片上实现,原来由软件实现的功能现在可由硬件更快、成本更低地完成,大大提高系统性能;二是分布式处理技术在路由器中采用,极大地提高了路由器的路由处理能力和速度;三是逐渐抛弃易造成拥塞的共享式总线,开始普遍采用交换式路由技术,在交换结构设计中采取巨型计算机内部互连网络的设计或引入光交换结构。另外路由表的快速查寻技术,QoS保证以及采用MPLS技术优化未来网络,在路由器中引入光交换的趋势等方面也日渐受到人们的重视。当前路由器的新技术,主要指的就是在这几方面的创新。
一、ASIC技术
由于厂商需要降低成本,ASIC技术在路由器中得到了越来越广泛的应用。在路由器中,要极大地提高速度,首无想到的是ASIC, ASIC可以用作包转发、查路由,并且目前已经有专门用来查找IPV4路由的商用ASIC芯片。ASIC技术的应用使路由器内的包转发速度和路由查找速度有显著的提高。
高速路由器将路由计算、控制等非实时任务同数据转发等实时任务分开,由不同部分完成。路由计算、控制等非实时任务由CPU运行软件来完成, 数据转发等实时任务由专门的ASIC硬件来完成。自1997年下半年以来,一些公司开始陆续推出采用专用集成电路(ASIC)进行路由识别、计算和转发的新型路由器,转发器负责全部数据转发功能。这种路由器用硬件按照时钟的节拍实现逐个数据包的转发,实现线速转发。
ASIC技术的进展意味着更多的功能可移向硬件,提高了性能水平,增加了功能。与软件执行相比,ASIC的性能是后者的3倍。但是全硬件化的路由器使用起来缺乏灵活性,且冒一定的风险,因为标准规范仍在不断演变过程中,于是出现了可编程ASIC。可编程ASIC是ASIC的发展趋势,因为它可通过改写微码来适应网络结构和协议的变化。目前,有两种类型的可编程ASIC:一种以3Com公司的FIRE(Flexible Intelligent Routing Engine)芯片为代表;另一种以Vertex Networks的HISC专用芯片为代表,这颗芯片是一颗专门为通信协议处理而设计的CPU,通过改写微码,使芯片具有处理不同协议的能力。
二、分布式处理技术
最初的路由器采用了传统计算机体系结构,包括共享中心总线、中心CPU、内存及挂在共享总线上的多个网络物理接口。接口卡通过总线将报文上送CPU,CPU完成路由计算、查表、做转发决定处理,然后又经总线送到另一个物理接口发送出去。这种单总线单CPU的主要局限是处理速度慢,一颗CPU完成所有的任务,从而限制了系统的吞吐量。另外,系统容错性也不好,CPU若出现故障轻易导致系统完全瘫痪。这一切都造成传统路由器的转发性能很难有大的提高。
现代的路由器采取对报文转发采用分布式处理,可以插多个线路处理板,每个线路板独立完成转发处理工作,即做到在每个接口处都有一个独立CPU,专门单独负责接收和发送本接口数据包,治理接收发送队列、查询路由表并做出转发决定等。通过核心交换板实现板间无阻塞交换,即一个板上输入的报文经过寻路后可以象通过导线直连那样,被交换到另一个板上输出,实现包交换,其整机吞吐量可以成倍扩充。而主控CPU仅完成路由器配置控制治理等非实时功能。这种体系结构的优点是本地转发/过滤数据包的决定由每个接口处理的专用CPU来完成,对数据包的处理被分散到每块接口卡上。线路板上有专用芯片完成二层、三层乃至四层的转发处理工作,硬件实现使转发能够达到线速(高速端口所连接线路的速率),达到了电路交换那样的性能,使路由器不会成为网络中的瓶颈。
然而,单总线结构路由器存在一个最大缺陷就是一次只能有一个分组从入口交换到出口。假如能在入口和出口之间有多条数据传输通路,则能解决这种问题,同时大大提高系统的吞吐率。基于这种想法,同时借鉴ATM交换机结构的优点,提出了如图3所示的基于交换机结构的新一代路由器体系结构。
三、交换式路由技术
虽然计算机工业在近几年引入了越来越高速的共享式总线,从ISA到EISA直至现在的PCI。但是这仍然跟不上网络发展的步子。首先,共享总线不可避免内部冲突;第二,共享总线的负载效应使得高速总线的设计难度太大。
1.单级交换结构
交换结构的引入逐步克服了共享总线的以上缺点。从技术上,目前使用较多的交换结构有共享内存和Crossbar两种。而Crossbar的结构由于其简单性得到了更多的青睐和更广泛的采用。
共享内存结构是通过共享输入输出端口的缓冲器,从而减少了对总存储空间的需求。分组的交换是通过指针调用来实现的,这提高了交换容量。但它的速度受限于内存的访问速度。
Crossbar结构可以同时提供多个数据通路。一个Crossbar结构由N×N交叉矩阵构成。当交叉点(X,Y)闭合时,数据就从X输入端输出到Y输出端。交叉点的打开与闭合是由调度器来控制的。因此,Crossbar结构的速度要取决于调度器的速度。调度器是Crossbar交换结构的核心,它在每个调度时隙内收集各输入端口有关数据包队列的信息,经过一定的调度算法得到输入端口和输出端口之间的一个匹配,提供输入端口到输出端口的通路。
Crossbar结构可以支持高带宽的原因主要有两个:第一,线路卡到交换结构的物理连接现在简化为点到点连接,这使得该连接可以运行在非常高的速率。半导体厂商目前已经可以用传统CMOS技术制造出1Gbit/s速度的点对点串行收发芯片,并且可以在今后几年里把速度进一步提高到4~10Gbit/s的水平。第二个原因是它的结构可以支持多个连接同时以最大速度传输数据,这一点极大的提高了整个系统的吞吐量。只要同时闭合多个交叉节点,多个不同的端口就可以同时传输数据。从这个意义上,我们称所有的Crossbar在内部是无阻塞的,因为它可以支持所有端口同时以最大速率传输(或称为交换)数据。
数据包通过Crossbar的时候,可以是以定长单元的形式(通过数据包的定长分割),也可以不进行分割直接进行变长交换。一般高性能的Crossbar交换结构都采用了定长交换的方式,在数据包进入Crossbar以前把它分割为固定长度的cells,等这些cells通过交换结构以后再按照原样把它组织成原来的变长包(packet)。
交叉开关和共享内存都能够达到比较高的吞吐率。共享内存的特点是实现简单,能达到比较高的吞吐率,但是其可扩展性比较差,当线路接口卡数量较多时,性能将受到一定的影响。而交叉开关能够达到比较高的速率,扩展性好,但是需要设计完善的调度算法并用高速硬件实现调度器。随着人们对交叉开关调度算法研究的深入,已经设计并实现了许多性能良好、实现简单的调度算法。因此,目前高性能路由器都趋向于使用交叉开关作为交换结构。
但是交叉开关和共享内存结构仍属于单级交换结构范畴。当考虑大型系统时,单级交换结构有两个基本问题。第一、对于小规模系统,每端口成本还算合理,但随着规模的扩大,其成本涨得也特快。第二、所有的单级交换结构在技术上受限于其尺寸与速度。一旦达到这些极限,单级交换机无法再增加端口或提升线路速率。正因为如此,可扩展的交换系统必须采用多级结构。
2. 多级交换结构
多级交换结构是由多个交换单元互联起来的,每个交换单元具有一整套输入输出,与普通交换机类似,提供输入输出的连接。通过互联多个小的交换单元,就可以制造一个大型的、可扩展的交换结构。多级结构之间的不同取决于交换单元之间是如何互联的。典型的结构包括Benes网、Butterfly网、Clos网等形式。
Benes网使用方形交换单元(即:输入输出端口数相同)进行多级互联。一般来说,3级N部Benes网的每一级均可以用N个输入/输出端口和N个交换单元来构造(如图4所示)。这个格形结构在每个输入端和每个输出端之间形成N个可能的通路。Benes输出可以扩展至任意奇数级。
虽然对于小型系统单级结构的设计相对简单,成本也相对低,但是它不能满足下一代Internet扩展的需要。多级结构在操作上较复杂,但是可以扩展到成百上千个端口,这对于下一代Internet核心路由系统是绝对必要的。在多级拓扑结构中,Benes结构是最佳选择,因为它的系统复杂程度最低,性能好且满足可扩展的要求。
四、路由表的快速查找技术
随着Internet上计算机数量的急剧增长,同时用户对带宽的需求的不断增加,使得路由表的快速查找成为目前最需迫切解决的问题。传统的基于软件的路由查找策略,如树或哈希算法,其执行过程都是相当慢的,而且与路由表的大小相关联。所以,这些方法只能用于比较小的、性能较低的包转发应用。
使用路由表压缩技术,将路由表按特定的分布规律压缩后存放在处理器的高速缓存中,这样可以大大提高查询速度。但是数据结构的高度优化和压缩使得路由表的更新需要花费更多的寄存器访问和处理器周期。当路由表增大时,这个值还会增加。在路由表更新时,输入的数据包必须被缓存或丢弃,降低了路由器的性能。
另外,基于软件查找和更新路由表的不确定性增加了包传输时的抖动,因此必须进行包的缓存,在高速率时还会造成丢包。因此,为了适应网络的发展,理想的包转发方案必须能够不但保证线速的数据转发速率,并且要提供足够大的路由表来满足下一代的路由设备的需要(在边界位置应达到512K)。同时它还要能够以很小的更新时延来处理长时间的突发路由表更新。尽管通常路由表的更新为每秒几百次,但瞬间突发更新则可能会高出很多。
要解决这个问题,目前来看最为有效的办法是采用专门的协处理器结合内容寻址寄存器CAM(Content addressable memory)解决方法以及cache解决方法来完成快速路由查找或更新。但是核心路由器需要的转发表非常大,因此对于核心路由器,cache只是一种辅助的方法,需要有足够大的cache能把整个转发表放进去,并且仍然需要快速算法,还可以将逻辑控制器和存储器集成于单一器件中,以缩短存储器的访问时间。
五、QoS
QoS是服务质量(Quality of Service)的缩写。IP协议的延迟长且不为定值,丢包造成信号不连续且失真大使得使用IP传送多媒体信息的应用受到限制。解决IP网络对QoS的支持是下一代Internet技术发展的主要方向。路由器支持QoS的程度也成为评价路由器性能的主要指标。目前QoS主要有两种实现框架:IS(Integrated Service)和DiffServ (Differentiated Service)。
IS应用资源预留协议RSVP( Resource Reservation Protocol)在实时业务发送前建立发送通道并预留资源。它为一个数据流通知其所经过的每个节点(IP路由器),与端点协商为此数据流提供资源预留。但RSVP是以每一个数据流为协商服务对象,在网络流量爆炸性增长的情况下,路由器转发的数据流个数急剧增长,路由器已经根本不可能再为每个数据流进行复杂的资源预留协议。而且当由于线路繁忙或路由器故障等原因,路由修改时,需要重新进行一次相对耗时RSVP过程。
DiffServ则是一种分散控制策略,它的工作流程是:终端应用设备通过SLA(Service Level Agreement)与边缘路由器协商获得其应用数据流可得到保证的服务级别。根据这个服务级别,边缘路由器为每个接收到的数据包打上级别的标记,而核心路由器则只是根据每个包的服务级别的标记决定转发时的调动行为。
MPLS技术也可用于解决QoS。
六、MPLS技术
多协议标签交换MPLS(Multiprotocol Label Switching)技术是对ATM标记交换和IP路由协议的有机结合。
通过MPLS的LDP协议建立IP的路由表和MPLS的标记转发表的映射,并根据映射信息为通过MPLS的网络的流量建立一条标记交换路径(LSP)——可采取拓扑驱动的方式或数据驱动的方式。所谓的拓扑驱动方式就是给路由表的每一项路由条目建立一条通过MPLS网络的标记交换路径,而数据驱动的方式是当数据报到达MPLS网络时才为数据报的目的地所在的路由表项建立一条通过MPLS网络的标记交换路径。MPLS网络由若干LER和LSR组成,LER和LSR通常是同时具有IP功能和MPLS功能的LER根据已建立的标记路径,将进入MPLS网络的IP数据报打上标记,转发到下一个LSR,LSR查MPLS的标记转发表用该标记交换路径中的标记替换数据报的标记,继续转发给后续LSR直到到达MPLS网络的边缘LER,LER将数据报的标记去掉按IP数据报向下转发报文。
MPLS的优点在于将IP技术中的完全无连接的分组交换方式转化为MPLS中“软”的有连接(根据LDP协议建立标记交换路径)的分组交换方式,首先减少了分组通过MPLS网络的查IP路由表的次数,替代为查询标记转发表,提高了转发效率;其次解决了TCP数据通过IP网络的失序问题(流量在网络各接点无故障状态下将沿同样的路径通过网络,将按进入网络的顺序离开网络),减少了端到端通信中的两端站点对数据的排序时延,使MPLS网络可以很好地服务于实时应用。
七、光路由器
随着因特网的迅猛发展以及因特网数据业务量的爆炸性持续增长,在网络连接方面迫切需要扩大网络容量。同步光纤网(SONET)难以承受因特网如此巨大的业务量。密集波分复用(DWDM)技术应运而生,未来的骨干网络将步入一个全光网的时代。全光网带宽巨大,处理速度高,必然要求未来的路由器向着具有更高的传输速率以及更大的传输带宽的方向发展。不仅如此,它还应很好地解决以往路由器中长期困 扰人们的QoS、流控和价格昂贵问题。
光路由器是一个很好的解决方案。光路由器是在网络核心各光波长通道之间设置MPLS协议和波长选路协议(WaRP)控制下的波长选择器件,实现选路交换,快速形成新的光路径。波长的选路路由由内部交叉矩阵决定,一个N×N的交叉矩阵可以同时建立N×N条路由,波长变换交叉连接可将任何光纤上的任何波长交叉连接到使用不同波长的任何光纤上,具有很高的灵活性。
目前,国内外的电信设备供给商(TEP)和IP设备供给商(IEP)都在加紧研制开发系列化的光交换/光路由产品。光路由器产品主要有Cisco 的ONS15900光路由器,Corvis的CoreWave光路由器,Monterey Networks公司的Monterey 20000 波长路由器。