CN1852225A - 多播调度中缓存权重的处理方法 - Google Patents
多播调度中缓存权重的处理方法 Download PDFInfo
- Publication number
- CN1852225A CN1852225A CNA2005100872006A CN200510087200A CN1852225A CN 1852225 A CN1852225 A CN 1852225A CN A2005100872006 A CNA2005100872006 A CN A2005100872006A CN 200510087200 A CN200510087200 A CN 200510087200A CN 1852225 A CN1852225 A CN 1852225A
- Authority
- CN
- China
- Prior art keywords
- port
- controll block
- weight
- frame controll
- multicast
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种多播调度中缓存权重的处理方法,该方法的缓存权重最大值与输出端口数相同,在多播复制单元完成复制后设置缓存权重为权重最大值减去复制缓存报文的端口数,复制缓存报文的端口的权重都设为1,在接入速率限制(CAR)和队列调度(QM)单元丢弃报文时累加所有报文被丢弃的端口的权重,在封装输出单元转发报文时累加所有报文被转发的端口的权重,当缓存的权重累加到最大值后,释放该缓存。本发明通过多播调度缓存权重与输出端口数的匹配,把缓存的权重分配给每个端口而不是每个端口的每份报文,大大减少了多播调度缓存权重处理所需存储资源,同时也简化了缓存释放处理。
Description
技术领域
本发明涉及通讯设备中的多播技术,具体地说,涉及多播调度中存储多播数据的缓存(buffer)的权重处理方法。
背景技术
在通讯设备中,多播应用非常广泛,比如二层多播的数字用户线接入复用器(DSLAM)、三层多播的边缘服务路由器(ESR),通常多播处理的示意图如图1所示。
报文的多播过程为:报文输入时,先缓存在输入缓存中;向空闲缓存管理单元(FBM)申请包缓存随机存取存储器(RAM)的缓存,然后将输入缓存的报文数据存入所申请的包缓存RAM缓存中,并将报文信息写入帧控制块(FCB),送至多播复制单元;多播复制单元复制多份FCB送到接入速率限制(CAR)和队列调度(QM)单元,CAR针对端口或者用户以及优先级来设置带宽门限,超过带宽限制的FCB将被丢弃,QM通常针对端口以及优先级把FCB分为多个队列进行调度,保证高优先级的FCB优先输出,队列拥塞时低优先级的FCB先被丢弃;封装输出单元根据FCB信息从包缓存RAM中找到相应缓存并读出报文数据,针对用户的协议类型,编辑封装输出;在封装输出单元完成报文转发后,FBM单元释放包缓存RAM中存储该报文的缓存。
如图2所示,实际应用中,FCB可由多播复制单元复制到n个输出端口,并且每个端口可复制到多个用户FCB*x1,FCB*x2,...,FCB*xn,经过CAR和QM单元,每个端口输出多个用户FCB*y1,FCB*y2,...,FCB*yn,其余的被丢弃,其中xi代表第i个端口复制的用户数、yi代表第i个端口经过CAR和QM单元处理后剩余的用户数。为了简化描述,在图2和以后的表述中,所有端口的x和y被认为是相同的。
为了保证报文内容一致,必须等从同一buffr读取的最后一份报文输出后才回收该buffr。为此FBM单元采用权重(weight)方式回收buffer:累加从同一个buffr读取的报文的权重并将累加的值作为该buffer权重,只有buffer权重达到最大值才进行回收。上述的buffer权重是这样计算的:根据“端口数×每端口复制最大的用户数”确定buffer权重最大值,即为(n×max_customer),如果共复制了z份报文,则这z份报文的权重值分别记为1,1,...,1,(n×max_customer-z+1),FBM单元把CAR和QM单元所丢弃的报文的权重、封装输出单元转发报文的权重累加到对应buffer的权重,当权重累加到n×max_customer后,释放该buffer。
现有技术的缓存权重的处理需占用大量的存储资源。例如,假设:输出端口数n=4,每个端口复制最大客户数max_customer=1k,QM队列深度=512,FBM单元所管理的包缓存RAM中buffer总数=4k。则
1、权重最大值为4×1k=4k,因此权重占用的bit数:12。
2、因为所有报文权重需要传到封装输出单元以释放buffer,所以每份复制报文的权重信息都需要入队,队列中权重占用:512×12bit=6k bit。
3、FBM单元维护buffer的权重:4k×12bit=48k bit。
综上,共需要54k bit的存储资源。
发明内容
本发明的目的在于提供一种多播调度中缓存权重的处理方法,以减少现有技术多播调度中缓存权重处理有关的数据量,节省存储资源。
本发明通过以下技术方案实现:
一种多播调度中缓存权重的处理方法,该方法包括,
a)根据输出端口数设定缓存权重最大值;
b)在复制帧控制块时,在每份复制的帧控制块中设置用以标识当前输出端口最后一份帧控制块的最后标志;
c)帧控制块复制完成后,设置缓存权重为权重最大值减去步骤b中参与复制的端口数;
d)根据最后标志,判断当前被转发的帧控制块是否为当前输出端口的最后一份帧控制块,如果是,则执行步骤e;否则返回执行步骤d;
e)将缓存权重累加1,然后判断当前权重是否达到最大值,如果是,则结束,否则返回执行步骤d。
所述步骤d之前进一步包括,d1)对复制后的帧控制块进行接入速率限制和队列调度处理,在对帧控制块进行丢弃处理时,判断该帧控制块是否为当前输出端口的最后一份帧控制块,如果是,则执行步骤e;否则返回执行步骤d1,直至所有帧控制块的接入速率限制和队列调度处理完毕。
所述步骤b之前进一步包括,对帧控制块进行接入速率限制处理,将丢弃的帧控制块打上丢弃标志,多播复制时丢弃具有丢弃标志的帧控制块并释放缓存。
所述步骤b进一步包括,在每份复制的帧控制块中还设置参与复制的端口的端口权重,其所需位数由缓存权重最大值决定。
所述的端口权重的设置方法为:设置前m-1个参与复制的端口的端口权重为1,第m个参与复制的端口的端口权重为:缓存权重最大值-m+1;其中m为参与复制的端口数;
所述步骤c进一步包括,根据所设置的端口权重获取参与复制的端口数,然后删除帧控制块中端口权重。
所述最后标志占用1位数据。
步骤d1中所述对复制后的帧控制块进行接入速率限制和队列调度处理包括:在队列中预留一个空间,在端口的非最后一份帧控制块入队后,将端口的最后一份帧控制块存入该预留空间。
在所述输出端口处增加多个内部端口时,所述缓存权重最大值设置为输出端口数与内部端口数之和。
本发明为多播调度中buffer权重的处理方法,假设参数如下:输出端口数n=4,每个端口复制最大客户数max_customer=1k,QM队列深度=512,FBM单元buffer总数=4k,其积极效果是:根据输出端口数设定缓存权重最大值,由于权重最大值等于端口数4,缓存权重仅占用2bit,FBM单元维护buffer的权重共需4k×2bit=8k bit;在复制帧控制块时,在每份复制的帧控制块中设置最后标志,最后标志占1bit,在入队时,帧控制块中仅有最后标志而无权重,队列中占用512×1bit=0.5k bit。综上,本发明的多播调度中buffer权重的处理方法共需要8.5k bit的存储资源,而且多播复制后续单元不必关心权重,简化了buffer释放操作。
附图说明
图1为多播的处理流程框图。
图2为现有技术多播buffer释放示意图。
图3为本发明多播buffer释放示意图。
图4为缓存权重计算的流程图。
图5为FCB数据结构改进示意图。
图6为多播Last报文入队处理示意图。
具体实施方式
为了减少现有技术多播调度中buffer权重处理有关的数据量,节省系统存储资源,考虑到实际上多播报文的队列调度只是输出端口之间的优先级调度,即不保证各端口之间输出报文的顺序,但是同一端口的多播报文的优先级通常是一致的,复制到同一端口的多播报文可以保证是顺序输出的。这样就可以按照输出端口数来确定buffer权重值,只要保证每端口的最后一份复制报文输出(或者丢弃)后再回收buffer即可。
在本发明中,缓存权重最大值被设定为与输出端口数相同,参见图3本发明多播buffer释放示意图。在FCB复制完成后,设置复制缓存报文的端口的权重为1,设置缓存权重为权重最大值减去复制缓存报文的端口数,这样在后续单元中就不需要考虑权重,权重也不需要进入队列,在接入速率限制和队列调度单元丢弃报文时,累加所有报文被丢弃的端口的权重,在封装输出单元转发报文时,累加所有报文被转发的端口的权重,当缓存的权重累加到最大值后,释放该缓存。
如图4所示,以下说明具体步骤:
步骤1:根据多播复制单元的输出端口数,即图3中多播复制单元的输出端口数,确定包缓存RAM中缓存权重最大值,权重最大值等于输出端口数;
步骤2:多播复制单元在复制帧控制块时,在每份复制的帧控制块中设置端口权重和最后标志,其中端口权重数值所需位数由权重最大值决定,具体求法是:
最后标志用以标识输出端口的最后一份帧控制块,占用1位数据,端口的最后一份帧控制块中的最后标志为1,该端口其余帧控制块中的最后标志为0。设置的端口权重分别为1,1,...,1,(缓存权重最大值-参与复制的端口数+1),这样就可根据端口权重获得参与复制的端口数。例如,多播复制单元的输出端口数为6,如果参与复制的端口数为4,则各FCB的端口权重为1,1,1,3;这时FBM根据端口权重的规律可知当前参与复制的端口数为4。
步骤3:在多播复制单元将FCB复制完成后,设置缓存权重为权重最大值减去参与复制的端口数,FCB中的端口权重都设为1,由于端口权重在以后的处理中都为1,因此无需再保留在帧控制块中,删除帧控制块中的端口权重;
步骤4:接入速率限制和队列管理单元在对FCB进行丢弃处理时,如果如果该帧控制块中最后标志为0,继续处理下一个FCB,如果为1,说明此FCB是其所属端口的最后一份FCB,该端口的所有FCB已全部处理完毕,这时把缓存权重累加1,空闲缓存管理单元判断当前缓存权重是否达到最大值,如果是,则释放该缓存,如果没有达到最大值,判断接入速率限制和队列管理单元是否已经处理完所有FCB,如果没有,接入速率限制和队列管理单元继续处理下一个FCB,如果已经处理完,封装输出单元开始转发报文;封装输出单元在转发报文时,如果该帧控制块中最后标志为0,继续处理下一个FCB,如果该帧控制块中最后标志为1,说明该端口的所有报文在此报文转发后已经全部被转发,把缓存权重累加1,空闲缓存管理单元判断当前缓存权重是否达到最大值,如果是,则释放该缓存,如果没有达到最大值,封装输出单元继续处理下一个FCB。
本发明帧控制块中所增加的端口权重和最后标志如图5所示。例如,假设:输出端口数n=4,每个端口复制最大客户数max_customer=1k,QM队列深度=512,FBM单元所维护的buffer总数=4k;在现有技术中,帧控制块中报文权重占用bit数为12,且这一数据在帧控制块中始终保持不变。本发明中,多播复制单元复制完成前,帧控制块中端口权重由其最大值即端口数4决定,占2bit,最后标志占1bit,共占用3bit,而在多播复制单元复制完成后,设置缓存权重为权重最大值减去复制缓存报文的端口数,复制缓存报文的端口的权重都设为1,删除帧控制块中端口权重仅保留最后标志,此时FCB中缓存权重处理所需数据仅占1bit。
如图6所示,在本发明中,接入速率限制和队列管理单元需要进行下述处理:在队列中预留一个空间,存放最后标志为1的帧控制块,以确保对于同一端口的帧控制块,只要有最后标志为0的帧控制块入队了,最后标志为1的帧控制块也入队,即接入速率限制和队列管理单元不能提前丢弃最后标志为1的报文,以免引起先前入队的报文在封装输出单元读缓存出错。
本发明的多播调度中缓存权重的处理方法还适用在输出端口处增加多个内部端口(比如:交CPU)的情况,此时权重最大值为端口数+内部端口数,增加的内部端口的权重也设为1,在转发给各内部端口后,把缓存权重累加1,其余的过程与步骤4相同。
在上述实施例中,可不需要带宽接入限制,也可改变带宽接入限制、多播处理的顺序。例如,先进行带宽接入限制,再进行多播复制,这时,对于CAR单元丢弃的FCB打上丢弃标志,在多播单元直接丢弃并释放缓存。由于本发明的缓存权重只与多播单元复制时的输出端口数有关,因此无论以何种顺序处理,本发明提供的缓存权重处理方法均可适用。
Claims (9)
1、一种多播调度中缓存权重的处理方法,其特征在于,该方法包括以下步骤:
a)根据输出端口数设定缓存权重最大值;
b)在复制帧控制块时,在每份复制的帧控制块中设置用以标识当前输出端口最后一份帧控制块的最后标志;
c)帧控制块复制完成后,设置缓存权重为权重最大值减去步骤b中参与复制的端口数;
d)根据最后标志,判断当前被转发的帧控制块是否为当前输出端口的最后一份帧控制块,如果是,则执行步骤e;否则返回执行步骤d;
e)将缓存权重累加1,然后判断当前权重是否达到最大值,如果是,则释放该缓存,否则返回执行步骤d。
2、根据权利要求1所述的多播调度中缓存权重的处理方法,其特征在于,所述步骤d之前进一步包括,d1)对复制后的帧控制块进行接入速率限制和队列调度处理,在对帧控制块进行丢弃处理时,判断该帧控制块是否为当前输出端口的最后一份帧控制块,如果是,则执行步骤e;否则返回执行步骤d1,直至所有帧控制块的接入速率限制和队列调度处理完毕。
3、根据权利要求1所述的多播调度中缓存权重的处理方法,其特征在于,所述步骤b之前进一步包括,对帧控制块进行接入速率限制处理,将丢弃的帧控制块打上丢弃标志,多播复制时丢弃具有丢弃标志的帧控制块并释放缓存。
4、根据权利要求1,2或3所述的多播调度中缓存权重的处理方法,其特征在于,所述步骤b进一步包括,在每份复制的帧控制块中还设置参与复制的端口的端口权重,其所需位数由缓存权重最大值决定。
5、根据权利要求4所述的多播调度中缓存权重的处理方法,其特征在于,设置前m-1个参与复制的端口的端口权重为1,第m个参与复制的端口的端口权重为:缓存权重最大值-m+1;其中m为参与复制的端口数。
6、根据权利要求1所述的多播调度中缓存权重的处理方法,步骤c进一步包括,根据所设置的端口权重获取参与复制的端口数,然后删除帧控制块中端口权重。
7、根据权利要求1所述的多播调度中缓存权重的处理方法,其特征在于,所述最后标志占用1位数据。
8、根据权利要求2所述的多播调度中缓存权重的处理方法,其特征在于,步骤d1中所述对复制后的帧控制块进行接入速率限制和队列调度处理包括:在队列中预留一个空间,在端口的非最后一份帧控制块入队后,将该端口的最后一份帧控制块存入该预留空间。
9、根据权利要求1所述的多播调度中缓存权重的处理方法,其特征在于,在所述输出端口处增加多个内部端口时,所述缓存权重最大值设置为输出端口数与内部端口数之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100872006A CN100426792C (zh) | 2005-07-27 | 2005-07-27 | 多播调度中缓存权重的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100872006A CN100426792C (zh) | 2005-07-27 | 2005-07-27 | 多播调度中缓存权重的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1852225A true CN1852225A (zh) | 2006-10-25 |
CN100426792C CN100426792C (zh) | 2008-10-15 |
Family
ID=37133694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100872006A Active CN100426792C (zh) | 2005-07-27 | 2005-07-27 | 多播调度中缓存权重的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100426792C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101548498B (zh) * | 2006-11-29 | 2012-11-21 | 艾利森电话股份有限公司 | 具有线性独立数据分组编码的可靠多播 |
WO2014183689A1 (zh) * | 2013-11-11 | 2014-11-20 | 中兴通讯股份有限公司 | 多播缓存的释放方法及装置 |
CN113285891A (zh) * | 2020-02-20 | 2021-08-20 | 瑞昱半导体股份有限公司 | 用于过载式网络交换的带宽分配装置与相关网络交换装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689505A (en) * | 1996-01-16 | 1997-11-18 | Lucent Technologies Inc. | Buffering of multicast cells in switching networks |
US6219352B1 (en) * | 1997-11-24 | 2001-04-17 | Cabletron Systems, Inc. | Queue management with support for multicasts in an asynchronous transfer mode (ATM) switch |
US6584517B1 (en) * | 1999-07-02 | 2003-06-24 | Cypress Semiconductor Corp. | Circuit and method for supporting multicast/broadcast operations in multi-queue storage devices |
CN1184777C (zh) * | 2002-04-17 | 2005-01-12 | 华为技术有限公司 | 以太网交换芯片传输数据过程中缓存的管理和分配方法 |
CN1298147C (zh) * | 2003-11-18 | 2007-01-31 | 中兴通讯股份有限公司 | 一种在组播数据包转发时实现减少内存占用空间的方法 |
-
2005
- 2005-07-27 CN CNB2005100872006A patent/CN100426792C/zh active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101548498B (zh) * | 2006-11-29 | 2012-11-21 | 艾利森电话股份有限公司 | 具有线性独立数据分组编码的可靠多播 |
WO2014183689A1 (zh) * | 2013-11-11 | 2014-11-20 | 中兴通讯股份有限公司 | 多播缓存的释放方法及装置 |
CN104639444A (zh) * | 2013-11-11 | 2015-05-20 | 中兴通讯股份有限公司 | 多播缓存的释放方法及装置 |
CN104639444B (zh) * | 2013-11-11 | 2019-10-15 | 南京中兴软件有限责任公司 | 多播缓存的释放方法及装置 |
CN113285891A (zh) * | 2020-02-20 | 2021-08-20 | 瑞昱半导体股份有限公司 | 用于过载式网络交换的带宽分配装置与相关网络交换装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100426792C (zh) | 2008-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1196293C (zh) | 在adsl通信中用于丢弃和再生确认分组的方法和系统 | |
CN1225874C (zh) | 利用时序安排和头压缩降低分组延迟的方法和设备 | |
US6888848B2 (en) | Compact segmentation of variable-size packet streams | |
Jiang et al. | Inter-receiver fairness: A novel performance measure for multicast ABR sessions | |
WO2012162949A1 (zh) | 一种报文重组重排序方法、装置和系统 | |
CN1801778A (zh) | 一种网络数据流的多维队列调度与管理系统 | |
CN1596526A (zh) | 在数据通信网络中管理拥挤的方法和设备 | |
CN1658575A (zh) | 一种在sgsn网络处理器中提高服务质量的方法 | |
CN1658611A (zh) | 一种保证无线局域网中的服务质量方法 | |
CN102891809A (zh) | 多核网络设备报文按接口保序方法及系统 | |
CN1949695A (zh) | 一种帧数据传输中错帧丢弃的方法和系统 | |
WO2010072122A1 (zh) | 一种传输报文的方法、端口和系统 | |
CN1852225A (zh) | 多播调度中缓存权重的处理方法 | |
CN102882809B (zh) | 一种基于报文缓存的网络限速方法及装置 | |
CN1152313C (zh) | 一种基于随机早期检测的逐节拥塞控制方法 | |
CN1518296A (zh) | 一种支持多业务的综合队列调度的实现方法 | |
CN1384673A (zh) | 一种适合实现路由器服务质量的综合业务中的调度方法 | |
CN107196879B (zh) | Udp报文的处理方法、装置以及网络转发装置 | |
CN1897561A (zh) | 一种保护voip数字信号处理通道的方法 | |
CN111917664A (zh) | 一种队列管理方法及系统 | |
CN1416232A (zh) | 通用分组无线业务中隧道数据包业务优先级控制方法 | |
CN1389799A (zh) | 多优先级最佳动态域值缓存管理算法 | |
CN1146188C (zh) | 因特网接入服务器的选择性计费方法 | |
CN1402472A (zh) | 基于网络处理器平台实现的动态部分缓冲共享方法 | |
CN1305323C (zh) | 一种实现高级链路控制规程帧处理的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |