网络通信 频道

路由器并行交换体系结构的研究

    三、报文并行处理与交换

  1.分组并行处理与信元并行处理

  基于信元的并行处理体系结构,不仅可以保证信元的按序传输,而且可以保证输出链路的尽职工作(100%吞吐量)。为此,必须将输入的IP报文拆成定长的信元,通过调度机制将信元送往各个不同的转发处理模块。

  为了将输入的IP分组拆成信元流,并保证在目的端口正确地组装成完整的IP分组,各个信元必须带有其所属IP分组的有关信息。为此,在拆分IP分组之前必须完成IP分组的报头处理及IP地址查表。这部分处理必须实时完成,以保证不会出现报文积压。如果单个处理模块无法以线路速率完成报文的处理,应以分组为调度单位实现多模块并行处理。首先这部分处理功能是为分组转发提供控制信息,在处理前系统缺少分组的相关信息,如业务类型、目的端口、校验是否正确等,无法得到各信元所需的控制信息;其次,这部分处理虽然是不定长的IP分组,但只是处理IP分组的报头,处理时间基本固定,与分组的长度无关,丢弃校验出错的分组也只需简单的硬件操作即可实现;再者,由于无需报文缓冲,硬件实现较简单,易于实现多处理模块的并行处理;最后,由于流量控制必须以分组为单位实施分组丢弃,在流量控制之前将分组拆成定长的信元将加大流量控制的实现难度。

  流量控制模块在出现拥塞时根据设定的分组丢弃策略丢弃部分分组,从而保证缓冲区不会出现溢出。如果在流量控制之前将分组拆成定长的信元,分组的丢弃必须保证将同一个IP分组的所有信元同时丢弃。因此,如果需要做并行处理,必须保证同一个IP分组的所有信元分配到同一个处理模块。同时,流量控制也只需要IP报文的报头信息和报文缓冲区状态,其处理时间基本为一定值,与IP报文的长度无关。所以,在流量控制之后实施IP分组的拆包更合适。

  综上所述,在流量控制以前的操作不需要大容量存储器,处理时间基本为定值,与IP报文长度无关,只需专用器件(ASIC或FGA)完成相应的处理即可。因此,对于需要并行处理的高速路由器,IP报文的报头处理、查表转发、流量控制应该采用以IP报文为基本处理单位的多模块并行处理结构。根据目前技术、工艺水平及国外高速路由器产品开发实践,单个处理模块难以胜任2.5G以上接口的 IP报文处理要求。尽管基于IP报文为基本处理单位的多模块并行处理结构的效率低于基于定长信元的多模块并行处理结构,对于未来高速路由器,它仍将是IP报文处理流程中必不可少的组成部分。

  报文缓冲区是用于缓存IP报文的海量存储器。对于一个10Gbps的接口,若数据线采用256比特宽度,则至少每12.8ns就要完成一次读或写操作。实现如此高速的海量存储器目前尚有一定困难,对于10G以上的接口,无法采用单模块实现。按目前的技术水平,只能采用多处理模块并行处理体系结构。从存储器管理机制的实现和存储器利用率方面考虑,目前缓冲区管理通常采用分区管理机制,将内存划分成定长的分区,根据请求的缓冲区长度分配一定数量的分区。这样,若要缓存一个IP报文,需要将不定长的报文按存储器分区大小分成多个定长的数据段。因此,可以首先将IP分组分成定长的信元,而将分区大小设置成信元长度,以信元为单位实施缓冲区管理。

  在输出端,同样由于存储器芯片访问速度的限制,对于10G以上的端口,必须采用并行处理结构。同时,链路输出必须以IP报文为基本传输单位,在多模块并行处理体系结构中必须以IP分组作为基本传输单元分配处理模块。然而同一个IP分组的各个信元是通过不同的交换单元传输的,交换网络与缓冲区的接口必须识别同一个IP分组的信元流送往相同的处理模块。

  综上所述,若要在高速路由器输入端实现IP报文的并行处理,在缓冲区管理之前应采用基于IP分组的并行处理结构;而缓冲区管理和交换网络应采用基于信元的并行处理结构;输出端则应采用基于IP分组的多模块并行处理结构。

  2.输入端报文并行处理

  根据上节的分析,输入端报文在报文缓冲之前采用基于IP分组的并行处理结构。我们将IP报头处理、查表、拥塞控制三项处理称为转发控制。这样,输入端处理包括线路接口、转发控制及报文缓冲。对于需要并行处理的高速路由器,转发控制部分采用基于IP分组的并行处理结构,而报文缓冲采用基于信元的并行处理结构。

  分组解复用器的作用是将从线路接口接收到的IP分组分配到各个处理模块。为了保证协议类型为TCP的IP分组的按序传送,对于属于TCP业务的IP分组按散列法分配转发控制单元,而其它类型的IP分组则按最短队列分配转发控制单元。

  其中,hp表示IP分组的报头信息;S表示缓冲区队列大小;HASH(hp)表示根据IP分组的报头信息做散列;而F(s)表示根据当前缓冲区队列大小S做调度(如选择具有最短队列的处理单元)。由于转发控制部件的输出是无阻塞、定速率的,根据输入流量的大小即可确定缓冲区中队列的大小。控制转发单元的输出经过分段处理,将报文分成定长的信元流。分配器用于实施信元调度,将信元送往不同的缓冲处理单元,经缓存送往交换网络。

  3.输出端报文并行处理

  在输出端,首先要将从交换网络接收的信元重组成完整的IP报文,以IP报文为基本单位送往发送缓冲区。通过输出队列调度,将发送缓冲区的IP报文送高速缓存(CACHE),高速缓存以线路速率向输出链路输出完整的IP报文。

  高速缓存的作用是为高速输出链路与低速报文缓冲区提供接口。由于缓冲区无法提供与高速链路相适应的访问速度,所以采用高速缓存:它接收发送缓冲区的报文,然后将完整的IP报文以线速率通过输出复用器向输出链路发送。输出复用器以完整的IP报文为基本传输单位,每次以一定的调度策略选择一个高速缓存输出报文。

  四、结论

  本文通过分析高速路由器IP报文的处理流程和各处理单元的处理要求,对基于分组的并行处理结构和基于信元的体系结构做了详细分析和讨论。我们认为信元转发控制和输出缓冲应采用以基于IP分组的并行处理,而输入端报文缓冲和交换网路应采用基于定长信元的并行处理结构。本文给出的高速路由器报文输入、输出的并行处理方案具有一定的实用价值和理论意义。

0
相关文章