CN106068629B - 分组交换系统中的分布式计数器和计量器 - Google Patents
分组交换系统中的分布式计数器和计量器 Download PDFInfo
- Publication number
- CN106068629B CN106068629B CN201580011726.8A CN201580011726A CN106068629B CN 106068629 B CN106068629 B CN 106068629B CN 201580011726 A CN201580011726 A CN 201580011726A CN 106068629 B CN106068629 B CN 106068629B
- Authority
- CN
- China
- Prior art keywords
- grouping
- stream
- packets
- equipment
- counting information
- 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
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/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/22—Traffic shaping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的各方面提供了一种用于对分布式分组交换系统中的分组和字节进行计数的方法。该方法包括:在具有多个分布式设备的分组交换系统的设备处,接收具有至少一个分组流的分组合流;基于对属于分组流的分组的接收来统计地确定是否更新指定设备;以及基于统计确定将分组计数信息传输到指定设备,其中指定设备基于分组计数信息来计数分组流的分组。
Description
相关申请的交叉引用
本公开要求于2014年3月4日提交的题为“Scalable and Distributed Metersand Counters(可伸缩的分布式计量器和计数器)”第61/947,622号美国临时申请的权益,该临时申请的全部内容通过引用并入本文。
背景技术
本文提供的背景描述的目的一般是呈现本公开的上下文。就此背景技术部分描述的工作的程度而言,当前具名的发明人的工作以及在提交时未以其它方式构成现有技术的描述的各方面,不被明确或隐含地承认是相对于本公开的现有技术。
在诸如交换机或路由器的分组交换系统中,多个计数器和计量器被用于流量监视和带宽管理。一些交换系统分布在耦合在一起的若干设备上,然而当被计数和计量的分组在系统内的多个分布式设备被接收和处理时,确定针对分组的计数和计量流量变得具有挑战性。
发明内容
本公开的各方面提供一种用于对分布式分组交换系统中的分组和字节计数的方法。该方法包括:在具有多个分布式设备的分组交换系统的设备处,接收具有至少一个分组流(flow)的分组合流(stream);基于对属于分组流的分组的接收来统计地确定是否更新指定设备;以及基于统计确定将分组计数信息传输至指定设备,其中指定设备基于分组计数信息来计数分组流的分组。
在实施例中,指定设备从分组交换系统中的多个设备接收与分组流对应的多个分组计数信息,并且指定设备计数分组的数目以基于多个分组计数信息来计数分组流的分组。
方法的实施例还包括:在设备处基于时间轮来指派时隙;以及在通过时间轮所分配的时隙中将分组计数信息传输至指定设备。
在可选实施例中,方法还包括:将0至1范围内的随机数与预定义的概率进行比较;以及当随机数小于概率时,使用预定义的概率的倒数作为分组的计数来更新指定设备。
方法的实施例还包括:计算分组的分组大小与预定义的阈值的比率;当比率的值大于1时,使用分组大小作为字节的计数来更新指定设备;以及当比率的值小于1且大于0至1范围内的随机数时,使用阈值作为字节的计数来更新指定设备。
本公开的方面提供了一种具有多个分布式设备的分组交换系统中的设备。设备包括:入端口,被配置为接收具有至少一个分组流的分组合流;本地计数引擎,被配置为基于对属于分组流的分组的接收来统计地确定是否更新分组交换系统中的多个分布式设备中的指定设备;以及更新接口,被配置为基于统计确定将分组计数信息传输至指定设备,其中指定设备基于分组计数信息来计数分组流的分组。
本公开的方面提供了一种具有多个分布式设备的分组交换系统中的指定设备。指定设备包括:更新接口,被配置为从分组交换系统中的多个分布式设备接收多个分组计数信息,其中分组交换系统接收具有至少一个分组流的分组合流;以及中央计数引擎,被配置为基于多个分组计数信息来计数分组流的分组。
在实施例中,中央计数引擎被配置为基于多个分组计数信息来更新计数器以计数分组流的分组。在一个实施例中,中央计数引擎被进一步配置为计数分组的数目以计数分组流的分组。在可选实施例中,中央计数引擎被进一步配置为计数字节的数目以计数分组流的分组。
本公开的方面提供了一种用于测量分布式分组交换系统中的分组流的流量的方法。方法包括:在具有多个分布式设备的分组交换系统的设备处接收具有至少一个分组流的分组合流;基于接收到属于分组流的分组来统计地确定是否更新指定设备;以及基于统计确定将分组计数信息传输到指定设备,其中指定设备基于分组计数信息来测量分组流的流量。方法还包括从指定设备接收基于分组计数信息确定的分组流的流量状态的指示符;以及将流量状态的指示符存储在设备中。方法还包括:存储基于指定设备接收的分组计数信息而确定的分组流的业务量状态的指示符;以及基于存储在设备中的流量状态的指示符来处理属于分组流的分组。
在实施例中,指定设备从分组交换系统中的多个设备接收与分组流对应的多个分组计数信息,并且指定设备基于多个分组计数信息来测量分组流的流量。
方法还包括:存储基于指定设备接收的多个分组计数信息确定的分组流的流量状态的指示符;以及基于存储的流量状态的指示符来处理属于每个多个设备中的分组流的分组。
本公开的方面提供了一种具有多个分布式设备的分组交换系统中的设备。设备包括:入端口,被配置为接收具有至少一个分组流的分组合流;本地计数引擎,被配置为基于对属于分组流的分组的接收来统计地确定是否更新分组交换系统中的多个分布式设备中的指定设备;以及更新接口,被配置为基于统计来确定将分组计数信息传输至指定设备,其中指定设备基于分组计数信息来测量分组流的流量。
在实施例中,更新接口被进一步配置为从指定设备接收基于分组计数信息而确定的分组流的流量状态的第一指示符;本地计数引擎还包括被配置为存储基于指定设备接收的分组计数信息而确定的分组流的流量状态的第二指示符的存储器,并被进一步配置为响应于从更新接口接收流量状态的第一指示符将分组流的流量状态的第一指示符存储到存储器中。
在实施例中,设备还包括转发处理器,转发处理器包括被配置为包括存储基于指定设备接收的分组计数信息而确定的分组流的流量状态的指示符的存储器,转发处理器被配置为基于存储在设备中的指示符来处理属于分组流的分组。
在实施例中,设备还包括转发处理器,转发处理器包括被配置为存储基于指定设备接收的分组计数信息确定的分组流的流量状态的第一指示符的存储器,转发处理器被配置为基于对属于分组流的分组的接收来将计数更新请求发送给本地计数引擎并且基于从本地计数引擎接收流量状态的第二指示符将分组流的流量状态的第二指示符存储到存储器中。
本公开的方面提供了一种具有多个分布式设备的分组交换系统中的指定设备。设备包括:更新接口,被配置为从分组交换系统中的多个分布式设备接收多个分组计数信息,其中分组交换系统接收具有至少一个分组流的分组合流;以及中央计数引擎,被配置为基于多个分组计数信息来测量分组流的流量。
在一个实施例中,中央计数引擎被配置为基于多个分组计数信息计算分组流的流量状态的指示符以测量分组流的流量。在另一实施例中,更新接口被进一步配置为将分组流的流量状态的指示符传输到多个分布式设备。
本公开的方面提供了一种用于对分布式分组交换系统中的分组流的流量进行计量的方法。方法包括:在具有多个分布式设备的分组交换系统的设备处接收具有至少一个分组流的分组合流;基于接收到属于分组流的分组来统计地确定是否更新指定设备;以及基于统计确定将分组计数信息传输至指定设备,其中指定设备基于分组计数信息来计量分组流的流量。
本公开的方面提供了一种具有多个分布式设备的分组交换系统中的设备。设备包括:入端口,被配置为接收具有至少一个分组流的分组合流;本地计数引擎,被配置为基于对属于分组流的分组的接收来统计地确定是否更新分组交换系统中的多个分布式设备中的指定设备;以及更新接口,被配置为基于统计确定将分组计数信息传输到指定设备,其中指定设备基于分组计数信息来计量分组流的流量。
本公开的方面提供了一种具有多个分布式设备的分组交换系统中的指定设备。指定设备包括:更新接口,被配置为从分组交换系统中的多个分布式设备接收多个分组计数信息,其中分组交换系统接收具有至少一个分组流的分组合流;以及中央计数引擎,被配置为基于多个分组计数信息来计量分组流的流量。
附图说明
被提出作为示例的本公开的各个实施例将参考下面的附图被详细描述,在附图中相似的标号指代相似的元件,以及其中:
图1A示出了根据本公开的实施例的分组交换系统100A;
图1B示出了根据本公开的实施例的具有用于对不同分组流的流量进行测量的多个指定设备的分组交换系统100B;
图2示出了根据本公开的实施例的包括分布式计数器的机架式交换机200;
图3A和图3B示出了根据本公开的实施例的说明在图2示例中的分布式计数器中被应用的统计方法的两个示例过程;
图4A示出了根据本公开的实施例的说明用于访问数据库记录的时分接入机制的图400A;
图4B示出了根据本公开的实施例的利用时分接入机制的示例过程400B;
图4C示出了根据本公开的实施例的机架式交换机200中的示例时间轮设施400C;
图5示出了根据本公开的实施例的具有分布式计量器的机架式交换机500;
图6示出了根据本公开的实施例的说明计量器算法600的图;
图7示出了根据本公开的实施例的计数过程700的流程图;以及
图8示出了根据本公开的实施例的计量过程800的流程图。
具体实施方式
图1A示出了根据本公开的实施例的分组交换系统100A。系统100A包括经由通信网络(未示出)耦接在一起的多个分布式设备120-150。
在实施例中,设备150具有保持计数器或计量器的值的记录的数据库,作为数据库客户的设备120-140传输更新消息105来更新数据库中的记录。在一个示例中,数据库提供连贯服务并且支持读-改-写(RMW)消息。在对某一记录处理RMW消息时,数据库拒绝对这一记录的任何其它更新请求直到RMW操作被完成。例如,在设备150处,中央计数引擎152和存储器153执行数据库的功能,中央计数引擎152可处理RMW消息来更新存储在存储器153中的记录,从而向设备120-140提供连贯服务。在另一示例中,数据库提供不连贯服务,并且支持读/写(R/W)消息。在处理R/W消息时,数据库允许客户在另一客户完成一个记录的更新之前访问用于更新的该记录,从而在该记录中导致竞态条件,其中在该竞态条件中会引发不期望的错误。例如,在设备150处,中央计数引擎152和存储器153执行数据库的功能,然而,中央计数引擎152支持R/W消息,而不是RMW消息,以更新存储在存储器153中的记录,从而向设备120-140提供不连贯服务。另外,数据库具有有限的消息处理速率(表示为每个单位时间处理的消息数目),因此要求设备120-140的合计的更新消息生成速率(表示为每个单位时间生成的更新消息数目)低于数据库消息处理速率。
客户(设备120-140)处理事件并且生成更新消息105来更新数据库。例如,当分组到达或离开的事件在设备120处发生时,设备120生成更新消息105来更新数据库中的计数器或计量器记录。取决于数据库的服务类型,更新消息105的类型可以是RMW消息或R/W消息。具体地,对于提供连贯服务的数据库,生成RWM消息;对于提供不连贯服务的数据库,生成R/W消息。
在实施例中,每个客户(设备120-140)处理事件,合计的事件处理速率(表示为每个单位时间处理的事件数目)远快于数据库消息处理速率。为了匹配合计的更新消息生成速率与数据库消息处理速率,设备120-140采用统计方法来生成更新消息。
在另一实施例中,多个设备120-140发送更新消息来更新设备150处提供不连贯服务的相同数据库记录。为了避免在访问提供不连贯服务的数据库中的相同数据库记录时的竞态条件,设备120-140采用时分接入机制。
在实施例中,系统100A是集成电路(IC)芯片。设备120-140均为分组处理引擎,设备150执行集中式数据库的功能。在另一实施例中,设备120-140是存在于IC芯片上的分组处理引擎,但是设备150是存储数据库记录且位于IC芯片外的存储器,诸如动态随机存取存储器(DRAM)。
在实施例中,系统100A是机架式交换机,设备120-150均是位于机架式交换机中的对应分布式线卡处的专用集成电路(ASIC)。在另一实施例中,系统100A是由许多交换机和服务器组成的数据中心网络,设备120-150是位于不同交换机中的分离交换模块。
在实施例中,在系统100A中,在多个分布式设备120-150中,设备120-140均具有分别对分组流的字节或分组进行计数的本地计数引擎121-141,并且向设备150传输更新消息105。设备150具有数据库,在该数据库中中央计数引擎152执行中央计数器或计量器的功能以测量分组流的流量并且存储器153存储计数器值。
在实施例中,系统100A利用分布式计数和计量机制来计数分组合流110的选择分组或字节(被称为分组流)并且测量分组流的流量。一般地,分组流被定义为具有各种共享属性的分组序列。例如,具有相同源地址和目的地址的分组可被定义为分组流。另举一例,属于虚拟局域网(VLAN)的分组可被定义为分组流。在系统100A处接收的分组合流110包括多个分组流,在实施例中诸如分组流110A-110N。每个分组流110A-110N在系统100A中的不同设备120-140处被接收和处理。例如,分组流110A由属于VLAN的分组组成并且VLAN在与系统100A中的不同设备120-140相关联的多个端口上被配置。由此,分组流110A的分组在不同设备120-140处被接收和处理。另外,分组合流110中属于不同分组流的分组可根据系统100A的与不同分组流对应的配置而被不同地处理。在实施例中,分组可通过在系统100A中被处理时检查其头的一个或多个字段中的值被识别为属于特定分组流。由此,分组合流110的选择分组可被不同地处理。
在实施例中,如图1A所示,本地计数引擎121-141对一个或多个分组流的字节或分组进行本地计数,设备120-140将包括对应分组计数信息的消息105传输到中央计数引擎152。分组计数信息包括在对应设备120-140处本地获得的一个或多个分组流的字节或分组的计数。设备150被指定为执行中央计数器或计量器的功能以测量分组流的流量。特别地,在实施例中,指定设备150接收包括分组计数信息的更新消息105,中央计数引擎152基于分组计数信息更新存储在存储器153中的计数器值来执行中央计数器的功能以测量分组流的流量,中央计数引擎152基于分组计数信息计量分组流的流量来执行中央计量器的功能以测量分组流的流量。
在示例中,包括分组流110A-110N的分组合流110以高数据速率,例如每秒1.5千兆个分组(pps)的分组速率,进入系统100A。分组合流110中的每个分组流110A-110N在各个设备120-140处被接收。在示例中,分组流110A的分组属于VLAN,并且每个分组在分组的字段中携带VLAN的标签。因此,分组流110A的分组可在设备120-140处通过标签被识别。在设备120处,例如,本地计数引擎121为所接收的属于分组流110A的分组确定字节或分组的数目,并且设备120通过传输更新消息105将该数目发送给中央计数引擎152。类似地,设备130和140将它们的分组流110A的分组计数信息发送给中央计数引擎152。以这种方式,中央计数引擎152可具有在系统100A中的不同设备120-140处接收的分组流110A的分组或字节的计数的全局观。
注意在各个实施例中,在设备120-140处被计数的分组可来自系统100A内的其它设备并且在被计数之后离开系统100A。
术语“分组”和“帧”通常分别与网络领域中的开放系统互连(OSI)模型中的3层协议和2层协议一起使用,但是在此详细描述中描述的上下文中为了方便说明,它们可互换使用。
根据本公开的实施例,本地计数引擎121-141采用统计方法以在被计数的分组到达之后统计地确定是否传输分组计数信息来更新指定设备150,并且统计地计算字节或分组的计数作为字节或分组的估计用于分组计数信息的传输。
在统计方法中,当被计数的分组到达时,本地计数引擎将基于表示为P的概率来确定是否更新指定设备。在分组数目被计数的一个实施例中,概率P被预定义;在字节数目被计数的另一实施例中,概率P基于被计数的分组的分组大小(K个字节)和预定义阈值(X字节)使用公式P=K/X被计算。为了确定,0至1范围内的随机数被生成并且被用于与概率进行比较。如果随机数小于概率,则本地计数引擎传输分组计数信息以更新指定设备;否则,本地计数引擎不传输。
在统计方法中,当本地计数引擎确定发送分组计数信息时,分组或字节的估计被计算。在对分组计数的情况中,待发送的分组的估计等于1/P。在对分组的字节计数的情况中,待发送的字节的估计等于阈值X;对于分组大小K大于阈值X的情形,分组大小K被用作待被传输的字节的估计。
例如,概率10%被预定义用于计数分组流110A的分组的数。此配置下的统计方法的平均效应为,对于每10个分组,仅为单个分组执行分组计数更新信息的传输。然而,许多10个分组被计数用于传输。结果,从长期看计数反映分组的计数,同时更新的传输频率降低90%。作为另一示例,概率P基于所接收的分组的分组大小K和预定义的阈值X使用P=K/X而被计算用于计数分组流110A的字节。当K=64字节并且X=512字节时具有P=K/X=12.5%的概率来传输更新消息。然而,许多X=512字节被计数用于传输。类似地,对于分组大小为64字节的分组,从长期看计数反映字节的计数,同时更新操作的传输频率降低87.5%。更新传输的降低不仅减少设备120-140与设备150之间的通信流量,还降低对存储计数器和计量器的存储器的访问需求。
图1B示出了根据本公开的实施例的具有对不同分组流的流量进行测量的多个指定设备的分组交换系统100B。系统100B类似于系统100A,并且包括多个分布式设备120-150。然而,不同于系统100A,设备120-130均包括其自身的中央计数引擎122-142和存储器123-143以执行数据库的功能,设备150包括其自身的本地计数引擎151。
如所示的,在一个实施例中,存在分组合流110,分组合流110包括进入系统100B的多个分组流110A-110D。每个分组流110A-110D可到达多个设备120-150。在该实施例中,每个分组流110A-110D具有其自身的由属于此分组流的分组所携带的VLAN的特殊标签,使得每个设备120-150可在处理来自不同流110A-110D的分组的同时标识分组。
为了计数分组流110A-110D的分组或字节,每个分组流110A-110D被指定不同的设备来执行中央计数器或计量器的功能。例如,除了被指定给分组流110A的设备150以外,设备120-140被分别指定给分组流110B-110D。当然,应该理解,在各个实施例中,存在在系统100B处被处理的许多分组流,诸如设备120-150的指定设备被指定给多于一个流。
为了执行计数或计量的功能,每个指定设备120-150分别包括中央计数引擎122-152,并且分别包括存储器123-153。每个中央计数引擎122-152从多个设备120-150接收更新消息并且更新与各自的分组流110A-110D对应的计数器值或计量器流量。存储器123-153的每个存储器存储与各自的分组流110A-110D对应的计数器值。
一般地,计数器值被存储在高速存储器中。高速存储器处理访问请求的能力可以每秒读-改-写操作(RMW/秒)而被测量。高速存储器的用于此测量的典型值可为600RMW/秒。在图1B示例中,对于特定流,来自多个设备120-150的计数器更新请求需要访问相同的存储器。因此,对于特定的分组流,某一时间段的总计数器更新请求的最大数目受限于存储器的访问请求处理能力。
在操作中,类似于上文所描述的过程,设备120-150处的每个计数引擎121-151统计地做出决定以传输本地分组计数信息。另外,在每个设备120-150处,不同流中的分组的分组计数信息被传输至不同的指定设备120-150。例如,在设备120处,分组流110C的分组计数信息被传输至被指定用于对分组流110C中的分组计数的设备130。而对于在设备120处被处理的分组流110D的分组,分组计数信息被传输至被指定用于对分组流110D中的分组计数的设备140。对于在设备120处被处理的分组流110B的分组,传输操作可在内部进行而不需要将更新消息发送出设备120。另外,如上所述,分组流110A的分组计数信息被传输至被指定用于对分组流110A中的分组计数的设备150。
根据本公开的方面,当系统100A或100B的带宽容量和设备数目增加时,图1A和图1B中所示的分布式计数机制是可扩展的。首先,分布式计数机制减少了为每个分组流配置的计数器数。例如,在系统100A中,代替在每个设备处为分组流110A维持分离的计数器,结合分布式设备120-140中的本地计数引擎121-141,仅需要设备150处的一个中央计数器。减少的计数器数目导致减少的存储器大小,从而降低系统100A的。其次,如系统100B中所示,因为中央计数器或计量器分布在分离的设备上,所以存储器访问和更新消息的负载可分布在多个设备上。第三,如上文所描述的,采用统计方法减少了存储器访问需求,从而可在一个系统中支持更多的分布式本地计数引擎。
图2示出了根据本公开的实施例的包括分布式计数器的机架式交换机200。机架式交换机200包括多个分布式设备210-240和交换架构250。交换架构250提供多个设备210-240的互连。
在多个分布式设备210-240中,设备240被指定执行用于对包括多个分组流260A-260N的分组合流260的选择分组或字节计数的中央计数器的功能。指定设备240包括更新接口245、中央计数器246和存储器247。更新接口245控制设备240与设备210-230之间的通信过程。具体地,更新接口245从设备210-230接收更新消息215-235,并将包括在消息215-235中的分组计数信息传送至中央计数器246。
设备210-230均分别包括更新接口211-213、本地计数引擎212-232、转发处理器213-233和入端口214-234。更新接口211-231控制设备210-230与设备240之间的通信过程。具体地,更新接口211-231将消息215-235传输给设备240。转发处理器213-233一般执行分组处理功能,例如转发查找、分组修改、分组分类、流量管理等。入端口214-234接收进入机架式交换机200的分组合流260的分组并且将分组分别传送至转发处理器213-233。
根据本公开的方面,更新接口211-231、本地计数引擎212-232、更新接口245、中央计数器246和存储器247一起形成执行对分组合流260的选择分组或字节计数的功能的分布式计数器。在实施例中,分布式计数器对分组流260A的分组和字节计数。下面将描述通过分布式计数器实施的分布式计数过程。
如示出的,分组合流260的分组进入机架式交换机200并且在入端口214-234处被接收。属于VLAN的分组流260A的分组在分组的一个字段中携带VLAN的标签,从而可被识别为被计数的分组。一般地,在实施例中,每个设备210-230接收和处理形成流入每个设备的分组合流的多个流的分组。分组的每个分组流可具有其自身的指示特定分组流的特定标签。由此,属于不同分组流的分组可被标识且根据对应的配置被不同地处理。
如示出的,在设备210处,入端口214接收属于分组流260A的分组261且将其传输至转发处理器213。在转发处理器213处,分组261被认为是被计数的分组,并且计数请求被传输至本地计数引擎212。在一个实施例中,计数请求包括分组261的大小(字节数)和指示VLAN的信息(例如VLAN的标签)。在分组的数目而不是字节被计数的另一实施例中,分组261的大小的信息可被省略。
被请求所触发,本地计数引擎212首先使用统计方法来统计地确定是否传输计数信息来更新指定设备240。如果确定为否定,则计数过程停止且接下来不发生任何事。否则,本地计数引擎212基于统计方法来计算分组或字节的估计。然后,更新接口211创建更新消息215并经由交换架构250将消息传输给指定设备240。更新消息215可包括字节或分组的估计以及指示VLAN的信息。
在设备220和230处,当属于分组流260A的分组被接收时,使用统计方法执行相似的过程,并且包括分组计数信息的计数器更新消息225和235被传输至指定设备240。
在指定设备240处,设备240接收更新消息215-235并且执行计数器更新操作。例如,更新接口245从设备210接收更新消息215并且将计数信息传送至中央计数器246。然后,中央计数器246更新与分组流260A对应的存储在存储器247中的计数器值。具体地,中央计数器246从存储器247读取计数器值,合计消息215中所携带的字节或分组的估计与从存储器247读取的计数器值以获得总和,并将该总和写回到存储器247。
图3A和图3B示出了根据本公开的实施例的说明在图2示例中的分布式计数器中应用的统计方法的两个示例过程。在图3A示例中,分布式计数器对分组计数,而在图3B示例中,分布式计数器对字节计数。在这两个示例中,传输分组计数信息的概率和待传输的字节或分组的估计被不同地确定以用于计数字节和计数分组。图2中的设备210处的操作将被用于在下文中描述图3A和图3B示例。
在图3A中,为了计数分组,在310预定义用于传输计数器更新消息的概率P。当在本地计数引擎212处接收到计数请求时,本地计数引擎212统计地确定是否传输更新消息来更新图2中的指定设备240。具体地,本地计数引擎212首先在311生成0与1之间的数值N,然后在312比较N与预定义的概率P。如果N大于P,则过程在313结束。如果N等于或小于P,则本地计数引擎212做出决定以传输更新消息。然后,本地计数引擎212在314使用公式C=1/P计算估计C作为待传输的分组的数目。例如,如果P被预定义为10%,则待传输的分组的估计在此示例中将为1/(10%),等于10。最后,更新接口211在315将例如包括估计10的消息传输给指定设备240。
在图3B中,对分组的字节计数。如所示出的,在本地计数引擎212处接收到计数请求,并且在320在请求中包括分组大小K字节。另外,在321预配置阈值X字节。被计数请求触发,本地计数引擎212在322基于公式P=K/X计算比率P。
如果P<1,则本地计数引擎212在324随机生成0与1之间的数值N,并且在325比较N与P。如果N小于或等于P,则本地计数引擎212作出传输计数器更新消息的决定。然后,本地计数引擎212在327基于公式C=X计算字节的估计,表示为C。接下来,更新接口211在328传输包括估计X的计数器更新消息。如果N大于P,则过程在326停止。
如果在322,P大于或等于1,则将分组大小K作为计数C,即C=K。最后,更新接口211在328传输包括计数K的计数器更新消息。
在图3B的过程中,在比率P<1时,比率P是用于确定是否传输更新消息的概率。因为P=K/X,所以阈值X的增大导致传输更新消息的频率的降低。
在实施例中,当分组合流260中被计数的分组的数据速率和机架式交换机200中统计计数涉及的设备数目增加时,图3A示例中定义的用于计数分组的概率P和图3B示例中定义的用于计数字节的阈值X可被适当地调整以将存储器访问需求维持在包含指定设备240处的计数器的存储器的访问请求处理能力的限值内。特别地,概率P可减小且阈值X可增大以降低计数器更新请求的频率。
图4A示出了根据本公开的实施例的说明用于访问数据库记录的时分接入机制的图400A。图400A包括两个本地计数引擎410和420、复用器430、时隙序列450和保持计数器记录的存储器440。
根据本公开的一方面,时隙序列450使用时间轮而被确定。时间轮是在不同时隙中触发不同操作的定时器设施。在实施例中,时间轮在机架式交换机200中的中央时钟的控制下被实现为分布式机制。例如,在图2示例中,每个更新接口211-231包括由来自机架式交换机200中的中央时钟的时钟信号所控制的时间轮。
在操作中,两个本地计数引擎410和420在复用器430的控制下尝试访问存储器440,并且复用器430根据时隙序列450来授权访问存储器。例如,在时隙452期间,仅本地计数引擎410可以访问存储器440并且在存储器440上执行读-改-写操作,而在时隙454中,本地计数引擎420被授权排他的访问存储器440。空闲时间453或451用于确保每个时隙454或452的存储器访问操作(诸如读-改-写操作)能在访问被授予另一计数引擎之前被完全完成。
在一个实施例中,上文的时分接入机制被用于避免多个本地计数引擎之间的竞态条件。竞态条件是两个本地计数引擎可在相同时间访问包含计数器的存储器来更新计数器值从而引起计数过程中的不期望错误的情形。
图4B示出了根据本公开的实施例的利用上文所描述的时分接入机制的示例过程400B。
如所示出的,在设备的本地计数引擎(诸如图2中的设备210)处,在进行统计确定之后,首先在461计算字节或分组的计数。接下来,在设备的更新接口处,在462创建包括计数的消息并将消息添加至消息队列。然后,在463更新接口等待由更新接口中的时间轮所授权的时隙。最后,在被时间轮允许时,在464在指定的时隙中将队列中的消息传输给指定设备。另外,当时隙结束时,更新接口停止消息传输操作。
图4C示出了根据本公开的实施例的机架式交换机200中的用于实现时分接入机制的示例时间轮设施400C。如图所示,在实施例中,每个设备210-230包括时间轮471-473。每个时间轮471-473具有游标481-483。时间轮471-473受来自机架式交换机200中的中央时钟490的相同时钟信号的控制,从而时间轮471-473被同步并且游标481-483以相同的步调移动且在任何时间都位于相同的位置。
每个时间轮471-473具有N+1个时隙,从时隙0至时隙N。在示例中,分组流260A在设备210-230处被接收和处理。在不同的设备处,分组流260A的分组计数信息的传输被分配有不同的时隙。例如,在设备210处,时隙1被分配用于传输;在设备220处,时隙2被分配用于传输;在设备230处,时隙3被分配用于传输。当游标481-483移动至一个时隙时,与该时隙相关联的传输被触发。以这种方式,不同设备220-230处的传输在不同的时间被触发并且多个本地计数引擎之间的竞态条件被避免。在各个实施例中,时间轮471-473使用合适的软件或硬件实现。
图5示出了根据本公开的实施例的具有分布式计量器的机架式交换机500。机架式交换机500包括通过交换架构550互连的多个分布式设备510-540。作为客户的每个设备510-530将更新消息传输给设备540,并且设备540具有为每个分组流存储计量器值的数据库。计量器值指在计量器算法中使用的桶的令牌数目。每个设备510-530分别包括更新接口511-531、本地计数引擎512-532、转发处理器523-533和入端口514-534。设备540被指定执行中央计量器的功能以测量不同分组流的流量。指定设备540包括更新接口545、中央计量器546和存储器547。本地计数引擎512-532、更新接口511-531、更新接口545、中央计量器546和存储器547形成分布式计数器。
在实施例中,机架式交换机500对进入机架式交换机500的分组合流560中的分组流560A-560N执行速率限制。速率限制是基于分组流的分组被传输的数据速率来处理特定分组流的分组的过程。例如,分组流560A来自客户并且进入属于服务供应商的机架式交换机500。当在特定时间,分组流560A的例如表示为每秒比特(bps)的数据速率超过由客户与服务供应商之间的服务水平协定(SLA)定义的峰值速率时,机架式交换机500可暂时丢弃属于分组流560A的全部分组或一部分分组。在其它情况中,当分组流560A的数据速率超过承诺速率(小于峰值速率)但是低于峰值速率时,机架式交换机500可将标记附于此刻正被处理的分组,随后具有标记的分组可不同于属于分组流560A但没有标记的其它分组而被处理。例如,当网络在稍后的时间出现拥塞时具有标记的分组可被优先丢弃。
在实施例中,机架式交换机500使用分布式计量器针对某些预定义数据速率测量分组流的流量以执行速率限制过程。在实施例中,中央计量器546支持R/W消息代替RMW消息来执行数据库记录更新,从而设备510-512使用时分接入方案传输更新消息。具体地,通过使用分组流560A作为示例,速率限制过程可包括三个阶段。在第一阶段,设备510-530分别接收属于分组流560A的分组,使用统计方法计数分组,并且将分组计数信息传输给设备540。在第二阶段,指定设备540使用中央计量器546测量分组流560A的流量。指定设备540从多个设备510-530接收分组计数信息,并且针对一组预定义的数据速率基于分组计数信息测量分组流560A的流量。作为测量的结果,生成流量状态的指示符,并且指定设备响应于从设备510-530中的一个设备接收分组计数信息将流量状态的指示符传输给该设备。在最后一个阶段期间,每个设备510-530分别接收指示符并且本地地存储它。然后,指示符用于处理分组流560A的分组直到下一个指示符被接收。
以设备510为例,第一阶段的过程类似于设备210在图2示例中执行的过程。在第一阶段,入站端口514接收分组流560A的分组并且将分组传送至转发处理器513。转发处理器513标识分组并且向本地计数引擎512传输计数引擎。本地计数引擎512统计地确定是否更新指定设备540;当确定为肯定时,本地计数引擎512计算字节的估计并将估计传输给更新接口511,在更新接口511处包括估计的更新消息518被添加至等待传输的队列。当碎玉指定设备540的访问通过时间轮被授权时,分组计数信息(字节的估计)与更新消息518被传输给指定设备540。相同的过程发生在设备520或530中。
在第二阶段期间,在指定设备540处,更新接口545从多个设备510-530接收携带分组计数信息的更新消息518。在时间轮的控制下,在每个时隙,仅来自设备510-530之一的消息被接收和处理。在当前示例中,设备510是通过时间轮被分配给时隙的设备。接下来,更新接口545将分组计数信息传送给中央计量器546。
中央计量器546使用计量器算法针对预定义的数据速率集合来测量分组流560A的流量。结果,测量生成流量状态的指示符。流量状态的指示符依据与预定义的数据速率的比较来指示正在被测量的流量的数据速率。例如,如果分组流560A的数据速率超过之前提到的SLA中的峰值速率,则中央计量器516可生成红色;如果数据速率超过承诺速率但是低于峰值速率,中央计量器516可生成黄色;如果数据速率低于承诺速率,则可生成绿色。在这些示例中,使用颜色作为流量状态的指示符。注意,流量状态的指示符指示作为整体的分组流560A的当前数据速率,不指示仅在设备510-530之一处接收的分组的数据速率。
在生成指示符之后,将其传送至更新接口545。更新接口545然后将包括指示符的指示符消息519传输给当前通过时间轮分配给时隙的设备510。
在第三阶段,设备510接收流量状态的指示符并且基于该指示符处理分组流560A的分组。具体地,更新接口511接收指示符消息519并将指示符传送至本地计数引擎516。本地计数引擎512包括存储有之前所接收的指示符的存储器516,并且存储器516利用新接收的指示符进行更新。
如上文所描述的,当分组被接收且被标识为属于分组流560A时,转发处理器513将计数请求传输给本地计数引擎512。响应于接收到计数请求,本地计数引擎512可将存储在存储器516中的指示符返回给转发处理器513。具体地,在一个实施例中,本地计数引擎512首先检查指示符的颜色自从最后一次将指示符返回给转发处理器512以后是否改变。如果颜色改变,则将执行返回指示符的操作。否则,操作将不发生。
然后,在转发处理器513处,用新接收的指示符更新存储有之前所接收的指示符的存储器517。
最后,转发处理器513基于新存储的指示符来处理属于分组流560A的分组,直到另一新指示符被接收到。例如,如之前描述的,如果指示符为红色,则被标识为属于分组流560A的分组可被丢弃;或者,如果指示符为黄色,则所标识的分组可被附有指示黄色的标记。
注意,在实施例中,存储在存储器516中的指示符的更新仅发生在更新消息518被传输并且指示符消息519被接收之后。因为本地计数引擎512使用统计方法,如果例如对于接收到的每10个分组,仅单个分组的到达触发更新消息的传输,则对于每10个这种分组,存储器516只有一次更新机会。在存储在存储器516中的指示符不被更新的同时,存储在存储器517中的指示符也不能被更新。由此,转发处理器基于之前被接收并且被存储在存储器517中的指示符处理分组流560A的分组。
注意,在另一实施例中,指定设备540将流量状态的指示符传输给设备510-530中的一个设备而不需要从该设备接收分组计数信息。例如,指定设备540可周期地将中央计量器546生成的流量状态的指示符传输给设备510-530中的在一段时间内不向指定设备540传输更新消息的设备。
在实施例中,存储器516和517被实现为支持快速数据请求的缓存。
图6示出了根据本公开的实施例的说明计量器算法600的图。算法600在图5示例中使用。算法600包括两个令牌桶610和620。第一令牌桶610具有峰值突发尺寸(PBS)和当前尺寸(Tp),其中峰值突发尺寸(PBS)等于第一令牌桶610的最大容量,当前尺寸(Tp)等于第一令牌桶610中保持的令牌数。第一令牌桶以峰值速率(例如之前提到的SLA中的峰值速率)接收令牌。类似地,第二令牌桶620具有承诺突发尺寸(CBS)和当前尺寸(Tc)并且以承诺速率接收令牌(例如,之前提到的SLA中的承诺速率),其中承诺突发尺寸(CBS)等于第二令牌桶620的最大容量,当前尺寸(Tc)等于第二令牌桶620中保持的令牌数。算法600中使用的峰值速率和承诺速率被称为预定义速率。
如所示出的,当在630接收到字节的估计(描绘为C)时,在640对字节的估计C与令牌桶610的当前尺寸Tp进行比较。如果C>Tp,则生成红色指示符661;否则,从第一令牌桶610移除等于C的令牌数目,并且在650对字节的估计C与令牌桶620的当前尺寸Tc进行比较。如果C>Tc,则生成黄色指示符662;否则,从第二令牌桶620移除等于C的令牌数,并且生成绿色指示符。
在实施例中,图5中的中央计量器546使用算法600来处理所接收的分组计数信息以针对一组预定义的数据速率(诸如之前提到的峰值速率和承诺速率)来测量分组流560A的流量。令牌桶610和620使用存储在存储器547中的计数器来实现,并且当令牌从令牌桶610和620被移除同时中央计量器546运行算法600时令牌数(称为计量器值)被更新。
注意,可在中央计量器546处使用各种算法,例如具有各种数目的令牌桶和颜色的令牌桶算法、漏桶算法等。
图7示出了根据本公开的实施例的使用图2中描述的分布式计数器的计数过程700的流程图。过程700可被划分成两个阶段:第一阶段包括步骤S702-S706并且发生在保持本地计数引擎的设备(例如图2中的设备210-230)中;第二阶段包括步骤S707和S708并且发生在保持中央计数器的指定设备(例如图2中的指定设备240)中。参考图2,过程700描述如下。
过程700从S701开始并且进入S702。
在S702,在入端口接收属于分组合流的分组并将它传送至转发处理器。
在S703,转发处理器标识该分组为属于被计数的分组流的分组并且向本地计数引擎发送计数请求。
在S704,本地计数引擎统计地确定是否向指定设备传输分组计数信息。如果得到否定的结果,则本地计数引擎不传输;如果得到肯定结果,则过程进入S705。
在S705,本地计数引擎基于之前所描述的统计方法来计算分组或字节的计数作为分组或字节的估计,并将估计传输给更新接口。
在S706,在更新接口处,将包括估计的更新消息添加至消息队列。当时间轮将时隙授予更新接口时,更新接口将分组计数信息传输到指定设备。
在S707,在指定设备处,更新接口接收包括分组计数信息的更新消息并且将分组计数信息传送给中央计数器。
在S708,中央计数器更新被存储在存储器中的计数器值。然后过程进入S799并且终止。
图8示出了根据本公开的实施例的计量过程800的流程图。计量过程800发生在使用图5中描述的分布式计量器的速率限制操作中。过程800可被划分成三个阶段:第一阶段包括步骤S802-S806并且发生在保持本地计数引擎的设备(诸如图5中的设备510-530)中;第二阶段包括步骤S807-S809并且发生在保持中央计量器的指定设备(诸如图5中的指定设备540)中;第三阶段包括步骤S810和S811并且发生在过程的第一阶段所发生的设备中。参考图5,过程800描述如下。
过程800从S801开始并且进入S802。
在S802,在保持本地计数引擎的设备处,在入端口处接收属于分组合流的分组并且将其传送至转发处理器。
在S803,转发处理器标识分组为属于被计数的分组流的分组并向本地计数引起发送计数请求。另外,转发处理器可从本地计数引擎接收流量状态的第一指示符,并且用第一指示符更新转发处理器中存储有前一个指示符的存储器。然后,转发处理器基于第一指示符处理属于分组流的分组直到新的指示符被接收到。
在S804,响应于从转发处理器接收计数请求,本地计数引擎可将第一指示符传输给转发处理器。具体地,本地计数引擎检查具有不同颜色的指示符自从最后一次将指示符传输给转发处理器之后是否被接收并且被存储在本地计数引擎中的存储器中。如果这样,则将存储在本地计数引擎中的存储器中的指示符传输给转发处理器。
另外,本地计数引擎统计地确定是否将分组计数信息传输给指定设备。如果得到否定的结果,本地计数引擎不传输;如果得到肯定的结果,过程进入S805。
在S805,本地计数引擎基于之前所描述的统计方法计算字节的计数作为字节的估计并且将估计发送给更新接口。
在S806,类似于图7中的步骤S706,将包括字节的估计的更新消息添加至消息队列。当时间轮将时隙授权更新接口时,更新接口将分组计数信息传输给指定设备。
在S807,类似于图7中的步骤S707,在指定设备处,更新接口接收包括分组计数信息的更新消息并将分组计数信息传送至中央计数器。
在S808,发生利用中央计量器的流量测量。具体地,生成第二指示符并且更新令牌桶,其中第二指示符具有指示被计数的分组流的流量状态的颜色。
在S809,在指定设备的更新接口处将第二指示符传输给保持本地计数引擎的设备。
在S810,在保持本地计数引擎的设备处,在更新接口接收第二指示符并将它传送给本地计数引擎。
在S811,最后,本地计数引擎利用第二指示符更新本地计数引擎中的存储器。然后,过程进入S899并且终止。
尽管已经结合被提出作为示例的本公开的特定实施例描述了本公开的各方面,但是可对示例做出替换、修改和变型。由此,本文中所阐述的实施例旨在示说明性的并且不是限制性的。在背离下面所阐述的权利要求的范围的情况下,可进行改变。
Claims (31)
1.一种方法,包括:
在具有多个分布式分组处理设备的分组处理系统的第一分组处理设备处,接收分组流中的分组;
在所述第一分组处理设备处,基于概率确定是否利用分组计数信息来更新被设置在所述多个分布式分组处理设备中的指定设备处的中央计数引擎,所述分组计数信息在所述第一分组处理设备处生成;以及
将分组计数信息传输至所述指定设备,用于计数所述分组流的分组。
2.根据权利要求1所述的方法,其中所述指定设备从所述分组处理系统中的所述多个分组处理设备接收与所述分组流相对应的多个分组计数信息,并且所述指定设备计数分组的数目以基于所述多个分组计数信息来计数所述分组流的分组。
3.根据权利要求1所述的方法,其中传输分组计数信息包括:
在所述第一分组处理设备处基于时间轮来指派时隙;以及
在由所述时间轮所指派的所述时隙中将分组计数信息传输至所述指定设备。
4.根据权利要求1所述的方法,其中在所述第一分组处理设备处基于概率确定是否更新在所述多个分布式分组处理设备中的指定设备处的中央计数引擎包括:
生成0至1范围内的随机数;以及
当所述随机数小于所述概率时,确定使用所述分组计数信息来更新所述中央计数引擎,所述分组计数信息包括分组的计数,所述分组的计数是所述概率的倒数。
5.根据权利要求1所述的方法,其中在所述第一分组处理设备处基于概率确定是否更新在所述多个分布式分组处理设备中的指定设备处的中央计数引擎包括:
计算所述分组的分组大小与阈值的比率;
当所述比率大于1时,确定使用所述分组计数信息来更新所述中央计数引擎,所述分组计数信息包括字节的计数,所述字节的计数是所述分组大小;以及
当所述比率小于1并且大于0至1范围内的随机数时,确定使用所述分组计数信息来更新所述中央计数引擎,所述分组计数信息包括字节的计数,所述字节的计数是所述阈值。
6.一种具有多个分布式分组处理设备的分组处理系统中的设备,包括:
入端口,被配置为接收分组流中的分组;
本地计数引擎,被配置为基于概率确定是否更新被设置在所述多个分布式分组处理设备中的指定设备处的中央计数引擎;以及
更新接口,被配置为将分组计数信息传输至所述指定设备,用于计数所述分组流的分组。
7.根据权利要求6所述的设备,其中所述更新接口包括时间轮,所述时间轮被配置为指派时隙以用于传输分组计数信息。
8.根据权利要求6所述的设备,其中所述本地计数引擎还被配置为:
生成0至1范围内的随机数;以及
当所述随机数小于所述概率时,确定使用所述分组计数信息来更新所述中央计数引擎,所述分组计数信息包括分组的计数,所述分组的计数是所述概率的倒数。
9.根据权利要求6所述的设备,其中所述本地计数引擎还被配置为:
计算所述分组的分组大小与阈值的比率;
当所述比率大于1时,确定使用所述分组计数信息来更新所述中央计数引擎,所述分组计数信息包括字节的计数,所述字节的计数是所述分组大小;
当所述比率小于1并且大于0至1范围内的随机数时,确定使用所述分组计数信息来更新所述中央计数引擎,所述分组计数信息包括字节的计数,所述字节的计数是所述阈值。
10.一种具有多个分布式分组处理设备的分组处理系统中的指定设备,包括:
更新接口,被配置为从所述多个分布式分组处理设备接收多个分组计数信息,所述分布式分组处理设备接收分组流中的分组并且基于概率确定是否利用分组计数信息更新所述指定设备;以及
中央计数引擎,被配置为基于所述多个分组计数信息来计数所述分组流的分组。
11.根据权利要求10所述的指定设备,其中所述中央计数引擎被配置为基于所述多个分组计数信息来更新计数器以计数所述分组流的分组。
12.根据权利要求10所述的指定设备,其中所述中央计数引擎还被配置为计数分组的数目以计数所述分组流的分组。
13.根据权利要求10所述的指定设备,其中所述中央计数引擎还被配置为计数字节的数目以计数所述分组流的分组。
14.一种方法,包括:
在具有多个分布式分组处理设备的分组处理系统的第一分组处理设备处,接收分组流中的分组;
在所述第一分组处理设备处,基于概率确定是否利用分组计数信息来更新被设置在所述多个分布式分组处理设备中的指定设备处的中央计数引擎,所述分组计数信息在所述第一分组处理设备处生成;以及
将分组计数信息传输至所述指定设备,用于测量所述分组流的数据速率。
15.根据权利要求14的方法,还包括:
在所述第一分组处理设备处,从所述指定设备接收基于所述分组计数信息而被确定的所述分组流的流量状态的指示符;以及
在所述第一分组处理设备处,将所述流量状态的所述指示符存储在所述第一分组处理设备中。
16.根据权利要求15所述的方法,还包括:
在所述第一分组处理设备处,基于被存储在所述第一分组处理设备中的所述流量状态的所述指示符来处理属于所述分组流的分组。
17.根据权利要求14所述的方法,其中所述指定设备从所述分组处理系统中的所述多个分组处理设备接收与所述分组流相对应的多个分组计数信息,并且所述指定设备基于所述多个分组计数信息来测量所述分组流的流量。
18.根据权利要求17所述的方法,还包括:
在所述第一分组处理设备处,存储基于由所述指定设备所接收的所述多个分组计数信息而被确定的所述分组流的流量状态的指示符;以及
所述第一分组处理设备处,基于所存储的所述流量状态的指示符来处理属于所述分组流的分组。
19.根据权利要求14所述的方法,其中传输分组计数信息包括:
在所述第一分组处理设备处基于时间轮来指派时隙;以及
在由所述时间轮所指派的所述时隙中将分组计数信息传输给所述指定设备。
20.根据权利要求14所述的方法,其中在所述第一分组处理设备处基于概率确定是否更新在所述多个分布式分组处理设备中的指定设备处的中央计数引擎包括:
生成0至1范围内的随机数;以及
当所述随机数小于所述概率时,确定使用所述分组计数信息来更新所述中央计数引擎,所述分组计数信息包括分组的计数,所述分组的计数是所述概率的倒数。
21.根据权利要求14所述的方法,其中在所述第一分组处理设备处基于概率确定是否更新指定设备处的中央计数引擎包括:
计算所述分组的分组大小与阈值的比率;
当所述比率大于1时,确定使用所述分组计数信息来更新所述中央计数引擎,所述分组计数信息包括字节的计数,所述字节的计数是所述分组大小;以及
当所述比率小于1并且大于0至1范围内的随机数时,确定使用所述分组计数信息来更新所述中央计数引擎,所述分组计数信息包括字节的计数,所述字节的计数是所述阈值。
22.一种具有多个分布式设备的分组交换系统中的设备,包括:
入端口,被配置为接收具有至少一个分组流的分组合流;
本地计数引擎,被配置为基于对属于分组流的分组的接收来基于概率确定是否更新所述分组交换系统中的所述多个分布式设备中的指定设备;以及
更新接口,被配置为基于统计确定来将分组计数信息传输至所述指定设备,其中所述指定设备基于所述分组计数信息来测量所述分组流的流量。
23.根据权利要求22所述的设备,其中:
所述更新接口还被配置为从所述指定设备接收基于所述分组计数信息而被确定的所述分组流的流量状态的指示符;以及
所述本地计数引擎还包括被配置为存储所述分组流的流量状态的所述指示符的存储器。
24.根据权利要求22所述的设备,其中所述设备还包括:
转发处理器,所述转发处理器包括被配置为存储基于由所述指定设备所接收的所述分组计数信息而被确定的所述分组流的流量状态的指示符的存储器,所述转发处理器被配置为基于被存储在所述设备中的所述指示符来处理属于所述分组流的分组。
25.根据权利要求22所述的设备,其中所述设备还包括:
转发处理器,所述转发处理器包括被配置为存储基于由所述指定设备所接收的所述分组计数信息而被确定的从所述指定设备接收的所述分组流的流量状态的指示符的存储器,所述转发处理器被配置为基于对属于所述分组流的分组的接收来将计数更新请求传输给所述本地计数引擎并且基于从所述本地计数引擎接收所述流量状态的另一指示符而将从所述本地计数引擎接收的所述分组流的流量状态的所述另一指示符存储到所述存储器中。
26.根据权利要求22所述的设备,其中所述更新接口包括时间轮,所述时间轮被配置为指派时隙以用于传输分组计数信息。
27.根据权利要求22所述的设备,其中所述本地计数引擎还被配置为:
生成0至1范围内的随机数;以及
当所述随机数小于所述概率时,确定使用所述分组计数信息来更新所述指定设备,所述分组计数信息包括分组的计数,所述分组的计数是所述概率的倒数。
28.根据权利要求22所述的设备,其中所述本地计数引擎还被配置为:
计算所述分组的分组大小与阈值的比率;
当所述比率大于1时,确定使用所述分组计数信息来更新所述指定设备,所述分组计数信息包括字节的计数,所述字节的计数是所述分组大小;以及
当所述比率小于1并且大于0至1范围内的随机数时,确定使用所述分组计数信息来更新所述指定设备,所述分组计数信息包括字节的计数,所述字节的计数是所述阈值。
29.一种具有多个分布式设备的分组交换系统中的指定设备,包括:
更新接口,被配置为从所述分组交换系统中的多个分布式设备接收多个分组计数信息,其中所述分组交换系统接收具有至少一个分组流的分组合流;以及
中央计数引擎,被配置为基于所述多个分组计数信息来测量所述分组流的流量。
30.根据权利要求29所述的指定设备,其中所述中央计数引擎被配置为基于所述多个分组计数信息来计算所述分组流的流量状态的指示符以测量所述分组流的流量。
31.根据权利要求29所述的指定设备,其中所述更新接口还被配置为将所述分组流的流量状态的指示符传输给所述多个分布式设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201461947622P | 2014-03-04 | 2014-03-04 | |
US61/947,622 | 2014-03-04 | ||
PCT/IB2015/051594 WO2015132744A1 (en) | 2014-03-04 | 2015-03-04 | Distributed counters and meters in packet-switched system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106068629A CN106068629A (zh) | 2016-11-02 |
CN106068629B true CN106068629B (zh) | 2019-07-19 |
Family
ID=52998184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580011726.8A Active CN106068629B (zh) | 2014-03-04 | 2015-03-04 | 分组交换系统中的分布式计数器和计量器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9705807B2 (zh) |
CN (1) | CN106068629B (zh) |
WO (1) | WO2015132744A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9621468B1 (en) * | 2014-12-05 | 2017-04-11 | Amazon Technologies, Inc. | Packet transmission scheduler |
US9654483B1 (en) * | 2014-12-23 | 2017-05-16 | Amazon Technologies, Inc. | Network communication rate limiter |
US10320645B2 (en) | 2016-07-11 | 2019-06-11 | Cisco Technology, Inc. | System and method of using atomic flow counters in data center switching |
US11159455B1 (en) | 2018-12-28 | 2021-10-26 | Innovium, Inc. | Reducing power consumption in an electronic device |
EP4014430B1 (en) * | 2019-08-15 | 2023-11-29 | Telefonaktiebolaget LM Ericsson (publ) | Apparatuses and methods to measure the number of packets in cups |
US20220038372A1 (en) * | 2020-08-02 | 2022-02-03 | Mellanox Technologies Tlv Ltd. | Stateful filtering systems and methods |
US11799784B2 (en) * | 2021-06-08 | 2023-10-24 | Vmware, Inc. | Virtualized QoS support in software defined networks |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179481A (zh) * | 2006-11-09 | 2008-05-14 | 中兴通讯股份有限公司 | 数据流量控制方法和装置 |
CN103560980A (zh) * | 2012-05-22 | 2014-02-05 | 马维尔国际贸易有限公司 | 用于内部/外部存储器分组和字节计数的方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8064359B2 (en) * | 2008-12-23 | 2011-11-22 | At&T Intellectual Property I, L.P. | System and method for spatially consistent sampling of flow records at constrained, content-dependent rates |
KR101268621B1 (ko) * | 2009-12-21 | 2013-05-29 | 한국전자통신연구원 | 동적 플로우 샘플링 장치 및 방법 |
US8908636B2 (en) * | 2010-06-21 | 2014-12-09 | Qualcomm Incorporated | Method and apparatus for QoS context transfer during inter radio access technology handover in a wireless communication system |
US8837486B2 (en) * | 2012-07-25 | 2014-09-16 | Cisco Technology, Inc. | Methods and apparatuses for automating return traffic redirection to a service appliance by injecting traffic interception/redirection rules into network nodes |
-
2015
- 2015-03-04 US US14/638,753 patent/US9705807B2/en active Active
- 2015-03-04 CN CN201580011726.8A patent/CN106068629B/zh active Active
- 2015-03-04 WO PCT/IB2015/051594 patent/WO2015132744A1/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179481A (zh) * | 2006-11-09 | 2008-05-14 | 中兴通讯股份有限公司 | 数据流量控制方法和装置 |
CN103560980A (zh) * | 2012-05-22 | 2014-02-05 | 马维尔国际贸易有限公司 | 用于内部/外部存储器分组和字节计数的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2015132744A1 (en) | 2015-09-11 |
US20150256466A1 (en) | 2015-09-10 |
CN106068629A (zh) | 2016-11-02 |
US9705807B2 (en) | 2017-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106068629B (zh) | 分组交换系统中的分布式计数器和计量器 | |
CN104954247B (zh) | 用于数据中心覆盖网络的主机网络加速器 | |
CN104954253B (zh) | 用于数据中心覆盖网络的基于PCIe的主机网络加速器(HNA) | |
CN106031094A (zh) | 分布式计数器的准确测量 | |
US6950400B1 (en) | Method and apparatus for performing high-speed traffic shaping | |
CN108028782A (zh) | 用于安全地测量网络中端到端的服务质量的方法和装置 | |
CN103259694B (zh) | 用于网络设备的空间高效计数器 | |
CN109792409A (zh) | 用于在拥塞事件期间丢弃消息的方法、系统和计算机可读介质 | |
USRE49806E1 (en) | Timestamping packets in a network | |
CN107567704A (zh) | 使用带内元数据的网络路径通过验证 | |
US10419965B1 (en) | Distributed meters and statistical meters | |
CN105993150A (zh) | 增加网络设备中的分组处理速率 | |
WO2017157072A1 (zh) | 数据流转发异常检测方法、控制器和系统 | |
CN109714266A (zh) | 一种数据处理方法及网络设备 | |
CN105630712B (zh) | 计数器及计数方法 | |
CN104320305B (zh) | 一种网络设备转发业务监控方法及系统 | |
CN104410527B (zh) | 一种拓扑检测方法、交换机及热堆叠系统 | |
CN108075935A (zh) | 测量时延的方法及设备 | |
CN108683607A (zh) | 虚拟机流量控制方法、装置和服务器 | |
CN108259221A (zh) | 流量控制方法、装置、系统、存储介质和处理器 | |
CN106487613A (zh) | 一种带宽测试方法、装置和系统 | |
CN108650154A (zh) | 流量控制方法及装置 | |
CN109377770A (zh) | 统计车流量的方法和装置、计算设备和存储介质 | |
Shahzad et al. | Noise can help: Accurate and efficient per-flow latency measurement without packet probing and time stamping | |
US10812391B1 (en) | Methods and apparatus for load balancing in a network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |