CN105141468A - 高效实现网络芯片流量统计的方法及装置 - Google Patents
高效实现网络芯片流量统计的方法及装置 Download PDFInfo
- Publication number
- CN105141468A CN105141468A CN201510641205.2A CN201510641205A CN105141468A CN 105141468 A CN105141468 A CN 105141468A CN 201510641205 A CN201510641205 A CN 201510641205A CN 105141468 A CN105141468 A CN 105141468A
- Authority
- CN
- China
- Prior art keywords
- statistics
- dma
- internal memory
- message
- chip
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭示了一种高效实现网络芯片流量统计的方法及装置,所述方法包括:报文查找芯片中的ACL流表,找到匹配的流表并关联流统计的行为;根据关联的流统计行为更新RAM内存中的信息;DMA控制器周期性地进行:定时读取RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到DMA内存中;其中,DMA内存是由CPU为芯片DMA分配的指定地址的CPU内存。本发明完全由芯片DMA来实现统计的同步和累加到CPU内存,整个过程中基本不需要软件参与,可以大大降低CPU的占用率,同时高效完成flow?stats的功能。
Description
技术领域
本发明涉及一种流量统计技术,尤其是涉及一种高效实现网络芯片流量统计的方法及装置。
背景技术
Flowstats(流量统计)是一种依靠ACL(访问控制列表)实现流量统计的技术,对流量分析、问题定位等都广泛的应用。根据ACL识别特定的流,并关联stats表项,将识别到的流统计到stats表项中,Stats表项在芯片内使用物理存储器实现,表项规格有限制。为了防止溢出导致统计反转,现有大部分芯片的做法是设定阈值,达到阈值会触发中断,此时cpu(中央处理器)接管中断,读取芯片ram(随机存取存储器)中的stats统计,并清0。最终的stats统计是依靠软件多次读取的结果累加后返回。
由于stats表项占用ram资源,不可能设置过多的位宽,按100G的流量来计算,1s中的报文统计就需要占用34个位宽的ram资源,同时中断需要达到至少1s一次才能有效的防止反转,这种情况下对cpu的冲击很大,效率很低。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种高效实现网络芯片流量统计的方法及装置,利用DMA和CPU可共享内存的特点,采用芯片的DMA控制器以实现流量统计。
为实现上述目的,本发明提出如下技术方案:一种高效实现网络芯片流量统计的方法,所述芯片内包括ACL流表、流统计、RAM内存和DMA控制器,所述方法包括:
S1,报文进入芯片,根据自身携带的报文信息查找芯片中的ACL流表,找到匹配的流表并关联所述流统计的行为;
S2,根据关联的所述流统计行为更新所述RAM内存中的信息;
S3,DMA控制器周期性地进行:定时读取所述RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到所述DMA内存中;其中,所述DMA内存是由CPU为芯片DMA分配的指定地址的CPU内存。
优选地,所述报文自身携带的报文信息包括报文的五元组信息,所述五元组信息包括报文的目的mac地址、源mac地址、目的IP地址和源IP地址。
优选地,更新所述RAM内存中的信息包括:将报文的个数和长度统计到所述RAM内存中。
优选地,步骤S3中,芯片启用DAM功能,DMA控制器根据配置的时间间隔周期性地进行操作。
优选地,通过直接读取所述CPU内存中数据,以获得流量统计数据。
本发明还提出了一种高效实现网络芯片流量统计的装置,包括芯片内的ACL流表、流统计、RAM内存、DMA控制器,CPU及DMA内存,其中,
所述ACL流表用于供进入芯片的报文根据自身携带的报文信息进行流表查找,匹配到的流表关联所述流统计的行为。
所述RAM内存用于根据关联的所述流统计行为更新所储存的信息,做流量统计;
所述DMA控制器用于周期性地进行:定时读取所述RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到所述DMA内存中;
所述CPU用于为芯片DMA分配指定地址的CPU内存做为所述DMA内存。
优选地,所述RAM内存统计报文的个数和长度,以更新其内部储存信息。
优选地,所述装置还包括数据读取模块,所述数据读取模块用于读取所述CPU内存中数据,以获得流量统计数据。
与现有技术相比,本发明的有益效果是:通过本发明不需要频繁中断,完全由芯片DMA来实现统计的同步和累加到CPU内存,整个过程中基本不需要软件参与,可以大大降低CPU的占用率,同时高效完成flowstats的功能。
附图说明
图1是本发明高效实现网络芯片流量统计的装置的原理示意图;
图2是本发明高效实现网络芯片流量统计的方法的流程示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明利用直接存储访问(DMA)和CPU会共享内存的特点,由芯片的DMA控制器来自动实现流量统计。如图1所示,本发明实施例所揭示的一种高效实现网络芯片流量统计的装置,包括芯片、CPU及DMA内存,芯片内包括ACL流表、流统计、RAM内存和DMA控制器。
图2为本发明高效实现网络芯片流量统计的方法的流程示意图,结合图1和图2所示,报文进入芯片后,根据携带的目的mac地址(MacDa)/源mac地址(MacSa)/目的IP地址(IPda)/源IP地址(IPsa)等五元组信息查找芯片中ACL流表(图1中的步骤1),找到匹配的流表并关联流统计的行为(Action)来做流量统计(图1中的步骤2)。需要说明的是,报文自身携带的报文信息包括但不仅限于五元组信息,除这里提及的报文的目的mac地址,源mac地址,目的IP地址,源IP地址外,还包括目的端口,源端口等。
流量统计是利用芯片中的一块Ram资源(即RAM内存)来实现,当匹配到的ACL流表中有统计的Action时,就会更新这块Ram内存中的信息,将报文个数和长度统计到Ram资源中(图1中的步骤3)。芯片启用DMA功能,CPU为DMA分配指定地址的CPU内存做为DMA内存来使用,由DMA控制器定时去读取Ram中的统计数据(图1中的步骤4)。同时读取已经分配的DMA内存中的数据(图1中的步骤5),将步骤4和步骤5中的数据进行累加,再回写到DMA内存(图1中的步骤6),DMA根据已经配置好的时间间隔周期性的进行步骤4到步骤6的操作。
这样,流量统计的数据就会不断的更新到DMA内存,由于DMA和CPU是共享同一块内存,当需要获取流量统计时,只需要读取相应CPU内存中的数据即可(图1中的步骤7),可通过一数据读取模块(图未示)来读取。
需要说明的是,本发明中所指芯片不局限于专用集成电路(ASIC)芯片,还包括现场可编程门阵列(FPGA)或网络处理器NP等。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (9)
1.一种高效实现网络芯片流量统计的方法,其特征在于,所述芯片内包括ACL流表、流统计、RAM内存和DMA控制器,所述方法包括:
S1,报文进入芯片,根据自身携带的报文信息查找芯片中的ACL流表,找到匹配的流表并关联所述流统计的行为;
S2,根据关联的所述流统计行为更新所述RAM内存中的信息;
S3,DMA控制器周期性地进行:定时读取所述RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到所述DMA内存中;其中,所述DMA内存是由CPU为芯片DMA分配的指定地址的CPU内存。
2.根据权利要求1所述的高效实现网络芯片流量统计的方法,其特征在于,所述报文自身携带的报文信息包括报文的五元组信息,所述五元组信息包括报文的目的mac地址、源mac地址、目的IP地址和源IP地址。
3.根据权利要求1所述的高效实现网络芯片流量统计的方法,其特征在于,更新所述RAM内存中的信息包括:将报文的个数和长度统计到所述RAM内存中。
4.根据权利要求1所述的高效实现网络芯片流量统计的方法,其特征在于,步骤S3中,芯片启用DAM功能,DMA控制器根据配置的时间间隔周期性地进行操作。
5.根据权利要求1所述的高效实现网络芯片流量统计的方法,其特征在于,通过直接读取所述CPU内存中数据,以获得流量统计数据。
6.一种高效实现网络芯片流量统计的装置,其特征在于,包括芯片内的ACL流表、流统计、RAM内存、DMA控制器,CPU及DMA内存,其中,
所述ACL流表用于供进入芯片的报文根据自身携带的报文信息进行流表查找,匹配到的流表关联所述流统计的行为。
所述RAM内存用于根据关联的所述流统计行为更新所储存的信息,做流量统计;
所述DMA控制器用于周期性地进行:定时读取所述RAM内存中的统计数据,同时读取DMA内存中的数据,将读取的RAM内存中的统计数据和DMA内存中的数据累加,再写回到所述DMA内存中;
所述CPU用于为芯片DMA分配指定地址的CPU内存做为所述DMA内存。
7.根据权利要求6所述的高效实现网络芯片流量统计的装置,其特征在于,所述报文自身携带的报文信息包括报文的五元组信息,所述五元组信息包括报文的目的mac地址、源mac地址、目的IP地址和源IP地址。
8.根据权利要求6所述的高效实现网络芯片流量统计的装置,其特征在于,所述RAM内存统计报文的个数和长度,以更新其内部储存信息。
9.根据权利要求6所述的高效实现网络芯片流量统计的装置,其特征在于,所述装置还包括数据读取模块,所述数据读取模块用于读取所述CPU内存中数据,以获得流量统计数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510641205.2A CN105141468B (zh) | 2015-10-08 | 2015-10-08 | 高效实现网络芯片流量统计的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510641205.2A CN105141468B (zh) | 2015-10-08 | 2015-10-08 | 高效实现网络芯片流量统计的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105141468A true CN105141468A (zh) | 2015-12-09 |
CN105141468B CN105141468B (zh) | 2019-02-05 |
Family
ID=54726686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510641205.2A Active CN105141468B (zh) | 2015-10-08 | 2015-10-08 | 高效实现网络芯片流量统计的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105141468B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110932997A (zh) * | 2019-12-09 | 2020-03-27 | 苏州浪潮智能科技有限公司 | 一种降低网络流量丢包的方法、设备及介质 |
CN112667537A (zh) * | 2021-01-05 | 2021-04-16 | 烽火通信科技股份有限公司 | 流量上报方法、装置、设备及可读存储介质 |
CN114679381A (zh) * | 2022-03-24 | 2022-06-28 | 芯河半导体科技(无锡)有限公司 | 一种基于硬件dma的快速刷表方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101515898A (zh) * | 2009-03-25 | 2009-08-26 | 华为技术有限公司 | 芯片的统计数据的管理方法和装置 |
CN101848132A (zh) * | 2009-03-24 | 2010-09-29 | 华为技术有限公司 | 流量统计装置及方法 |
CN102006285A (zh) * | 2010-11-02 | 2011-04-06 | 北京天融信科技有限公司 | 一种用于网络安全设备的报文处理方法及装置 |
CN104348677A (zh) * | 2013-08-05 | 2015-02-11 | 华为技术有限公司 | 一种深度报文检测方法、设备及协处理器 |
CN104683265A (zh) * | 2015-02-27 | 2015-06-03 | 南京中新赛克科技有限责任公司 | 一种用于100g接口的大容量精确包计数方法 |
-
2015
- 2015-10-08 CN CN201510641205.2A patent/CN105141468B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848132A (zh) * | 2009-03-24 | 2010-09-29 | 华为技术有限公司 | 流量统计装置及方法 |
CN101515898A (zh) * | 2009-03-25 | 2009-08-26 | 华为技术有限公司 | 芯片的统计数据的管理方法和装置 |
CN102006285A (zh) * | 2010-11-02 | 2011-04-06 | 北京天融信科技有限公司 | 一种用于网络安全设备的报文处理方法及装置 |
CN104348677A (zh) * | 2013-08-05 | 2015-02-11 | 华为技术有限公司 | 一种深度报文检测方法、设备及协处理器 |
CN104683265A (zh) * | 2015-02-27 | 2015-06-03 | 南京中新赛克科技有限责任公司 | 一种用于100g接口的大容量精确包计数方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110932997A (zh) * | 2019-12-09 | 2020-03-27 | 苏州浪潮智能科技有限公司 | 一种降低网络流量丢包的方法、设备及介质 |
CN110932997B (zh) * | 2019-12-09 | 2022-06-21 | 苏州浪潮智能科技有限公司 | 一种降低网络流量丢包的方法、设备及介质 |
CN112667537A (zh) * | 2021-01-05 | 2021-04-16 | 烽火通信科技股份有限公司 | 流量上报方法、装置、设备及可读存储介质 |
CN114679381A (zh) * | 2022-03-24 | 2022-06-28 | 芯河半导体科技(无锡)有限公司 | 一种基于硬件dma的快速刷表方法 |
CN114679381B (zh) * | 2022-03-24 | 2023-11-24 | 芯河半导体科技(无锡)有限公司 | 一种基于硬件dma的快速刷表方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105141468B (zh) | 2019-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105141468A (zh) | 高效实现网络芯片流量统计的方法及装置 | |
EP3091699A1 (en) | Queue scheduling method and device, and computer storage medium | |
CN105323184A (zh) | 节约ram资源实现流量统计的方法及装置 | |
US7864790B2 (en) | Method and apparatus for improving the management of data packets | |
CN102143071B (zh) | 一种网络流量确定方法、装置及网络设备 | |
EP3070994A1 (en) | M2m-based information processing method and m2m service platform | |
CN110808854A (zh) | 报文调度方法、装置及交换机 | |
CN101529404B (zh) | 用于时间戳消息的方法 | |
CN113542043B (zh) | 网络设备的数据采样方法、装置、设备及介质 | |
US9203759B2 (en) | Switch state reporting | |
CN106941458A (zh) | 数据传输的方法及装置 | |
CN104243348A (zh) | 一种数据处理方法和装置 | |
CN103078754A (zh) | 一种基于计数型bloom filter的网络数据流统计方法 | |
CN100469055C (zh) | 转发报文的处理方法及处理装置 | |
CN105635317A (zh) | 一种应用于桥梁检测的无线通信方法及系统 | |
CN105700859A (zh) | 一种基于网络处理器实现硬件表遍历的方法及装置 | |
US20130170368A1 (en) | Method and system for counting data packets | |
CN107196879A (zh) | Udp报文的处理方法、装置以及网络转发装置 | |
CN104967580A (zh) | 用于实现以太网报文发送的方法及装置 | |
CN103997415A (zh) | 一种实现报文统计的装置及方法 | |
CN114978967B (zh) | 基于流表项有效时间的sdn大象流侦测器实现方法 | |
CN110912841A (zh) | 面向128bit位宽的SRIO协议控制字符与数据包分离系统 | |
EP4280561A1 (en) | Information flow identification method, network chip, and network device | |
CN107124316B (zh) | 一种数据通信设备中基于硬件的快速倒换动作实现方法 | |
US11646971B2 (en) | Limiting backpressure with bad actors |
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 | ||
CP03 | Change of name, title or address |
Address after: 215101 unit 13 / 16, 4th floor, building B, No. 5, Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: 215021 unit 13 / 16, floor 4, building B, No. 5, Xinghan street, industrial park, Suzhou, Jiangsu Province Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |
|
CP03 | Change of name, title or address |