一种基于eBPF的流量整形优化方法与流程
未命名
10-18
阅读:148
评论:0
一种基于ebpf的流量整形优化方法
技术领域
1.本发明涉及通信技术领域,尤其涉及一种基于ebpf的流量整形优化方法。
背景技术:
2.随着互联网的快速发展和普及,人们对网络带宽和网络性能的需求不断增加。由于网络资源是有限的,其中某些资源可能被一些特定的应用程序或用户高度占用,导致其他应用程序或用户的网络使用体验受到影响,产生网络拥塞。网络拥塞指的是网络中的流量超过了网络的容量,导致数据传输性能下降、延迟增加和数据包丢失。
3.为了解决这一问题,需要对网络流量进行管理和整形。流量整形的目标是合理分配和控制网络带宽,通过控制和调整数据的传输速率,确保关键应用程序和服务能够得到优先满足,同时限制或控制其他流量,避免网络拥塞的产生,保障网络的稳定性、公平性和安全性。
4.当前实现流量整形的方法仍存在各种缺点,通过硬件网络设备实施流量整形价格较为昂贵,网络数据的采集效率及网络异常的检测效率低下,根据具体的网络环境和需求进行配置算法及策略的难度较高,难以根据动态变化的网络流量快速调整整形策略。
技术实现要素:
5.为了克服上述技术缺陷,本发明的目的在于提供一种基于ebpf的流量整形优化方法。
6.本发明公开了一种基于ebpf的流量整形优化方法,包括以下步骤:
7.客户端接收应用程序发送的请求,执行内核上加载的ebpf程序,所述ebpf程序获取所述请求的信息,并根据所述信息获取对所述请求所传输的数据包的采样规则;
8.所述ebpf程序根据所述采样规则对所述数据包进行采样以获得采样数据,并根据所述采样数据获取所述数据包的流量特征,所述流量特征包括多个指标;
9.所述ebpf程序中内嵌决策规则库,所述决策规则库包括所述多个指标各自相对于决策数值的权重、决策数值与第一安全标识的对应关系,所述第一安全标识为正常流量或异常流量;
10.将所述流量特征推送至所述决策规则库,计算获取所述数据包的决策数值,并根据所述决策数值为所述数据包匹配第一安全标识;
11.当所述第一安全标识为所述正常流量时,将所述数据包发送至服务器,完成对所述请求的决策响应;
12.当所述第一安全标识为所述异常流量时,将所述数据包丢弃,完成对所述请求的决策响应。
13.优选地,还包括以下步骤:
14.所述第一安全标识还为疑似异常流量,当所述第一安全标识为疑似异常流量时,将所述流量特征推送至预先训练的人工智能决策模型,所述人工智能决策模型通过接口接
入所述ebpf程序;
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.采用加载于内核的ebpf程序完成流量整形,对应用程序服务无任何入侵,减少程序依赖和运行负担;
49.通过令牌桶算法与设置缓存区,对突发的大规模流量进行整形,使流量趋于平滑,并对业务进行分级调整,保证重要业务的优先正常访问;
50.对数据包进行动态采样获得流量特征于决策规则库中进行匹配,并使用人工智能检测模型作为补充,能够精准高效地检测异常流量并丢弃相应数据包,避免遭受网络攻击。
附图说明
51.图1为本发明所提供的一种基于ebpf的流量整形优化方法的流程示意图;
52.图2为本发明所提供的一种基于ebpf的流量整形优化方法的流程示意图;
53.图3为本发明所提供的一种基于ebpf的流量整形优化方法的流程示意图。
具体实施方式
54.以下结合附图与具体实施例进一步阐述本发明的优点。
55.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
56.在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
57.应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
58.在本发明的描述中,需要理解的是,术语“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
59.在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
60.在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
61.如图1所示,本发明公开了一种基于ebpf的流量整形优化方法,包括以下步骤:
62.s100、客户端接收应用程序发送的请求,执行内核上加载的ebpf程序,ebpf程序获取请求的信息,并根据信息获取对请求所传输的数据包的采样规则。
63.具体而言,预先编写一ebpf程序,可以使用ebpf汇编语言或者ebpf特有的c语言进行编写;使用编译器(例如llvm、cl ang等),将ebpf程序编译成ebpf字节码;将ebpf字节码加载到客户端的内核,并对其进行安全验证和编译成对应的本地机器码,并将ebpf机器码加载到内核的运行路径上;当客户端接收应用程序发送的请求时,触发绑定的回调函数以
执行其内核上加载的ebpf程序。
64.ebpf程序获取请求的信息,所述信息包括但不限于请求的源信息、请求的目标信息、请求的特征信息中的一项或多项。请求的源信息包括但不限于请求源ip信息、请求源地理信息、请求源代理信息中的一项或多项;请求的目标信息包括但不限于请求目标名称、请求目标端口、请求目标ip、请求方法中的一项或多项;请求的特征信息包括但不限于请求协议类型、请求参数、请求头中的一项或多项。
65.ebpf程序根据所获取的请求的信息,确定对请求所传输的数据包的采样规则。可以通过业务分类、请求协议分类、请求源分类中的一种分类方式对请求进行分类,并为不同类型的请求的数据包设置不同的采样规则。例如,通过业务分类对请求进行分类时,对于支付业务的请求所传输的数据包的采样规则为采样其中90%的数据,对于聊天业务的请求所传输的数据包的采样规则为采样其中60%的数据,使对应用程序中相对核心的业务的数据包所获取的流量特征更为全面。
66.s200、ebpf程序根据采样规则对数据包进行采样以获得采样数据,并根据采样数据获取数据包的流量特征,流量特征包括多个指标。
67.例如,采用如前所述的业务分类方式获取采样规则,确定当前请求为属于支付业务的请求,对该请求所传输的数据包采样其中90%的数据,得到采样数据,并从采样数据中获取该数据包的流量特征。
68.s300、将流量特征推送至所述决策规则库,计算获取数据包的决策数值,并根据决策数值为数据包匹配第一安全标识。
69.具体而言,所述ebpf程序中内嵌一决策规则库,决策规则库内记录多个规则,包括指标各自相对于决策数值的权重、决策数值与第一安全标识的对应关系,所述第一安全标识为正常流量或异常流量。根据前述步骤自采样数据中获取的数据包的流量特征,以及决策规则库内各个指标相对于决策数值的权重,计算数据包的一决策数值。并且决策规则库内记录决策数值与第一安全标识的对应关系,即决策数值的不同数值范围分别对应何种第一安全标识。根据计算所得的数据包的决策数值,匹配该数据包的第一安全标识。可以理解的是,通过决策数值量化数据包的异常性,并根据决策数值为数据包加注表示正常流量或异常流量的第一安全标识。
70.s410、当第一安全标识为正常流量时,将数据包发送至服务器,完成对请求的决策响应。
71.可以理解的是,当数据包所匹配到的第一安全标识为正常流量时,也即决策规则库判断该数据包不存在异常,可以正常通过,将数据包发送至服务器,完成对请求的决策响应。
72.s420、当第一安全标识为异常流量时,将数据包丢弃,完成对请求的决策响应。
73.可以理解的是,当数据包所匹配到的第一安全标识为异常流量时,也即决策规则库判断该数据包存在异常,若将该数据包发送至服务器可能会导致系统遭受攻击,因此将该数据包丢弃,完成对请求的决策响应。
74.优选地,如图2所示,还包括以下步骤:
75.s430、当第一安全标识为疑似异常流量时,将流量特征推送至预先训练的人工智能决策模型,人工智能决策模型输出数据包的第二安全标识。
76.具体而言,第一安全标识还为疑似异常流量,决策数据库中的第一安全标识除正常流量、异常流量外,还包括疑似异常流量,当数据包的决策数值所处的数值范围所匹配到的第一安全标识为疑似异常流量时,表示决策数据库无法直接判断该数据包是否存在异常,因此将数据包的流量特征进一步推送至预先训练的人工智能决策模型。人工智能决策模型通过接口接入ebpf程序。
77.其中,第二安全标识为正常流量或异常流量。也即,人工智能决策模型根据所输入的数据包的流量特征,进行分析与推论,对数据包进行分类,分类结果为正常流量或异常流量,即数据包的第二安全标识。
78.s510、当第二安全标识为正常流量时,将数据包发送至服务器,完成对请求的决策响应。
79.可以理解的是,当数据包所匹配到的第二安全标识为正常流量时,也即人工智能决策模型判断该数据包不存在异常,可以正常通过,将数据包发送至服务器,完成对请求的决策响应。
80.s520、当第二安全标识为所述异常流量时,将数据包丢弃,完成对所述请求的决策响应。
81.可以理解的是,当数据包所匹配到的第二安全标识为异常流量时,也即人工智能决策模型该数据包存在异常,若将该数据包发送至服务器可能会导致系统遭受攻击,因此将该数据包丢弃,完成对请求的决策响应。
82.优选地,流量特征中的多个指标包括但不限于传输速率、流量大小、传输延迟、攻击字符和传输协议类型中的一项或多项。具体地,在决策规则库中对多个指标设置不同的权重,根据当前所传输的数据包的流量特征,得到该数据包的各指标的具体数值,根据各指标的具体数值及相应权重进行加权求和,得到该数据包的决策数值。
83.优选地,如图3所示,将流量特征推送至决策规则库之前,还包括:
84.建立第一令牌桶,在第一令牌桶中持续根据第一令牌生成速率得到第一令牌数,第一令牌生成速率根据客户端的最大传输速率确定;
85.比较第一令牌桶中的当前第一令牌数与数据包的流量大小,当流量大小不大于当前第一令牌数时,将流量特征推送至决策规则库,并在第一令牌桶中减去与流量大小的数量一致的第一令牌数;
86.当流量大小大于所述当前第一令牌数时,将数据包丢弃,完成对所请求的决策响应。
87.可以理解的是,在将数据包的流量特征推送至决策规则库以进行异常流量检测之前,采用令牌桶算法实现初步的流量整形。令牌桶是客户端设备内部的存储池,而令牌则是以给定速率填充令牌桶的虚拟信息包,数据包需要根据其流量大小的消耗令牌桶中填充的令牌数以进行发送,所消耗的令牌数与其流量大小相等;而当数据包到达时,若令牌桶中的当前令牌数的字节数量不小于其流量大小的字节数量,则将流量特征推送至决策规则库;若令牌桶中的当前令牌数的字节数量小于其流量大小的字节数量,也即令牌桶中的当前令牌数不足以消耗于发送该数据包,需要将数据包丢弃。通过上述方式设置第一令牌桶,可以控制进入决策规则库的数据包的流量大小。
88.优选地,如图3所示,将所述流量特征推送至所述决策规则库之前,还包括:
89.在客户端内设置用于临时存储数据的缓存区,比较数据包的传输速率与数据包所对应的预设传输速率;
90.当传输速率不大于预设传输速率时,进一步比较数据包的流量大小与缓存区的当前存储余量;
91.当数据包的流量大小不大于缓存区的当前存储余量时,将数据包存储于缓存区内,并将流量特征推送至决策规则库;
92.当数据包的流量大小大于缓存区的当前存储余量时,对数据包进行流量整形,将经过流量整形的数据包存储于缓存区,并将流量特征推送至决策规则库;
93.当传输速率大于预设传输速率时,对数据包进行流量整形,再将经过流量整形的数据包存储于缓存区,并将流量特征推送至所述决策规则库。
94.举例来说,假设数据包的传输速率为700mb/s,预设传输速率为800mb/s,此时可以判断数据包的传输速率不大于预设传输速率,进一步数据包的流量大小与缓存区的当前存储余量,缓存区的当前存储余量表示当前缓存区还能进行存储的数据量。假设数据包的流量大小为400mb,缓存区当前存储余量为500mb,将该数据包存储于缓存区内,并将流量特征推送至决策规则库;假设数据包的流量大小为700mb,缓存区当前存储余量为500mb,对该数据包进行流量整形,再将经过流量整形后的数据包存储于缓存区,并将流量特征推送至所述决策规则库。
95.假设数据包的传输速率1000mb/s,预设传输速率为800mb/s,此时可以判断数据包的传输速率大于预设传输速率,需对数据包进行流量整形后再存储于缓存区。
96.进一步地,如图3所示,对数据包进行流量整形,包括:
97.建立第二令牌桶,在第二令牌桶中持续根据第二令牌生成速率得到第二令牌数,第二令牌生成速率根据决策规则库的处理能力及缓存区的存储容量确定;
98.比较第二令牌桶中的当前第二令牌数与数据包的流量大小,当流量大小不大于当前第二令牌数时,将流量特征推送至决策规则库,并在第二令牌桶中减去与流量大小的数量一致的第二令牌数;
99.当流量大小大于当前第二令牌数时,将数据包丢弃,完成对请求的决策响应。
100.可以理解的是,第二令牌桶与第一令牌桶设置方式一样,通过上述方式设置第二令牌桶,可以进一步控制进入决策规则库的数据包的流量大小。
101.进一步地,还包括:
102.根据数据包的业务类型获取数据包的业务重要级,并根据业务重要级获取数据包所对应的预设传输速率,其中,
103.业务重要级包括第一业务重要级与第二业务重要级,第一业务重要级的数据包对应于第一预设传输速率,第二业务重要级的数据包对应于第二预设传输速率,且第一预设传输速率大于第二预设传输速率。
104.可以理解的是,根据数据包的业务类型获取数据包的业务重要级,例如支付业务对应于第一业务重要级,聊天业务对应于第二业务重要级。对支付业务的数据包设置的第一预设传输速率大于对聊天业务的数据包设置的第二预设传输速率。通过上述方案的设置,在客户端的传输通道有限的前提下可以使第一业务重要级的数据包相对于第二业务重要级的数据包更优先被推送至决策规则库,保证应用程序中的核心业务的请求获得决策响
应。
105.优选地,还包括以下步骤:
106.完成对请求的决策响应后,将流量特征、决策数据、决策响应结果、决策响应时间写入访问记录库;
107.当请求所传输的数据包的第一安全标识或第二安全标识为异常流量时,记录异常数据并写入访问记录库。
108.可以理解的是,将对每次请求的决策响应所产生的流量特征、决策数据、决策响应结果、决策响应时间写入到访问记录库,该访问记录库可用于对人工智能决策模型进行训练,以根据实际流量整形优化的结果进一步优化人工智能决策模型。
109.优选地,还包括以下步骤:
110.根据流量特征与第二安全标识,对决策规则库中多个指标各自相对于决策数值的权重、决策数值的范围与第一安全标识的对应关系进行更新。
111.可以理解的是,对于决策规则库判断为属于疑似异常流量的数据包,将其流量特征推送至人工智能决策模型,由人工智能决策模型判断第二安全标识。也即,人工智能决策模型用于在决策规则库并未判断数据包为正常流量或异常流量时进行异常检测,作为决策规则库中预设规则以外的补充。人工智能决策模型在经过上述推理过程后,会获得新的数据包的流量特征与第二安全标识间的映射,以此对决策规则库中多个指标各自相对于决策数值的权重、决策数值的范围与第一安全标识的对应关系进行更新,可以增加决策规则库中的规则,也即,通过人工智能决策模型对决策规则库进行反哺优化。同时,人工智能决策模型还可以爬取互联网中最新的攻击数据进行训练,以更新人工智能决策模型的参数设置。
112.优选地,所述预先训练的人工智能决策模型通过以下步骤训练获得:
113.获取一待训练人工智能决策模型,从网络特征库与访问记录库中提取多个训练流量特征并进行归一化处理,对多个训练流量特征分别标定训练标签,训练标签为正常流量或异常流量;
114.将多个已标定训练标签的训练流量特征输入待训练人工智能决策模型,使待训练人工智能决策模型学习多个训练流量特征中的任一与其所标定的训练标签之间的映射关系;
115.从网络特征库与访问记录库中提取多个测试流量特征,对多个测试流量特征分别标定测试标签,测试标签为正常流量或异常流量;
116.将多个测试流量特征分别输入待训练人工智能决策模型,待训练人工智能决策模型对多个测试流量特征分别进行预测,并输出多个测试流量特征中的任一所对应的预测标签,分别比较多个测试流量特征中的任一所对应的测试标签与预测标签,获取待训练人工智能决策模型的损失函数,并进行反向传播,以对待训练人工智能决策模型进行参数优化;
117.重复上述步骤,直至待训练人工智能决策模型收敛,获得人工智能决策模型。
118.可以理解的是,获取一个待训练的人工智能决策模型,从网络特征库与访问记录库中根据实际需求和场景提取多个训练流量特征,并对所提取到的训练流量特征进行归一化处理,之后对训练流量特征进行标定训练标签,训练标签为正常流量或异常流量,接着将已标定训练标签的训练流量特征输入待训练的人工智能决策模型,使待训练的人工智能决
策模型学习训练流量特征中的与其所标定的训练标签之间的映射关系,然后从网络特征库与访问记录库中提取多个测试流量特征,对测试流量特征进行标定测试标签,测试标签为正常流量或异常流量,将测试流量特征输入待训练的人工智能决策模型,并对测试流量特征进行预测,并输出测试流量特征中对应的预测标签,分别比较测试流量特征对应的测试标签与预测标签,获取待训练的人工智能决策模型的损失函数,并进行反向传播,通过监控流量整形结果,以对待训练的人工智能决策模型进行持续学习和参数优化,重复上述步骤,直至待训练的人工智能决策模型收敛,获得人工智能决策模型。通过上述监督学习的训练方法,使待训练人工智能决策模型学习训练流量特征中的任一与其所标定的训练标签之间的映射关系,也即,训练完成后的人工智能决策模型,可以通过输入数据包的流量特征,判断具有该流量特征的数据包应当被分类为正常流量或异常流量,从而为数据包输出第二安全标识。
119.应当注意的是,本发明的实施例有较佳的实施性,且并非对本发明作任何形式的限制,任何熟悉该领域的技术人员可能利用上述揭示的技术内容变更或修饰为等同的有效实施例,但凡未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何修改或等同变化及修饰,均仍属于本发明技术方案的范围内。
技术特征:
1.一种基于ebpf的流量整形优化方法,其特征在于,包括以下步骤:客户端接收应用程序发送的请求,执行内核上加载的ebpf程序,所述ebpf程序获取所述请求的信息,并根据所述信息获取对所述请求所传输的数据包的采样规则;所述ebpf程序根据所述采样规则对所述数据包进行采样以获得采样数据,并根据所述采样数据获取所述数据包的流量特征,所述流量特征包括多个指标;所述ebpf程序中内嵌决策规则库,所述决策规则库包括所述多个指标各自相对于决策数值的权重、决策数值与第一安全标识的对应关系,所述第一安全标识为正常流量或异常流量;将所述流量特征推送至所述决策规则库,计算获取所述数据包的决策数值,并根据所述决策数值为所述数据包匹配第一安全标识;当所述第一安全标识为所述正常流量时,将所述数据包发送至服务器,完成对所述请求的决策响应;当所述第一安全标识为所述异常流量时,将所述数据包丢弃,完成对所述请求的决策响应。2.根据权利要求1所述的流量整形优化方法,其特征在于,还包括以下步骤:所述第一安全标识还为疑似异常流量,当所述第一安全标识为疑似异常流量时,将所述流量特征推送至预先训练的人工智能决策模型,所述人工智能决策模型通过接口接入所述ebpf程序;所述人工智能决策模型输出所述数据包的第二安全标识,所述第二安全标识为正常流量或异常流量,当所述第二安全标识为所述正常流量时,将所述数据包发送至服务器,完成对所述请求的决策响应;当所述第二安全标识为所述异常流量时,将所述数据包丢弃,完成对所述请求的决策响应。3.根据权利要求1所述的流量整形优化方法,其特征在于,所述流量特征中的多个指标包括传输速率、流量大小、传输延迟、攻击字符和传输协议类型中的一项或多项。4.根据权利要求1所述的流量整形优化方法,其特征在于,所述将所述流量特征推送至所述决策规则库,还包括:建立第一令牌桶,在所述第一令牌桶中持续根据第一令牌生成速率得到第一令牌数,所述第一令牌生成速率根据所述客户端的最大传输速率确定;比较所述第一令牌桶中的当前第一令牌数与所述数据包的流量大小,当所述流量大小不大于所述当前第一令牌数时,将所述流量特征推送至所述决策规则库,并在所述第一令牌桶中减去与所述流量大小的数量一致的第一令牌数;当所述流量大小大于所述当前第一令牌数时,将所述数据包丢弃,完成对所述请求的决策响应。5.根据权利要求1所述的流量整形优化方法,其特征在于,所述将所述流量特征推送至所述决策规则库,还包括:在所述客户端内设置用于临时存储数据的缓存区,比较所述数据包的传输速率与所述
数据包所对应的预设传输速率;当所述传输速率不大于所述预设传输速率时,进一步比较所述数据包的流量大小与所述缓存区的当前存储余量;当所述数据包的流量大小不大于所述缓存区的当前存储余量时,将所述数据包存储于所述缓存区内,并将所述流量特征推送至所述决策规则库;当所述数据包的流量大小大于所述缓存区的当前存储余量时,对所述数据包进行流量整形,将经过所述流量整形的所述数据包存储于所述缓存区,并将所述流量特征推送至所述决策规则库;当所述传输速率大于所述预设传输速率时,对所述数据包进行所述流量整形,将经过所述流量整形的所述数据包存储于所述缓存区,并将所述流量特征推送至所述决策规则库。6.根据权利要求6所述的流量整形方法,其特征在于,所述对所述数据包进行流量整形,包括:建立第二令牌桶,在所述第二令牌桶中持续根据第二令牌生成速率得到第二令牌数,所述第二令牌生成速率根据所述决策规则库的处理能力及所述缓存区的存储容量确定;比较所述第二令牌桶中的当前第二令牌数与所述数据包的流量大小,当所述流量大小不大于所述当前第二令牌数时,将所述流量特征推送至所述决策规则库,并在所述第二令牌桶中减去与所述流量大小的数量一致的第二令牌数;当所述流量大小大于所述当前第二令牌数时,将所述数据包丢弃,完成对所述请求的决策响应。7.根据权利要求6所述的流量整形优化方法,其特征在于,还包括:根据所述数据包的业务类型获取所述数据包的业务重要级,并根据所述业务重要级获取所述数据包所对应的预设传输速率,其中,所述业务重要级包括第一业务重要级与第二业务重要级,所述第一业务重要级的数据包对应于第一预设传输速率,所述第二业务重要级的数据包对应于第二预设传输速率,且所述第一预设传输速率大于所述第二预设传输速率。8.根据权利要求1-7中任一项所述的流量整形优化方法,其特征在于,还包括以下步骤:完成对所述请求的决策响应后,将所述流量特征、决策数据、决策响应结果、决策响应时间写入访问记录库;当所述请求所传输的所述数据包的所述第一安全标识或所述第二安全标识为所述异常流量时,记录异常数据并写入所述访问记录库。9.根据权利要求2所述的流量整形优化方法,其特征在于,还包括以下步骤:根据所述流量特征与所述第二安全标识,对所述决策规则库中所述多个指标各自相对于决策数值的权重、决策数值的范围与第一安全标识的对应关系进行更新。10.根据权利要求2所述的流量整形优化方法,其特征在于,所述预先训练的人工智能决策模型通过以下步骤训练获得:获取一待训练人工智能决策模型,从网络特征库与所述访问记录库中提取多个训练流量特征并进行归一化处理,对所述多个训练流量特征分别标定训练标签,所述训练标签为
正常流量或异常流量;将所述多个已标定训练标签的训练流量特征输入所述待训练人工智能决策模型,使所述待训练人工智能决策模型学习所述多个训练流量特征中的任一与其所标定的训练标签之间的映射关系;从所述网络特征库与所述访问记录库中提取多个测试流量特征,对所述多个测试流量特征分别标定测试标签,所述测试标签为正常流量或异常流量;将所述多个测试流量特征分别输入所述待训练人工智能决策模型,所述待训练人工智能决策模型对所述多个测试流量特征分别进行预测,并输出所述多个测试流量特征中的任一所对应的预测标签,分别比较所述多个测试流量特征中的任一所对应的测试标签与预测标签,获取所述待训练人工智能决策模型的损失函数,并进行反向传播,以对所述待训练人工智能决策模型进行参数优化;重复上述步骤,直至所述待训练人工智能决策模型收敛,获得所述人工智能决策模型。
技术总结
本发明提供了一种基于eBPF的流量整形优化方法,包括,客户端接收应用程序发送的请求,执行内核上加载的eBPF程序,eBPF程序对请求所传输的数据包进行采样以获取数据包的流量特征,流量特征包括多个指标;将流量特征推送至eBPF程序内嵌的决策规则库,根据流量特征计算获取数据包的决策数值,并根据决策数值为数据包匹配第一安全标识;当第一安全标识为正常流量时,将数据包发送至服务器;当第一安全标识为异常流量时,将数据包丢弃。采用本发明技术方案后,能够实现对突发的大规模流量进行整形,使流量趋于平滑,并对业务进行分级调整,保证重要业务的优先正常访问,精准高效地检测异常流量并丢弃相应数据包,避免遭受网络攻击。避免遭受网络攻击。避免遭受网络攻击。
技术研发人员:艾如飞 戚祥发 代懿航 杨超
受保护的技术使用者:昭通亮风台信息科技有限公司
技术研发日:2023.08.16
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
