CN113645154B - 网络流量控速的方法以及装置 - Google Patents
网络流量控速的方法以及装置 Download PDFInfo
- Publication number
- CN113645154B CN113645154B CN202111188027.4A CN202111188027A CN113645154B CN 113645154 B CN113645154 B CN 113645154B CN 202111188027 A CN202111188027 A CN 202111188027A CN 113645154 B CN113645154 B CN 113645154B
- Authority
- CN
- China
- Prior art keywords
- sets
- data packet
- data packets
- dimensions
- 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.)
- 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/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- 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/20—Traffic policing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书实施例提供网络流量控速的方法以及装置,其中所述网络流量控速的方法包括:预先设置多个不同统计维度的集合,其中不同统计维度的集合对应不同数据包特征;响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合;将所述数据包关联到匹配的一个或多个集合;对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果;根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令。
Description
技术领域
本说明书实施例涉及互联网技术领域,特别涉及一种网络流量控速的方法。本说明书一个或者多个实施例同时涉及一种网络流量控速的装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
在云计算里面,一套物理的网络基础设施,上面承载着很多用户的网络流量。目前业界一般会把流量集中到一台服务器上,通过服务器的CPU来计算流量,按照用户对流量进行控速。
但是,如今云计算时代,流量爆炸式增长,流量的使用也更加复杂。比如,一个项目应用可能面对很多客户,一个客户可能使用很多产品。因此,目前的流量控速方式,难以达到精准控速。
发明内容
有鉴于此,本说明书实施例提供了一种网络流量控速的方法。本说明书一个或者多个实施例同时涉及一种网络流量控速的装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种网络流量控速的方法,包括:预先设置多个不同统计维度的集合,其中不同统计维度的集合对应不同数据包特征;响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合;将所述数据包关联到匹配的一个或多个集合;对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果;根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令。
可选地,所述方法应用于可编程芯片,所述预先设置多个不同统计维度的集合,包括:可编程芯片的控制面向数据面下发包含多个集合各自对应的数据包特征的第一表项,其中,所述可编程芯片中的数据面用于建立多个集合,按所述第一表项确定集合对应的数据包特征;所述根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令,包括:可编程芯片的控制面根据集合的计量结果向数据面下发对所述数据包执行对应的控速指令的第二表项,其中,所述可编程芯片中的数据面用于根据所述第二表项对所述数据包执行对应的控速指令。
可选地,所述对所述一个或多个集合分别进行流量统计,得到所述一个或多个集合各自的计量结果,包括:基于所述一个或多个集合各自配置的硬件计数器,对所述一个或多个集合分别进行流量统计,得到所述一个或多个集合各自的计量结果。
可选地,所述方法应用于支持P4语言的可编程芯片,所述硬件计数器为meter计数器;所述基于所述一个或多个集合各自配置的、所述可编程芯片提供的硬件计数器,对所述一个或多个集合分别进行流量统计,得到所述一个或多个集合各自的计量结果,包括:基于所述一个或多个集合各自配置的meter计数器对集合进行流量统计染色,其中,对应不同范围的计量结果,meter计数器返回不同颜色。
可选地,所述根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令,包括:如果任一集合的meter计数器返回预设第一颜色,对所述数据包下发丢包指令。
可选地,所述根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令,包括:如果没有集合的meter计数器返回预设第一颜色,对所述数据包下发放行指令。
可选地,还包括:如果超过预设报警数量个集合的meter计数器返回预设第二颜色,执行预设的报警处理逻辑。
根据本说明书实施例的第二方面,提供了一种网络流量控速的装置,包括:集合设置模块,被配置为预先设置多个不同统计维度的集合,其中不同统计维度的集合对应不同数据包特征。集合匹配模块,被配置为响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合。集合关联模块,被配置为将所述数据包关联到匹配的一个或多个集合。计量模块,被配置为对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果。控速模块,被配置为根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:存储器和处理器;所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:预先设置多个不同统计维度的集合,其中不同统计维度的集合对应不同数据包特征;响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合;将所述数据包关联到匹配的一个或多个集合;对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果;根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本说明书任意实施例所述网络流量控速的方法的步骤。
本说明书一个实施例提供了网络流量控速的方法,由于该方法预先设置各个不同统计维度的集合对应的数据包特征,响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合,将所述数据包关联到匹配的一个或多个集合,对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果,根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令,从而达到了多维度精准控速的效果。
附图说明
图1是本说明书一个实施例提供的一种网络流量控速的方法的流程图;
图2是本说明书一个实施例提供的数据包与集合的关联示意图;
图3是本说明书一个实施例提供的网络架构示意图;
图4是本说明书一个实施例提供的一种网络流量控速的装置的结构示意图;
图5是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
P4:Programming Protocol-independent Packet Processors ,是一种用于对p4可编程芯片设备进行编程的语言。
可编程芯片:一种网络设备中的通用元器件,例如,可以是可编程交换芯片,如基于P4可编程芯片语言的TOFINO可编程交换芯片,用户可以通过编程来实现自己所需要的逻辑功能,具有自由度高,周期短,成本低等优势。
流量统计:也称为计量,是对网络数据报文进出个数、进出带宽(每个报文的大小可能不同)进行统计。
百G级:指每秒流量带宽的大小。
多维度:包括报文的用户维度,项目维度,进出维度等不同维度。
流量控速:控制流量速度,例如,pps维度和bps维度的流量控速。
pps:packet per second。
bps:bytes per second。
meter:计量器。
在本说明书中,提供了一种网络流量控速的方法,本说明书同时涉及一种网络流量控速的装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了根据本说明书一个实施例提供的一种网络流量控速的方法的流程图,包括步骤102至步骤110。
步骤102:预先设置多个不同统计维度的集合,其中不同统计维度的集合对应不同数据包特征。
其中,一个集合对应一个统计维度,一个统计维度可以对应一个或多个元素,一个或多个元素可以通过数据包特征来确定。因此,不同统计维度的集合表现为对应不同数据包特征。不同集合的数据包特征中,至少一项信息不同,例如,不同集合的数据包特征之间的区别至少包括一个不同的IP地址和/或端口。例如:一个统计维度可能对应客户、产品、实例、方向等一个或多个元素,假设集合1的统计维度下,对应A用户这一个元素,集合2的统计维度下,对应P1产品这一个元素,集合3的统计维度下,对应A用户的P1产品+B用户的所有产品这多个元素。这些元素的数据包特征,可以根据客户购买产品的情况确定。例如,每个产品一般都对应了不同的IP地址规划,每个客户也可能购买了多个产品,因此,确定这些元素的数据包特征可以是IP地址、端口等信息。
步骤104:响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合。
例如,数据包的报文头部信息中可以包括TCP/UDP五元组,可以将该五元组中的IP地址、端口信息与数据包特征中的IP地址、端口信息进行比较。
步骤106:将所述数据包关联到匹配的一个或多个集合。
例如,可以借助于访问控制列表的技术来根据报文的tcp/udp五元组进行比较和关联。如图2所示的数据包与集合的关联示意图。一个数据包可能关联到多个集合,多个数据包可能关联到一个集合。
步骤108:对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果。
步骤110:根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令。
例如,可以判断计量结果所处的范围,如果超过限速的范围,则可以下发丢包指令,如果未超过限速的范围,则可以下发放行指令。当然,也可以根据实施场景对控速的需要,设置对应的控速策略,生成对应的控速指令,例如,不同传输链路的传输速度有所区别,可以将数据包下发到与计量结果匹配的链路上进行传输等,本说明书实施例提供的方法对此并不进行限制。
由于该方法预先设置各个不同统计维度的集合,不同统计维度的集合对应不同的数据包特征,响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合,将所述数据包关联到匹配的一个或多个集合,对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果,根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令,从而达到了多维度精准流量控速的效果。
例如,在云计算里面,一套物理的网络基础设施,上面承载着多个用户,多个项目,多个系统等不同网络流量。举例来说,可以先把网络流量分为以下元素:产品:如P1产品,P2产品,P3产品;租户元素:A租户,B租户,C租户;方向元素:IN流量入方向,OUT 流量出方向;其中,租户和产品存在任意组合的可能。
根据本说明书实施例提供的方法,可以按需进行如下的不同维度的集合的划分,实现流量整体限速(如可以按每秒报文总带宽bps进行限速),例如:
1.单一元素的统计维度的限速包括以下三个集合:
P1产品IN/OUT总流量;
P2产品IN/OUT总流量:
A租户IN/OUT总流量:
2.组合元素的统计维度的限速包括以下三个集合:
A租户在P1产品上的IN/OUT流量:
B租户在P2和P3产品上的IN/OUT总流量:
A和C租户在P3产品上的IN/OUT总流量。
其中,单一元素的统计维度可以出于个体的整体流量限速需要进行设置,比如只想对P1产品进行bps维度的流量限速。组合元素的统计维度可以出于一些关联的整体流量限速需要进行设置,比如B用户虽然买了P1,P2,P3产品,但是P2,P3不想分太细,想共享一个带宽包。
由于云上承载了多个公司、项目、方向等不同角度产生的流量。项目整体每秒钟常常能够达到100G带宽。例如,一个公司有很多项目,常常能够达到每秒几百G。然而,一台服务器的处理能力是有限的,因为cpu的性能等问题处理不了上百G流量。为了提高多维度精准流量控速的吞吐量,考虑到可编程芯片硬件本身具有的T级处理能力,能够克服单台服务器因为只能做100Gbps以下的限速壁垒,因此,本说明书一个或多个实施例中,所述网络流量控速的方法可以应用于可编程芯片,把流量集中到可编程芯片,由应用了本说明书实施例提供的方法的可编程芯片进行流量控速。
需要说明的是,基于可编程芯片实现本说明书实施例提供的方法,既可以通过控制面与数据面的配合下发表项进行控制,也可以在芯片代码中固定表项来进行控制,本说明书实施例提供的方法对此并不进行限制。
数据面:也称转发面、数据层(dataplane,data forwarding plane),主要负责执行将网络数据包按照转发表项进行实际转发,转发过程需要的表项由控制层生成。数据面运行在网卡硬件或者交互芯片硬件上。数据面的基本逻辑,是由写入在芯片上的代码决定的。
控制面:也称控制层(control plane),主要负责表项的生成,控制面把表项下发到数据面中。数据包进入网络设备后,则会按照该表项执行转发。控制面运行在软件上,通常在CPU控制的软件层面。
考虑到灵活调整的需要,本说明书一个或多个实施例中,通过控制面与数据面的配合下发表项进行控制。具体地,所述预先设置多个不同统计维度的集合,包括:可编程芯片的控制面向数据面下发包含多个集合各自对应的数据包特征的第一表项,其中,所述可编程芯片中的数据面用于建立多个集合,按所述第一表项确定集合对应的数据包特征。例如可以在可编程芯片中写入代码以建立多个集合、按所述第一表项确定集合对应的数据包特征、响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合、将所述数据包关联到匹配的一个或多个集合、对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果。所述根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令,包括:可编程芯片的控制面根据集合的计量结果向数据面下发对所述数据包执行对应的控速指令的第二表项,其中,所述可编程芯片中的数据面用于根据所述第二表项对所述数据包执行对应的控速指令。例如,可以在可编程芯片中写入代码以使数据面根据所述第二表项对所述数据包执行对应的控速指令。
本说明书实施例提供的方法中,对于统计流量的具体统计方式不限。例如,由于硬件计数器的精准度高,能够做到精准控速,本说明书一个或多个实施例中,所述对一个或多个集合分别进行流量统计,得到所述一个或多个集合各自的计量结果,包括:基于所述一个或多个集合各自配置的硬件计数器,对所述一个或多个集合分别进行流量统计,得到所述一个或多个集合各自的计量结果。在该实施例中,为多个维度的多个集合各自配置硬件计数器,通过硬件计数器高精度的计量,达到了精准控速的效果。
例如,本说明书实施例提供的方法可以应用于支持P4语言的可编程芯片,所述硬件计数器可以为meter计数器。在支持P4语言的可编程芯片中,meter是芯片提供的功能函数,meter计数器底层是硬件来实现的,不仅便于统计,精准度也很高。在本说明书实施例提供的方法中,可以通过预先设置水位阈值划定若干个范围,每个范围用不同颜色表示。为每个集合调用meter计数器的函数,meter可以返回颜色来表示计量结果。例如,P4芯片每接收到一个数据包,可以调用meter函数得到该数据包关联的集合的计量结果。meter通过返回颜色表示计量结果所处范围,如红表示已超范围、黄表示即将超范围、绿表示在范围内。所述基于所述一个或多个集合各自配置的硬件计数器,对所述一个或多个集合分别进行流量统计,得到所述一个或多个集合各自的计量结果,包括:基于所述一个或多个集合各自配置的meter计数器对集合进行流量统计染色,其中,对应不同范围的计量结果,meter计数器返回不同颜色。类似meter计量染色的方式,还可以通过别的硬件方式如register模拟实现,本说明书实施例提供的方法对此并不进行限制。
需要说明的是,本说明书实施例提供的方法对于不同范围对应的控速指令的具体内容并不进行限制。具体可以根据实施场景需要进行设置。针对不同颜色的集合的报文,可以进入对应的不同处理流程。
例如,考虑到限速的需要,为了使流量控制在允许范围内,所述根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令,可以包括:如果任一集合的meter计数器返回预设第一颜色,对所述数据包下发丢包指令。在该实施例中,第一颜色例如红色,表示超过限速阈值的范围,在该范围内的数据包可以进行丢包处理,从而满足限速的要求。
相应地,如果没有集合返回第一颜色,说明没有集合超过限速,则数据包可以放行。因此,所述根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令,可以包括:如果没有集合的meter计数器返回预设第一颜色,对所述数据包下发放行指令。
另外,为了能够达到更好的限速效果,本说明书一个或多个实施例中,还可以包括:如果超过预设报警数量个集合的meter计数器返回预设第二颜色,执行预设的报警处理逻辑。在该实施例中,第二颜色例如黄色,可以表示即将超过限速阈值的范围,通过执行预设报警处理逻辑,例如:可以按照其他预设因素确定是否丢包,再例如,可以按照向后台管理端发送报警信息,又例如,可以向相关用户发送报警信息,等等,能够有效地避免用户超限速使用的目的。
下述结合附图3,以本说明书提供的网络流量控速的方法基于支持P4编程语言的可编程芯片技术进行多维度精准百G级流量BPS限速的应用为例,对所述网络流量控速的方法进行进一步说明。其中,图3示出了本说明书一个实施例提供的网络架构示意图。如图3所示,可编程芯片可以设置于网络设备。该网络设备在报文流入方向可以通过网络或光纤,从任意一个或多个交换机或任意一个或多个服务器接收数据包。数据包流入后,P4芯片首先将数据包归属到不同的集合,各个集合具有各自的标识例如:集合1的标识为id1、集合2的标识为id2、集合n的标识为idn。每个集合各自配置了硬件计数器meter。meter计数器对流量进行统计,针对不同范围的计量结果返回不同颜色。根据各个计数器返回的颜色对流入的数据包进行决策,例如,可能丢包或放行以达到。经过流量控速后,在报文流出方向,通过网络或光纤将放行的数据包发送给任意一个或多个交换机或任意一个或多个服务器。下面,再对各个步骤进行详细说明:
P4芯片接到数据包后,首先将数据包关联到一个或多个集合。其中,不同集合可以是不同维度的。例如:
集合1:流量IN方向:源IP为1.1.1.1访问2.2.2.2的TCP 80端口。
集合2:流量OUT方向:源IP为3.3.3.3 访问4.4.4.4互联网。
每个数据包,可以被解析为一个或多个维度。如,在IN方向,目标IP为2.2.2.2,目标端口是80端口代表的维度是:客户A+P1负载均衡产品+实例1+方向为IN方向。再如,在OUT方向,源IP为3.3.3.3访问4.4.4.4代表的维度是:客户B+P2边边互通产品+实例2+方向为OUT方向。基于解析出的维度,可以将数据包关联到匹配的集合。
在接收到数据包之前,可以预先通过使用P4语言的MATCH-ACTION规则,在芯片上写入如下编程代码以建立多个集合:
//用户id:user_id:
//项目大类:gw_type:如四层负载均衡产品,安全产品,网络加速产品等.
//方向:如direction:ISP_TO_GW,GW_TO_ISP,NC_TO_GW,GW_TO_NC
actionset_index(
bit<32>user_id,
bit<8>gw_type,
bit<8> direction,
bit<16>ext_id
){
ig_md.ens_property.user_id= user_id; //如关联到集合1 ->这个集合代表了用户A
ig_md.ens_property.gw_type = gw_type; //如关联到集合2 ->这个集合代表了产品P
ig_md.ens_property.direction = direction; //如关联到集合3 ->这个集合代表了方向
//可配置的统计额外2k个detail session
ig_md.ens_property.f_ext_id = ext_id; //如关联到集合4 ->这个集合可以额外处理一些其他的特殊关联限速
tablemark_pkt_set{
key = {
ig_md.ip_dst_addr_index : ternary;
ig_md.ip_src_addr_index : ternary;
lkp.vni : ternary;
lkp.ip_proto : ternary;
lkp.l4_dst_port : ternary;
lkp.l4_src_port : ternary
}
actions = {
set_index;
NoAction;
}
constdefault_action = NoAction;
size = 4096;
}
通过上述代码可见,代码建立了各个维度的集合。P4芯片可以在控制层面,下发每个集合对应的具体表项。例如,控制面向数据面下发:l4_src_port 为1.1.1.0/24 对应user_id=1 (客户A);且gw_type为2(产品P1)的具体表项。再例如,控制面向数据面下发:vni 为10000 对应user_id=1(客户A);且gw_type=3(产品P2)的具体表项。
其中,数据包关联的某个集合可以用于处理关联限速,举例来说:A用户的P1产品+A用户的P2产品统一共享一个限速,A用户的P1产品+B用户的P1产品统一共享一个限速。然而,实际生产中,如对应“集合1”的场景:A用户有P1,P2,P3等多个产品应用,但P1和P2只是两个小初创小产品,不想因为一些意外消耗太多的带宽,只想让他们共享100M限速,则可以设置一个包含P1和P2的数据包特征的集合进行关联限速。再例如,对应“集合2”的场景:A用户的P1和B用户的P1两个本身就是一家公司的两个部门,都用了P1产品, A和B因为峰谷刚好能错开,只要A+B不超10G即可,在这种情况下,可以设置一个包含A和B的数据包特征的集合进行关联限速,避免两家公司各自独立购买10G。可见,通过各种维度的划分,可以实现非常灵活的、存在特殊需要的关联限速。
使用P4芯片可以为每个集合各创建meter,一个集合ID对应一个meter。例如,芯片中创建meter、为每个集合ID进行BPS染色,设置控速指令如丢包、放行等的代码如下:
DirectMeter(MeterType_t.BYTES) user_meter;
DirectMeter(MeterType_t.BYTES) gw_meter;
DirectMeter(MeterType_t.BYTES) ext_meter;
action do_color() {
eg_md.color.f_user_bps_color = (bit<8>)user_meter.execute();
eg_md.color.f_gw_bps_color = (bit<8>)gw_meter.execute();
eg_md.color.f_ext_bps_color = (bit<8>)ext_meter.execute();
}
action drop_pkt(){
eg_intr_md_for_dprsr.drop_ctl = 0x1;
}
table meter_action_table{
key = {
eg_md.color.f_user_bps_color : exact; eg_md.color.f_gw_bps_color : exact;
eg_md.color.f_ext_bps_color : exact;
}
actions = { drop_pkt; NoAction; }
const default_action = drop_pkt; }
控制层下发染色的具体表项,不同的带宽对应不同的颜色,根据报文真实的流量情况,每个meter计数器会被染成例如红、黄或绿三种颜色其中之一。根据集合的计数器染的色,控制层下发丢包或者放行指令的表项。例如,只要任意一个meter计数器为红色,则丢包,即可达到精确限速的效果。
根据本实施例提供的方法,P4芯片预先设置集合,以使报文归属到匹配的集合,每个集合分配一个id,每个id对应一个硬件meter计数器。然后,使用硬件芯片本身的计量能力,对每个meter计量进行计量染色。控制面通过下发具体表项的方式,给硬件下发任意一个meter只要有一个是红色,就丢包的控制指令,否则放行。可见,本实施例通过使用T级可编程芯片作为硬件载体,使用P4可编程语言建立多级硬件表、代码流程控制实现了软硬件协同的限速。基于P4交换芯片本身具有T级处理能力以及逐包进行计量的能力,从而可以做到多维度精准限速,同时做到百Gbps以上的限速能力。
与上述方法实施例相对应,本说明书还提供了网络流量控速的装置实施例,图4示出了本说明书一个实施例提供的一种网络流量控速的装置的结构示意图。如图4所示,该装置包括:集合设置模块402、集合匹配模块404、集合关联模块406、计量模块408以及控速模块410。
该集合设置模块402,可以被配置为预先设置多个不同统计维度的集合,其中不同统计维度的集合对应不同数据包特征。
该集合匹配模块404,可以被配置为响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合。
该集合关联模块406,可以被配置为将所述数据包关联到匹配的一个或多个集合。
该计量模块408,可以被配置为对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果。
该控速模块410,可以被配置为根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令。
由于该装置预先设置各个不同统计维度的集合,不同统计维度的集合对应不同的数据包特征,响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合,将所述数据包关联到匹配的一个或多个集合,对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果,根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令,从而达到了多维度精准流量控速的效果。
本说明书一个或多个实施例中,所述装置可以基于可编程芯片实现,既可以通过控制面与数据面的配合下发表项进行控制,也可以在芯片代码中固定表项来进行控制,本说明书实施例提供的装置对此并不进行限制。考虑到灵活调整的需要,本说明书一个或多个实施例中,所述集合设置模块402,可以被配置为可编程芯片的控制面向数据面下发包含多个集合各自对应的数据包特征的第一表项,其中,所述可编程芯片中的数据面用于建立多个集合,按所述第一表项确定集合对应的数据包特征。所述控速模块410,可以被配置为可编程芯片的控制面根据集合的计量结果向数据面下发对所述数据包执行对应的控速指令的第二表项,其中,所述可编程芯片中的数据面用于根据所述第二表项对所述数据包执行对应的控速指令。
由于可编程芯片提供的硬件计数器的精准度高,能够做到精准控速,本说明书一个或多个实施例中,所述计量模块408,可以被配置为基于所述一个或多个集合各自配置的硬件计数器,对所述一个或多个集合分别进行流量统计,得到所述一个或多个集合各自的计量结果。
例如,本说明书实施例提供的装置可以配置于支持P4语言的可编程芯片,所述硬件计数器为meter计数器。所述计量模块408,可以被配置为基于所述一个或多个集合各自配置的meter计数器对集合进行流量统计染色,其中,对应不同范围的计量结果,meter计数器返回不同颜色。
例如,考虑到限速的需要,为了使流量控制在允许范围内,所述控速模块410,可以被配置为如果任一集合的meter计数器返回预设第一颜色,对所述数据包下发丢包指令。
相应地,如果没有集合返回第一颜色,说明没有集合超过限速,则数据包可以放行。因此,所述控速模块410,可以被配置为如果没有集合的meter计数器返回预设第一颜色,对所述数据包下发放行指令。
另外,为了能够达到更好的限速效果,本说明书一个或多个实施例中,所述控速模块410,可以被配置为如果超过预设报警数量个集合的meter计数器返回预设第二颜色,执行预设的报警处理逻辑。在该实施例中,第二颜色例如黄色,可以表示即将超过限速阈值的范围,通过执行预设的报警处理逻辑,能够有效地达到避免用户超限速使用的目的。
上述为本实施例的一种网络流量控速的装置的示意性方案。需要说明的是,该网络流量控速的装置的技术方案与上述的网络流量控速的方法的技术方案属于同一构思,网络流量控速的装置的技术方案未详细描述的细节内容,均可以参见上述网络流量控速的方法的技术方案的描述。
图5示出了根据本说明书一个实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520用于执行如下计算机可执行指令:
预先设置多个不同统计维度的集合,其中不同统计维度的集合对应不同数据包特征;
响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合;
将所述数据包关联到匹配的一个或多个集合;
对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果;
根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的网络流量控速的方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述网络流量控速的方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
预先设置多个不同统计维度的集合,其中不同统计维度的集合对应不同数据包特征;
响应于接收到数据包,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的一个或多个集合;
将所述数据包关联到匹配的一个或多个集合;
对所述一个或多个集合关联的数据包分别进行流量统计,得到所述一个或多个集合各自的计量结果;
根据所述一个或多个集合各自的计量结果,对所述数据包下发对应的控速指令。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的网络流量控速的方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述网络流量控速的方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
Claims (8)
1.一种网络流量控速的方法,包括:
通过在芯片上写入编程代码以预先设置多个不同统计维度的集合,其中,每个统计维度的集合至少包括:用户、项目、方向、产品、实例中多个维度;
在控制层面,下发每个集合对应的具体表项以建立多个集合,使其中每个统计维度的集合按用户、项目、方向、产品、实例中多个元素对应不同数据包特征,其中,各个集合具有各自的标识,一个集合的标识对应一个硬件计数器;
响应于接收到数据包,基于数据包被解析的多个维度,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的多个集合;
将所述数据包关联到匹配的多个集合;
对所述多个集合关联的数据包分别进行流量统计,得到所述多个集合各自的计量结果,其中,所述对所述多个集合关联的数据包分别进行流量统计,得到所述多个集合各自的计量结果,包括:基于所述多个集合各自配置的硬件计数器,对所述多个集合分别进行流量统计,得到所述多个集合各自的计量结果;
根据所述多个集合各自的计量结果,对所述数据包下发对应的控速指令。
2.根据权利要求1所述的方法,所述方法应用于支持P4语言的可编程芯片,所述硬件计数器为meter计数器;
所述基于所述多个集合各自配置的硬件计数器,对所述多个集合分别进行流量统计,得到所述多个集合各自的计量结果,包括:
基于所述多个集合各自配置的meter计数器对集合进行流量统计染色,其中,对应不同范围的计量结果,meter计数器返回不同颜色。
3.根据权利要求2所述的方法,所述根据所述多个集合各自的计量结果,对所述数据包下发对应的控速指令,包括:
如果任一集合的meter计数器返回预设第一颜色,对所述数据包下发丢包指令。
4.根据权利要求2所述的方法,所述根据所述多个集合各自的计量结果,对所述数据包下发对应的控速指令,包括:
如果没有集合的meter计数器返回预设第一颜色,对所述数据包下发放行指令。
5.根据权利要求2所述的方法,还包括:
如果超过预设报警数量个集合的meter计数器返回预设第二颜色,执行预设的报警处理逻辑。
6.一种网络流量控速的装置,包括:
集合设置模块,被配置为通过在芯片上写入编程代码以预先设置多个不同统计维度的集合,其中,每个统计维度的集合至少包括:用户、项目、方向、产品、实例中多个维度,在控制层面,下发每个集合对应的具体表项以建立多个集合,使其中每个统计维度的集合按用户、项目、方向、产品、实例中多个元素对应不同数据包特征,其中,各个集合具有各自的标识,一个集合的标识对应一个硬件计数器;
集合匹配模块,被配置为响应于接收到数据包,基于数据包被解析的多个维度,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的多个集合;
集合关联模块,被配置为将所述数据包关联到匹配的多个集合;
计量模块,被配置为对所述多个集合关联的数据包分别进行流量统计,得到所述多个集合各自的计量结果,其中,所述对所述多个集合关联的数据包分别进行流量统计,得到所述多个集合各自的计量结果,包括:基于所述多个集合各自配置的硬件计数器,对所述多个集合分别进行流量统计,得到所述多个集合各自的计量结果;
控速模块,被配置为根据所述多个集合各自的计量结果,对所述数据包下发对应的控速指令。
7.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
通过在芯片上写入编程代码以预先设置多个不同统计维度的集合,其中,每个统计维度的集合至少包括:用户、项目、方向、产品、实例中多个维度,在控制层面,下发每个集合对应的具体表项以建立多个集合,使其中每个统计维度的集合按用户、项目、方向、产品、实例中多个元素对应不同数据包特征,其中,各个集合具有各自的标识,一个集合的标识对应一个硬件计数器;
响应于接收到数据包,基于数据包被解析的多个维度,通过将所述数据包的报文头部信息与各个集合的数据包特征进行比较,确定所述数据包匹配的多个集合;
将所述数据包关联到匹配的多个集合;
对所述多个集合关联的数据包分别进行流量统计,得到所述多个集合各自的计量结果,其中,所述对所述多个集合关联的数据包分别进行流量统计,得到所述多个集合各自的计量结果,包括:基于所述多个集合各自配置的硬件计数器,对所述多个集合分别进行流量统计,得到所述多个集合各自的计量结果;
根据所述多个集合各自的计量结果,对所述数据包下发对应的控速指令。
8.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至5任意一项所述网络流量控速的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111188027.4A CN113645154B (zh) | 2021-10-12 | 2021-10-12 | 网络流量控速的方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111188027.4A CN113645154B (zh) | 2021-10-12 | 2021-10-12 | 网络流量控速的方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113645154A CN113645154A (zh) | 2021-11-12 |
CN113645154B true CN113645154B (zh) | 2022-04-15 |
Family
ID=78426404
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111188027.4A Active CN113645154B (zh) | 2021-10-12 | 2021-10-12 | 网络流量控速的方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113645154B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065015A (zh) * | 2010-12-29 | 2011-05-18 | 福建星网锐捷网络有限公司 | 一种数据传输方法、网络设备以及装置 |
WO2016150296A1 (zh) * | 2015-03-23 | 2016-09-29 | 华为技术有限公司 | 发送、接收流规范规则的方法和装置 |
CN113315744A (zh) * | 2020-07-21 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 可编程交换机、流量统计方法、防御方法和报文处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110380989B (zh) * | 2019-07-26 | 2022-09-02 | 东南大学 | 网络流量指纹特征二阶段多分类的物联网设备识别方法 |
-
2021
- 2021-10-12 CN CN202111188027.4A patent/CN113645154B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102065015A (zh) * | 2010-12-29 | 2011-05-18 | 福建星网锐捷网络有限公司 | 一种数据传输方法、网络设备以及装置 |
WO2016150296A1 (zh) * | 2015-03-23 | 2016-09-29 | 华为技术有限公司 | 发送、接收流规范规则的方法和装置 |
CN113315744A (zh) * | 2020-07-21 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 可编程交换机、流量统计方法、防御方法和报文处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113645154A (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Qin et al. | Line-speed and scalable intrusion detection at the network edge via federated learning | |
US10484233B2 (en) | Implementing provider edge with hybrid packet processing appliance | |
US9219691B2 (en) | Source-driven switch probing with feedback request | |
US9762493B2 (en) | Link aggregation (LAG) information exchange protocol | |
US10164908B2 (en) | Filtration of network traffic using virtually-extended ternary content-addressable memory (TCAM) | |
US20180287932A1 (en) | Identification of an sdn action path based on a measured flow rate | |
CN103428094A (zh) | 开放流OpenFlow系统中的报文转发方法及装置 | |
CN104410541A (zh) | Vxlan内层虚拟机流量在中间交换机上进行统计的方法及装置 | |
CN109787823B (zh) | 服务质量QoS标记方法、装置及存储介质 | |
CN108683607A (zh) | 虚拟机流量控制方法、装置和服务器 | |
EP1704491B1 (en) | A method and systems for resource bunlding in a communications network | |
Chang et al. | Performance isolation for network slices in industry 4.0: The 5growth approach | |
Zheng et al. | IIsy: Hybrid In-Network Classification Using Programmable Switches | |
CN113645154B (zh) | 网络流量控速的方法以及装置 | |
CN113904950A (zh) | 基于流的网络监测方法、装置、计算机设备及存储介质 | |
CN103346950A (zh) | 一种机架式无线控制器用户业务板间负载均摊方法及装置 | |
US8767540B2 (en) | Hierarchical packet policer | |
US8537671B2 (en) | Hierarchical packet policer | |
Cao et al. | Threshold-based routing-topology co-design for optical data center | |
Maqbool et al. | Virtual TCAM for data center switches | |
CN105283864A (zh) | 管理裸机客户 | |
Ushakova et al. | Research of productivity of software configurable infrastructure in vanet networks on the basis of models of hybrid data transmission devices | |
Ramana et al. | Multipath transmission control protocol for live virtual machine migration in the cloud environment | |
Wang et al. | Supporting Large Random Forests in the Pipelines of a Hardware Switch to Classify Packets at 100 Gbps Line Rate | |
Zhang et al. | SDN enhanced tomography for performance profiling in cloud network |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40064485 Country of ref document: HK |