基于DFI的移动端加密视频广告流量识别方法与流程

文档序号:16736970发布日期:2019-01-28 12:42阅读:301来源:国知局
本发明涉及视频广告流量识别领域,尤其是一种基于dfi的移动端加密视频广告流量识别方法。
背景技术
::广告流量识别是指从互联网上的正常流量中识别并定位出广告流量的一种技术,用户在访问互联网资源(如访问网页、观看视频)的过程中往往被强制性的推荐观看广告,如何准确地从互联网流量中识别出广告流量是实现精准广告投放、广告屏蔽与反屏蔽等课题的基础工作,已经成为一个较为热门的研究方向。目前针对互联网广告流量常见的识别方法有:基于音视频处理的广告流量识别方法,基于dpi(deeppacketinspection,深度包检测)的广告url字段匹配方法,基于dfi(deepflowinspection,深度流检测)的广告流量行为特征识别方法等。(1)基于音视频处理的广告识别方法kaushik等人基于对音视频的处理,发现了广告最后一帧的特点,提出了一种音视频相结合的广告检测方法。针对音频使用了语音识别算法,将广告的音频内容转化成单词,作为机器学习的输入量。针对视频使用了基于视频边缘和灰度的梯度检测算法进行分析。这种方法能较为准确地识别广告的前后边界,但数据处理较为耗时,分类结果的准确率较低,而且不易学习图像特征复杂的互联网原生广告。聂淼采用了基于广告拷贝检测和机器学习相结合的广告检测算法。首先通过提取视频关键帧的特征向量,与离线广告特征向量数据库进行相似性匹配,再采用机器学习的方法,训练广告特征,减少人工干预,保证了较高的查准率。但是该广告检测算法比较依赖离线的数据库,需要不断的更新数据库以保证识别的准确率。(2)基于dpi的广告url字段匹配方法基于dpi的广告url字段匹配方法是通过过滤请求广告的url字段来识别广告流量,adblockplus是目前较为强大的开源的浏览器广告过滤插件,它具有丰富的广告url规则库,并由使用者共同更新广告过滤规则,目前较多的研究都是基于adblockplus开展进一步的工作。huangjun等人通过实验对比了adblock和adblockplus两种广告过滤工具的性能。adblockplus和adblock通过一系列过滤规则筛选浏览器请求的url,过滤规则包括地址过滤、域名过滤和异常规则过滤。以视频和游戏过滤为例,探讨了如何在广告过滤原则和规则语法的基础上,利用广告过滤工具实现具有特定需求的流量过滤。方橙提出了一种适用于大规模互联网实时广告流量检测系统,该系统以adblock规则列表作为基本规则库,结合hashtable和aho-corasick两种快速匹配算法,对需要检测的url请求字符串进行规则匹配,实现对网页广告流量的快速实时匹配。还将匹配算法部署在并行流式工作框架sparkstreaming之上,以处理大规模流式网络数据,该检测系统具有较高的准确率和检测效率。但是该系统只能识别非加密环境下的互联网广告流量。(3)基于dfi的广告流量行为特征识别方法基于dfi的广告流量行为特征识别方法是根据广告的流量行为特征(如流长分布、报文时间间隔分布、流数据量大小、流持续时间等)来识别不同类型的流量,其不需解析数据包应用层信息,因此可以处理加密流量。但目前尚没有针对youtube加密流量使用基于dfi算法进行广告流量识别的研究。程志通过分析互联网广告流量,识别了广告流量特征,分别研究了基于dpi的http流关联算法和基于dfi的http流关联算法。前一种算法是通过对http中的get、host、referer等字段进行匹配,确定不同http流之间的关联关系。后一种算法是对输入的pcap报文数据进行组流和特征提取,识别报文中的主流和辅流以及二者之间的关联性。但是该研究只能应用于非加密http流量,尚未研究对加密流量的广告识别。与传统的dpi算法相比,dfi算法具有如下的优势:1)从处理速度来看:dfi算法对数据包的处理速度较快,而采用dpi算法需要对数据包逐包进行拆包操作,并与后台数据库进行匹配对比,处理速度较慢,而且对服务器的处理能力和存储空间有较高的要求。2)从维护成本来看:dfi算法的维护成本相对较低。dpi算法需要紧跟新协议和新应用的产生而不断升级后台数据库,否则将无法有效识别新技术下的流量。dfi算法是基于流量特征的识别,而同一种类型的新应用与旧应用的流量特征不会出现太大的变化,因此不需要频繁升级流量行为模型。3)从处理加密流量的能力来看:dpi算法无法解析被加密的网络数据包,则不能识别其具体应用。而dfi算法不需要解析应用层信息,只需获得传输层以下的信息,因此可以很好地识别加密流量。随着网络视频行业的蓬勃发展和网络服务的快速升级,传统的文字、图片信息已经不能满足广大用户对信息的需求。移动端的视频流量日益增长,随之也产生了海量的视频广告流量。如何从移动客户端播放视频产生的流量中识别出广告流量,已经成为一个较热的研究课题。国外的youtube平台对大部分的视频内容均采用了基于tls协议或quic协议的加密流量传输方式。已有的研究可以很好地识别非加密传输下的广告流量,但随着网络安全技术的增强,网络流媒体数据的加密必将成为未来的发展趋势。准确地从移动客户端播放视频产生的加密流量中识别出广告流量,具有十分重要的现实意义。技术实现要素:本发明提供一种能够提高广告识别效率的基于dfi的移动端加密视频广告流量识别方法。本发明采用如下技术方案:一种基于dfi的移动端加密视频广告流量识别方法,包括:移动端加密广告和视频流量的采集步骤和广告流与视频流行为特征关联匹配步骤,通过所述移动端加密广告和视频流量的采集步骤从移动端加密视频广告中获取pcap或pcapng文件,所述的广告流与视频流行为特征关联匹配步骤为:步骤201遍历pcap或pcapng文件中的所有数据包,将相同ip源地址和ip宿地址的数据包组成ip流,统计每条ip流的传输数据量、开始时间、结束时间和持续时间,步骤202遍历pcap或pcapng文件中的所有数据包,并统计传输层协议信息,将传输层协议信息为tcp的数据包总数计入变量tcp_count,将传输层协议信息为udp的数据包总数计入变量udp_count,如果tcp_count>udp_count,将pcap或pcapng文件标记为由tls协议传输,如果tcp_count<udp_count,则将pcap或pcapng文件标记为由quic协议传输,步骤203过滤掉步骤201中数据量小于阈值ip_bytes_threshold的ip流,步骤204从过滤后的ip流中查找出传输数据量最大的ip流,记为largest_stream,步骤205分别对每条ip流进行如下操作:遍历每条ip流中的数据包,记录每个整数秒内数据包的数量,得到该ip流每秒的数据包传输速率packets_ps,将数据包传输速率大于40个每秒的时刻值记录在主体流量时间序列数组highrate中,再对主体流量时间序列数组highrate的断流情况进行标记,从头遍历数组highrate,当首次出现相邻两个主体流量时间序列的序列值之差大于10时,将当前相邻序列值中前一个序列值及其之前的所有主体流量时间序列的序列值存入新建的数组highrate_before,记为第一段流量时间序列;将当前相邻序列值中后一个序列值及其之后的所有主体流量时间序列的序列值存入新建的数组highrate_later,记为第二段流量时间序列,然后对ip流的主体流量时间序列highrate进行重新赋值,如果数组highrae_before的长度大于数组highrate长度的一半,则先清空数组highrate,再将数组highrate_before赋值给数组highrate,否则,先清空数组highrate,再将数组highrate_later赋值给数组highrate,步骤206将数据量最大的largest_stream与largest_stream以外的过滤后的各个ip流依次比较,如果被比较的ip流的主体流量时间序列的最小值与被比较的ip流的数据量所对应的播放时长之和小于largest_stream的主体流量开始时刻,则将被比较的ip流加入到广告流序列中;如果largest_stream的主体流量时间序列的最小值与largest_stream的数据量所对应的播放时长之和小于被比较的ip流的主体流量开始时刻,则将largest_stream加入到广告流序列中,步骤207将广告流序列中数据量最大的ip流作为广告流;如果广告流序列为空,则在数据量最大的largest_stream中查询可能与视频流同ip的广告流,当第一段ip流量所对应的播放时长小于第二段ip流量的开始时刻与第一段ip流量的开始时刻的差值,则第一段ip流量为真正的广告流。与现有技术相比,本发明具有如下优点:(1)本发明采用dfi的思想,结合youtube客户端的广告视频的播放特征,创新地建立了前置广告流和视频流相关联的流量行为特征模型。其具体特征在于:1)视频前置广告出现在视频播放之前,通常也称之为前置插屏广告;2)在不限制网速的情况下,广告或者视频的下载速度会快于播放进度;3)广告的播放时长和数据量大小一般都小于视频;4)youtube视频在广告播放结束后才开始下载,因此从广告下载结束到视频开始下载之间会有明显的数据量停止下载的时间间隔。(2)本发明无需解析数据报文的应用层信息,可以同时识别非加密和加密环境下的视频广告流量。本发明解决了传统的dpi方法的无法识别加密环境下的视频广告识别问题,本发明结合dfi算法,通过对广告和视频流量行为特征建模分析,解决了加密环境下的广告识别问题。因为传统的基于dpi的流量识别方法是通过解析数据包应用层信息,获取请求报文的url等字段来确定具体的请求流量类型,但在流量加密的网络环境下,是无法获取数据包应用层信息的,因此基于dpi的方法将不再适用于识别加密传输的数据流量。(3)本发明的创新之处在于挖掘出了流量传输过程中的时间特性,以宏观的角度解决了流量传输特征不明显的问题。同一种应用流量会在较为集中的时间段内连续地传输,持续的流量停止传输代表一次流量行为的暂停或结束。本发明首先通过过滤流量数据量大小、ip二元组组流的方法对数据报文进行初步预处理,然后统计每条ip流的断流情况和主体流量时间序列,进而对广告流量和视频流量进行定位和关联。(4)本发明的广告识别速度较快,因为识别过程中无需检索数据量庞大的数据库,省去了dpi方法中数据查找和匹配的时间。解决了传统基于dpi方法需要建立庞大的数据库的问题,本方法只需对流量传输行为特征进行建模,大大加快了广告的识别效率。附图说明图1是网络环境配置图。图2是广告和视频流量采集流程图。图3是数据量最大流为视频流时的广告流量判断模型图。图4是数据量最大流为广告流时的广告流量判断模型图。图5是广告码率参数的统计结果图。图6是广告流量识别方法总体流程图。图7是广告流与视频流来自不同ip时的广告识别流程图。图8是广告流与视频流来自同ip时的广告识别流程图。具体实施方式为了更清楚的说明本发明实施实例的技术方案,下面对实施实例或现有技术描述中所使用的附图做简单介绍。本发明提供一种能够实现从客户端播放视频产生的流量数据中识别广告流量的方法,本方法基于流量行为特征的识别和广告视频流量特征关联,包括但不限于对youtube移动端视频广告流量的识别。本发明采用如下技术方案:一种基于dfi的移动端加密视频广告流量识别方法,其特征在于,包括:移动端加密广告和视频流量的采集步骤和广告流与视频流行为特征关联匹配步骤,所述移动端加密广告和视频流量的采集方法为:步骤101配置数据采集环境,准备一台通过ssr代理可访问youtube网站的路由器,一台笔记本电脑,安卓和苹果测试手机各一台,360随身wifi硬件一支,步骤102测试网络环境,将笔记本电脑连接上指定的路由器,然后通过360随身wifi从笔记本电脑创建出一个无线网络,将测试手机接入该无线网络。在测试手机上打开youtube客户端,测试能否正常播放视频,若可以,继续后续步骤,若不可以,检查网络环境后再次测试,步骤103在电脑端打开wireshark,监听360随身wifi对应的网卡,即可抓取流经该360随身wifi的上下行数据,步骤104准备开始采集数据,点击wireshark开始捕获数据按钮,再点击测试手机youtube客户端上的某个视频,播放的同时采集下载的广告和视频数据,步骤105待视频播放到需要采集的时间,暂停播放,wireshark停止抓取数据,保存抓取的pcap或pcapng文件;步骤106返回步骤104,直至抓取足够数量的pcap或pcapng文件,步骤107统计视频信息和有无广告信息,将pcap或pcapng文件按照统一的格式命名;本采集方法的网络环境配置图如图1所示,数据采集过程的流程图如图2所示。通过所述移动端加密广告和视频流量的采集步骤从移动端加密视频广告中获取pcap或pcapng文件,所述的广告流与视频流行为特征关联匹配步骤为:步骤201遍历pcap或pcapng文件中的所有数据包,将相同ip源地址和ip宿地址的数据包组成ip流,统计每条ip流的传输数据量、开始时间、结束时间和持续时间,步骤202遍历pcap或pcapng文件中的所有数据包,并统计传输层协议信息,将传输层协议信息为tcp的数据包总数计入变量tcp_count,将传输层协议信息为udp的数据包总数计入变量udp_count,如果tcp_count>udp_count,将pcap或pcapng文件标记为由tls协议传输,如果tcp_count<udp_count,则将pcap或pcapng文件标记为由quic协议传输,步骤203由于广告和视频都属于流媒体数据,一条广告流或者视频流传输的数据量一定大于普通的文字和图片数据,因此过滤掉步骤201中数据量小于阈值ip_bytes_threshold的ip流,步骤204从过滤后的ip流中查找出传输数据量最大的ip流,记为largest_stream,实际中该流为视频流或广告流,取决于具体的广告数据量与视频数据量的大小,步骤205分别对每条ip流进行如下操作:遍历每条ip流中的数据包,记录每个整数秒内数据包的数量,得到该ip流每秒的数据包传输速率packets_ps,将数据包传输速率大于40个每秒的时刻值记录在主体流量时间序列数组highrate中,即报文交换速率快的时间段序列,再对主体流量时间序列数组highrate的断流情况进行标记,从头遍历数组highrate,当首次出现相邻两个主体流量时间序列的序列值之差大于10时,将当前相邻序列值中前一个序列值及其之前的所有主体流量时间序列的序列值存入新建的数组highrate_before,记为第一段流量时间序列;将当前相邻序列值中后一个序列值及其之后的所有主体流量时间序列的序列值存入新建的数组highrate_later,记为第二段流量时间序列,然后对ip流的主体流量时间序列highrate进行重新赋值,如果highrate_later为空,highrate没有发生长时间的断流,则highrate数组值不变;当highrate_later不为空时,如果数组highrae_before的长度大于数组highrate长度的一半,则先清空数组highrate,再将数组highrate_before赋值给数组highrate,否则,先清空数组highrate,再将数组highrate_later赋值给数组highrate,步骤206将数据量最大的largest_stream与largest_stream以外的过滤后的各个ip流依次比较,如果被比较的ip流(记为ip_stream1)的主体流量时间序列的最小值与被比较的ip流的数据量所对应的播放时长之和小于largest_stream的主体流量开始时刻,则将被比较的ip流加入到广告流序列中,ip_stream1与largest_stream流的数据量时间分布如图3所示;如果largest_stream的主体流量时间序列的最小值与largest_stream的数据量所对应的播放时长之和小于被比较的ip流(记为ip_stream2)的主体流量开始时刻,则将largest_stream加入到广告流序列中,ip_stream2与largest_stream流的数据量时间分布如图4所示,步骤207将广告流序列中数据量最大的ip流作为广告流;如果广告流序列为空,则在数据量最大的largest_stream中查询可能与视频流同ip的广告流,当第一段ip流量所对应的播放时长小于第二段ip流量的开始时刻与第一段ip流量的开始时刻的差值,则第一段ip流量为真正的广告流。步骤202中统计传输协议时每个100个数据包进行一次传输协议的判断并记录,这种均匀抽样的方法可以提高程序处理的效率;步骤203所述的ip流数据量阈值ip_bytes_threshold的取值单位为字节数,取值为400000;步骤205中将数据包传输速率大于40个每秒的时刻值记录在主体流量时间序列数组highrate中,具体的算法为:步骤301创建一维数组rate_packets,统计从0s开始每个1秒内的传输的数据包数量,该值即为数据包传输速率,步骤302依次遍历该ip流的数据包,取得数据包的时刻值t,t=int(t),int(t)为浮点型数t的整数部分并记为t,将没有传输数据包的时间段上的rate_packets[t]数据值赋值为0;将有数据包传输的时间段上的rate_packets[t]数据值赋值为[t,t+1]时段内数据包的个数,得到该ip流在传输过程中每秒的数据包传输速率,记录在数组rate_packets中,步骤303遍历数组rate_packets,当rate_packets[t]>40时,将t值存放在数组highrate中,即为该ip流的数据包传输速率大于40个每秒的时刻值序列;步骤206中被比较的ip流的数据量所对应的播放时长等于被比较的ip流的数据量与广告码率参数ad_bps的比值,largest_stream的数据量所对应的播放时长等于largest_stream的数据量与广告码率参数ad_bps的比值,步骤207中第一段ip流量所对应的播放时长等于largest_stream第一段流量时间序列内传输的数据包的数据量大小之和与广告码率参数ad_bps的比值;广告码率参数ad_bps的单位为字节数每秒,ad_bps的值为93696。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1