P2P直播软件设计的技术原理和改进

最近对P2P直播技术进行了一些研究,谈谈个人对Tvkoo软件的优缺点的看法,一方面希望Tvkoo能做的更好,另一方面也抛砖引玉一下。

  P2P直播的技术难点有: 数据挖掘实验室

  一、防火墙的穿透

  超过90%的电脑都在防火墙后面,如果让2台在防火墙后面的电脑能够实现P2P互联,这是一个技术的难点。有2种方式:

  1. 要求用户配置TCP端口:BT和电驴采用的方式,配置需要网络专业知识。一般做法是通过在防火墙上开启TCP端口来实现,如果开启了端口或者本身有Internet IP地址的,为高联通性电脑;在防火墙内并且没有开启TCP端口的电脑,为低联通性电脑。高联通性电脑可以和其它的高联通性电脑已经低联通性电脑进行P2P;而低联通电脑只能和高联通性电脑进行P2P。因此在BT、电驴中,有Internet IP或者已经在防火墙上开启端口的电脑速度很快,而在防火墙后面的电脑(一般为局域网上网方式)就比较慢了。而通过局域网方式上网的电脑超过70%,如果没有网络基础,或者没有网管特殊配置,只能处于低联通性,速度很慢。 数据挖掘交友

  2. 防火墙自动穿透。无需用户配置,自动让2台在防火墙后面的电脑能P2P互联。P2P连接可以使用TCP和UDP 2种方式。由于WinXP SP2限制了一个应用程序的TCP连接数,因此采用TCP方式进行P2P的话,要安装TCP限制的破解软件。而Tvkoo是使用UDP进行数据传送的,因此不会有TCP限制。这是为什么有些用户说:通过Netstat看不到很多的TCP连接而怀疑Tvkoo是不是P2P软件的原因。

  Tvkoo的P2P穿透力是我见到最强的软件了,当然由于没有使用TCP,使得在仅允许HTTP访问的防火墙后面的计算机没有办法访问。Skype在P2P穿透时有一个技巧,让一些有Internet IP的电脑使用TCP的80端口,在仅允许HTTP访问的防火墙后面的电脑通过类似HTTP的访问方式连接这些80端口的电脑进行P2P连接。Tvkoo也可以考虑一下这个方式。

  二、WMV格式的分析 数据挖掘工具

  目前P2P直播都是使用WMV格式,通过模拟HTTP服务器的方式,把WMV数据流传送给Media Player。这是P2P直播的关键点。需要将Media Encoder发出的HTTP数据进行拆包,然后组成30秒-1分钟的P2P数据块,然后通过P2P方式将数据块发送给Tvkoo客户端,Tvkoo模拟成HTTP服务器将传输完成的数据块发送给Media Player。这部分Tvkoo做的也不错。

数据挖掘实验室

  三、如何有效的选择P2P的节点 数据挖掘实验室

  这是Tvkoo的弱项。因为一台电脑在P2P传输时,最多连接几十台其它的电脑。当几万台电脑同时传送一个P2P数据块时,要有一个优化算法。比如:美国有5000个用户,中国电信有5000个用户,中国网通有5000个用户,而每个用户最多只能连30-50个节点,如果不凑巧,一个电信的用户连接了20个网通的用户和30个美国的用户,就不断的出现断断续续的情况了。这就是为什么人一多,Tvkoo就卡,并且Tvkoo要把国外IP封掉的原因了。 数据挖掘实验室

  有什么好的方式解决这个问题呢?我先抛砖引玉一下:

数据挖掘实验室

  (1) 作为P2P直播的营运商,可以多设几台P2P种子服务器,分布在不同的网段中。比如:北方网通设一台(组),南方电信设一台(组),种子的内容是一样的。种子服务器多了,可以降低优化算法的难度。

  (2) 种子服务器和普通节点的优先级:种子服务器的优先级总数低于普通节点的,如果普通节点的速度快了,就减少从种子服务器获取的数据量。

数据挖掘实验室

  (3) 全球IP地址表。P2P节点仲裁服务器中,应该有一个全球IP地址表,分中国大陆、香港、台湾、北美、欧洲、澳洲、其它。中国大陆先按照营运商分:电信、网通、铁通、联通、教育网等,再按照省份分类。(网上有下载,可以整理)

数据挖掘实验室

  (4) 高速网段表。在P2P访问中,节点动态地将速度快的其它节点IP地址传回服务器服务器根据全球IP地址表算出网段,以网段-网段的方式记录在数据库中。

  (5) 当一个新用户连入节点时,在全球IP地址表中找到最近的节点,按照比例依次分配最快网段的节点;最近的节点;差一个级别的稍近的节点;随机节点以及种子服务器数据挖掘交友

  (6) P2P在数据传送中,可以将30秒视频作为1块数据包;数据包中按照每16KB作为一个数据块。每个时间段(如2秒),本节点向其它节点交换一下数据块的传送情况,然后计算一下数据包中每个数据块的拥有率,优先传送拥有率低的数据块。在拥有率相当的情况下,随机选择。 数据挖掘研究院

  (7) 在数据交换中,对于传送慢的节点,定期剔除,然后问节点仲裁服务器要新的节点。 数据挖掘实验室

  (8) 如果数据包中小于10%的数据块没有传送完毕,在时间充足的情况下,对于余下的数据块,可以同一个数据块向多个节点请求。

  (9) 节点仲裁服务器也会将新的P2P节点强行加载到另一个节点上,但不能超过节点最大连接数。 数据挖掘工具

[数据挖掘专家] [数据挖掘研究院] [数据挖掘论坛] [数据挖掘实验室]
上一篇:ECMAScript基础类以及Asp.net Ajax对类Object的扩展
下一篇:短歌行——代码中泛出的浪漫小花
最新评论共有 0 位网友发表了评论 , 查看所有评论
发表评论( 不能超过250字,需审核,请自觉遵守互联网相关政策法规。 )
匿名?
数据挖掘网站导航 数据挖掘论坛导航
  • 数据挖掘工具
  • 数据挖掘论坛
  • DataCruncher - Cognos
  • MineSet - MathSoft
  • Intelligent Miner - GainSmarts
  • Sqlserver - SAS - Clementine
  • CART - Weka - WizSoft
  • NeuroShell - ModelQuest
  • data mining tools - Darwin
  • 数据挖掘交友
  • 数据挖掘博客
  • 数据挖掘工具
  • 数据挖掘资源
  • 数据挖掘技术算法
  • 数据挖掘相关期刊、会议
  • 研究院联盟合作专区
  • 数据挖掘基础与相关技术
  • 数据挖掘厂商与就业
  • 数据挖掘研究者乐园
  • 知名厂商数据挖掘工具资料
  • 国内数据挖掘实验室
  • Foreign Data Mining Lab
  • 热点关注
  • 阿蒙:一个程序员老总的年终总结
  • HTML框架代码全集
  • JAVA字符集
  • 即将消逝的十大热门技术 Java也算
  • 统一建模语言(UML)的现状及发展
  • UML的三大“硬伤”
  • AJAX 常用函数
  • UML用例建模的慨念和应用
  • AJAX通用类:AJAXRequest v0.3
  • 服务器端可控情形JS跨域访问解决方法
  • 论坛最新话题
  • Foundations of Statistical Natural Langu
  • Game Theory meet Data Mining: A Recent P
  • System Building: How does it help or hin
  • 数据挖掘与Clementine培训
  • 新手报到
  • 求 SASEM 客户流失预测分析
  • 数据挖掘工程师/搜索研究院—北京——无线
  • 数据挖掘入门介绍(如何着手数据挖掘)
  • Information Overload Survey Results
  • The INEX 2005 Workshop on Element Retrie
  • 相关资讯
  • Rational Rose和UML可视化建模基础
  • 系统约定:用UML描述工作流管理
  • UML的三大“硬伤”
  • 统一建模语言UML释义之(三)
  • 绘制UML活动图的步骤和要点
  • UML用例建模的慨念和应用
  • 用Rational Rose给XML DTD造型
  • 统一建模语言(UML)的现状及发展
  • 统一建模语言UML释义(二)
  • 统一建模语言UML概述
  • 数据挖掘实验室资料
  • 数据挖掘博客地址
  • 数据挖掘实验室网站地址
  • Prepare for Medicare audits by using dat
  • 注册成为SAS用户与爱好者俱乐部会员
  • 水南梅
  • 明日烟
  • 新人报道
  • 下载
  • 厦门服务器托管,450元/月—0592-5177319 高
  • 买空间送域名--0592-5177319 高静