0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

利用Winpcap实现网络流媒体识别算法并对其性能进行分析和验证

电子设计 来源:网络整理 作者:佚名 2020-01-08 08:13 次阅读

随着计算机网络视频压缩等关键技术的快速发展,网络流媒体技术目前已成为继文字和图片之后,互联网信息传播的主要形式。通过网络流媒体技术,用户可以方便地存取、查阅和播放网络上的流媒体数据。如何从海量的网络数据中快速发现流媒体数据,是进行网络视频服务质量监测、网络流量统计、网络视频用户行为分析及视频内容监管等服务的前提和基础。

网络流媒体服务为应用层服务,其数据传输主要采用专有应用层协议RTP/RTCP。因此,对网络视频数据流的发现首先是识别应用层协议。针对应用层协议的识别,文献提出了一种以协议中出现频率最高的字段作为特征串来识别协议的方法,且采用一个特征串来标识一种协议。文献提出了基于签名字串的方法来识别应用层协议,其主要针对的是P2P协议的范围,且需要对整个报文通过匹配多个特征串来识别一种P2P协议,时间效率偏低。文献提出了基于先分类后分组的识别应用层协议及流量的方法,但此方法的本质还是基于某些固定端口的,若对于通过随机选择端口而实现的应用层协议,此方法就缺乏准确性和灵活性。

本文通过分析网络流媒体交互过程的特征,以应用层传输协议对应的关键特征字串为判断依据,设计了一种基于Winpcap的网络视频流识别算法,实现了对网络流媒体的发现,并通过实验对本文设计的算法性能进行了分析和验证。

1、Winpeap简介

Winpcap是由伯克利分组捕获库派生而来的分组捕获库,它在Windows操作平台上实现对底层包的截取过滤。

Winpcap是BPF模型和Libpcap函数库在Windows平台下网络数据包捕获和网络状态分析的一种体系结构,这个体系结构是由一个核心的包过滤驱动程序,一个底层的动态连接库Packet.dll和一个高层的独立于系统的函数库Libpcap组成。底层的包捕获驱动程序实际为一个协议网络驱动程序,通过对NDIS中函数的调用为Windows 95/98/NT/2000提供一类似于UNIX系统下Berkeley Packet Filter的捕获和发送原始数据包的能力。Packet.dll是对这个BPF驱动程序进行访问的API接口,同时它有一套符合Libpcap接口(UNIX下的捕获函数库)的函数库。

Winpcap包括三部分:第一个模块NPF(NetgroupPacket Filter),是一个虚拟设备驱动程序文件。它的功能是过滤数据包,并把这些数据包原封不动地传给用户态模块,这个过程中包括了一些操作系统特有的代码。第二个模块Packet.dll为Win32平台提供了一个公共的接口。不同版本的Windows系统都有自己的内核模块和用户层模块。Packet.dll用于解决这些不同。调用Packet.dll的程序可以运行在不同版本的windows平台上,而无需重新编译。第三个模块wpcap.dll是不依赖于操作系统的,它提供了更加高层、抽象的函数。

Winpcap提供了一套标准的编程接口,与libpcap兼容,可使得原来许多UNIX平台下的网络分析工具快速移植过来便于开发各种网络分析工具,充分考虑了各种性能和效率的优化,包括对于NPF内核层次上的过滤器支持,支持内核态的统计模式,提供了发送数据包的能力。

2 、应用层协议RTP/RTCP

RTP/RFCP是一种应用型的传输层协议,它没有连接的概念,既可以建立在面向连接的底层协议上,又可以建立在面向无连接的底层协议上,因此RTP对传输层是独立的。由于网络流媒体的传输实时性要求较高,UDP的传输延时低于TCP,能与音频和视频流很好地匹配,所以,在实际应用中,RFP/RTCP/UDP是流媒体传输的主要协议,其结构如图l所示。

利用Winpcap实现网络流媒体识别算法并对其性能进行分析和验证

实时传输协议RTP是为实时数据提供端到端传递服务的协议,能够传递时间信息和实现流同步。但RTP本身并不能为按顺序传送数据包提供可靠的传输机制,也不提供流量控制或拥塞控制,它依靠RTP控制协议RTCP配合实现控制服务。在RTP会话期间,各参与者周期性地交互RTCP包,RFCP包中含有己发送的数据包的数量、丢失的数据包的数量等统计资料,会话方可以利用这些信息动态地改变传输速率,甚至改变有效型。RTP数据包结构如图2所示。

利用Winpcap实现网络流媒体识别算法并对其性能进行分析和验证

从图2可以看出,RTP数据包由12个字节的固定RTP头和不定长的连续多媒体数据组成,其中的多媒体数据可以是压缩后数据。

其中比较重要的几个域及其意义如下:

版本(V):2b,此域定义了RTP的版本,此协议定义的版本是2。

填料(P):1b,填料可能用于某些具有固定长度的加密算法,或者在底层数据单元中传输多个RTP包。

扩展(X):1b,若设置扩展比特,表示固定头(仅)后面跟随一个头扩展。

CSRC计数(CC):4b,CSRC计数包含了跟在固定头后面CSRC识别符的数目。

标志(M):1b,标志用来允许在比特流中标记重要的事件,如帧范围。

负载类型(PT):7b,此域定义了负载的格式,由具体应用决定其解释。协议可以规定负载类型码和负载格式之间一个默认的匹配。其他的负载类型码可以通过非RTP方法动态定义,RTP发射机在任意给定时间发出一个单独的RTP负载类型。

序列号(SN):16b,每发送一个RTP数据包,序列号加一,接收机可以据此检测丢包和重建包。序列号的初始值是随机的。

时间标志:32b,时间标志反映了RTP数据包中第一个比特的抽样瞬间。时间标志的起始值是随机的。

SSRC:32b,SSRC域用以识别同步源。标识符被随机生成,以使在同一个RTP会话期中没有任何两个同步源有相同的SSRC识别符。

CSRC列表:0~15项,每项32b。CSRC列表识别在此包中负载的有贡献源。识别符的数目在CC域中给定。

通过对RTP协议的分析,总结出以下几条“流特征”:

(1)UDP负荷头两个比特是0x10(RTP的版本号是2)。

(2)RTP流负载类型PT值保持不变。即同一流媒体数据包RTP头的9~15b的值保持不变。

(3)RTP流的SN值为递增。

(4)RTP包的SSRC值为定值,同一流媒体数据各包的SSRC值保持不变。

3 、算法实现

首先通过Winpcap过滤器对数据包进行捕获,识别其中的握手数据包,然后分析呼叫信令的内容,获取传输流媒体的源、目的地址和端口号,再通知给过滤器针对该源、目的地址和端口号进行数据捕捉;识别其中的UDP数据包进行分析,根据“流特征”进行分析,确定所要捕捉的RTP数据流。

采用以上4条作为判断RTP流量的必要条件,当对每一个UDP数据流,如能连续检出4个包符合上述策略,则认定其满足为RTP数据流的充分条件。

经过大量实际数据的测试,该算法可以有效识别网络流媒体。

4、 结语

在分析网络流媒体传输协议的基础上,利用Winpcap实现了一个网络流媒体识别算法。经试验证明,该算法能够有效识别流媒体,对网络流媒体的应用具有积极的作用。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 协议
    +关注

    关注

    2

    文章

    598

    浏览量

    39185
  • WINDOWS
    +关注

    关注

    3

    文章

    3526

    浏览量

    88453
  • 操作系统
    +关注

    关注

    37

    文章

    6747

    浏览量

    123204
收藏 人收藏

    评论

    相关推荐

    基于流媒体技术的手机视频播放系统的研究与实现

    【作者】:李露一【来源】:《华南理工大学》2009年【摘要】:随着无线通信网络从2.5G向3G进化以及手机硬件技术不断的升级换代,多媒体应用和宽带网络服务成为可能,它们的结合体就是无线流媒体
    发表于 04-24 09:24

    流媒体视频直播技术加快电力行业信息化建设

    直播时移技术,支持多流同屏直播。支持完善的远程WEB管理,实现全程无人值守。视频直播系统是利用视频压缩、网络传输、媒体播放等先进的流媒体技术
    发表于 08-23 10:13

    完整系统解决方案可简化家庭及可携式串流媒体音频应用

    (MRC) 接收器可达到优异的 Wi-Fi 效能以及更大的讯号覆盖范围;Wi-Fi Direct 及多用途功能可实现针对网络以及不同通道上对等串流媒体的同步链接;符合蓝牙技术联盟标准的双模式蓝牙与 BLE
    发表于 03-03 10:44

    如何使用矢量网络分析仪对放大器性能进行测试?

    矢量网络分析仪对放大器性能进行测试的方法有哪些?
    发表于 08-07 06:57

    怎么实现智能小区中嵌入式MP3流媒体网络广播系统设计?

    怎么实现智能小区中嵌入式MP3流媒体网络广播系统设计?
    发表于 05-27 06:13

    介绍一种基于Winpcap网络视频流识别算法

    本文设计了一种基于Winpcap网络视频流识别算法实现了对网络
    发表于 06-03 06:34

    什么是流媒体服务器?

    介绍一下什么是流媒体服务器。  其实流媒体服务器从广义上来说,是属于视频服务器的一种。它主要是将视频或者音频文件进行数据压缩,然后存储等,在远程监控及视频应用方面,流媒体服务器都有广泛
    发表于 06-30 09:28

    嵌入式Linux音频流媒体终端系统的设计资料分享

    Linux 音频流媒体终端系统的设计与实现随着网络技术的发展 , 网络性能得到显著提高 , 同时 , 多
    发表于 12-16 06:06

    无线流媒体通信性能瓶颈的仿真研究

    本文仿真研究Ad-hoc无线网络环境下MPEG-4流媒体的通信性能,在分析和探讨无线实时流媒体网络
    发表于 07-08 08:43 14次下载

    保障流媒体时间结构的网络时延分析

    保障流媒体时间结构的网络时延分析:流媒体同步对端到端时延和时延抖动提出了确定的要求,而终端抖动缓存一方面能消除时延抖动的影响,一方面却增加了端到端时延,
    发表于 10-28 23:08 12次下载

    一种可重构流媒体调度算法

    针对现有流媒体算法在异构环境下性能恶化的问题,论文提出一种支持用户异构性的可重构流媒体调度算法——RSMS
    发表于 02-08 15:39 7次下载

    使用矢量网络分析仪对放大器性能进行分析

    使用矢量网络分析仪对放大器性能进行分析    放大器的测试指标可以分为两类:线性指标测试和非线性指标测试。线性指标的测试基于S参数的测量,采
    发表于 02-24 10:46 24次下载

    winpcap实现网络监控系统

    为了提高公司网络利用率,约束公司员工在上班时间的上网情况,提高工作效率,文中提出了一种基于Winpcap网络数据包的获取方法,对捕获到的
    发表于 03-09 14:12 52次下载
    <b class='flag-5'>winpcap</b><b class='flag-5'>实现</b><b class='flag-5'>网络</b>监控系统

    P2P和CDN技术融合实现流媒体业务

    P2P和CDN融合实现流媒体业务是一种高效实用的方案。本文首先对P2P和CDN技术的优缺点进行分析比较,指出二者融合的优势,然后介绍
    发表于 04-16 14:00 25次下载
    P2P和CDN技术融合<b class='flag-5'>实现</b><b class='flag-5'>流媒体</b>业务

    关于流媒体后视镜的应用分析

    流媒体后视镜:使用感光元件和特殊的算法实现防眩光,例如整合WDR\HDR技术,自动调节光线至舒适程度,又能清晰还原车后环境。
    的头像 发表于 08-23 09:45 5950次阅读