CN113067778B - 一种流量管理方法及流量管理芯片 - Google Patents
一种流量管理方法及流量管理芯片 Download PDFInfo
- Publication number
- CN113067778B CN113067778B CN202110621670.5A CN202110621670A CN113067778B CN 113067778 B CN113067778 B CN 113067778B CN 202110621670 A CN202110621670 A CN 202110621670A CN 113067778 B CN113067778 B CN 113067778B
- Authority
- CN
- China
- Prior art keywords
- queue
- scheduler
- data
- forwarding
- data volume
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/527—Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/901—Buffering arrangements using storage descriptor, e.g. read or write pointers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9015—Buffering arrangements for supporting a linked list
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种流量管理方法及流量管理芯片,涉及通信技术领域,应用于包括彼此之间通信连接的队列管理单元与层次化调度单元的流量管理芯片。队列管理单元接收来自用户设备的数据包,并将数据包缓存至缓存队列;队列管理单元若确定缓存队列对应的数据盈余量满足预设的转发条件,则转发数据包,并更新数据盈余量。队列管理单元当确认缓存队列包含的数据包的数据量发生变化时,向层次化调度单元申请该缓存队列的转发数据量。层次化调度单元选择目标缓存队列,为目标缓存队列分配转发数据量。队列管理单元根据层次化调度单元所分配的转发数据量,更新目标缓存队列对应的数据盈余量。应用本发明实施例提供的方案可以提高转发数据包的效率。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种流量管理方法及流量管理芯片。
背景技术
随着通信技术的发展,用户设备的数量逐渐增多。流量管理芯片能够接收到来自不同用户设备的数据包,为满足不同用户设备的业务需求,流量管理芯片一般对接收到的数据包进行调度,以确定待转发的数据包,然后按照调度结果转发数据包。
现有技术中,上述流量管理芯片在接收到来自用户设备的数据包后才对接收到的数据包进行调度,等待流量管理芯片对数据包调度完成之后才会按照调度结果转发数据包。也就是上述流量管理芯片转发所接收到的数据包之前,需要对数据包进行调度。若上述调度时间较长,则流量管理芯片需要花费较长的时间才能完成数据包转发,从而导致转发数据包的效率较低,也就是包转发率较低。
发明内容
本发明实施例的目的在于提供一种流量管理方法及流量管理芯片,以提高转发数据包的效率。具体技术方案如下:
第一方面,为本发明实施例提供的一种流量管理方法,应用于流量管理芯片,所述流量管理芯片包括彼此之间通信连接的队列管理单元与层次化调度单元;
所述队列管理单元接收来自用户设备的数据包,并将所述数据包缓存至所述用户设备对应的缓存队列;
所述队列管理单元针对每个包含数据包的缓存队列,若确定该缓存队列对应的数据盈余量满足预设的转发条件,则转发该缓存队列中的数据包,并基于所转发数据包的数据量更新所述数据盈余量;
所述队列管理单元当确认缓存队列包含的数据包的数据量发生变化时,根据该缓存队列的当前数据量,向所述层次化调度单元申请该缓存队列的转发数据量,其中,所述数据盈余量表示:为缓存队列预分配的转发数据量的剩余量,所述转发数据量表示:该缓存队列允许转发数据包的数据量;
所述层次化调度单元从申请转发数据量的缓存队列中选择目标缓存队列,为所述目标缓存队列分配转发数据量,并将所分配的转发数据量发送至所述队列管理单元;
所述队列管理单元根据所述层次化调度单元所分配的转发数据量,更新所述目标缓存队列对应的数据盈余量。
第二方面,本发明实施例提供了一种流量管理芯片,所述流量管理芯片包括彼此之间通信连接的队列管理单元与层次化调度单元;
所述队列管理单元用于执行上述第一方面任一所述的流量管理方法,所述层次化调度单元用于执行第一方面任一所述的流量管理方法。
本发明实施例有益效果:
本发明实施例提供的应用于流量管理芯片的流量管理方法中,流量管理芯片中的队列管理单元接收来自用户设备的数据包,并将上述数据包缓存至上述用户设备对应的缓存队列。队列管理单元针对每个包含数据包的缓存队列,若确定该缓存队列对应的数据盈余量满足预设的转发条件,则转发该缓存队列中的数据包,并基于所转发数据包的数据量更新数据盈余量。队列管理单元当确认缓存队列包含的数据包的数据量发生变化时,根据该缓存队列的当前数据量,向层次化调度单元申请该缓存队列的转发数据量。流量管理芯片中的层次化调度单元从申请转发数据量的缓存队列中选择目标缓存队列,为目标缓存队列分配转发数据量,并将所分配的转发数据量发送至队列管理单元。队列管理单元根据层次化调度单元所分配的转发数据量更新目标缓存队列的数据盈余量。
由以上可见,网络设备的流量管理芯片中包含队列管理单元与层次化调度单元。队列管理单元记录有各缓存队列对应的数据盈余量,若上述数据盈余量满足预设的转发条件,则表示上述缓存队列中包含数据包还能被转发,因此上述队列管理单元可以直接转发上述数据包。并且在缓存队列中所包含数据包的数据量发生变化的情况下,可以根据缓存队列的当前数据量向层次化调度单元申请该缓存队列的转发数据量。层次化调度单元在申请转发数据量的缓存队列中选择目标缓存队列,并为缓存队列分配转发数据量,从而可以持续为各缓存队列补充数据盈余量,以保证各缓存队列的数据包的转发。因此与现有技术相比,本发明实施例提供的方案不需要在等待对数据包进行调度之后,才能转发上述数据包。而是在接收到数据包,并且在缓存队列对应的数据盈余量满足预设的转发条件的情况下,可以直接转发上述数据包。层次化调度单元为缓存队列调度一次转发数据量,往往可供该缓存队列中多个数据包的转发,因此可以节省对数据包进行调度所需的时间。由此可见,通过本发明实施例提供的流量管理方法可以缩短转发数据包的时间,从而提高转发数据包的效率,也就是提高了包转发率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的第一种流量管理芯片的结构示意图;
图2A为本发明实施例提供的第一种流量管理方法的流程示意图;
图2B为本发明实施例提供的第二种流量管理方法的流程示意图;
图3为本发明实施例提供的第三种流量管理方法的流程示意图;
图4为本发明实施例提供的第二种流量管理芯片的结构示意图;
图5为本发明实施例提供的第三种流量管理芯片的结构示意图;
图6为本发明实施例提供的第四种流量管理方法的流程示意图;
图7为本发明实施例提供的一种调度器与缓存队列之间层级关系的示意图;
图8A为本发明实施例提供的第一种调度器的结构示意图;
图8B为本发明实施例提供的第二种调度器的结构示意图;
图9为本发明实施例提供的一种调度器与缓存队列间链接关系的示意图;
图10为本发明实施例提供的一种调度器间链接关系的示意图;
图11为本发明实施例提供的一种队列管理单元流量管理方法的流程示意图;
图12为本发明实施例提供的一种层次化调度单元流量管理方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本发明保护的范围。
由于现有技术中转发数据包的效率较低,为解决这一问题,本发明实施例提供了一种流量管理方法及流量管理芯片。
本发明实施例提供了一种流量管理方法,应用于流量管理芯片,上述流量管理芯片包括彼此之间通信连接的队列管理单元与层次化调度单元;
上述队列管理单元接收来自用户设备的数据包,并将上述数据包缓存至上述用户设备对应的缓存队列;
上述队列管理单元针对每个包含数据包的缓存队列,若确认该缓存队列对应的数据盈余量满足预设的转发条件,则转发该缓存队列中的数据包,并基于所转发数据包的数据量更新上述数据盈余量;
上述队列管理单元当确认缓存队列包含的数据包的数据量发生变化时,根据该缓存队列的当前数据量,向上述层次化调度单元申请该缓存队列的转发数据量,其中,上述数据盈余量表示:为缓存队列预分配的转发数据量的剩余量,上述转发数据量表示:该缓存队列允许转发数据包的数据量;
上述层次化调度单元从申请转发数据量的缓存队列中选择目标缓存队列,为目标缓存队列分配转发数据量,并将所分配的转发数据量发送至队列管理单元;
上述队列管理单元根据上述层次化调度单元所分配的转发数据量,更新目标缓存队列对应的数据盈余量。
由以上可见,网络设备的流量管理芯片中包含队列管理单元与层次化调度单元。队列管理单元记录有各缓存队列对应的数据盈余量,若上述数据盈余量满足预设的转发条件,则表示上述缓存队列中包含数据包还能被转发,因此上述队列管理单元可以直接转发上述数据包。并且在缓存队列中所包含数据包的数据量发生变化的情况下,可以根据缓存队列的当前数据量向层次化调度单元申请该缓存队列的转发数据量。层次化调度单元在申请转发数据量的缓存队列中选择目标缓存队列,并为缓存队列分配转发数据量,从而可以持续为各缓存队列补充数据盈余量,以保证各缓存队列的数据包的转发。因此与现有技术相比,本发明实施例提供的方案不需要在等待对数据包进行调度之后,才能转发上述数据包。而是在接收到数据包,并且在缓存队列对应的数据盈余量满足预设的转发条件的情况下,可以直接转发上述数据包。层次化调度单元为缓存队列调度一次转发数据量,往往可供该缓存队列中多个数据包的转发,因此可以节省对数据包进行调度所需的时间。由此可见,通过本发明实施例提供的流量管理方法可以缩短转发数据包的时间,从而提高转发数据包的效率,也就是提高了包转发率。
参见图1,为本发明实施例提供的第一种流量管理芯片的结构示意图。上述流量管理芯片包括彼此之间通信连接的队列管理单元101与层次化调度单元102。
上述流量管理芯片可以安装于用于转发数据包的网络设备中,如交换机、路由器等。
参见图2A,为本发明实施例提供的第一种流量管理方法的流程示意图,上述方法包括以下步骤S201-S205。
S201:上述队列管理单元101接收来自用户设备的数据包,并将上述数据包缓存至上述用户设备对应的缓存队列。
具体的,不同缓存队列与不同用户设备相对应,在队列管理单元101接收到来自用户设备的数据包的情况下,可以将接收到的数据包缓存至上述用户设备对应的缓存队列的尾部。
另外,队列管理单元101可以根据上述数据包的数据量,从网络设备的缓存中申请空间大小大于等于上述数据量的、用于存储上述数据包的缓存空间,将上述数据包缓存于所申请的缓存空间中,并记录上述缓存空间的缓存地址。
再者,在上述队列管理单元101接收到上述数据包之后,上述队列管理单元101需要转发上述数据包,则执行步骤S202。并且,在将上述数据包缓存至缓存队列中之后,上述缓存队列中包含的数据包的数据量发生变化,则执行步骤S203。
S202:上述队列管理单元101针对每个包含数据包的缓存队列,若确认该缓存队列对应的数据盈余量满足预设的转发条件,则转发该缓存队列中的数据包,并基于所转发数据包的数据量更新上述数据盈余量。
其中,上述数据盈余量表示:为缓存队列预分配的转发数据量的剩余量,上述转发数据量表示:该缓存队列允许转发数据包的数据量。
具体的,上述预设的转发条件可以为数据盈余量大于预设盈余量,例如,上述预设盈余量可以为0、10M等。
上述数据盈余量大于预设盈余量表示该缓存队列的转发数据量的剩余量较大,即上述队列管理单元101能够转发的该缓存队列中数据包的数据量较大,则队列管理单元101可以转发该缓存队列中的数据包。
另外,上述数据盈余量可以以令牌或其他盈余量标识表示,则每一缓存队列对应一个令牌或其他盈余量标识,上述令牌或盈余量标识表示的数据量为该缓存队列对应的数据盈余量。
本发明的一个实施例中,上述队列管理单元101可以优先控制位于该缓存队列首部的数据包出队,并转发上述出队数据包,在转发数据包之后,在当前数据盈余量的基础上减去所转发数据包的数据量,得到新的数据盈余量。若转发数据包之后该缓存队列中还包含其他数据包,则原本在该缓存队列中与该出队数据包相邻、并位于出队数据包之后的另一数据包成为新的位于该缓存队列首部的数据包,可以继续判断该缓存队列对应的新的数据盈余量是否满足预设的转发条件,若为是,则可以继续控制位于该缓存队列首部的数据包出队,并转发新的出队数据包。
另外,转发该缓存队列中的数据包之后该缓存队列中包含的数据包的数据量发生变化, 则可以执行步骤S203。
此外,若上述缓存队列中的数据包被缓存至缓存空间中,则在转发数据包之前,可以根据出队数据包对应的缓存地址从缓存空间中获取该出队数据包,再转发上述出队数据包,并释放该出队数据包对应的缓存空间。
S203:上述队列管理单元101当确认缓存队列包含的数据包的数据量发生变化时,根据该缓存队列的当前数据量,向上述层次化调度单元102申请该缓存队列的转发数据量。
具体的,缓存队列中包含的数据包的数据量发生变化可以为数据包被添加至该缓存队列造成的,也可以是所包含数据包被转发造成的。
其中,上述转发数据量也可以以待分配令牌或待分配标识的形式表示,上述待分配令牌或待分配标识表示的数据量为上述转发数据量,则可以向上述层次化调度单元102申请上述待分配令牌或待分配标识。
由于缓存队列中包含的数据包被转发之后,缓存队列对应的数据盈余量会相应的减少,因此可以为缓存队列分配转发数据量,以提高上述缓存队列的数据盈余量从而保证后续缓存队列中包含的数据包能够正常被转发。
本发明的一个实施例中,可以在缓存队列中包含数据包的数据量发生变化的情况下便向上述层次化调度单元102申请该缓存队列的转发数据量。
本发明的另一个实施例中,由于队列管理单元101的数据转发能力有限,因此若在缓存队列中包含数据包的数据量发生变化的情况下便直接向上述层次化调度单元102申请该缓存队列的转发数据量,可能导致每一缓存队列对应的数据盈余量均较大,每一缓存队列中包含的数据包均可以直接被转发,造成队列管理单元101的数据转发负荷过大,队列管理单元101难以满足各个缓存队列的数据包转发需求,因此可以根据该缓存队列的当前数据量,通过步骤S203A-S203B实现上述步骤S203,本发明实施例对此暂不详述。
另外,可以将上述缓存队列的分配状态设置为待分配状态,并向上述层次化调度单元102发送处于待分配状态的缓存队列的标识,以向层次化调度单元102申请缓存队列的转发数据量。
S204:上述层次化调度单元102从申请转发数据量的缓存队列中选择目标缓存队列,为上述目标缓存队列分配转发数据量,并将所分配的转发数据量发送至上述队列管理单元101。
本发明的一个实施例中,可以按照各缓存队列申请转发数据量的时间顺序,选择最早申请转发数据量的缓存队列作为目标缓存队列。也可以在申请转发数据量的缓存队列中选择数据盈余量最小的缓存队列作为目标缓存队列。还可以通过步骤S204A实现上述步骤S204,在此暂不详述。
S205:上述队列管理单元101根据上述层次化调度单元102所分配的转发数据量,更新上述目标缓存队列对应的数据盈余量。
具体的,可以将目标缓存队列对应的数据盈余量直接更新为所分配的转发数据量,也可以在目标缓存队列对应的数据盈余量的基础上增加所分配的转发数据量,以更新目标缓存队列对应的数据盈余量。
另外,在为上述目标缓存队列更新数据盈余量之后,可以将目标缓存队列的分配状态调整为停止分配状态,表示停止向层次化调度单元102申请目标缓存队列的可转发数据。
由以上可见,网络设备的流量管理芯片中包含队列管理单元与层次化调度单元。队列管理单元记录有各缓存队列对应的数据盈余量,若上述数据盈余量满足预设的转发条件,则表示上述缓存队列中包含数据包还能被转发,因此上述队列管理单元可以直接转发上述数据包。并且在缓存队列中所包含数据包的数据量发生变化的情况下,可以根据缓存队列的当前数据量向层次化调度单元申请该缓存队列的转发数据量。层次化调度单元在申请转发数据量的缓存队列中选择目标缓存队列,并为缓存队列分配转发数据量,从而可以持续为各缓存队列补充数据盈余量,以保证各缓存队列的数据包的转发。因此与现有技术相比,本发明实施例提供的方案不需要等待对数据包进行调度之后,才能转发上述数据包。而是在接收到数据包,并且在缓存队列对应的数据盈余量满足预设的转发条件的情况下,可以直接转发上述数据包。层次化调度单元为缓存队列调度一次转发数据量,往往可供该缓存队列中多个数据包的转发,因此可以节省对数据包进行调度所需的时间。由此可见,通过本发明实施例提供的流量管理方法可以缩短转发数据包的时间,从而提高转发数据包的效率,也就是提高了包转发率。
参见图2B,为本发明实施例提供的第二种流量管理方法的流程示意图,与前述图2A所示的实施例相比,上述步骤S203可以通过以下步骤S203A-S203B实现。
S203A:上述队列管理单元101当确认缓存队列包含的数据包的数据量发生变化时,在该缓存队列的当前数据量不大于预设阈值的情况下,若该缓存队列的数据盈余量小于预设的最小盈余量,则向上述层次化调度单元102申请该缓存队列的转发数据量。
具体的,对于不同的缓存队列,上述预设阈值可以相同,也可以不同。例如,上述预设阈值可以为0、10M、30M等。对于不同的缓存队列,预设的最小盈余量可以相同也可以不同。例如,上述最小盈余量可以为50M、80M等。
在该缓存队列的当前数据量不大于预设阈值的情况下,该缓存队列中包含的需要转发的数据包较少,因此该缓存队列不需要较大量的数据盈余量用于转发数据包,所以可以在上述数据盈余量小于最小盈余量的情况下再向层次化调度单元102申请该缓存队列的转发数据量。可以优先将转发数据量分配给当前数据量较大,需要转发较多数据包的缓存队列。并且可以保持各个缓存队列的数据盈余量在大多数情况下至少大于上述最小盈余量,若缓存队列中缓存进部分新的数据包,可以在较短的时间内将新的数据包转发。
S203B:上述队列管理单元101当确认缓存队列包含的数据包的数据量发生变化时,在该缓存队列的当前数据量大于上述预设阈值的情况下,根据上述数据盈余量与上述当前数据量之间差值,向上述层次化调度单元102申请该缓存队列的转发数据量。
具体的,在该缓存队列的当前数据量大于预设阈值的情况下,上述缓存队列中包含较多需要被转发的数据包,为了保证数据包能够被顺利转发,上述缓存队列的数据盈余量需要大于当前数据量。因此可以根据上述数据盈余量与上述当前数据量之间的差值,向层次化调度单元102申请该缓存队列的转发数据量,以使得上述数据盈余量大于上述当前数据量。
本发明的一个实施例中,队列管理单元101可以通过以下步骤A-步骤B向层次化调度单元102申请该缓存队列的转发数据量。
步骤A:上述队列管理单元101若确定上述数据盈余量与上述当前数据量之间的差值小于预设差值,则向上述层次化调度单元102申请该缓存队列的转发数据量。
其中,上述预设差值可以为0或任意正数,对于不同的缓存队列,上述预设差值可以相同也可以不同。
具体的,若上述数据盈余量与上述当前数据量之间的差值小于预设差值,则表示上述数据盈余量可能小于上述当前数据量,说明上述数据盈余量不足以使得队列管理单元101将上述缓存队列中当前包含的数据包全部转发,因此可以向层次化调度单元102申请该缓存队列的转发数据量。也可能表示上述数据盈余量虽然大于上述当前数据量,但差值较小。因此在队列管理单元101将上述缓存队列中当前包含的数据包全部转发之后,上述数据盈余量剩余较少,在上述缓存队列中缓存新的数据包后,新添加的数据包可能难以在较短时间内被转发,因此可以向层次化调度单元102申请该缓存队列的转发数据量。
在上述差值小于预设差值的情况下,再向层次化调度单元102申请该缓存队列的转发数据量,可以使得上述数据盈余量与当前数据量保持在相对均衡的状态,在保证缓存队列中包含的数据包被顺利转发的情况下,上述缓存队列的数据盈余量不会过大也不会过小。
步骤B:上述队列管理单元101若确定上述数据盈余量与上述当前数据量之间的差值不小于上述预设差值,则判断上述数据盈余量是否小于预设的最大盈余量,若为是,则向上述层次化调度单元102申请该缓存队列的转发数据量。
其中,针对不同的缓存队列,上述最大盈余量可以相同,也可以不同。
具体的,在上述差值不小于预设差值的情况下,说明与当前数据量相比,上述数据盈余量较大,上述数据盈余量能够保证当前缓存队列中包含的数据包被顺利转发。则可以进一步判断上述数据盈余量是否小于预设的最大盈余量,若为否,则说明上述数据盈余量较大,不需要继续向上述层次化调度单元102申请转发数据量,从而可以保证一个缓存队列不会占用较多的转发数据量,从而使得各个缓存队列中包含的数据包均可以顺利的被发送。否则,则可以向上述层次化调度单元102申请转发数据量。
由以上可见,本发明实施例中可以根据缓存队列的当前数据量以及所对应数据盈余量,确定是否需要为缓存队列分配转发数据量。从而可以控制缓存队列的数据盈余量在大多数情况下大于最小盈余量且小于最大盈余量,并且可以在大多数情况下控制缓存队列的数据盈余量大于当前数据量,且相对于当前数据量保持在相对较为稳定的水平。从而在大多数情况下保持缓存队列对应的数据盈余量满足预设的转发条件,以使得在队列管理单元接收到数据包的情况下,可以在较短时间内将数据包转发。
参见图3,为本发明实施例提供的第三种流量管理方法的流程示意图,不同的缓存队列具有不同的调度优先级,与前述图2A所示的实施例相比,上述步骤S204可以通过以下步骤S204A实现。
S204A:上述层次化调度单元102在一个分配周期内,将申请转发数据量的缓存队列中调度优先级最高的缓存队列作为目标缓存队列,并为上述目标缓存队列分配转发数据量。
其中,上述分配周期可以为预设的周期,具体的,上述分配周期可以为预设数量个时钟周期,不同流量管理芯片的时钟周期不同,可以根据上述流量管理芯片的时钟频率计算得到上述时钟周期。
另外,队列管理单元101同时可以管理多个缓存队列,因此同时可以存在多个申请转发数据量的缓存队列,层次化调度单元可以优先满足调度优先级最高的队列的转发数据量请求。
上述调度优先级最高的目标缓存队列可以为申请转发数据量的缓存队列中等待申请转发数据量的时间最长的缓存队列,也可以为申请转发数据量的缓存队列中数据盈余量最小的缓存队列,也可以为申请转发数据量的缓存队列中当前数据量最大的缓存队列,还可以为申请转发数据量的缓存队列中所对应用户设备的预设用户优先级最高的缓存队列,从而可以使得预设用户优先级较高的用户设备对应的缓存队列的数据盈余量始终保持在较高的水平,来自预设用户优先级较高的用户设备的数据包能够较为快速的被转发。
本发明的一个实施例中,层次化调度单元102在一个分配周期中分配的转发数据量可以与上述流量管理芯片的处理能力以及分配周期中包含的时钟周期数正相关,与上述流量管理芯片的时钟频率负相关。
其中,上述处理能力可以以带宽的形式表示,如100Gbps、200Gbps等。则可以按照以下表达式计算得到上述转发数据量。
其中,T为上述转发数据量,S为流量管理芯片的带宽,N为分配周期中包含的时钟周期数,K为流量管理芯片的时钟频率。
具体的,在计算上述转发数据量之前可以将上述表达式中各参数的单位进行调整。例如,在上述转发数据量的单位为Byte的情况下,若上述S的原始单位为Gbps,可以将上述S的原始取值乘以109,再除以8,得到上述流量管理芯片每秒可转发的数据的比特数作为上述表达式中S的取值。在上述时钟频率的原始单位为MHz的情况下,可以将上述K的原始取值乘以106,得到以Hz为单位的时钟频率,作为上述表达式中K的取值,则上述1/K为上述流量管理芯片的时钟周期。上述N为分配周期中包含的时钟周期数,则N*1/K为上述分配周期。计算得到的T表示上述流量管理芯片在一个分配周期中能够转发的数据的数据量。
由以上可见,由于上述流量管理芯片可以接收多个用户设备的数据包,则上述队列管理单元管理对应不同用户设备的多个缓存队列,因此在同一时刻可能存在多个申请转发数据量的缓存队列。层次化调度单元可以从中选择调度优先级最高的缓存队列,将转发数据量调度给所选择的缓存队列,从而可以优先满足调度优先级高的缓存队列中的数据包的转发需求,以实现针对不同用户设备的数据包转发的调度。
本发明的另一个实施例中,在上述转发数据量以令牌的形式表示的情况下,上述层次化调度单元102可以按照以下步骤C-步骤E,为目标缓存队列分配转发数据量。
步骤C:层次化调度单元102按照预设的分配周期,生成待分配令牌。
具体的,上述待分配令牌表示的数据量为:上述转发数据量。可以通过软件层的令牌产生器生成上述待分配令牌。
其中,上述分配周期与转发数据量的确定方式与前文所示的实施例相似,本发明实施例对此不再赘述。
步骤D:层次化调度单元102确定申请转发数据量的缓存队列中调度优先级最高的缓存队列,作为目标缓存队列。
步骤E:层次化调度单元102为上述目标缓存队列分配上述待分配令牌。
具体的,为目标缓存队列分配上述待分配令牌,相当于将上述待分配令牌表示的转发数据量分配给上述目标缓存队列。
本发明的一个实施例中,上述步骤D-步骤E与前述步骤S204A相似,本发明实施例对此不再赘述。
参见图4,为本发明实施例提供的第二种流量管理芯片的结构示意图。
其中,与前述图1所示的实施例相比,上述流量管理芯片中还包括存储管理单元与缓存。
图4所示队列管理单元用于接收来自用户设备的数据包,将数据包为数据包选择缓存地址,向存储管理单元发送写命令、缓存地址与数据包,从而将数据包缓存于缓存队列中。并且,上述队列管理单元也用于管理各缓存队列对应的数据盈余量,向层次化调度单元申请缓存队列的转发数据量。再者,上述队列管理单元还用于向存储管理单元发送待转发的数据包的缓存地址与读命令,在接收到存储管理单元发送的待转发的数据包之后,控制数据包转发。
图4所示存储管理单元用于接收队列管理单元发送的写命令、缓存地址与数据包,按照缓存地址将上述数据包存储进图示的缓存中。并且在接收到队列管理单元发送的读命令与缓存地址的情况下,按照缓存地址从缓存中读取所缓存的数据包,并将所读取的数据包发送至上述队列管理单元。
图4所示缓存中包含各个用户设备对应的缓存队列,用于缓存所接收到的数据包。
图4所示层次化调度单元用于为申请转发数据量的缓存队列分配转发数据量,并将所分配的转发数据量发送至队列管理单元。
具体的,上述存储管理单元、队列管理单元、层次化调度单元均为软件层的单元。
参见图5,为本发明实施例提供的第三种流量管理芯片的结构示意图。与前述图4所示的实施例相比,上述队列管理单元中包括入队处理子单元、地址管理子单元、出队处理子单元、状态更新子单元、分配状态管理子单元、盈余量管理子单元与当前数据量管理子单元。
另外,图5所示的缓存、存储管理单元与层次化调度单元与前述图4所示的实施例相同,本发明实施例对此不再赘述。
具体的,在上述队列管理单元接收到数据包的情况下,通过入队处理子单元从地址管理单元获取缓存中空闲空间的缓存地址,向存储管理单元发送写命令、缓存地址与数据包,从而将数据包存储进缓存中。并且向图示状态更新子单元发送上述缓存队列的当前数据量。
地址管理子单元,用于记录缓存中空闲空间的地址以及缓存中所缓存的各个数据包的缓存地址,向入队处理子单元发送空闲空间的缓存地址,向出队处理子单元发送待转发的数据包的缓存地址,在接收到出队处理子单元发送的地址释放指令的情况下,释放所转发数据包对应的缓存空间的缓存地址。
出队处理子单元,用于从当前数据量管理子单元获取缓存队列的当前数据量,从盈余量管理子单元获取缓存队列对应的数据盈余量。从地址管理子单元中获取待转发的数据包的缓存地址,向存储管理单元发送读命令与缓存地址,从而获取缓存中存储的待转发的数据包。转发获取到的待转发的数据包,并在转发数据包后向地址管理子单元发送地址释放指令,以释放地址管理子单元记录的待转发的数据包的缓存地址。并向状态更新子单元发送缓存队列的当前数据量。
状态更新子单元,用于在接收到入队处理子单元或出队处理子单元发送的缓存队列的当前数据量的情况下,向分配状态管理子单元发送状态管理请求,以请求进行缓存队列的分配状态管理,并接收分配状态管理子单元发送的缓存队列的分配状态。向层次化调度单元发送缓存队列的分配状态,接收层次化调度单元分配的转发数据量。向盈余量管理子单元发送盈余量更新请求,以更新缓存队列的数据盈余量。从盈余量管理子单元中获取缓存队列对应的数据盈余量。向当前数据量管理子单元发送从出队处理子单元中获得的缓存队列的当前数据量,从当前数据量管理子单元中获取缓存队列的当前数据量。
分配状态管理子单元,用于接收状态更新子单元发送的状态管理请求,调整缓存队列的分配状态,并向状态更新子单元发送缓存队列的分配状态。
盈余量管理子单元,用于在接收到层次化调度单元分配的转发数据量的情况下,更新缓存队列的数据盈余量。在接收状态更新子单元发送的盈余量更新请求的情况下,更新缓存队列的数据盈余量。并向状态更新子单元与出队处理子单元发送缓存队列的数据盈余量。
当前数据量管理子单元,用于接收状态更新子单元发送的当前数据量,调整所记录的缓存队列的当前数据量,向状态更新子单元与出队处理子单元发送缓存队列的当前数据量。
参见图6,为本发明实施例提供的第四种流量管理方法的流程示意图。与前述图3所示的实施例相比,上述层次化调度单元102中包含属于不同层级的调度器,上层调度器与相邻的下层调度器相连,上层调度器可以将转发数据量调度至下层调度器,最低层级调度器与缓存队列相连,最低层级调度器可以将转发数据量调度至缓存队列。上述步骤S204A可以通过以下步骤S204A1-S204A3实现。
参见图7,为本发明实施例提供的一种调度器与缓存队列之间层级关系的示意图。
其中,调度器1为第一层级的调度器,调度器2-调度器n为第二层级的调度器,调度器p-调度器q为第x层级的调度器,调度器p-调度器q分别与缓存队列s-缓存队列t中的至少一个缓存队列相对应。每一虚线框中包含的调度器属于同一层级,具体的,第一层级为最高层级,第x层级为最低层级。
具体的,上述调度器为软件层的调度器。每一调度器具有不同的编号,分别为1-q。每一调度器中记录有各个缓存队列的调度优先级顺序,并记录有各个申请转发数据量的缓存队列。
并且,针对每一除最低层级的调度器之外的其他调度器,流量管理芯片可以记录该调度器对应的各个下一低层级调度器的地址。参见图7,上述除最低层级的调度器之外的其他调度器为调度器1-调度器n。
针对每一最低层级的调度器,流量管理芯片可以记录该调度器对应的缓存队列的地址。参见图7,上述最低层级的调度器为调度器p-调度器q。
S204A1:上述层次化调度单元102调用第一调度器将转发数据量调度至下一低层级调度器中的第二调度器。
其中,上述第一调度器为最高层级的调度器。具体的,参见图7,上述第一调度器为调度器1。
本发明的一个实施例中,上述第一调度器可以根据各个缓存队列的调度优先级顺序,选择与调度优先级最高的待分配缓存队列直接或间接对应的下一低层级调度器,作为上述第二调度器。并由第二调度器继续调度上述转发数据量。
在上述转发数据量以令牌的形式表示的情况下,可以将令牌调度至上述第二调度器。
另外,上述调度器可以包含SP(Strict Priority,严格优先级调度)模块和WRR(Weighed Round Robin,加权循环调度)模块。可以通过以下步骤F实现上述步骤S204A1。
具体的,若上述调度器是最低层级调度器,则各个WRR模块分别与该调度器对应的各个队列相对应,SP模块将转发数据量调度至WRR模块后,WRR模块可以将转发数据量调度至自身对应的队列。
若上述调度器不是最低层级调度器,则各个WRR模块分别与该调度器所对应的各个下一层级调度器相对应,SP模块将转发数据量调度至WRR模块后,WRR模块可以将转发数据量调度至自身对应的下一层级调度器。
步骤F:上述层次化调度单元102在第一调度器中,调用SP模块将转发数据量调度至WRR模块中的目标WRR模块,并调用上述目标WRR模块将转发数据量调度至下一层级调度器中的第二调度器。
参见图8A,为本发明实施例提供的第一种调度器的结构示意图。
具体的,与前述图7相对应,图8A中虚线框框出的部分示出了上述调度器1的结构,上述调度器1中包含SP模块与WRR0-WRRy多个WWR模块共同进行转发数据量的调度。其中,WWR0与调度器2-3相对应,用于将转发数据量调度至调度器2-3中的一个。WWR1与调度器4相对应,用于将转发数据量调度至调度器4。WRRy与调度器n-2、调度器n-1、调度器n相对应,用于将转发数据量调度至调度器n-2、调度器n-1、调度器n中的一个。
例如,调用调度器1的SP模块选择WRR0-WRRy中的一个,将转发数据量调度至所选择的WRR模块,如WRR0。每一WRR模块对应一个或多个低层级调度器,所选择的WWR模块将转发数据量调度至自身对应的低层级调度器中的第二调度器。如,WRR0可以将转发数据量调度至调度器2,由调度器2中包含的SP模块继续进行调度。
S204A2:上述层次化调度单元102若确定上述第二调度器不是最低层级的调度器,将上述第一调度器更新为上述第二调度器。返回执行上述步骤S204A1。
其中,上述最低层级的调度器为:与缓存队列直接对应的调度器。
具体的,重复执行上述步骤S204A2,可以按照调度器层级由高到低的顺序,将转发数据量由最高层级的调度器依次调度至最低层级的调度器。
S204A3:上述层次化调度单元102若确定上述第二调度器是最低层级的调度器,调用上述第二调度器将转发数据量调度至申请转发数据量的缓存队列中调度优先级最高的目标缓存队列。
具体的,上述最低层级的调度器可以从自身对应的申请转发数据量的缓存队列中选择调度优先级最高的缓存队列作为目标缓存队列,将转发数据量分配给上述目标缓存队列。
在上述调度器包含SP模块和WRR模块的情况下,可以通过以下步骤G实现上述步骤S204A3。
步骤G:上述层次化调度单元102在第二调度器中,调用SP模块将转发数据量调度至WRR模块中的目标WRR模块,并调用上述目标WRR模块将转发数据量调度至申请转发数据量的缓存队列中调度优先级最高的目标缓存队列。
参见图8B,为本发明实施例提供的第二种调度器的结构示意图。
具体的,与前述图7相对应,图8B中虚线框框出的部分示出了上述调度器q的结构,上述调度器q中包含SP模块与WRRm、WRRm+1两个WWR模块共同进行转发数据量的调度。其中,WWRm与缓存队列t-2相对应,用于将转发数据量调度至缓存队列t-2。WWRm+1与缓存队列t-1、缓存队列t相对应,用于将转发数据量调度至缓存队列t-1、缓存队列t中的一个。
例如,调用SP模块选择WRRm、WRRm+1中的一个,将转发数据量调度至所选择的WRR模块,如WRRm+1。每一WRR模块对应一个或多个缓存队列,所选择的WWR模块将转发数据量调度至自身对应的缓存队列中的目标缓存队列,如,上述目标缓存队列为缓存队列t,WRRm+1将转发数据量调度至缓存队列t。
本发明的一个实施例中,上述调度器的层级越多,上述转发数据量由最高层级的调度器调度至缓存队列所经过的调度器越多,对转发数据量进行调度所需的时长越长。上述分配周期可以大于等于对转发数据量进行调度所需的时长,以使得在完成一次转发数据量的调度之后,再进行下一次转发数据量的调度。
例如,若每一调度器调度转发数据量需要经过2个时钟周期,上述调度器的层级数量为5,则可以认为对转发数据量进行调度需要10个时钟周期,上述分配周期可以大于等于10个时钟周期。
由以上可见,本发明实施例可以通过多层级的调度器在每一分配周期内对转发数据量进行调度,分别将各转发数据量分配至各个缓存队列。上述调度器为现有技术中常用的、效率较高的调度方式,因此本发明实施例可以通过调度器较为高效的满足各缓存队列的转发数据量需求。
本发明的一个实施例中,各个调度器之间可以通过以下方式彼此连接,组成层次化调度单元。
其中,每个最低层级的调度器对应一个缓存队列链表,且每个缓存队列链表为:最低层级的调度器对应的缓存队列通过缓存队列指针依次串行链接得到的链表。最低层级的调度器的头指针指向所对应缓存队列链表的链表头,尾指针指向上述缓存队列链表的链表尾。
具体的,针对上述缓存队列链表中除位于链表尾的缓存队列之外的每一缓存队列,流量管理芯片记录有该缓存队列对应的缓存队列指针,该缓存队列的缓存队列指针指向在缓存队列链表中位于该缓存队列之后、且与该缓存队列相邻的下一缓存队列的缓存队列地址。
参见图9,为本发明实施例提供的一种调度器与缓存队列间链接关系的示意图。
与前述图7相对应,调度器p对应缓存队列s-缓存队列s+1,调度器p的头指针指向缓存队列s,调度器n的尾指针指向缓存队列s+1,缓存队列s的缓存队列指针指向缓存队列s+1。
另外,每个除最低层次的调度器之外的第三调度器对应一个调度器链表,且每个调度器链表为:第三调度器对应的调度器通过调度器指针依次串行链接得到的链表。
第三调度器的头指针指向所对应调度器链表的链表头,尾指针指向所对应调度器链表的链表尾。
具体的,针对上述调度器链表中除位于链表尾的调度器之外的每一调度器,流量管理芯片记录有该调度器对应的调度器指针,该调度器的调度器指针指向在调度器链表中位于该调度器之后、且与该调度器相邻的下一调度器的调度器地址。
参见图10,为本发明实施例提供的一种调度器间链接关系的示意图。
与前述图7相对应,调度器1对应调度器2-调度器n,调度器1的头指针指向调度器2,调度器1的尾指针指向调度器n,调度器2的调度器指针指向调度器3,调度器3的调度器指针指向调度器4,以此类推,调度器n-1的调度器指针指向调度器n。
另外,在上述调度器中包含SP模块与WRR模块的情况下,上述第三调度器中的每一WRR模块对应一个调度器子链表。对于一个WRR模块而言,该WRR模块对应的调度器通过调度器指针依次串行链接形成一个调度器子链表,该WRR模块的头指针指向所对应调度器子链表的链表头,该WRR模块的尾指针指向所对应调度器子链表的链表尾。
例如,参见图8A,调度器n-2的调度器指针执行调度器n-1,调度器n-1的调度器指针指向调度器n,调度器n-2、调度器n-1、调度器n形成一个调度器子链表,WRRy的头指针指向该调度器子链表的链表头,即指向调度器n-2,WRRy的尾指针指向该调度器子链表的链表尾,即指向调度器n。
再者,在上述调度器中包含SP模块与WRR模块的情况下,最低层级的调度器中的每一WRR模块对应一个缓存队列子链表。对于一个WRR模块而言,该WRR模块对应的缓存队列通过缓存队列指针依次串行链接形成一个缓存队列子链表,该WRR模块的头指针指向所对应缓存队列子链表的链表头,该WRR模块的尾指针指向所对应缓存队列子链表的链表尾。
例如,参见图8B,缓存队列t-1的缓存队列指针指向缓存队列t,缓存队列t-1与缓存队列t组成一个缓存子队列,WRRm+1的头指针指向该缓存子队列的链表头,即指向缓存队列t-1,WRRm+1的尾指针指向该缓存子队列的链表尾,即指向缓存队列t。
由以上可见,各个调度器之间通过指针相连,调度器与缓存队列之间也通过指针相连,通过维护上述链表,可以查找到调度器对应的缓存队列;此外,若需要在某一层级中添加新的调度器,或添加新一层级的调度器,或添加新的缓存队列,只需要更改调度器与调度器之间或调度器与缓存队列之间的指针便可以实现。因此上述多层级调度器组成的层次化调度单元的可扩展性较强,可以适应不同应用场景的调度需求。
与前述应用于流量管理芯片的流量管理方法相对应,本发明实施例还提供了一种流量管理芯片。
本发明实施例提供了一种流量管理芯片,所述流量管理芯片包括队列管理单元与层次化调度单元;
所述队列管理单元,用于接收来自用户设备的数据包,将所述数据包缓存至所述用户设备对应的缓存队列;针对每个包含数据包的缓存队列,若该缓存队列对应的数据盈余量满足预设的转发条件,则转发该缓存队列中的数据包,并基于所转发数据包的数据量更新所述数据盈余量;当缓存队列包含的数据包的数据量发生变化时,根据该缓存队列的当前数据量,向所述层次化调度单元申请该缓存队列的可转发数据量,其中,所述数据盈余量表示:为缓存队列预分配的可转发数据量的剩余量;
所述层次化调度单元,用于在申请可转发数据量的缓存队列中选择目标缓存队列,为所述目标缓存队列分配可转发数据量,并将所分配的可转发数据量发送至所述队列管理单元;
所述队列管理单元,用于根据所述层次化调度单元所分配的可转发数据量,更新所述目标缓存队列对应的数据盈余量。
由以上可见,网络设备的流量管理芯片中包含队列管理单元与层次化调度单元。队列管理单元记录有各缓存队列对应的数据盈余量,若上述数据盈余量满足预设的转发条件,则表示上述缓存队列中包含数据包还能被转发,因此上述队列管理单元可以直接转发上述数据包。并且在缓存队列中所包含数据包的数据量发生变化的情况下,可以根据缓存队列的当前数据量向层次化调度单元申请该缓存队列的转发数据量。层次化调度单元在申请转发数据量的缓存队列中选择目标缓存队列,并为缓存队列分配转发数据量,从而可以持续为各缓存队列补充数据盈余量,以保证各缓存队列的数据包的转发。因此与现有技术相比,本发明实施例提供的方案不需要等待对数据包进行调度之后,才能转发上述数据包。而是在接收到数据包,并且在缓存队列对应的数据盈余量满足预设的转发条件的情况下,可以直接转发上述数据包。层次化调度单元为缓存队列调度一次转发数据量,往往可供该缓存队列中多个数据包的转发,因此可以节省对数据包进行调度所需的时间。由此可见,通过本发明实施例提供的流量管理方法可以缩短转发数据包的时间,从而提高转发数据包的效率,也就是提高了包转发率。
本发明的一个实施例中,所述队列管理单元,具体用于:
在该缓存队列的当前数据量不大于预设阈值的情况下,若该缓存队列的数据盈余量小于预设的最小盈余量,则向所述层次化调度单元申请该缓存队列的可转发数据量;
在该缓存队列的当前数据量大于所述预设阈值的情况下,根据所述数据盈余量与所述当前数据量之间差值,向所述层次化调度单元申请该缓存队列的可转发数据量。
本发明的一个实施例中,所述队列管理单元,具体用于:
若所述数据盈余量与所述当前数据量之间的差值小于预设差值,则向所述层次化调度单元申请该缓存队列的可转发数据量;
若所述数据盈余量与所述当前数据量之间的差值不小于所述预设差值,则判断所述数据盈余量是否小于预设的最大盈余量,若为是,则向所述层次化调度单元申请该缓存队列的可转发数据量。
由以上可见,本发明实施例中可以根据缓存队列的当前数据量以及所对应数据盈余量,确定是否需要为缓存队列分配转发数据量。从而可以控制缓存队列的数据盈余量在大多数情况下大于最小盈余量且小于最大盈余量,并且可以在大多数情况下控制缓存队列的数据盈余量大于当前数据量,且相对于当前数据量保持在相对较为稳定的水平。从而在大多数情况下保持缓存队列对应的数据盈余量满足预设的转发条件,以使得在队列管理单元接收到数据包的情况下,可以在较短时间内将数据包转发。
本发明的一个实施例中,不同的缓存队列具有不同的调度优先级;则
所述层次化调度单元,具体用于在一个分配周期内,将申请可转发数据量的缓存队列中调度优先级最高的缓存队列作为目标缓存队列,并为所述目标缓存队列分配可转发数据量。
本发明的一个实施例中,所述可转发数据量与所述流量管理芯片的处理能力以及分配周期中包含的时钟周期数正相关,与所述流量管理芯片的时钟频率负相关。
由以上可见,由于上述流量管理芯片可以接收多个用户设备的数据包,则上述队列管理单元管理对应不同用户设备的多个缓存队列,因此在同一时刻可能存在多个申请转发数据量的缓存队列。层次化调度单元可以从中选择调度优先级最高的缓存队列,将转发数据量调度给所选择的缓存队列,从而可以优先满足调度优先级高的缓存队列中的数据包的转发需求,以实现针对不同用户设备的数据包转发的调度。
本发明的一个实施例中,所述层次化调度单元,具体用于:
按照预设的分配周期,生成待分配令牌,所述待分配令牌表示的数据量为:所述可转发数据量;
确定申请可转发数据量的缓存队列中调度优先级最高的缓存队列,作为目标缓存队列;
为所述目标缓存队列分配所述待分配令牌。
本发明的一个实施例中,所述层次化调度单元中包含属于不同层级的调度器;则所述层次化调度单元,具体用于:
调用第一调度器将可转发数据量调度至下一低层级调度器中的第二调度器,其中,所述第一调度器为最高层级的调度器;
若所述第二调度器不是最低层级的调度器,将所述第一调度器更新为所述第二调度器,返回执行所述调用第一调度器将可转发数据量调度至下一低层级调度器中的第二调度器的步骤,其中,所述最低层级的调度器为:与缓存队列直接对应的调度器;
若所述第二调度器是最低层级的调度器,调用所述第二调度器将可转发数据量调度至申请可转发数据量的缓存队列中调度优先级最高的目标缓存队列。
本发明的一个实施例中,各个调度器中包含严格优先级调度SP模块以及加权循环调度WRR模块;
所述层次化调度单元,具体用于:
在第一调度器中,调用SP模块将可转发数据量调度至WRR模块中的目标WRR模块,并调用所述目标WRR模块将可转发数据量调度至下一层级调度器中的第二调度器;
若所述第二调度器不是最低层级的调度器,将所述第一调度器更新为所述第二调度器,返回执行所述在第一调度器中,调用SP模块将可转发数据量调度至WRR模块中的目标WRR模块,并调用所述目标WRR模块将可转发数据量调度至下一层级调度器中的第二调度器的步骤;
若所述第二调度器是最低层级的调度器,在第二调度器中,调用SP模块将可转发数据量调度至WRR模块中的目标WRR模块,并调用所述目标WRR模块将可转发数据量调度至申请可转发数据量的缓存队列中调度优先级最高的目标缓存队列。
由以上可见,本发明实施例可以通过多层级的调度器在每一分配周期内对转发数据量进行调度,分别将各转发数据量分配至各个缓存队列。上述调度器为现有技术中常用的、效率较高的调度方式,因此本发明实施例可以通过调度器较为高效的满足各缓存队列的转发数据量需求。
本发明的一个实施例中,每个最低层级的调度器对应一个缓存队列链表,且每个缓存队列链表为:最低层级的调度器对应的缓存队列通过缓存队列指针依次串行链接得到的链表;则
最低层级的调度器的头指针指向所对应缓存队列链表的链表头,尾指针指向所对应缓存队列链表的链表尾;
每个除最低层次的调度器之外的第三调度器对应一个调度器链表,且每个调度器链表为:第三调度器对应的调度器通过调度器指针依次串行链接得到的链表;则
第三调度器的头指针指向所对应调度器链表的链表头,尾指针指向所对应调度器链表的链表尾。
参见图11,为本发明实施例提供的一种队列管理单元流量管理方法的流程示意图,上述方法包括以下步骤S1101-S1104。
S1101:接收来自用户设备的数据包,将上述数据包缓存至上述用户设备对应的缓存队列。
S1102:针对每个包含数据包的缓存队列,若该缓存队列对应的数据盈余量满足预设的转发条件,则转发该缓存队列中的数据包,并基于所转发数据包的数据量更新上述数据盈余量。
其中,上述数据盈余量表示:为缓存队列预分配的转发数据量的剩余量,所述转发数据量表示:该缓存队列允许转发数据包的数据量。
S1103:当缓存队列包含的数据包的数据量发生变化时,根据该缓存队列的当前数据量,向上述层次化调度单元申请该缓存队列的转发数据量。
其中,上述层次化管理单元用于:为申请转发数据量的缓存队列分配转发数据量。
S1104:获得上述层次化调度单元为目标缓存队列分配的转发数据量,并根据上述转发数据量更新上述目标缓存队列对应的数据盈余量。
具体的,上述应用于队列管理单元的流量管理方法与前述应用于流量管理芯片的流量管理方法中队列管理单元所执行的步骤相似,本发明实施例对此不再赘述。
由以上可见,网络设备的流量管理芯片中包含队列管理单元与层次化调度单元。队列管理单元记录有各缓存队列对应的数据盈余量,若上述数据盈余量满足预设的转发条件,则表示上述缓存队列中包含数据包还能被转发,因此上述队列管理单元可以直接转发上述数据包。并且在缓存队列中所包含数据包的数据量发生变化的情况下,可以根据缓存队列的当前数据量向层次化调度单元申请该缓存队列的转发数据量。因此与现有技术相比,本发明实施例提供的方案不需要在等待对数据包进行调度之后,才能转发上述数据包。而是在接收到数据包,并且在缓存队列对应的数据盈余量满足预设的转发条件的情况下,可以直接转发上述数据包,从而可以节省对数据包进行调度所需的时间。由此可见,通过本发明实施例提供的应用于队列管理单元的流量管理方法可以缩短转发数据包的时间,从而提高转发数据包的效率,也就是提高了包转发率。
与前述应用于流量管理芯片的流量管理方法相对应,本发明实施例还提供了一种应用于层次化调度单元的流量管理方法。
参见图12,为本发明实施例提供的一种层次化调度单元流量管理方法的流程示意图,上述方法包括以下步骤S1201-S1202。
S1201:在申请转发数据量的缓存队列中选择目标缓存队列,为上述目标缓存队列分配转发数据量。
S1202:将所分配的转发数据量发送至队列管理单元,以使上述队列管理单元根据所分配的转发数据量更新上述目标缓存队列对应的数据盈余量。
具体的,上述应用于层次化调度单元的流量管理方法与前述应用于流量管理芯片的流量管理方法中层次化调度单元所执行的步骤相似,本发明实施例对此不再赘述。
由以上可见,层次化调度单元在申请转发数据量的缓存队列中选择目标缓存队列,并为缓存队列分配转发数据量,从而可以为各缓存队列补充数据盈余量,以保证各缓存队列的数据包的转发。并且层次化调度单元持续为各个缓存队列调度转发数据量,而不是在缓存队列中缓存进数据包之后再调度转发数据量。因此各个缓存队列的数据盈余量可以在大多数情况下保持在较高的水平,在缓存队列中缓存进数据包后,不需要等待对数据包进行调度后再转发,而是可以直接转发数据包,从而可以提高数据包转发的效率。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于流量管理芯片实施例而言,由于其基本相似于流量管理方法实施例,所以描述的比较简单,相关之处参见流量管理方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种流量管理方法,其特征在于,应用于流量管理芯片,所述流量管理芯片包括彼此之间通信连接的队列管理单元与层次化调度单元;
所述队列管理单元接收来自用户设备的数据包,并将所述数据包缓存至所述用户设备对应的缓存队列;
所述队列管理单元针对每个包含数据包的缓存队列,若确认该缓存队列对应的数据盈余量满足预设的转发条件,则转发该缓存队列中的数据包,并基于所转发数据包的数据量更新所述数据盈余量;
所述队列管理单元当确认缓存队列包含的数据包的数据量发生变化时,在该缓存队列的当前数据量不大于预设阈值的情况下,若该缓存队列的数据盈余量小于预设的最小盈余量,则向所述层次化调度单元申请该缓存队列的转发数据量;在该缓存队列的当前数据量大于所述预设阈值的情况下,根据所述数据盈余量与所述当前数据量之间差值,向所述层次化调度单元申请该缓存队列的转发数据量,其中,所述数据盈余量表示:为缓存队列预分配的转发数据量的剩余量,所述转发数据量表示:该缓存队列允许转发数据包的数据量;
所述层次化调度单元从申请转发数据量的缓存队列中选择目标缓存队列,为所述目标缓存队列分配转发数据量,并将所分配的转发数据量发送至所述队列管理单元;
所述队列管理单元根据所述层次化调度单元所分配的转发数据量,更新所述目标缓存队列对应的数据盈余量。
2.根据权利要求1所述的方法,其特征在于,所述队列管理单元根据所述数据盈余量与所述当前数据量之间差值,向所述层次化调度单元申请该缓存队列的转发数据量,包括:
所述队列管理单元若确定所述数据盈余量与所述当前数据量之间的差值小于预设差值,则向所述层次化调度单元申请该缓存队列的转发数据量;
所述队列管理单元若确定所述数据盈余量与所述当前数据量之间的差值不小于所述预设差值,则判断所述数据盈余量是否小于预设的最大盈余量,若为是,则向所述层次化调度单元申请该缓存队列的转发数据量。
3.根据权利要求1所述的方法,其特征在于,不同的缓存队列具有不同的调度优先级;则
所述层次化调度单元从申请转发数据量的缓存队列中选择目标缓存队列,为所述目标缓存队列分配转发数据量,包括:
所述层次化调度单元在一个分配周期内,将申请转发数据量的缓存队列中调度优先级最高的缓存队列作为目标缓存队列,并为所述目标缓存队列分配转发数据量。
4.根据权利要求3所述的方法,其特征在于,所述转发数据量与所述流量管理芯片的处理能力以及分配周期中包含的时钟周期数正相关,与所述流量管理芯片的时钟频率负相关。
5.根据权利要求3所述的方法,其特征在于,所述层次化调度单元在一个分配周期内,将申请转发数据量的缓存队列中调度优先级最高的缓存队列作为目标缓存队列,并为所述目标缓存队列分配转发数据量,包括:
所述层次化调度单元按照预设的分配周期,生成待分配令牌,所述待分配令牌表示的数据量为:所述转发数据量;
所述层次化调度单元确定申请转发数据量的缓存队列中调度优先级最高的缓存队列,作为目标缓存队列;
所述层次化调度单元为所述目标缓存队列分配所述待分配令牌。
6.根据权利要求3-5中任一项所述的方法,其特征在于,所述层次化调度单元包括不同层级的调度器;则
所述层次化调度单元将申请转发数据量的缓存队列中调度优先级最高的缓存队列作为目标缓存队列,并为所述目标缓存队列分配转发数据量,包括:
所述层次化调度单元调用第一调度器将转发数据量调度至下一低层级调度器中的第二调度器,其中,所述第一调度器为最高层级的调度器;
所述层次化调度单元若确定所述第二调度器不是最低层级的调度器,将所述第一调度器更新为所述第二调度器,返回执行所述调用第一调度器将转发数据量调度至下一低层级调度器中的第二调度器的步骤,其中,所述最低层级的调度器为:与缓存队列直接对应的调度器;
所述层次化调度单元若确定所述第二调度器是最低层级的调度器,调用所述第二调度器将转发数据量调度至申请转发数据量的缓存队列中调度优先级最高的目标缓存队列。
7.根据权利要求6所述的方法,其特征在于,每个调度器包含严格优先级调度SP模块和加权循环调度WRR模块;则
所述层次化调度单元调用第一调度器将转发数据量调度至下一低层级调度器中的第二调度器,包括:
所述层次化调度单元在第一调度器中,调用SP模块将转发数据量调度至WRR模块中的目标WRR模块,并调用所述目标WRR模块将转发数据量调度至下一层级调度器中的第二调度器;
所述层次化调度单元若确定所述第二调度器是最低层级的调度器,调用所述第二调度器将转发数据量调度至申请转发数据量的缓存队列中调度优先级最高的目标缓存队列,包括:
所述层次化调度单元若确定所述第二调度器是最低层级的调度器,在第二调度器中,调用SP模块将转发数据量调度至WRR模块中的目标WRR模块,并调用所述目标WRR模块将转发数据量调度至申请转发数据量的缓存队列中调度优先级最高的目标缓存队列。
8.根据权利要求6所述的方法,其特征在于,每个最低层级的调度器对应一个缓存队列链表,且每个缓存队列链表为:最低层级的调度器对应的缓存队列通过缓存队列指针依次串行链接得到的链表;则
最低层级的调度器的头指针指向所对应缓存队列链表的链表头,尾指针指向所对应缓存队列链表的链表尾;
每个除最低层次的调度器之外的第三调度器对应一个调度器链表,且每个调度器链表为:第三调度器对应的调度器通过调度器指针依次串行链接得到的链表;则
第三调度器的头指针指向所对应调度器链表的链表头,尾指针指向所对应调度器链表的链表尾。
9.一种流量管理芯片,其特征在于,所述流量管理芯片包括彼此之间通信连接的队列管理单元与层次化调度单元;所述队列管理单元、层次化调度单元用于执行权利要求1-8任一所述的流量管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110621670.5A CN113067778B (zh) | 2021-06-04 | 2021-06-04 | 一种流量管理方法及流量管理芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110621670.5A CN113067778B (zh) | 2021-06-04 | 2021-06-04 | 一种流量管理方法及流量管理芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113067778A CN113067778A (zh) | 2021-07-02 |
CN113067778B true CN113067778B (zh) | 2021-09-17 |
Family
ID=76568670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110621670.5A Active CN113067778B (zh) | 2021-06-04 | 2021-06-04 | 一种流量管理方法及流量管理芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113067778B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168317B (zh) * | 2021-11-08 | 2024-08-09 | 山东有人物联网股份有限公司 | 负载平衡的方法、负载平衡设备和计算机可读存储介质 |
CN117155874A (zh) * | 2022-05-24 | 2023-12-01 | 华为技术有限公司 | 数据包发送方法、转发节点、发送端及存储介质 |
CN117295118B (zh) * | 2023-10-08 | 2024-08-23 | 广州市玄武无线科技股份有限公司 | 一种短信数据缓冲及流量控制的方法 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061351A (en) * | 1997-02-14 | 2000-05-09 | Advanced Micro Devices, Inc. | Multicopy queue structure with searchable cache area |
US6084856A (en) * | 1997-12-18 | 2000-07-04 | Advanced Micro Devices, Inc. | Method and apparatus for adjusting overflow buffers and flow control watermark levels |
CN1146192C (zh) * | 2002-04-17 | 2004-04-14 | 华为技术有限公司 | 以太网交换芯片输出队列管理调度方法和装置 |
US7716314B1 (en) * | 2003-12-30 | 2010-05-11 | Dinochip, Inc. | Traffic management in digital signal processor |
US7876763B2 (en) * | 2004-08-05 | 2011-01-25 | Cisco Technology, Inc. | Pipeline scheduler including a hierarchy of schedulers and multiple scheduling lanes |
CN101030926A (zh) * | 2006-02-28 | 2007-09-05 | 华为技术有限公司 | 全球微波接入互操作性网络数据流量控制方法 |
CN101179486B (zh) * | 2006-11-10 | 2010-07-14 | 中兴通讯股份有限公司 | 一种计算机网络数据包转发的car队列管理方法 |
CN101043460B (zh) * | 2007-04-24 | 2010-07-07 | 华为技术有限公司 | 实现多网络处理单元单流转发的设备及方法 |
WO2009070811A1 (en) * | 2007-11-30 | 2009-06-04 | Credit Suisse Securities (Usa) Llc | A computer system and method for generating and maintaining a financial benchmark |
CN101272345B (zh) * | 2008-04-29 | 2010-08-25 | 杭州华三通信技术有限公司 | 一种流量控制的方法、系统和装置 |
CN101340393B (zh) * | 2008-08-14 | 2010-12-08 | 杭州华三通信技术有限公司 | 组播流控方法、系统及现场可编程门阵列 |
CN101841461B (zh) * | 2010-02-11 | 2012-05-30 | 北京星网锐捷网络技术有限公司 | 一种控制令牌桶更新的方法和装置 |
CN101848167B (zh) * | 2010-06-01 | 2012-01-25 | 北京星网锐捷网络技术有限公司 | 基于类的加权公平队列调度方法及装置 |
CN102130833A (zh) * | 2011-03-11 | 2011-07-20 | 中兴通讯股份有限公司 | 一种高速路由器流量管理芯片链表存储管理方法及系统 |
WO2012159362A1 (zh) * | 2011-08-01 | 2012-11-29 | 华为技术有限公司 | 一种流量整形的方法及设备 |
CN102368741A (zh) * | 2011-12-05 | 2012-03-07 | 盛科网络(苏州)有限公司 | 支持层次化队列调度和流量整形的方法及装置 |
CN102594692B (zh) * | 2012-02-23 | 2018-01-19 | 中兴通讯股份有限公司 | 一种流量整形的方法及装置 |
CN103379038B (zh) * | 2012-04-12 | 2018-08-03 | 南京中兴新软件有限责任公司 | 一种流量调度的装置及方法 |
CN103581055B (zh) * | 2012-08-08 | 2016-12-21 | 华为技术有限公司 | 报文的保序方法、流量调度芯片及分布式存储系统 |
CN102811176B (zh) * | 2012-08-28 | 2015-09-23 | 迈普通信技术股份有限公司 | 一种数据流量控制方法和装置 |
CN102916903B (zh) * | 2012-10-25 | 2015-04-08 | 华为技术有限公司 | 缓存调整方法及装置 |
US9450881B2 (en) * | 2013-07-09 | 2016-09-20 | Intel Corporation | Method and system for traffic metering to limit a received packet rate |
CN104753818B (zh) * | 2013-12-30 | 2019-04-30 | 深圳市中兴微电子技术有限公司 | 一种队列调度方法和装置 |
CN103823780B (zh) * | 2014-03-03 | 2016-10-12 | 东南大学 | 一种实时现场总线控制调度方法 |
US10084668B2 (en) * | 2014-04-09 | 2018-09-25 | Verizon Patent And Licensing Inc. | Method and system for on demand elastic management of devices and services |
CN106302239A (zh) * | 2015-05-25 | 2017-01-04 | 深圳市中兴微电子技术有限公司 | 一种单组播流量调度管理的方法及装置 |
CN105024942B (zh) * | 2015-05-29 | 2018-05-08 | 桂林电子科技大学 | 一种动态流量监控方法 |
US10157023B2 (en) * | 2016-02-25 | 2018-12-18 | SK Hynix Inc. | Memory controller and request scheduling method using request queues and first and second tokens |
CN105871751A (zh) * | 2016-03-25 | 2016-08-17 | 中国科学院计算技术研究所 | 一种数据中心网络带宽保证方法及系统 |
CN107306232B (zh) * | 2016-04-22 | 2021-02-26 | 华为技术有限公司 | 网络设备、控制器、队列管理方法及流量管理芯片 |
CN107634913B (zh) * | 2017-08-22 | 2019-07-12 | 中国电子科技集团公司第五十四研究所 | 一种业务流量控制及区分服务的星载设备系统 |
CN110768913A (zh) * | 2018-07-27 | 2020-02-07 | 华为技术有限公司 | 流量控制方法及装置 |
CN109617829B (zh) * | 2018-11-01 | 2023-03-24 | 创新先进技术有限公司 | 一种业务请求数据的处理方法、装置及系统 |
CN109862069B (zh) * | 2018-12-13 | 2020-06-09 | 百度在线网络技术(北京)有限公司 | 消息处理方法和装置 |
CN111782578B (zh) * | 2020-05-29 | 2022-07-12 | 西安电子科技大学 | 一种缓存控制方法、系统、存储介质、计算机设备及应用 |
CN112671832A (zh) * | 2020-12-03 | 2021-04-16 | 中国科学院计算技术研究所 | 虚拟交换机中保障层次化时延的转发任务调度方法及系统 |
-
2021
- 2021-06-04 CN CN202110621670.5A patent/CN113067778B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113067778A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113067778B (zh) | 一种流量管理方法及流量管理芯片 | |
CN107579926B (zh) | 基于令牌桶算法的Ceph云存储系统的QoS设置方法 | |
US7619970B2 (en) | Method, device and system of scheduling data transport over a fabric | |
CN113312160B (zh) | 用于任务分配系统中的行为配对的方法和系统 | |
US20070070895A1 (en) | Scaleable channel scheduler system and method | |
EP1522924A2 (en) | Improved EDF scheduling method | |
CN108984280B (zh) | 一种片外存储器的管理方法和装置、计算机可读存储介质 | |
CN102035732A (zh) | 业务调度方法及装置 | |
WO2002009358A2 (en) | Method of active dynamic resource assignment in a telecommunications network | |
CN112968845B (zh) | 一种带宽管理方法、装置、设备及机器可读存储介质 | |
CN114666284B (zh) | 一种流量控制方法、装置、电子设备及可读存储介质 | |
US20130094358A1 (en) | Adaptive queue-management | |
CN115421905A (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN115269190A (zh) | 内存分配方法、装置、电子设备、存储介质及产品 | |
US7277389B2 (en) | Systems and methods for grouping of bandwidth allocations | |
CN109905331B (zh) | 队列调度方法及装置、通信设备、存储介质 | |
WO2003081874A1 (en) | Scheduling using quantum and deficit values | |
JP5428203B2 (ja) | データ出力装置および通信装置ならびにスイッチ装置 | |
CN113906720B (zh) | 流量调度方法、设备及存储介质 | |
CN102546423A (zh) | 队列调度方法、装置及网络设备 | |
CN116366573A (zh) | 队列管理和调用方法、网卡设备以及存储介质 | |
CN115766582A (zh) | 流量控制方法、装置和系统、介质和计算机设备 | |
CN115378879A (zh) | 数据控制方法及相关装置 | |
CN114500402A (zh) | 报文处理的方法、设备及存储介质 | |
EA008956B1 (ru) | Способ динамического управления ресурсами в системах связи на основе качества обслуживания и типа услуг |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |