CN101150490B - 一种单播和多播业务数据包的队列管理方法和系统 - Google Patents
一种单播和多播业务数据包的队列管理方法和系统 Download PDFInfo
- Publication number
- CN101150490B CN101150490B CN2006100627672A CN200610062767A CN101150490B CN 101150490 B CN101150490 B CN 101150490B CN 2006100627672 A CN2006100627672 A CN 2006100627672A CN 200610062767 A CN200610062767 A CN 200610062767A CN 101150490 B CN101150490 B CN 101150490B
- Authority
- CN
- China
- Prior art keywords
- cell
- queue
- multicast
- node
- bag
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了通信技术领域中一种单播和多播业务数据包的队列管理方法和系统,通过在缓冲队列中插入影子信元的方法来表示多播包信元,解决了单播业务和多播业务需要分别进行管理的问题。本发明使单播业务和多播业务在网络节点中能充分共享内存,并且可以对单多播带宽资源不加区分的管理。
Description
技术领域
本发明涉及通信技术领域,尤其涉及通信网络中单播和多播业务数据包的队列管理方法和系统。
背景技术
在包交换(Packet Switch)通信网络中,会出现丢包、延时和抖动的情况,为了解决这些问题,保证业务的服务质量(Quality of Service,QoS),提出了服务质量的两种模型。
在IntServ模型下,针对每一条用户业务,通过信令向网络申请具有特定服务质量的服务,网络在流量参数描述的范围内,预留资源以承诺满足该请求。
在DiffServ模型下,当网络出现拥塞时,根据业务的不同服务质量等级约定,有差别地进行流量控制和转发来解决拥塞问题。当具有相同服务质量等级(例如根据包中的DSCP即DiffServ CodePoint字段)的业务进入采用DiffServ模型的网络中时,会被进行业务流聚合,汇聚成一个行为集合(BehaviorAggregate),网络中的节点对特定的行为集合使用不同的转发行为(PHB,Per-Hop Behavior),这包括快速转发(Expedited Forwarding)、确保转发(Assured Forwarding)和尽力传送(Best Effort)。
在一个网络节点内部,通过存储转发方式(Store and Forward)转发数据包,不同服务质量的业务流会存储到不同的优先级队列,转发时根据队列的优先级进行不同的处理。一般来说,如果队列的数量不多,可以用FIFO(FirstIn First Out)来实现这些队列,各个队列具有独立的存储空间,缺点是不能根据需求动态可配。当业务流的数目较多时,队列必须根据业务流的流量改变深度,此时为保证充分利用存储空间,一般采用共享存储的方式(例如链表)来实现各个队列。
一般情况下,业务流中包的大小并不是固定长度的,有可能在一个较大范围内变化,因此如果队列存储转发的是一个包,当包的长度较大时会产生较大的时延。为了解决这个问题,通常会把包切分成若干个固定长度的数据块,为方便起见,以下简称为信元(Cell)。如果包被切片后剩余的最后一个数据块的长度小于信元长度,也占用一个信元的存储空间。
为了管理存储转发的数据包以及切片后的信元,网络节点中要维护包管理队列和信元管理队列。当业务流的数据包为单播包时,使用信元管理队列对应着一个业务流,所有数据包的信元在信元管理队列中依据数据包的顺序和该信元在数据包中的顺序依次排列。当业务流的数据包为多播包时,需要用到包管理队列,包管理队列的每个节点对应着业务流中的一个数据包,包管理队列节点包含有指向该包信元管理队列头节点的指针(所指向的信元管理队列对应着该数据包)和指向下一个包管理队列节点的指针。信元管理队列节点包含有指向下一个信元管理队列节点的指针、信元位置标志(标明是包中第一个信元、最后一个信元还是中间信元)、多播引用计数和信元存储位置信息。由于单播包只使用信元管理队列,多播包使用包管理队列和信元管理队列,因此单播业务和多播业务需要分别进行管理。
发明内容
本发明的目的在于提供统一管理单播包和多播包的方法,使单播业务和多播业务在网络节点中能充分共享内存,并且可以对单多播带宽资源不加区分的管理。
本发明的目的是通过以下技术方案实现的:
一种单播和多播业务数据包的队列管理方法,包括:
切分单播包为单播信元,依次插入到该单播包的目的缓冲队列尾部;
切分多播包为多播信元,组成该多播包的信元队列,同时在该多播包的目的缓冲队列尾部插入该多播包的影子信元;
从当前缓冲队列头部取出信元并判断信元类型,如果是单播信元则进行调度,如果是影子信元则调度该影子信元所属多播包的信元队列。
所述调度该影子信元所属多播包的信元队列的方法包括:
当所述影子信元是其所属多播包的最后一个待处理影子信元时,从该多播包的信元队列中依次取出信元并进行调度;
当所述影子信元不是其所属多播包的最后一个待处理影子信元时,从该多播包的信元队列中依次复制信元并进行调度。
所述调度该影子信元所属多播包的信元队列的方法包括:
从所述影子信元所属多播包的信元队列中依次复制信元并进行调度;
当所述影子信元是其所属多播包的最后一个待处理影子信元时,删除该多播包的信元队列。
一种单播和多播业务数据包的队列管理系统,包括至少一个缓冲队列,还包括:
信元入队列模块,用于切分单播包为单播信元,依次插入到该单播包的目的缓冲队列尾部,以及用于切分多播包为多播信元,组成该多播包的信元队列,同时在该多播包的目的缓冲队列尾部插入该多播包的影子信元;
信元调度模块,用于从当前缓冲队列头部取出信元,调度其中的单播信元,调度其中的影子信元所属多播包的信元队列。
本发明的有益效果为:统一对单播包和多播包进行管理,当业务流中同时存在单播业务和多播业务时,业务流的带宽管理更加方便。
附图说明
图1是本发明一种系统实施例的示意图。
图2是本发明一种系统实施例的信元节点结构示意图。
图3是本发明一种方法实施例的示意图。
具体实施方式
本发明的核心思想是提供一种统一管理单播包和多播包的方法和系统,使单播业务和多播业务在网络节点中能共享内存,并且可以对单多播带宽资源不加区分的管理。
本发明提供了一种单播和多播业务数据包的队列管理系统,为了便于理解,下面根据具体实施例进一步描述,如图1所示,该系统实施例包括:
信元入队列模块,用于切分单播包为单播信元,依次插入到该单播包的目的缓冲队列尾部,以及用于切分多播包为多播信元,组成该多播包的信元队列,同时在该多播包的目的缓冲队列尾部插入该多播包的影子信元;
信元调度模块,用于从当前缓冲队列头部取出信元,调度其中的单播信元,调度其中的影子信元所属多播包的信元队列;
至少一个缓冲队列(Buffer Queue),用于存储转发信元。缓冲队列的划分可以基于端口、业务流或其它方式。多播包的信元队列用于存储多播包的信元,每个多播包都有一个信元队列(Cell Queue)。由于缓冲队列和管理它的缓冲队列管理链表一一对应,因此图1中只显示出缓冲队列管理链表,没有显示出缓冲队列,同样道理,图1中也没有显示信元队列。
一个单播包的信元只能进入同一个缓冲队列,我们称该缓冲队列为该单播包的目的缓冲队列。在入端口镜像时,单播包需要复制一份到镜像端口,此时单播包可以被当作是多播数为2的多播包处理。
一个多播包的信元会进入多个缓冲队列,我们称这些缓冲队列为该多播包的目的缓冲队列。在入端口镜像时,多播包需要复制一份到镜像端口,此时多播包的多播计数比实际情况要多1。
在某个时刻只可能有一个缓冲队列被调度,我们把这个缓冲队列称为当前缓冲队列。
该系统实施例还包括:缓冲队列管理链表,用于管理缓冲队列;信元队列管理链表,用于管理信元队列。在一些实施例中,可以包括数组或者其它数据结构用于管理缓冲队列和信元队列。
图1中描述出三个缓冲队列管理链表:链表I、链表II和链表III,这三个链表分别对应着三个缓冲队列(在图中没有显示)。链表I中从表头到表尾依次是多播包D的影子信元节点201和单播包C的单播信元节点205和204(对应单播包C切分后的2个信元)。链表II中从表头到表尾依次是单播包B的单播信元节点212和211(对应单播包B切分后的2个信元)和多播包E的影子信元节点208。链表III中从表头到表尾依次是单播包A的单播信元节点203、213和214(对应单播包A切分后的3个信元)、多播包D的影子信元节点210和多播包E的影子信元节点209。
图1中还描述出多播包D和多播包E的信元队列管理链表,这两个管理链表分别对应着多播包D的信元队列和多播包E的信元队列(在图中没有显示)。可以看到多播包D被切分成3个信元,多播包E被切分成2个信元。
图1中的缓冲队列管理链表和信元队列管理链表的管理节点都采用相同的数据结构(这样可以方便芯片统一处理),这些管理节点和信元是一一对应的。缓冲队列和信元队列中的信元本身没有信息来表示它们在队列中的先后次序,这种信元的先后次序是由对应的管理节点在管理链表中的先后次序确定的。对这些管理节点的操作代表了对其对应的信元的操作。
单播信元是指单播包切分后的信元,对应的管理节点称为单播信元节点。多播信元是指多播包切分后的信元,对应的管理节点称为多播信元节点。影子信元(Shadow Cell)是指插入在缓冲队列中用来表示该插入位置存在多播包信元的一种特殊信元,相当于多播包的信元在缓冲队列中的投影,因此称为影子信元。在实现时,可以不生成一个实际的影子信元数据,而只需要在缓冲队列管理链表中对应位置插入一个影子信元管理节点(简称影子信元节点)。因为处理影子信元实际是对影子信元所属多播包所有信元的处理,因此缓冲队列中影子信元的位置上也相当于存在一个多播包的位置,我们称为多播包影子。单播信元节点、多播信元节点和影子信元节点这些管理节点统称为信元节点。
下面进一步解释信元节点的数据结构,如图2所示,其中:
PTR_UC为单播指针,指向本信元节点的后续信元节点。例如,图1中信元节点210的PTR_UC指针指向后续信元节点209,信元节点207的PTR_UC指针指向后续信元节点206;
PTR_MC为多播指针,在后续信元节点为单播信元节点时指向该后续单播信元节点,例如图1中缓冲队列管理链表I的信元节点205的后续信元节点204为单播信元节点,因此信元节点205的PTR_MC指针指向信元节点204;在后续信元节点为多播信元节点时指向该后续多播信元节点,例如图1中多播包E的信元管理队列链表中,信元节点207的PTR_MC指针指向后续信元节点206;在后续信元节点为影子信元节点时指向该影子信元节点所属多播包的信元队列管理链表中的多播信元节点,例如图1中缓冲队列管理链表III的信元节点210的后续信元节点209为影子信元节点,因此信元节点210的PTR_MC指针指向信元节点209所属多播包E中的信元节点207;
MC_CNT为多播计数,默认为0,当信元节点是多播包的信元队列管理链表头节点时,该计数值为该多播包当前的影子信元节点数目。该字段也可能不存在,因为也可以单独采用寄存器来存放多播包当前的影子信元节点数目;
MC_RES为多播保留标记,默认为不保留。该字段用于标记出一个多播信元队列是需要保留还是可以释放;
PTR_D为信元数据地址信息,该字段也可能不存在,因为有时也可以利用信元节点的地址信息来计算出信元数据的地址信息;
MISC为其它信息,根据具体实现和具体业务环境而定,该字段也可能不存在。
为了能从每个缓冲队列头中取出信元,信元调度模块针对每个缓冲队列保存了两个指针,一个是头信元节点指针,指向缓冲队列管理链表头节点,一个是当前信元节点指针,指向当前待处理信元对应的信元节点。当头信元节点指针指向单播信元节点时,当前信元节点指针指向该单播信元节点,例如图1中所示,头信元节点指针103指向缓冲队列管理链表III头节点203,当前信元指针104同样指向信元节点203;当头信元节点指针指向影子信元节点时,当前信元节点指针指向该影子信元节点所属多播包的信元队列管理链表中的当前待处理节点。例如图1中所示,头信元节点指针101指向缓冲队列管理链表I头节点201,当前信元指针102指向头节点201所属多播包D的信元队列管理链表中的信元节点202,这表示当前待处理的是信元节点202所对应的信元。
为了把信元插入到缓冲队列尾部,信元入队列模块针对每个缓冲队列保存了一个尾信元节点指针,指向缓冲队列管理链表尾节点。例如图1中所示,尾信元节点指针301指向缓冲队列管理链表I尾节点204。
本发明提供一种单播和多播业务数据包的队列管理方法,下面结合图1所示系统说明实施例。
方法实施例1情况下,当一个单播包C需要存储转发时,包括以下步骤:
信元入队列模块切分单播包C为两个单播信元,依次插入到单播包C的目的缓冲队列尾部。一般情况下,在切分成信元后,会生成和信元对应的单播信元节点来对这些信元进行管理,且依次插入这些单播信元节点到单播包C的目的缓冲队列对应的缓冲队列管理链表I的尾部。如图1所示,本实施例中会生成205和204两个单播信元节点,分别对应单播包切分后的第一个单播信元和第二个单播信元。信元入队列模块依次插入,即先插入信元节点205,然后插入信元节点204到缓冲队列管理链表I尾部,相当于把对应信元依次插入到单播包C的目的缓冲队列。插入前,信元入队列模块维护的缓冲队列管理链表I的尾信元节点指针301指向影子信元节点201,影子信元节点201的PTR_UC和PTR_MC指针都为NULL;插入后,指针301指向单播信元节点204,影子信元节点201的PTR_UC和PTR_MC指针指向信元节点205;信元节点205的PTR_UC和PTR_MC指针指向信元节点204。
当信元调度模块调度到单播包C的目的缓冲队列时,从该当前缓冲队列(即单播包C的目的缓冲队列)头部取出信元并判断信元类型,如果是单播信元则调度该单播信元,如果是影子信元则调度该影子信元所属多播包的信元队列。一般情况下,是从和当前缓冲队列对应的缓冲队列管理链表(即链表I)的头部取出信元节点,判断该信元节点对应信元的类型。当信元调度模块将要取出单播包C的信元时,如图3所示,信元调度模块的头信元节点指针101指向缓冲队列管理链表I头节点205,当前信元指针102指向头节点205。信元调度模块通过比较头信元节点指针101和当前信元节点指针102是否相等来判断当前待处理信元的类型,由于101和102指向节点相同,两者相等,因此可以判定当前待处理信元为单播信元,此时信元调度模块从缓冲队列管理链表I中取出信元节点205进行调度。取出信元节点205后,指针101和102都指向信元节点204。根据不同的调度算法,信元调度模块可能继续处理信元节点204,也可能会去处理其它缓冲队列管理链表中的信元节点。当信元调度模块处理信元节点204时,过程和处理信元节点205类似,有所不同的是:当发现信元节点204的PTR_UC和PTR_MC都为NULL时,说明没有后续信元节点,这表示缓冲队列管理链表I所对应的缓冲队列已经为空,此时把指针101和102都设为NULL。
方法实施例2情况下,当一个多播包E需要存储转发时,包括以下步骤:
信元入队列模块切分多播包E为两个多播信元,组成该多播包的信元队列,同时在该多播包的目的缓冲队列尾部插入该多播包的影子信元。一般情况下,在切分成信元后,会生成和信元对应的多播信元节点来对这些信元进行管理,并组成和多播包E的信元队列对应的信元队列管理链表,同时生成和影子信元对应的影子信元节点,在和多播包E的目的缓冲队列对应的缓冲队列管理链表(包括链表II和链表III)的尾部插入该影子信元节点。如图1所示,会对应生成206和207两个多播信元节点,它们会组成多播包E的信元队列管理链表,即信元节点207的PTR_UC和PTR_MC都指向信元节点206,信元接点206的PTR_UC和PTR_MC都为NULL,这相当于把多播包E的信元组成多播包的信元队列,作为多播信元队列管理链表头节点,207的MC_RES字段此时设置为多播保留。接着,信元入队列模块创建多播包E的影子信元节点208,并在缓冲队列管理链表II尾部插入该影子信元节点,这相当于在对应的目的缓冲队列尾部插入多播包E的影子信元,此时需要对信元队列管理链表头节点207的MC_CNT字段计数加1(因此该字段值由0变为1)。插入前,信元入队列模块维护的缓冲队列管理链表II的尾信元节点指针302指向信元节点211,信元节点211的PTR_UC和PTR_MC指针都为NULL;插入后,指针302指向影子信元节点208,信元节点211的PTR_UC指针指向影子信元节点208,信元节点211的PTR_MC指针指向多播包E的信元队列管理链表头节点207。信元入队列模块继续创建多播包E的影子信元节点209,并在缓冲队列管理链表III尾部插入该影子信元节点,这相当于在对应的目的缓冲队列尾部插入多播包E的影子信元,此时需要对信元队列管理链表头节点207的MC_CNT字段计数加1(因此该字段值由1变为2)。插入前,信元入队列模块维护的缓冲队列管理链表III的尾信元节点指针303指向信元节点210,信元节点210的PTR_UC和PTR_MC指针都为NULL;插入后,指针303指向影子信元节点209,信元节点210的PTR_UC指针指向影子信元节点209,信元节点210的PTR_MC指针指向多播包E的信元队列管理链表头节点207。当信元入队列模块插入两个影子信元节点后,发现多播复制处理完毕,因此把信元队列管理链表头节点207的MC_RES设置为多播不保留;
当信元调度模块调度到多播包E的某一目的缓冲队列(此时成为当前缓冲队列)时,从该当前缓冲队列头部取出信元并判断信元类型,如果是单播信元则调度该单播信元,如果是影子信元则处理该影子信元所属多播包的信元队列。一般情况下,是从和当前缓冲队列对应的缓冲队列管理链表(例如链表3)的头部取出信元节点,判断该信元节点对应信元的类型。当信元调度模块将要取出多播包E的影子信元209时,如图3所示,信元调度模块的头信元节点指针104指向缓冲队列管理链表III头节点209,当前信元节点指针103指向多播包E的信元队列管理链表头节点207。信元调度模块通过比较头信元节点指针104和当前信元节点指针103是否相等来判断当前待处理信元的类型,由于104和103指向节点不相同,两者不相等,因此可以判定当前待处理信元为影子信元,此时信元调度模块从缓冲队列管理链表III中取出信元节点209,同时处理指针103指向的信元节点209所属多播包(即多播包E)的信元队列管理链表。首先判断当前取出的影子信元是否是多播包E的最后一个待处理影子信元,即先判断头节点207的MC_RES字段是否为多播保留,当该字段为多播不保留时再判断其MC_CNT字段是否为1。由于信元节点207的MC_CNT字段为2时,说明当前取出的影子信元不是多播包E的最后一个待处理影子信元。于是信元调度模块把信元节点207的MC_CNT字段减1由2变为1,同时依次复制信元节点207对应的信元和信元节点206对应的信元进行调度,根据不同的调度算法,两个信元的调度之间可能存在也可能不存在其它信元的调度。在后来的某个时刻,信元调度模块取出多播包E的影子信元节点208进行处理,和影子信元节点209处理过程类似,有所不同的是:在判断当前取出的影子信元是多播包E的最后一个待处理影子信元(此时头节点207的MC_CNT字段为1,MC_RES字段为多播不保留)后,信元调度模块直接调度多播包E的信元队列管理链表中的信元节点即信元节点207和信元节点206对应的信元,根据不同的调度算法,两个信元的调度之间可能存在也可能不存在其它信元的调度。
方法实施例3情况下,当一个多播包E需要存储转发时,步骤和实施例2类似,区别是:
在信元调度模块取出多播包E的影子信元节点209进行处理时,信元入队列模块还没有在缓冲队列管理链表中插入影子信元节点208,这样头节点207的MC_RES字段为多播保留。即使此时MC_CNT字段为1,也可以确定当前影子信元并不是多播包E的最后一个影子信元,这时信元调度模块依次复制信元节点207对应的信元和信元节点206对应的信元进行调度。
方法实施例4情况下,当一个多播包E需要存储转发时,步骤和实施例2类似,区别是:
在信元调度模块取出多播包E的影子信元节点209进行处理时,信元调度模块依次复制信元节点207对应的信元和信元节点206对应的信元进行调度,同时头节点207的MC_CNT字段减1由2变为1。接着判断当前取出的影子信元是否多播包E的最后一个待处理影子信元,即先判断头节点207的MC_RES字段是否为多播不保留,当该字段为多播不保留时再判断头节点207的MC_CNT字段是否为0。由于此时头节点207的MC_CNT字段为1,因此当前影子信元必然不是多播包E的最后一个影子信元,此时不删除多播包E的信元队列管理链表和对应的信元。
在信元调度模块取出多播包E的影子信元节点208进行处理时,信元调度模块依次复制信元节点207对应的信元和信元节点206对应的信元进行调度,同时头节点207的MC_CNT字段减1由1变为0。接着判断当前取出的影子信元是否多播包E的最后一个待处理影子信元,即先判断头节点207的MC_RES字段是否为多播不保留。当该字段为多播不保留时,再判断头节点207的MC_CNT字段是否为0,由于该字段为0,说明当前影子信元是多播包E的最后一个待处理影子信元,因此删除多播包E的信元队列管理链表和对应的信元;当该字段为多播保留时,不删除多播包E的信元队列管理链表和对应的信元。
以上实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。
Claims (10)
1.一种单播和多播业务数据包的队列管理方法,其特征在于包括:
切分单播包为单播信元,依次插入到该单播包的目的缓冲队列尾部;
切分多播包为多播信元,组成该多播包的信元队列,同时在该多播包的目的缓冲队列尾部插入该多播包的影子信元;
从当前缓冲队列头部取出信元并判断信元类型,如果是单播信元则进行调度,如果是影子信元则调度该影子信元所属多播包的信元队列。
2.根据权利要求1所述的单播和多播业务数据包的队列管理方法,其特征在于,所述调度该影子信元所属多播包的信元队列的方法包括:
当所述影子信元是其所属多播包的最后一个待处理影子信元时,从该多播包的信元队列中依次取出信元并进行调度;
当所述影子信元不是其所属多播包的最后一个待处理影子信元时,从该多播包的信元队列中依次复制信元并进行调度。
3.根据权利要求1所述的单播和多播业务数据包的队列管理方法,其特征在于,所述调度该影子信元所属多播包的信元队列的方法包括:
从所述影子信元所属多播包的信元队列中依次复制信元并进行调度;
当所述影子信元是其所属多播包的最后一个待处理影子信元时,删除该多播包的信元队列。
4.根据权利要求1所述的单播和多播业务数据包的队列管理方法,其特征在于,所述依次插入到该单播包的目的缓冲队列尾部的方法包括:
生成和所述单播信元对应的单播信元节点,依次插入所述单播信元节点到和该单播包的目的缓冲队列对应的缓冲队列管理链表的尾部。
5.根据权利要求4所述的单播和多播业务数据包的队列管理方法,其特征在于,所述组成该多播包的信元队列的方法包括:
生成和所述多播信元对应的多播信元节点并组成和该多播包的信元队列对应的信元队列管理链表。
6.根据权利要求5所述的单播和多播业务数据包的队列管理方法,其特征在于,所述在该多播包的目的缓冲队列尾部插入该多播包的影子信元的方法包括:
生成和所述影子信元对应的影子信元节点,在和所述多播包的目的缓冲队列对应的缓冲队列管理链表尾部插入该影子信元节点。
7.根据权利要求6所述的单播和多播业务数据包的队列管理方法,其特征在于,所述从当前缓冲队列头部取出信元并判断信元类型的方法包括:
从和当前缓冲队列对应的缓冲队列管理链表的头部取出信元节点,判断该信元节点对应信元的类型。
8.一种单播和多播业务数据包的队列管理系统,包括至少一个缓冲队列,其特征在于还包括:
信元入队列模块,用于切分单播包为单播信元,依次插入到该单播包的目的缓冲队列尾部,以及用于切分多播包为多播信元,组成该多播包的信元队列,同时在该多播包的目的缓冲队列尾部插入该多播包的影子信元;
信元调度模块,用于从当前缓冲队列头部取出信元,调度其中的单播信元,调度其中的影子信元所属多播包的信元队列。
9.根据权利要求8所述的单播和多播业务数据包的队列管理系统,其特征在于还包括:
缓冲队列管理链表,用于管理所述缓冲队列;
信元队列管理链表,用于管理所述信元队列。
10.根据权利要求9所述的单播和多播业务数据包的队列管理系统,其特征在于,所述缓冲队列管理链表的信元节点和所述信元队列管理链表的信元节点的结构相同,该结构至少包含:
单播指针,指向本信元节点的后续信元节点;
多播指针,在后续信元节点为单播信元节点时指向该单播信元节点,在后续信元节点为多播信元节点时指向该多播信元节点,在后续信元节点为影子信元节点时指向该影子信元节点所属多播包的信元队列管理链表中的多播信元节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100627672A CN101150490B (zh) | 2006-09-23 | 2006-09-23 | 一种单播和多播业务数据包的队列管理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006100627672A CN101150490B (zh) | 2006-09-23 | 2006-09-23 | 一种单播和多播业务数据包的队列管理方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101150490A CN101150490A (zh) | 2008-03-26 |
CN101150490B true CN101150490B (zh) | 2011-11-16 |
Family
ID=39250842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006100627672A Expired - Fee Related CN101150490B (zh) | 2006-09-23 | 2006-09-23 | 一种单播和多播业务数据包的队列管理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101150490B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931585B (zh) * | 2009-06-22 | 2012-09-05 | 中兴通讯股份有限公司 | 一种信元保序的方法及装置 |
CN101729407B (zh) * | 2009-12-04 | 2012-01-04 | 西安电子科技大学 | 基于单多播区分处理的低时延抖动交换方法及设备 |
CN102111327B (zh) * | 2009-12-29 | 2014-11-05 | 中兴通讯股份有限公司 | 信元调度方法和系统 |
CN102065014B (zh) | 2010-12-29 | 2014-12-31 | 中兴通讯股份有限公司 | 数据信元处理方法和装置 |
CN103731368B (zh) * | 2012-10-12 | 2017-10-27 | 中兴通讯股份有限公司 | 一种处理报文的方法和装置 |
CN104458261A (zh) * | 2014-11-06 | 2015-03-25 | 上海汽车集团股份有限公司 | 多接口发动机测控系统数据队列处理方法 |
CN110321232B (zh) * | 2018-03-30 | 2024-01-09 | 阿里巴巴集团控股有限公司 | 消息的处理方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581847A (zh) * | 2003-08-12 | 2005-02-16 | 华为技术有限公司 | 一种实现数据报文传输的方法和系统 |
-
2006
- 2006-09-23 CN CN2006100627672A patent/CN101150490B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1581847A (zh) * | 2003-08-12 | 2005-02-16 | 华为技术有限公司 | 一种实现数据报文传输的方法和系统 |
Non-Patent Citations (3)
Title |
---|
Russell J. Clark等.Providing scalable Web services using ulticastcommunication.Computer Network and ISDN Systems 29.1997,(29),841-851. |
Russell J. Clark等.Providing scalable Web services using ulticastcommunication.Computer Network and ISDN Systems 29.1997,(29),841-851. * |
Yitzhak Birk等.A Multicast Transmission Schedule for Scalable Multi-RateDistribution of Bulk Data using Non-ScalableErasure-Correcting Codes.2003 IEEE.2003,20031033-1035. * |
Also Published As
Publication number | Publication date |
---|---|
CN101150490A (zh) | 2008-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101150490B (zh) | 一种单播和多播业务数据包的队列管理方法和系统 | |
JP4070610B2 (ja) | データ・ストリーム・プロセッサにおけるデータ・ストリームの操作 | |
US7397809B2 (en) | Scheduling methods for combined unicast and multicast queuing | |
US7016366B2 (en) | Packet switch that converts variable length packets to fixed length packets and uses fewer QOS categories in the input queues that in the outout queues | |
CA2402242C (en) | Non-consecutive data readout scheduler | |
CN107959636B (zh) | Bgp消息的发送方法及装置 | |
US7391772B2 (en) | Network multicasting | |
US7061909B2 (en) | System and method for controlling the multicast traffic of a data packet switch | |
US20020071387A1 (en) | Inter-network relay unit and transfer scheduling method in the same | |
US20080016510A1 (en) | Event-driven flow control for a very high-speed switching node | |
CN108781191A (zh) | 针对以太网交换机中的调度的帧的复用方法 | |
US6219352B1 (en) | Queue management with support for multicasts in an asynchronous transfer mode (ATM) switch | |
WO2019228318A1 (zh) | 一种报文处理方法和装置 | |
TW200414720A (en) | Network switching device and network switching method | |
CN105991470A (zh) | 以太网设备缓存报文的方法及装置 | |
US7646779B2 (en) | Hierarchical packet scheduler using hole-filling and multiple packet buffering | |
CN101212412A (zh) | 一种mpls网络的业务调度系统 | |
CN104718735A (zh) | 网络中的拥塞通知 | |
US8879578B2 (en) | Reducing store and forward delay in distributed systems | |
CN102404225B (zh) | 一种用于差分队列服务系统的数据包快速入队方法 | |
US7190699B2 (en) | Method and apparatus for implementing multiple credit levels over multiple queues | |
CN101964751A (zh) | 数据包的传输方法及装置 | |
CN101542985B (zh) | 分组交换装置及方法 | |
WO2023108479A1 (zh) | 确定性流传输方法及装置 | |
CN112615796B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111116 Termination date: 20160923 |
|
CF01 | Termination of patent right due to non-payment of annual fee |