以太网交换缓存及调度的方法和装置的制作方法

文档序号:7627772阅读:94来源:国知局
专利名称:以太网交换缓存及调度的方法和装置的制作方法
技术领域
本发明涉及网络交换方法,尤其涉及以太网交换缓存及调度的方法和装置。
背景技术
目前以太网交换技术主要有直通方式和存储转发方式。
直通方式的以太网交换技术可以通过在各以太网端口间的矩阵交换机来实现。当矩阵交换机在输入端口检测到一个数据包时,所述矩阵交换机检查该数据包的包头,获取数据包的目的地址,通过矩阵交换机内部的动态查找表将目的地址转换成相应的输出端口,并且把数据包直通地发送到相应的端口,实现交换功能。
由于不存储数据包,直通方式的延迟非常小、交换速度非常快。但它的缺点是因为数据包的内容并没有被交换机保存下来,所以无法检查所传送的数据包是否有错误,不能提供错误检测能力;由于没有缓存,不能协调高速端口与低速端口,因此不能将具有不同速率的输入/输出端口直接接通,而且该方法也不适用于多端口的以太网交换。
存储转发方式是目前应用最为广泛的方式,存储转发方式又可以根据缓存空间的占用方式区分为中央共享缓存和独立缓存,以中央共享缓存的以太网数据包交换方式为例,其具体的处理流程如下当数据包通过以太网口进入交换机后,以太网接收控制器和接收处理逻辑单元没有缓存,它们按线速对数据包进行处理并传送给中央缓存单元。接收处理逻辑执行所有转发命令,也就是说,接收处理逻辑决定了每个进入的包将被送往哪个输出端口,所述接收处理逻辑还包括了第二层转发,第三层路由和其它功能。接收处理逻辑通知中央缓存单元这些数据包的目的端口。
中央缓存单元对数据包进行缓存和发送调度时,中央缓存单元按线速把数据包发送给每个输出端口。对于那些被发送给多个端口的包(组播,广播,或DLF包),输入逻辑只发送一个数据包给中央缓存单元,但是指明多个目的端口。中央缓存单元将包分别送往各个输出端口。
在以太网交换机共享存储的交换中,通常可以采用以上包交换的交换方式。这种方式应用在低端口数、低带宽要求的交换尚可,但在处理千兆速率甚至万兆速率的多端口交换上就会出现问题首先,在高传输速率的情况下,存储转发方式需要极大的缓存开销,这将加大系统的成本;其次,存储转发方式在进行数据处理时的延时长,特别是采用共享存储包交换方式时,由于数据包的长度各不相同,在传输和处理各个数据包时就会产生各不相同的延时,从而出现时延抖动。

发明内容
针对现有技术中出现的高速率传输时存储转发方式缓存开销大、基于包的队列调度时产生时延抖动的问题,本发明提出一种能够以较小的系统缓存开销实现高速传输的、基于固定长度的信元的以太网交换缓存及调度方法和以太网交换缓存及调度装置。
本发明提供的以太网交换缓存及调度方法,包括从输入端口接收数据包;由信元切割单元将所述数据包分割成一定长度的信元,其中,每个信元具有标签,该标签表示所述信元的数据信息,所述信元存储在中央缓存单元中;通过端口及队列调度单元在不同的输出端口间采用等时隙轮询调度,每隔一个时间间隔,输出端口轮转一次调度权,在同一输出端口的不同队列之间进行调度;在输出端口获得调度权后,从该输出端口所共享的中央缓存单元中读取信元,通过数据包重组单元对信元进行重组,将重组后的信元数据发送到链路上。
进一步地,在同一输出端口的不同队列间使用严格优先级算法、轮转算法或带权重的轮转算法进行调度。
当从输入端口接收数据包后,从输入端口接收的数据包通过查表转发逻辑单元在每个数据包的包头部分加标记,以表示该数据包的要发送的输出端口;从输入端口接收的数据包通过包过滤逻辑单元在每个数据包的包头部分加标记,以表示该数据包是否该丢弃和服务等级;信元切割单元剥离所述包头标记,并且根据所述标记分割信元。
通过队列地址控制及堆栈单元将来自输入端口的数据包排列队列,将来自各输入端口队列的信元与中央缓存单元的一部分区域映射。
信元的数据信息包括信元的有效字节数、包头包尾属性以及源端口信息。
将来自输入端口数据包按照输出端口、COS分类和单播/组播分别排列队列。
以太网交换缓存及调度方法还包括当从输入端口输入的数据包数大于设定值时,中央缓存单元会通知输入端口的控制器发送流量控制帧,当输入端口的数据包数小于设定值时,输入端口退出流量控制状态。
当从输入端口输入的数据包数大于设定值时,从输入端口输入的数据包被丢弃。
本发明提供的以太网交换缓存及调度的装置,包括输入端口和输出端口,还包括信元切割单元,用于将从输入端口接收的数据包分割成一定长度的信元;中央缓存单元,用于存储信元切割单元所分割的信元;队列地址控制及堆栈单元,用于将输入端口分类队列;端口及队列调度单元,用于在不同的输出端口间采用等时隙轮询调度,以使每隔一个时间间隔,输出端口轮转一次调度权,在同一输出端口的不同队列之间侧采用轮转或加权轮转调度;数据包重组单元,用于对输出端口从所共享的中央缓存单元中读取的信元进行打包。
本发明提供的以太网交换缓存及调度装置还包括查表转发逻辑单元,用于在每个数据包的包头部分加标记,以表示该数据包的要发送的输出端口;包过滤逻辑单元,在每个数据包的包头部分加标记,以表示该数据包是否该丢弃。
本发明提供的以太网交换缓存及调度装置还包括队列地址控制及堆栈单元,用于将输入端口排列队列,并将来自各输入端口队列的信元与中央缓存单元的一部分区域映射。其中,队列地址控制及堆栈单元将输入端口按照输出端口、COS分类和单播/组播排列队列。
采用本发明所提供的方法和装置,在有限的中央缓存容量的情况下,利用信元交换的方法,配合端口间等时隙调度算法,中央缓存更有效地对存储信元的中央缓存池中的地址进行更新和释放,从而减小了网络交换时的缓存开销。
由于处理数据的单元为固定长度的信元。对于不同长度的以太网包,可以在交换前划分成信元,在输出端重组后再发送到链路上去。运用基于固定长度的信元排队和调度算法,利用信元输出时间固定的特性,减小了时延抖动。
另外,通过队列地址控制及堆栈单元实现了根据输出端口、单播/组播、COS的队列分类功能,可以支持数百个虚拟队列同时存在。时隙调度与传统调度相结合的方法实现了包交换的低时延抖动和针对不同服务等级的灵活调度。


图1是本发明所述的以太网交换缓存及调度方法的实施例流程图。
图2是本发明所述的以太网交换缓存及调度装置的实施例结构图。
图3是本发明实施例中的信元结构图。
具体实施例方式
图1是本发明所述的以太网交换缓存及调度方法的流程图。根据本发明提供的以太网交换缓存及调度方法,首先,在步骤10,对输入端口的流量进行监控,根据监控结果确定对数据包的操作,例如,接收数据包或丢弃数据包。
当从输入端口输入的数据包数大于设定值时,在步骤80,在中央缓存单元会通知输入端口的控制器发送流量控制帧,并且,在步骤90,丢弃输入的数据包。
当从输入端口输入的数据包数小于设定值时,在步骤20,从输入端口接收数据包,所述输入端口可以是12个千兆端口和PCI口以及万兆端口。通过队列地址控制及堆栈单元将来自输入端口的数据包排列队列,在本实施例中每个输入端口按输出端口、COS分类和单播/多播排列队列。在中央缓存单元内共有队列数13×8(13个千兆端口和PCI端口每个8个COS队列)+13(万兆端口根据入端口队列)+13(13个千兆端口和PCI端口多播或广播队列),总计130个队列。
在步骤30,所述数据包通过查表转发单元和包过滤单元后在每个包的包头部分加上标记,以表明该包是否丢弃、将发送到哪个端口、以及如果发送到CPU接口同时表明发送到CPU接口的原因以及数据包的服务类型。
在本实施例中,上述数据包所附加的标记为3-7个字节,其中发送到CPU端口的数据包加7个字节的标记,发送到其它端口的数据包加3个字节的标记,即DESTINATION_PORT[13:0]表明数据包要去的端口;其中,DESTINATION_PORT[11:0]分别对应GE1-GE12(千兆端口1到千兆端口12),DESTINATION_PORT[12]为10GE端口,DESTINATION_PORT[13]为CPU端口。
DROP表明当前包是否要丢弃。
COS[2:0]表明数据包优先级信息。另外,传送到CPU端口的数据包具有以下的信息16位rx_reason[15:0]表明该数据包发送到CPU处理的原因;4位rx_port[3:0]表明该包来源的端口号;3位rx_cpu_cos[2:0]表明该包的COS等级;1位rx_untagged表明该包是否需要打标记。
在步骤40,信元切割单元首先剥离这些标记信息,即对标记信息进行读取后去掉所述标记信息,然后根据所述标记信息将这些包切割成长度为34字节的信元(每个信元携带2个字节的标签,表明有效字节数和包头包尾以及源端口信息)。
在步骤45,通过队列地址控制及堆栈单元将来自各输入端口队列的信元与中央缓存单元的一部分区域映射。其中,通过队列地址控制及堆栈单元将输入端口分类队列,所有输入端口的队列共享中央缓存单元。在本实施例中,采用的12K×288Bits的RAM为中央缓存单元,总共可以放12K个信元,如果在平均划分空间的情况下,130个队列每个队列可以平均缓存92个信元(64-1522个字节分别占用2-45个信元,因此每个队列可以缓存2个最长包)。
然后,在步骤50,信元被存储在中央缓存单元中。优选地,所述中央缓存单元具有与信元相匹配的位宽,在本实施例中,中央缓存单元具有288比特的位宽。
在步骤55,通过端口及队列调度单元在不同的输出端口间采用等时隙轮询调度,每隔一个时间间隔,输出端口轮转一次调度权。在本实施例中,每34个系统时钟各输出端口轮转一次调度权,得到调度权的输出端口依据输入端口、COS等排队的队列中数据包和信元的数量、优先级高低或输出端口的状态决定输出端口的队列间的调度策略。关于输出端口的队列间的调度,优选地,使用三种传统调度算法严格优先级算法、轮转算法、带权重的轮转算法。本领域技术人员应该理解,其他适合的调度算法也适合与本发明的等时隙轮询调度算法结合。
在步骤60,在输出端口确定对其中一个队列进行发送后,该输出端口向中央缓存单元发读信元指令,以便从中央处理单元的相应存储区域中读取信元。在步骤70,数据包重组单元对所读取的信元进行重组,将重组后的信元数据发送到链路上。
图2是本发明所述的以太网交换缓存及调度装置的实施例结构图。本发明提供的以太网交换缓存及调度装置,包括输入端口110、输出端口150、信元分割单元120、中央缓存单元130、数据包重组单元140、端口及队列调度单元160。优选地,所述装置还可以包括队列地址控制及堆栈单元105、查表转发逻辑单元115、包过滤逻辑单元116。
以太网交换缓存及调度装置中的队列地址控制及堆栈单元105,用于将输入端口110的数据分类队列。其中,队列数为COS*PNUM+PNUM个队列,其中COS为优先级个数,PNUM为系统的端口数。然后对中央缓存单元130的地址空间进行分配,例如,平均或动态划分中央缓存单元130的空间。优选地,进一步区分单播队列和组播队列。
输入端口110和输出端口150,所述输入端口110和输出端口150是多个千兆端口、PCI端口和万兆端口,均与外界链路相连接。其中,所述输入端口110用于接收外来的数据包,并且,优选地,输入端口包括对所输入数据包计数的计数单元(未图示),用以对输入得数据包进行流量控制。
所述输出端口150用于通过其中的控制器向中央缓存单元130发读信元指令,以将中央缓存单元130中的信元读入到数据包重组单元140。
优选地,以太网交换缓存及调度装置还包括查表转发逻辑单元115和包过滤逻辑单元116。利用以太网交换缓存及调度装置中的查表转发逻辑单元115在每个从输入端口110接收到的数据包的包头部分加标记,以表示该数据包的要发送的输出端口。还可以利用以太网交换缓存及调度装置中的包过滤逻辑单元116在每个从输入端口接收到的数据包的包头部分加标记,以表示该数据包是否丢弃和服务等级。
所述信元切割单元120用于将从输入端口110接收数据包分割成一定长度的信元。在本实施例中,优选地,信元切割单元120首先剥离上述标记信息,即对标记信息进行读取后去掉所述标记信息,然后根据所述标记信息将这些包切割成长度为34字节的信元。
中央缓存单元130,用于存储信元切割单元120所分割的信元;在本实施例中,中央缓存单元130采用288位宽的缓存SRAM,可替换地,也可以采用DRAM、SDRAM等存储器作为中央缓存单元。分割后的信元存储在所述中央缓存单元130中,34个字节信元变换后为272位宽,剩余的16位为信元的包头标识。
图3显示了本发明所述实施例的信元结构CI[1:0]10B包负荷部分;11B包尾部分;01B包头部分。
BE[5:0]包尾信元的有效字节数。例如BE[5:0]=100000B表示有32个有效字节。
SP[3:0]表明数据包的来源端口号,例如SP[3:0]=0001B表示1号千兆端口。
COS[2:0]表明COS等级。
CEL[271:0]信元的有效字节一共272位也即34个字节。
以太网交换缓存及调度装置还包括数据包重组单元140,用于对输出端口150从所共享的中央缓存单元130中读取的信元进行重组,将调度出来的信元重新拼装打包。优选地,数据包重组单元140在对信元进行重组的同时还可以对重组后的信元数据进行校验,丢弃错包并进行丢包计数统计。
以太网交换缓存及调度装置还包括端口及队列调度单元160,用于在不同的输出端口150间采用等时隙轮询调度,以使每隔一个时间间隔,输出端口150轮转一次调度权。获得调度权的输出端口150在不同队列间再依据轮转或加权轮转等算法进行调度,然后输出端口向中央缓存单元130中发出读信元指令,以使数据包重组单元140对信元进行重组,进一步将信元从中央缓存单元130发送到对应的输出端口150。而且,等时隙调度算法与严格优先级算法、轮转算法、带权重的轮转算法等调度算法相结合实现了数据包交换的低时延抖动和针对不同服务等级的调度。
需要指出,本发明的实施并不局限于上述实施例,任何其他形式的修改,只要不脱离本发明的精神实质,也属于本发明的保护范围。
权利要求
1.一种以太网交换缓存及调度的方法,其特征在于,包括A.从输入端口接收数据包,通过队列地址控制及堆栈单元将输入端口接收的数据包排列队列;B.由信元切割单元将所述数据包分割成固定长度的信元,其中,每个信元具有标签,该标签表示所述信元的数据信息;C.将所述信元存储在中央缓存单元中;D.通过端口及队列调度单元在不同的输出端口间采用等时隙轮询调度,每隔一个时间间隔,输出端口轮转一次调度权,并且在同一输出端口的不同队列之间进行调度;E.在输出端口确定对其中一个队列进行发送后,该输出端口向中央缓存单元发读信元指令;F.通过数据包重组单元对所读取的信元进行重组,将重组后的信元数据发送到链路上。
2.根据权利要求1所述的方法,其特征在于,在步骤D,在同一输出端口的不同队列之间使用严格优先级算法、轮转算法或带权重的轮转算法进行调度。
3.根据权利要求1所述的方法,其特征在于,在步骤B和C之间,通过队列地址控制及堆栈单元将来自各输入端口队列的信元与中央缓存单元的一部分区域映射。
4.根据权利要求3所述的方法,其特征在于,在步骤A,所述排列队列按照输出端口、COS分类和单播/组播进行。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括在步骤A和B之间,通过查表转发逻辑单元在每个数据包的包头部分加标记,以表示该数据包要发送的输出端口;通过包过滤逻辑单元在每个数据包的包头部分加标记,以表示该数据包是否该丢弃和服务等级;信元切割单元剥离所述包头标记。
6.根据权利要求1所述的方法,其特征在于,所述信元的数据信息包括信元的有效字节数、包头包尾属性以及源端口信息。
7.根据权利要求1所述的方法,其特征在于,在步骤A之前,当从输入端口输入的数据包数大于设定值时,中央缓存单元会通知输入端口的控制器发送流量控制帧,当输入端口的数据包数小于设定值时,输入端口接收数据。
8.根据权利要求7所述的方法,其特征在于,当从输入端口输入的数据包数大于设定值时,从输入端口输入的数据包被丢弃。
9.一种以太网交换缓存及调度的装置,包括输入端口和输出端口,其特征在于,所述装置还包括信元切割单元,用于将从输入端口接收的数据包分割成一定长度的信元;中央缓存单元,用于存储信元切割单元所分割的信元;端口及队列调度单元,用于在不同的输出端口间采用等时隙轮询调度,以使每隔一个时间间隔,输出端口轮转一次调度权,并且在同一输出端口的不同队列之间进行调度;数据包重组单元,用于对输出端口从所共享的中央缓存单元中读取的信元进行重组。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括查表转发逻辑单元,用于在每个数据包的包头部分加标记,以表示该数据包的要发送的输出端口;包过滤逻辑单元,用于在每个数据包的包头部分加标记,以表示该数据包是否丢弃和服务等级。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括队列地址控制及堆栈单元,用于将来自输入端口的数据包排列队列,并将来自各输入端口队列的信元与中央缓存单元的一部分区域映射。
12.根据权利要求11所述的装置,其特征在于,所述队列地址控制及堆栈单元将输入端口按照输出端口、COS分类和单播/组播排列队列。
13.根据权利要求9所述的装置,其特征在于,所述端口及队列调度单元在同一输出端口的不同队列之间采用严格优先级算法、轮转算法或带权重的轮转算法进行调度。
全文摘要
本发明提供了一种以太网交换缓存及调度方法,该方法包括从输入端口接收数据包;由信元切割单元将所述数据包分割成一定长度的信元,将所述信元存储在中央缓存单元中;通过端口及队列调度单元在不同的输出端口间采用等时隙轮询调度,每隔一个时间间隔,输出端口轮转一次调度权;在同一输出端口中的不同队列间采用轮询或加权轮询调度;在输出端口获得调度权后,从该输出端口所共享的中央缓存单元中读取信元,数据包重组单元对信元进行重组,将重组后的信元数据发送到链路上。本发明还提供一种以太网交换缓存及调度装置,该装置包括输入端口和输出端口,还包括信元切割单元、中央缓存单元、队列地址控制及堆栈单元、端口及队列调度单元以及数据包重组单元。
文档编号H04L12/56GK1972239SQ20051012388
公开日2007年5月30日 申请日期2005年11月24日 优先权日2005年11月24日
发明者范其蓬 申请人:武汉烽火网络有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1