一种获取p2p视频系统节目信息的方法

文档序号:7720836阅读:126来源:国知局
专利名称:一种获取p2p视频系统节目信息的方法
技术领域
本发明属于P2P网络监控领域,具体设计在于通过捕获P2P视频服务器与P2P视 频客户端的通信数据包,在对数据包进行解析和协议还原的基础上,发现描述P2P视频节 目信息的文件,再通过节目信息文件的解析和抽取就能得到相应的视频节目信息。
背景技术
P2P视频系统,是个统一的称谓,泛指所有的基于P2P技术进行流媒体发布的网络 视频平台。 基于P2P技术在互联网上进行视频发布,比普通的基于Web技术的视频发布方式 有更高的效率、更好的共享鼓励机制,可以有效的节省带宽、充分利用各个节点的资源、极 大的降低视频服务器的负载,可以用较低的成本实现大规模的网络视频直播和点播。
P2P视频系统可以用有限的服务能力为更多的用户提供流媒体服务、可以高效的
发布和传输大容量的流媒体数据、可以最大限度的实现流媒体资源的交互和共享,为人们 的互联网使用带来很大的便利,但也产生了一些严重的问题。 当前,P2P网络视频在互联网上呈现出杂乱无序之势,违规视频横行、盗版视频猖 獗,并且缺乏有效监管,之所以会出现这种局面,就是因为基于P2P技术的视频发布动态性 强、自由度高、在时间和空间上都有高度的无序性,与传统的基于Web形式发布的视频相 比,难以收集视频信息、难以跟踪视频发布的情况,致使到目前为止,对基于P2P技术的视 频系统难以进行有效的监管。 搜索、采集互联网上P2P视频系统的节目信息,是实现对P2P流媒体视频传播进行 监管的第一步,是信息安全管理、流媒体资源管理的前提条件,鉴于此,本发明提出了一种 获取P2P视频系统节目信息的实现方法。

发明内容
—种获取P2P视频系统节目信息的方法,主要通过对某些已知的P2P视频发布系 统的视频节目发布模型的研究,分析P2P视频发布服务器与P2P视频客户端播放器的交互 过程,挖掘出P2P视频客户端播放器在加载或更新自身播放列表时与P2P视频服务器的内 在通信规律,再在捕获通信数据包的基础上依据此规律从中分析出与P2P视频节目信息有 关的数据内容,从而达到获取P2P视频节目信息的目的。 本发明的特征在于所述方法是在一个由P2P视频服务器和各P2P视频客户端组 成的P2P视频网络中依次按以下步骤实现的 步骤(1),选择一个P2P视频客户端,所述的P2P视频客户端是指在安装了 P2P视 频客户端播放器软件的主机上同时安装一个同步运行的数据包拦截器所组成的一个可以 播放来自P2P视频服务器的视频节目的客户端系统,所述数据包拦截器是一个P2P视频节 目信息采集模块,其中安装了依次相互串接的初始化模块、数据捕获模块,以及文件下载与 解析模块,其中,
初始化模块依次执行以下步骤 步骤(A-l):在初始化程序启动后,判断是否存在一个初始化文件,该初始化文件 含有以下参数 确定要捕获的P2P视频系统,用一个ID唯一地表示,以便由此确定要采集哪一个 P2P视频系统的节目信息, 所述ID的安装路径Path,是指所述P2P视频系统的客户端播放器在所述的初始化
模块运行的主机上的软件安装位置信息, 所述ID所对应的数据包解析方法,定义为Parser, 若不存在所述的初始化文件,则输入一个初始化文件,转入步骤(A-2),
若存在所述的初始化文件,则转入步骤(A-2),
步骤(A-2):输出所述的初始化文件;
数据捕获模块依次执行以下步骤
步骤(B-l),读取所述的初始化文件, 步骤(B-2),启动所述P2P视频客户端播放器并与所述的数据捕获模块同步运行, 步骤(B-3),在所述P2P视频客户端与P2P视频播放器的通信过程中,拦截其中由
所述P2P视频客户端播放器向P2P视频服务器发出的通信数据,其步骤如下 步骤(B-3-1),获得所述的P2P视频客户端播放器所在主机的网络适配器列表,得
到网络适配器的名字,所述网络适配器又称网卡或网络接口卡,是一种用来将用户要传递
的数据转换为网络上其它设备能够识别的格式的硬件设备, 步骤(B-3-2),从所述网络适配器列表中选择一个默认为0号的网卡,并手动设置 为混杂模式,所述网卡的混杂模式是指在此模式下网卡会接收所有经过网卡的数据包,
步骤(B-3-3),初始化接收数据包的程序,至少把其中的端口号、IP地址设置为所 述P2P视频服务器的端口和IP,完成对原始数据包的过滤,捕获数据包送入到指定的数据 缓冲区中, 步骤(B-3-4),按步骤(B-3-3)所述的方法捕获多个数据包,分配到各个制定的缓 冲区中, 步骤(B-3-5),判断是否达到所需要接收的数据包数目,若尚未达到,继续执行步 骤(B-3-4),否则停止接收,执行步骤(B-3-6), 步骤(B-3-6),把所述网卡从混杂模式置回正常接收模式,执行清理操作,复原现 场, 步骤(B-4),依次按以下步骤对步骤(B-3-5)拦截到的数据包进行处理,过滤出由 所述P2P视频客户端播放器发向所述P2P视频服务器的传输控制协议TCP数据包
步骤(B-4-l),若所述数据缓冲区中数据包队列不为空,则从队列中任意取出一个 数据包, 步骤(B-4-2),判断步骤(B-4-l)中任意取得的一个数据包的类型,在丢弃非TCP 协议类型的数据报后,执行步骤(B-4-3), 步骤(B-4-3),判断此TCP数据包的源IP地址,若不是所述P2P视频客户端播放器
发向P2P视频服务器的数据包,则丢弃,若是,则执行步骤(B-4-4), 步骤(B-4-4),重复步骤(B-4-l)至步骤(B-4-4),直到所述数据包队列为空,
步骤(B-5),依次按以下步骤,从步骤(B-4-4)中得到的数据包中还原出原始的由 所述P2P视频客户端播放器发向所述P2P视频服务器的资源统一定位地址URL请求信息,
步骤(B-5-l),从所述TCP数据包中分离出TCP首部和TCP报文段,分别存储到对 应的数据存储区域中, 步骤(B-5-2),读取所述TCP报文段中的超文本传输协议HTTP, 步骤(B-5-3),依次按以下步骤对所述HTTP协议进行还原,得到由所述P2P视频客
户端播放器向所述P2P视频服务器发出的资源统一定位地址URL请求信息, 步骤(B-5-3-l),从所述超文本传输协议HTTP请求报文中抽取请求行、请求头部、
空行和请求数据, 步骤(B-5-3-2),根据P2P视频客户端播放器发向P2P视频服务器的HTTP请求的
内容及P2P视频服务端的应答状态码,来判断是否是一个完整的请求/应答过程, 步骤(B-5-3-2-1),所述HTTP请求的内容格式为 GET/HTTP/1. 1 Accept:氺/氺 Acc印t-Langimge: zh_cn Accept-Encoding:gzip, deflate Host: 其中,GET/HTTP/1. 1 :是请求行,包含了请求的方式、请求文件所在的路径等信息,
Acc印t :指客户端能接受的文件格式,以便根据它判断并返回适当的文件格式,
Acc印t-Language :指出客户端能接受的语言种类,其中包括中文简体zh-cn,
Acc印t-Encoding :指客户端能接受的编码方式,
Host :对应网址URL中的Web名称和端口号, 步骤(B-5-3-2-2),所述P2P视频服务器端的应答状态代码的格式为
HTTP/1. 12000K, Content-Type:text/html ;charset = UTF_8, 其中,HTTP/1. 1 2000K :表示服务端应答状态代码为200,说明找到资源,并且一 切正常, Content-Type :指定了返回的文件类型和编码, 步骤(B-5-3-3),根据步骤(B_5-3-2_l)的P2P视频客户端播放器的请求内容和步 骤(B-5-3-2-2)的P2P视频服务器的应答状态代码,分别读取其中的HTTP协议信息、Host 主机信息和GET请求及路径信息,再通过http: 〃+host+文件路径GET的组合,进行URL还 原,组成一个由所述P2P视频客户端播放器向P2P视频服务器发出的资源统一定位地址URL 请求信息,文件下载及解析模块,依次按以下步骤获取P2P视频节目的数据信息,
步骤(C-l),从所述数据捕获模块输入所述资源统一定位地址URL请求信息、ID和 数据包解析方法Parser信息, 步骤(C-2),按以下步骤进行所述资源统一定位地址URL请求信息的过滤与下载,
步骤(C-2-1),定义一个文本文件的扩展名集合或一个压縮包文件的扩展名集合, 所述文本文件或压縮包文件中含有视频节目的有关信息,包含在所述资源统一定位地址 URL请求信息中,
步骤(C-2-2),把所有还原出的资源统一定位地址URL请求信息送入一个列表中,
步骤(C-2-3),读出所述列表中的资源统一定位地址URL请求信息,并按以下步骤 依次判断每一个请求 步骤(C-2-3-1),根据所述文件类型,确定所述文件属于所述文本文件的扩展名集 合还是属于压縮文件的扩展名集合, 若属于文本文件的扩展名集合,则读取文件内容执行步骤(C-2-3-2),
若属于压縮文件的扩展名集合,则读取文件内容执行步骤(C-2-3-3)
步骤(C-2-3-2),下载文本文件执行步骤(C-2-3-4), 步骤(C-2-3-3),下载压縮包文件,调用解压縮程序,把压縮文件解压后输出,执行 步骤(C-2-3-4), 步骤(C-2-3-4),把读取得到的文件流下载到本地保存; 步骤(C-3),依次按以下步骤解析步骤(C-2-3-4)中得到的文件 步骤(C-3-1),读取由所述数据捕获模块传来的ID和解析方法Parser信息, 步骤(C-3-2),根据ID信息确定要解析的P2P视频系统,根据所述解析方法
Parser信息调用相应的解析方法, 步骤(C-3-3),解析文件内容,抽取所需的视频节目的信息,连同所述的ID信息一 起输出;步骤(2)依次按以下步骤获取P2P视频节目信息,
步骤(2. 1),生成所述初始化文件, 步骤(2. 2),启动装载有P2P视频节目信息采集系统的P2P视频客户端播放器以及 所述的数据捕获模块, 步骤(2. 3),捕获由所述P2P视频客户端播放器发向P2P视频服务器的数据包数 据, 步骤(2. 4),从步骤(2. 3)中得到的数据包数据中还原出由所述P2P视频客户端播 放器发向所述P2P视频服务器的资源统一定位地址URL请求信息,其中,所述的资源统一定 位地址URL请求信息所指向的文本文件或压縮包文件中已包含了 P2P视频节目信息,
步骤(2.5),过滤并下载所述URL请求信息所指向的文件, 步骤(2. 6),解析所述下载得到的文件内容,输出所选定的P2P视频系统的视频节 目信息。 通过比较可以发现,本发明的方案与技术具有以下特点 本发明在已经分析出P2P视频服务器与P2P视频客户端播放器的通信规律的基础 上,通过旁路监听、数据包捕获、协议还原等一系列操作,从中抽取出与视频节目信息有关 的数据,达到获取P2P视频节目信息的目的。其优点在于1对硬件的要求低,对网络质量 的要求低——即发现成本低;2采用旁路监听的方法对P2P视频节目信息进行获取,不依赖 于P2P视频发布系统本身的机制;3采集P2P视频节目信息的实时性强,所获取的节目信息 在当前时刻及以后一段时间都是在线的、可正常播放的。4以P2P视频客户端节目信息为对 象,凡是能够显示到播放器端的节目信息都可能获取到,获取结果完整、信息准确;5所获 取的P2P视频节目信息不是一个单一的数据,而是一个多维的、能够描述P2P视频节目详细 特征的数据集,节目信息详细而全面。 本发明不同于通过网页爬行的方式获取P2P视频节目信息,有些节目信息是发布到网站上的,通过网页爬行也能够获取部分节目信息,但不够全面和准确,而且在爬行的过 程中需要严重依赖互联网环境、需要反复访问服务器,不仅效率低,也容易被服务器误认为 是DDOS(分布式拒绝服务攻击)而拒绝服务。获取P2P视频系统节目信息的还有一种方法 就是以伪P2P播放客户端的形式,加入到P2P视频网络,向服务器注册并获得节目信息,但 这种方式对于加密的通信协议或是需要认证的P2P播放客户端是行不通的,而本发明直接 对网卡操作,对通信数据进行分析,可以有效的避免对服务器的认证这一问题。


图1是本发明一种获取P2P视频系统节目信息的方法的网络接入图。
图2是本发明图一种获取P2P视频系统节目信息的方法的整体结构图。
图3是本发明中初始化模块的结构图。 图4是本发明中P2P视频客户端播放器与服务器的交互通信过程。 图5是本发明中数据捕获模块的功能结构图。 图6是本发明中数据捕获模块在捕获网络数据包时的流程。 图7是本发明中URL过滤与文件解析模块功能结构图。 实施方式 本发明的目的在于,将基于P2P技术的网络视频发布系统中所有的用于发布的各 类视频节目信息全部搜索并采集到,为实现P2P网络视频系统的节目监管提供技术支持, 以保障互联网的安全和秩序。 —种获取P2P视频系统节目信息的方法,用一个同步的数据包拦截器与P2P视频 客户端播放器并行运行,拦截器监视网卡并在网络层上捕获所有经由P2P视频服务器流向 P2P视频客户端播放器的数据,再对这些数据进行协议还原和过滤分析,从中抽取出P2P视 频客户端播放器向P2P视频服务器发送的与P2P视频节目信息有关的URL请求信息,下载 这些URL请求所对应的文件并解析文件内容,就可以得到P2P视频系统的节目信息。
图1所示的就是本发明网络接入图,P2P视频客户端系统与网络中选定的某一视 频服务器连接,当P2P视频客户端与P2P视频服务器进行通信时,通信数据包流经网卡,所 有的数据都将被P2P视频客户端所安装的同步的数据包拦截器所捕获。
本发明的整体结构由三个处理模块构成,分别为初始化模块、数据捕获模块、文件 下载与解析模块,它们之间的关系及整体结构如图2所示 在图2所示的整体结构中,主要由三个基本处理模块组成,它们构成了本发明的 基本特征,在具体的工作过程中,它们依次含有以下处理步骤
步骤1 :初始化 在所述的数据捕获模块工作之前需要完成以下初始化工作,本发明的初始化工作 主要由初始化模块完成,此模块的功能及基本处理流程如图3所示。
初始化模块依次按如下步骤完成初始化工作。 St印l :P2P视频节目信息采集系统的初始化模块启动运行,首先判断是否存在定 义的初始化文件,如果存在,则直接读取初始化文件内容,否则,按如下的规定输入相关参 数 (1)确定要捕获的P2P视频系统,也就是说要对哪一个P2P视频系统的节目信息进行采集,用一个唯一的ID来表示。
(2)确定(1)中的ID的客户端播放器软件在主机上的安装路径,定义为Path,此 路径指的是P2P视频客户端播放器软件安装在主机上的位置信息,用Path来表示。
(3)确定(1)中的ID所对应的数据包解析方法,定义为Parser,因为不同的P2P视 频系统其通信数据包的类型、格式、特征均不相同,需要不同的方法进行解析,每一个ID都 对应一个Parser方法。 St印2 :将(1) 、 (2) 、 (3)所描述的三个字段信息写入一个初始化文件,这样,每 一个P2P视频系统就对应一个唯一的ID、一个客户端播放器软件在本地的安装路径信息 Path、一个针对此P2P视频系统的数据包解析方法Parser,这三个字段信息组成一条数据 信息。在同一个初始化文件中可以写入一条以上的信息。 St印3 :读取初始化文件内容,根据Path参数启动P2P视频客户端播放器运行,同 时启动数据捕获模块运行,并将ID、 Parser作为参数传入。
步骤2:捕获网络数据包 网络数据包的捕获由数据捕获模块完成,此模块主要利用P2P视频客户端播放器 与P2P视频服务器的通信规律及交互过程,拦截它们之间的通信数据,再对通信数据进行 过滤分析从中抽取出与P2P视频节目信息有关的数据。 P2P视频客户端与P2P视频服务器的初始交互通信过程如图4所示。
根据图4所示的通信过程,所述的数据捕获模块主要用来捕获P2P视频客户端播 放器发向P2P视频服务器的与更新或加载P2P视频节目信息有关的URL请求信息。此模块 与P2P视频客户端的播放器并行运行,读取初始化文件中的ID和Parser参数作为输入,将 捕获到的由P2P视频客户端播放器发向P2P视频服务器的URL请求及输入信息作为输出, 依次设有 数据包拦截子模块,数据包过滤子模块及协议还原子模块,这些子模块集中完成 数据捕获模块的任务,此模块的功能结构图如图5所示。
以上所述这些模块中
步骤2. l拦截网卡数据 数据包拦截子模块,读取初始化文件,启动P2P视频客户端播放器,并与播放器同 步运行,以捕获流经网卡的所有数据,同时,将捕获到的网络数据包交给数据包过滤子模块 处理。
数据包拦截子模块在拦截网卡数据的过程中,具体按如下步骤处理 St印l :数据包拦截子模块启动运行,接收由初始化模块传入的ID和Parser等参
数信息。 St印2 :在St印l执行的同时,初始化模块也启动了 P2P视频客户端播放器系统运
行,二者同步并行运行,数据捕获模块作为一个并行的监听程序,以旁路监听的方式,监听
网卡动作并捕获流经网卡的所有数据包。 利用Jpc即捕获网络数据包的流程图如图6所示 根据图6所示的流程,其执行步骤依次如下 (1)获得网卡适配器列表, (2)获得系统中网络适配器的名字,
10
(3)从适配器列表中选择一个默认的0号适配器,
(4)将所选择的适配器人工设置为混杂模式, (5)设置包过滤的过滤器的参数,初始化接收数据包的程序结构,以完成对于原始数据包的初始的过滤处理,如根据其中端口号、IP地址进行过滤等,
(6)设置缓冲区, (7)分配一个数据包对象并连接已分配的缓冲, (8)捕获多个数据包,从网卡适配器接收数据包并将数据包放入指定的数据缓冲区中,若接收成功返回TRUE,否则返回FALSE, (9)通过触发回调函数把捕获符合过滤器规则的数据包转发给数据包过滤子模块进行处理, (10)接收数据包的过程结束并释放数据包对象,
(11)关闭网卡设备并将网卡恢复到正常接收状态。
步骤2. 2:网卡数据过滤 数据包过滤子模块接收到数据包拦截子模块拦截到的网卡数据后,即对拦截到的数据包进行过滤处理,过滤出由P2P视频客户端播放器发向P2P视频服务器的TCP数据包。
数据包过滤子模块依次按以下步骤进行数据包内容过滤 St印l :数据包拦截子模块在拦截到流经网卡的所有数据包后,将所有的数据存储在一个队列里,然后根据源IP地址,目的IP地址,源端口,目的端口,协议类型等,对需要进行内容过滤的数据包,发送到数据包过滤子模块进行处理; St印2 :数据包过滤子模块在收到需要进行内容过滤的数据包后,按如下步骤对数据包内容进行过滤 (1)如果数据包队列不为空,从队列中取出一个数据包, (2)判断数据包的类型,如果不是基于TCP协议的数据包则丢弃, (3)判断此TCP数据包的源IP、目的IP,如果是由P2P视频客户端播放器发向P2P
视频服务器的数据包则继续处理,否则丢弃。 (4)处理所有的由P2P视频客户端播放器发向P2P视频服务器的数据包,直到数据包队列为空。 经过数据包过滤子模块过滤后,只有一类数据包可以留下,这类数据包就是由P2P视频客户端播放器发向P2P视频服务器的、基于TCP协议的数据包。针对这些数据包,调用协议还原子模块对其进行协议还原。
步骤2.3:协议还原 经过数据包过滤子模块处理后,所得到的数据包都是由P2P视频客户端播放器发向P2P视频服务器的基于TCP协议的数据包。协议还原子模块将对这些数据包进行协议还原,以还原出原始的P2P视频客户端播放器发向P2P视频服务器的请求数据信息。
St印l :协议还原子模块在接收到来自数据包过滤子模块传送过来的TCP数据包以后,对数据包信息依次按如下步骤进行协议还原。 (l)TCP数据包是传输层数据,一条TCP数据包含了 TCP首部和TCP报文段的数据部分,将这两部分数据分离开来,分别存储到相应的数据结构中, (2)读取TCP报文段中的数据部分,此数据部分包含应用层协议信息,此应用层协议就是HTTP协议,再要对HTTP协议进行应用层的协议还原, (3)依次按如下步骤对应用层的HTTP协议进行还原,还原出由P2P视频客户端播放器发向P2P视频服务器的URL(统一资源定位符)请求信息, ①根据HTTP协议的规定,将每个无序的,不完整的数据包分片,组织成完整的,有序的一系列数据,并去除协商、应答、重传、包头等网络信息,以获取一条基于完整会话的记录,此记录就是一条资源统一定位地址URL请求信息,也叫URL链接, ②一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据组成,从TCP报文段的数据部分分别抽取这些信息。 ③根据客户端发向服务端的请求信息和服务端对客户端的应答状态代码来判断
是否是一个完整的请求,同时获取URL,方法如下 根据"Host :"来获取域名、主机地址等信息; 根据"GET"方法获取请求的方式及请求文件的路径; 根据"Content-Type :"来判断文件类型; 根据"Content-Encoding :"来判断文件内容的编码方式; 通过http: 〃+host+GET (文件路径)的组合进行URL还原,就可以组合成一个由P2P客户端发向P2P视频服务器的请求的URL,同时也可以判断此URL请求的文件类型、文件编码方式等。 St印2 :还原出URL后,数据捕获模块处理结束,将此URL信息,连同读取初始化文件得到的ID和Parser信息作为输出, 一并传给文件下载及解析模块进行处理。
步骤3 :文件下载及解析 数据捕获模块所捕获到的URL链接,是一个由P2P视频客户端播放器发向P2P视频服务器并指向P2P视频服务器的、包含视频节目信息的文件路径信息,将此URL所指向的文件下载到本地并进行解析,就可以获取其中的描述P2P视频节目的数据信息。
在所述的文件下载及解析模块中,依次包含URL过滤及下载子模块和文件解析子模块,接收由数据捕获模块传入的URL、 ID和Parser信息,首先将URL过滤后将URL所指向的节目文件下载到本地,再根据Parser信息调用相应的解析方法对节目文件进行解析,最后将解析得到的P2P视频节目信息和ID信息一并输出。此模块的功能结构图如图7所示。
步骤3. 1 :URL的过滤与下载 从数据捕获模块处得到的URL信息,包含了 P2P视频客户端播放器发向P2P视频服务器的所有的请求,而与P2P视频节目信息有关的请求,存在于两类文件里, 一类是文本文件,另一类是压縮包文件,URL的过滤与下载模块,就是先将这两类文件过滤出来,再将其下载到本地; URL的过滤与下载,依次按如下步骤执行 St印l :初始化操作,定义两个结构,一个是表示文本文件的扩展名集合,另一个是表示压縮文件的扩展名集合,例如定义textFile = {. xml,. txt,. html,. ini,. js,. txt},表示文本文件的扩展名集合,zipFile = {. zip, . rar, . gzip, . gz}表示压縮文件的扩展名
隹A朱n o St印2 :将所有还原出的URL放到一个列表里,执行St印3 ; St印3 :读出列表里的URL信息,依次判断的每一个URL请求,执行St印4 ;
St印4 :判断URL请求信息所表征的文件类型,是否包含于textFile集合,如果不包含则执行St印5,否则执行St印6 ; St印5 :判断URL请求信息所表征的文件类型,是否包含于zipFile集合,如果不包含则执行St印8,否则执行St印6 ; St印6 :根据URL信息读取此URL所定位的文件内容,如果内容可读且不报任何读写错误,执行St印7,否则执行St印8。 St印7 :读取文件,如果此文件是压縮文件格式则执行St印9,否则执行St印lO
St印8 :如果列表不为空,则取出下一个URL,执行St印4,否则执行St印ll ;
St印9 :下载此压縮文件包,调用解压縮程序,将压縮包文件解压后输出。执行St印ll St印lO :根据URL信息,读取文件流,并将其下载保存到本地。执行St印ll
St印ll :URL过滤及文件下载结束,调用文件解析子模块对下载的包含P2P视频节目信息的文件内容进行解析。
步骤3.2:文件解析 通过URL过滤及下载子模块下载得到的文件,是P2P视频客户端播放器向P2P视频服务器发送与更新或加载P2P视频节目列表有关的URL请求所得到的文件,这些文件中包含着P2P视频服务器返回给P2P视频客户端播放器的P2P视频节目信息,解析这些文件就能从中抽取出P2P视频节目信息。
依次按如下步骤解析文件 St印l :根据下载的文件内容的格式、特征、编码方式等,编写相应的解析算法,所有的解析方式都归根于对文本文件的解析; St印2 :逐行扫描文件内容,从中提取出与P2P视频节目信息有关的数据。如节目名称、播放链接、播放时间、视频节目来源等; St印3 :将编写好的解析方法在程序开始运行之前,也就是在初始化模块中写入到初始化配置文件中,每一个(或一类)P2P视频系统对应着一个解析此视频节目信息文件的方法,即每一个P2P视频系统的标识ID对应一个解析此ID的视频节目信息的Parser方法; St印4 :文件解析子模块读取由数据捕获模块传过来的ID和Parser信息; St印5 :根据ID信息确定要解析哪一个P2P视频系统,根据Parser信息调用相应
的解析方法; St印6 :解析文件内容,抽取所需的视频节目信息,连同P2P视频系统的ID信息一同输出; St印7 :每一个ID就对应着一组节目信息,节目信息就是所有获取的P2P视频节目信息。 文件内容解析完成,所选定的P2P视频系统的视频节目信息也就得到了。
1权利要求
一种获取P2P视频系统节目信息的方法,其特征在于,所述方法是在一个由P2P视频服务器和各P2P视频客户端组成的P2P视频网络中依次按以下步骤实现的步骤(1),选择一个P2P视频客户端,所述的P2P视频客户端是指在安装了P2P视频客户端播放器软件的主机上同时安装一个同步运行的数据包拦截器所组成的一个可以播放来自P2P视频服务器的视频节目的客户端系统,所述数据包拦截器是一个P2P视频节目信息采集模块,其中安装了依次相互串接的初始化模块、数据捕获模块,以及文件下载与解析模块,其中,初始化模块依次执行以下步骤步骤(A-1)在初始化程序启动后,判断是否存在一个初始化文件,该初始化文件含有以下参数确定要捕获的P2P视频系统,用一个ID唯一地表示,以便由此确定要采集哪一个P2P视频系统的节目信息,所述ID的安装路径Path,是指所述P2P视频系统的客户端播放器在所述的初始化模块运行的主机上的软件安装位置信息,所述ID所对应的数据包解析方法,定义为Parser,若不存在所述的初始化文件,则输入一个初始化文件,转入步骤(A-2),若存在所述的初始化文件,则转入步骤(A-2),步骤(A-2)输出所述的初始化文件;数据捕获模块依次执行以下步骤步骤(B-1),读取所述的初始化文件,步骤(B-2),启动所述P2P视频客户端播放器并与所述的数据捕获模块同步运行,步骤(B-3),在所述P2P视频客户端与P2P视频播放器的通信过程中,拦截其中由所述P2P视频客户端播放器向P2P视频服务器发出的通信数据,其步骤如下步骤(B-3-1),获得所述的P2P视频客户端播放器所在主机的网络适配器列表,得到网络适配器的名字,所述网络适配器又称网卡或网络接口卡,是一种用来将用户要传递的数据转换为网络上其它设备能够识别的格式的硬件设备,步骤(B-3-2),从所述网络适配器列表中选择一个默认为0号的网卡,并手动设置为混杂模式,所述网卡的混杂模式是指在此模式下网卡会接收所有经过网卡的数据包,步骤(B-3-3),初始化接收数据包的程序,至少把其中的端口号、IP地址设置为所述P2P视频服务器的端口和IP,完成对原始数据包的过滤,捕获数据包送入到指定的数据缓冲区中,步骤(B-3-4),按步骤(B-3-3)所述的方法捕获多个数据包,分配到各个制定的缓冲区中,步骤(B-3-5),判断是否达到所需要接收的数据包数目,若尚未达到,继续执行步骤(B-3-4),否则停止接收,执行步骤(B-3-6),步骤(B-3-6),把所述网卡从混杂模式置回正常接收模式,执行清理操作,复原现场,步骤(B-4),依次按以下步骤对步骤(B-3-5)拦截到的数据包进行处理,过滤出由所述P2P视频客户端播放器发向所述P2P视频服务器的传输控制协议TCP数据包步骤(B-4-1),若所述数据缓冲区中数据包队列不为空,则从队列中任意取出一个数据包,步骤(B-4-2),判断步骤(B-4-1)中任意取得的一个数据包的类型,在丢弃非TCP协议类型的数据报后,执行步骤(B-4-3),步骤(B-4-3),判断此TCP数据包的源IP地址,若不是所述P2P视频客户端播放器发向P2P视频服务器的数据包,则丢弃,若是,则执行步骤(B-4-4),步骤(B-4-4),重复步骤(B-4-1)至步骤(B-4-4),直到所述数据包队列为空,步骤(B-5),依次按以下步骤,从步骤(B-4-4)中得到的数据包中还原出原始的由所述P2P视频客户端播放器发向所述P2P视频服务器的资源统一定位地址URL请求信息,步骤(B-5-1),从所述TCP数据包中分离出TCP首部和TCP报文段,分别存储到对应的数据存储区域中,步骤(B-5-2),读取所述TCP报文段中的超文本传输协议HTTP,步骤(B-5-3),依次按以下步骤对所述HTTP协议进行还原,得到由所述P2P视频客户端播放器向所述P2P视频服务器发出的资源统一定位地址URL请求信息,步骤(B-5-3-1),从所述超文本传输协议HTTP请求报文中抽取请求行、请求头部、空行和请求数据,步骤(B-5-3-2),根据P2P视频客户端播放器发向P2P视频服务器的HTTP请求的内容及P2P视频服务端的应答状态码,来判断是否是一个完整的请求/应答过程,步骤(B-5-3-2-1),所述HTTP请求的内容格式为GET/HTTP/1.1Accept*/*Accept-Languagezh-cnAccept-Encodinggzip,deflateHost其中,GET/HTTP/1.1是请求行,包含了请求的方式、请求文件所在的路径等信息,Accept指客户端能接受的文件格式,以便根据它判断并返回适当的文件格式,Accept-Language指出客户端能接受的语言种类,其中包括中文简体zh-cn,Accept-Encoding指客户端能接受的编码方式,Host对应网址URL中的Web名称和端口号,步骤(B-5-3-2-2),所述P2P视频服务器端的应答状态代码的格式为HTTP/1.1 200 OK,Content-Typetext/html;charset=UTF-8,其中,HTTP/1.1 200 OK表示服务端应答状态代码为200,说明找到资源,并且一切正常,Content-Type指定了返回的文件类型和编码,步骤(B-5-3-3),根据步骤(B-5-3-2-1)的P2P视频客户端播放器的请求内容和步骤(B-5-3-2-2)的P2P视频服务器的应答状态代码,分别读取其中的HTTP协议信息、Host主机信息和GET请求及路径信息,再通过http://+host+文件路径GET的组合,进行URL还原,组成一个由所述P2P视频客户端播放器向P2P视频服务器发出的资源统一定位地址URL请求信息,文件下载及解析模块,依次按以下步骤获取P2P视频节目的数据信息,步骤(C-1),从所述数据捕获模块输入所述资源统一定位地址URL请求信息、ID和数据包解析方法Parser信息,步骤(C-2),按以下步骤进行所述资源统一定位地址URL请求信息的过滤与下载,步骤(C-2-1),定义一个文本文件的扩展名集合或一个压缩包文件的扩展名集合,所述文本文件或压缩包文件中含有视频节目的有关信息,包含在所述资源统一定位地址URL请求信息中,步骤(C-2-2),把所有还原出的资源统一定位地址URL请求信息送入一个列表中,步骤(C-2-3),读出所述列表中的资源统一定位地址URL请求信息,并按以下步骤依次判断每一个请求步骤(C-2-3-1),根据所述文件类型,确定所述文件属于所述文本文件的扩展名集合还是属于压缩文件的扩展名集合,若属于文本文件的扩展名集合,则读取文件内容执行步骤(C-2-3-2),若属于压缩文件的扩展名集合,则读取文件内容执行步骤(C-2-3-3)步骤(C-2-3-2),下载文本文件执行步骤(C-2-3-4),步骤(C-2-3-3),下载压缩包文件,调用解压缩程序,把压缩文件解压后输出,执行步骤(C-2-3-4),步骤(C-2-3-4),把读取得到的文件流下载到本地保存;步骤(C-3),依次按以下步骤解析步骤(C-2-3-4)中得到的文件步骤(C-3-1),读取由所述数据捕获模块传来的ID和解析方法Parser信息,步骤(C-3-2),根据ID信息确定要解析的P2P视频系统,根据所述解析方法Parser信息调用相应的解析方法,步骤(C-3-3),解析文件内容,抽取所需的视频节目的信息,连同所述的ID信息一起输出;步骤(2),依次按以下步骤获取P2P视频节目信息,步骤(2.1),生成所述初始化文件,步骤(2.2),启动装载有P2P视频节目信息采集系统的P2P视频客户端播放器以及所述的数据捕获模块,步骤(2.3),捕获由所述P2P视频客户端播放器发向P2P视频服务器的数据包数据,步骤(2.4),从步骤(2.3)中得到的数据包数据中还原出由所述P2P视频客户端播放器发向所述P2P视频服务器的资源统一定位地址URL请求信息,其中,所述的资源统一定位地址URL请求信息所指向的文本文件或压缩包文件中已包含了P2P视频节目信息,步骤(2.5),过滤并下载所述URL请求信息所指向的文件,步骤(2.6),解析所述下载得到的文件内容,输出所选定的P2P视频系统的视频节目信息。
全文摘要
一种获取P2P视频系统节目信息的方法,属于P2P网络监控领域,其特征在于,用一个选择性的安装在P2P视频客户端播放器所在主机上的P2P视频节目信息采集模块来捕获、过滤出该P2P视频客户端播放器与P2P视频服务器通信过程中由所述P2P视频客户端播放器向该P2P视频服务器发出的TCP数据包,提取超文本传输协议HTTP,并对HTTP协议进行还原,形成资源统一定位地址URL请求信息并将此URL所指向的包含P2P视频节目信息的文本文件下载到本地,再用预设的与每一个用ID标识的P2P视频系统相一一对应解析方法解析出所述对应文件中包含的P2P视频节目信息。本发明具有对硬件要求低、与P2P视频发布系统无关、实时性强、节目信息全面、详细、完整和准确的优点。
文档编号H04L29/06GK101729602SQ200910241878
公开日2010年6月9日 申请日期2009年12月11日 优先权日2009年12月11日
发明者张奇, 张建标, 张涵, 朱通, 管磊, 赵旭强 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1