60946">
交换结构和调度算法 交换结构有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端口作为长数据流。因为分类要对每个进入路由器关键技术的包进行包头检查,我们需要快速的分类算法。