一种网络设备中流量限速的方法及装置与流程

文档序号:15061909发布日期:2018-07-31 22:00阅读:260来源:国知局

本发明实施例涉及通信技术领域,尤其涉及一种网络设备中流量限速的方法及装置。



背景技术:

由于通过网络设备的业务流种类繁多且流量较大,每个转发实例(例如交换机、路由器)同样也会遇到这种现象。为了保证某种特定的数据流有足够的带宽进行转发,运营商往往需要在类似交换机的转发实例上对一些数据流进行流量控制,也可以说进行流量限速,即,对某业务数据流的流量设定带宽阈值,当某业务数据流经过交换机的流量超过设定的带宽阈值时,将超过的部分进行丢弃。

交换机中的转发芯片具体用于流量的转发,通常情况下,交换机中包含一个或以上单板,每块单板上包括两个或以上转发芯片(可简称为芯片)。每个芯片可以对流经自身的流量进行统计,但是无法统计其他芯片的流量。当源网际协议(internetprotocol,ip)地址相同的数据流通过两个或以上转发芯片进入设备时,无法实现对该数据流进行跨芯片的流量限速。

综上,当数据流的负载分担到两个芯片时,基于单个芯片单独限速的方案无法实现跨芯片的流量限速。



技术实现要素:

本申请实施例提供一种网络设备中流量限速的方法及装置,用以解决当数据流的负载分担到两个芯片时,基于单个芯片单独限速的方案无法实现跨芯片的流量限速的问题。

本申请实施例提供的具体技术方案如下:

第一方面,提供一种网络设备中流量限速的方法,网络设备中的一个芯片通过同步获取同一网络设备中其他芯片的流量信息,并合并各个芯片的流量信息进行计算,实现跨芯片流量限速。

在一个可能的设计中,所述网络设备包括第一芯片和至少一个第二芯片,所述第一芯片和所述至少一个第二芯片连接,所述第一芯片监控流经所述第一芯片的第一数据流的第一流量,并同步获取流经所述第二芯片的第二数据流的第二流量,所述第一芯片判断所述第一流量和所述第二流量的总流量超过设置的流量阈值时,丢弃所述第一流量中的部分数据流,从而可以在网络设备包含的至少两块芯片间同步统计信息,并进行合并计算,实现当流量在不同芯片间转发时流量限速的目的。其中,所述流量阈值为经过所述网络设备的具有所述流量统计特征的数据流的流量上限,所述第一数据流与所述第二数据流具有相同的流量统计特征。

在一个可能的设计中,所述流量统计特征包括数据报文的源ip地址和目的ip地址中的至少一个。

在一个可能的设计中,所述第一芯片在监控流经所述第一芯片的第一数据流的第一流量时,所述第一芯片获取单位时间内第一计数器的变化值,根据所述变化值,确定流经所述第一芯片的第一数据流的第一流量,其中,所述第一计数器与所述第一芯片的第一标识、所述流量统计特征具有对应关系。

在一个可能的设计中,所述第一芯片按照设定周期,将所述第一流量的信息发送给所述至少一个第二芯片。以达到统计信息同步的目的。

在一个可能的设计中,所述第一芯片在丢弃所述第一流量中的部分数据流时,具体地,所述第一芯片按照所述总流量超出所述流量阈值的大小,丢弃所述第一流量中的部分数据流;或者,所述第一芯片按照所述总流量超出所述流量阈值的大小以及所述第一流量占所述总流量的比例,获取所述第一流量中待丢弃数据流的大小,并按照所述第一流量中待丢弃数据流的大小,丢弃所述第一流量中的部分数据流。这样,根据芯片的流量比例丢弃数据报文,能够平衡各个芯片的负载,且达到流量限速的目的。

第二方面,提供一种网络设备中流量限速的装置,该装置应用于第一芯片,该装置具有实现上述第一方面和第一方面的任一种可能的设计中第一芯片行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。

第三方面,提供一种网络设备中流量限速的装置,包括收发器、处理器、存储器和总线,收发器、处理器、存储器均与总线连接,其中,所述存储器中存储一组程序,所述处理器用于调用所述存储器中存储的程序,当程序被执行时,使得所述处理器执行如第一方面和第一方面的任一种可能的设计中所述的方法。

第四方面,提供一种网络设备,所述网络设备包括第一芯片和至少一个第二芯片,所述第一芯片能够执行如第一方面和第一方面的任一种可能的设计中所述的方法。

附图说明

图1为本申请实施例中交换机系统架构图;

图2为本申请实施例中网络设备中流量限速的方法流程图;

图3为本申请实施例中交换机中跨芯片流量统计示意图;

图4为本申请实施例中网络设备中流量限速的装置结构图之一;

图5为本申请实施例中网络设备中流量限速的装置结构图之二。

具体实施方式

下面将结合附图,对本申请实施例进行详细描述。

本申请实施例通过同步获取同一网络设备中其他芯片的流量信息,实现跨芯片流量限速。本申请实施例中的网络设备包括交换机。实际应用中,当交换机中一个芯片无法满足交换容量要求时,通常在一个交换机中使用至少两个芯片。或者,在一个交换机的一块单板上使用至少两个芯片。

例如,如图1所示,假设一个交换机100中包括两个芯片101,分别用芯片1和芯片2表示。每个芯片连接一定数量的面板接口102,面板接口102负责传递流量给芯片101。各个芯片101之间通过内部接口连接,可以实现跨芯片转发流量以及芯片间表项的同步。

如图2所示,本申请实施例提供的网络设备中流量限速的方法如下所述。

执行主体为网络设备中的第一芯片,其中,第一芯片为网络设备中的任意一个芯片,网络设备包括第一芯片和至少一个第二芯片,第二芯片为不同于第一芯片的任一芯片,第一芯片和该至少一个第二芯片通过内部接口连接。

步骤201:第一芯片监控流经第一芯片的第一数据流的第一流量,并同步获取流经第二芯片的第二数据流的第二流量;

其中,第一数据流与第二数据流具有相同的流量统计特征,流量统计特征为网络设备预先配置的流量统计的密钥(即key)。该流量统计特征为数据流的特定报文特征,例如,流量统计特征可以是源ip地址或者目的ip地址。若流量统计特征为源ip地址,则第一数据流和第二数据流的源ip地址相同。

具体地,每一个芯片在本地建立芯片标识、流量统计特征和计数器这三者之间的对应关系。计数器用于对经过与芯片标识对应芯片的、且与流量统计特征对应的数据报文进行计数。例如,第一芯片的标识用第一标识表示,第一芯片在本地建立第一芯片的第一标识、第一流量的流量统计特征和第一计数器的对应关系。

第一芯片获取单位时间内第一计数器的变化值,根据变化值,确定流经第一芯片的第一数据流的第一流量。例如,当第一流量的流量统计特征为源ip地址时,第一芯片中的第一计数器对经过第一芯片的、且与该源ip地址匹配的数据报文进行计数,第一芯片获取单位时间内第一计数器的变化值,即为流经第一芯片的第一数据流的流量。

本申请实施例中,每一个芯片按照设定周期通过内部接口将计数器的值广播给其他芯片。第一芯片按照设定周期,将第一流量的信息发送给上述至少一个第二芯片。

与第一芯片相同的计数方式,第二芯片获取单位时间内第二计数器的变化值,确定第二芯片的第二数据流的第二流量,并将第二流量发送给第一芯片,或者将第二计数器的数值即对应的第二芯片的第二标识和第二流量的流量统计特征发送给第一芯片。第一芯片接收第二芯片发送的流量记录信息,获取流经第二芯片的第二数据流的第二流量。

步骤202:第一芯片判断第一流量和第二流量的总流量超过设置的流量阈值时,丢弃第一流量中的部分数据流。

其中,流量阈值为经过网络设备的具有流量统计特征的数据流的流量上限。

具体地,第一芯片按照总流量超出流量阈值的大小,丢弃第一流量中的部分数据流;或者,第一芯片按照总流量超出流量阈值的大小以及第一流量占总流量的比例,获取第一流量中待丢弃数据流的大小,并按照第一流量中待丢弃数据流的大小,丢弃第一流量中的部分数据流。

也就是说,假设流量阈值为q,第一流量为q1,第二流量为q2。q1+q2>q,且q1+q2-q=△q。

第一芯片在判断总流量超过设定的流量阈值时,将q1中的大小为△q的部分数据流丢弃。或者,按照比例丢弃,具体为,第一芯片将q1中的大小为△q*(q1/q)的部分数据流丢弃。相应的,第二芯片将q2中的大小为△q*(q2/q)的部分数据流丢弃。

这样,能够起到跨芯片流量限速的作用。

下面结合具体的应用场景来对本申请实施例提供的网络设备中流量限速的方法作进一步详细说明。

基于图1所示的交换机系统架构,如图3所示,在同一个网络设备(即交换机100)中,需要对各个芯片进行编号。例如,第一芯片编号为芯片1,第二芯片编号为芯片2,芯片1的标识用chip-1表示,芯片2的标识用chip-2表示。假设交换机100需要统计源地址为ip-1的数据流的流量,并配置源地址为ip-1的数据流的流量的流量阈值,例如流量阈值为100m。计数器1用于统计流经芯片1的源地址为ip-1的数据流的流量,计数器2用于统计流经芯片2的源地址为ip-1的数据流的流量。芯片1、ip-1和计数器1具有对应关系,芯片2、ip-1和计数器2也具有对应关系。计数器1会针对流经芯片1的源地址为ip-1的数据报文进行计数,计数器2会针对流经芯片2的源地址为ip-1的数据报文进行计数。芯片1和芯片2之间通过内部接口连接,任意一个芯片会周期性的向其他芯片发送自身记录的数据,也会周期性的接收其他芯片发来的数据,达到芯片间记录数据同步的目的。例如,芯片1按照100ms的时间间隔向芯片2发送记录的数据,包括芯片1、ip-1和计数器1的对应关系,以及计数器1记录的数值;芯片2每隔100ms接收并存储芯片1发送的数据,包括芯片1、ip-1和计数器1的对应关系,以及计数器1记录的数值;同理,芯片2按照100ms的时间间隔向芯片1发送记录的数据,包括芯片2、ip-1和计数器2的对应关系,以及计数器2记录的数值,芯片1会每隔100ms接收并存储芯片2发送的数据,包括芯片2、ip-1和计数器2的对应关系,以及计数器2记录的数值。

每个芯片按照自身统计的数据和接收的其他芯片同步的数据,统计源地址为ip-1的数据流是否超过流量阈值。例如,芯片1中计数器1统计的源地址为ip-1的数据流量为50m,接收芯片2发送的计数器2统计的源地址为ip-1的数据流量为60m,超过流量阈值100m,超出部分大小为10m。则芯片1可以将流经芯片1的50m流量中的10m大小的数据报文丢弃;或者,芯片1和芯片2各自丢弃部分数据报文,具体地,芯片1丢弃部分数据报文大小等于10m*[50m/(50m+60m)];芯片2丢弃部分数据报文大小等于10m*[60m/(50m+60m)]。

基于与图2所示的方法同一发明构思,参阅图4所示,本申请实施例还提供一种网络设备中流量限速的装置400,该网络设备中流量限速的装置400应用于第一芯片,该网络设备包括第一芯片和至少一个第二芯片,第一芯片和至少一个第二芯片连接,该网络设备中流量限速的装置400包括:

监控单元401,监控流经第一芯片的第一数据流的第一流量;

获取单元402,用于同步获取流经第二芯片的第二数据流的第二流量,第一数据流与第二数据流具有相同的流量统计特征;

处理单元403,用于判断监控单元401监控的第一流量和获取单元402同步获取的第二流量的总流量超过设置的流量阈值时,丢弃第一流量中的部分数据流,其中,流量阈值为经过网络设备的具有流量统计特征的数据流的流量上限。

可选的,监控单元401用于:

获取单位时间内第一计数器的变化值,根据变化值,确定流经第一芯片的第一数据流的第一流量,其中,第一计数器与第一芯片的第一标识、流量统计特征具有对应关系。

可选的,还包括:

发送单元404,用于按照设定周期,将第一流量的信息发送给至少一个第二芯片。

可选的,处理单元403用于:

按照总流量超出流量阈值的大小,丢弃第一流量中的部分数据流;或者,

按照总流量超出流量阈值的大小以及第一流量占总流量的比例,获取第一流量中待丢弃数据流的大小,并按照第一流量中待丢弃数据流的大小,丢弃第一流量中的部分数据流。

基于与图2所示的方法同一发明构思,参阅图5所示,本申请实施例还提供一种网络设备中流量限速的装置500,包括收发器501、处理器502、存储器503和总线504,收发器501、处理器502、存储器503均与总线504连接,其中,存储器503中存储一组程序,处理器502用于调用存储器503中存储的程序,当程序被执行时,使得处理器执行以下操作:

监控流经第一芯片的第一数据流的第一流量;同步获取流经第二芯片的第二数据流的第二流量,第一数据流与第二数据流具有相同的流量统计特征;

判断第一流量和第二流量的总流量超过设置的流量阈值时,丢弃第一流量中的部分数据流,其中,流量阈值为经过网络设备的具有流量统计特征的数据流的流量上限。

可选的,处理器502用于:

获取单位时间内第一计数器的变化值,根据变化值,确定流经第一芯片的第一数据流的第一流量,其中,第一计数器与第一芯片的第一标识、流量统计特征具有对应关系。

可选的,

收发器501,用于按照设定周期,将第一流量的信息发送给至少一个第二芯片。

可选的,处理器502用于:

按照总流量超出流量阈值的大小,丢弃第一流量中的部分数据流;或者,

按照总流量超出流量阈值的大小以及第一流量占总流量的比例,获取第一流量中待丢弃数据流的大小,并按照第一流量中待丢弃数据流的大小,丢弃第一流量中的部分数据流。

处理器502可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np)或者cpu和np的组合。

处理器502还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。

存储器503可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储器503也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器503还可以包括上述种类的存储器的组合。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1