一种支持多业务的网络交换装置及其实现方法

文档序号:9581642阅读:620来源:国知局
一种支持多业务的网络交换装置及其实现方法
【技术领域】
[0001]本发明属于网络交换装置领域,具体涉及一种网络中的流量控制和流量调度、包内流量均衡以及包重组与排序的方法。
【背景技术】
[0002]随着网络业务量的爆炸式增长,对交换系统的转发能力和规模的需求也在急剧增长,从而带动现代交换技术的迅猛发展,优良的交换架构要求更高的性能、高扩展性、高可靠性以及良好的经济实用性。
[0003]目前采用多级交换网络拓扑结构可以满足交换结构在性能及其可扩展性上的要求,并通过采用多平面高速并行处理的方式来增加有效带宽从而满足较高的数据处理速率。最常用的三级CLOS交换系统的组成包括:输入单元、中间交换单元和输出单元。
[0004]输入单元采用输入级缓存,针对交换网络的不同输出端口构建不同的虚拟输出队列,既可以保证到达不同输出端口和不同优先级的分组能够公平利用交换资源,又可以暂存当前时隙无法传送到其目的输出端口的分组,完成业务信元缓存、流量整形、避免拥塞等功能。
[0005]中间交换单元的交换能力很大程度上决定着交换系统的整体性能,如吞吐量、交换时延、抖动和分组丢失率等。交换单元为多个输入数据流提供缓存和链路带宽等共享资源,以降低独占资源成本并提高拓展性。但是多个输入流为竞争资源会形成冲突。共享的资源需要调度和流控机制协调各个输入流,使得交换单元尽量满足不同业务的要求,并充分利用缓存资源。
[0006]输出单元模块主要完成流量调度和包重组与排序功能。流量调度通过授权控制接收到的流量大小。需要包的排序和重组,是因为同一个业务流的信元通过不同平面不同路径到达目的节点,信元可能会因为经过不同的路径引入不同的延时,这在接收端将引起信元乱序和包乱序。信元乱序和包乱序将影响提供的服务质量。为了避免这种现象,需要对乱序的信元和包进行重排序。交换网络中的信元重排序模块的加入对于交换网络性能会有影响。重排序模块的资源消耗也成了一个需要权衡的因素。信元重排有两种方式:输出端排序和中间排序。
[0007]Broadcom Corporat1n—款芯片中就采用了中间排序方案。在输入端给信元打上时间戳,在中间交换单元中根据时间戳排序使得平面内的信元是保序的,在输出端模块中根据时间戳使得从接收FIFO中选出的信元是保序的。这种方案的优点是减小输出端的缓存大小和降低输出端重组复杂度。缺点是增加了中间单元的缓存大小和复杂度,且每个输入端节点之间的时间戳同步要求实现难度大。

【发明内容】

[0008]针对上述存在问题或不足,本发明提供了一种支持多业务的网络交换装置及其实现方法,通过设计输出单元流量均衡、输入单元包内流量均衡以及中间交换单元流量调度方法使得在满足吞吐量和时延要求的情况下只需要很小的中间交换单元级的缓存和适中的输出端缓存,无需不同输入端时间戳同步,具有较低的实现成本、可拓展性。
[0009]本发明的网络交换装置采用典型的三级CLOS架构,包括输入单元、中间交换单元和输出单元。三级对称CLOS网络C (n, m, r)的输入单元共有r个n*m交换模块,中间交换单元有m个r*r交换模块,输出单元有r个m*n输出模块。网络共有N = n*r个输入和输出端口,每个中间交换模块与每个输入和输出模块至少有I条链路连接。各个输入模块和各个输出模块之间不存在直接连接。输入模块实现数据包流量的申请、数据包的切割以及路由和包内负载均衡。交换模块实现路由、链路级负载均衡和信元调度的功能。输出模块实现流量控制、信元的排序与数据包的重组。每个中间级交换单元看作一个交换平面,它可以扩展成三级交换结构,由第一级交换单元,第二级交换单元和第三级交换单元构成。
[0010]该网络交换装置的实现方法,包括以下具体步骤:
[0011 ] 步骤①:输入单元数据包流量的申请。
[0012]输入单元的每个输入模块缓存针对交换网络的不同输出端口构建不同的虚拟输出队列,为每个队列发送一个队列状态信元到输出端口申请流量。申请流量的大小采用更新机制。队列状态信元的产生分周期性和非周期性。当新增的数据包流量超过两个最大包长发送非周期性队列状态信元;周期的设定是根据交换架构的规模动态变化,当周期性时钟定时器触发时,产生周期性队列状态信元。
[0013]步骤②:输出单元的流量控制。
[0014]当多个输入模块发送流量申请到同一个输出模块时,输出模块需要根据申请流量的大小做好负载均衡。当接收数据信元的存储缓存超过最大允许接收缓存的0.75倍时,输出模块将产生快速流控通过控制信元直接作用到所有输入模块,输入模块对应的虚拟队列则不会再将数据包进行切割和发送。。
[0015]步骤③:数据包的切割。
[0016]接收到输出模块的授权之后将得到授权的数据包切割成信元。
[0017]步骤④:路由和包内负载均衡。
[0018]—个数据包可以切割成多个数据信元,接收端重组采用与期望包序号(期望包序号是指输出模块期望重组的来自输入模块数据包的包序号)比较的方式,并尽量保证发送到交换单元的数据包的包序号是连续的。根据路由结果和数据包切割状态来决定是否需要更新数据包的包序号。路由成功且数据包切割的所有信元都已经得到发送时,更新该业务数据包对应的包序号。数据包的第一个信元路由成功,其他信元路由失败时,更新对应的包序号。数据包的所有信元都路由失败时,则不更新该包序号。
[0019]步骤⑤:中间交换单元的路由和负载均衡。从链路接收到数据信元后查询路由表,采用基于链路的负载均衡通过轮询每个链路来选择最终的输出链路,将流量平摊到各个输出链路中去。
[0020]步骤⑥:中间交换单元的信元调度。将信元描述符根据信元类型放入相应描述符队列中,并根据业务的优先级顺序调度信元。信元调度模块由K*K个VOQ(virtual outputqueue虚拟输出队列)描述符队列、2K个组播packet描述符队列、K个组播0TN(opticaltransport network光传送网)描述符队列、一个OTN组播仲裁器、一个组播packet仲裁器、K个输入端仲裁器、K个输出端仲裁器和I个输出控制模块组成组成。调度模块的具体执行过程如下:
[0021](I)业务类分,将从输入缓存中传来的描述符根据业务类型发送对应的描述队列中。组播OTN放入OTN组播描述符VIQ (virtual input queue虚拟输入队列)中,单播packet和单播OTN放入单播描述符队列中。组播packet根据自身优先级放入组播VIQ队列中。业务的优先级划分主要依据业务对时延的要求,OTN业务对时延要求最高,优先级最高,其次是单播packet,最后是组播packet业务。
[0022](2)组播OTN的调度,通过OTN仲裁器选出一个输入请求,并将请求结果发送到输出控制模块和K个输出仲裁器。由于OTN组播的优先级最高,所以采用一次扇出的方式。具体来说,当OTN组播的输出端口中有几个暂时处于忙状态时,会采取如下几个过程:等待所有目的端口空闲;目的端口中,暂时空闲的端口不再参与调度;停止其他OTN组播的调度。
[0023](3)单播输出端调度,K输出端仲裁器根据当前的端口忙闲情况,各自调度,将输入请求发送到输入端仲裁器。
[0024](4)单播输入端调度,K输入端口仲裁器根据当前的端口忙闲情况,各自调度,将授权结果发到输出模块。
[0025](5)组播packet调度,根据组播高低优先级仲裁器,选择一个组播请求,并将请求结果发送到输出控制。
[0026]由于packet组播的优先级最低,很难同时保证多个输出端口都空闲,所以采用了多次扇出的方式。具体来说,当packet组播的输出端口中有几个端口处于忙状态。会做如下处理:根据当前空闲的链路情况生成授权;等待剩余目的端口空闲。停止其他packet组播的调度。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1