QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3106|回复: 2

在想能不能用BStorm做P2P电视台

[复制链接]
发表于 2006-7-20 22:23:32 | 显示全部楼层 |阅读模式
一个开源的p2p的电视台。

目标:
1.P2P架构
2.使用标准化构架
3.使用C++
4.原则上不限制载体

基本设计

CLIENT --------> TRACKER (DHT网络)
       提交对某一个电视台在线CLIENT列表的请求
       <--------
       返回PEERLIST

CLIENT 连接 PEERLIST中的其他CLIENT,下载并上传电视台节目。

下载、上传算法:

网络电视:只对最近一段时间的内容进行缓冲,过期的会被丢弃。


比如你只对4M的最近内容进行缓冲
1.读取新的内容
2.丢弃旧的内容
3.分发当前的内容

优化:分割文件片:

比如,把4M的缓冲区分割成4份,种子把它们分别随机上传给4个不同的CLIENT,CLIENT之间分别互相得到全部的内容,在最好的情况下,可以

达到4倍的网络速度。

定理1:最好的情况下(每个文件都有仅一个CLIENT接受并上传给其他所有人),文件块分片为n块,服务器负载为原来的1/n。


评分:
为了防止只下载不上传,采用评分系统,每个人记录其他人上传、下载(给自己)的流量,在一定时间周期内,进行优胜劣汰算法。
评分系统不能太严厉不然效率下降。


为什么这是一种优化:

可以打开多线程下载
可以同时下载多个缓冲区间的数据。


播放:
当缓冲区连续内容大于缓冲区的x%并且视频的头部完整时,开始播放。

有关标准化设计:

1.使用XML
2.使用一种快速、安全的hash算法保护数据完整性。(MD5、sha-1)
3.使用Reactor模式
5.使用第三代P2P的技术:DHT,D-H公钥随机交换加密。
6.使用标准的CGI方法得到PEER LIST。
 楼主| 发表于 2006-7-20 23:25:47 | 显示全部楼层
[code:1]op2p-tv://视频的hash信息之base64编码/TRACKERIP端口信息[/code:1]

这是设想中的URL形式的链接,用P2P TV CLIENT即可打开。

服务器:同BT中的TRACKER,只需输出PEER LIST即可。
客户端:同其他客户端协商,分块下载当前缓冲区内容并上传,缓冲区准备好就播放。
回复

使用道具 举报

发表于 2006-8-5 21:27:10 | 显示全部楼层
其实我是很想做的,苦于没有时间
还有就是想做的事情太多了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-28 04:25 , Processed in 0.073630 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表