国家标准网
(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

.PDF文档 专利 一种面向可编程数据平面的用户活动分类方法及应用

文档预览
中文文档 20 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共20页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种面向可编程数据平面的用户活动分类方法及应用 第 1 页 专利 一种面向可编程数据平面的用户活动分类方法及应用 第 2 页 专利 一种面向可编程数据平面的用户活动分类方法及应用 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 12:12:10上传分享
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。