(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202211135710.6
(22)申请日 2022.09.19
(71)申请人 华东师范大学
地址 200241 上海市闵行区东川路5 00号
申请人 上海工业控制安全创新科技有限公
司
(72)发明人 章玥 朱信宇 蒲戈光
(74)专利代理 机构 上海麦其知识产权代理事务
所(普通合伙) 31257
专利代理师 董红曼
(51)Int.Cl.
H04L 49/20(2022.01)
H04L 49/9015(2022.01)
G06N 20/00(2019.01)
G06K 9/62(2022.01)
(54)发明名称
一种面向可编程数据平面的用户活动分类
方法及应用
(57)摘要
本发明公开了一种面向可编程数据平面的
用户活动分类方法, 包括以下三个平面: 学习平
面、 控制平面、 数据平面。 本发明该方法能够实现
在数据平 面完成对用户活动分类, 通过P4语言来
实现合适的机器学习模型并部署到可编程交换
机中, 交换机对流经的数据包进行解析, 提取网
络流的特征数据并保存到sketch和哈希表构成
的存储结构之中, 然后使用机器学习分类器对一
段时间间隔内的网络流特征进行分析, 判断该段
时间间隔内的用户活动, 上传分类结果。
权利要求书3页 说明书12页 附图4页
CN 115514720 A
2022.12.23
CN 115514720 A
1.一种面向可编程数据平面的用户活动分类方法, 其特征在于, 所述用户活动分类方
法包括以下三个平面:
学习平面, 用于从外部数据集、 带内网络遥测或主动测量中获取用户活动产生的网络
流量, 提取并记录网络流量中一段时间间隔内的特征数据, 之后学习每个时间间隔中有用
的字段特征; 基于所述字段 特征构建机器学习的流 量分类模型 下发给控制平面;
控制平面, 连接学习平面和数据平面, 负责将预先训练好的流量分类模型转换为基于
P4语言实现的应用程序, 并生成一组对应的匹配 ‑动作规则, 所述匹配 ‑动作规则表示对匹
配的数据包执行预定的动作; 在对生成的应用程序进 行编译后 将其部署到数据平面的可编
程交换机中, 并下发匹配 ‑动作规则到控制平面的交换机;
数据平面, 其为可编程数据平面, 由可编程数据交换机组成, 在完成应用程序的部署之
后, 交换机解析经过的每一个数据包的头部域, 提取数据流特征数据; 交换机通过sketch和
哈希表所构成的存储结构来记录一段时间内的网络流量特征数据; 其中, 哈希表用于保存
一段时间内网络流量特征, sketch用于辅助选择需要被存储的网络流, 基于这些记录的网
络流量特征数据实现对用户活动分类, 上传分类结果并执 行相应的转发或拦截策略。
2.根据权利要求1所述的面向可编 程数据平面的用户活动分类方法, 其特征在于, 所述
特征数据包括以太网类型、 IP协议号、 源IP地址与目的IP地址、 源端口号与目的端口号、 网
络流的持续时间、 数据包的大小范围、 数据包的数量。
3.根据权利要求1所述的面向可编 程数据平面的用户活动分类方法, 其特征在于, 结合
网络用户活动的特征, 将网络流量划分为时间窗口进行分类; 所述时间窗口中的每个都由
多条网络流组成, 其中一条网络流被定义为具有相同源IP地址、 目的IP地址、 源端口、 目的
端口和传输层协议的所有数据包的集 合。
4.根据权利要求1所述的面向可编 程数据平面的用户活动分类方法, 其特征在于, 利用
机器学习推断用户在网络中的活动, 在所述学习平 面中利用scikit ‑learn机器学习工具包
来构建两层的流 量分类模型:
流级层: 基于无监督的K ‑Means算法, 每条流与K个可 能的聚类中的一个相关联, 表明该
段时间间隔内网络流表现出 的行为类型; 窗口内的网络流经过聚类之后累积在大小为K 的
一维数组之中, 统计该时间 间隔内每 个行为类型 出现的次数;
窗口级层: 基于有监督的决策树算法, 将窗口级层中的特征参数与流级层中生成的一
维数组合并作为该模型的输入特 征集, 通过这个过程, 识别每 个窗口的用户活动。
5.根据权利要求1所述的面向可编 程数据平面的用户活动分类方法, 其特征在于, 在所
述控制平面中构建一个机器学习到P4语言的转换 方法, 包括以下步骤:
步骤S1.对训练后的K ‑Means模型进行解析, 提取k个簇中心, 每个簇中心由m个坐标值
组成, 每个特征一个, 使用Eucli dean Metric公式的平方来确定给定输入x和聚类c的相似
性, 所述Eucl idean Metric公式如下为:
其中, x表示给定的输入样本, c表示某个聚类中心, i表示第i个特 征参数;
步骤S2.对训练后的决策树模型进行解析, 遍历树中所有的节点, 将节点的判定转换为权 利 要 求 书 1/3 页
2
CN 115514720 A
2if‑else语句; if条件满足则对当前判断节 点的左子树 继续执行, 不满足则进入右子树区域
并添加else语句, 直到遍历到叶子结点完成, 表明一种分类情况的结束。
6.根据权利要求1所述的面向可编 程数据平面的用户活动分类方法, 其特征在于, 在所
述控制平面中自动化完成P4程序的生成、 编译和部署, 将所述的两层模型映射到可编程交
换机中。
7.一种如权利要求1 ‑6之任一项所述的面向可编程数据平面的用户活动分类方法的应
用, 其特征在于, 所述应用包括如下步骤:
S1.数据包特 征的提取:
步骤S101.解析数据包的以太网层, 确定数据包是否符合IPV4协议; 若非IPV4协议, 则
不进行后续 流程; 若符合 IPV4协议, 则解析IPV4层;
步骤S102.解析数据包的IPV4层, 提取当前数据包中的源IP地址、 目的IP地址、 源端口、
目的端口, 数据包大小, 传输层协议, 以及数据包到达的时间戳, 按照源IP地址、 目的IP地
址、 源端口、 目的端口, 传输层协议的顺序组成字符串, 用于表示网络流 key值;
S2.数据包特 征存储与更新:
步骤S201.将步骤S102中提取到特征信息保存到sketch和哈希表组成的存储结构中;
所述的sketch数据结构是Count ‑Min sketch, 即一个大小为d行w列的二维数组; 所述的哈
希表是由n个bucket构成的一维数组, 其中bucket为能够存放一个网络流中多个特征参数
的结构体;
步骤S202.根据网络流特征字符串构成的网络流key值作为输入, 通过哈希函数f
(key)%n 来确定该网络流在哈希 表中的存放 位置;
步骤S203.查看该网络流是否已经存在于 哈希表中; 若该网络流已经存在或存放位置
为空, 则直接更新相应的参数信息; 若 该存放位置不为空且不为该网络流, 表明哈希表发生
碰撞;
步骤S204.在哈希表发生碰撞时, 将该网络流保存到sketch中, 并比较该网络流在
sketch中的大小与哈希表中冲突位置网络流的大小, 判断是否执行替换; 若该网络流在
sketch中的大小大于哈希表中冲突位置网络流的大小, 则执行替换操作; 反之, 就不执行替
换操作;
步骤S205.在t1时刻初始化步骤S201中sketch和哈希表组成的存储结构, 如果当前的
时刻t2‑t1大于预先设置的阈值threshold时, 将哈希表中的数据序列化导出, 交由分类器
执行分类操作, 并初始化存 储结构;
S3.用户活动的分类:
步骤S301.获取特征数据: 遍历序列化中的特征数据, 将每一条网络流的特征输入到分
类器之中;
步骤S302.基于流级特征的聚类: 将单条网络流的特征输入K ‑Means聚类模型, 判定该
网络流与K个可能的聚类中的一个相关联, 聚类之后的结果累积到大小为K的数组之中, 统
计每个行为类型 出现的次数;
步骤S303.基于窗口级特征的分类: 遍历完一段时间间隔内的所有网络流后, 将窗口级
的特征参数与流级生成的数组合并输入决策树分类模型, 判定该时间 间隔内用户的活动;
步骤S304.分类结果统计: 分类器完成一段时间间隔 的流量分类任务后, 将分类结果上权 利 要 求 书 2/3 页
3
CN 115514720 A
3
专利 一种面向可编程数据平面的用户活动分类方法及应用
文档预览
中文文档
20 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共20页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 12:12:10上传分享