汇聚分流方法及其相关设备与流程

文档序号:31770942发布日期:2022-10-12 06:44阅读:574来源:国知局
汇聚分流方法及其相关设备与流程

1.本技术实施例涉及计算机技术领域,尤其涉及一种汇聚分流方法及其相关设备。


背景技术:

2.近年来,以汇聚分流设备为核心的流量采集行业进入高速发展阶段,而汇聚分流设备就是其中的核心设备。
3.汇聚分流设备是对接入信号进行处理后再输出的设备,功能主要有流量汇聚、流量过滤、超高流量分流、流量转发、移动网信令解析、复制输出、负载均衡、报文过滤、切片、复制、去重、分流等,可以工作在移动网、城域网、互联网数据中心(idc,internet data center)等网络中。同时,汇聚分流设备在移动网络内容的监控、网络安全、idc内容的审计检测、电信增值业务设置等方面具有不可或缺的作用。
4.但是,当前主流的汇聚分流设备一般是由“交换单元”和“计算单元”组成。其中,“交换单元”的目的是提供多接口、不同速率的接入能力,同时根据交换芯片内缓存的初级流表进行匹配。如果需要进行高级过滤或高级处理时,就需要上送“计算单元”进行高级过滤或高级处理。因此,当需要高级处理时,“交换单元”无法将已经解析的报文数据上报给“计算单元”,导致“计算单元”还要重新进行报文解析,浪费中央处理器(cpu,central processing unit)算力。


技术实现要素:

5.本技术实施例提供了一种汇聚分流方法及其相关设备,用于加快数据包高级处理的速度。
6.本技术实施例第一方面提供了一种汇聚分流方法,应用于硬件交换单元,所述方法包括:
7.获取预先提取的待匹配数据;
8.将所述待匹配数据和预设流表进行匹配生成匹配结果;
9.根据所述匹配结果判断所述待匹配数据对应的第一数据包是否需要进行高级处理;
10.若是,获取预设自定义参数;
11.将所述预设自定义参数插入所述第一数据包生成第二数据包;
12.将所述第二数据包发送至硬件加速单元,以使得所述硬件加速单元对所述第二数据包进行高级处理。
13.可选地,所述获取预先提取的待匹配数据包括:
14.获取所述第一数据包;
15.根据预设解析规则对所述第一数据包进行解析以获取所述待匹配数据。
16.可选地,所述根据预设解析规则对所述第一数据包进行解析以获取所述待匹配数据之后,所述方法还包括:
17.若所述第一数据包中存在尚未解析的第一剩余数据,将所述第一剩余数据发送至大缓存单元;
18.接收所述大缓存单元间隔第一预设时长发送的所述第一剩余数据,并对所述第一剩余数据进行解析以获取所述待匹配数据。
19.可选地,所述将所述第二数据包发送至硬件加速单元包括:
20.将所述第二数据包及所述待匹配数据发送至所述硬件加速单元,以使得所述硬件加速单元根据所述待匹配数据对所述第二数据包进行高级处理。
21.本技术实施例第二方面提供了一种汇聚分流方法,应用于硬件加速单元,所述方法包括:
22.获取第二数据包;
23.将所述第二数据包解析,以获取预设自定义参数;
24.将所述预设自定义参数进行检测生成检测结果;
25.根据所述检测结果判断所述第二数据包是否需要进行高级处理;
26.若是,对所述第二数据包进行高级处理。
27.可选地,对所述第二数据包进行高级处理之后,所述方法还包括:
28.若所述第二数据包中存在尚未进行高级处理的第二剩余数据,将所述第二剩余数据发送至大缓存单元;
29.接收所述大缓存单元间隔第二预设时长发送的所述第二剩余数据,并对所述第二剩余数据进行高级处理。
30.可选地,所述获取第二数据包包括:
31.获取所述第二数据包及待匹配数据;其中,所述待匹配数据为根据预设解析规则对第一数据包进行解析后得到。
32.可选地,所述获取所述第二数据包及待匹配数据之后,所述方法还包括:
33.判断所述待匹配数据是否满足预设自定义规则;
34.若所述待匹配数据满足所述预设自定义规则,执行所述将所述第二数据包解析的步骤。
35.可选地,所述判断所述待匹配数据是否满足预设自定义规则之后,所述方法还包括:
36.当所述待匹配数据不满足所述预设自定义规则时,筛选所述第二数据包中不满足所述预设自定义规则的待匹配数据;
37.将所述第二数据包中不满足所述预设自定义规则的待匹配数据发送至计算单元,以使得所述计算单元对不满足所述预设自定义规则的待匹配数据进行高级处理。
38.可选地,所述对所述第二数据包进行高级处理包括:
39.当所述第二数据包需要进行高级处理时,根据所述待匹配数据对所述第二数据包进行高级处理。
40.本技术实施例第三方面提供了一种汇聚分流系统,应用于硬件交换单元,所述系统包括:
41.获取模块,用于获取预先提取的待匹配数据;
42.匹配模块,用于将所述待匹配数据和预设流表进行匹配生成匹配结果;
43.判断模块,用于根据所述匹配结果判断所述待匹配数据对应的第一数据包是否需要进行高级处理;
44.所述获取模块,还用于当所述待匹配数据对应的第一数据包需要进行高级处理时,获取预设自定义参数;
45.插入模块,用于将所述预设自定义参数插入所述第一数据包生成第二数据包;
46.发送模块,用于将所述第二数据包发送至硬件加速单元,以使得所述硬件加速单元对所述第二数据包进行高级处理。
47.可选地,所述系统还包括解析模块;
48.所述获取模块,具体用于获取所述第一数据包;
49.所述解析模块,用于根据预设解析规则对所述第一数据包进行解析以获取所述待匹配数据。
50.可选地,
51.所述发送模块,还用于当所述第一数据包中存在尚未解析的第一剩余数据时,将所述第一剩余数据发送至大缓存单元;
52.所述获取模块,还用于接收所述大缓存单元间隔第一预设时长发送的所述第一剩余数据,并对所述第一剩余数据进行解析以获取所述待匹配数据。
53.可选地,
54.所述发送模块,具体用于将所述第二数据包及所述待匹配数据发送至所述硬件加速单元,以使得所述硬件加速单元根据所述待匹配数据对所述第二数据包进行高级处理。
55.本技术实施例第三方面提供的一种汇聚分流系统用于执行第一方面所述的方法。
56.本技术实施例第四方面提供了一种汇聚分流系统,应用于硬件加速单元,所述系统包括:
57.获取模块,用于获取第二数据包;
58.解析模块,用于将所述第二数据包解析,以获取预设自定义参数;
59.检测模块,用于将所述预设自定义参数进行检测生成检测结果;
60.判断模块,用于根据所述检测结果判断所述第二数据包是否需要进行高级处理;
61.处理模块,用于当所述第二数据包需要进行高级处理时,对所述第二数据包进行高级处理。
62.可选地,所述系统还包括发送模块;
63.所述发送模块,用于当所述第二数据包中存在尚未进行高级处理的第二剩余数据时,将所述第二剩余数据发送至大缓存单元;
64.所述处理模块,还用于接收所述大缓存单元间隔第二预设时长发送的所述第二剩余数据,并对所述第二剩余数据进行高级处理。
65.可选地,
66.所述获取模块,具体用于获取所述第二数据包及待匹配数据;其中,所述待匹配数据为根据预设解析规则对第一数据包进行解析后得到。
67.可选地,所述系统还包括执行模块;
68.所述判断模块,还用于判断所述待匹配数据是否满足预设自定义规则;
69.所述执行模块,用于当所述待匹配数据满足所述预设自定义规则时,执行所述将
所述第二数据包解析的步骤。
70.可选地,所述系统还包括筛选模块及发送模块;
71.所述筛选模块,用于当所述待匹配数据不满足所述预设自定义规则时,筛选所述第二数据包中不满足所述预设自定义规则的待匹配数据;
72.所述发送模块,用于将所述第二数据包中不满足所述预设自定义规则的待匹配数据发送至计算单元,以使得所述计算单元对不满足所述预设自定义规则的待匹配数据进行高级处理。
73.可选地,
74.所述处理模块,具体用于当所述第二数据包需要进行高级处理时,根据所述待匹配数据对所述第二数据包进行高级处理。
75.本技术实施例第四方面提供的一种汇聚分流系统用于执行第二方面所述的方法。
76.本技术实施例第五方面提供了一种信息采集装置,包括:
77.中央处理器,存储器,输入输出接口,有线或无线网络接口以及电源;
78.所述存储器为短暂存储存储器或持久存储存储器;
79.所述中央处理器配置为与所述存储器通信,并执行所述存储器中的指令操作以执行第一方面所述的方法。
80.本技术实施例第六方面提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行第一方面所述的方法。
81.从以上技术方案可以看出,本技术实施例具有以下优点:
82.通过本技术实施例提出的一种汇聚分流方法,硬件交换单元根据待匹配数据判断待匹配数据对应的数据包是否需要进行高级处理,并将待匹配数据对应的数据包发送至硬件加速单元,使得硬件加速单元无需再对数据包进行解析,从而硬件加速单元可以直接对数据包进行高级处理,尽可能地加快了数据包高级处理的速度。
附图说明
83.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
84.图1为本技术实施例公开的一种汇聚分流系统的架构示意图;
85.图2为本技术实施例公开的一种应用于硬件交换单元的汇聚分流方法的流程示意图;
86.图3为本技术实施例公开的另一种应用于硬件交换单元的汇聚分流方法的流程示意图;
87.图4为本技术实施例公开的一种应用于硬件加速单元的汇聚分流方法的流程示意图;
88.图5为本技术实施例公开的另一种应用于硬件加速单元的汇聚分流方法的流程示意图;
89.图6为本技术实施例公开的一种汇聚分流方法的系统交互的流程示意图;
90.图7为本技术实施例公开的一种应用于硬件交换单元的汇聚分流系统的结构示意图;
91.图8为本技术实施例公开的一种应用于硬件加速单元的汇聚分流系统的结构示意图;
92.图9为本技术实施例公开的一种汇聚分流装置的结构示意图。
具体实施方式
93.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
94.需要说明的是,在本技术中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
95.汇聚分流设备是对接入信号进行处理后再输出的设备,功能主要有流量汇聚、流量过滤、超高流量分流、流量转发、移动网信令解析、复制输出、负载均衡、报文过滤、切片、复制、去重、分流等,可以工作在移动网、城域网、idc互联网数据中心等网络中。汇聚分流设备在移动网络内容的监控、网络安全、idc内容的审计检测、电信增值业务设置等方面具有不可或缺的作用。
96.例如,在金融生产网中,包括了交换核心、交换汇聚、业务区、海外业务区、互联网区、外联区、办公区、网管区、云网络区或托管区等,金融生产网中的各个服务区通过将端口镜像、无源分光、云流量采集、链路串接等功能所产生的flow流量或int流量发送至流量采集平台,对应的,也就是分流器接收到接入信号后,会对这些流量进行过滤、汇聚、复制、分流、负载均衡、打时戳、打标签、去标签、解封装、切片、去重、脱敏、隧道终结、隧道发送、ssl解密等操作,从而将该流量的经过处理后的实时报文、flow报文或int报文发送至可视化分析工具,从而进行最后的网络分析、业务分析、流量审计、流量回溯或态势感知等。
97.综上所述,分流器可以将多个交换机的流量汇聚在一起,然后将其中的流量分流至其他设备,从而使得其他设备可以进行病毒预警、入侵检测、流量回溯或网络分析等功能或操作。
98.但是,目前的汇聚分流设备都是基于硬件交换设备和上层的软件处理单元(计算单元)的架构实现。因此,导致交换芯片内部缓存小,流量过大时会导致丢包。同时软件也无法给数据包提供高精度的时间戳。再有,支持的匹配规则较少只有数k,支持的协议和处理功能较少,报文匹配速度慢。而且,当需要高级处理时,硬件交换单元无法将已经解析的报
文信息上报给计算单元,导致计算单元还要重新进行报文解析,浪费cpu算力。
99.由此,本技术实施例提出一种汇聚分流方法,用于加快数据包高级处理的速度。
100.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
101.请参阅图1,图1为本技术实施例公开的一种汇聚分流系统的架构示意图。包括硬件交换单元101、硬件加速单元102、计算单元103及大缓存单元104。其中,硬件加速单元102分别与硬件交换单元101、计算单元103和大缓存单元104通讯连接,硬件交换单元101也与大缓存单元104通讯连接。
102.为解决上述中所提到的问题,本技术实施例基于硬件交换单元101、硬件加速单元102、计算单元103的方案,其中,硬件加速单元102和硬件交换单元101共享外挂的大缓存单元104用于收包缓存。
103.其中,硬件加速单元102,一般为现场可编程门阵列(fpga,field programmable gate array)或者也可以是专用集成电路(asic,application specific integrated circuit)。其中,fpga是在可编程阵列逻辑pal、通用阵列逻辑gal等可编程器件的基础上进一步发展的产物。而asic是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。需要说明的是,此处不对硬件加速单元102是何种具体设备进行限制,后续也不再对此进行赘述。
104.硬件交换单元101一般为一种可编程交换芯片,可执行数据交换的功能,同时,不难理解的,由于硬件交换单元101需要从外界获取各种流量包,因此在硬件交换单元101上还接有以太网端口,从而硬件交换单元101可以通过该以太网端口获取到流量包等。具体此处并不对硬件交换单元101是何种具体设备进行限制,后续也不再对此进行赘述。需要补充的是,硬件交换单元101及硬件加速单元102均为硬件设备。
105.计算单元103一般为软件多核处理单元,具体的,可以理解为一种软件编程,在本技术实施例中,可以解析报文并处理。需要补充的是,计算单元103可以理解为一种软件。
106.大缓存单元104,可以为一种双倍速率同步动态随机存储器(ddr sdram,double datarate synchronous dynamic random access memory)。需要补充的是,双倍速率(ddr,double data rate),对应的,ddr sdram习惯称为ddr,其中,同步动态随机存取存储器(sdram,synchronous dynamic random access memory)。对应的,ddr sdram是double data rate sdram的缩写,是双倍速率同步动态随机存储器的意思。需要补充的是,大缓存单元104还可以是其他具体的硬件设备,具体此处不对大缓存单元104是何设备进行限制,后续也不再对此进行赘述。
107.请参阅图2,图2为本技术实施例公开的一种应用于硬件交换单元的汇聚分流方法的流程示意图。包括步骤201-步骤206。
108.201、获取预先提取的待匹配数据。
109.硬件交换单元先获取数据包中的待匹配数据。具体的,在本实施例中,待匹配数据可以是媒体存取控制位址(mac,media access control address)、虚拟局域网(vlan,virtual local area network)或网际互连协议地址(ip,internetprotocol)等,具体此处
并不对待匹配数据所携带的内容或格式进行限制,后续也不再对此进行赘述。
110.202、将待匹配数据和预设流表进行匹配生成匹配结果。
111.当硬件交换单元获取到待匹配数据后,就会将硬件交换单元预先设定好的流表(包含待匹配的key和需要的处理动作)同当前获取的待匹配数据进行匹配,从而得到匹配结果。
112.具体的,在本实施例中,硬件交换单元预设设定好的流表可以理解为一种匹配规则,例如l2-l4层的协议或规则。需要说明的是,l2层网络传输就是物理层和链路层;l3层就是物理层、链路层和网络层;l4层就是物理层、链路层、网络层及传输层。例如,对于l2-l4层的协议而言,比如地址解析协议(arp,address resolution protocol)、ip、网间控制报文协议(icmp,internet control messages protocol)、传输控制协议(tcp,transfer control protocol)或用户数据报协议(udp,user datagram protocol)等。还有应用层比如万维网应用协议(http,hypertext transfer protocol)、实时流协议(rtsp,real time streaming protocol)等。还有工业控制网和物联网的协议等。具体此处不对l2-l4层的协议的具体内容进行限制,后续也不再对此进行赘述。
113.对应的,匹配规则可以理解为五元组,具体的,五元组包括源ip地址,源端口,目的ip地址,目的端口和传输层协议,还需要补充的是,匹配规则还可以包括应用层协议、应用层内容、隧道类型、vlan id等等。具体此处不对匹配规则的具体规则内容进行限制,后续也不再对此进行赘述。
114.还需要补充的是,l2层交换机和l3层交换机都是基于端口地址的端到端的交换过程,虽然这种基于mac地址和ip地址的交换机技术,能够极大地提高各节点之间的数据传输率,但却无法根据端口主机的应用需求来自主确定或动态限制端口的交换过程和数据流量,即缺乏l4层智能应用交换需求。l4层交换机不仅可以完成端到端交换,还能根据端口主机的应用特点,确定或限制它的交换流量。简单地说,l4层交换机是基于传输层数据包的交换过程的,是一类基于tcp/ip协议应用层的用户应用交换需求的新型局域网交换机。l4层交换机支持tcp/udp第四层以下的所有协议,可识别至少80个字节的数据包包头长度,可根据tcp/udp端口号来区分数据包的应用类型,从而实现应用层的访问控制和服务质量保证。所以,与其说l4层交换机是硬件网络设备,还不如说它是软件网络管理系统。也就是说,第四层交换机是一类以软件技术为主,以硬件技术为辅的网络管理交换设备。
115.进一步地,基于步骤201可提取到待匹配的数据信息,当硬件交换单元检测到待匹配数据得到后,首先获取预先设置保存的流表,其中流表是包含待匹配的键对应的值和需要的处理动作以及匹配表,将该匹配表和提取到的匹配信息进行匹配后得到匹配结果。其中,需要说明的是,匹配结果可以理解为基础功能中基础过滤后的结果。
116.203、根据匹配结果判断待匹配数据对应的第一数据包是否需要进行高级处理。若是,执行步骤204。
117.当硬件交换单元获取到匹配结果后,也就是基础过滤后的结果后,就可以根据匹配结果判断待匹配数据对应的第一数据包是否是需要进行高级处理和/或高级过滤。如果待匹配数据对应的第一数据包需要进行高级处理,那么就执行步骤204。如果不需要进行高级处理和/或高级过滤,那么硬件交换单元就可以直接将第一数据包发送至硬件加速单元,从而使得硬件加速单元对第一数据包执行所需要的基础功能。
118.需要说明的是,本实施例中数据包可以理解为流量包,为方便后续理解,本实施例对于流量的描述均以数据包进行描述,后续不再对此进行赘述。
119.204、获取预设自定义参数。
120.当基础过滤后的结果需要进行高级处理时,硬件交换单元就首先获取预先设定好的自定义参数cpu header,也就是cpu头文件字符串,具体的,从芯片向cpu发数据包的时候,都会在原始报文前附加一个内部的header以便携带一些供cpu使用的信息,比如该报文的source port,virtual port等。需要说明的是,本实施例并不对自定义参数所携带的具体内容进行限制,后续也不再对此进行赘述。
121.205、将预设自定义参数插入第一数据包生成第二数据包。
122.当硬件交换单元获取到自定义参数cpu header时,就可以为已经经过基础过滤后的第一数据包插入自定义参数cpu header并填充相关信息,具体的,相关信息包括但不限于第一数据包的入口、第一数据包的类型、第一数据包的哈希值、收到第一数据包的时间、第一数据包下一步的处理需求等。其中,第一数据包的哈希值可由硬件交换单元记得得到。
123.当将预设自定义参数插入第一数据包后,便会生成第二数据包。
124.206、将第二数据包发送至硬件加速单元,以使得硬件加速单元对第二数据包进行高级处理。
125.当硬件交换单元获取到第二数据包后,就可以将第二数据包发送至硬件加速单元,从而使得硬件加速单元对第二数据包进行高级处理和/或高级过滤等功能。
126.通过本实施例提出的一种汇聚分流方法,硬件交换单元根据待匹配数据判断待匹配数据对应的数据包是否需要进行高级处理,并将待匹配数据对应的数据包发送至硬件加速单元,使得硬件加速单元无需再对数据包进行解析,从而硬件加速单元可以直接对数据包进行高级处理,尽可能地加快了数据包高级处理的速度。
127.为方便理解,下面对本技术实施例中应用于硬件交换单元的汇聚分流方法进行详细描述。请参阅图3,图3为本技术实施例公开的另一种应用于硬件交换单元的汇聚分流方法的流程示意图。包括步骤301-步骤309。
128.301、获取第一数据包。
129.硬件交换单元可以根据自身上的以太网接口获取到由交换机发送过来的数据包,在本实施例中,仅以其中一种数据包进行举例说明,但需要理解的是,硬件交换单元可以从多个不同的交换机中获取到多个不同的数据包,具体此处不对硬件交换单元可获取的数据包的数据内容或数量进行限制,后续也不再对此进行赘述。
130.在本实施例中,硬件交换单元获取第一数据包。
131.302、根据预设解析规则对第一数据包进行解析以获取待匹配数据。
132.当硬件交换单元的物理口获取到第一数据包后,就可以对第一数据包按照解析逻辑对收到的第一数据包进行解析,解析后便可以提取到待匹配数据,其中,需要说明的是,待匹配数据的具体内容可参阅图2中步骤201对于待匹配数据的描述,具体此处不进行赘述。
133.需要补充的是,当硬件交换单元获取到待匹配数据后,可以直接执行步骤305。若当规定时间内,硬件交换单元未将第一数据包解析完成或又获取到其他数据包,那么就选择执行步骤303。
134.需要补充的,在本实施例中,规定时间的时长可以根据硬件交换单元的设备性能进行设置,也可以根据数据包的解析速度进行设置,例如,可以设置为1秒,也可以设置为2秒等,本实施例并不对规定时间的具体时长进行限制,后续也不再对此进行赘述。
135.303、若第一数据包中存在尚未解析的第一剩余数据,将第一剩余数据发送至大缓存单元。
136.当第一数据包中还存在还未被硬件交换单元解析的剩余数据的时候,硬件交换单元就可以将此时未被解析的剩余数据通过通道发送至大缓存单元,从而通过外挂大缓存增加收包缓存,实现无丢包。
137.进一步的,当硬件交换单元正在对第一数据包进行解析时,硬件交换单元又获取到第三数据包,那么硬件交换单元也可以将第三数据包发送至大缓存单元,从而将处理不过来的数据包进行保存。
138.304、接收大缓存单元间隔第一预设时长发送的第一剩余数据,并对第一剩余数据进行解析以获取待匹配数据。
139.当大缓存单元获取到第一剩余数据后,就可以间隔一定时间将该第一剩余数据再返回发送给硬件交换单元。然后,硬件交换单元就可以再对第一剩余数据进行解析,从而获取到待匹配数据。需要补充的是,本实施例并不对第一预设时长进行限制,可以根据硬件交换单元的设备性能进行设置,也可以根据数据包的解析速度进行设置,例如,可以设置为1秒,也可以设置为2秒等,本实施例并不对第一预设时长的具体时长进行限制,后续也不再对此进行赘述。
140.进一步的,当大缓存单元获取到的是第三数据包,那么大缓存单元就是将第三数据包发送至硬件交换单元,从而硬件交换单元又可以执行获取数据包的过程,从而最终获得待匹配数据,也就是执行步骤302。
141.305、将待匹配数据和预设流表进行匹配生成匹配结果。
142.306、根据匹配结果判断待匹配数据对应的第一数据包是否需要进行高级处理。若是,执行步骤307。
143.307、获取预设自定义参数。
144.308、将预设自定义参数插入第一数据包生成第二数据包。
145.本实施例中步骤305-步骤308与图2中步骤202-步骤205类似,具体此处不对具体执行过程进行赘述。
146.309、将第二数据包发送至硬件加速单元,以使得硬件加速单元对第二数据包进行高级处理。
147.本实施例中步骤309与图2中步骤206类似,具体此处不对具体执行过程进行赘述。但需要补充的是,硬件交换单元还会将待匹配数据,也就是l2-l4层的解析结果和第二数据包一起上送到硬件加速单元中。
148.通过本实施例提出的一种汇聚分流方法,硬件交换单元根据待匹配数据判断待匹配数据对应的数据包是否需要进行高级处理,并将待匹配数据对应的数据包以及待匹配数据发送至硬件加速单元,使得硬件加速单元无需再对数据包进行解析,从而硬件加速单元可以直接对数据包进行高级处理,同时,硬件交换单元还可以将为解析完成的数据包发送给大缓存单元,尽可能地加快了数据包高级处理的速度,也降低了丢包率。
149.请参阅图4,图4为本技术实施例公开的一种应用于硬件加速单元的汇聚分流方法的流程示意图。包括步骤401-步骤405。
150.401、获取第二数据包。
151.硬件加速单元通过通道获取到由硬件交换单元发送的第二数据包。
152.402、将第二数据包解析,以获取预设自定义参数。
153.当硬件加速单元收到第二数据包时,硬件加速单元就可以对第二数据包进行解析并提取自定义参数cpu header并获取到对应的相关信息。具体的,相关信息包括但不限于第一数据包的入口、第一数据包的类型、第一数据包的哈希值、收到第一数据包的时间、第一数据包下一步的处理需求等。其中,第一数据包的哈希值可由硬件交换单元记得得到。
154.403、将预设自定义参数进行检测生成检测结果。
155.基于获取到的第二数据包,硬件加速单元可以根据预设的自定义参数cpu header对第二数据包进行检测,从而生成检测结果。
156.具体的,该检测结果可以是预设万维服务程序上用于指定信息位置的表示方法(url,uniform resource locator)地址库中的高级处理数据,此处以获取预设url地址库中的高级处理信息进行具体说明,具体的高级过滤包括但不限于url过滤、负载过滤、dpi分析、针对移动的信令关联,高级过滤或高级处理包括但不限于针对数据包的修改、隧道封装或解封装。
157.404、根据检测结果判断第二数据包是否需要进行高级处理。若是,执行步骤405。
158.当获取到对应的检测结果后,硬件加速单元可以根据检测结果判断第二数据包是否需要进行高级处理。
159.具体的,硬件加速单元从第二数据包中检测是否需要进行某种特殊的高级过滤和/或高级处理,并跳过所记录各层头偏移的长度(硬件加速单元不用再做基础解析了),并根据特殊要求对第二数据包进行处理。
160.405、对第二数据包进行高级处理。
161.当确定第二数据包需要进行高级处理时,硬件加速单元就对第二数据包进行高级处理。具体的,硬件加速单元还可以提供基础报文过滤功能和报文高级处理功能。需要说明的是,流量数据在传输处理过程中,是以报文形式存在的,后续不再对报文的含义进行赘述。
162.需要补充的是,硬件加速单元在对第二数据包进行高级处理的时候,硬件加速单元还可以给报文提供高精度的时间戳,例如,时间戳(秒):1530027865;时间戳(毫秒):1530027865231;时间戳(纳秒):1530027865231834600。高精度的时间戳的形式其实就是表示时间的数字。需要说明的是,本实施例并不对时间戳的具体数值进行限制,也不对硬件加速单元给报文提供何种精度的时间戳进行限制,后续也不再对此进行赘述。
163.还需要补充的是,当硬件加速单元对第二数据包进行高级处理时,也就是硬件加速单元实现高速报文匹配时,可以支持更多的匹配规则和协议,提供功能丰富的基础报文过滤功能和报文高级处理功能。具体的,匹配规则和协议可参阅图2中步骤202对于匹配规则和协议的描述。高级处理功能可以是加密报文分析、高精度时间戳、报文脱敏、元数据输出等。具体此处并不对硬件加速单元执行何种高级处理功能进行限制,后续也不再对此进行赘述。
164.但需要理解的是,硬件加速单元所执行的基础功能可以是:1、流量汇聚、过滤、复制、转发;2、五元组/七元组的报文过滤;3、mac地址过滤;4、tcp标志位过滤;5、关键字过滤;6、兼容ipv4/ipv6;7、负载均衡;8、失效分担;9、添加/删除vlan标签;10、流量统计/差错统计/命中统计;11、报文切片等。
165.硬件加速单元所执行的高级功能可以是:1、vxlan/mpls/erspan解封装;2、纳秒级时间戳;3、隧道终结;4、隧道发送;5、报文去重;6、报文解封装;7、报文脱敏;8、元数据输出;9、报文捕获等。
166.同时,硬件加速单元还可以进行拓展,例如可以执行ssl/tls报文解密的功能。
167.通过本实施例提出的一种汇聚分流方法,硬件加速单元无需再对数据包进行解析,可以直接实现数据包的高级处理,提升了方案的可实现性。
168.为方便理解,下面对本技术实施例中应用于硬件加速单元的汇聚分流方法进行详细描述。请参阅图5,图5为本技术实施例公开的另一种应用于硬件加速单元的汇聚分流方法的流程示意图。包括步骤501-步骤510。
169.501、获取第二数据包及待匹配数据。
170.本实施例中步骤501与图4中步骤401类似,具体此处不对具体执行过程进行赘述。但需要说明的是,硬件加速单元还可以获取到硬件交换单元以对第一数据包解析完成后的待匹配数据。
171.502、判断待匹配数据是否满足预设自定义规则。若是,执行步骤503;若否,执行步骤504。
172.当硬件加速单元获取到待匹配数据后,就会判断该待匹配数据是否满足预设的自定义规则,对应的,该自定义规则主要是根据硬件加速单元的能力设置的,比如不支持某些车联网、物联网的协议或应用,就可以将该协议或者应用设置为自定义规则,当待匹配数据不带有上述所描述的协议或应用,也就是满足预设自定义规则,就执行步骤503;若带有上述所描述的协议或应用,也就是不满足预设自定义规则,就执行步骤503。
173.503、将第二数据包解析,以获取预设自定义参数。
174.本实施例中步骤503与图4中步骤402类似,具体此处不对具体执行过程进行赘述。但需要说明的是,当执行步骤503后,直接执行步骤506,而不是执行步骤504。
175.504、筛选第二数据包中不满足预设自定义规则的待匹配数据。
176.硬件加速单元筛选出第二数据包中不满足预设自定义规则的待匹配数据,也就是携带有硬件加速单元不支持的协议或应用的数据,对应的,也就是不满足预设自定义规则的待匹配数据。
177.505、将第二数据包中不满足预设自定义规则的待匹配数据发送至计算单元,以使得计算单元对不满足预设自定义规则的待匹配数据进行高级处理。
178.当硬件加速单元筛选出不满足预设自定义规则的待匹配数据后,就会将这些待匹配数据发送至计算单元,从而使得计算单元对不满足预设自定义规则的待匹配数据进行高级处理,对应的,由于计算单元为一种软件,所以也可以是一种软件处理。
179.需要补充的是,由于软件灵活,开发较快,但是性能不好。硬件不灵活,开发较慢,但性能好。因此,硬件主要执行高级功能,软件可以执行其余部分的功能。
180.506、将预设自定义参数进行检测生成检测结果。
181.507、根据检测结果判断第二数据包是否需要进行高级处理。若是,执行步骤508。
182.本实施例中步骤506-步骤507与图4中步骤403-步骤404类似,具体此处不对具体执行过程进行赘述。
183.508、根据待匹配数据对第二数据包进行高级处理。
184.本实施例中步骤508与图4中步骤405类似,具体此处不对具体执行过程进行赘述。但需要说明的是,硬件加速单元可以根据获取到的待匹配数据确定第二数据包所需要进行何种高级处理功能,从而使得硬件加速单元无需再次对数据包进行解析,可以直接根据待匹配数据对第二数据包进行高级处理。
185.509、若第二数据包中存在尚未进行高级处理的第二剩余数据,将第二剩余数据发送至大缓存单元。
186.当硬件加速单元在规定时长对第二数据包进行高级处理的时候,仍存在尚未进行高级处理的剩余数据,那么硬件加速单元就可以将此时未进行高级处理的剩余数据,也就是第二剩余数据发送至大缓存单元,从而通过外挂的大缓存单元增加收包缓存,实现无丢包。
187.进一步的,当硬件加速单元正在对第二数据包进行高级处理时,硬件加速单元又获取到第四数据包,那么硬件加速单元也可以将第四数据包发送至大缓存单元,从而将处理不过来的数据包进行保存。
188.需要补充的是,在本实施例中,规定时间的时长可以根据硬件交换单元的设备性能进行设置,也可以根据数据包的解析速度进行设置,例如,可以设置为1秒,也可以设置为2秒等,本实施例并不对规定时间的具体时长进行限制,后续也不再对此进行赘述。
189.510、接收大缓存单元间隔第二预设时长发送的第二剩余数据,并对第二剩余数据进行高级处理。
190.当大缓存单元获取到第二剩余数据后,就可以间隔一定时间将该第二剩余数据再返回发送给硬件加速单元。然后,硬件加速单元就可以再对第二剩余数据进行高级处理。需要补充的是,本实施例并不对第二预设时长进行限制,可以根据硬件加速单元的设备性能进行设置,也可以根据数据包的高级处理速度进行设置,例如,可以设置为1秒,也可以设置为2秒等,本实施例并不对第二预设时长的具体时长进行限制,后续也不再对此进行赘述。
191.进一步的,当大缓存单元获取到的是第四数据包,那么大缓存单元就会将第四数据包发送至硬件加速单元,从而硬件加速单元又可以执行获取数据包的过程,也就是执行步骤501。
192.为方便理解,下面将结合大缓存单元、硬件加速单元、硬件交换单元及计算单元对本技术实施例提出的一种汇聚分流方法进行描述。请参阅图6,图6为本技术实施例公开的一种汇聚分流方法的系统交互的流程示意图。包括步骤601-步骤617。
193.601、硬件交换单元获取第一数据包。
194.602、硬件交换单元根据预设解析规则对第一数据包进行解析以获取待匹配数据。
195.603、若第一数据包中存在尚未解析的第一剩余数据,硬件交换单元将第一剩余数据发送至大缓存单元。
196.604、硬件交换单元接收大缓存单元间隔第一预设时长发送的第一剩余数据,并对第一剩余数据进行解析以获取待匹配数据。
197.605、硬件交换单元将待匹配数据和预设流表进行匹配生成匹配结果。
198.606、硬件交换单元根据匹配结果判断待匹配数据对应的第一数据包是否需要进行高级处理。
199.607、硬件交换单元获取预设自定义参数。
200.608、硬件交换单元将预设自定义参数插入第一数据包生成第二数据包。
201.609、硬件交换单元将第二数据包及待匹配数据发送至硬件加速单元,以使得硬件加速单元对第二数据包进行高级处理。
202.本实施例中步骤601-步骤609与图3中步骤301-步骤309类似,具体此处不对具体执行过程进行赘述。但需要说明的是,本实施例,执行的具体方式类似,但是可根据步骤执行的实际情况得到具体的执行主体。例如,对于步骤603与步骤604而言,执行主体可以是大缓存单元。那么,步骤603也可以理解为大缓存单元获取硬件交换单元发送的第一剩余数据,对于步骤604而言,那么就是大缓存单元向硬件交换单元发送第一剩余数据,以使得硬件交换单元对第一剩余数据进行解析以获取待匹配数据。为方便理解,后续不再对执行主体的变化所导致的技术效果进行详细说明。
203.610、硬件加速单元判断待匹配数据是否满足预设自定义规则。若否,执行步骤611;若是,执行步骤612。
204.611、硬件加速单元将第二数据包中不满足预设自定义规则的待匹配数据发送至计算单元,以使得计算单元对不满足预设自定义规则的待匹配数据进行高级处理。
205.612、硬件加速单元将第二数据包中不满足预设自定义规则的待匹配数据发送至计算单元,以使得计算单元对不满足预设自定义规则的待匹配数据进行高级处理。
206.613、硬件加速单元将预设自定义参数进行检测生成检测结果。
207.614、硬件加速单元根据检测结果判断第二数据包是否需要进行高级处理。若是,执行步骤615。
208.615、硬件加速单元根据待匹配数据对第二数据包进行高级处理。
209.616、若第二数据包中存在尚未进行高级处理的第二剩余数据,硬件加速单元将第二剩余数据发送至大缓存单元。
210.617、硬件加速单元接收大缓存单元间隔第二预设时长发送的第二剩余数据,并对第二剩余数据进行高级处理。
211.本实施例中步骤610-步骤617与图5中步骤502-步骤510类似,具体此处不对具体执行过程进行赘述。但需要说明的是,步骤611中所执行的步骤可参阅图5中步骤504-步骤505,具体此处不做赘述。
212.还需要补充的是,硬件加速单元和计算单元呈现一致性互联(coherent interconnect),也就是说,硬件加速单元对于数据包的处理状态可以同步给计算单元,从而有效地减少计算单元上的计算力消耗和内存消耗。同时,硬件加速单元可以通过与计算单元的连接通道,实现对于数据包的解密(crypto)。为方便描述,后续不再对此进行赘述。
213.通过本技术实施例提出的一种汇聚分流方法,可以通过外挂大缓存增加收包缓存,从而实现无丢包。同时,硬件加速单元给报文提供高精度的时间戳。而且,硬件加速单元实现高速报文匹配,支持更多的匹配规则和协议,提供功能丰富的基础报文过滤功能和报文高级处理功能。还有,硬件交换单元的解析结果上报给硬件加速单元,硬件加速单元无需
重复解析报文。本方案由于使用了硬件加速单元,利用芯片的硬件加速单元的可编程性使得数据包在硬件加速单元上的处理状态可以同步给计算单元,从而有效地减少计算力消耗,内存消耗,提高数据转发效率。
214.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
215.通过本技术实施例提出的一种汇聚分流方法,通过基于计算单元、硬件加速单元、硬件交换单元及大缓存单元的方案,通过外挂的大缓存单元增加收包缓存,从而实现无丢包。同时,硬件加速单元可以给报文提供高精度的时间戳,而且硬件加速单元还可以实现高速报文匹配,支持更多的匹配规则和协议,提供功能丰富的基础报文过滤功能和报文高级处理功能,并且硬件交换单元的解析结果上报给硬件加速单元,硬件加速单元无需重复解析报文,尽可能地的减少了cpu的算力,增加了方案的可实现性。
216.若方案涉及敏感信息(如用户信息、企业信息),则应当说明针对敏感信息的收集、使用和处理需要遵守相关国家和地区的法律法规和标准,且需要在相应主体(如用户或企业等)许可或同意的情况下进行。
217.下面对本技术实施例中的一种汇聚分流装置的结构进行描述,请参阅图7,图7为本技术实施例公开的一种应用于硬件交换单元的汇聚分流系统的结构示意图。
218.获取模块701,用于获取预先提取的待匹配数据;
219.匹配模块702,用于将待匹配数据和预设流表进行匹配生成匹配结果;
220.判断模块703,用于根据匹配结果判断待匹配数据对应的第一数据包是否需要进行高级处理;
221.获取模块701,还用于当待匹配数据对应的第一数据包需要进行高级处理时,获取预设自定义参数;
222.插入模块704,用于将预设自定义参数插入第一数据包生成第二数据包;
223.发送模块705,用于将第二数据包发送至硬件加速单元,以使得硬件加速单元对第二数据包进行高级处理。
224.示例性地,系统还包括解析模块706;
225.获取模块701,具体用于获取第一数据包;
226.解析模块706,用于根据预设解析规则对第一数据包进行解析以获取待匹配数据。
227.示例性地,
228.发送模块705,还用于当第一数据包中存在尚未解析的第一剩余数据时,将第一剩余数据发送至大缓存单元;
229.获取模块701,还用于接收大缓存单元间隔第一预设时长发送的第一剩余数据,并对第一剩余数据进行解析以获取待匹配数据。
230.示例性地,
231.发送模块705,具体用于将第二数据包及待匹配数据发送至硬件加速单元,以使得硬件加速单元根据待匹配数据对第二数据包进行高级处理。
232.下面对本技术实施例中的另一种汇聚分流装置的结构进行描述,请参阅图8,图8为本技术实施例公开的一种应用于硬件加速单元的汇聚分流系统的结构示意图。
233.获取模块801,用于获取第二数据包;
234.解析模块802,用于将第二数据包解析,以获取预设自定义参数;
235.检测模块803,用于将预设自定义参数进行检测生成检测结果;
236.判断模块804,用于根据检测结果判断第二数据包是否需要进行高级处理;
237.处理模块805,用于当第二数据包需要进行高级处理时,对第二数据包进行高级处理。
238.示例性地,系统还包括发送模块808;
239.发送模块808,用于当第二数据包中存在尚未进行高级处理的第二剩余数据时,将第二剩余数据发送至大缓存单元;
240.处理模块805,还用于接收大缓存单元间隔第二预设时长发送的第二剩余数据,并对第二剩余数据进行高级处理。
241.示例性地,
242.获取模块801,具体用于获取第二数据包及待匹配数据;其中,待匹配数据为根据预设解析规则对第一数据包进行解析后得到。
243.示例性地,系统还包括执行模块806;
244.判断模块804,还用于判断待匹配数据是否满足预设自定义规则;
245.执行模块806,用于当待匹配数据满足预设自定义规则时,执行将第二数据包解析的步骤。
246.示例性地,系统还包括筛选模块807及发送模块808;
247.筛选模块807,用于当待匹配数据不满足预设自定义规则时,筛选第二数据包中不满足预设自定义规则的待匹配数据;
248.发送模块808,用于将第二数据包中不满足预设自定义规则的待匹配数据发送至计算单元,以使得计算单元对不满足预设自定义规则的待匹配数据进行高级处理。
249.示例性地,
250.处理模块805,具体用于当第二数据包需要进行高级处理时,根据待匹配数据对第二数据包进行高级处理。
251.下面请参阅图9,本技术实施例公开的一种汇聚分流装置的结构示意图包括:
252.中央处理器901,存储器905,输入输出接口904,有线或无线网络接口903以及电源902;
253.存储器905为短暂存储存储器或持久存储存储器;
254.中央处理器901配置为与存储器905通信,并执行存储器905中的指令操作以执行前述图2至图6所示实施例中的方法。
255.本技术实施例还提供一种芯片系统,其特征在于,芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行前述图2至图6所示实施例中的方法。
256.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
257.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
258.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
259.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
260.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1