基于clos交换网络的数据包切分和重组的系统及方法

文档序号:9238082阅读:1009来源:国知局
基于clos交换网络的数据包切分和重组的系统及方法
【技术领域】
[0001]本发明涉及通信技术领域,具体来讲是一种基于CLOS交换网络的数据包切分和重组的系统及方法。
【背景技术】
[0002]基于信元的CLOS交换网络具有无阻塞,可扩展和大容量的特点,目前已成为交换芯片的主流。CLOS交换网络包含IM (Input Module,输入模块),CM (Central Module,中间模块)和OM(Output Module,输出模块),他们可组成3级的CLOS结构,并且可以很容易得扩展成5级CLOS结构。采用折叠方式,IM和OM的功能可在一块芯片内实现,而CM的功能则在另一块芯片中实现。
[0003]以太网数据包(Packet)是变长的,且最大包长可能达到16000字节,在交换芯片中基于数据包进行交换会带来较大的延时,并且需要很大的存储空间来缓存最大数据包。为了提高延时性能和减少缓存容量,目前主流的CLOS交换网络中都是以信元(CELL)为基本单位进行交换的,IM需完成把数据包切分成信元送往CM,CM完成信元的交换,OM则需要把信元重新组成原来的数据包并输出。在传统的CLOS交换网络中,为了提高网络的性能,IM需要把同一个数据包的所有信元负载均衡的送到不同的交换平面CM。但随之也会带来问题:经过不同CM到达同一个OM的延时可能会不一样。这样可能导致数据包乱序和信元乱序,如果不做信元保序,OM将消耗大量的资源来解决这个问题。目前信元保序的主要方法是在IM给彳目兀打全局时戮,在CM和OM执行最老?目兀先出,这样就能在OM完成{目元保序,进一步完成数据包重组。把数据包切分成信元时,不仅需要保留数据包的SourceId (源序列号),即Input Module Id (输入模块号)和Input Port (输入端口号)的组合,Destinat1n Id (目的序列号),即 Output Module Id (输出模块号)和 Output Port (输出模块号)的组合,用于路由到达目的地;增加数据包切分必须的Packet Seq(数据包的序列号),Fragment Id(分片的序列号)等,用于把信元还原成数据包;还需要信元保序所需的 Timestamp (时戮)。
[0004]早期的信元交换芯片,一般吞吐量较低,采用的是固定信元长度。为了提高信元交换架构的吞吐量,交换芯片一般采用较大的总线宽度和总线工作频率。随着网络需求的不断膨胀,頂接入带宽需求越来越大,目前已由几十G到了上百G,甚至五六百G ;单个CM的交换容量需求也达到了 IT以上。核心工作频率受限于芯片工艺,不能无限制的提高。采用更高的总线宽度只能提高长数据包的吞吐量,而对于短数据包和特殊长度的数据包,是无能为力的。
[0005]具体的,参见图1所示,在传统的CLOS交换网络中,切分步骤如下:
[0006]步骤1.VOQ(Virtual Output Queue,虚输出队列)存储数据包。
[0007]步骤2.队列调度器采用合适的调度算法从不同的VOQ中读取数据包,调度算法可以采用WDRR(Weighted Deficit Round Robin,加权差额轮询)等算法。
[0008]步骤3.把取出的数据包切成固定长度数据信元分片。
[0009]由于,信元交换都是采用的定长信元的方式,即把数据包切分封装进定长的信元,即使只剩余一个字节,也会占用一个固定信元的长度,需要填充大量无效内容。这种方式效率及其低下,特别是对于一些特殊包长,因为填充了大量的无效内容,链路的利用率只能达到 50%。
[0010]另外,无论是在頂,CM还是OM,数据总线的宽度是固定的,随着接入带宽和交换容量的提升,目前的大容量芯片总线带宽设计一般较大,一般会大于64字节(512比特)。此处以1024比特的总线宽度为例,128字节(1024比特)的数据包刚好匹配,芯片总线效率最高。而对于64字节,129字节等包长,总线效率只能达到50%。为了满足这些特定长度的数据包的吞吐量要求,芯片不得不提高总线工作频率,为整个芯片设计带来了不少复杂度。如果总线工作频率无法得到满足的情况下,这些特定长度的数据包的吞吐量将成为该芯片的瓶颈。其他宽度的总线存在相同的问题。
[0011]因此亟需采用其他技术手段来提高系统效率,在现有总线宽度和总线工作频率下提尚系统吞吐量。

【发明内容】

[0012]针对现有技术中存在的缺陷,本发明的目的在于提供一种基于CLOS交换网络的数据包切分和重组的系统及方法,本发明提高了总线效率,在相同总线宽度和总线工作频率的情况下,能够明显提升短包和特殊长度包的吞吐量,实现了系统性能显著提升。
[0013]为达到以上目的,本发明采取的技术方案是:一种基于CLOS交换网络的数据包切分和重组的系统,所述CLOS交换网络包括若干个输入模块IM、若干个中间模块CM和若干个输出模块OM ;每个CM分别与每个IM及每个OM相连,每个IM均包括组合包调度器、变长切片单元、路由单元;每个OM均包括重组单元;其中,所述组合包调度器包括队列调度器、组合包容器和原始包缓存;队列调度器,用于将来源于同一个虚输出队列V0Q,且包长小于预设值的数据包进行组合形成组合包,打上相应标识后,发送至组合包容器;还用于将包长不小于预设值的数据包作为原始包,打上原始包标识后,发送至原始包缓存;组合包容器,用于储存组合包;原始包缓存,用于储存原始包;变长切片单元,用于从组合包容器中读取组合包或者从原始包缓存中读取原始包;将组合包或者原始包切分成若干个变长信元,为每个变长信元添加信元头后,发送至路由单元;路由单元,用于将变长信元经相应的CM发送至目标OM的重组单元;重组单元,用于根据信元头将变长信元还原为组合包或者原始包。
[0014]在上述技术方案的基础上,所述队列调度器为组合包打上pack info标识和组合包标识,其中pack info标识用于表示该组合包中数据包的数量及各数据包的包长。
[0015]在上述技术方案的基础上,所述pack info标识包括包长指示packet length和组合包结尾指示end ind ;其中,packet length用于表示组合包中各数据包的包长;endind用于指示组合包是否结束,若end ind的值为“0”,表示表示组合包未结束,后续有数据包;若end ind的值为“ 1”,表示组合包结束,后续没有数据包。
[0016]在上述技术方案的基础上,所述信元头包括有效分片Fragment Valid、源序列号Source Id、目的序列号Destinat1n Id、数据包的序列号Packet Seq、信元时戳CellTimestamp、分片序列号Fragment Id和最后分片 Last fragment ;其中,Fragment Valid,用于分片有效指示;Source Id,表示输入模块号Input Module Id和输入端口号Input Port的组合;Destinat1n Id,表不输出模块号Output Module Id和输出端口号Output Port的组合;Packet Seq,表示包的序列号;Cell Timestamp,表示信元的时戳;Fragment Id,用于区分同一个包的不同分片;Last fragment,用于表示最后一个分片指示。
[0017]本发明还公开了一种用于上述系统的基于CLOS交换网络的数据包切分和重组的方法,包括以下步骤:步骤S1.所述队列调度器将来源于同一个虚输出队列VOQ且包长小于预设值的数据包进行组合形成组合包,打上相应标识后,发送至组合包容器;将包长不小于预设值的数据包作为原始包,打上原始包标识后,发送至原始包缓存;步骤S2.变长切片单元读取组合包或者从原始包缓存中读取原始包;将组合包或者原始包切分成若干个变长信元,为每个变长信元添加信元头后,发送至路由单元;步骤S3.路由单元将变长信元经相应的中间模块CM发送至目标输出模块OM的
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1