CN114095383B - 网络流量采样方法、***和电子设备 - Google Patents
网络流量采样方法、***和电子设备 Download PDFInfo
- Publication number
- CN114095383B CN114095383B CN202210063211.4A CN202210063211A CN114095383B CN 114095383 B CN114095383 B CN 114095383B CN 202210063211 A CN202210063211 A CN 202210063211A CN 114095383 B CN114095383 B CN 114095383B
- Authority
- CN
- China
- Prior art keywords
- flow
- message
- sampling
- flow table
- network
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/022—Capturing of monitoring data by sampling
-
- 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
- H04L43/028—Capturing of monitoring data by filtering
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
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
本申请提供一种网络流量采样方法、***和电子设备,该方法包括:通过接口模块接收数据流量,并对所述数据流量进行采样统计,生成第一级流表;通过所述接口模块根据所述第一级流表发送控制流报文至网络处理器;通过所述网络处理器转发所述控制流报文至中央处理器;通过所述中央处理器对所述控制流报文进行流量统计汇总,生成第二级流表。本申请实现了降低网络流量采样对网络设备CPU的资源和NP/PP资源的消耗。
Description
技术领域
本申请涉及信息技术领域,具体而言,涉及一种网络流量采样方法、***和电子设备。
背景技术
随着Internet 市场和云业务的不断发展,网络设备上承载的流量日益多样化,带宽日益增加,而不同业务对网络设备不同的需求也催生了SDN(Software DefinedNetwork,软件定义网络)的发展,SDN控制器能够实现对路径更好的动态规划的前提是对网络上当前承载的实时流量有精确地认知和分析。Netstream技术恰好是网络设备支持的一种设备流量采集收集技术,可以清晰的呈现设备各个节点上承载的详细的流量情况,因此Netstream技术的地位变得越来越重要,同时为了达到精确的采集的目的, 要求Netstream采样比配置的尽可能小,不少行业出现了1:1的采样比的需求。
但是,由于网络设备承载的流量日益增加,而Netstream需要统计的信息需要细化到流级,同时配置灵活,与设备的转发流程耦合性高,单纯通过ASIC(ApplicationSpecific Integrated Circuit,专用集成电路)实现非常困难。当前主流的实现主要是依靠流量镜像到CPU软转发处理,或者消耗部分NP(Network Process网络处理器)芯片宝贵的转发核来实现,但是不论哪种技术,要实现1:1的采样的话,代价非常高,而且在流量日益增加的当下,变得越来越不可能。
发明内容
本申请实施例的目的在于提供一种网络流量采样方法、***和电子设备,可以降低网络流量采样对网络设备CPU的资源和NP/PP资源的消耗,提高CPU资源利用率。
本申请实施例第一方面提供了一种网络流量采样方法,包括:通过接口模块接收数据流量,并对所述数据流量进行采样统计,生成第一级流表;通过所述接口模块根据所述第一级流表发送控制流报文至网络处理器;通过所述网络处理器转发所述控制流报文至中央处理器;通过所述中央处理器对所述控制流报文进行流量统计汇总,生成第二级流表。
于一实施例中,所述通过接口模块接收数据流量,并对所述数据流量进行采样统计,生成第一级流表,包括:在所述接口模块接收到数据流量时,判断接收所述数据流量的端口上是否配置了网络流统计功能;若接收所述数据流量的端口上配置了网络流统计功能,则按照预设采样比例对所述数据流量进行采样处理,得到采样流量报文;根据所述采样流量报文的流特征生成所述第一级流表。
于一实施例中,所述通过所述接口模块根据所述第一级流表发送控制流报文至网络处理器,包括:通过所述接口模块轮询所述第一级流表,得到所述第一级流表中的流统计信息;根据所述流统计信息,恢复出所述采样流量报文的报文头;根据所述采样流量报文的报文头和所述流统计信息,生成所述控制流报文,并发送所述控制流报文至所述网络处理器。
于一实施例中,所述通过所述网络处理器转发所述控制流报文至中央处理器,包括:通过所述网络处理器根据预设规则库对所述控制流报文进行过滤,将命中所述预设规则库的目标控制流报文转发至所述中央处理器。
于一实施例中,所述通过所述中央处理器对所述控制流报文进行流量统计汇总,生成第二级流表,包括:通过所述中央处理器解析出所述控制流报文中携带的所述采样流量报文的报文头;根据所述采样流量报文的报文头查找已有流表;若所述采样流量报文的报文头命中已有流表,将所述控制流报文中携带的流统计信息更新到所述已有流表,得到所述第二级流表。
于一实施例中,所述通过所述中央处理器对所述控制流报文进行流量统计汇总,生成第二级流表,还包括:若所述采样流量报文的报文头未命中已有流表,根据所述采样流量报文的报文头对应的配置信息新建流表,并将所述控制流报文中携带的流统计信息更新到所述新建流表,得到所述第二级流表。
于一实施例中,所述若所述采样流量报文的报文头未命中已有流表,根据所述采样流量报文的报文头对应的配置信息新建流表,并将所述控制流报文中携带的流统计信息更新到所述新建流表,得到所述第二级流表,包括:若所述采样流量报文的报文头未命中已有流表,通过所述中央处理器判断所述采样流量报文的报文头是否配置有对复杂业务的计数器;若所述采样流量报文的报文头配置有对复杂业务的计数器,根据所述采样流量报文的报文头和所述计数器新建流表,并根据所述计数器将所述控制流报文中携带的流统计信息更新到所述新建流表,得到所述第二级流表。
于一实施例中,所述若所述采样流量报文的报文头未命中已有流表,根据所述采样流量报文的报文头对应的配置信息新建流表,并将所述控制流报文中携带的流统计信息更新到所述新建流表,得到所述第二级流表,还包括:若所述采样流量报文的报文头没有配置对复杂业务的计数器,为所述控制流报文申请新的计数器,根据所述采样流量报文的报文头和所述新的计数器新建流表,并根据所述计数器将所述控制流报文中携带的流统计信息更新到所述新建流表,得到所述第二级流表。
本申请实施例第二方面提供了一种网络流量采样***,包括:接口模块、网络处理器和中央处理器,用以执行本申请实施例第一方面及其任一实施例的方法。
本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,处理器,用以执行所述计算机程序,以实现本申请实施例第一方面及其任一实施例的方法。
本申请提供的网络流量采样方法、***和电子设备,通过两级流表分布式架构实现基于Netstream功能的网络流量采样,通过接口模块、网络处理器和中央处理器三者紧密配合,经由两级流表,卸载Netstream统计产生的数据流,可以实现大带宽下的1:1Netstream采样功能。在第一级流表采样后,使用控制流报文在网络处理器模拟原始的数据流转发,最大限度的使用成熟的网络处理器的流程,最大化的发挥网络处理器的转发性能。将采样点前移到接口模块,避免了网络处理器采样性能瓶颈问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的结构示意图;
图2A为本申请一实施例的基于网络流量采样***的应用场景示意图;
图2B为本申请一实施例的网络流量采样***的示意图;
图3为本申请一实施例的网络流量采样方法的流程示意图;
图4为本申请一实施例的网络流量采样方法的流程示意图;
图5A为本申请一实施例的接口模块21的Netstream建流和统计流程的示意图;
图5B为本申请一实施例的针对NP芯片SOC封装后的控制流报文格式的示意图;
图5C为本申请一实施例的针对PP芯片的SOC封装后的控制流报文格式的示意图;
图5D为本申请一实施例的SOC生成统计信息的流程示意图;
图5E为本申请一实施例的网络处理器实现控制流报文的识别转发的流程示意图;
图5F为本申请一实施例的CPU模块完成第二级流表的处理过程的流程示意图;
图5G为本申请一实施例的CPU模块完成流表老化以及采集器交互过程的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为了进一步清楚的描述本申请的技术方案,现将涉及的技术名词释义如下:
Netstream:一种基于流的统计技术,可以对网络中的业务流量进行统计和分析。它根据IPv4报文的目的IP地址、源IP地址、目的端口号、源端口号、协议号、ToS(Type ofService,服务类型)、输入接口或输出接口来定义流,七元组相同的报文属于同一条流。Netstream除了可以逐流统计,也可以将多个具有某些相同特征的流聚合成一条聚合流进行统计。
NDE:NetStream Data Exporter,网络流数据输出者,Netstream***的组成部分,网络中主要依靠网络设备实现。
NSC:NetStream Collector,网络流数据收集者,Netstream***的组成部分,网络中主要与NDA合并由一台服务器实现。
NDA:NetStream Data Analyzer,网络流数据分析者,Netstream***的组成部分,网络中主要与NSC合并由一台服务器实现。
NP:Network Process网络处理器,具有可编程定制能力的处理器,一般用于路由器设备上的报文处理,具有转发流程的定制能力,能够满足不同客户对于业务的不同需求,具备良好的扩展性。
PP:Packet Process 包处理器,网络设备用于处理报文的处理器,一般专指用于交换机设备上的ASIC芯片,转发流程固定,业务能力固定,可扩展性差,但是转发性能高。
SOC:System on chip 片上***。一般指集成在FPGA/ASIC芯片中的RISC核,完成部分简单的控制面的处理功能,以卸载外部控制CPU的流量。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以降低网络流量采样对网络设备CPU的资源和NP/PP资源的消耗。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机或者多个计算机组成的大型计算***等设备。
请参看图2A,其为本申请一实施例的基于网络流量采样***200的应用场景示意图,一个典型的NetStream***由NDE(NetStream Data Exporter,网络流数据输出者)、NSC(NetStream Collector,网络流数据收集者)和NDA(NetStream Data Analyzer,网络流数据分析者)三部分组成。
NDE:NDE根据七元组对网络流进行分类,提取符合条件的流进行统计,并将统计信息输出给NSC设备。输出前也可对数据进行一些处理,比如聚合。配置了NetStream功能的设备在NetStream***中担当NDE角色。
NSC:NSC通常为运行于某种操作***上的一个应用程序,负责解析来自NDE的报文,把统计数据收集到数据库中,可供NDA进行解析。NSC可以采集多个NDE设备输出的数据。
NDA:NDA是一个网络流量分析工具,它从NSC中提取统计数据,进行进一步的加工处理,生成报表,为各种业务提供依据(比如流量计费、网络规划,攻击监测)。NDA可以提取多个NSC中的数据。通常,NDA具有图形化用户界面,可以使用户方便地获取、显示和分析收集到的数据。
其中,NDE一般由网络设备实现,而NSC和NDA可以集成在一台NetStream服务器上。本申请实施例主要针对的是NDE上实现1:1采样的方案。
实际场景中,网络设备实现NDE采样,常用的一种实现方式是采用NP/PP将需要进行采集的报文,复制一份发送到CPU,有CPU通过完整的软件转发流程实现数据采集和统计。然而,CPU流量处理能力非常弱,以完整的1:1流量的镜像为例,在大带宽下,CPU无法支撑。整个PP/NP芯片集中对采样流量报文进行复制镜像处理,流量受到镜像给CPU的端口的带宽的限制,会成为性能瓶颈,导致难以实现1:1采样。整个PP/NP芯片的集中采样处理,无法满足按照端口甚至子接口灵活配置采样比的业务需求。并且NP芯片采样后的报文复制能力会影响转发能力。
网络设备实现NDA的另一种常用实现方案是使用NP芯片的转发核来实现功能,即:将NP芯片的转发核分成两类,一类用于正常的报文转发,另一类专门用于Netstream处理。该方案的缺点是:NP芯片的转发核数量与转发性能密切相关,数量有限且非常珍贵,分出一部分核处理Netstream后会导致转发性能下降。同时影响未来业务的扩展能力。Netstream的统计性能和核数强相关,在确保转发性能的前提下,NP硬件实现的1:1的Netstream的处理能力相对较弱。并且NP复制能力较弱,1:1采样比的情况下也会影响转发核的处理能力。另外,该方案中流表老化以及统计信息获取需要CPU参与,需要频繁访问硬件总线,仍然会大量消耗CPU的资源。
综上,针对Netstream的业务需求,当前的实现方案会对CPU或者NP/PP芯片造成了较大的冲击,而且大流量情况下无法实现1:1的采样比,本申请实施例旨在降低对网络设备CPU的资源和NP/PP资源的消耗的前提下,提出一种低成本的支持大流量的分布式1:1采样比的Netstream方案。
如图2B所示,其为本申请一实施例的网络流量采样***200,主要包括:接口模块21、网络处理器22和中央处理器23(即CPU模块)三个组成部分,其中:
接口模块21包括:MAC接口、采样器Sampler、Netstream Core、数据通道、SOC和SysINTF接口。
网络处理器22主要用于数据流解析、规则表过滤,并将过滤后的数据流进行转发。
中央处理器23配置有软转core和Netstream Core。
整体方案为:由接口模块21和CPU模块实现的两级流表,实现对数据流量的收敛,第一级由接口模块21实现的流量表实现1:1采样后的流量,向包含统计信息的控制流收敛,第二级由CPU模块实现的流表实现完整的Netstream统计功能,并完成与Netstream服务器的交互。下面结合图例对本申请实施例的技术方案进行详细描述。
请参看图3,其为本申请一实施例的网络流量采样方法,该方法可由图1所示的电子设备1来执行,并可以应用于如图2A至图2B所示的网络流量采样场景中,以以降低网络流量采样对网络设备CPU的资源和NP/PP资源的消耗。该方法包括如下步骤:
步骤301:通过接口模块21接收数据流量,并对数据流量进行采样统计,生成第一级流表。
在本步骤中,参阅图2B,接口模块21可以是基于配置有Netstream功能的Netstream接口模块21:该部分主要在设备的接口模块21实现,完成对外接口的基础上实现Netstream功能,由包含的Netstream core实现按用户流特征(例如IP报文的五元组、MPLS报文的标签)统计技术,实现第一级流表自动生成和老化,按照统计周期收集信息和生成控制流的功能,接口模块21可由中等规模的商业FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)实现或者专用ASIC芯片实现。接口模块21在接收到数据流量时,对数据流量进行采样统计,生成第一级流表。
步骤302:通过接口模块21根据第一级流表发送控制流报文至网络处理器22。
在本步骤中,参阅图2B,可以通过接口模块21的SOC按照配置的周期定时轮询整个第一级流表,获取对应流的统计数和第一级流表中记录的流的特征信息,然后根据统计数和流的特征信息发送控制流报文至网络处理器22。经过第一级流表过滤后,数据流量收敛,得到收敛后的控制流,可以减轻后续设备的负担。
步骤303:通过网络处理器22转发控制流报文至中央处理器23。
在本步骤中,网络处理器22的Netstream统计功能可以分为按需统计和按端口统计两种,前者主要通过配置ACL规则(互联网操作***Cisco IOS所提供的一种访问控制技术)筛选出需要统计的流量进行Netstream统计,而后者是针对端口收到的所有流量都进行统计。在本步骤中,网络处理器22主要用来实现控制流报文的识别,然后通过匹配不同的ACL区分两种Nestream统计功能,实现报文重定向到CPU。通过是否匹配报文来识别业务是否需要进行Netstream处理,针对不匹配的报文,直接丢弃,来降低对CPU的冲击。
步骤304:通过中央处理器23对控制流报文进行流量统计汇总,生成第二级流表。
在本步骤中,CPU模块主要完成第二级Netstream流表的建立和维护,以及统计信息的汇总,实现复杂的统计功能,例如:BGP下一跳聚合统计。同时,CPU模块需要完成与Netstream服务器的协议报文(RFC5101)的交互。由于采样流量经过Netstream接口模块21的SOC转化成控制流报文后,流量已经非常小,因此对CPU的冲击已经不大,实现了节约CPU资源的目的。
上述网络流量采样方法,通过两级流表分布式架构实现基于Netstream功能的网络流量采样,通过接口模块21、网络处理器22和中央处理器23三者紧密配合,经由两级流表,卸载Netstream统计产生的数据流,可以实现大带宽下的1:1 Netstream采样功能。在第一级流表采样后,使用控制流报文在网络处理器22模拟原始的数据流转发,最大限度的使用成熟的网络处理器22的流程,最大化的发挥网络处理器22的转发性能。将采样点前移到接口模块21,避免了网络处理器22采样性能瓶颈问题,降低了网络流量采样对网络设备CPU的资源和NP/PP资源的消耗,节约CPU资源。
请参看图4,其为本申请一实施例的网络流量采样方法,该方法可由图1所示的电子设备1来执行,并可以应用于如图2A至图2B所示的网络流量采样场景中,以以降低网络流量采样对网络设备CPU的资源和NP/PP资源的消耗。该方法包括如下步骤:
步骤401:在接口模块21接收到数据流量时,判断接收数据流量的端口上是否配置了网络流统计功能。若是进入步骤402,否则进入步412。
在本步骤中,假设接收数据流量的端口是MAC接口,接口模块21从接口MAC收到数据流量报文后,判断MAC接口上是否配置了Netstream功能,如果MAC接口上使能了Netstream采样功能,则进入步骤402。如果没有配置,则进入步骤412。
步骤402:按照预设采样比例对数据流量进行采样处理,得到采样流量报文。
在本步骤中,若接收数据流量的端口上配置了网络流统计功能,比如MAC接口上使能了Netstream采样功能,在数据流量报文经过第一个采集器Sampler时,按照配置的预设采样比例对该数据流量报文进行采样,预设采样比例可以为1:1。此处由于是硬件(FPGA或者专用ASIC)电路实现的采样功能,且每个端口的流量分布式实现,所以能够实现低至1:1的采样比而不影响转发性能。
步骤403:根据采样流量报文的流特征生成第一级流表。
在本步骤中,可以通过采样器Sampler将采样后的采样流量报文取前128Byte复制一份,并发给接口模块21的Netstream core处理,若该采样流量报文不足128Byte,则将整个采样流量报文复制发送给接口模块21的Netstream core。接口模块21的Netstream core根据收到的采集器Sampler复制的采样流量报文,先根据端口配置的规则进行报文解析,识别出采样流量报文的流特征后,基于流特征查找第一级Netstream流表(即第一级流表),如果命中第一级流表则更新第一级流表统计计数。如果不命中第一级流表,则先触发新建流表表项,然后基于新建流表完成对应的统计计数,得到新的第一级流表,之后可以将复制的采样流量报文丢弃。
上述步骤401至步骤403主要完成接口模块21的Netstream建流和统计流程,具体细节步骤可以参阅图5A。
步骤404:通过接口模块21轮询第一级流表,得到第一级流表中的流统计信息。
在本步骤中,流统计信息可以包括数据流的统计数和流表中记录的数据流的特征信息。可以通过接口模块21的SOC按照配置的周期定时轮询整个第一级流表,获取对应数据流的统计数和第一级流表中记录的数据流的特征信息。轮询过程中可以同步检查本轮询周期内是否有数据流量命中第一级流表,如果连续三个周期没有命中,则触发对第一级流表老化,删除对应的流表。
步骤405:根据流统计信息,恢复出采样流量报文的报文头。
在本步骤中,SOC根据轮询的每条流表的特征信息和统计数,恢复出采样器Sampler复制给接口模块21的Netstream core的数据流的报文头,即采样流量报文的报文头。
步骤406:根据采样流量报文的报文头和流统计信息,生成控制流报文,并发送控制流报文至网络处理器22。
在本步骤中,可以通过SOC根据采样流量报文的报文头和流统计信息,按照一定格式封装控制流报文,然后通过SysINTF接口发给网络处理器22的NP/PP芯片,以供网络处理器22将其按照正常的数据报文处理。
于一实施例中,考虑到NP芯片可编程能力较强,可以封装独立的控制流报文头,再封装原始采样流量报文原始头部和流统计信息,因此,NP芯片SOC封装后的控制流报文格式可以如图5B所示。针对PP芯片,由于主要是ASIC实现,可定制能力较弱,此时可以恢复原始的采样流量报文的报文头,同时修改该报文头中的部分字段(例如VLAN)用以识别控制流报文,再封装流统计信息,因此针对PP芯片的SOC封装后的控制流报文格式可以如图5C所示。
于一实施例中,在SysINTF接口侧与接口模块21的Netstream Core 之间也可以设置一个采样器Sampler,可以完成与上述第一个采样器Sampler相同的功能,用于完成端口的报文发出方向的Netstream统计。
上述步骤404至步骤406,主要完成通过SOC生成统计信息的流程。详细流程步骤可以参阅图5D。
步骤407:通过网络处理器22根据预设规则库对控制流报文进行过滤,将命中预设规则库的目标控制流报文转发至中央处理器23。
在本步骤中,网络处理器22的Netstream统计功能可以分为按需统计和按端口统计两种,前者主要通过配置ACL规则(互联网操作***Cisco IOS所提供的一种访问控制技术)筛选出需要统计的流量进行Netstream统计,而后者是针对端口收到的所有流量都进行统计。如图5E所示,也就是说网络处理器22主要用来实现控制流报文的识别,然后通过匹配不同的ACL规则,以区分两种Nestream统计功能,实现报文重定向到CPU。通过是否匹配报文来识别业务是否需要进行Netstream处理,针对不匹配的报文,直接丢弃,来降低对CPU的冲击。
针对按需统计的场景,可以在网络处理器22的NP/PP芯片上下发ACL规则,NP/PP芯片识别出SOC发送的控制流报文后,使用控制报文中的采样流量报文的原始报文头部查找ACL表,如果命中,则上送CPU模块处理,如果不命中,则丢弃该控制报文。
针对按端口统计的场景,流程与按需统计的相同,只是需要下发一条按照接口全部不匹配的ACL规则即可。
于一实施例中,对于NP芯片,可以剥掉控制流报文头后上送CPU模块。对于PP芯片,可以直接将控制流报文上送CPU模块。
步骤408:通过中央处理器23解析出控制流报文中携带的采样流量报文的报文头。
在本步骤中,CPU模块主要完成第二级Netstream流表的建立和维护,以及统计信息的汇总,实现复杂的统计功能,例如:BGP下一跳聚合统计。同时,CPU模块需要完成与Netstream服务器的协议报文(RFC5101)的交互。CPU模块收到SOC发送的控制流报文后,首先解析出控制流报文的内层报文的原始头部,即采样流量报文的报文头。
由于采样流量经过Netstream接口模块21的SOC转化成控制流报文后,流量已经非常小,因此对CPU的冲击已经不大,实现了节约CPU资源的目的。
步骤409:根据采样流量报文的报文头查找已有流表。若命中,进入步骤410,否则进入步骤411。
在本步骤中,可以使用采样流量报文的原始报文头查找CPU模块已有的第二级Netstream流表(即已有流表),如果命中已有流表,进入步骤410,否则进入步骤411。
步骤410:将控制流报文中携带的流统计信息更新到已有流表,得到第二级流表。
在本步骤中,若采样流量报文的报文头命中已有流表,则可以直接将控制流报文中携带的统计计数,累加到已有流表对应的计数器中,更新统计计数结果,设置已有流表命中标记。
步骤411:根据采样流量报文的报文头对应的配置信息新建流表,并将控制流报文中携带的流统计信息更新到新建流表,得到第二级流表。
在本步骤中,若采样流量报文的报文头未命中已有流表,则需要触发新建流表的流程,即将控制流报文中携带的流统计信息更新到新建流表,得到第二级流表。
上述步骤408至步骤411中主要通过CPU模块完成第二级流表的处理过程,详细流程可参阅图5F。
于一实施例中,考虑到实际场景中可能存在类似“BGP下一跳聚合统计”等复杂业务的Netstream统计功能,CPU需要使用采样流量报文的原始报文头查找转发表,比如对于采样流量报文为IPv4报文的查找FIB表,对于采样流量报文为MPLS报文的查找ILM表,进而获知是否存在复杂业务的统计功能配置。
因此步骤411具体可以包括:若采样流量报文的报文头未命中已有流表,通过中央处理器23判断采样流量报文的报文头是否配置有对复杂业务的计数器。若采样流量报文的报文头配置有对复杂业务的计数器,根据采样流量报文的报文头和计数器新建流表,并根据计数器将控制流报文中携带的流统计信息更新到新建流表,得到第二级流表。若采样流量报文的报文头没有配置对复杂业务的计数器,为控制流报文申请新的计数器,根据采样流量报文的报文头和新的计数器新建流表,并根据计数器将控制流报文中携带的流统计信息更新到新建流表,得到第二级流表。
如图5F所示,如果存在复杂业务的配置,则进一步判断是否已分配计数器,如果已经分配了计数器则获取计数器索引。如果没有分配对应计数器,则重新申请计数器。然后使用获取的计数器索引和采样流量报文的原始报文头信息新建流表,并将控制报文中携带的统计计数累加更新到计数器中。
如果不存在复杂业务的统计功能配置,则重新申请计数器,然后使用新计数器和采样流量报文的原始报文头信息新建流表,并将控制报文中携带的统计计数累加更新到计数器中。
于一实施例中,该方法还可以包括:通过CPU模块完成流表老化以及采集器交互过程,如图5G所示,类似SOC流表老化的机制,CPU起定时器定时轮询流表,获取流表的计数后封装与采集器交互的协议报文后发给采集器。同时会判断连续3个周期内未命中的流表,触发流表老化流程。
步骤412:通过数据通道发送数据流量到网络处理器22。
在本步骤中,接收数据流量的端口上没有配置网络流统计功能,可以通过数据通道直接发送到***侧接口SysINTF,后续发送到网络处理器22的NP进行正常数据流的转发处理。
上述网络流量采样方法,通过两级流表分布式架构实现Netstream功能的方案,通过接口模块21、网络处理模块和CP模块三者紧密配合,通过两级流表,卸载Netstream统计产生的数据流,实现大带宽下的1:1 Netstream采样功能。第一级流表采样后,通过在控制流报文中封装第一级Netstream统计计数,使用控制流报文在网络处理模块模拟原始的数据流转发,最大限度的使用成熟的网络处理器22的流程,最大化的发挥网络处理器22的转发性能。通过将采样点前移到接口模块21,可以表面网络处理器22采样性能瓶颈带来的缺陷。CPU模块使用模拟原始流量的控制流模拟转发流程,触发新建流表,同时使用控制报文的第一级Netstream统计计数累加统计计数的流表维护和更新,降低了网络流量采样对网络设备CPU的资源和NP/PP资源的消耗,节约CPU资源。
本发明实施例还提供了一种非暂态电子设备可读存储设备,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储设备可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储设备还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (9)
1.一种网络流量采样方法,其特征在于,包括:
通过接口模块接收数据流量,并对所述数据流量进行采样统计,生成第一级流表;
通过所述接口模块根据所述第一级流表发送控制流报文至网络处理器;
通过所述网络处理器转发所述控制流报文至中央处理器;
通过所述中央处理器对所述控制流报文进行流量统计汇总,生成第二级流表;
所述通过所述中央处理器对所述控制流报文进行流量统计汇总,生成第二级流表,包括:
若对所述数据流量采样得到的采样流量报文的报文头未命中已有流表,通过所述中央处理器判断所述采样流量报文的报文头是否配置有对复杂业务的计数器;
若所述采样流量报文的报文头配置有对复杂业务的计数器,根据所述采样流量报文的报文头和所述计数器新建流表,并根据所述计数器将所述控制流报文中携带的流统计信息更新到所述新建流表,得到所述第二级流表。
2.根据权利要求1所述的方法,其特征在于,所述通过接口模块接收数据流量,并对所述数据流量进行采样统计,生成第一级流表,包括:
在所述接口模块接收到数据流量时,判断接收所述数据流量的端口上是否配置了网络流统计功能;
若接收所述数据流量的端口上配置了网络流统计功能,则按照预设采样比例对所述数据流量进行采样处理,得到采样流量报文;
根据所述采样流量报文的流特征生成所述第一级流表。
3.根据权利要求2所述的方法,其特征在于,所述通过所述接口模块根据所述第一级流表发送控制流报文至网络处理器,包括:
通过所述接口模块轮询所述第一级流表,得到所述第一级流表中的流统计信息;
根据所述流统计信息,恢复出所述采样流量报文的报文头;
根据所述采样流量报文的报文头和所述流统计信息,生成所述控制流报文,并发送所述控制流报文至所述网络处理器。
4.根据权利要求1所述的方法,其特征在于,所述通过所述网络处理器转发所述控制流报文至中央处理器,包括:
通过所述网络处理器根据预设规则库对所述控制流报文进行过滤,将命中所述预设规则库的目标控制流报文转发至所述中央处理器。
5.根据权利要求3所述的方法,其特征在于,所述通过所述中央处理器对所述控制流报文进行流量统计汇总,生成第二级流表,包括:
通过所述中央处理器解析出所述控制流报文中携带的所述采样流量报文的报文头;
根据所述采样流量报文的报文头查找已有流表;
若所述采样流量报文的报文头命中已有流表,将所述控制流报文中携带的流统计信息更新到所述已有流表,得到所述第二级流表。
6.根据权利要求5所述的方法,其特征在于,所述通过所述中央处理器对所述控制流报文进行流量统计汇总,生成第二级流表,还包括:
若所述采样流量报文的报文头未命中已有流表,根据所述采样流量报文的报文头对应的配置信息新建流表,并将所述控制流报文中携带的流统计信息更新到所述新建流表,得到所述第二级流表。
7.根据权利要求6所述的方法,其特征在于,所述若所述采样流量报文的报文头未命中已有流表,根据所述采样流量报文的报文头对应的配置信息新建流表,并将所述控制流报文中携带的流统计信息更新到所述新建流表,得到所述第二级流表,还包括:
若所述采样流量报文的报文头没有配置对复杂业务的计数器,为所述控制流报文申请新的计数器,根据所述采样流量报文的报文头和所述新的计数器新建流表,并根据所述计数器将所述控制流报文中携带的流统计信息更新到所述新建流表,得到所述第二级流表。
8.一种网络流量采样***,其特征在于,包括:
接口模块、网络处理器和中央处理器,用以执行如权利要求1至7中任一项所述的方法。
9.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序,以实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210063211.4A CN114095383B (zh) | 2022-01-20 | 2022-01-20 | 网络流量采样方法、***和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210063211.4A CN114095383B (zh) | 2022-01-20 | 2022-01-20 | 网络流量采样方法、***和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114095383A CN114095383A (zh) | 2022-02-25 |
CN114095383B true CN114095383B (zh) | 2022-04-12 |
Family
ID=80308844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210063211.4A Active CN114095383B (zh) | 2022-01-20 | 2022-01-20 | 网络流量采样方法、***和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114095383B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115665051B (zh) * | 2022-12-29 | 2023-03-28 | 北京浩瀚深度信息技术股份有限公司 | 基于fpga+rldram3实现高速流表的方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889505A (zh) * | 2006-07-17 | 2007-01-03 | 华为技术有限公司 | 一种辅助cpu转发报文的方法及*** |
CN102255754A (zh) * | 2011-07-08 | 2011-11-23 | 中国人民解放军国防科学技术大学 | 串行接入的高速骨干网络流量采集与监控方法 |
WO2014161440A1 (zh) * | 2013-04-02 | 2014-10-09 | 中兴通讯股份有限公司 | 一种网络处理器异常检测方法、装置及网络处理设备 |
CN104579810A (zh) * | 2013-10-23 | 2015-04-29 | 中兴通讯股份有限公司 | 软件定义网络流量采样方法和*** |
CN106100997A (zh) * | 2016-06-03 | 2016-11-09 | 杭州华三通信技术有限公司 | 一种网络流量信息处理方法及装置 |
CN107016284A (zh) * | 2017-03-31 | 2017-08-04 | 武汉光迅科技股份有限公司 | 一种数据通信设备cpu前端动态防护方法及*** |
WO2017173806A1 (zh) * | 2016-04-07 | 2017-10-12 | 烽火通信科技股份有限公司 | 交换芯片或np与cpu协同完成报文ipsec加密的方法与*** |
WO2021208682A1 (zh) * | 2020-04-14 | 2021-10-21 | 中兴通讯股份有限公司 | 网络设备的数据采样方法、装置、设备及介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140112187A1 (en) * | 2012-10-23 | 2014-04-24 | Electronics And Telecommunications Research Institute | Apparatus for flow-based network monitoring and network monitoring system |
US9892075B2 (en) * | 2015-12-10 | 2018-02-13 | Cisco Technology, Inc. | Policy driven storage in a microserver computing environment |
-
2022
- 2022-01-20 CN CN202210063211.4A patent/CN114095383B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1889505A (zh) * | 2006-07-17 | 2007-01-03 | 华为技术有限公司 | 一种辅助cpu转发报文的方法及*** |
CN102255754A (zh) * | 2011-07-08 | 2011-11-23 | 中国人民解放军国防科学技术大学 | 串行接入的高速骨干网络流量采集与监控方法 |
WO2014161440A1 (zh) * | 2013-04-02 | 2014-10-09 | 中兴通讯股份有限公司 | 一种网络处理器异常检测方法、装置及网络处理设备 |
CN104579810A (zh) * | 2013-10-23 | 2015-04-29 | 中兴通讯股份有限公司 | 软件定义网络流量采样方法和*** |
WO2017173806A1 (zh) * | 2016-04-07 | 2017-10-12 | 烽火通信科技股份有限公司 | 交换芯片或np与cpu协同完成报文ipsec加密的方法与*** |
CN106100997A (zh) * | 2016-06-03 | 2016-11-09 | 杭州华三通信技术有限公司 | 一种网络流量信息处理方法及装置 |
CN107016284A (zh) * | 2017-03-31 | 2017-08-04 | 武汉光迅科技股份有限公司 | 一种数据通信设备cpu前端动态防护方法及*** |
WO2021208682A1 (zh) * | 2020-04-14 | 2021-10-21 | 中兴通讯股份有限公司 | 网络设备的数据采样方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114095383A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481242B2 (en) | System and method of flow source discovery | |
JP4341413B2 (ja) | 統計収集装置を備えたパケット転送装置および統計収集方法 | |
US9565076B2 (en) | Distributed network traffic data collection and storage | |
US7787442B2 (en) | Communication statistic information collection apparatus | |
US8391157B2 (en) | Distributed flow analysis | |
US8179799B2 (en) | Method for partitioning network flows based on their time information | |
CN106972985B (zh) | 加速dpi设备数据处理与转发的方法和dpi设备 | |
CN108270699B (zh) | 报文处理方法、分流交换机及聚合网络 | |
CN108900374B (zh) | 一种应用于dpi设备的数据处理方法和装置 | |
CN110855493B (zh) | 用于混合环境的应用拓扑图绘制装置 | |
CN112565338A (zh) | 一种以太网报文捕获、过滤、存储、实时解析方法及*** | |
EP2632083A1 (en) | Intelligent and scalable network monitoring using a hierarchy of devices | |
CN111314179A (zh) | 网络质量检测方法、装置、设备和存储介质 | |
WO2016169121A1 (zh) | 一种链路分析的方法、设备及*** | |
CN114095383B (zh) | 网络流量采样方法、***和电子设备 | |
CN110071843B (zh) | 一种基于流路径分析的故障定位方法及装置 | |
CN113746654A (zh) | 一种IPv6地址管理和流量分析的方法和装置 | |
CN110677327A (zh) | 一种基于芯片的rtp流量故障实时检测方法 | |
US20240022507A1 (en) | Information flow recognition method, network chip, and network device | |
US11218411B2 (en) | Flow monitoring in network devices | |
CN114244781B (zh) | 一种基于dpdk的报文去重处理方法和装置 | |
CN114189480B (zh) | 一种流量采样方法、装置、电子设备及介质 | |
CN111800311B (zh) | 分散计算状态实时感知方法 | |
CN108400905B (zh) | 一种处理分布式存储端到端流量分析的方法 | |
CN116319468B (zh) | 网络遥测方法、装置、交换机、网络、电子设备和介质 |
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 |