CN1984046B - 对应多播数据包的数据包传送装置及方法 - Google Patents

对应多播数据包的数据包传送装置及方法 Download PDF

Info

Publication number
CN1984046B
CN1984046B CN2006100716727A CN200610071672A CN1984046B CN 1984046 B CN1984046 B CN 1984046B CN 2006100716727 A CN2006100716727 A CN 2006100716727A CN 200610071672 A CN200610071672 A CN 200610071672A CN 1984046 B CN1984046 B CN 1984046B
Authority
CN
China
Prior art keywords
mentioned
information
pointer
priority
packet
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
Application number
CN2006100716727A
Other languages
English (en)
Other versions
CN1984046A (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.)
ARAKS NETOWRK KK
Alaxala Networks Corp
Original Assignee
ARAKS NETOWRK KK
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 ARAKS NETOWRK KK filed Critical ARAKS NETOWRK KK
Publication of CN1984046A publication Critical patent/CN1984046A/zh
Application granted granted Critical
Publication of CN1984046B publication Critical patent/CN1984046B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • H04L45/3065Route determination based on the nature of the carried application for real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

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

Abstract

本发明的一个课题是优先地处理VoIP等数据包。因此,提供例如以下这样的技术。优先级指定部根据报头信息指定优先级信息。指针检索部参照指针表取得与目的地地址对应的指针信息。分配部按照优先级信息,将指针分配给高优先队列和低优先队列。下个队列保存从目的地信息表中取得的指针信息。调度器按照下个队列、高优先队列、低优先队列的优先次序,从各队列中抽取指针信息并输出。目的地信息表检索部根据指针信息,从目的地信息表中取得目的地信息及/或指针信息,将该目的地信息输出给数据包传送复制部。并且将指针信息输出给下个队列。

Description

对应多播数据包的数据包传送装置及方法
技术领域
本发明涉及数据包传送装置及多播展开方法。另外,所谓多播展开,是指从一个多播数据包中检索对应的多个目的地。另外,对每一个检索到的多个目的地制作数据包的副本。并且将所复制的相同内容的数据包进行传输。
背景技术
随着IP网络中的动画传输服务、重视实时性的VoIP电话服务等的正式化,要求这些服务的高品质化。在路由器/交换机中,为了提高实现高效的动画传输的多播处理和VoIP的品质,抑制延迟抖动的QoS控制的重要性变高。例如,为了削减成本而要求增大可收容在一个路由器/交换机中的接口数/用户数。此外,为了对应动画传输服务等大容量数据通信而要求用路由器/交换机收容更高速的线路来用线速进行处理。
另一方面,公开了通过仅进行1次多播处理中的目的地信息表读取,纳入到与单播处理相同的循环内,来实现在输入频带上没有限制的有效率的多播处理的技术(例如参照特许文献1的图3等)
特许文献1=日本特开2000-31983号公报
因收容在一个装置中的接口数的增大,作为目的地信息表所需的位数增加。因收容线路的高速化和读入位数的增大,不能将向目的地信息表的访问纳入到必要处理循环内。由此,在多播处理时,有时需要与展开数(收容用户数)成比例地多次读入目的地信息表。
此外,由于在多播展开处理中有时会抑制单播处理,所以存在多播展开处理无法中断的情况。即使有想要优先的数据包处理,在多播展开处理中也会等待。例如,在混有展开数较大的多播的情况下,重视实时性的VoIP数据包的延迟抖动变大,在不具有较多的接收缓存器的情况下有被丢弃的情况。
发明内容
因此,研究了即使在混有多播展开处理的情况下也能够优先地处理VoIP等优先数据包的数据包传送装置及多播展开方法。并且,研究了能够设定从队列中抽取高优先的数据包和低优先的数据包的比例、通过所设定的比例来处理数据包的技术。并且,研究了即使在混有多播展开处理、而多播展开的期间、接下来的的目的地检索被等待的情况下、也能够比其他流优先地处理设为高优先的流的技术。
此外,研究了下述技术,即,收容高速线路,可增大收容接口数,从而即使不具有较多接收缓存器,并混有展开数较多的多播处理,也能够使重视实时性的VoIP数据包为高优先,从而不会发生VoIP数据包的丢弃且能够将延迟抖动抑制为较小。并且研究了有效率地收容多播和VoIP的技术。
鉴于上述研究,例如在多播处理时,在作为处理瓶颈的目的地信息表读取之前设置各自的队列作为多播用和VoIP用。由此,即使在混有多播展开处理的情况下也能够优先地处理VoIP。
在目的地检索实施前(目的地表读入前)进行流检测,并对每个流指定优先级。使目的地表读入前的最初指针队列优先级不同,进行按照优先级的目的地表读入。由此,即使混有多播展开处理且在进行多播展开的期间,接下来的目的地检索被等待的情况下,也能够将设为高优先的流比其他流更优先地处理。另外,在对应于输出频带的发送控制部中的优先控制以往就有,但在本实施方式中是在目的地检索的目的地信息表读入前进行优先控制。
在第1实施方式中,在低优先的多播展开开始后,在该展开结束之前停止高优先数据包的处理。在第2实施方式中,使目的地表读入前的下个指针队列也优先级不同。由此,即使在低优先的多播数据包展开中,也能够优先地进行高优先数据包的处理。
根据本实施方式,能够提供一种即使在混有多播展开处理的情况下、也能够优先地处理VoIP等优先数据包的数据包传送装置及多播展开方法。此外,根据本发明,能够设定从队列中抽取高优先的数据包和低优先的数据包的比例,可以以所设定的比例处理数据包。根据本发明,即使在混有多播展开处理、且在多播展开的期间歇下一个目的地检索被等待的情况下,也能够将设为高优先的流比其他流更优先地处理。
此外,根据本实施方式,收容高速线路,能够增大收容接口数,从而即使不具有很多接收缓存器,并混有展开数较多的多播处理,也能够使重视实时性的VoIP数据包为高优先,能够不发生VoIP数据包的丢弃且将延迟抖动抑制得较小。此外,根据本发明,能够有效率地收容多播和VoIP。
附图说明
图1是采用多播对应的路由器101的网络结构例的示意图。
图2是进行对目的地信息表的1次集中读入的以往的路由器101的结构例的示意图。
图3是从图2所示的装置对于所输入的多播与VoIP的数据包输出次序的示意图。
图4是进行多播目的地表多次读入的路由器101的结构例的示意图。
图5是实施例1中的带最初指针优先控制的目的地检索部的一结构例的示意图。
图6是在低优先多播与高优先VoIP的带最初指针优先控制的调度中的数据包输出次序的示意图。
图7是目的地信息表读入最初指针队列中的多播数据包的完全优先调度的流程的示意图。
图8是目的地信息表读入最初指针队列的多播数据包的WFQ调度的流程的示意图。
图9是目的地检索部404所执行的带最初指针优先控制的目的地检索流程的示意图。
图10是图9的步骤913的详细流程(完全优先调度的情况)的示意图。
图11是本发明的实施例2中的带最初·下个指针优先控制的目的地检索部的一结构例的示意图。
图12是低优先多播和高优先VoIP的带最初·下个指针优先控制的调度下的数据包输出次序的示意图。
图13是带最初·下个指针优先控制的目的地检索流程的例子的示意图。
图14是带最初及下个指针优先控制的目的地信息表读入完全优先调度的流程的例子的示意图。
图15是以往的1次读入方式的目的地信息表的格式的一结构例的示意图。
图16是多次读入方式的目的地信息表的格式的一结构例的示意图。
图17是图10的处理1007的详细流程(完全优先调度控制)的例子的示意图。
图18是图10的处理1008的详细流程(WFQ调度)的例子的示意图。
具体实施方式
1、第1实施方式
1.1装置结构
图1是采用多播对应的路由器101的网络结构的示意图。
该网络例如具有路由器(数据包传送装置)101、内容传输服务器102、VoIP(Voice Over IP:IP语音传输)电话机103、客户终端104、中继装置105。
路由器101传送VoIP数据包、多播数据包等数据包。内容传输服务器102传输例如多播数据包。VoIP电话机103-1通过VoIP与另一个VoIP电话机103-2或客户终端104语音通信。客户终端104接收例如来自内容传输服务器的多播数据包。中继装置105中继路由器101、VoIP电话机103、客户终端104间的数据包。
(1次读入的例子)
首先,结合本实施方式对以往那样仅进行1次目的地信息表读取、即使是多播也通过1次访问取得所有目的地信息的情况的例子进行说明。另外,为了方便,各结构对应于本实施方式而记载,但并不是确定以往的技术的结构。
图2是从目的地信息表中1次集中读入的路由器101的结构例的示意图。
接收队列201-1~201-m是保存来自各输入端口#0~#m的接收数据包的信息的等待队列。各接收队列201对循环调度器202提出抽取请求,按照由循环调度器202决定的顺序抽取数据包。循环调度器202对于来自与各输入端口对应的接收队列201的抽取请求,依次从队列中抽取数据包,进行控制以使来自各队列的抽取变得均衡。
数据包传送/复制部203对目的地检索部204提出目的地检索请求,按照来自目的地检索部204的检索结果将数据包传送给交换机206。检索请求包含例如数据包的报头信息,检索结果包含目的地信息。此外,在多播的情况下,数据包传送/复制部203对来自目的地检索部204的多个目的地信息,进行数据包的复制,并传送给交换机206。
1次读入方式的目的地信息表205将输出端口信息及下一跳IP地址作为目的地信息存储。此外,存储多播时的多个目的地信息。
图15是以往的1次读入方式的目的地信息表205的格式的一结构例的示意图。如图15(a)所示,目的地信息表205例如包括输出端口信息和网络IP地址。输出端口信息是例如对应于各端口的多个标志信息。在图示的例子中,对于各端口,“1”表示向该端口输出,而“0”表示不向该端口输出。图15(b)是对单播数据包的结构例。例如输出端口1的标志为“1”,存储着“192.168.0.2”作为下一跳IP地址。图15(c)是对多播数据包的结构例。例如作为多播数据包的传输目的地,对应于输出端口0、1、6的标志信息为“1”,下一跳IP地址的字段为“任意”。该多播数据包被复制而分别从端口#0、#1、#6输出。
图2的目的地表1次读入目的地检索部204针对来自数据包传送/复制部203的检索请求,仅进行1次目的地信息表205的检索,并将检索结果输出给数据包传送/复制部203。例如,目的地检索部204根据包含在检索请求中的报头信息,一次读入输出端口信息和下一跳IP地址。例如,在图15(b)所示的目的地信息表205的例子中,一次读入对应于各输出端口0~m的标志“0、1、……0”、和下一跳IP地址“192.168.0.2”。图15(c)的多播例子的情况也同样。此外,将所读入的输出端口信息和下一跳IP地址作为检索结果,输出给数据包传送/复制部203。
交换机206按照输出端口信息向对应于输出端口的发送队列207交换从数据包传送/复制部203传送来的数据包。
发送队列207-1~207-m是保存来自交换机206的发送数据包的信息的等待队列。此外,发送队列207对发送控制部208提出抽取请求,以由发送控制部208决定的定时进行抽取。
发送控制部208-1~208-m按照输出端口的频带,从发送队列207进行发送数据包的抽取,并从各输入端口#0~#m输出数据包。此外,以往的QoS控制是在这里进行的。
图3是对于输入到图2的装置中的多播与VoIP的数据包的输出次序的示意图。例如,如果向图2所示的路由器中按照多播数据包(以下称为MC)0、VoIP数据包(以下称为VoIP)0、MC1、VoIP1的顺序输入,则MC0和MC1分别被复制并被输出,但以与输入次序同样的顺序输出。这里,如果多播的展开数较多,则例如VoIP1的延迟时间变长。
(多次读入的结构)
图4是对多播目的地表进行多次读入的本实施方式的路由器101的结构例的示意图。
路由器101具有输入部410、数据包传送/复制部403、目的地检索部404、目的地信息表405、交换机406、和输出部420。输入部410例如具有对应于输入端口的接收队列401和循环调度器402。输出部420例如具有对应于输出端口的发送队列407及发送控制部408。路由器101也可以还具有调度设定部409。
输入部410输入单播数据包及多播数据包。目的地检索部404根据经由输入部410输入的数据包的报头信息指定优先级,以对应于该优先级的顺序1次或多次检索目的地信息表405,从而取得一个或多个输出端口信息及/或下一跳地址。
数据包传送/复制部403按照包括由目的地检索部404取得的输出端口信息和下一跳地址的目的地信息,输出所输入的单播数据包,以及按照包括由目的地检索部404取得的多个输出端口信息的目的地信息,复制所输入的多播数据包并输出。交换机406按照该目的地信息对来自数据包传送/复制部403的单播数据包及多播数据包进行交换。输出部420输出交换后的数据包。
调度设定部409例如具有存储部、接口、和计数器。例如,使用命令行接口(CLI)将后述的带权重的均衡保证下的比例设定在存储部中。此外,对于从高优先队列和低优先队列的抽取,设定表示执行后述的完全优先调度控制、还是执行WFQ调度控制的调度模式设定值。计数器具有高优先计数器和低优先计数器。高优先计数器如果从高优先队列505-1抽取指针信息,则积累与上述比例对应的高优先权重设定值。此外,低优先计数器如果从低优先队列505-2抽取指针信息,则积累与上述比例对应的低优先权重设定值。另外,各计数器的值在初期设定中例如设定为0。
多次读入方式的目的地信息表405存储有输出端口信息和下一跳IP地址作为目的地信息。此外,为了存储多播时的多个目的地信息,存储有向下个目的地信息表的指针、和目的地信息结束标识符。
图16是本实施方式的多次读入方式的目的地信息表405的格式的一结构例的示意图。
如图16(a)所示,目的地信息表405例如对应于指针信息而包含有目的地信息结束标识符、输出端口信息、和下一跳IP地址或下个指针(第2指针信息)。输出端口信息例如可以使用输出端口号,但除了编号以外,也可以使用文字等适当的识别信息。此外,下一跳IP地址除了IP地址以外,也可以使用MAC地址等,也可以使用IP地址与MAC地址两者。目的地信息结束标识符表示有无接下来要检索的目的地信息。例如,对于单播数据包,输出端口为1个,设目的地信息结束标识符为1。此外,对于多播数据包,在存储有用来获得其他目的地信息的下个指针的情况下设目的地信息结束标识符为0,在没有其他目的地信息、并没有下个指针的情况下设为1。
图16(b)是对单播数据包的结构例。对于单播数据包,目的地信息表405包含作为目的地信息结束标识符的“1”,输出端口信息(例如端口号1),和下一跳IP地址(例如192.168.0.2)。在图示的例子中,参照例如指针信息为A的情况。
图16(c)是对多播数据包的结构例。对于多播数据包,目的地信息表405包含目的地信息结束标识符、一个输出多播数据包的输出端口信息、和接下来要参照的下一跳指针。图16(c)的例子是对输出端口号0、1、6输出多播数据包的例子。首先,例如对应于指针信息B,存储有目的地信息结束标识符0、输出端口号0、下个指针1(图16(c)上段)。接着,对应于下个指针1,存储有目的地信息结束标识符0、输出端口号1、下个指针2(图16(c)中段)。进而,对应于下个指针2,存储有目的地信息结束标识符1、输出端口号6(图16(c)下段)。在多播的情况下,目的地信息表按照最初指针信息(第1指针信息)、下个指针信息被多次读入,如果目的地信息结束标识符为1、不再有下个指针,则该多播数据包的目的地信息检索结束。
图5是本实施方式中的带最初指针优先控制的目的地检索部404的一结构例的示意图。
目的地检索部404例如具有流检测/优先级指定部501、目的地信息表指针检索部502、指针表503、最初分配部504、最初指针低优先队列505-1、最初指针高优先队列505-2、下个指针队列506、优先控制调度器507、目的地信息表检索部508。
流检测/优先级指定部501根据来自数据包传送/复制部403的数据包报头信息的组合来检测流,对每个流指定处理的优先级。例如,流检测/优先级指定部501根据数据包报头信息的组合来检测VoIP的流,将VoIP的流的优先级指定为较高。例如将优先级信息设定为“高”。此外,流检测/优先级指定部501根据数据包报头信息的组合来检测多播的流,将多播的流的优先级指定为较低。例如将优先级信息设定为“低”。此外,流检测/优先级指定部501将所输入的报头信息和优先级信息输出给目的地信息表指针检索部502。另外,除了VoIP之外,流检测/优先级指定部501也可以将适当的语音数据包的优先级设定为“高”。除此以外,也可以将适当的数据包的优先级信息设定为“高”或“低”。此外,在本实施方式中,设定为“高”和“低”的2阶段,但也可以设定多个优先级,排队成各个优先级的多个队列。
目的地信息表指针检索部502以数据包报头信息内的目的地IP地址为键值,检索CAM(content addressable memory,内容可寻址存储器)或树结构数据,利用其检索结果,参照指针表503,从而取得用来读入目的地信息表405的最初指针信息。此外,将所取得的最初指针信息和优先级信息输出给最初分配部504。
指针表503存储用来读入目的地信息表405的指针信息。目的地IP地址和最初指针信息例如是1对1地对应的,如果决定了目的地IP地址就决定了参照目的地信息表405的指针。例如,对于单播的目的地IP地址,指针表503被构成为与图16(b)的指针A相关联。此外,例如对于多播的目的地IP地址,被构成为与图16(c)的指针B相关联。另外,并不限于1对1,也可以使目的地IP地址和最初指针信息n对1地对应,即使是不同的目的地IP地址也可以指向相同的指针信息。
最初分配部504按照由流检测/优先级指定部501指定的优先级,将指针信息和优先级信息分配给最初指针低优先队列505-1和最初指针高优先队列505-2的某个队列。另外,对于优先级信息也可以省略。
最初指针低优先队列505-1、最初指针高优先队列505-2是对由目的地信息表指针检索部502取得的最初指针信息和由流检测/优先级指定部501指定的优先级信息进行保存的各优先级的等待队列。另外,优先级信息也可以省略。此外,各队列505-1、505-2对优先控制调度器507提出抽取请求,按照由优先控制调度器507决定的顺序抽取最初指针信息。
最初指针低优先队列505-1对着由流检测/优先级指定部501指定的优先级较低的数据包(例如多播数据包)的最初指针信息进行保存。最初指针高优先队列505-2对由流检测/优先级指定部501指定的优先级较高的数据包(例如VoIP数据包)的最初指针信息进行保存。
下个指针队列506是保存由目的地信息表检索部508取得的下个指针信息的等待队列。此外,下个指针队列506对优先控制调度器507提出抽取请求,按照由优先控制调度器507决定的顺序抽取下个指针信息。
优先控制调度器(带优先控制的目的地信息表读入调度器)507针对来自最初指针低优先队列505-1、最初指针高优先队列505-2及下个指针队列506的抽取请求,进行按照优先级的抽取调度。此外,按照调度结果,从各队列中抽取指针信息(最初指针信息或下个指针信息),将指针信息发送给目的地信息表检索部508。例如,按照下个指针队列506、最初指针高优先队列505-2、最初指针低优先队列505-1的优先次序抽取指针信息。此外,为了维持数据包的处理顺序性,如果一旦从最初指针队列505-1、505-2进行抽取,则可以在从目的地信息表检索部508收到目的地信息输出结束通知以前,不进行从最初指针队列505-1、505-2的下个数据包的指针信息的抽取,而只进行从下个指针队列506的抽取。另外,该抽取抑制控制与优先级无关地进行。
目的地信息表检索部508按照来自优先控制调度器507的指针信息,参照目的地信息表405,取得所对应的目的地信息、下个指针信息、和目的地信息结束标识符。此外,将目的地信息作为检索结果输出给数据包传送/复制部403。这里,目的地信息表检索部508在单播的情况下取得输出端口号和下一跳IP地址作为目的地信息并输出,在多播的情况下,取得输出端口号并输出。此外,通过目的地信息结束标识符对目的地信息输出是否结束进行判断、在为目的地信息输出结束的情况下(例如目的地信息结束标识符为1的情况下),将目的地信息输出结束通知发送给优先控制调度器507。另一方面,在目的地信息输出没有结束的情况下(例如目的地信息结束标识符为0的情况下),将下个指针信息发送给下个指针队列506。
图6是在低优先多播与高优先VoIP的带最初指针优先控制的调度中的数据包输出次序的示意图。
例如,如果以MC0、VoIP0、MC1、VoIP1的顺序输入,则在MC0被复制并输出后,输出VoIP0。此时,如果MC1和VoIP1分别保存在低优先队列、高优先队列中,则按照优先级而先输出VoIP1。因而,VoIP1可以被输出而不必等到MC1被复制并输出以后。例如,即使多播展开数较多,也能减小对VoIP数据包的影响。
1.2流程图
图9是目的地检索部404所执行的带最初指针优先控制的目的地检索流程的示意图。
如果从数据包传送/复制部403输入了包含数据包报头信息的目的地检索请求,则目的地检索部404执行以下的处理。
流检测/优先级指定部501根据报头信息检测流,并指定优先级(处理901)。目的地信息表指针检索部502根据报头信息(例如目的地IP地址)检索向目的地信息表信息的指针(处理902)。例如,参照指针表503,取得与目的地IP地址对应的最初指针信息。最初分配部504将最初指针信息向对应于优先级的最初指针队列排队(处理903)。如果最初指针低优先队列505-1、及最初指针高优先队列505-2中指针信息被排队,则对优先控制调度器507提出抽取请求(处理904)。接着,转移到处理913。
在处理913中,优先控制调度器507进行抽取调度(处理913)。例如,决定从下个指针队列506、最初指针低优先队列505-1、最初指针高优先队列505-2的哪一个队列中抽取指针。另外,处理的详细情况在后面叙述。优先控制调度器507按照所决定的顺序从队列中抽取指针信息(处理905)。并且,将所抽取的指针信息输出给目的地信息表检索部508。
目的地信息表检索部508利用指针信息访问目的地信息表405(处理906)。目的地信息表检索部508从目的地信息表405中取得目的地信息及/或下个指针信息(处理907)。并且取得目的地信息结束标识符。例如,在与单播对应的指针信息(例如图16(b)的指针A)的情况下,作为目的地信息而取得输出端口号“1”、和网络IP地址“192.168.0.2”,再取得目的地信息结束标识符1。另一方面,在与多播对应的指针信息(例如图16(c)的指针B)的情况下,作为目的地信息而取得输出端口号“0”,作为下个指针信息而取得“下个指针1”,再取得目的地信息结束标识符0。目的地信息表检索部508将目的地信息作为检索结果输出给数据包传送/复制部403(处理908)。
目的地信息表检索部508根据目的地信息结束标识符判断目的地信息是否结束(处理909)。例如,如果目的地信息结束标识符为“1”则判断目的地信息结束,而如果目的地信息结束标识符为“0”则判断目的地信息没有结束。另外,标识符除此以外也可以是其他适当的信息。此外,并不限于此,也可以通过适当的方法判断目的地信息的结束。在目的地信息表检索部508判断出目的地信息结束的情况下(处理909:是),转移到处理910,而在判断目的地信息没有结束的情况下(处理909:否),转移到处理911。
在处理910中,目的地信息表检索部508对优先控制调度器507发送目的地信息输出结束通知(处理910)。
在处理911中,目的地信息表检索部508向下个指针队列506对所取得的下个指针信息进行排队(处理911)。下个指针队列506对优先控制调度器507提出抽取请求(处理912)。接着,转移到处理913,执行以后的处理。排队到下个指针队列506中的指针信息被优先地抽取(例如处理905),按照下个指针信息重复检索目的地信息表405(例如处理906、907)。
图10是图9的处理913及905的详细流程的示意图。参照图10说明由优先控制调度器507进行的上述处理913及905的详细情况。
优先控制调度器507如果输入来自指针队列的抽取请求,则执行以下的处理。抽取请求例如从最初指针低优先队列505-1、最初指针高优先队列505-2、下个指针队列506的各队列输出(相当于图9的处理904、912)。
优先控制调度器507判断是否有来自下个指针队列506的抽取请求(处理1001)。如果有来自下个指针队列506的抽取请求(处理1001:是),则优先控制调度器507从下个指针队列506抽取指针信息,输出给目的地信息表检索部508(处理1008)。这样,如果将指针信息排队到下个指针队列506中,则从下个指针队列506提出抽取请求,并执行处理1001、处理1008,从而从下个指针队列506中抽取指针信息。
另一方面,如果没有来自下个指针队列506的抽取请求(处理1001:否),则优先控制调度器507判断是否处于来自最初指针队列505-1、505-2的抽取请求抑制中(处理1002)。例如可以参照表示是否处于抽取抑制中的标志来判断。该标志在初始状态可以设定为“抑制解除”。
如果是处于来自最初指针队列505的抽取请求抑制中(处理1002:是),则优先控制调度器507判断目的地信息输出结束通知是否来到(处理1003)。如果目的地信息输出结束通知来到(处理1003:是),则优先控制调度器507解除来自最初指针队列505的抽取请求抑制(处理1004)。例如将标志设定为“抑制解除”。并转移到处理1002。另一方面,如果目的地信息输出结束通知没有来到(处理1003:否),则优先控制调度器507转移到处理1002。
此外,如果不是处于来自最初指针队列505的抽取请求抑制中(处理1002:否),则优先控制调度器507从调度设定部409读入调度模式设定值(处理1005)。并且,优先控制调度器507判断所读入的调度模式设定值例如是否表示WFQ(处理1006)。在调度模式设定值表示WFQ的情况下(处理1006:Y),优先控制调度器507执行WFQ调度控制,从最初指针低优先队列505-1或最初指针高优先队列505-2中抽取指针信息(处理1200)。另一方面,在调度模式设定值不表示WFQ的情况下(处理1006:否),优先控制调度器507执行完全优先调度控制,从最初指针低优先队列505-1或最初指针高优先队列505-2中抽取指针信息(处理1100)。另外,完全优先调度控制、WFQ调度控制的处理的详细情况在后面叙述。
优先控制调度器507抑制来自最初指针队列505的抽取请求(处理1009)。例如将标志设定为“抑制中”。
1.3完全优先调度控制(流程图)
图17是完全优先调度控制的流程图。参照图17说明上述的处理1100。
首先,在启动完全优先调度控制后,优先控制调度器507判断是否有来自最初指针高优先队列505-2的抽取请求(处理1701)。如果没有来自最初指针高优先队列505-2的抽取请求(处理1701:否),则优先控制调度器507从最初指针低优先队列505-1抽取指针信息,输出给目的地信息表检索部508(处理1702)。并且转移到处理1009。另一方面,如果有来自最初指针高优先队列505-2的抽取请求(处理1701:是),则优先控制调度器507从最初指针高优先队列505-2抽取指针信息,输出给目的地信息表检索部508(处理1703)。并且转移到处理1009。
(动作例)
图7是目的地信息表读入最初指针队列中的多播数据包的完全优先调度的流程的示意图。
参照图7说明由调度器507进行的指针的抽取的动作例。
首先说明图中的左栏。如果在低优先队列701(与图5的队列505-1对应)有MC0(图中的左第1段),则调度器704(与图5的优先控制调度器507对应)抽取MC0(左第2段)。这里,来自低优先队列701及高优先队列702的抽取被抑制。MC0在目的地检索后,将下个指针信息排队到下个指针队列703(与图5的队列506对应)中(左第3段)。接着,从下个指针队列703提出抽取请求,调度器704优先地提取下个指针队列703的MC0(左第4段)。这里,设定按照MC0的目的地检索,从目的地信息表检索部508接收目的地信息输出结束通知,从而解除了抑制。
接着说明图的中央栏。在如左第4段那样输出MC0、从而各队列成为图示的状态时,调度器704按照优先级从高优先队列702中抽取VoIP0(中央第1段)。并且,同样依次抽取VoIP1、VoIP2(中央第2、3段)。并且,在如中央第3段那样输出VoIP从而在高优先队列702中不再有指针信息时,调度器704从低优先队列701中抽取MC 1(中央第4段)。
接着说明图的右栏。MC1在目标检索后,将下个指针信息排队到下个指针队列703中(右第1段)。接着,从下个指针队列703提出抽取请求,调度器704优先地抽取下个指针队列703的MC1(右第2段)。在如右第2段那样输出MC1从而各队列成为图示的状态后,调度器704按照优先级依次抽取VoIP3、VoIP4(右第3、4段)。
1.4WFQ(带权重的均衡保证)调度控制(流程图)
图18是WFQ调度控制的流程图。参照图18说明上述的处理1200。
首先,在WFQ调度控制启动后,优先控制调度器507判断是否有来自最初指针高优先队列的抽取请求(处理1801)。如果有来自最初指针高优先队列的抽取请求(处理1801:是),则优先控制调度器507转移到处理1802,而如果没有该抽取请求(处理1801:否),则转移到处理1804。
在处理1802中,优先控制调度器507判断是否有来自最初指针低优先队列的抽取请求(处理1802)。如果有来自最初指针低优先队列的抽取请求(处理1802:是),则优先控制调度器507转移到处理1803,而如果没有来自最初指针低优先队列的抽取请求(处理1802:否),则转移到处理1805。
在处理1803中,优先控制调度器507判断高优先计数器的值是否为低优先计数器的值以下(处理1803)。如果高优先计数器的值为低优先计数器的值以下(处理1803:是),则优先控制调度器50转移到处理1805,而除此以外(处理1803:否),转移到处理1804。另外,在高优先计数器与低优先计数器的值相同的情况下,也可以转移到处理1804,以从低优先队列抽取指针信息。
在处理1805中,优先控制调度器507从最初指针高优先队列中抽取指针信息(处理1805)。并且,优先控制调度器507从调度设定部409中读入WFQ高优先权重设定值(处理1807)。优先控制调度器507将所读入的WFQ高优先权重设定值加到高优先计数器(处理1809)。
另一方面,在处理1804中,优先控制调度器507从最初指针低优先队列中抽取指针信息(处理1804)。在该调度控制中,即使有来自高优先队列的抽取请求,只要在处理1803中高优先计数器的值为低优先计数器的值以下,就从低优先队列抽取指针信息。例如不是只偏向高优先的数据包,也可以处理低优先的数据包。例如即使输入了大量的高优先数据包,也能够防止低优先的数据包没有处理而积存的情况。并且,优先控制调度器507从调度设定部409中读入WFQ低优先权重设定值(处理1806)。优先控制调度器507将所读入的WFQ低优先权重设定值加到低优先计数器(处理1808)。
WFQ高优先权重设定值及WFQ低优先权重设定值可以相对于从高优先/低优先的队列抽取指针信息数的比例而设定为其倒数。例如,如果从高优先队列和低优先队列抽取的指针信息的比例为2∶1(相对于从高优先抽取2个,而从低优先抽取1个),则权重设定值分别为其倒数的1/2、1/1。比例越大权重变得越小。在决定从哪个队列抽取指针信息的判断(处理1803)中,比较计数器的值而选择值较小一方的队列。此外,在与所选择的队列对应的高优先或低优先的计数器中,加上权重设定值。权重越小(比例越大)则计数器的增量越小,权重较小的队列更容易被选择。另外,计数器除此以外,也可以例如对从队列抽取的指针的数量进行计数等,来对适当的值进行计数。计数器既可以上升计数,也可以例如从设定的比例递减计数。此外,也可以通过其他方法而形成所设定的比例。
接着,优先控制调度器507执行用来防止计数器溢出的更新处理(处理1810~处理1816)。另外,这些处理既可以省略,也可以是防止计数器的溢出的适当的处理。
优先控制调度器507判断在最初指针高优先队列中是否剩余指针信息(处理1810)。如果在最初指针高优先队列中剩余指针信息(处理1810:是),则优先控制调度器507判断在最初指针低优先队列中是否剩余指针信息(处理1811)。如果在最初指针低优先队列中剩余指针信息(处理1811:是),则优先控制调度器507判断高优先计数器和低优先计数器是否都超过了计数器的一半(处理1813)。如果高优先计数器和低优先计数器都超过了计数器的一半(处理1813:是),则优先控制调度器507转移到处理1816,而如果没有超过(处理1813:否),则转移到图10的处理1009。
此外,如果在最初指针低优先队列中没有剩余指针信息(处理1811:否),则优先控制调度器507判断高优先计数器是否超过了计数器的一半(处理1814)。如果高优先计数器超过了计数器的一半(处理1814:是),则优先控制调度器507转移到处理1816,而如果没有超过(处理1814:否),则转移到图10的处理1009。
如果在最初指针高优先队列中没有指针信息(处理1810:否),则优先控制调度器507判断在最初指针低优先队列中是否剩余指针信息(处理1812)。如果在最初指针低优先队列中剩余指针信息(处理1812:是),则优先控制调度器507判断低优先计数器是否超过了计数器的一半(处理1815)。如果低优先计数器超过了计数器的一半(处理1815:是),则优先控制调度器507转移到处理1816,而如果没有超过(处理1815:否),则转移到图10的处理1009。此外,如果在最初指针低优先队列中没有剩余指针信息(处理1812:否),则优先控制调度器507转移到图10的处理1009。
在处理1816中,优先控制调度器507从超过了一半的值中减去计数器的一半的值(处理1816)。
另外,在上述的处理中判断是否超过了计数器的一半,但并不限于一半,也可以是适当的值。此外,对于从计数器中减去的值,除了减去计数器的一半的值以外,也可以是适当的值。
(动作例)
图8是目的地信息表读入最初指针队列中的多播数据包的WFQ调度的流程的示意图。在图7的完全优先中总是从优先级较高的队列进行抽取,而在图8的WFQ(带权重的均衡保证)中根据设定的比例进行从队列的抽取。
参照图8说明通过优先控制调度器507进行的WFQ调度控制执行时的指针抽取的动作例。另外,高优先计数器及低优先计数器分别被初始化为0。此外,在该例中,假设高优先与低优先的抽取比例为2∶1。因而,按照比例的倒数,WFQ高优先权重设定值为1/2(0.5),WFQ低优先设定值为1。
首先说明图的左栏。如果在低优先队列801(与图5的队列505-1对应)有MC0(图中的左第1段),则调度器804(与图5的优先控制调度器507对应)抽取MC0(左第2段)。在低优先计数器中加上低优先权重设定值1,从而计数器的值变为1。此外,来自低优先队列801及高优先队列802的抽取被抑制。MC0在目的地检索后,将下个指针信息排队到下个指针队列803(与图5的队列506对应)中(左第3段)。接着,从下个指针队列803提出抽取请求,调度器804从下个指针队列803抽取MC0(左第4段)。这里,设定为按照MC0的目的地检索,从目的地信息表检索部508接收到目的地信息输出结束通知,从而解除了抑制。
接着说明图的中央栏。在如左第4段那样输出MC0、各队列变为图示的状态后,由于高优先计数器的值(0)比低优先计数器的值(1)小(上述的处理1803),所以调度器804从高优先队列802中抽取VoIP0(中央第1段)。并且,在高优先计数器中加上高优先权重设定值0.5,计数器的值变为0.5。进而,由于高优先计数器的值(0.5)比低优先计数器的值(1)小,所以调度器804从高优先队列802中抽取VoIP1(中央第2段)。并且,在高优先计数器中加上高优先权重设定值0.5,从而计数器的值变为1。
在中央第3段的状态下,高优先计数器的值(1)与低优先计数器的值(1)相同。在该例中,调度器804在两计数器的值相同的情况下,从低优先队列801中抽取MC1(中央第3段)。即,是在上述图18的处理1803中判断“高优先计数器的值<低优先计数器的值”的例子。并且在低优先计数器中加上低优先权重设定值1,计数器的值变为2。另外,在两计数器的值相同的情况下,也可以从高优先队列中抽取。MC1在目标检索后将下个指针信息排队到下个指针队列803中(中央第4段)。
接着说明图的右栏。预先从下个指针队列803提出抽取的请求,调度器804从下个指针队列803中抽取MC1(右第1段)。在由如右第1段那样输出了MC1而各队列成为图示的状态后,由于高优先计数器的值(1)比低优先计数器的值(2)小,所以调度器804从高优先队列802中抽取VoIP2(右第2段)。并且,在高优先计数器中加上高优先权重设定值0.5,计数器的值变为1.5。同样,调度器804从高优先队列802中抽取VoIP3(右第3段)。这里,高优先计数器的值变为2。
在右第4段的状态下,高优先计数器的值(2)与低优先计数器的值(2)相同。在该例中,调度器804从低优先队列801中抽取MC2(右第4段)。另外,在两计数器的值相同的情况下,也可以从高优先队列中抽取。
2、第2实施方式
2.1装置结构
本实施方式的路由器在目的地检索部中具有优先级不同的下个指针队列。另外,目的地检索部4041以外的各部分的结构可以与图4同样。
图11是第2实施方式中的带最初·下个指针优先控制的目的地检索部4041的一结构例的示意图。
目的地检索部4041具有流检测/优先级指定部1101、目的地信息表指针检索部1102、指针表1103、最初分配部1104、下个分配部1105、最初指针低优先队列1106-1、最初指针高优先队列1106-2、下个指针低优先队列1107-1、下个指针高优先队列1107-2、优先控制调度器1108、目的地信息表检索部1109。
流检测/优先级指定部1101根据来自数据包传送/复制部403的数据包报头信息的组合来检测流,对每个流指定处理的优先级。例如,根据数据包报头信息的组合检测VoIP的流,将VoIP的流的优先级指定为较高。例如将优先级信息设定为“高”。此外,若根据数据包报头信息的组合检测到多播的流,则在多播中也指定优先级。例如,可以对动画使优先级较高(使优先级信息为“高”)、对于新闻使优先级较低(使优先级信息为“低”)。是动画还是新闻的判断,例如可以通过在数据包报头信息中包含适当的标识符、从而参照它来进行判断。另外,举出了动画和新闻的例子,但优先级并不限于此,可以通过适当的规则进行设定。此外,流检测/优先级指定部1101将所输入的报头信息和优先级信息输出给目的地信息表指针检索部1102。
对于目的地信息表指针检索部1102、指针表1103,由于与上述第1实施方式同样,所以省略说明。
最初分配部1104按照由流检测/优先级指定部1101指定的优先级,将指针信息和优先级信息分配给最初指针低优先队列1106-1、和最初指针高优先队列1106-2的某个队列中。
最初指针低优先队列1106-1、最初指针高优先队列1106-2,是保存由目的地信息表指针检索部1102取得的最初指针信息和由流检测/优先级指定部1101指定的优先级信息的各优先级的等待队列。此外,各队列1106-1、1106-2对优先控制调度器1108提出抽取请求,按照由优先控制调度器1108决定的顺序抽取最初指针信息。
最初指针低优先队列1106-1保存着由流检测/优先级指定部1101指定的优先级较低的数据包的最初指针信息。最初指针高优先队列1106-2保存着由流检测/优先级指定部1101指定的优先级较高的数据包的最初指针信息。例如,在最初指针高优先队列1106-2中,保存者VoIP数据包、和多播数据包中的动画等优先级设定为较高的数据包。另外,也可以仅将VoIP排队到最初指针高优先队列1106-2中,多播数据包也可以不论由流检测/优先级指定部1101设定的优先级如何都排队到最初指针低优先队列1106-1中。此外,也可以还设置另一个队列,从而分为VoIP数据包的指针信息被排队的队列、高优先的多播数据包被排队的队列、和低优先的多播数据包被排队的队列。
下个分配部1105按照由流检测/优先级指定部1101指定的优先级,将指针信息和优先级信息分配到下个指针低优先队列1107-1和下个指针高优先队列1107-2的某个队列中。
下个指针低优先队列1107-1、下个指针高优先队列1107-2是保存由目的地信息表检索部1109取得的下个指针信息和由流检测/优先级指定部1101指定的优先级信息的等待队列。各队列1107-1、1107-2对优先控制调度器1108提出抽取请求,按照由优先控制调度器1108决定的顺序抽取。
优先控制调度器1108(带优先控制的目的地信息表读入调度)对来自最初指针低优先队列1106-1、最初指针高优先队列1106-2、下个指针低优先队列1107-1、及下个指针高优先队列1107-2的抽取请求,进行按照优先级的调度,并将指针信息和优先级信息发送给目的地信息表检索部1109。例如按照下个指针高优先队列1107-2、最初指针高优先队列1106-2、下个指针低优先队列1107-1、最初指针低优先队列1106-1的优先次序抽取指针信息。此外,为了保持数据包的处理顺序性,如果一旦从最初指针队列进行抽取,则直到来自目的地信息表检索部1109的目的地信息输出结束通知到来为止,不进行从该最初指针队列提取下个数据包的指针信息和优先级信息,而仅从下个指针队列及其他优先级的最初指针队列进行抽取。该抽取抑制控制是对每个优先级独立进行的。
目的地信息表检索部1109按照来自优先控制调度器1108的指针信息,参照自的地信息表405,取得目的地信息、下个指针信息、和目的地信息结束标识符。此外,目的地信息表检索部1109将目的地信息作为检索结果输出给数据包传送/复制部403。这里,目的地信息表检索部1109在单播的情况下将输出端口号和下一跳IP地址作为目的地信息输出,在多播的情况下将输出端口号输出。此外,根据下个信息内的目的地信息结束标识符判断目的地信息输出是否结束,在判断为目的地信息输出结束的情况下(例如目的地信息结束标识符为1的情况下),将目的地信息输出结束通知和优先级信息发送给优先控制调度器1108。在目的地信息输出没有结束的情况下(例如目的地信息结束标识符为0的情况下),将下个指针信息和优先级信息发送给下个分配部1105。
图12是低优先多播和高优先VoIP的带最初·下个指针优先控制的调度下的数据包输出次序的示意图。例如,如果按照MC0、VoIP0、MC1、VoIP1的次序输入,则虽然进行了低优先的MC0的目的地检索,但在从下个指针信息被从队列中抽取之前,输出高优先的VoIP0。这样,高优先的VoIP可以在复制低优先的MC的中途输出。
2.2流程图
图13是本实施方式中的带最初·下个指针优先控制的目的地检索流程的示意图。
目的地检索部4041如果从数据包传送/复制部403输入包含数据包报头信息的目的地检索请求,则执行以下的处理。另外,图中()内表示的标号表示与第1实施方式的对应关系。
流检测/优先级指定部1101从报头信息检测流并指定优先级(处理1301)。例如,对于VoIP数据包以及动画的多播数据包将优先级指定为高,对于新闻的多播数据包将优先级指定为低。目的地信息表指针检索部1102从报头信息(例如目的地IP地址)中检索向目的地信息表信息的指针(处理1302)。最初分配部1104将指针信息排队到与优先级对应的最初指针队列中(处理1303)。最初指针低优先队列1106-1和最初指针高优先队列1106-2如果被排队有指针信息,则对优先控制调度器1108提出抽取请求(处理1304)。接着转移到处理1313。
在处理1313中,优先控制调度器1108进行抽取调度(处理1313)。例如,决定从下个指针低优先队列1107-1、下个指针高优先队列1107-2、最初指针低优先队列1106-1、最初指针高优先队列1106-2中的某一个队列抽取指针信息。另外,处理的详细情况在后面叙述。优先控制调度器1108按所决定的顺序从队列中抽取指针信息和优先级信息(处理1305)。并且,将所抽取的指针信息和优先级信息发送给目的地信息表检索部1109。
处理1306~处理1309由于与上述第1实施方式的处理906~909同样,所以省略说明。另外,在处理1309中,在判断为目的地信息结束的情况下转移到处理1310,而在判断为目的地信息没有结束的情况下转移到处理1311。
在处理1310中,目的地信息表检索部1109对优先控制调度器1108发送目的地信息输出结束通知和优先级信息(处理1310)。
在处理1311中,目的地信息表检索部1109将在处理1307中取得的下个指针信息和优先级信息输出给下个分配部1105,下个分配部1105将指针信息和优先级信息排队到与优先级对应的下个指针队列中(处理1311)。下个指针高优先队列1107-2以及下个指针低优先队列1107-1如果排队有指针信息,则对优先控制调度器1108提出抽取请求(处理1312)。接着,转移到步骤1313,执行以后的处理。
图14是本实施方式的带最初及下个指针优先控制的目的地信息表读入完全优先调度的流程的示意图。图14表示图13的处理1313及1305的详细流程(完全优先那调度的情况)。参照图14,详细说明由优先控制调度器1108进行的上述处理1313的详细情况。
优先控制调度器1108如果输入来自各指针队列的抽取请求,则执行以下的处理。抽取请求从各队列输出(相当于图13的处理1304、1312)。
优先控制调度器1108判断是否有来自下个指针高优先队列1107-2的抽取请求(处理1401)。如果有来自下个指针高优先队列1107-2的抽取请求(处理1401:是),则优先控制调度器1108从下个指针高优先队列1107-2中抽取指针信息,输出给目的地信息表检索部1109(处理1415)。并且转移到图13的处理1306。
另一方面,如果没有来自下个指针高优先队列1107-2的抽取请求(处理1401:否),则优先控制调度器1108判断是否处于来自最初指针高优先队列1106-2的抽取请求的抑制中(处理1402)。在本实施方式中,对每个优先级抑制抽取请求。例如,可以参照表示是否处于抽取请求抑制中的每个优先级的抑制标志进行判断。该判断标志例如在初始状态下设置为“抑制解除”。
如果处于来自最初指针高优先队列1106-2的抽取请求的抑制中(处理1402:是),则优先控制调度器1108判断是否从目的地信息表检索部1109到来了高优先的优先级信息和目的地信息输出结束通知(处理1403)。如果高优先的优先级信息和目的地信息输出结束通知来到(处理1403:是),则优先控制调度器1108解除来自最初指针高优先队列1106-2的抽取请求抑制(处理1404)。例如将高优先的标志设定为“抑制解除”。并且转移到处理1402。另一方面,在高优先的优先级信息和目的地信息输出结束通知没有来到的情况下(处理1403:否),优先控制调度器1108转移到处理1402。
此外,如果没有处于来自最初指针高优先队列1106-2的抽取请求的抑制中(处理1402:否),则优先控制调度器1108判断是否有来自最初指针高优先队列1106-2的抽取请求(处理1405)。如果有来自最初指针高优先队列1106-2的抽取请求(处理1405:是),则优先控制调度器1108从最初指针高优先队列1106-2抽取指针信息,输出给目的地信息表检索部1109(处理1413)。优先控制调度器1108抑制来自最初指针高优先队列1106-2的抽取请求(处理1414)。例如将高优先的抑制标志设定为“抑制中”。并转移到图13的处理1306。
如果没有来自最初指针高优先队列1106-2的抽取请求(处理1405:否),则优先控制调度器1108判断是否有来自下个指针低优先队列1107-1的抽取请求(处理1406)。如果有来自下个指针低优先队列1107-1的抽取请求(处理1406:是),则优先控制调度器1108从下个指针低优先队列1107-1中抽取指针信息,输出给目的地信息表检索部1109(处理1412)。并转移到图13的处理1306。
另一方面,如果没有来自下个指针低优先队列1107-1的抽取请求(处理1406:否),则优先控制调度器1108判断是否处于来自最初指针低优先队列1106-1的抽取请求抑制中(处理1407)。例如可以参照表示是否处于抽取抑制中的低优先的抑制标志进行判断。
如果处于来自最初指针低优先队列1106-1的抽取请求抑制中(处理1407:是),则优先控制调度器1108判断是否从目的地信息表检索部1109到来了低优先的优先级信息和目的地信息输出结束通知(处理1408)。如果低优先的优先级信息和目的地信息输出结束通知来到(处理1408:是),则优先控制调度器1108解除来自最初指针低优先队列1106-1的抽取请求抑制(处理1409)。例如将低优先的设定为“抑制解除”。并转移到处理1407。另一方面,在低优先的优先级信息和目的地信息输出结束通知没有来到的情况下(处理1408:否),优先控制调度器1108转移到处理1407。
此外,如果不处于来自最初指针低优先队列1106-1的抽取请求抑制中(处理1407:否),则优先控制调度器1108从最初指针低优先队列1106-1中抽取指针信息,输出给目的地信息表检索部1109(处理1410)。优先控制调度器1108抑制来自最初指针低优先队列1106-1的抽取请求(处理1411)。例如将低优先的抑制标志设定为“抑制中”。并转移到图13的处理1306。
另外,在本实施方式中,说明了完全优先调度,但如第1实施方式那样,也可以采用WFQ。
本实施方式能够在例如进行数据包通信的装置、系统、有关服务的产业中应用。此外,本实施方式能够在IP网络的动画传输服务、及重视实时性的VoIP电话服务等中应用。
此外,本实施方式还包括具有以下步骤的多播展开方法。根据所输入的单播数据包或多播数据包的报头信息指定优先级信息的步骤;根据数据包的目的地地址,参照对应存储有目的地地址和用来参照目的地信息表的第1指针信息的指针表,取得所对应的第1指针信息的步骤;将所取得的第1指针信息按照所指定的优先级信息,分配到保存有优先级较高的数据包的第1指针信息的高优先队列、和保存有优先级较低的数据包的第1指针信息的低优先队列的步骤;按照用来检索数据包的其他输出目的地的第i(i为1以上的整数)个下个指针信息被保存的下个队列、上述高优先队列、上述低优先队列的优先次序,从各队列中抽取第1指针信息或第i个下个指针信息的步骤;从用来通过依次读入与第1指针信息及第i个下个指针信息对应的输出端口信息来检索多播数据包的多个输出目的地的目的地信息表中,取得与第1指针信息或第i个下个指针信息对应的输出端口信息和下一跳地址、或者输出端口信息和第1或第i+1个下个指针信息的步骤,所述目的地信息表中,对应与数据包的目的地地址对应的第1指针信息,存储有该数据包的输出端口信息、和用来检索该数据包的其他输出端口信息的第1个下个指针信息或下一跳地址,对应第i(i为1以上的整数)个下个指针信息,存储有其他输出端口信息和用来进一步检索其他输出端口信息的第i+1个下个指针信息;将该第1或第i+1个下个指针信息输出给上述下个队列的步骤;按照包含该输出端口信息及/或下一跳地址的目的地信息,将所输入的单播数据包输出,或者将所输入的多播数据包复制并输出的步骤。
本发明申请的权项优先权为日本申请JP2005-360502,申请日为2005年12月14日,其内容通过参考来与本申请结合。

Claims (17)

1.一种数据包传送装置,具有:
输入部,输入单播数据包及多播数据包;
目的地信息表,与对应于数据包的目的地地址的第1指针信息相对应,存储有该数据包的输出端口信息和用来检索该数据包的其他输出端口信息的第1个下个指针信息或下一跳地址,以及与第i个下个指针信息相对应,存储有其他输出端口信息和用来进一步检索其他输出端口信息的第i+1个下个指针信息,其中i为1以上的整数,并用来通过依次读入与第1指针信息及第i个下个指针信息对应的输出端口信息,来检索多播数据包的多个输出目的地;
目的地检索部,检索上述目的地信息表,取得一个或多个输出端口信息及/或下一跳地址;
数据包传送复制部,按照包含由上述目的地检索部取得的输出端口信息及/或下一跳地址的目的地信息,将所输入的单播数据包输出,以及将所输入的多播数据包复制并输出;
交换机,按照该目的地信息,对来自上述数据包传送复制部的单播数据包及多播数据包进行交换;
输出部,将由上述交换机交换后的数据包输出;
上述目的地检索部具有:
优先级指定部,根据经由上述输入部输入的数据包的报头信息,指定优先级信息;
指针表,将目的地地址和第1指针信息对应地存储;
指针检索部,根据数据包的目的地地址,参照上述指针表,取得所对应的第1指针信息;
高优先队列,保存有优先级高的数据包的第1指针信息;
低优先队列,保存有优先级低的数据包的第1指针信息;
分配部,按照由上述优先级指定部指定的优先级信息,将由上述指针检索部取得的第1指针信息分配给上述高优先队列和上述低优先队列;
下个队列,保存有第i个下个指针信息;
调度器,按照上述下个队列、上述高优先队列、上述低优先队列的优先次序,从各队列中抽取第1指针信息或第i个下个指针信息并输出;
目的地信息表检索部,根据来自上述调度器的第1指针信息或第i个下个指针信息,从上述目的地信息表中取得输出端口信息和下一跳地址、或者输出端口信息和第1个下个指针信息或者输出端口信息和第i+1个下个指针信息,将该输出端口信息及/或下一跳地址输出给上述数据包传送复制部,当取得第1或者第i+1个下个指针信息时,将该第1或第i+1个下个指针信息输出给上述下个队列。
2.如权利要求1所述的数据包传送装置,
上述目的地信息表还对应第1指针信息或第i个下个指针信息,存储有表示有无要检索的其他输出端口信息的目的地信息结束标识符;
上述调度器若从上述高优先队列或上述低优先队列抽取第1指针信息,则抑制来自上述高优先队列或上述低优先队列的抽取,从上述下个队列抽取第i个下个指针信息;
上述目的地信息表检索部根据第1指针信息或第i个下个指针信息,从上述目的地信息表中取得所对应的目的地信息结束标识符,在该标识符表示没有其他输出端口信息的情况下将结束通知输出给上述调度器;
上述调度器若被输入该结束通知,则解除上述抑制。
3.如权利要求1所述的数据包传送装置,
上述优先级指定部根据所输入的报头信息来指定优先级信息,以使多播数据包的优先级变低,以及使包括VoIP数据包的语音通信数据包的优先级变高。
4.如权利要求1所述的数据包传送装置,
上述调度器:
如果在上述下个队列中保存有第i个下个指针信息,则从该下个队列中抽取第i个下个指针信息;
如果在上述下个队列中没有第i个下个指针信息,并且在上述高优先队列中保存有第1指针信息,则从该高优先队列中抽取第1指针信息;
如果在上述下个队列中没有第i个下个指针信息,并且在上述高优先队列中没有第1指针信息,则从上述低优先队列中抽取第1指针信息。
5.如权利要求1所述的数据包传送装置,还具有:
存储部,设定并保存从上述高优先队列及上述低优先队列抽取的第1指针信息的数量的比例;
第1计数器,对从上述高优先队列抽取的指针信息的数量或与该数量对应的值进行计数;
第2计数器,对从上述低优先队列抽取的指针信息的数量或与该数量对应的值进行计数;
上述调度器:
如果在上述下个队列中保存有第i个下个指针信息,则从该下个队列中抽取第i个下个指针信息;
如果在上述下个队列中未保存有第i个下个指针信息,则参照上述第1计数器的值和上述第2计数器的值,从上述高优先队列或上述低优先队列中抽取第1指针信息,以使从上述高优先队列及上述低优先队列中抽取的指针信息的数量成为设定在上述存储部中的比例。
6.一种数据包传送装置,具有:
输入部,输入单播数据包及多播数据包;
目的地信息表,与对应于数据包的目的地地址的第1指针信息相对应,存储有该数据包的输出端口信息和用来检索该数据包的其他输出端口信息的第1个下个指针信息或下一跳地址,以及与第i个下个指针信息相对应,存储有其他输出端口信息和用来进一步检索其他输出端口信息的第i+1个下个指针信息,其中i为1以上的整数,并用来通过依次读入与第1指针信息及第i个下个指针信息对应的输出端口信息,来检索多播数据包的多个输出目的地;
目的地检索部,检索上述目的地信息表,取得一个或多个输出端口信息及/或下一跳地址;
数据包传送复制部,按照包含由上述目的地检索部取得的输出端口信息及/或下一跳地址的目的地信息,将所输入的单播数据包输出,以及将所输入的多播数据包复制并输出;
交换机,按照该目的地信息,对来自上述数据包传送复制部的单播数据包及多播数据包进行交换;
输出部,将由上述交换机交换后的数据包输出;
上述目的地检索部具有:
优先级指定部,根据经由上述输入部输入的数据包的报头信息,指定优先级信息;
指针表,将目的地地址和第1指针信息对应地存储;
指针检索部,根据数据包的目的地地址,参照上述指针表,取得所对应的第1指针信息;
第1高优先队列,保存有优先级高的数据包的第1指针信息及优先级信息;
第1低优先队列,保存有优先级低的数据包的第1指针信息及优先级信息;
第1分配部,将由上述指针检索部检索的第1指针信息和由上述优先级指定部指定的优先级信息,按照该优先级信息,分配给上述第1高优先队列和上述第1低优先队列;
第2高优先队列,保存有优先级高的数据包的第i个下个指针信息及优先级信息;
第2低优先队列,保存有优先级低的数据包的第i个下个指针信息及优先级信息;
第2分配部,将第i个下个指针信息和优先级信息,按照该优先级信息,分配给上述第2高优先队列和上述第2低优先队列;
调度器,按照规定的优先次序,从上述第1高优先队列、上述第1低优先队列、上述第2高优先队列、上述第2低优先队列中抽取第1指针信息或第i个下个指针信息、和优先级信息,并将该指针信息和优先级信息输出;
目的地信息表检索部,从上述调度器输入第1指针信息或第i个下个指针信息、和优先级信息,并根据该第1指针信息或第i个下个指针信息,从上述目的地信息表中取得输出端口信息和下一跳地址,或者取得输出端口信息和第1个下个指针信息或者输出端口信息和第i+1个下个指针信息,将该输出端口信息及/或下一跳地址输出给上述数据包传送复制部,并且,当取得第1或者第i+1个下个指针信息时,将该第1或第i+1个下个指针信息和优先级信息输出给上述第2分配部。
7.如权利要求6所述的数据包传送装置,
上述调度器按照上述第2高优先队列、上述第1高优先队列、上述第2低优先队列、上述第1低优先队列的优先次序抽取第1指针信息或第i个下个指针信息。
8.如权利要求6所述的数据包传送装置,
上述优先级指定部根据所输入的报头信息指定优先级信息,以使包括VoIP数据包的语音数据包的优先级变高。
9.如权利要求6所述的数据包传送装置,
上述优先级指定部根据所输入的报头信息指定优先级信息,以使动画的多播数据包的优先级变高、而新闻的多播数据包的优先级变低。
10.如权利要求6所述的数据包传送装置,
上述目的地信息表还与第1指针信息或第i个下个指针信息对应,存储有表示有无要检索的其他输出端口信息的目的地信息结束标识符;
上述调度器若从上述第1高优先队列抽取第1指针信息,则抑制来自上述第1高优先队列的抽取;
上述调度器若从上述第1低优先队列抽取第1指针信息,则抑制来自上述第1低优先队列的抽取;
上述目的地信息表检索部根据第1指针信息或第i个下个指针信息,从上述目的地信息表中取得所对应的目的地信息结束标识符,在该标识符表示没有其他输出端口信息的情况下,将结束通知和所输入的优先级信息输出给上述调度器;
上述调度器若被输入该结束通知和优先级信息,则解除与优先级信息对应的上述第1高优先队列或上述第1低优先队列的上述抑制。
11.一种数据包传送装置,接收数据包并检索目的地,向检索到的目的地发送,具有:
接收部,接收多播数据包及单播数据包;
优先级指定部,对由上述接收部接收的单播数据包的优先级进行指定;
目的地检索部,对与由上述接收部接收的单播数据包对应的一个目的地信息及与多播数据包对应的多个目的地信息进行检索;
优先控制部,在由上述优先级指定部对第1单播数据包指定了规定以上的优先级时,由上述目的地检索部对与第1多播数据包对应的多个目的地信息中的一部分的目的地进行检索之后,使该目的地检索部对上述第1单播数据包的目的地信息进行检索,在对上述第1单播数据包的目的地信息进行检索之后,使上述目的地检索部对与上述第1多播数据包对应的多个目的地信息中的未检索的目的地信息进行检索。
12.如权利要求11所述的数据包传送装置,还具有:
最初队列,存储发送到上述目的地检索部中的多播数据包及单播数据包;
下个队列,在由上述目的地检索部对与从上述最初队列发送给上述目的地检索部的多播数据包对应的多个目的地信息中的一个进行检索之后,存储该多播数据包。
13.如权利要求12所述的数据包传送装置,
上述最初队列具有对由上述优先级指定部指定了规定以上的优先级的单播数据包进行存储的高优先最初队列、和对由上述优先级指定部指定了不足规定的优先级的单播数据包进行存储的低优先最初队列。
14.如权利要求13所述的数据包传送装置,
上述优先控制部在上述高优先最初队列中存储有单播数据包时,与存储在上述下个队列中的多播数据包相比,先取得该单播数据包并发送给上述目的地检索部。
15.如权利要求13所述的数据包传送装置,
上述优先控制部在与上述下个队列中所存储的多播数据包相比先将在上述高优先最初队列中所存储的单播数据包发送给上述目的地检索部时,提高存储在该下个队列中的多播数据包的优先级。
16.如权利要求12所述的数据包传送装置,
上述优先级指定部对由上述接收部接收的多播数据包的优先级进行指定;
上述下个队列具有对由上述优先级指定部指定了规定以上的优先级的多播数据包进行存储的高优先下个队列、和对由上述优先级指定部指定了不足规定的优先级的多播数据包进行存储的低优先下个队列。
17.如权利要求13所述的数据包传送装置,
上述优先级指定部对由上述接收部接收的多播数据包的优先级进行指定;
上述下个队列具有对由上述优先级指定部指定了规定以上的优先级的多播数据包进行存储的高优先下个队列、和对由上述优先级指定部指定了不足规定的优先级的多播数据包进行存储的低优先下个队列,
上述优先控制部在上述高优先最初队列中存储有单播数据包时,与在上述低优先下个队列中所存储的多播数据包相比,先取得该单播数据包并发送给上述目的地检索部。
CN2006100716727A 2005-12-14 2006-03-30 对应多播数据包的数据包传送装置及方法 Expired - Fee Related CN1984046B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005360502A JP4550728B2 (ja) 2005-12-14 2005-12-14 パケット転送装置及びマルチキャスト展開方法
JP360502/2005 2005-12-14

Publications (2)

Publication Number Publication Date
CN1984046A CN1984046A (zh) 2007-06-20
CN1984046B true CN1984046B (zh) 2010-09-01

Family

ID=38139250

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100716727A Expired - Fee Related CN1984046B (zh) 2005-12-14 2006-03-30 对应多播数据包的数据包传送装置及方法

Country Status (3)

Country Link
US (1) US7710962B2 (zh)
JP (1) JP4550728B2 (zh)
CN (1) CN1984046B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8295300B1 (en) * 2007-10-31 2012-10-23 World Wide Packets, Inc. Preventing forwarding of multicast packets
US8601069B1 (en) 2007-11-21 2013-12-03 Marvell International Ltd. Method and apparatus for message multicasting
US9229792B1 (en) * 2007-11-21 2016-01-05 Marvell International Ltd. Method and apparatus for weighted message passing
US7898985B1 (en) * 2008-04-23 2011-03-01 Juniper Networks, Inc. Composite next hops for forwarding data in a network switching device
JPWO2010032533A1 (ja) 2008-09-19 2012-02-09 日本電気株式会社 ネットワークプロトコル処理システム、及びネットワークプロトコル処理方法
CN101447925A (zh) * 2008-12-17 2009-06-03 中兴通讯股份有限公司 一种发送多路数据包的方法及系统
US9164886B1 (en) * 2010-09-21 2015-10-20 Western Digital Technologies, Inc. System and method for multistage processing in a memory storage subsystem
ES2548542T3 (es) * 2011-05-16 2015-10-19 Huawei Technologies Co., Ltd. Método y dispositivo de red para transmitir un flujo de datos
JP5617800B2 (ja) * 2011-08-16 2014-11-05 アラクサラネットワークス株式会社 情報処理装置及びパケット複製方法
US9021146B2 (en) * 2011-08-30 2015-04-28 Apple Inc. High priority command queue for peripheral component
MY154138A (en) 2011-11-04 2015-05-15 Mimos Berhad A system to deploy quality of transmission and a method thereof
US9179197B2 (en) 2012-10-10 2015-11-03 Sonos, Inc. Methods and apparatus for multicast optimization
US9628373B2 (en) 2012-12-19 2017-04-18 Comcast Cable Communications, Llc Multipath communication in a network
CN105162724B (zh) 2015-07-30 2018-06-26 华为技术有限公司 一种数据入队与出队方法及队列管理单元
US10218525B2 (en) 2016-11-11 2019-02-26 Cisco Technology, Inc. System and method to control latency of serially-replicated multi-destination flows

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075814A (en) * 1997-05-09 2000-06-13 Broadcom Homenetworking, Inc. Method and apparatus for reducing signal processing requirements for transmitting packet-based data with a modem
CN1381971A (zh) * 2002-05-29 2002-11-27 瑞昱半导体股份有限公司 多播分组的传送设定方法与装置
CN1411211A (zh) * 2002-04-17 2003-04-16 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212182B1 (en) * 1996-06-27 2001-04-03 Cisco Technology, Inc. Combined unicast and multicast scheduling
JP3919341B2 (ja) 1998-07-10 2007-05-23 株式会社東芝 非同期転送モード交換装置
US6452915B1 (en) * 1998-07-10 2002-09-17 Malibu Networks, Inc. IP-flow classification in a wireless point to multi-point (PTMP) transmission system
JP3224025B2 (ja) * 1999-06-30 2001-10-29 日本電気株式会社 Atm通信システムにおけるシェーピング方式
CA2337674A1 (en) * 2000-04-20 2001-10-20 International Business Machines Corporation Switching arrangement and method
TW513635B (en) * 2000-11-24 2002-12-11 Ibm Method and structure for variable-length frame support in a shared memory switch
US7310348B2 (en) * 2001-09-19 2007-12-18 Bay Microsystems, Inc. Network processor architecture
US7362749B2 (en) * 2002-03-01 2008-04-22 Verizon Business Global Llc Queuing closed loop congestion mechanism
US7609693B2 (en) * 2002-06-04 2009-10-27 Alcatel-Lucent Usa Inc. Multicast packet queuing
KR100608904B1 (ko) * 2003-12-18 2006-08-04 한국전자통신연구원 서비스 품질 보장을 위한 시스템 및 방법
JP4394988B2 (ja) * 2004-03-19 2010-01-06 富士通株式会社 パケット読出し制御方法及び装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6075814A (en) * 1997-05-09 2000-06-13 Broadcom Homenetworking, Inc. Method and apparatus for reducing signal processing requirements for transmitting packet-based data with a modem
CN1411211A (zh) * 2002-04-17 2003-04-16 华为技术有限公司 以太网交换芯片输出队列管理调度方法和装置
CN1381971A (zh) * 2002-05-29 2002-11-27 瑞昱半导体股份有限公司 多播分组的传送设定方法与装置

Also Published As

Publication number Publication date
US20070133531A1 (en) 2007-06-14
JP2007166294A (ja) 2007-06-28
US7710962B2 (en) 2010-05-04
JP4550728B2 (ja) 2010-09-22
CN1984046A (zh) 2007-06-20

Similar Documents

Publication Publication Date Title
CN1984046B (zh) 对应多播数据包的数据包传送装置及方法
KR101607180B1 (ko) 패킷 재조립 및 재배열 방법, 장치 및 시스템
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
US6343066B2 (en) Non-consecutive data readout scheduler
CN101057481B (zh) 为在网络中路由而利用要以优先级处理的分组的隐式确定来调度分组的方法和设备
US9344369B2 (en) System and methods for distributed quality of service enforcement
US7336675B2 (en) Optimized back-to-back enqueue/dequeue via physical queue parallelism
EP2187580B1 (en) Method for scheduling packets of a plurality of flows and system for carrying out the method
JP4779955B2 (ja) パケット処理装置及びパケット処理方法
US20070153796A1 (en) Packet processing utilizing cached metadata to support forwarding and non-forwarding operations on parallel paths
CN101136854B (zh) 一种实现数据包线速处理的方法和装置
EP2507951A1 (en) An apparatus and a method of receiving and storing data packets controlled by a central controller
CN103534997A (zh) 用于无损耗以太网的基于端口和优先级的流控制机制
US8929372B2 (en) Grid router
JP4163044B2 (ja) 帯域制御方法およびその帯域制御装置
US7580355B2 (en) Method of performing weighted round-robin queue scheduling using a dynamic link list and structure for implementing same
CN109684269A (zh) 一种pcie交换芯片内核及工作方法
WO2012100984A1 (en) An apparatus and a method for receiving and forwarding data packets
US7310346B2 (en) Node apparatus and packet transmission control method
EP2507952A1 (en) An assembly and a method of receiving and storing data while saving bandwidth by controlling updating of fill levels of queues
US20170063733A1 (en) Systems and methods for performing packet reorder processing
US8199764B2 (en) Scalable approach to large scale queuing through dynamic resource allocation
JP2005510959A (ja) リアルタイムネットワークトラフィックの受け入れ及びスケジューリング方法
CN113422741B (zh) 一种时间触发以太网交换机结构
KR20090060108A (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
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: 20100901

Termination date: 20170330

CF01 Termination of patent right due to non-payment of annual fee