CN113347064A - 一种网络数据流的检测方法 - Google Patents
一种网络数据流的检测方法 Download PDFInfo
- Publication number
- CN113347064A CN113347064A CN202110733345.8A CN202110733345A CN113347064A CN 113347064 A CN113347064 A CN 113347064A CN 202110733345 A CN202110733345 A CN 202110733345A CN 113347064 A CN113347064 A CN 113347064A
- Authority
- CN
- China
- Prior art keywords
- data stream
- message
- hash
- data flow
- data
- 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.)
- Withdrawn
Links
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
-
- 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/10—Active monitoring, e.g. heartbeat, ping or trace-route
- H04L43/106—Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
-
- 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/16—Threshold monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种网络数据流的检测方法,包括以下步骤:收到报文时,获取报文头部的数据流信息,并在存储数据流的Hash表中查找当前收到报文所属的数据流;当在Hash表中未发现所属的数据流条目,且对应的Hash桶中无可用存储空间时,则在当前Hash桶中选出老化速率最小的一个数据流条目;当老化速率小于所设置的门限值,则将所选出的数据流条目淘汰,并将新收到报文所属数据流的统计信息存储在该条目中。本发明采用基于传输速率及最新收到报文的时间戳机制,及时淘汰不活动的大流,有效提高了网络数据流检测的准确性。在相同存储开销的情况下,大流检测的准确性优于MV‑Sketch方案;通过采用基于时间戳的老化机制,不会存在因系统的持续运行而导致的统计误差的积累。
Description
技术领域
本发明涉及数据处理技术领域,具体为一种网络数据流的检测方法。
背景技术
网络中少数具有较大数据量的数据流生成了网络的大部分流量,而其它大量的数据流的数据量总和仅占小部分的网络流量;数据流在带宽占用上也表现出不均衡性,其中少量具有较高速率的数据流消耗了大量的网络带宽。网络中数据流的这种分布特征严重影响了网络传输的有效性,导致了数据流传输带宽占用上的不公平性,对报文的传输时延产生了较大影响,严重时甚至发生拥塞导致报文丢失。随着网络技术的发展,传输链路的带宽容量和数据流的传输速率越来越高。目前,支持100Gbps链路的网络设备已经可以商用;高速网络的转发能力对数据流检测算法的处理提出了高的性能要求。在网络设备上,有效检测出这些数据流,并进行适当的管理与控制,可以改善网络传输的有效性:比如缓解网络拥塞、增加网络的有效吞吐率、降低报文传输时延及报文丢失率,改善网络传输的公平性等。
大流检测在网络管理等领域的应用,引起了研究人员的大量关注。尤其是随着应用场景的拓展,网络链路带宽的增加,不断涌现出新的研究成果;这些成果从准确性、性能、存储开销等方面不断对已有的研究进行了改进。由于网络中数据流的数目过于庞大,而网络设备中高速存储器的存储空间非常有限,因此只能通过维护部分数据流的统计信息,来检测出高速率大流。MV-Sketch数据流检测方案是一种高效的数据流检测算法,该算法主要通过主票选算法(MJTRY, Majority Vote Algorithm),在一个二维数组中保留候选的大流,使用较小的存储空间实现高速网络中的大流检测。由于缺乏数据流计数的老化机制,因此数据流的计数统计误差随着系统的长期运行会逐步累积;而且当两个高速大流的存储空间上存在Hash冲突时,会降低高速大流检测的准确性。
发明内容
为解决上述技术问题,本发明采用以下技术方案:一种网络数据流的检测方法,其特征在于:包括以下步骤:
第一步,收到报文时,获取报文头部的数据流信息,并在存储数据流的Hash 表中查找当前收到报文所属的数据流;
第二步,当在Hash表中未发现所属的数据流条目,且对应的Hash桶中无可用存储空间时,则在当前Hash桶中选出老化速率最小的一个数据流条目;
第三步,当老化速率小于所设置的门限值,则将所选出的数据流条目淘汰,并将新收到报文所属数据流的统计信息存储在该条目中。
其中,所述Hash表在查找过程中使用Hash函数计算查找索引;所述老化速率为数据流的传输速率乘以老化因子;所述数据的传输速率为数据流的字节数除以数据流的生存时间;所述老化因子小于1且随着数据流未收到报文时间的增加而逐渐减小。
进一步的,所述老化因子为小于1的常数的数据流未收到报文时间的次方。
进一步的,所述老化因子为小于1的常数的数据流未收到报文时间的分段递减函数。
进一步的,所述数据流的统计信息包括数据流标识符、接收数据流第一报文的时间戳、接收数据流最后一个报文的时间戳和数据流的字节数。
进一步的,所述Hash表中第i个子表索引计算的Hash函数为 Index=Hash(FlowID||salt[i])。
进一步的,所述所述salt数组中存储的是多个不相同的素数。
进一步的,所述所述FlowID||salt[i]表示将salt[i]连接在FlowID后面。
进一步的,所述Hash函数是32二进制位的循环冗余校验CRC32(CyclicRedundancy Check)算法。
进一步的,所述Hash函数是消息摘要MD2(Message Digest)算法。
有益效果:与现有技术相比,本发明采用基于传输速率及最新收到报文的时间戳机制,及时淘汰不活动的大流,有效提高了网络数据流检测的准确性。在相同存储开销的情况下,大流检测的准确性优于MV-Sketch方案;通过采用基于时间戳的老化机制,不会存在因系统的持续运行而导致的统计误差的积累。
具体实施方式
为了便于理解本发明,下面对本发明进行更加全面的描述。本发明可以通过不同的形式来实现,并不限于文本所描述的实施例。相反的,提供实施例是为了使对本发明公开的内容更加透彻全面。
本发明申请采用二维数组存储数据流的信息,通过Hash函数查找(如CRC32 或MD2等)方法查找数组中存储的数据流信息。其中数组的每个单元存储的内容包括数据流的标识符FlowID、数据流的字节数FlowBytes、数据流收到的时间戳 StartTime,数据流最新收到报文的时间戳LatestPktTime。存储数据流信息的二维数组D包括M行,即D由M个一维数组组成;每行包含多个元素,记第i行包含的元素数目为ri(其中1≤i≤M),每行中的元素采用Hash法进行查找。
该方案的步骤为:
第一步,网络设备收到报文Packet时,从报文Packet的头部字段(比如:IP 源地址、IP目的地址、传输层源端口号、传输层目的端口号等)获取流标识符 FlowID;
第二步,令i=1;Found=false;
第三步,从第i行数组元素查找FlowID对应的流条目,具体查找方法为:使用FlowID作为Hash函数的输入,Hash输出Index作为第i行数组的下标获取数组元素D[i][Index],与数据元素D[i][Index]中存储的流标识符进行比较;如果相同,表示找到了报文对应的流条目,置Found=true;将收到报文Packet的字节数累加到数据元素D[i][Index]中的流字节数中,将当前收到报文的时间替换数据元素中存储的最新收到报文的时间戳。跳转到步骤5;
第四步,如果i<M且在第i行未查找到FlowID对应的数据元素,令i=i+1,并跳转到步骤3;
第五步,如果Found=true,表示已找到当前报文Packet对应的数据流,并且已完成当前报文的处理;
第六步,如果Found=false,表示收到的报文Packet是一个未存储的新数据流报文,则需要为Packet所对应的流FlowID分配存储空间;令pos=0;i=1; minRate=网络设备链路带宽的线速速率;
第七步,从第i行数组元素查找FlowID对应的流条目,使用FlowID作为 Hash函数的输入,Hash输出Index作为第i行数组的下标获取数组元素 D[i][Index],如果D[i][Index]数据流字节数为零,则pos=i,并置ageRate=0;然后跳转至步骤9;否则获取D[i][Index]最新收到报文的时间戳LatestPktTime、数据流字节数FlowBytes、StartTime,计算TimeGap=当前时间-LatestPktTime;计算流速率FlowRate=FlowBytes/(当前时间-StartTime),计算ageRate=FlowRate* λTimeGap(其中0<λ<1的数值,这里取λ=0.8),如果ageRate小于minRate,则将ageRate赋值给minRate,记录pos=i;执行下一步骤;
第八步,如果i<M,令i=i+1,并跳转到步骤7;
第九步,如果minRate不超过系统所设置的门限值,使用第pos个Hash函数,以FlowID为输入生成Index,并在D[pos][index]单元中存储报文Packet所对应的流统计信息,包括:流标识符FlowID,流字节数FlowBytes(等于当前报文的字节数),流起始时间StartTime,最新收到报文的时间戳LatestPktTime。
其中所使用的Hash函数可以是32二进制位的循环冗余校验CRC32(CyclicRedundancy Check)算法,或消息摘要MD2(Message Digest)算法;Hash表中第i 个子表输出计算的方法为Index=Hash(FlowID||salt[i]);其中salt数组中存储的是多个不相同的素数,FlowID||salt[i]表示将salt[i]连接在FlowID后面。
在上述实施例中可以实现全部功能,或根据需要实现部分功能。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
Claims (9)
1.一种网络数据流的检测方法,其特征在于:包括以下步骤:
第一步,收到报文时,获取报文头部的数据流信息,并在存储数据流的Hash表中查找当前收到报文所属的数据流;
第二步,当在Hash表中未发现所属的数据流条目,且对应的Hash桶中无可用存储空间时,则在当前Hash桶中选出老化速率最小的一个数据流条目;
第三步,当老化速率小于所设置的门限值,则将所选出的数据流条目淘汰,并将新收到报文所属数据流的统计信息存储在该条目中;
其中,所述Hash表在查找过程中使用Hash函数计算查找索引;所述老化速率为数据流的传输速率乘以老化因子;所述数据的传输速率为数据流的字节数除以数据流的生存时间;所述老化因子小于1且随着数据流未收到报文时间的增加而逐渐减小。
2.根据权利要求1所述的一种网络数据流的检测方法,其特征是:所述老化因子为小于1的常数的随数据流未收到报文的时间次方。
3.根据权利要求1所述的一种网络数据流的检测方法,其特征是:所述老化因子为小于1的常数的数据流未收到报文时间的分段递减函数。
4.根据权利要求1所述的一种网络数据流的检测方法,其特征是:所述数据流的统计信息包括数据流标识符、接收数据流第一报文的时间戳、接收数据流最后一个报文的时间戳和数据流的字节数。
5.根据权利要求1所述的一种网络数据流的检测方法,其特征是:所述Hash表中第i个子表索引计算的Hash函数为Index=Hash(FlowID||salt[i])。
6.根据权利要求5所述的一种网络数据流的检测方法,其特征是:所述salt数组中存储的是多个不相同的素数。
7.根据权利要求5所述的一种网络数据流的检测方法,其特征是:所述FlowID||salt[i]表示将salt[i]连接在FlowID后面。
8.根据权利要求1或5所述的一种网络数据流的检测方法,其特征是:所述Hash函数是32二进制位的循环冗余校验CRC32(Cyclic Redundancy Check)算法。
9.根据权利要求1或5任意一项所述的一种网络数据流的检测方法,其特征是:所述Hash函数是消息摘要MD2(Message Digest)算法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110733345.8A CN113347064A (zh) | 2021-06-30 | 2021-06-30 | 一种网络数据流的检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110733345.8A CN113347064A (zh) | 2021-06-30 | 2021-06-30 | 一种网络数据流的检测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113347064A true CN113347064A (zh) | 2021-09-03 |
Family
ID=77481634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110733345.8A Withdrawn CN113347064A (zh) | 2021-06-30 | 2021-06-30 | 一种网络数据流的检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113347064A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319464A (zh) * | 2023-03-16 | 2023-06-23 | 南京金阵微电子技术有限公司 | 网络报文流量统计方法、系统、存储介质及电子设备 |
-
2021
- 2021-06-30 CN CN202110733345.8A patent/CN113347064A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116319464A (zh) * | 2023-03-16 | 2023-06-23 | 南京金阵微电子技术有限公司 | 网络报文流量统计方法、系统、存储介质及电子设备 |
CN116319464B (zh) * | 2023-03-16 | 2024-02-06 | 南京金阵微电子技术有限公司 | 网络报文流量统计方法、系统、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108337172B (zh) | 大规模OpenFlow流表加速查找方法 | |
EP2793436B1 (en) | Content router forwarding plane architecture | |
CN110932989B (zh) | 一种基于sdn数据中心网络的大象流路径监控调度方法 | |
JP3735471B2 (ja) | パケット中継装置およびlsi | |
US7373425B2 (en) | High-speed MAC address search engine | |
US7418505B2 (en) | IP address lookup using either a hashing table or multiple hash functions | |
Rottenstreich et al. | Optimal rule caching and lossy compression for longest prefix matching | |
CN113132249A (zh) | 一种负载均衡方法和设备 | |
US20020046291A1 (en) | Network unit with address cache for frequently occurring network conversations | |
CN110061929B (zh) | 针对非对称网络的数据中心负载均衡方法 | |
CN102333036A (zh) | 一种实现高速路由查找的方法和系统 | |
CN113098778A (zh) | 一种软件定义网络中基于生成树折叠路由的流表压缩方法 | |
CN113347064A (zh) | 一种网络数据流的检测方法 | |
US20190220401A1 (en) | Method and apparatus for search engine cache | |
CN112822077B (zh) | 数据中心网络中全网流量测量方法、系统及丢包检测方法 | |
CN110460537A (zh) | 基于包集合的数据中心非对称拓扑下流量调度方法 | |
US20050114393A1 (en) | Dynamic forwarding method using binary search | |
CN113965492A (zh) | 一种数据流统计方法及装置 | |
CN114710444B (zh) | 基于塔型摘要和可驱逐流表的数据中心流量统计方法和系统 | |
Zhang et al. | OBMA: Minimizing bitmap data structure with fast and uninterrupted update processing | |
JP4252003B2 (ja) | 伝送装置 | |
CN103064901B (zh) | 一种ram、网络处理系统和一种ram查表方法 | |
Huang et al. | Fast routing table lookup based on deterministic multi-hashing | |
CN111585894A (zh) | 一种基于权重计算的网络路由方法及装置 | |
CN112187642A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210903 |
|
WW01 | Invention patent application withdrawn after publication |