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

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

Info

Publication number
CN104954292B
CN104954292B CN201510252913.7A CN201510252913A CN104954292B CN 104954292 B CN104954292 B CN 104954292B CN 201510252913 A CN201510252913 A CN 201510252913A CN 104954292 B CN104954292 B CN 104954292B
Authority
CN
China
Prior art keywords
packet
length
combined
jumping
original
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510252913.7A
Other languages
English (en)
Other versions
CN104954292A (zh
Inventor
张伟
黄元波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Flying Microelectronics Technology Co Ltd
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Wuhan Fisilink Microelectronics Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd, Wuhan Fisilink Microelectronics Technology Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201510252913.7A priority Critical patent/CN104954292B/zh
Publication of CN104954292A publication Critical patent/CN104954292A/zh
Application granted granted Critical
Publication of CN104954292B publication Critical patent/CN104954292B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于CLOS交换网络的数据包切分和重组系统及方法,涉及通信技术领域,CLOS交换网络包括若干个输入模块IM、若干个中间模块CM和若干个输出模块OM;每个CM分别与每个IM及每个OM相连;每个IM均包括组合包调度器、变长切片单元、路由单元;每个OM均包括重组单元。本发明提高了总线效率,在相同总线宽度和总线工作频率的情况下,能够明显提升短包和特殊长度包的吞吐量,实现了系统性能显著提升。

Description

基于CLOS交换网络的数据包切分和重组的系统及方法
技术领域
本发明涉及通信技术领域,具体来讲是一种基于CLOS交换网络的数据包切分和重组的系统及方法。
背景技术
基于信元的CLOS交换网络具有无阻塞,可扩展和大容量的特点,目前已成为交换芯片的主流。CLOS交换网络包含IM(Input Module,输入模块),CM(Central Module,中间模块)和OM(Output Module,输出模块),他们可组成3级的CLOS结构,并且可以很容易得扩展成5级CLOS结构。采用折叠方式,IM和OM的功能可在一块芯片内实现,而CM的功能则在另一块芯片中实现。
以太网数据包(Packet)是变长的,且最大包长可能达到16000字节,在交换芯片中基于数据包进行交换会带来较大的延时,并且需要很大的存储空间来缓存最大数据包。为了提高延时性能和减少缓存容量,目前主流的CLOS交换网络中都是以信元(CELL)为基本单位进行交换的,IM需完成把数据包切分成信元送往CM,CM完成信元的交换,OM则需要把信元重新组成原来的数据包并输出。在传统的CLOS交换网络中,为了提高网络的性能,IM需要把同一个数据包的所有信元负载均衡的送到不同的交换平面CM。但随之也会带来问题:经过不同CM到达同一个OM的延时可能会不一样。这样可能导致数据包乱序和信元乱序,如果不做信元保序,OM将消耗大量的资源来解决这个问题。目前信元保序的主要方法是在IM给信元打全局时戳,在CM和OM执行最老信元先出,这样就能在OM完成信元保序,进一步完成数据包重组。把数据包切分成信元时,不仅需要保留数据包的Source Id(源序列号),即InputModule Id(输入模块号)和Input Port(输入端口号)的组合,Destination Id(目的序列号),即Output Module Id(输出模块号)和Output Port(输出模块号)的组合,用于路由到达目的地;增加数据包切分必须的Packet Seq(数据包的序列号),Fragment Id(分片的序列号)等,用于把信元还原成数据包;还需要信元保序所需的Timestamp(时戳)。
早期的信元交换芯片,一般吞吐量较低,采用的是固定信元长度。为了提高信元交换架构的吞吐量,交换芯片一般采用较大的总线宽度和总线工作频率。随着网络需求的不断膨胀,IM接入带宽需求越来越大,目前已由几十G到了上百G,甚至五六百G;单个CM的交换容量需求也达到了1T以上。核心工作频率受限于芯片工艺,不能无限制的提高。采用更高的总线宽度只能提高长数据包的吞吐量,而对于短数据包和特殊长度的数据包,是无能为力的。
具体的,参见图1所示,在传统的CLOS交换网络中,切分步骤如下:
步骤1.VOQ(Virtual Output Queue,虚输出队列)存储数据包。
步骤2.队列调度器采用合适的调度算法从不同的VOQ中读取数据包,调度算法可以采用WDRR(Weighted Deficit Round Robin,加权差额轮询)等算法。
步骤3.把取出的数据包切成固定长度数据信元分片。
由于,信元交换都是采用的定长信元的方式,即把数据包切分封装进定长的信元,即使只剩余一个字节,也会占用一个固定信元的长度,需要填充大量无效内容。这种方式效率及其低下,特别是对于一些特殊包长,因为填充了大量的无效内容,链路的利用率只能达到50%。
另外,无论是在IM,CM还是OM,数据总线的宽度是固定的,随着接入带宽和交换容量的提升,目前的大容量芯片总线带宽设计一般较大,一般会大于64字节(512比特)。此处以1024比特的总线宽度为例,128字节(1024比特)的数据包刚好匹配,芯片总线效率最高。而对于64字节,129字节等包长,总线效率只能达到50%。为了满足这些特定长度的数据包的吞吐量要求,芯片不得不提高总线工作频率,为整个芯片设计带来了不少复杂度。如果总线工作频率无法得到满足的情况下,这些特定长度的数据包的吞吐量将成为该芯片的瓶颈。其他宽度的总线存在相同的问题。
因此亟需采用其他技术手段来提高系统效率,在现有总线宽度和总线工作频率下提高系统吞吐量。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于CLOS交换网络的数据包切分和重组的系统及方法,本发明提高了总线效率,在相同总线宽度和总线工作频率的情况下,能够明显提升短包和特殊长度包的吞吐量,实现了系统性能显著提升。
为达到以上目的,本发明采取的技术方案是:一种基于CLOS交换网络的数据包切分和重组的系统,所述CLOS交换网络包括若干个输入模块IM、若干个中间模块CM和若干个输出模块OM;每个CM分别与每个IM及每个OM相连,每个IM均包括组合包调度器、变长切片单元、路由单元;每个OM均包括重组单元;其中,所述组合包调度器包括队列调度器、组合包容器和原始包缓存;队列调度器,用于将来源于同一个虚输出队列VOQ,且包长小于预设值的数据包进行组合形成组合包,打上相应标识后,发送至组合包容器;还用于将包长不小于预设值的数据包作为原始包,打上原始包标识后,发送至原始包缓存;组合包容器,用于储存组合包;原始包缓存,用于储存原始包;变长切片单元,用于从组合包容器中读取组合包或者从原始包缓存中读取原始包;将组合包或者原始包切分成若干个变长信元,为每个变长信元添加信元头后,发送至路由单元;路由单元,用于将变长信元经相应的CM发送至目标OM的重组单元;重组单元,用于根据信元头将变长信元还原为组合包或者原始包。
在上述技术方案的基础上,所述队列调度器为组合包打上pack info标识和组合包标识,其中pack info标识用于表示该组合包中数据包的数量及各数据包的包长。
在上述技术方案的基础上,所述pack info标识包括包长指示packet length和组合包结尾指示end ind;其中,packet length用于表示组合包中各数据包的包长;end ind用于指示组合包是否结束,若end ind的值为“0”,表示表示组合包未结束,后续有数据包;若end ind的值为“1”,表示组合包结束,后续没有数据包。
在上述技术方案的基础上,所述信元头包括有效分片Fragment Valid、源序列号Source Id、目的序列号Destination Id、数据包的序列号Packet Seq、信元时戳CellTimestamp、分片序列号Fragment Id和最后分片Last fragment;其中,Fragment Valid,用于分片有效指示;Source Id,表示输入模块号Input Module Id和输入端口号Input Port的组合;Destination Id,表示输出模块号Output Module Id和输出端口号Output Port的组合;Packet Seq,表示包的序列号;Cell Timestamp,表示信元的时戳;Fragment Id,用于区分同一个包的不同分片;Last fragment,用于表示最后一个分片指示。
本发明还公开了一种用于上述系统的基于CLOS交换网络的数据包切分和重组的方法,包括以下步骤:步骤S1.所述队列调度器将来源于同一个虚输出队列VOQ且包长小于预设值的数据包进行组合形成组合包,打上相应标识后,发送至组合包容器;将包长不小于预设值的数据包作为原始包,打上原始包标识后,发送至原始包缓存;步骤S2.变长切片单元读取组合包或者从原始包缓存中读取原始包;将组合包或者原始包切分成若干个变长信元,为每个变长信元添加信元头后,发送至路由单元;步骤S3.路由单元将变长信元经相应的中间模块CM发送至目标输出模块OM的重组单元;步骤S4.重组单元根据信元头将变长信元还原为组合包或者原始包。
在上述技术方案的基础上,步骤S1的具体流程为:步骤S101.组合包调度器中的队列调度器根据加权差额轮询WDRR算法选择相应的VOQ;该VOQ的调度权重值大于0且VOQ的队列不能为空;步骤S102.从选中的VOQ中读取一个数据包,获取数据包的包长信息;更新VOQ的调度权重值,更新后的调度权重值=更新前的调度权重值-数据包包长对应的调度权重值;步骤S103.判断数据包的包长是否小于预设值,若是,跳转至步骤S104;否则,跳转至步骤110;步骤S104.在数据包的包头添加pack info标识中的包长指示packet length和数值为“0”的组合包结尾指示end ind,然后将数据包写入组合包容器,计算组合包容器的剩余字节,跳转至步骤S105;步骤S105.判断该VOQ是否读空,若是,跳转至步骤S109;否则,跳转至步骤S106;步骤S106.预读选中的VOQ的下一个数据包,获取下一个数据包的包长信息,跳转至步骤S107;步骤S107.判断下一个数据包的包长是否大于组合包容器的剩余字节,若是,跳转至步骤S109;否则,跳转至步骤S108;步骤S108.从选中的VOQ中读取下一个数据包,更新VOQ的调度权重值,跳转至步骤S104;步骤S109.为组合包打上组合包标识和数值为“1”的end ind,跳转至步骤S111;步骤S110.将数据包作为原始包,打上原始包标识,跳转至步骤S111;步骤S111.将组合包发送至组合包容器或者将原始包发送至原始包缓存,将组合包容器的剩余字节设为预设值,跳转至步骤S101。
在上述技术方案的基础上,步骤S103和步骤S111中所述预设值为1024~2048字节。
在上述技术方案的基础上,步骤S2中,将组合包或者原始包切分成若干个变长信元的具体流程为:步骤S201.变长切片单元读取组合包或者原始包,此时组合包或者原始包的剩余长度等于包长;步骤S202.判断剩余长度是否小于预设的最大长度+预设的最小长度,若是,跳转至步骤S203;否则,跳转至步骤S204;步骤S203.判断剩余长度是否大于预设的最大长度,若是,跳转至步骤S205;否则,跳转至步骤S206;步骤S204.信元长度等于预设的最大长度,跳转至步骤S207;步骤S205.信元长度等于预设的最大长度减去预设的最小长度,跳转至步骤S207;步骤S206.信元长度等于剩余长度,跳转至步骤S207;步骤S207.更新剩余长度,更新后的剩余长度=更新前的剩余长度-信元长度,跳转至步骤S208;步骤S208.判断更新后剩余长度是否等于零,若是,跳转至步骤S209;否则,跳转至步骤S202;步骤S209.切片完成,结束流程。
在上述技术方案的基础上,所述预设的最大长度为256字节,预设的最小长度为64字节。
在上述技术方案的基础上,步骤S4的具体流程为:步骤S401.重组单元根据信元头将变长信元还原为组合包或者原始包;步骤S402.判断类型,若为组合包,跳转至步骤S403;若为原始包,跳转至步骤S405;步骤S403.解析第一个数据包的pack info标识,得到endind和packet length;跳转至步骤S404;步骤S404.判断end ind的值,若值“0”,跳转至步骤S406;若值“1”,跳转至步骤S405;步骤S405.将数据包添加进输出队列OQ,结束流程;步骤S406.根据packet length取出对应的数据包,添加进OQ,跳转至步骤S407;步骤S407.根据packet length确定下一个数据包的pack info标识位置,得到end ind和packet length,跳转至步骤S408;步骤S408.判断end ind的值,若值“0”,跳转至步骤S406;若值“1”,结束流程。
本发明的有益效果在于:
1、本发明中通过在IM中把具有相同属性的多个短数据包封装成一个组合包(比如包长1024字节),再切分成信元,避免在总线上出现短数据包的情况,从而提高了总线效率,在相同总线宽度和总线工作频率的情况下,能够明显提升短包和特殊长度包的吞吐量,实现了系统性能显著提升。
2、本发明中通过在IM中把数据包切分成变长信元,即使最后仅剩一个字节,也不会进行填充进而把一个字节封装成信元发送出去,因此提高了链路效率。
3、本发明采用组合包和变长信元的方式,使得总线和链路效率的提升,针对同样的IM输入流量,能够减少CM的个数,且仍能满足吞吐量要求,达到了降低系统成本目的。
4、本发明采用组合包和变长信元的方式,使得系统工作时钟要求相对较低,减轻了相关系统设计时电路设计的难度,并增强了电路设计的稳定性,从而提高了系统设计的成功概率。
附图说明
图1为传统的CLOS交换网络的结构框图;
图2为本发明实施例中基于CLOS交换网络的数据包切分和重组的系统结构框图;
图3为本发明实施例中组合包的结构框图;
图4为本发明实施例中信元头的结构框图;
图5为本发明实施例中基于CLOS交换网络的数据包切分和重组的方法流程图;
图6为图5中步骤S1的具体流程图;
图7为图5的步骤S2中将组合包或者原始包切分成若干个变长信元的具体流程图;
图8为图5中步骤S4的具体流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图2所示,本发明实施例提供了一种基于CLOS交换网络的数据包切分和重组的系统,CLOS交换网络包括若干个输入模块IM、若干个中间模块CM和若干个输出模块OM;每个CM分别与每个IM及每个OM相连,每个IM均包括组合包调度器、变长切片单元、路由单元;每个OM均包括重组单元;其中:
组合包调度器包括队列调度器、组合包容器和原始包缓存;
队列调度器,用于将来源于同一个虚输出队列VOQ且包长小于预设值的数据包进行组合形成组合包,打上相应标识后,发送至组合包容器;还用于将包长不小于预设值的数据包作为原始包,打上原始包标识后,发送至原始包缓存。具体的,队列调度器为组合包打上pack info标识和组合包标识后,其中pack info标识用于表示该组合包中数据包的数量及各数据包的包长。
组合包容器,用于储存组合包。
原始包缓存,用于储存原始包。
变长切片单元,用于从组合包容器中读取组合包或者从原始包缓存中读取原始包;将组合包或者原始包切分成若干个变长信元,为每个变长信元添加信元头后,发送至路由单元。
路由单元,用于将变长信元经相应的CM发送至目标OM的重组单元。
重组单元,用于根据信元头将变长信元还原为组合包或者原始包。
参见图3所示,pack info标识包括包长指示packet length和组合包结尾指示endind;packet length用于表示组合包中各数据包的包长;end ind用于指示组合包是否结束,若end ind的值为“0”,表示表示组合包未结束,后续有数据包,并根据数值“0”出现的次数确定该组合包中数据包的数量;若end ind的值为“1”,表示组合包结束,后续没有数据包。
参见图4所示,信元头包括有效分片Fragment Valid、源序列号Source Id、目的序列号Destination Id、数据包的序列号Packet Seq、信元时戳Cell Timestamp、分片序列号Fragment Id和最后分片Last fragment;其中,Fragment Valid用于分片有效指示;SourceId表示输入模块号Input Module Id和输入端口号Input Port的组合;Destination Id表示输出模块号Output Module Id和输出端口号Output Port的组合;Packet Seq表示包的序列号;Cell Timestamp表示信元的时戳;Fragment Id用于区分同一个包的不同分片;Last fragment用于表示最后一个分片指示。其中Fragment Valid,Source Id和CellTimestamp均用于信元保序;Packet Seq和Last fragment用于信元重组;Fragment Id既可用于排序又可用于重组。
参见图5所示,本发明实施例还提供一种用于上述系统的基于CLOS交换网络的数据包切分和重组的方法,包括以下步骤:
步骤S1.组合包调度器中的队列调度器将来源于同一个虚输出队列VOQ且包长小于预设值的数据包进行组合形成组合包,打上相应标识后,发送至组合包容器;将包长不小于预设值的数据包作为原始包,打上原始包标识后,发送至原始包缓存。具体的,组合包调度器为组合包打上pack info标识和组合包标识,其中pack info标识用于表示该组合包中数据包的数量及各数据包的包长。
步骤S2.变长切片单元从组合包容器中读取组合包或者从原始包缓存中读取原始包;将组合包或者原始包切分成若干个变长信元,为每个变长信元添加信元头后,发送至路由单元。
步骤S3.路由单元将变长信元经相应的中间模块CM发送至目标输出模块OM的重组单元。
步骤S4.重组单元根据信元头将变长信元还原为组合包或者原始包;若为组合包,则根据pack info标识将组合包拆分为若干数据包,并将数据包添加进输出队列OQ;若为原始包,则直接将数据包添加进OQ。
参见图6所示,步骤S1的具体流程为:
步骤S101.组合包调度器中的队列调度器根据WDRR(Weighted Deficit RoundRobin,加权差额轮询)算法选择相应的VOQ;该VOQ的调度权重值大于0且VOQ的队列不能为空。
步骤S102.从选中的VOQ中读取一个数据包,获取数据包的包长信息;更新VOQ的调度权重值,更新后的调度权重值=更新前的调度权重值-数据包包长对应的调度权重值。
步骤S103.判断数据包的包长是否小于预设值,若是,跳转至步骤S104;否则,跳转至步骤110;其中,预设值为1024~2048字节,预设值处于该区间范围内,能够最大限度的提高总线的效率。
步骤S104.在数据包的包头添加pack info标识中的包长指示packet length和数值为“0”的组合包结尾指示end ind,然后将数据包写入组合包容器,计算组合包容器的剩余字节,跳转至步骤S105;优选的,计算组合包容器的剩余字节时,只计算数据包的大小,不含pack info标识的长度。方便计算效率,开销之类的。
步骤S105.判断该VOQ是否读空,若是,跳转至步骤S109;否则,跳转至步骤S106。
步骤S106.预读选中的VOQ的下一个数据包,获取下一个数据包的包长信息,跳转至步骤S107。
步骤S107.判断下一个数据包的包长是否大于组合包容器的剩余字节,若是,跳转至步骤S109;否则,跳转至步骤S108。
步骤S108.从选中的VOQ中读取下一个数据包,更新VOQ的调度权重值,更新后的调度权重值=更新前的调度权重值-数据包包长对应的调度权重值,跳转至步骤S104。
步骤S109.为组合包打上组合包标识和数值为“1”的end ind,跳转至步骤S111。
步骤S110.将数据包作为原始包,打上原始包标识,跳转至步骤S111。
步骤S111.将组合包发送至组合包容器或者将原始包发送至原始包缓存,将组合包容器的剩余字节设为预设值,跳转至步骤S101。其中,预设值为1024~2048字节。
参见图7所示,步骤S2中,将组合包或者原始包切分成若干个变长信元的具体流程为:
步骤S201.变长切片单元读取组合包或者原始包,此时组合包或者原始包的剩余长度等于包长。
步骤S202.判断剩余长度是否小于预设的最大长度+预设的最小长度,若是,跳转至步骤S203;否则,跳转至步骤S204;其中,预设的最小长度的不能过小,否则会提高链路开销比例,优选的,预设的最小长度为64字节;预设的最大长度则不能太大,否则会影响系统延时,优选的,预设的最大长度为256字节。
步骤S203.判断剩余长度是否大于预设的最大长度,若是,跳转至步骤S205;否则,跳转至步骤S206。
步骤S204.信元长度等于预设的最大长度,跳转至步骤S207。
步骤S205.信元长度等于预设的最大长度减去预设的最小长度,跳转至步骤S207。
步骤S206.信元长度等于剩余长度,跳转至步骤S207。
步骤S207.更新剩余长度,更新后的剩余长度=更新前的剩余长度-信元长度,跳转至步骤S208。
步骤S208.判断更新后剩余长度是否等于零,若是,跳转至步骤S209;否则,跳转至步骤S202。
步骤S209.切片完成,结束流程。
参见图8所示,步骤S4的具体流程为:
步骤S401.重组单元根据信元头将变长信元还原为组合包或者原始包。
步骤S402.判断类型,若为组合包,跳转至步骤S403;若为原始包,跳转至步骤S405。
步骤S403.解析第一个数据包的pack info标识,得到end ind和packet length;跳转至步骤S404。
步骤S404.判断end ind的值,若值“0”,跳转至步骤S406;若值“1”,跳转至步骤S405。
步骤S405.将数据包添加进OQ(Output Queue,输出队列),结束流程。
步骤S406.根据packet length取出对应的数据包,添加进OQ,跳转至步骤S407。
步骤S407.根据packet length确定下一个数据包的pack info标识位置,得到endind和packet length,跳转至步骤S408。
步骤S408.判断end ind的值,若值“0”,跳转至步骤S406;若值“1”,结束流程。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (9)

1.一种基于CLOS交换网络的数据包切分和重组的系统,所述CLOS交换网络包括若干个输入模块IM、若干个中间模块CM和若干个输出模块OM;每个CM分别与每个IM及每个OM相连,其特征在于:每个IM均包括组合包调度器、变长切片单元、路由单元;每个OM均包括重组单元;其中,
所述组合包调度器包括队列调度器、组合包容器和原始包缓存;
队列调度器,用于将来源于同一个虚输出队列VOQ,且包长小于预设值的数据包进行组合形成组合包,打上相应标识后,发送至组合包容器;还用于将包长不小于预设值的数据包作为原始包,打上原始包标识后,发送至原始包缓存;
组合包容器,用于储存组合包;
原始包缓存,用于储存原始包;
变长切片单元,用于从组合包容器中读取组合包或者从原始包缓存中读取原始包;将组合包或者原始包切分成若干个变长信元,为每个变长信元添加信元头后,发送至路由单元;
路由单元,用于将变长信元经相应的CM发送至目标OM的重组单元;
重组单元,用于根据信元头将变长信元还原为组合包或者原始包;
所述变长切片单元将组合包或者原始包切分成若干个变长信元的具体流程为:变长切片单元读取组合包或者原始包,此时组合包或者原始包的剩余长度等于包长;判断剩余长度是否小于预设的最大长度+预设的最小长度;
若是,判断剩余长度是否大于预设的最大长度,若是,信元长度等于预设的最大长度减去预设的最小长度,若否,信元长度等于剩余长度;然后,更新剩余长度,更新后的剩余长度=更新前的剩余长度-信元长度;再判断更新后剩余长度是否等于零,若是,切片完成,结束;若否,再次判断剩余长度是否小于预设的最大长度+预设的最小长度;
否则,信元长度等于预设的最大长度,更新剩余长度,更新后的剩余长度=更新前的剩余长度-信元长度,再判断更新后剩余长度是否等于零,若是,切片完成,结束;若否,再次判断剩余长度是否小于预设的最大长度+预设的最小长度。
2.如权利要求1所述的基于CLOS交换网络的数据包切分和重组的系统,其特征在于:所述队列调度器为组合包打上pack info标识和组合包标识,其中pack info标识用于表示该组合包中数据包的数量及各数据包的包长。
3.如权利要求2所述的基于CLOS交换网络的数据包切分和重组的系统,其特征在于:所述pack info标识包括包长指示packet length和组合包结尾指示end ind;其中,
packet length用于表示组合包中各数据包的包长;
end ind用于指示组合包是否结束,若end ind的值为“0”,表示组合包未结束,后续有数据包;若end ind的值为“1”,表示组合包结束,后续没有数据包。
4.如权利要求1所述的基于CLOS交换网络的数据包切分和重组的系统,其特征在于:所述信元头包括有效分片Fragment Valid、源序列号Source Id、目的序列号DestinationId、数据包的序列号Packet Seq、信元时戳Cell Timestamp、分片序列号Fragment Id和最后分片Last fragment;其中,
Fragment Valid,用于分片有效指示;
Source Id,表示输入模块号Input Module Id和输入端口号Input Port的组合;
Destination Id,表示输出模块号Output Module Id和输出端口号Output Port的组合;
Packet Seq,表示包的序列号;
Cell Timestamp,表示信元的时戳;
Fragment Id,用于区分同一个包的不同分片;
Last fragment,用于表示最后一个分片指示。
5.用于权利要求1所述系统的基于CLOS交换网络的数据包切分和重组的方法,其特征在于,包括以下步骤:
步骤S1.所述队列调度器将来源于同一个虚输出队列VOQ且包长小于预设值的数据包进行组合形成组合包,打上相应标识后,发送至组合包容器;将包长不小于预设值的数据包作为原始包,打上原始包标识后,发送至原始包缓存;
步骤S2.变长切片单元读取组合包或者从原始包缓存中读取原始包;将组合包或者原始包切分成若干个变长信元,为每个变长信元添加信元头后,发送至路由单元;
步骤S3.路由单元将变长信元经相应的中间模块CM发送至目标输出模块OM的重组单元;
步骤S4.重组单元根据信元头将变长信元还原为组合包或者原始包;
所述步骤S2中,将组合包或者原始包切分成若干个变长信元的具体流程为:
步骤S201.变长切片单元读取组合包或者原始包,此时组合包或者原始包的剩余长度等于包长;
步骤S202.判断剩余长度是否小于预设的最大长度+预设的最小长度,若是,跳转至步骤S203;否则,跳转至步骤S204;
步骤S203.判断剩余长度是否大于预设的最大长度,若是,跳转至步骤S205;否则,跳转至步骤S206;
步骤S204.信元长度等于预设的最大长度,跳转至步骤S207;
步骤S205.信元长度等于预设的最大长度减去预设的最小长度,跳转至步骤S207;
步骤S206.信元长度等于剩余长度,跳转至步骤S207;
步骤S207.更新剩余长度,更新后的剩余长度=更新前的剩余长度-信元长度,跳转至步骤S208;
步骤S208.判断更新后剩余长度是否等于零,若是,跳转至步骤S209;否则,跳转至步骤S202;
步骤S209.切片完成,结束流程。
6.如权利要求5所述的基于CLOS交换网络的数据包切分和重组的方法,其特征在于,步骤S1的具体流程为:
步骤S101.组合包调度器中的队列调度器根据加权差额轮询WDRR算法选择相应的VOQ;该VOQ的调度权重值大于0且VOQ的队列不能为空;
步骤S102.从选中的VOQ中读取一个数据包,获取数据包的包长信息;更新VOQ的调度权重值,更新后的调度权重值=更新前的调度权重值-数据包包长对应的调度权重值;
步骤S103.判断数据包的包长是否小于预设值,若是,跳转至步骤S104;否则,跳转至步骤110;
步骤S104.在数据包的包头添加pack info标识中的包长指示packet length和数值为“0”的组合包结尾指示end ind,然后将数据包写入组合包容器,计算组合包容器的剩余字节,跳转至步骤S105;
步骤S105.判断该VOQ是否读空,若是,跳转至步骤S109;否则,跳转至步骤S106;
步骤S106.预读选中的VOQ的下一个数据包,获取下一个数据包的包长信息,跳转至步骤S107;
步骤S107.判断下一个数据包的包长是否大于组合包容器的剩余字节,若是,跳转至步骤S109;否则,跳转至步骤S108;
步骤S108.从选中的VOQ中读取下一个数据包,更新VOQ的调度权重值,跳转至步骤S104;
步骤S109.为组合包打上组合包标识和数值为“1”的end ind,跳转至步骤S111;
步骤S110.将数据包作为原始包,打上原始包标识,跳转至步骤S111;
步骤S111.将组合包发送至组合包容器或者将原始包发送至原始包缓存,将组合包容器的剩余字节设为预设值,跳转至步骤S101。
7.如权利要求6所述的基于CLOS交换网络的数据包切分和重组的方法,其特征在于,步骤S103和步骤S111中所述预设值为1024~2048字节。
8.如权利要求5所述的基于CLOS交换网络的数据包切分和重组方法,其特征在于:所述预设的最大长度为256字节,预设的最小长度为64字节。
9.如权利要求5所述的基于CLOS交换网络的数据包切分和重组方法,其特征在于,步骤S4的具体流程为:
步骤S401.重组单元根据信元头将变长信元还原为组合包或者原始包;
步骤S402.判断类型,若为组合包,跳转至步骤S403;若为原始包,跳转至步骤S405;
步骤S403.解析第一个数据包的pack info标识,得到end ind和packet length;跳转至步骤S404;
步骤S404.判断end ind的值,若值“0”,跳转至步骤S406;若值“1”,跳转至步骤S405;
步骤S405.将数据包添加进输出队列OQ,结束流程;
步骤S406.根据packet length取出对应的数据包,添加进OQ,跳转至步骤S407;
步骤S407.根据packet length确定下一个数据包的pack info标识位置,得到end ind和packet length,跳转至步骤S408;
步骤S408.判断end ind的值,若值“0”,跳转至步骤S406;若值“1”,结束流程。
CN201510252913.7A 2015-05-18 2015-05-18 基于clos交换网络的数据包切分和重组的系统及方法 Active CN104954292B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510252913.7A CN104954292B (zh) 2015-05-18 2015-05-18 基于clos交换网络的数据包切分和重组的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510252913.7A CN104954292B (zh) 2015-05-18 2015-05-18 基于clos交换网络的数据包切分和重组的系统及方法

Publications (2)

Publication Number Publication Date
CN104954292A CN104954292A (zh) 2015-09-30
CN104954292B true CN104954292B (zh) 2018-04-20

Family

ID=54168654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510252913.7A Active CN104954292B (zh) 2015-05-18 2015-05-18 基于clos交换网络的数据包切分和重组的系统及方法

Country Status (1)

Country Link
CN (1) CN104954292B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110233805A (zh) * 2019-07-02 2019-09-13 天津市滨海新区信息技术创新中心 可变信元的交换装置、系统及方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107592248A (zh) * 2016-07-08 2018-01-16 成都夸克光电技术有限公司 一种基于以太网总线不规则数据的高效传输控制方法
CN107770083B (zh) * 2016-08-16 2021-04-20 华为技术有限公司 一种交换网络、控制器及负载均衡方法
CN107241156B (zh) * 2017-05-09 2019-03-22 烽火通信科技股份有限公司 一种信元保序方法及装置
CN107948068B (zh) * 2017-12-29 2020-08-04 中国电子科技集团公司第二十研究所 一种应用于Clos交换结构的业务路由算法
CN108600097B (zh) * 2018-04-20 2020-09-22 闫晓峰 可多路径传输数据的通讯设备、数据通讯网络系统及数据通讯方法
CN113228538B (zh) * 2018-12-26 2022-10-18 华为技术有限公司 数据传输方法及装置
CN113541992A (zh) * 2020-04-21 2021-10-22 华为技术有限公司 一种数据传输的方法和装置
CN112367272A (zh) * 2020-11-09 2021-02-12 中国电子科技集团公司第二十研究所 一种基于矩阵坐标的快速组包方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095744B2 (en) * 2000-11-22 2006-08-22 Dune Networks Method and system for switching variable sized packets
CN101567855A (zh) * 2009-06-11 2009-10-28 杭州华三通信技术有限公司 分布式包交换系统和分布式包交换方法
CN101631070A (zh) * 2008-07-16 2010-01-20 中国人民解放军信息工程大学 三级交换系统及其调度方法
CN101964751A (zh) * 2010-09-30 2011-02-02 华为技术有限公司 数据包的传输方法及装置
CN104158770A (zh) * 2014-08-20 2014-11-19 电子科技大学 一种交换机数据包切分与重组的方法与装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095744B2 (en) * 2000-11-22 2006-08-22 Dune Networks Method and system for switching variable sized packets
CN101631070A (zh) * 2008-07-16 2010-01-20 中国人民解放军信息工程大学 三级交换系统及其调度方法
CN101567855A (zh) * 2009-06-11 2009-10-28 杭州华三通信技术有限公司 分布式包交换系统和分布式包交换方法
CN101964751A (zh) * 2010-09-30 2011-02-02 华为技术有限公司 数据包的传输方法及装置
CN104158770A (zh) * 2014-08-20 2014-11-19 电子科技大学 一种交换机数据包切分与重组的方法与装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Clos交换机核心模块设计与实现;卢卫娜;《中国优秀硕士学位论文全文数据库信息科技辑》;20130415;正文第11页第1行至第59页最后一行,图2.3、图2.4、图2.5 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110233805A (zh) * 2019-07-02 2019-09-13 天津市滨海新区信息技术创新中心 可变信元的交换装置、系统及方法
CN110233805B (zh) * 2019-07-02 2021-09-03 天津市滨海新区信息技术创新中心 可变信元的交换装置、系统及方法

Also Published As

Publication number Publication date
CN104954292A (zh) 2015-09-30

Similar Documents

Publication Publication Date Title
CN104954292B (zh) 基于clos交换网络的数据包切分和重组的系统及方法
CN108462646B (zh) 一种报文处理方法及装置
CN111654447B (zh) 一种报文传输的方法及装置
US7835279B1 (en) Method and apparatus for shared shaping
US7602809B2 (en) Reducing transmission time for data packets controlled by a link layer protocol comprising a fragmenting/defragmenting capability
AU752793B2 (en) Table for handling various AAL protocols in an ATM-mode
US20050147032A1 (en) Apportionment of traffic management functions between devices in packet-based communication networks
KR101504144B1 (ko) 다채널 패킷 송신을 위한 시스템 및 방법
CN109450875B (zh) Mac层封装方法及装置
US20040196789A1 (en) Apparatus and methods for managing packets in a broadband data stream
US8902752B2 (en) Cell processing method, source line card, and network card in switching network
CN112311692B (zh) 报文处理方法及装置、端设备
CN108234320B (zh) 报文传输方法及交换机
US7289537B1 (en) Single-chip multi-port Ethernet switch
AU752920B2 (en) Coordinated cell discharge from ATM queue
WO2018171115A1 (zh) 一种分片的服务质量保证方法及现场可编程逻辑门阵列
US20030185215A1 (en) Encapsulation method and apparatus for communicating fixed-length data packets through an intermediate network
US8107372B1 (en) Collision compensation in a scheduling system
EP4181479A1 (en) Method for identifying flow, and apparatus
CN116471194A (zh) 流统计方法、装置及系统
US9363186B2 (en) Hierarchical shaping of network traffic
CN110233805B (zh) 可变信元的交换装置、系统及方法
US9166924B2 (en) Packet scheduling method and apparatus considering virtual port
CN113541992A (zh) 一种数据传输的方法和装置
KR100959397B1 (ko) 패킷 스케줄링 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170606

Address after: 430074, Hubei Wuhan East Lake Development Zone, Kanto Industrial Park, beacon Road, optical communications building, industrial building, two floor

Applicant after: Wuhan flying Microelectronics Technology Co., Ltd.

Address before: 430074 East Lake Development Zone, Hubei, Optics Valley Venture Street, No. 67, No.

Applicant before: Fenghuo Communication Science &. Technology Co., Ltd.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20170804

Address after: 430000 East Lake high tech Development Zone, Hubei Province, No. 6, No., high and new technology development zone, No. four

Applicant after: Fenghuo Communication Science &. Technology Co., Ltd.

Applicant after: Wuhan flying Microelectronics Technology Co., Ltd.

Address before: 430074, Hubei Wuhan East Lake Development Zone, Kanto Industrial Park, beacon Road, optical communications building, industrial building, two floor

Applicant before: Wuhan flying Microelectronics Technology Co., Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant