CN104243348B - 一种数据处理方法和装置 - Google Patents
一种数据处理方法和装置 Download PDFInfo
- Publication number
- CN104243348B CN104243348B CN201410488433.6A CN201410488433A CN104243348B CN 104243348 B CN104243348 B CN 104243348B CN 201410488433 A CN201410488433 A CN 201410488433A CN 104243348 B CN104243348 B CN 104243348B
- Authority
- CN
- China
- Prior art keywords
- message
- packet
- filtering
- packet message
- accumulated value
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据处理方法和装置,该数据处理方法包括:根据策略号对输入数据流中的报文进行分组,分组后的各个报文在输入数据流中的位置不变,其中,属于同一分组的报文构成一分组报文;根据预先设定的过滤规则,将不符合过滤规则的报文过滤,形成输出数据流。本发明通过根据报文的策略号对报文进行分组,分组后的报文在数据流中的位置不发生变化,由于这种虚拟队列的表现形式使得系统在流控时,不涉及对报文的分发和汇聚,因此不需要为每一种策略维护一个缓冲队列,减少了系统资源的开销。并且通过预定的过滤规则可以进一步减少片内RAM的开销,进一步增加流量控制策略的数量,从而大大提高了系统对于数据流控的效率和灵活性。
Description
技术领域
本发明涉及数据处理领域,具体来说,涉及一种数据处理方法和装置。
背景技术
随着计算机网络的飞速发展,特别是P2P技术的广泛应用,网络流量呈爆炸式增长。剧增的网络流量容易造成网络拥堵,大大增加了网络基础设施的负担,网络的运维成本增大。单纯的依靠增加带宽的方式来满足用户需求,成本太大,因此,更加合理的做法是对网络流量进行行之有效的管理与控制。通过对占据大部分带宽的非关键业务流量进行控制,从而保证关键业务的带宽需求和服务质量,提高网络整体性能。
FPGA具有高性能、可编程等优点,很多高端网络流量处理系统都是基于FPGA实现的。基于FPGA的流量控制系统,可以实现纳秒级的精确流量控制,其基本流程大致可分为报文分类、流量控制和输出三个阶段。报文分类是指根据报文的关键域(如五元组),通过精确规则匹配或者掩码规则匹配,得到报文对应的策略号。流量控制是指根据报文分类结果,对报文进行分别流量控制。输出是指对报文执行相关动作并从相应端口输出至网络,被丢弃的报文不再转发。
现有的流控系统,大多是先将报文按一定规则分发到多个队列,再对各个队列分别进行流量控制。由于FPGA逻辑资源有限,能支持的队列数量较小,导致能实现的策略数目较少。除此之外,流量控制系统还面临处理带宽不足,流量控制策略不够灵活等问题。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种数据处理方法,能够减少系统资源的开销,提高系统对于数据流控的效率和灵活性。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种数据处理方法。
该数据处理方法包括:
根据策略号对输入数据流中的报文进行分组,分组后的各个报文在输入数据流中的位置不变,其中,属于同一分组的报文构成一分组报文;
根据预先设定的过滤规则,将不符合过滤规则的报文过滤,形成输出数据流。
其中,在分组报文的计数周期内,当分组报文对应的累加值大于等于分组报文对应的流控策略值的情况下,丢弃当前输入的报文。
此外,在分组报文的计数周期内,当分组报文对应的累加值小于分组报文对应的流控策略值的情况下,分组报文对应的累加值累加为原累加值与当前输入的报文的大小的和。
此外,在各个分组报文的计数周期初始时刻,将各个分组报文对应的累加值清零。
其中,各个分组报文的计数周期大小相同,初始时刻相同和/或不同。
根据本发明的另一方面,提供了一种数据处理装置,该装置包括:
分组模块,用于根据策略号对输入数据流中的报文进行分组,分组后的各个报文在输入数据流中的位置不变,其中,属于同一分组的报文构成一分组报文;
过滤模块,用于根据预先设定的过滤规则,将不符合过滤规则的报文过滤,形成输出数据流。
其中,过滤模块进一步包括:
丢弃单元,用于在分组报文的计数周期内,当分组报文对应的累加值大于等于分组报文对应的流控策略值的情况下,丢弃当前输入的报文。
此外,过滤模块可以包括:
累加单元,用于在分组报文的计数周期内,当分组报文对应的累加值小于分组报文对应的流控策略值的情况下,分组报文对应的累加值累加为原累加值与当前输入的报文的大小的和。
此外,过滤模块还可以包括:
清零单元,用于在各个分组报文的计数周期初始时刻,将各个分组报文对应的累加值清零。
其中,各个分组报文的计数周期大小相同,初始时刻相同和/或不同。
本发明通过根据报文的策略号对报文进行分组,分组后的报文在数据流中的位置不发生变化,由于这种虚拟队列的表现形式使得系统在流控时,不涉及对报文的分发和汇聚,因此不需要为每一种策略维护一个缓冲队列,减少了系统资源的开销。并且通过预定的过滤规则可以进一步减少片内RAM的开销,进一步增加流量控制策略的数量,从而大大提高了系统对于数据流控的效率和灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的数据处理方法的流程图;
图2是根据本发明实施例的数据处理方法的整体流程示意图;
图3是根据本发明一具体实施例的虚拟队列示意图;
图4是根据本发明一具体实施例的异步清零方法的流程示意图;
图5是根据本发明实施例的数据处理装置的框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种数据处理方法,能够减少系统资源的开销,提高系统对于数据流控的效率和灵活性。
如图1所示,根据本发明实施例的数据处理方法,包括:
步骤S101,根据策略号对输入数据流中的报文进行分组,分组后的各个报文在输入数据流中的位置不变,其中,属于同一分组的报文构成一分组报文;
步骤S103,根据预先设定的过滤规则,将不符合过滤规则的报文过滤,形成输出数据流。
其中,上述过滤规则可以包括如下内容:
在分组报文的计数周期内,当分组报文对应的累加值大于等于分组报文对应的流控策略值的情况下,丢弃当前输入的报文;
在分组报文的计数周期内,当分组报文对应的累加值小于分组报文对应的流控策略值的情况下,分组报文对应的累加值累加为原累加值与当前输入的报文的大小的和;
在各个分组报文的计数周期初始时刻,将各个分组报文对应的累加值清零。
其中,各个分组报文的计数周期大小相同,初始时刻相同和/或不同。
在一个具体的实施例中,如图2示出了该具体实施例的整体流程图。
报文从网口控制器PortCtrl进入FPGA后,首先进入协议解析模块PktParse,提取出报文的分类关键字(五元组)信息后,将分类关键字发送至后续模块进行报文分类,为了使流量控制策略更加灵活,系统采用了精确规则匹配和掩码规则匹配相结合的方式。
首先通过精确规则匹配模块ExactRuleMatch,计算出报文的五元组HASH值,精确地找到对应的流量控制策略。为了排除HASH冲突带来的错误,模块在设计时采用了五元组完整比较的方式,当发生冲突时,经过多次匹配,总能得到五元组完全匹配的规则。精确规则匹配存储在片外的QDR或者DDR中,每条规则唯一对应一个五元组,最大可以支持超过100万条规则。
在精确规则匹配模块匹配完成后,由掩码规则匹配模块MaskRuleMatch作进一步的查找。掩码规则匹配模块由三态内容寻址存储器TCAM实现,可以完成任意粒度的掩码规则匹配。完成后,由于报文的流量控制策略是通过精确规则和掩码规则两种规则进行匹配的,这时候可以根据用户定义的方式选择用户自己需要的流控策略,得到最终的流量控制策略号。
流量控制单元FlowCtrl负责对不同策略号的报文,分别进行流量控制。为了支持更多的策略,可以采用本发明的数据处理方法以“虚拟队列”的方式实现。除此之外,还对累加值的计数值清零操作进行了优化,通过异步清零的方式减少FPGA资源消耗。其中,通过“虚拟队列”及异步清零的方式实现流量控制将在后面作详细阐述。
上传模块UploadPkt负责将流控处理后的报文送至主机,供上层软件进行分析,分析结果以规则的方式,通过PCIeCtrl模块下发至精确规则匹配模块和掩码规则匹配模块,当首次传输报文的时候,两模块采用默认规则进行匹配。此后,将经过处理后的报文发送至发包模块SendPkt,由网口控制器送回链路,处理过程中丢弃的报文不再发送。
在流量控制单元FlowCtrl负责对不同策略号的报文,分别进行流量控制时。采用本发明的数据处理方法对数据流进行控制,其具体过程如下:
首先根据报文的策略号对报文进行分组,分组后的各个报文在输入数据流中的位置不变。如图3所示,为了方便理解,可以将其分组后的表现形式看作多条虚拟队列,在图3中,各个分组报文的队列都是虚拟的,并不需要对输入数据流进行报文分发和聚合处理,比如,在一输入数据流中,根据各个报文策略号ID的奇偶来进行分组,奇数ID为第一组,偶数ID为第二组,此时对报文的分组并不是真正的将奇数ID的报文从输入数据流中划分出去,而是对各个报文进行标识,让这些报文明确自己所在哪个队列中,因此该表现形式为“虚拟队列”并不是真正的对输入数据流中的报文进行分发从而可以减少系统资源的消耗。
每条虚拟队列都有一个虚拟队列号标识,每个报文根据自身的策略号ID选择进入不同的虚拟队列,在输入数据流的传输过程中,还有一个检测单元,用于根据预先设定的过滤规则将不符合该规则的报文丢弃,该检测单元存储有每条虚拟队列对应的过滤规则的关键参数,也即如图3所示,每条虚拟队列都有一个对应于自身的检测单元,用于丢弃不符合该条虚拟队列对应的过滤规则的报文。
上述检测单元的关键参数包括以下至少之一:
C:计数周期
B:在计数周期C内,已进入虚拟队列报文的累加值;在每个计数周期C的初始时刻,B被清零。
W:流控策略值,每个计数周期C内,进入虚拟队列报文的总长度B不能超过W,否则报文将被丢弃。
设计数周期C内进入的第i个数据包的长度为Li,第i个数据包允许进入虚拟队列的条件是:
B+Li≤W
如果上述条件不满足,第i个数据包将被丢弃。如果第i个数据包成功进入虚拟队列,则修改B=B+Li,否则保持B不变,直到下一个计数周期被清零。
流控系统只需为每个虚拟队列维护B和W两个值,而不用为每个策略维护一个真实的缓存队列,所占用的逻辑资源大大降低,能支持的策略数量大大增加。实现时,可以用片内RAM分别保存B和W,这样基于普通容量的FPGA芯片(如Xilinx公司的XC5VLX110T),便可实现超过1万条流量控制策略。
此外,在实现本发明的过程中,发明人发现,现有技术中对于累加值的清零处理都是多条流控策略同时进行清零的,并且在清零的过程中,流控系统将无法继续提供流控处理。随着策略数量的增加,清零的过程花费的时间也会成比例增加,在清零的过程中,不能进行限速操作,因此需要将报文缓存起来,需要浪费大量的存储空间
因此,本发明在对累加值B进行清零的时候采用“异步清零的方式”,即每条虚拟队列对应的累加值B进行异步清零处理。
如图4所示,在实现异步清零的时候只需要保证每条虚拟队列的计数周期相同,且在自己的计数周期的初始时刻已经完成了清零操作即可。也就是说,每条虚拟队列的计数周期相同即可,初始时刻可以相同也可以不同,只要在下一周期开始的时候已经完成了清零操作即可。这样就可以实现多条虚拟队列异步清零,在一条虚拟队列进行累加值清零的时候也不会影响其他的虚拟队列。
图4中只需要两个RAM分别存储累加值(LengthRam)和策略值(StrategyRam),当报文到达时,同时读取两个RAM,再进行比较,按照预先设定的过滤规则进行比较,将不符合过滤规则的报文丢弃。清零控制模块负责各累加值的清零操作,它异步地将各项清零。LengthRam采用双端口RAM实现,分别负责累加值的读出写入和清零操作,当新累加值写入和清零操作冲突时,只需要将清零操作适当延后几拍即可。
根据本发明的实施例,还提供了一种数据处理装置,如图5所示,该装置包括:
分组模块51,用于根据策略号对输入数据流中的报文进行分组,分组后的各个报文在输入数据流中的位置不变,其中,属于同一分组的报文构成一分组报文;
过滤模块52,用于根据预先设定的过滤规则,将不符合过滤规则的报文过滤,形成输出数据流。
其中,过滤模块进一步包括:
丢弃单元(未示出),用于在分组报文的计数周期内,当分组报文对应的累加值大于等于分组报文对应的流控策略值的情况下,丢弃当前输入的报文。
此外,过滤模块可以包括:
累加单元(未示出),用于在分组报文的计数周期内,当分组报文对应的累加值小于分组报文对应的流控策略值的情况下,分组报文对应的累加值累加为原累加值与当前输入的报文的大小的和。
清零单元(未示出),用于在各个分组报文的计数周期初始时刻,将各个分组报文对应的累加值清零。
其中,上述各个分组报文的计数周期大小相同,初始时刻相同和/或不同。
综上所述,借助于本发明的上述技术方案,本发明通过根据报文的策略号对报文进行分组,分组后的报文在数据流中的位置不发生变化,由于这种虚拟队列的表现形式使得系统在流控时,不涉及对报文的分发和汇聚,因此不需要为每一种策略维护一个缓冲队列,减少了系统资源的开销可以提供更高的带宽服务。并且通过预定的过滤规则实现累加值的异步清零,可以进一步减少片内RAM的开销,进一步增加流量控制策略的数量,从而大大提高了系统对于数据流控的效率和灵活性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种数据处理方法,其特征在于,包括:
根据策略号对输入数据流中的报文进行分组,分组后的各个报文在输入数据流中的位置不变,其中,属于同一分组的报文构成一分组报文;
根据预先设定的过滤规则,将不符合所述过滤规则的报文过滤,形成输出数据流;
其中,根据预先设定的过滤规则,将不符合所述过滤规则的报文过滤形成输出数据流,包括:在分组报文的计数周期内,当所述分组报文对应的累加值小于所述分组报文对应的流控策略值的情况下,所述分组报文对应的累加值累加为原累加值与当前输入的报文的大小的和;
根据预先设定的过滤规则,将不符合所述过滤规则的报文过滤形成输出数据流,包括:在各个分组报文的计数周期初始时刻,将各个分组报文对应的累加值清零;
各个分组报文的计数周期大小相同,初始时刻相同和/或不同。
2.根据权利要求1的所述方法,其特征在于,根据预先设定的过滤规则,将不符合所述过滤规则的报文过滤形成输出数据流,包括:
在分组报文的计数周期内,当所述分组报文对应的累加值大于等于所述分组报文对应的流控策略值的情况下,丢弃当前输入的报文。
3.一种数据处理装置,其特征在于,包括:
分组模块,用于根据策略号对输入数据流中的报文进行分组,分组后的各个报文在输入数据流中的位置不变,其中,属于同一分组的报文构成一分组报文;
过滤模块,用于根据预先设定的过滤规则,将不符合所述过滤规则的报文过滤,形成输出数据流;
其中,所述过滤模块进一步包括:累加单元,用于在分组报文的计数周期内,当所述分组报文对应的累加值小于所述分组报文对应的流控策略值的情况下,所述分组报文对应的累加值累加为原累加值与当前输入的报文的大小的和;
所述过滤模块进一步包括:清零单元,用于在各个分组报文的计数周期初始时刻,将各个分组报文对应的累加值清零;
各个分组报文的计数周期大小相同,初始时刻相同和/或不同。
4.根据权利要求3的所述装置,其特征在于,所述过滤模块进一步包括:
丢弃单元,用于在分组报文的计数周期内,当所述分组报文对应的累加值大于等于所述分组报文对应的流控策略值的情况下,丢弃当前输入的报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410488433.6A CN104243348B (zh) | 2014-09-22 | 2014-09-22 | 一种数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410488433.6A CN104243348B (zh) | 2014-09-22 | 2014-09-22 | 一种数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104243348A CN104243348A (zh) | 2014-12-24 |
CN104243348B true CN104243348B (zh) | 2018-03-23 |
Family
ID=52230725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410488433.6A Active CN104243348B (zh) | 2014-09-22 | 2014-09-22 | 一种数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104243348B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871573A (zh) * | 2015-01-20 | 2016-08-17 | 国家计算机网络与信息安全管理中心 | 一种报文分析过滤方法及装置 |
CN106953775A (zh) * | 2016-01-06 | 2017-07-14 | 中兴通讯股份有限公司 | 一种实现报文检错的方法及装置 |
CN109204193B (zh) * | 2018-10-12 | 2021-05-14 | 杭州小驹物联科技有限公司 | 一种快速识别汽车信号和参数的方法及系统 |
CN109525504A (zh) * | 2018-10-29 | 2019-03-26 | 杭州迪普科技股份有限公司 | 网络设备吞吐量限制、统计方法及装置 |
CN111181871B (zh) * | 2019-08-02 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 一种报文传输的方法及相关装置 |
CN112994983B (zh) * | 2021-04-01 | 2023-01-13 | 杭州迪普信息技术有限公司 | 流量统计方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035719A (zh) * | 2009-09-29 | 2011-04-27 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN102387082A (zh) * | 2011-11-25 | 2012-03-21 | 西安电子科技大学 | 基于流分类的分组流量控制系统及控制方法 |
CN102664803A (zh) * | 2012-04-23 | 2012-09-12 | 杭州华三通信技术有限公司 | 一种ef队列的实现方法和设备 |
CN102904823A (zh) * | 2012-10-23 | 2013-01-30 | 大连梯耐德网络技术有限公司 | 一种基于存储器的多用户多业务的精确流量控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103895A1 (en) * | 2000-12-04 | 2002-08-01 | Amplify.Net, Inc. | Graphical user interface for dynamic viewing of packet exchanges over computer networks |
-
2014
- 2014-09-22 CN CN201410488433.6A patent/CN104243348B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102035719A (zh) * | 2009-09-29 | 2011-04-27 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN102387082A (zh) * | 2011-11-25 | 2012-03-21 | 西安电子科技大学 | 基于流分类的分组流量控制系统及控制方法 |
CN102664803A (zh) * | 2012-04-23 | 2012-09-12 | 杭州华三通信技术有限公司 | 一种ef队列的实现方法和设备 |
CN102904823A (zh) * | 2012-10-23 | 2013-01-30 | 大连梯耐德网络技术有限公司 | 一种基于存储器的多用户多业务的精确流量控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104243348A (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104243348B (zh) | 一种数据处理方法和装置 | |
US8867559B2 (en) | Managing starvation and congestion in a two-dimensional network having flow control | |
US9444702B1 (en) | System and method for visualization of NoC performance based on simulation output | |
CN103493449B (zh) | 分组交换网络中的有效电路 | |
US9325637B2 (en) | System for performing distributed data cut-through | |
US9954771B1 (en) | Packet distribution with prefetch in a parallel processing network device | |
US9007920B2 (en) | QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes | |
US9042252B2 (en) | Inter-packet interval prediction learning algorithm | |
US10523599B2 (en) | Buffer sizing of a NoC through machine learning | |
CN108667898A (zh) | 使用外出镜像提供网元中的缓冲器内容的快照 | |
Bjurefors et al. | Congestion avoidance in a data-centric opportunistic network | |
US9185026B2 (en) | Tagging and synchronization for fairness in NOC interconnects | |
CN111181873A (zh) | 数据发送方法、装置、存储介质和电子设备 | |
US10298485B2 (en) | Systems and methods for NoC construction | |
US9374303B1 (en) | Method and apparatus for processing multicast packets | |
US9344384B2 (en) | Inter-packet interval prediction operating algorithm | |
Wu et al. | A low-cost deadlock-free design of minimal-table rerouted xy-routing for irregular wireless nocs | |
CN103491023B (zh) | 用于三维torus光电混合网络的路由方法 | |
Zheng et al. | Design and analysis of a parallel hybrid memory architecture for per-flow buffering in high-speed switches and routers | |
US10791058B2 (en) | Hierarchical enforcement of service flow quotas | |
CN102594670B (zh) | 多端口多流的调度方法、装置及设备 | |
US9258273B2 (en) | Duplicating packets efficiently within a network security appliance | |
Abd El-Baky | A tree-based algorithm for multicasting in 2D torus networks | |
CN106330702B (zh) | 适用于神经形态计算的多阶混合路由系统及其路由方法 | |
CN117135107B (zh) | 一种网络通信拓扑系统、路由方法、设备及介质 |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220727 Address after: 100089 building 36, courtyard 8, Dongbeiwang West Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |