基于3G网络的移动P2P视频直播技术研究引言随着3G网络应用环境的逐渐成熟和移动终端的普及,移动流媒体业务成为移动增值业务发展的必然趋势。它满足了人们追求能够更随时、随地、随意的获得多媒体信息的需求,权威机构预测流媒体业务将是3G网络上的主导业务。3G网络的铺设为移动流媒体业务的开展提供了物理基础,但是有限的移动网络带宽和快速增长的移动流媒体业务,使得传统互联网的C/S模式无法适应移动网络的需求。而随着移动通信与计算机网络的不断融合,在互联网领域飞速发展的P2P技术进入了人们的视野,如果把P2P应用在移动通信领域,就能解决移动流媒体在信息源上的瓶颈。本文在充分分析了P2P视频直播技术和3G网络的特点后,提出了一种面向3G环境下移动终端(如手机、PDA等)的混合型移动P2P视频直播服务模型。该模型适用于3G网络环境,它将视频资源的发现和处理分开,从根本上减少移动终端设备的计算负担和中心服务器的负载,同时利用P2P技术进行数据分发,提高资源利用率,减小网络延迟,从而提高了移动视频直播业务的服务质量。经实际测试,证明了模型的实时性、有效性和稳定性,同时,40也为未来移动通信网络下的其它移动P2P应用、移动增值业务的开发提供了参考和借鉴。1.13G3G是英文3rdGeneration的缩写,意为第三代移动通信技术,是指将无线通信与国际互联网等多媒体通信结合的新一代移动通信系统,相对第一代模拟制式手机(1G)和第二代GSM、CDMA等数字手机(2G),第三代手机(3G)能够处理图像、音乐、视频流等多种媒体形式,提供包括网页浏览、电话会议、电子商务等多种信息服务。随着中国3G技术及市场的进一步发展,亚洲必将成为全球3G业务的中心,由3G业务所带来的前所未有的通信革命以及由此带来的拉丁美洲、非洲等地电信市场的飞速发展,必将给各大运营商和移动设备提供商带来丰厚的利润,而用户也将享受更加便捷的各种3G增值业务,3G将更加贴近用户的生活需求。1.2P2P视频直播技术P2P视频直播是目前互联网最流行的一种网络流媒体广播方式,它利用P2P的原理来建立播放网络,从而达到节省服务端带宽消耗、减轻服务端处理压力的目的。目前国内外比较成功的P2P视频直播软件主要有PPLive、PPStream、QQLive和沸点等。PPLive是目前国内知名度最高、用户数最多、覆盖面最广的网络视频直播软件。它采用的是比较前沿的P2P技术,有别于其他同类软件,它的内核采用了独特的ALM多播和内聚算法技术,有效地降低了视频传输对运营商主干网的冲击,减少了出口带宽流量,并能够实现用户越多播放越流畅的特性,有效解决了当前网络视频点播服务的带宽和负载有限问题,使得整体服务质量大大提高。同时,在同类的网络电视软件中,PPLive有效的解决了内网穿透问题,开发出了目前最领先的“穿透内网自动打开UPnP功能”技术,并解除WinXP对TCP的连接数的限制,还有效的使得PPLive能够方便的穿透防火墙。以上种种都为局域及各种内网用户提供了最大程度上的便利。1.33G平台移动P2P视频直播服务面临的限制和挑战与传统Internet下的P2P视频直播相比,在移动终端上实现移动P2P视频直播服务具有一些新的限制和挑战:(1)移动终端:移动设备CPU的处理能力、可用的存储空间、电池使用时间的限制等等和固定网络节点设备相比是有很大的差距,这使得它不能像固定网络设备的P2P视频直播系统那样长期提供快速稳定的数据传输服务;(2)业务流量:P2P视频直播应用会消耗相当大的网络流量,而无线资源又是非常有限的,因此必须在P2P业务和无线资源消耗之间取得一种新的平衡点,这就决定了在互联网中普遍使用的全分布式P2P系统架构无法平移到移动无线通信网络中来;(3)相对恶劣的信道环境和移动性:在3G平台无线网络中,经常可能因为无线信号的多径衰落和信道拥塞等问题造成P2P节点之间的连通性不能得到保障,而移动环境下节点的频繁移动性对现有的P2P业务而言也是个很大的挑战,P2P应用的网络拓扑结构不能同步地适应物理网络的调整,因而必须进行实时监听以便及时感知移动终端设备的状态;(4)计费模式:在移动通信网络中部署P2P业务,首先要解决的是计费问题。有两种策略可以考虑:一种是把P2P网络修改成一种可管理的网络,纳入现有移动通信网络的计费架构中去计费;另一种策略是保持P2P业务的纯洁性,采用简单而粗略的计费方式,比如“按流量计费”。总之,在移动网络环境当中,全面的计费模式是其面临的主要问题之一;(5)安全问题:对移动P2P网络而言,通信安全、内容安全、网络安全、数字版权等同样是其必须面临解决的问题。固定网络P2P业务所带来的法律问题是绝对不能出现在移动通信网络中的,所以数字版权管理问题、P2P网络垃圾信息过滤、P2P网络病毒隔离、P2P网络本身结构的安全问题都是必须解决的,这对移动运营商而言是一个最大的挑战。系统架构经过以上分析和研究,本文设计了如下的模型架构。在P2P直播系统中,P2P网络模型的选取对系统的建立及效率有极大影响。P2P通常有三种不同的网络模式,即全分布式、集中式和混合式。通过对移动P2P视频直播服务所面临的限制和挑战的分析,全分布式P2P并不适合开发移动P2P视频直播应用。集中式P2P虽然能够最大限度控制网络传输,但是中心服务器必须保存网络中所有移动终端的全部信息,从而大大地增加了中心服务器的负荷,同时由于容易遭到直接的攻击而存在严重的安全性问题,因而不适用于大型的移动P2P网络。混合型P2P集中了分布式和集中式二者的优点,能够有效地控制和利用网络资源,同时又具有抗攻击性能强的优势,是移动P2P网络模型的最佳选择。因而本文采用了一种混合型的P2P视频直播服务模型,将视频资源的发现和处理分开,从根本上减少移动终端的计算负担和中心服务器的负荷,最大程度上实现资源的广泛共享和系统的有效控制。3G平台移动P2P视频直播服务网络模型如图1所示:1.移动P2P视频直播系统模型服务端由索引服务器(IS)、状态服务器(ES)、数据服务器(DS)和代理网关构成;2.索引服务器为中心服务器,它实时监听数据服务器的视频数据上传服务,对所有视频数据建立索引同时生成xml格式的节目列表文件,以备移动终端选择下载;3.状态服务器在接收到移动终端发出的频道请求信息后会建立并维护两张表:移动节点状态信息表和对应的视频资源片断状态表,同时将视频资源以片段的形式进行组织并指导其他移动终端用户进行下载;4.数据服务器为直播数据源,向移动终端用户提供视频下载服务,并且定时向状态服务器发送其状态信息;5.代理网关服务器接入无线通信网络以实现移动终端的网络通信协议Internet协议的转换、通信数据包的转发以及计费管理等功能[13]。6.索引服务器只向移动网络中的上线用户发送视频资源列表信息,即负责视频资源的发布工作,不指导终端用户的下载工作,因而网络负载相对较小,可位于无线通信网络中;状态服务器和数据服务器的处理工作需要大量的网络流量,而无线通信网络带宽有限,因此只能位于有线网络中,这是由混合型P2P网络的结构所决定的。业务流程P2P视频直播服务通常采用数据分块策略实现视频数据的分发。当视频的某一个数据块下载完成后,如何去选择下一个数据块(数据选择)和拥有此数据块的节点(节点选择),是对下载算法、终端性能和网络带宽的一个严峻考验。由于是直播服务,我们采用顺序下载算法下载数据块,但为了使视频直播延迟时间达到最小,我们又对单个数据块进行了分片,然后启动多个线程并行下载这些片段。因此我们采用数据分块+分片策略进行资源控制以实现视频直播服务。3G平台移动P2P视频直播服务流程如图2所示:资源发布如上图所示,数据服务器为直播数据源,负责资源发布工作。当数据服务器发布某一资源R时,索引服务器实时监听到数据服务器的R资源发布信息后将其写入种子文件,然后赋予该种子文件一个全局唯一标识的资源ID号;同时报告状态服务器该资源R的发布信息以进行种子信息的同步,并在种子文件中记录该状态服务器的IP地址和端口号;最后,索引服务器将资源R的ID号和对应状态服务器的IP地址和端口号返回给数据服务器。状态服务器在接收到索引服务器发出的资源R的发布信息后会建立并维护两张表:移动节点信息表(表名为ID_Node_Info,表1)和对应的资源片断状态表(表名为ID_Res_Pieces,表2),表名中的ID即为该资源的全局唯一标识的资源ID号。其中,两表中的Client_ID为移动节点的唯一标识,ID_Node_Info表存储P2P网络中实时共享视频资源R的所有移动节点的信息;ID_Res_Pieces表存储这些处于共享资源R状态的节点的片段状态信息,片段列数据采用位图法表示,即数字“0”表示节点无该片段,数字“1”表示节点已有该片段。数据服务器根据索引服务器返回的状态服务器的IP地址和端口号与状态服务器建立连接,并发送数据服务器所在位置(IP地址)、端口号、资源唯一标识ID、承载能力和当前资源片段状态等信息。状态服务器根据此信息在视频资源R的两个表(ID_Node_Info和ID_Res_Pieces)中各添加一条记录,由于数据服务器是视频资源R的数据源,对应的ID_Res_Pieces表中片段列数据都标示为“1”。资源共享如前所述,本文中的3G平台移动P2P视频直播服务模型采用数据分块+分片策略来实现视频直播服务。移动节点A进入该P2P网络后,向索引服务器发送上线消息。索引服务器接收到节点A的上线消息后,返回给它一个频道资源列表,包含资源ID、资源名称、对应状态服务器的IP地址和端口号等信息。假设移动节点A选择观看频道R,则它向资源R对应的状态服务器发送初始连接请求,建立连接,同时发送节点A所在位置(IP地址)、端口号、要下载的资源的ID、承载能力和当前资源片段状态等信息。状态服务器接收到节点A的消息后,判断节点A是否为初始连接资源R从而做出相应的处理。1.初始连接:根据资源标识ID在对应的两张表(ID_Node_Info和ID_Res_Pieces)中添加新的记录,其中在ID_Res_Pieces表中,把表示节点A当前资源片段状态的字段Bitmap的值标识为全“0”,查询出数据服务器发送的资源R最新数据块的块号,搜索出拥有该数据块的所有移动节点,然后把资源R的最新块号和根据影响移动终端下载的多种因素进行权值计算得到的一批最优下载节点返回给移动节点A。2.非初始连接:移动节点A根据上一次连接后状态服务器返回的最新块号和节点地址启动多个线程进行资源的下载,完成之后将下载成功的片段信息报告给状态服务器以请求下一个数据块的下载。状态服务器收到节点A的请求后更新ID_Res_Pieces表中节点A的片段状态信息,搜索出拥有该数据块的所有移动节点,然后把根据影响移动终端下载的多种因素进行权值计算得到的一批最优下载节点返回给移动节点A,如此反复,直到移动节点A停止视频直播服务。不同于传统固定网络,无线通信网络一般需采用移动IP技术,因此在本模型中采用移动终端定时报告机制,即移动终端定时向状态服务器发送心跳包报告其IP地址,状态服务器通过对移动节点的实时状态管理,对数据库中ID_Node_Info和ID_Res_Pieces表做出相应的处理,最终保证了视频直播服务的可靠性和实时性。视频播放流媒体文件在传输的时候要先分解成许多数据包,为了使媒体数据能连续输出,不会因为网络暂时拥塞导致视频播放出现停顿,需要在每个节点设置一定的流媒体数据缓冲区,即采用缓存机制来弥补延迟和抖动的影响,并保证数据包的顺序正确。本文采用了一种环式缓存区,把节点获得的流媒体数据缓存到本地,保证了视频播放的流畅性和稳定性。实验结果与分析针对上述3G平台移动P2P视频直播服务模型,本文通过开发基于WindowsMobile6.0的客户端软件进行测试,客户端软件包括资源下载、资源上传、网络通信、系统配置等功能性模块。测试网络环境:(1)中国移动TD-SCDMA(2)中国联通WCDMA测试设备:DopodHTCP4550(2