CN113992545B - 实现网络流量统计的方法、芯片和交换机 - Google Patents
实现网络流量统计的方法、芯片和交换机 Download PDFInfo
- Publication number
- CN113992545B CN113992545B CN202111619733.XA CN202111619733A CN113992545B CN 113992545 B CN113992545 B CN 113992545B CN 202111619733 A CN202111619733 A CN 202111619733A CN 113992545 B CN113992545 B CN 113992545B
- Authority
- CN
- China
- Prior art keywords
- interrupt
- cpu
- table entry
- statistic
- fifo
- 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
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000009825 accumulation Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种实现网络流量统计的方法、芯片和交换机,其包括:S1:读取硬件表项统计值,并将待统计的报文的数值累加到统计值中;S2:判断累加后的统计值是否大于等于中断阈值,如果是,则进行至步骤S3,否则将统计值写回硬件表项中;S3:判断FIFO_A是否未满,如果是,则进行至步骤S4,否则进行至步骤S5;S4:将统计值写入FIFO_A,清零硬件表项统计值,并触发中断A;S5:将统计值写回硬件表项中,并判断统计值是否翻转,如果翻转,则进行至步骤S6;S6:将翻转的硬件表项的index、类型以及具体的统计值写入到FIFO_B中,并触发高优先级中断B。本发明在CPU繁忙的时候依保证流量统计的精准性。
Description
技术领域
本发明涉及网络流量统计领域,尤其涉及一种实现网络流量统计的方法、芯片和交换机。
背景技术
近年来,随着互联网技术的飞速发展,网络应用不断增加,例如视频、语音、P2P应用等。高速网络传输承载着巨大的数据流量,很多应用需要对这些流量进行精确快速的统计。通过硬件实现可以达到精确快读的流量统计。
交换机是高速信息公路的重要角色,通过交换机可以将各种应用流量顺利从始发地送到目的地。而交换芯片是交换机的核心,交换芯片在统计各类流量时需要较大的RAM作为stats的硬件表项,使用较少的RAM完成相同的功能则可以降低芯片成本。
当前主流芯片实现流量统计都是通过stats硬件表项进行完成的。为了控制成本节省RAM开销,通过配置stats的阈值,当统计流量的数值到达阈值时,触发中断上报CPU,CPU通过中断处理函数读取对应的硬件表项,并将读取结果进行累计。
伴随芯片处理网络流量的增大,流统计中断将比较频繁,加重了CPU 负载。当CPU无法及时处理中断时,可能导致中断上报中的信息无法及时被读取进而导致统计值一直增加导致翻转,影响统计精准。如果要避免这个问题则需要对现有的硬件表项的位宽要求过大,从而保证有足够的时间预留给CPU进行操作。
发明内容
为了解决上述技术问题,本发明公开了一种实现网络流量统计的方法、芯片和交换机,提出了一种在原有的主流交换芯片实现硬件统计的方法之上进行的改进方法,用于减少芯片的硬件表项位宽并且保护在CPU资源繁忙时依旧可以达到精准的流量统计。
为达到上述目的,本发明的技术方案提供了:一种实现网络流量统计的方法,其包括如下步骤:
S1:读取硬件表项统计值datacount,并将待统计的报文的数值累加到datacount中;
S2:判断累加后的硬件表项统计值datacount是否大于等于用户配置的中断阈值countThrd,如果是,则进行至步骤S3,否则将硬件表项统计值datacount写回硬件表项中;
S3:判断第一FIFO FIFO_A是否未满,如果是,则进行至步骤S4,否则进行至步骤S5;
S4:将硬件表项统计值datacount写入FIFO_A,清零硬件表项统计值datacount,并触发中断A;
S5:将硬件表项统计值datacount写回硬件表项中,并判断硬件表项统计值datacount是否翻转,如果翻转,则进行至步骤S6;
S6:将翻转的硬件表项的index、类型以及具体的统计值写入到第二FIFO FIFO_B中,并触发高优先级中断B。
在进一步的技术方案中,CPU的中断处理流程包括:
S7:在接收到中断A时,判断CPU是否空闲,如果空闲,则对中断A进行处理,否则暂不对中断A进行处理,直到CPU空闲;
S8:若由于未及时处理中断A,导致接收到中断B时,则CPU立即进行切换以对中断B进行处理。
在进一步的技术方案中,在步骤S7中,CPU对中断A进行处理包括:根据FIFO_A的validnum字段读取FIFO_A中的所有信息,并将统计值累加到CPU对应的统计软表中。
在进一步的技术方案中,在步骤S8中,CPU对中断B进行处理包括:根据FIFO_B的index、类型以及bitmap,将翻转的值maxcount累加到CPU的统计软表中。
在进一步的技术方案中,在步骤S8中,CPU对中断B处理完成后,再切换到对中断A进行处理以完成对应的统计累加。
在进一步的技术方案中,所述方法还包括:在读取一条流的流量统计值时,CPU先判断当前的中断A和中断B是否都处理完成,如果是,则进行至步骤S9,否则,进行至步骤S10,
S9:CPU读取并清除该流对应的硬件统计表项得到统计值dataA,然后将对应的CPU软表统计值dataB与dataA相加得到dataC,dataC即为实时获取的流量统计值;
S10:继续执行步骤S7和S8,以对相应的中断进行处理,并在处理完中断后,再进行至步骤S9。
本发明的实施方式还提供了一种芯片,其使用如上所述的方法实现网络流量统计。
本发明的实施方式还提供了一种交换机,其包括如上所述的芯片。
附图说明
图1是本发明的节约RAM资源并且保护流量统计溢出的流程示意图;
图2是本发明的CPU中断处理流程示意图;
图3本发明的CPU读取某一条流的统计值的处理流程示意图。
具体实施方式
下面结合具体实施例对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
因为网络流量种类繁多,一个报文可能触发多种硬件统计表项,改变以往的CPU直接通过终端信息读取对应的硬件表项方式,使用芯片将统计信息预先读取到FIFO中,这样就可以避免CPU无法及时读取从而导致硬件统计值翻转的问题,并且这样不需要过大的硬件表项位宽,做到节约了RAM资源的目的。但是在同一个时刻只可以有一个信息被写入FIFO中(为了节约面积所有的stats使用同一个FIFO),所以很多信息需要等待写入,在极端的情况下,由于CPU繁忙或是统计的流量过多并且同一时刻达到阈值,统计的值从达到阈值到翻转值,在这个时间过程中没有被写入FIFO,这时翻转导致统计不精确。本发明在翻转的时候触发一个高优先级的中断,FIFO中只存放硬件对应的stats类型、index和一个bitmap告知用户是统计值中具体的哪一项翻转了,而不需要像之前的那种stats FIFO还需要存放count值。这样通过这种保护机制可以使用较少的资源,解决在极端情况下发生翻转无法精确统计的问题。
如图1所示,当前报文是需要被统计的报文时,首先读取对应的硬件的统计数值datacount,并将该报文的数值累加到datacount中,判断累加后的datacount是否大于等于用户配置的countThrd,即触发中断阈值。当不满足条件则将datacount写回硬件表项。满足条件则判断FIFO_A是否满了,未满则将硬件表项的统计值以及index对应的写入FIFO_A中,并清零硬件统计值,触发中断A。
由于一个报文可以触发多种硬件流量统计,并且所有硬件流量统计共用FIFO_A,当asic进行流水以后可能存在同一时刻多处硬件流量统计需要写入FIFO,所以部分硬件在这一时刻没写入FIFO_A时就继续累加datacount,和FIFO_A满了的处理流程一样。在CPU繁忙或刚刚上述问题的极端情况下,可能产生极少的硬件表项在翻转的情况下依旧无法写入FIFO_A中,这是当芯片得知datacount已经翻转以后,会将翻转的硬件表项的index、类型以及具体datacount(此处datacount不是一个值,可以有byte和packet亦或是其他类型的统计结果)下面哪个具体值通过bitmap的形式放入FIFO_B中,并触发高优先级的中断B。
参见图2,当CPU收到中断A时如果CPU有空闲处理该中断,具体地,读取FIFO_A的validnum字段,获取FIFO_A中有效的信息条目数,并以此读取FIFO_A中的信息,并将统计值累加到CPU对应的统计软表中。如果CPU没有及时处理该中断,则在极端情况下可能会收到中断B,这是由于中断B的优先级较高,则CPU会马上切过来处理中断B,根据FIFO_B的index、类型、以及bitmap,将翻转的值的maxcount累加到CPU的统计软表中,再切到FIFO_A的中断处理函数完成对应的统计累加。在寄存器有8个bit的情况下,这个maxcount就是256,就是可以触发翻转的值。
参见图3,当用户想要知道某一条流的实时流量统计值时,则CPU需要现判断当前中断的FIFO_A和FIFO_B是否都处理完成,处理完成则CPU读取并清除该流对应的硬件统计表项得到统计值dataA,然后将对应的CPU软表统计值dataB与之相加得到dataC,dataC即为用户实时获取的流量统计值。如果还有未处理完成的FIFO_A和FIFO_B的消息则按照图2的流程处理中断函数,再执行上述步骤即可获取dataC。
在本发明的实施方式中,提供了一种实现网络流量统计的方法,其包括如下步骤:
S1:读取硬件表项统计值datacount,并将待统计的报文的数值累加到datacount中;
S2:判断累加后的硬件表项统计值datacount是否大于等于用户配置的中断阈值countThrd,如果是,则进行至步骤S3,否则将硬件表项统计值datacount写回硬件表项中;
S3:判断第一FIFO FIFO_A是否未满,如果是,则进行至步骤S4,否则进行至步骤S5,FIFO_A用来存放达到中断阈值countThrd的硬件表项统计值datacount;
S4:将硬件表项统计值datacount写入FIFO_A,清零硬件表项统计值datacount,并触发中断A;
S5:将硬件表项统计值datacount写回硬件表项中,并判断硬件表项统计值datacount是否翻转,如果翻转,则进行至步骤S6;
S6:将翻转的硬件表项的index、类型以及具体的统计值写入到第二FIFO FIFO_B中,并触发高优先级中断B,FIFO_B用来存放一直没来得及上报导致翻转的硬件表项统计值datacount。
在进一步的技术方案中,CPU的中断处理流程包括:
S7:在接收到中断A时,判断CPU是否空闲,如果空闲,则对中断A进行处理,否则暂不对中断A进行处理,直到CPU空闲;
S8:若由于未及时处理中断A,导致接收到中断B时,则CPU立即进行切换以对中断B进行处理。
在进一步的技术方案中,在步骤S7中,CPU对中断A进行处理包括:根据FIFO_A的validnum字段读取FIFO_A中的所有信息,并将统计值累加到CPU对应的统计软表中。
在进一步的技术方案中,在步骤S8中,CPU对中断B进行处理包括:根据FIFO_B的index、类型以及bitmap,将翻转的值maxcount累加到CPU的统计软表中。
在进一步的技术方案中,在步骤S8中,CPU对中断B处理完成后,再切换到对中断A进行处理以完成对应的统计值累加。
在进一步的技术方案中,所述方法还包括:在读取一条流的流量统计值时,CPU先判断当前的中断A和中断B是否都处理完成,如果是,则进行至步骤S9,否则,进行至步骤S10,
S9:CPU读取并清除该流对应的硬件统计表项得到统计值dataA,然后将对应的CPU软表统计值dataB与dataA相加得到dataC,dataC即为实时获取的流量统计值;
S10:继续执行步骤S7和S8,以对相应的中断进行处理,并在处理完中断后,再进行至步骤S9。
本发明的实施方式还提供了一种芯片,其使用如上所述的方法实现网络流量统计。
本发明的实施方式还提供了一种交换机,其包括如上所述的芯片。
本发明通过使用较少的芯片RAM资源完成多种的流量统计,并且可以在CPU繁忙的时候依旧保证流量统计的精准性。使用FIFO的模式比传统的CPU读取模式更加节约芯片的RAM资源。
以上所述的仅是本发明的优选实施方式,应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (6)
1.一种实现网络流量统计的方法,其特征在于,包括如下步骤:
S1:读取硬件表项统计值datacount,并将待统计的报文的数值累加到datacount中;
S2:判断累加后的硬件表项统计值datacount是否大于等于用户配置的中断阈值countThrd,如果是,则进行至步骤S3,否则将硬件表项统计值datacount写回硬件表项中;
S3:判断第一FIFO即FIFO_A是否未满,如果是,则进行至步骤S4,否则进行至步骤S5;
S4:将硬件表项统计值datacount写入FIFO_A,清零硬件表项统计值datacount,并触发中断A;
S5:将硬件表项统计值datacount写回硬件表项中,并判断硬件表项统计值datacount是否翻转,如果翻转,则进行至步骤S6;
S6:将翻转的硬件表项的index、类型以及具体的硬件表项统计值datacount写入到第二FIFO即FIFO_B中,并触发高优先级中断B;其中,
CPU的中断处理流程包括:
S7:在接收到中断A时,判断CPU是否空闲,如果空闲,则对中断A进行处理,否则暂不对中断A进行处理,直到CPU空闲;
S8:若由于未及时处理中断A,导致接收到中断B时,则CPU立即进行切换以对中断B进行处理。
2.根据权利要求1所述的方法,其特征在于,在步骤S7中,CPU对中断A进行处理包括:
根据FIFO_A的validnum字段读取FIFO_A中的所有信息,并将所读取的统计值累加到CPU对应的统计软表中。
3.根据权利要求2所述的方法,其特征在于,在步骤S8中,CPU对中断B进行处理包括:
根据FIFO_B的index、类型以及bitmap,将翻转的值maxcount累加到CPU的统计软表中。
4.根据权利要求3所述的方法,其特征在于,在步骤S8中,CPU对中断B处理完成后,再切换到对中断A进行处理以完成对应的统计累加。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在读取一条流的流量统计值时,CPU先判断当前的中断A和中断B是否都处理完成,如果是,则进行至步骤S9,否则,进行至步骤S10,
S9:CPU读取该流对应的硬件表项中的实时统计值dataA,并清除该流对应的硬件表项统计值datacount,然后将对应的CPU软表统计值dataB与dataA相加得到dataC,dataC即为实时获取的流量统计值;
S10:继续执行步骤S7和S8,以对相应的中断进行处理,并在处理完中断后,再进行至步骤S9。
6.一种交换机,包括芯片,其特征在于,所述芯片使用如权利要求1-5中任一项所述的方法实现网络流量统计。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111619733.XA CN113992545B (zh) | 2021-12-28 | 2021-12-28 | 实现网络流量统计的方法、芯片和交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111619733.XA CN113992545B (zh) | 2021-12-28 | 2021-12-28 | 实现网络流量统计的方法、芯片和交换机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113992545A CN113992545A (zh) | 2022-01-28 |
CN113992545B true CN113992545B (zh) | 2022-04-22 |
Family
ID=79734767
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111619733.XA Active CN113992545B (zh) | 2021-12-28 | 2021-12-28 | 实现网络流量统计的方法、芯片和交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113992545B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540893A (zh) * | 1998-12-21 | 2004-10-27 | 卓联半导体V.N.有限公司 | 为硬件rtcp统计收集应用提供存储和带宽节省的方法和数据结构 |
CN101662389A (zh) * | 2009-10-19 | 2010-03-03 | 杭州华三通信技术有限公司 | 一种统计性能数据的方法及装置 |
CN104539557A (zh) * | 2015-01-04 | 2015-04-22 | 盛科网络(苏州)有限公司 | 报文统计上报cpu的方法及装置 |
CN105323184A (zh) * | 2015-10-08 | 2016-02-10 | 盛科网络(苏州)有限公司 | 节约ram资源实现流量统计的方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050249214A1 (en) * | 2004-05-07 | 2005-11-10 | Tao Peng | System and process for managing network traffic |
CN101848135B (zh) * | 2009-03-24 | 2011-12-28 | 华为技术有限公司 | 芯片的统计数据的管理方法和装置 |
US10922966B2 (en) * | 2018-10-31 | 2021-02-16 | Mitsubishi Electric Research Laboratories, Inc. | System and method for asymmetric traffic control |
-
2021
- 2021-12-28 CN CN202111619733.XA patent/CN113992545B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540893A (zh) * | 1998-12-21 | 2004-10-27 | 卓联半导体V.N.有限公司 | 为硬件rtcp统计收集应用提供存储和带宽节省的方法和数据结构 |
CN101662389A (zh) * | 2009-10-19 | 2010-03-03 | 杭州华三通信技术有限公司 | 一种统计性能数据的方法及装置 |
CN104539557A (zh) * | 2015-01-04 | 2015-04-22 | 盛科网络(苏州)有限公司 | 报文统计上报cpu的方法及装置 |
CN105323184A (zh) * | 2015-10-08 | 2016-02-10 | 盛科网络(苏州)有限公司 | 节约ram资源实现流量统计的方法及装置 |
Non-Patent Citations (1)
Title |
---|
流量计中的反转防计数装置;徐志煜;《中国储运》;20150101(第01期);148-149页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113992545A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7257080B2 (en) | Dynamic traffic-based packet analysis for flow control | |
JP3865748B2 (ja) | ネットワークスイッチ装置およびネットワークスイッチ方法 | |
CN1312577C (zh) | 一种实现通信过程零拷贝消息队列的方法 | |
JPH08511142A (ja) | 情報ネットワーク用の選択的混雑制御機構 | |
JPWO2004066570A1 (ja) | ネットワークスイッチ装置およびネットワークスイッチ方法 | |
WO2020134425A1 (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN105573711B (zh) | 一种数据缓存方法及装置 | |
CN113064738B (zh) | 基于概要数据的主动队列管理方法 | |
US8717898B2 (en) | Method and apparatus for calculating packet arrival time interval | |
CN113992545B (zh) | 实现网络流量统计的方法、芯片和交换机 | |
CN102025694A (zh) | 基于dsp阵列实现以太网数据发送的装置及方法 | |
CN113783794A (zh) | 拥塞控制方法和装置 | |
EP4181479A1 (en) | Method for identifying flow, and apparatus | |
CN115086238B (zh) | 一种tsn网络端口输出调度装置 | |
US20210135999A1 (en) | Packet Control Method, Flow Table Update Method, and Node Device | |
CN114885018B (zh) | 基于双队列的消息推送方法、装置、设备及存储介质 | |
CN109308180B (zh) | 缓存拥塞的处理方法及处理装置 | |
CN117499351A (zh) | 报文转发装置及方法、通信芯片及网络设备 | |
CN111654886A (zh) | 一种限制用户带宽的方法和装置 | |
JPS63102527A (ja) | パケツト交換機 | |
JP2794953B2 (ja) | データ廃棄方式 | |
CN110336759A (zh) | 基于rdma的协议报文转发方法及装置 | |
CN110337097A (zh) | 一种蓝牙基带芯片的广告数据管理方法及装置 | |
JPH07212365A (ja) | Atm交換機 | |
WO2023274122A1 (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 |