传送队列状态的方法、网络设备、计算机程序及其产品的制作方法

文档序号:7855253阅读:146来源:国知局
专利名称:传送队列状态的方法、网络设备、计算机程序及其产品的制作方法
技术领域
本发明的各实施方式涉及通信,并且更具体地,涉及用于传送队列状态的方法、网络设备、计算机程序及计算机程序产品。
背景技术
出于一般性地呈现本公开的背景的目的而在这里提供背景技术的描述。在该背景 技术部分中描述的工作的范围内的当前称为发明人的工作以及在提交时可能没有以其他方式限定为现有技术的描述的各方面既没有明示地也没有暗示地被承认作为抵触本公开的现有技术。网络设备可以包括接收来自其他网络设备的网络业务的入口侧以及向其他网络设备输出网络业务的出口侧。出口侧的业务输出和队列状态可能影响入口侧的进入业务。

发明内容
本公开的各方面提供了一种用于传送队列信息的方法。该方法包括至少部分地基于相应的队列长度来确定诸如出口队列等的多个队列中的每一个的队列状态;选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列;以及向诸如入口节点等的至少一个节点报告所选择的队列的队列状态。为了确定多个队列中的每一个的队列状态,在实施例中,该方法包括针对队列分别确定丢弃概率。例如,该方法使用占用I和32个比特之间的比特数的变量来表示丢弃概率。在另一实施例中,该方法包括针对队列分别确定队列长度。为了向至少一个入口节点报告所选择的队列的队列状态,在实施例中,该方法包括向相同设备中的入口节点进行报告。在另一实施例中,该方法包括向另一设备中的入口节点发送包括队列状态的消息。此外,在实施例中,该方法包括进行等待直至预定的数据量已经被处理才重复该确定、选择和报告操作。在另一实施例中,该方法包括等待预定的时间以重复确定、选择和报告操作。为了选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列,在实施例中,该方法包括选择在队列的队列状态与队列的最后报告的队列状态之间具有最大绝对差异的队列。本公开的各方面提供了一种装置。该装置包括多个队列,诸如出口队列,该多个队列分别被配置成对分组进行排队;以及控制器,该控制器被配置成至少部分地基于相应的队列长度来确定多个队列中的每一个的队列状态,以及选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列,以用于向诸如入口侧的节点这样的节点报告队列状态。本公开的各方面还提供了存储程序指令的非临时性计算机可读介质,该程序指令用于使得处理器执行用于队列通信的操作。该操作包括至少部分地基于相应的队列长度来确定多个队列中的每一个的队列状态;选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列;以及向至少一个节点报告所选择的队列的队列状态。本公开的各方面提供了一种系统。该系统包括多个接口单元,该接口单元被配置成具有用于接收进入系统的分组的入口,并且具有用于将分组传送到系统外的出口。至少一个接口单元包括多个队列,该多个队列分别被配置成对分组进行排队以用于输出;以及 控制器,该控制器被配置成至少部分地基于相应的队列长度来确定多个队列中的每一个的队列状态,以及选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列,以用于向至少一个入口报告所选择的队列的队列状态。


将参考附图详细描述作为示例提出的本公开的各种实施例,其中相同的附图标记指相同的元件,并且在附图中图I是根据本公开的实施例的网络系统100的示意图;图2是根据本公开的实施例的网络系统200的示意图;图3是图示平均队列长度和丢弃概率之间的关系的一个示例的示意图;图4A是图示根据第一示例的图I和图2中从出口队列向入口侧传送队列状态的示意图;图4B是图示根据第二示例的图I和图2中从出口队列向入口侧传送队列状态的示意图;图5是图示图I或图2的网络系统中执行的方法的流程图;图6是图示图I或图2的网络系统中的模块的示意图;以及图7示出了包括计算机可读部件的计算机程序产品的一个示例。
具体实施例方式图I是根据本公开的实施例的网络系统100的示意图。网络系统100包括接口单元1A-D。在图I的示例中,接口单元IA-D经由交换结构7彼此连接。每个接口单元IA-D能够将数据接收到网络系统100中,并且将数据发送到网络系统100外。这些元件如图I中所示地稱合在一起。网络系统100可以是任何适当的网络系统。在实施例中,网络系统100是数据中心。接口单元IA-D是柜顶(TOR)交换机,并且交换结构7包括汇聚交换机。TOR交换机被耦合到各种服务器、驱动、中央处理单元(CPU)等,并且汇聚交换机在例如TOR交换机之间交换业务。在另一实施例中,网络系统100是交换设备,诸如路由器、网络交换机等。在示例中,接口单元IA-D中的每一个是网络处理单元(NPU)或包括NPU的线路卡。交换结构7包括将线路卡稱合在一起的结构卡。在另一示例中,在单个集成电路(IC)芯片上实现网络系统100。接口单元IA-D是IC芯片上的输入/输出(I/O)端口。I/O端口中的每一个包括用于将网络业务接收到IC芯片中的入口部分以及被配置成将网络业务传送到IC芯片外的出口部分。IC芯片还包括用于处理接收到的网络业务的网络处理器。在示例中,网络处理器与诸如存储器、数据总线等的IC芯片的其他适当组件一起操作,以用作用于将网络业务引导到适当I/O端口的交换结构7。在实施例中,接口单元IA-D处理独立的数据分组或数据报中的数据,诸如IP(因特网协议)分组、ATM(异步传输模式)帧、帧中继协议数据单元(PDU)、以太网分组或任何其他分组交换的数据。在另一实施例中,在封包(package)中将若干独立的数据分组聚集在一起以供更有效地进行处理。为了便于解释,这里使用的术语分组指独立的分组或一个或多个分组的封包,如可在实现中应用的。根据本公开的一方面,接口单元IA-D包括负责管理各接口单元IA-D的数据的输入和输出的相应的业务管理器(TM)5A-D。在实施例中,业务管理器5A-D包括相应的分组缓冲器4A-D、出口排队系统2A-D以及入口排队系统3A-D。分组缓冲器4A-D用于存储等待被调度的分组并且对例如由于线路阻塞或成形而不适用于传送的分组进行延迟。出口排队系统2A-D包括相应的出口队列(仅在第一出口排队系统2A中示出,而没有在所有的出口排队系统中表示),并且入口排队系统3A-D包括相应的入口队列(未示出)。每个出口排队系统2A-D和入口排队系统3A-D可以包括几百甚至几千个队列。在图I的示例中,交换结构7用于允许在不同的接口单元IA-D的业务管理器5A-D之间在控制信道14上交换数据业务和控制业务。交换结构7可以具有任何适当的拓扑,诸如从线路卡的完全点对点连接(无结构设备)到利用星形拓扑的层级多级交换。交换结构7可以使用例如共享存储器、Banyan交换机、Batcher-Banyan交换机、交叉连接或数据总线来实现。在图I中,用粗箭头图示净荷数据分组的流动,并且用细箭头图示(选择的)控制业务。向网络系统100的所有其他接口单元IB-D传送第一接口单元IA的第一出口排队系统2A的出口队列10A-D的队列状态。类似地,可以向所有其他接口单元传送任何其他出口排队系统2B-D的出口队列的队列状态。用于这样的通信的控制信道没有在图I中示出,但是与针对第一出口排队系统2A的出口队列10A-D的传送所示出的相对应。根据本公开的一方面,第一出口排队系统2A包括控制器110,该控制器110被配置成选择出口队列10A-D中的一个,并且向网络系统100的其他接口单元IB-D报告所选择的出口队列的队列状态。队列状态可以是指示所选择的出口队列的排队状态的任何参数,诸如队列长度、丢弃概率、队列长度和丢弃概率的组合等。在实施例中,控制器110被配置成保持出口队列10A-D中的每一个的最后报告的队列状态的记录。在示例中,出口队列10A-D中的每一个的最后报告的队列状态被存储在控制器110可访问的存储器中。此外,控制器110确定出口队列10A-D中的每一个的当前队列状态。然后,控制器110选择在出口队列的当前队列状态与出口队列的最后报告的队列状态之间具有最大差异的出口队列。然后,控制器110使得向其他接口单元IB-D报告所选择的出口队列的当前队列状态。在示例中,控制器110针对所选择的出口队列更新最后报告的队列状态的记录。根据本公开的一方面,入口排队系统3B-D使用所选择的出口队列的当前队列状态来确定入口排队策略,诸如分组丢弃策略等。图2是根据本公开的另一实施例的网络系统200的示意图。在该实施例中,仅存在两个接口单元IA和1B。而且,不存在交换结构,并且替代地,两个接口单元IA-B彼此直接连接。在没有交换结构的情况下,这是比图I中图示的实施例更简单并且因此不那么昂贵和复杂的构造。然而,图I的拓扑更加灵活,允许接口单元的简单添加和移除。网络系统200也利用控制器210,这与网络系统100中使用的控制器110相同或等同;以上已经提供了其描述并且这里出于清楚的目的而省略了其描述。图3是图示平均队列长度和丢弃概率之间的关系的模型的一个示例的示意图。在平均队列长度(AQL)和丢弃概率(DP)之间存在很强的关系。在第一 AQL 16a之前,附加分 组的丢弃概率为O。当AQL超过第二 AQL 16b时,队列很长使得附加分组被丢弃,从而丢弃概率在该情况下为I。在第一 AQL 16a和第二 AQL 16b之间,丢弃概率线性增加。存在图3中示出的模型的若干替代模型。例如,在16a和16b之间的线性增加没有达到丢弃概率1,而是较低的概率P。在16b处,曲线不连续并且从P “跳”到I。图4A-图4B分别是图示根据第一示例和第二示例的图I和图2中从出口队列向入口侧传送队列状态的示意图。这可以例如是图I和图2的第一接口单元Ia的出口队列10A-D的出口队列状态的传送。这里表示的实施例中使用的原理在于,向入口侧传送具有最大改变的出口队列的队列状态。队列状态差异被确定为在实际出口队列状态和最后报告的出口队列状态之间的差异,即队列状态的入口观测(view)。这里,为了便于解释,将队列状态取为队列长度,但是可以使用任何适当的队列测量。图的左手侧是示出第一业务管理器的出口队列10A-D的实际状态的出口侧,该第一业务管理器例如是包括出口队列10A-D的第一业务管理器(例如图I或图2的5A)。实际上,许多更多的出口队列(例如,几百或几千)可以是系统的一部分,但是为了便于解释,这里仅示出了 4个出口队列10A-D。在下文中,出口队列被称为第一队列10A、第二队列10B、第三队列IOC和第四队列10D,如从左到右看到的。图的右手侧是示出根据可用于其他业务管理器(图I的5B-D或者图2的5B)的信息的相同出口队列10A-D的状态的入口侧。在图4A-B中从t0到t3以时间顺序垂直地示出各状态。在队列中对角划线的分组是还没有被传送到入口侧的分组,并且队列中的垂直划线的分组是已经从出口侧传送到入口侧的分组。每个时刻的画圈的队列及其之间的箭头指示从出口侧向入口侧传送哪个队列的队列状态。在图4A的示例中,在出口队列10A-D之间均匀地分配添加到出口队列10A-D的分组。这里,在每个时刻t0-t3之间接收4个分组,其中每个出口队列10A-D接收一个分组。在时刻t0处,4个新的分组已经到达出口队列,其中每个出口队列接收一个分组。在该示例中使用的队列状态是队列长度,并且所有的队列已经改变了相同的量,即一个分组。因此,不存在对于向入口侧发送关于哪个队列的信息的明确指示。在该情况下,可以选择队列中的任何一个。在该示例中,第一队列IOA被选择,并且在消息中向入口侧发送其状态。入口上的业务管理器(多个)由此知道第一队列的当前状态,其由入口侧的第一队列中垂直划线的分组指示。然而,还没有更新其他队列的状态,并且入口侧不知道第二、第三和第四队列IOB-D的新排队的分组,如由对角划线的分组所指示的。在时刻tl,4个新的分组已经到达队列中,其中每个队列再次接收一个分组。记住,在该示例中使用的队列状态是队列长度,在实际队列状态和入口观测之间具有最大差异的队列是第二、第三和第四队列10B-D。这里,该差异是2个分组,而对于第一队列IOA来说差异仅为I个分组。因此,可以报告第二、第三或第四队列10B-D的状态中的任何一个。在该示例中,报告第二队列IOB的状态。类似地,在时刻t2(未示出)处,从出口侧向入口侧报告第三队列IOC的状态。在时刻t3处,在实际队列长度和报告的队列长度之间具有最大差异的队列是第四队列10D,从而从出口侧向入口侧报告第四队列IOD的状态。应当注意,在该示例中,在出口队列的入口观测和出口队列的实际状态之间不存在完全的对应性。
在图4B的示例中,向出口队列10A-D添加分组,一次向相应的出口队列10A-D添加4个。在时刻t0处,第一队列IOA接收到4个分组。明显的是,在实际出口状态和队列状态的入口观测之间的最大差异是关于第一队列IOA的。因此,从出口侧向入口侧发送第一队列的状态。在时刻tl处,第二队列接收到4个分组,从而从出口侧向入口侧报告该队列的状态。类似地,在时刻t2 (未示出),报告第三队列IOC的状态,并且在时刻t3,报告第四队列IOD的状态。在该示例中,在每个队列状态消息之后在出口队列的入口观测和出口队列的实际状态之间存在完全的对应性。图5是图示图I或图2的接口单元IA中执行的方法的流程图。在S30处,接口单元IA确定多个出口队列10A-D中的每一个的队列状态。队列状态可以是,例如丢弃概率、队列长度或者甚至是二者的组合。尽管队列长度正确地反映队列的大小并且在其准确性方面是有价值的,但是丢弃概率也具有若干优点。首先,丢弃概率可以实用地以几个比特,例如4个比特来编码。另外,与队列长度不同,丢弃概率还考虑到带宽。例如,用于IOGbps (每秒千兆比特)流的IMB(兆字节)的队列具有与用于IMbps (每秒兆比特)流的IMB的队列不同的丢弃概率。在S32处,接口单元IA确定从多个出口队列10A-D中选择的所选出口队列。所选出口队列是在所选择的出口队列的确定的队列状态和最后报告的队列状态之间具有最大差异的一个出口队列。在S34处,将消息发送到至少一个入口节点,诸如入口排队系统3B-D中的至少一个。该消息包括所选出口队列的队列状态。使用如图I中示出的控制信道14来将该消息作为多播消息发送到所有连接的接口单元1B-D。一旦诸如入口排队系统3B-D的入口侧接收到与诸如出口排队系统2A的出口侧的队列状态相关的信息,入口侧即可以根据该信息进行动作。在示例中,在一段持续时间,出口队列非常长,并且该出口队列的附加分组被丢弃。该出口队列在当前丢弃概率和最后报告的概率之间具有最大差异。向入口排队系统3B-D报告该出口队列的队列状态,诸如丢弃概率。入口排队系统3B-D适当地丢弃去往该出口队列的一部分或所有分组。在S36处,接口单元IA等待直至到了重复该流程并且返回到S30的时间。在一个实施例中,接口单元IA等待直到接口单元IA已经处理了预定的数据量,如被测量的进入的数据或外出的数据。在另一实施例中,接口单元IA等待预定的时间。由于定义了报告队列状态的消息的周期,因此明确定义了这些消息所需要的最大带宽。图6是图示图I或图2中的接口单元的模块的示意图。可以使用硬件和/或软件来实现这些模块。在示例中,这些模块被实现为执行软件指令的处理器(未示出)。一些模块与图5中的步骤相对应。这里再次示出了作为用于外出数据的队列的出口队列10A-D。接口单元包括控制器410,该控制器410可以是图I中的控制器110或者图2中的控制器210。控制器410包括队列评估器(Q EVAL.)40,其被配置成确定多个出口队列10A-D中的每一个的队列状态; 以及确定器42,其被配置成确定所选出口队列,该所选出口队列是在确定的队列状态和最后报告的队列状态之间具有最大差异的一个出口队列。此外,接口单元包括被配置成向入口侧发送消息的发射机44。该消息包括所选出口队列的队列状态。图7示出了包括计算机可读部件的计算机程序产品70的一个示例。在该计算机可读部件上,可以存储计算机程序71,该计算机程序可以使得处理器执行根据这里描述的实施例的方法。在该示例中,计算机程序产品70是光盘,诸如⑶(压缩盘)或DVD(数字多功能盘)或蓝光盘。计算机程序产品还可以被具体化为一个或多个接口单元的存储器。尽管计算机程序71在这里被示意性地示作在所描绘的光盘上的轨道,但是计算机程序71可以以适用于计算机程序产品70的任何方式来存储。尽管已经结合作为示例提出的本公开的特定实施例描述了本公开的各方面,但是可以进行对这些示例的替代、修改和变化。因此,这里阐述的实施例意在是说明性的而不是限制性的。在不背离以下阐述的权利要求的范围的情况下,存在可以进行的改变。
权利要求
1.一种方法,包括 至少部分地基于相应的队列长度来确定多个队列中的每一个的队列状态; 选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列;以及 向至少一个节点报告所选择的队列的队列状态。
2.根据权利要求I所述的方法,其中,确定所述多个队列中的每一个的队列状态进一步包括 针对所述队列分别确定丢弃概率。
3.根据权利要求2所述的方法,其中,针对所述队列分别确定丢弃概率进一步包括 使用占用I和32个比特之间的比特数的变量来表示所述丢弃概率。
4.根据权利要求I所述的方法,其中,确定所述多个队列中的每一个的队列状态进一 步包括 针对所述队列分别确定队列长度。
5.根据权利要求I所述的方法,其中,向至少一个节点报告所选择的队列的队列状态包括下述中的至少一个 向相同设备中的节点进行报告;以及 向另一设备中的节点发送包括所述队列状态的消息。
6.根据权利要求I所述的方法,进一步包括 进行等待直至预定的数据量已经被处理才重复确定、选择和报告操作。
7.根据权利要求I所述的方法,进一步包括 等待预定的时间以重复确定、选择和报告操作。
8.根据权利要求I所述的方法,其中,选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列进一步包括 选择在队列的队列状态与队列的最后报告的队列状态之间具有最大绝对差异的队列。
9.根据权利要求I所述的方法,其中,所述多个队列是多个出口队列,并且所述至少一个节点是入口节点。
10.一种装置,包括 多个队列,所述多个队列分别被配置成对分组进行排队以用于输出;以及控制器,所述控制器被配置成至少部分地基于相应的队列长度来确定所述多个队列中的每一个的队列状态,并且选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列,以用于向至少一个节点报告所选择的队列的队列状态。
11.根据权利要求10所述的装置,其中,所述控制器被配置成针对所述队列分别确定丢弃概率。
12.根据权利要求11所述的装置,其中,所述控制器被配置成使用占用I和32个比特之间的比特数的变量来表示所述丢弃概率。
13.根据权利要求10所述的装置,其中,所述控制器被配置成针对所述队列分别确定队列长度。
14.根据权利要求10所述的装置,进一步包括 发射机,所述发射机被配置成向另一装置中的节点发送包括所述队列的队列状态的消肩、O
15.根据权利要求10所述的装置,进一步包括 与所述节点相对应的端口。
16.根据权利要求10所述的装置,其中,所述控制器进一步包括 队列估计器,所述队列估计器被配置成确定所述多个队列中的每一个的队列状态;以及 确定器,所述确定器被配置成选择在队列的队列状态和队列的最后报告的队列状态之间具有最大差异的队列。
17.根据权利要求10所述的装置,其中,所述多个队列是多个出口队列,并且所述至少一个节点是入口节点。
18.—种系统,包括 多个接口单元,所述接口单元被配置成具有用于接收进入所述系统的分组的入口,以及用于将分组传送到所述系统外的出口,其中,至少一个接口单元包括 多个队列,所述多个队列分别被配置成对分组进行排队以用于输出;以及控制器,所述控制器被配置成至少部分地基于相应的队列长度来确定所述多个队列中的每一个的队列状态,并且选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列,以用于向至少一个入口报告所选择的队列的队列状态。
19.根据权利要求18所述的系统,其中,所述控制器进一步包括 队列估计器,所述队列估计器被配置成确定所述多个队列中的每一个的队列状态;以及 确定器,所述确定器被配置成选择在队列的队列状态和队列的最后报告的队列状态之间具有最大差异的队列。
20.根据权利要求18所述的系统,其中,所述控制器被配置成针对所述队列分别确定丢弃概率和队列长度中的至少一个。
全文摘要
本发明的各方面提供了一种用于传送队列状态的方法、网络设备、计算机程序及其产品。该方法包括至少部分地基于相应的队列长度来确定多个队列中的每一个的队列状态;选择在队列的队列状态与队列的最后报告的队列状态之间具有最大差异的队列;以及向至少一个节点报告所选择的队列的队列状态。
文档编号H04L12/861GK102857442SQ20121022965
公开日2013年1月2日 申请日期2012年6月29日 优先权日2011年6月30日
发明者V·萨克尼克, S·莱夫尼, M·达奈维斯基, J·卡尔斯托姆 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1