首页> 中国专利> 一种高效的P2P应用流量分类方法及系统

一种高效的P2P应用流量分类方法及系统

摘要

本发明公开了一种高效的P2P应用流量分类方法及系统。本方法为:1)P2P分类服务器从采集的每一数据包中获取四元组信息、协议信息、包长信息对该数据包进行标记并存储在信息结构体中;2)P2P分类服务器从信息结构体中提取每条指定流的N个数据包,并计算每条流的基本统计特征;3)对得到的基本统计特征进行分类,并根据得到的结果计算单位时间窗口内每条流的通信属性;4)根据当前窗口内同一流的通信属性计算该流的卡方统计量;如果超过设定阈值,则去除该流的应用分类标记;如果出现未识别的流,则将该未识别的流标记为当前窗口内具有相同IP和端口PORT的P2P应用流。本发明分类稳定高,可以满足大多数系统在线识别需求。

著录项

  • 公开/公告号CN105763479A

    专利类型发明专利

  • 公开/公告日2016-07-13

    原文格式PDF

  • 申请/专利权人 中国科学院信息工程研究所;

    申请/专利号CN201610206196.9

  • 发明设计人 常鹏;张永铮;庹宇鹏;

    申请日2016-04-05

  • 分类号H04L12/851;H04L29/08;

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人司立彬

  • 地址 100093 北京市海淀区闵庄路甲89号

  • 入库时间 2023-06-19 00:00:55

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-30

    授权

    授权

  • 2016-08-10

    实质审查的生效 IPC(主分类):H04L12/851 申请日:20160405

    实质审查的生效

  • 2016-07-13

    公开

    公开

说明书

技术领域

本发明涉及P2P网络信息安全领域,是一种能够应用于P2P网络的,高效识别P2P应用 流量的方法及系统。

背景技术

随着互联网应用的广泛使用,网络应用已经呈现出很多类别,尤其是P2P应用流量的暴 增,占据了巨大的网络带宽,不利于高质量的服务,同时给网络运营商带来很多管理问题。 P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源(处理能力、存储 能力、网络连接能力等),这些资源能被其他对等点peer直接访问而无须经过中间实体。P2P 网络结构复杂,网络拓扑具有动态性,绝大多数流量在传输过程中进行加密,为了提高P2P 应用流量分类准确率和稳定性,科学管理规划网络,各类P2P应用识别技术应运而生。

(1)基于P2P端口的分类技术。在P2P网络通信过程中,无论是客户端还是服务端, 或者是一个Peer节点,必须提供IP地址和端口和另一方进行通信。该方法需要截取数据包 头的五元组,并判断端口是否为P2P网络应用的端口即可。基于端口的识别方法优点是简单, 容易实现,分类性能很高,具有较高的实时性,所以可以应用于高速网络环境下。但是对于 P2P应用来说,大多采用了端口跳变的技术,该方法主要存在的缺点是受限于注册端口数目 识别数量有限并且随着新的网络应用的不断增多其可以识别应用的比重越来越低,分类准确 率不稳定。

(2)基于有效负载的P2P应用分类技术。通过具体分析有效载荷中包含特定字符串(签 名信息)用以标识应用,识别有效载荷中一些协商固定信息,比如消息类型T、长度字段L、 版本字段Version、各类保留字段等,如果匹配则识别成对应的P2P应用。基于P2P应用负载 内容的分类由于其具有较高的准确率,该分类方法的优点是可以应用于实时的流分类识别系 统,且具有较高的识别准确率。缺点是需要及时跟进P2P应用的发展变化,新应用的特征提 取工作量较大,而且很多P2P流量是私有协议以及加密流量,比如迅雷就采用了私有协议来 传输数据,很难挖掘其负载特征。所以使用该方法还是无法有效的识别P2P应用,无法确保 一些特征的有效性和实时性。

(3)基于网络行为的P2P应用分类技术。通过交互双方的网络行为特征,提取P2P网 络应用的通信特征,主要包括流量连续性,应用多连接性,协议混淆性,端口离散性以及输 入输出流量均衡性等P2P应用通信特征,分类不同的P2P应用。该方法优点是不用考虑端口 号,而且不用对数据包进行深度解析,有效提高了分类性能。缺点是不能精细化分类P2P应 用,只能有效的判断P2P类流量,也因为P2P应用在交互过程中路由具有动态性,致使该方 法分类稳定性不高,有其局限性,故检测准确率也因系统而异。

(4)基于机器学习的P2P应用分类技术。目前研究热点主要在基于机器学习的分类方法, 不同应用网络流量具有一定的流特征,将流特征提取出来并用机器学习算法来训练建立分类 模型,然后对在线应用流量进行分类。以统计理论为基础的机器学习算法由于其广泛的应用 背景和成熟的理论框架在流分类研究中被越来越多的使用。尽管P2P应用分类的统计学习方 法具有成熟的理论模型,但是机器学习的方法比较依赖数据集,不同网络环境可能会影响分 类准确率,而且在计算一些流特征的时候,需要计算流中每个包的特征,在网络流量暴涨情 况下,应用识别的性能有所下降,分类准确率不稳定。

发明内容

针对上述已有方法存在的问题,本发明公开了一种基于滑动时间窗口的多流关联P2P应 用分类方法及系统。

本发明公开了一种基于滑动时间窗口的多流关联P2P应用分类方法,具体步骤包括:

(1)初始化参数:P2P流量统计基本特征的结构体flowAttr,初始化为0,四个P2P流 量通信行为:端口离散性f1,初始化为0;输入输出流量比特征f2,初始化为1;大窗口连续 性f3,初始化为0;小窗口短暂性f4,初始化为0;多元误识别流统计卡方变量χ2,初始化为 1。s_attrRule,初始化0,卡方遍历参数,初始化0.6(阈值可以在初始化阶段设定,也可根 据需求配置更新阈值);

(2)接收数据包并进行会话重组和解析:在指定的网卡进行数据包的捕获。将当前捕获 的数据包的四元组、协议、包长等信息进行标记,并存储在信息结构体flowAttr中,后续步 骤将根据标记信息对当前数据包的相关信息进行详细的数据分析;

(3)流基本统计特征计算:从指定结构体flowAttr中读取数据包,过滤出每条指定流的 前N个(N<10,本发明N为9)数据包,对数据包数据进行详细分析,计算每条流的基本统计 特征flowAttr,这里TCP和UDP协议统计不一样的特征,计算的特征包括:

1)P2P流量中的TCP统计特征:

min_fpktl前向最小包长;win_fbytes前向初始窗口;win_bbytes后向初始窗口;first_fpktl 前向第一个包长;min_bpktl后向最小包长度;third_fpktl前向第三个包长;max_fpktl最大前 向包长度;mean_bpktl后向平均包长;fpsh_cnt前向psh包数;duration流持续时间。

2)P2P流量中的UDP统计特征:

max_fpktl前向最大包长度;max_bpktl后向最大包长度;mean_bpktl平均后向包长度; first_fpktl前向第一个包长;sec_bpktl后向第二个包长;third_bpktl后向第三个包长;mean_fpktl 平均前向包长度;first_diff双向第一个包长度差;min_bpktl后向最小包长度;duration流持 续时间。

(4)使用分类特征流进行初步分类

根据离线配置好的分类特征数值对网络数据流进行检测判定,首先判断当前网络数据流 是TCP协议还是UDP协议,然后针对TCP或UDP分别使用不同的规则对在线流的基本统 计特征进行初步快速地分类,并将每条P2P应用流的分类结果,及每条流的协议、五元组信 息、包数、流量、应用编码记录在日志中。

(5)P2P应用流量的分类

在每个时间单位窗口中,利用步骤(4)数据分类的结果,进行计算分别量化四个P2P 通信属性。

1)计算每条流每个端口的端口离散性:端口离散性记录每个流客户端端口ClientPort值, 由于P2P应用通信端口一般比较大,为平衡各个属性的权重,使用hash函数将客户端端口 hash到0到1区间内。

f1=Hash(ClientPort)

2)计算每条流的输入输出流量比:输入/输出流量比使用每条流的输入字节数fbytes除 以输出字节数bbytes量化;

f2=fbytesbbytes

3)计算每条流大窗口的连续性:大窗口连续属性使用每条流中包负载长度大于初始化窗 口长度的包的数量big_wins和整条流包数flow_packets来量化;

f3=big_winsflow_packets

4)计算每条流小窗口的短暂性:小窗口短暂属性使用每条流中包负载小于流前三个包长 的数量small_wins和整条流包数flow_packets来量化;

f4=small_winsflow_packets

5)统计连续多个时间窗口单位下的卡方变量,检测误识别的P2P流;

χ2=Σi=14(fi-EWi)2EWi

EWi是当前窗口前N-1窗口内被标记为同一应用第i个P2P通信属性的均值,N设置为4。 在识别过程中,时间窗口会不断向后滑动。如果在某个时间窗口中χ2统计量大于阈值0.6,则 将IF-ELSE分类标记的流视为误识别并将该流的应用分类标记去除。在一个时间单位窗口中 使用多流时空关联,时间是指一个时间窗口上,空间是指该窗口中每条流中IP和端口PORT。 如果在一个时间窗口上,使用IF-ELSE规则分类标记结果中同一个IP和端口PORT的流有未 识别的流,则将该流标记为对应IP和PORT已识别的流。

(6)对检测特征所需的存储空间置零或初始化参数,转到步骤(2)。

本发明同时也公开了一种基于滑动时间窗口的多流关联P2P应用分类系统,主要由数据 包采集,数据处理及提取特征模块,规则分类模块及关联识别4个模块组成。系统运行的具 体步骤如下:

(1)系统初始化:配置管理解析用户配置文件,将P2P应用分类规则配置加载到系统存 储,配置包括指定网卡数据监听配置、数据过滤规则配置、数据存储规则配置等;配置加载 成功后,系统监听并等待接收数据;

(2)数据包采集模块:采集数据包,对非关注流量的数据包进行的一定的过滤,将数据 包存储到结构体中,转到步骤(3);

(3)数据处理及提取特征模块:收到一个数据包,对数据包数据进行详细分析,按照如 下步骤处理该报文:

(3.1)流量清理:本技术目的是针对P2P流量分类,在进行流统计特征提取之前需要将 流量进行有效的清理,主要是去除广告流量,去除DNS流量,以及将流量分成TCP和UDP 流量;

(3.2)提取每条TCP流的基本统计特征:计算TCP的流统计特征,包括前向最小包长、 前向初始窗口、后向初始窗口、前向第一个包长、后向最小包长度、前向第三个包长、最大 前向包长度、后向平均包长、前向psh包数、流持续时间;

(3.3)提取每条UDP流的基本统计特征:前向最大包长度、后向最大包长度、平 均后向包长度、前向第一个包长、后向第二个包长、后向第三个包长、平均前向包长度、双 向第一个包长度差、后向最小包长度、流持续时间。

(4)规则分类模块:通过离线机器学习,利用配置好的决策树训练规则,根据步骤(3) 计算的流统计特征进行P2P流量分类;

(5)关联分析识别模块:在步骤(4)进行一次P2P流量分类的结果中,在线实时分计 算每个时间窗口的四个P2P属性值,时间窗口设置为5分钟,按照如下步骤处理一次分类的 结果:

(5.1)计算一个时间窗口下的识别为同一个P2P应用的每条流的P2P通信属性,分别是 端口离散性、输入输出流量均衡性、大窗口连续性以及小窗口的短暂性。端口离散性使用hash 函数处理每条流的客户端端口,输入/输出流量比使用每条流的输入字节数除以输出字节数, 大窗口连续属性使用每条流中包负载大于初始化窗口大小包数量除以整条流包数,小窗口短 暂属性使用每条流中包负载小于流前三个包长的数量除以整条流包数;

(5.2)计算滑动时间窗口下的卡方统计量χ2:根据(5.1)计算出来的P2P通信属性,计 算出连续四个时间窗口下的卡方统计量:

χ2=Σi=14(fi-EWi)2EWi

如果卡方统计量大于设置的阈值,则将一次规则分类中的流标记去除;

(5.3)采用时空关联在线识别P2P应用流量:在一个时间单位窗口中使用多流时空关联, 时间窗口设置为5分钟,空间使用该窗口中每条流中IP和端口PORT。如果在一个时间窗口 上,同一个IP和端口PORT的流有未识别的流,则将该流标记为对应IP和PORT已识别的 流。

(6)继续步骤(2)。

与已公开的方法相比,本发明具有如下优点:

1)P2P应用识别准确率和召回率比以往分类方法要高,分类稳定,可以满足大多数系统 在线识别的需求;

2)可在线配置P2P应用识别的规则,能够更准确的反映当前P2P应用通信的特征,识 别系统的伸缩性;

3)本方法及系统可以给出P2P应用识别可信度、交互过程参数命令等更详细的描述,关 键信息可以及时反馈给应用系统;

4)引入了多参数统计识别,统计参数既涵盖基于P2P端口检测、基于P2P负载内容检 测方法,也使用机器学习的方法来分析P2P应用交互行为特征并通过多流关联参数来识别 P2P,在保证系统效率的同时,最大限度的提高了系统的准确率;

5)通过多个部分的权重灵活分配,快速有效地选择P2P通信流量统计特征,降低机器学 习训练中使用的数据集属性维度,提高分类性能;

6)P2P应用流量统计特征提取只需考虑流前N个数据包(N<10),以往的研究一般是考虑 从整条流提取流统计特征,通过减少计算每条流开始的数据包数目,有效提高了分类性能;

7)识别机制具有多样性、灵活性,采用滑动时间窗口机制,可以适应变化的P2P应用识 别环境。

附图说明

图1为基于滑动时间窗口的多流关联P2P应用分类的流程图;

图2为基于滑动时间窗口的多流关联P2P应用分类系统结构模块图;

图3为系统部署连接图;

(a)部署方式1,P2P分类服务器与内外网间的路由器连接,

(b)部署方式2,P2P分类服务器与内外网间的交换机连接,

(c)部署方式3,P2P分类服务器与内网路由器连接,

(d)部署方式4,P2P分类服务器与内网交换机连接。

具体实施方式

下面,结合具体的实施例对本发明进行详细说明。

图1给出了本发明提供的对P2P应用流量分类方法的流程,具体实施步骤如下:

(1)初始化参数:P2P流量统计基本特征的结构体flowAttr,初始化为0,四个P2P流 量通信行为端口离散性f1,初始化为0;输入输出流量比特征f2,初始化为1;大窗口连续性 f3,初始化为0;小窗口短暂性f4,初始化为0;多元误识别流统计卡方变量χ2,初始化为1。 P2P应用分类规则的配置参数,相关阈值(阈值可以在初始化阶段设定,也可根据需求下配 置更新阈值);

(2)接收数据包并进行解析:配置一定的参数,在指定的网卡进行数据包的捕获。协议 还原,获取一个网络数据包,对该数据包进行TCP/IP协议还原,获取数据包网络层首部和传 输层首部信息,例如源IP、目的IP、源端口、目的端口、协议、包长、TCP标志信息等等。 后续模块将根据标记信息对当前数据包的相关信息进行详细的数据分析;

(3)数据处理及特征提取:从指定结构体中读取数据包,对指定协议的数据包进行过滤, 从步骤(2)存储数据包的结构体中读取数据包并和对应的四元组标识的Hash表进行对比, 提取同一条流的数据包进行详细分析,计算每条流的统计特征:

1)过滤DNS流量:将53端口的流过滤出来,根据DNS报文格式判断如果是DNS报 文则根据P2P服务器域名来标记相应的应用并跳转到步骤(2),如果不是DNS报文则进入 下一步;

2)计算TCP流统计特征:提取每条TCP流前9个数据包的基本统计特征:计算TCP 的流统计特征,包括前向最小包长、前向初始窗口、后向初始窗口、前向第一个包长、后向 最小包长度、前向第三个包长、最大前向包长度、后向平均包长、前向psh包数、流持续时 间;

3)计算UDP流统计特征:提取每条UDP流前9个数据包的基本统计特征:前向最大 包长度、后向最大包长度、平均后向包长度、前向第一个包长、后向第二个包长、后向第三 个包长、平均前向包长度、双向第一个包长度差、后向最小包长度、流持续时间;

(4)使用配置的IF-ELSE规则分类:利用步骤(3)每条流统计特征提取的结果,与离 线学习的决策树规则进行逐一比较,每个条件都满足则标记成对应的P2P应用,否则标记为 空,表示不满足任何规则;

(5)滑动时间窗口的多流关联分析:针对一个时间窗口中分类为同一种P2P应用的流, 计算每条流的P2P属性,分别是端口离散性、输入输出流量均衡性、大窗口连续性以及小窗 口的短暂性,计算卡方统计量,去除误报的流标记,然后采用时空关联将未识别的流标记成 已识别的流;

(6)对上述每条流所涉及的统计特征所需的存储空间置零或初始化,重新开始统计,转 步骤(2)。

本发明同时也提供了一种基于滑动时间窗口的多流关联P2P应用分类系统,主要由数据 包采集,数据处理及提取特征模块,规则分类模块及关联识别4个模块组成。其系统结构模 块如图2所示。分类系统可部署于企业网关出入口、运营商接入路由器或骨干路由器等各种 环境,处理网关或路由器的镜像数据,其部署连接如图3所示。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号