p2p streaming---forcetech

来源:互联网 发布:刘浦江知乎 编辑:程序博客网 时间:2024/05/29 11:21

ForceTech(原力科技)是一家搞p2p streaming的方案提供商,他不像PPLive那样直接提供服务,而只是给第三方提供技术支持。

 

ForceTech和清华的林闯教授合作,进行技术研究。在IEEE上搜到他们在08年合作发表的一片论文:Enabling on-demand Internet Video Streaming Services to Multi-terminal Users in Large Scale,今天又看了看这篇文章,在这里写点报告,做点积累。

 

文章中写到,他们的系统有这么几个特点:multi-process server management,efficient topology organization, enhanced UDP transmission, intelligent content distribution,采用的是CDN+P2P的分发架构,这个架构说白了就是在更靠近用户的网络边缘放一些服务器,视频源到边缘服务器之间采用CDN的方式进行内容发放,用户终端之间以及终端与边缘服务器之间采用P2P的方式传输视频。

 

文章中提到的系统平台主要面向三网融合,支持不同类型的终端(PC, STB, 手机终端),通过Multi-terminal Accessing Server (MAS)检测不同类型的终端,然后为终端提供合适的界面(web,EPG,wap)。系统分为四层:data layer, management layer, transmission layer and user layer。其中数据层(准确的说应该是数据库)和管理层是集中控制,用于信令面的控制,而传输层包括视频源CDN,便于服务器,用于实际视频的传送,而所谓用户层,其实就是上面说的用户终端的适配。

 

系统定义了一些功能实体,为了简单起见,我们就将信令面的控制实体统一称为SC,而网络中传输部包括CDN Server和边缘服务器(ES),用户层统称为UA,各个终端称为peer。这些实体组成了一个p2p streaming的系统。

 

文章中所写的工作流程大致如下:peer登录到合适的界面,选择节目,请求信息发送到SC,然后SC查找数据库,通过一些算法,得到最合适的ES和其他peer列表,然后返回给发请求的Peer,此peer再向列表中的ES/peer请求内容。

 

流程比较简单,但是其中会涉及到一些问题,比如SC应该如何选择列表,使得ES整体达到负载均衡(GSLB),peer如何设置优先级以达到良好的系统性能(网络拓扑,传输时延等)。

 

文章中号称此系统的几个优点:安全(用户名密码授权认证,这个不值得提吧。。。),可靠(电信级平台,7*24*365),可扩展性(1 server 10M bandwidth for 10,000 concurrent users, 1/20 of C/S ),QoE(只占用用户带宽的60%~70%(那也得用户的带宽够啊), 缓存机制(硬盘,内存),通过内容切片,压缩(?),重组来达到实时传输), 支持各种协议(mms, rtsp, http, file, etc.(C/S架构吧?))和各种视频格式(MPEG 1,MPEG 2, MPEG 4, 3GP, MP3, H.261, H.263, H.264, ASF, WMV, RM, RA, RMVB, AVI, WAV and etc)。

 

 

下面文章对系统技术上的特点做了进一步的说明:

1)multi-process server management

其实就是在一个物理服务器上开多个进程,每个进程都是一个完整的服务器,通过绑定不同的端口来提供服务。类似于虚拟机的感觉。通过负载均衡使得每个逻辑服务器所服务的用户数保持大致相同。

 

2)Intelligent content distribution

就是热点内容的预判,当一个视频的链接请求数越来越多,达到一个门限值是,判定此内容为热点内容,从而提前为其分配更多资源,并且SC调度更多的ES进行视频提供。

 

3)Enhanced Transmission Protocol

他们开发了一个私有的UDP协议,这个协议通俗来讲,就是既有TCP的可靠性,又有UDP的NAT穿越能力和高传输速率。个人感觉其实就是在普通UDP协议上用了自己的一套重传和包序重排的机制,还不一定有拥塞控制功能,八成是非TCP友好型。

 

4)Efficient Peer organization and selection

采用了mesh和tree的混合结构来组织Peer(有点意外,不知道现在还是不是采用这种组织结构),总体上peer按照分层的树状组织,每层的peer都从上层获取数据,而同一层的peer又分成一些cluster,cluster中的peer优先从本cluster中更强大的peer出获取数据,一旦这个强大peer离开了,那么就从其他cluster中或者上层peer中获取数据。对于这种结构,给出的数据如下:500kbps的视频,每个节点负责2各子节点,共10层,可以达到20,000用户的支持,时延在每层1-3s之间。

peer的选择主要考虑这么几个方面:高IP相似性,低网络时延,高数据传输速率,低丢包率。通过IP地址分析来选择临近peer并达到拓扑匹配,流量优化的效果。文章给出了算法的公式(不知道一些参数的常量是怎么来的,公式是怎么来的)。

 

 

文章剩下的部分着重讲了在机顶盒和手机上P2P Streaming的部署。最后介绍了实际部署情况:

在测试中,VOD拖动时延1-2秒。在部署成本上,文章做了一个对比:

传统IPTV系统:服务器成本,130万,带宽成本195万。

P2P IPTV系统:比较乱,总之成本会降很多

 

最后有个运营数据:

8天,28354个用户,110频道(live and vod), 500-600bps码率,6各SC, 35个ES, 消耗带宽共1.465G,启动时延10-15秒,拖动时延2-8秒,用户在线时间656.6秒。

 

 

总的来说这篇文章实质的东西不多,挺多内容是介绍性的,偏宣传。ForceTech在这上有几个专利,不知道能不能搜到。文章比较老,估计现在应该有些改动。如果哪位朋友有有关他们系统的最新文章或资料,希望能多多分享!

 

原创粉丝点击