基于HTTP的点对点广播

简介:

本文是我一年前做一个p2p解决方案的时候写的,现在翻出来有些基本概念已经忘记了,才知道以前竟然还做过这个,惊讶中啊:

简介:

此方案由开放源代码项目P2P-Radio修改而成,(P2P-Radio是一个点对点音频和视频广播系统,功能有freeloader检测,流式传输,SHOUTcast 支持,一个易于使用的GUI,以及一个单独的监视应用程序来显示当前P2P网络的结构。-----------摘自P2P-Radio项目文档)下图展示了一般网络结构:

clip_image001

该框架安排有一个监控模块,每个加入此P2P网络的节点都会在此模块有所表示从而全面展示了全网结构

工作原理:

1. 虚拟资源服务器启动,随即从真实资源所在地下载流数据。

2. 虚拟资源服务器启动TCP/UDP守护收发线程,等待客户连接。

3. 如果使能监控,则虚拟资源服务器第一个加入到监控服务的树形结构中。

4. 客户连接虚拟资源服务器,同时客户启动一个接收线程,实时接收媒体流并载入本地缓存,同时客户要启动同上虚拟资源服务器一样的TCP/UDP收发线程,这样它便可以作为资源提供者服务其它节点,如果使能监控,则每个连接节点都会作为被连接节点的子节点加入监控树形结构。

5. 如果使能监控,数据的每次传输以及发生的每个事件(如加入,退出,重定向等)都会在树形结构有所体现,并打印日志。

6. 默认地,代码中会启动本机默认播放器播放流媒体,但是也可以通过Web方式用浏览器插件播放,因为流媒体本身就是在http上传输的,这将非常方便。

优点:

音视频流在http上传输,点对点传输。对于播放实时流媒体可以节省大量带宽。网络拓扑监控与数据传输分离,有利于扩展。

缺点:

必须有资源服务器,因此存在资源服务器处的带宽瓶颈

测试

经过测试在局域网中性能很好,具体方案如下:

一台主机充当虚拟资源服务器,将资源从真正的服务器下载到本地缓存,连续下载,基于时间戳实时更新流数据,局域网内其他主机中的一台连接此虚拟资源主机,另外的主机可以随意彼此连接。

1. 节点1:ip-10.2.1.56,port-2000, 虚拟资源服务器 à 远程主机的音频

2. 节点2:ip-10.2.1.65,port-2000, 一般节点 à 节点1

3. 节点3:ip-10.2.1.62,port-2000, 一般节点 à 节点2

4. 节点4:ip-10.2.1.56,port-2490, 一般节点 à 节点3

5. 节点5:ip-10.2.1.62,port-2490, 一般节点 à 节点4

6. 节点6:ip-10.2.1.56,port-12533,一般节点 à 节点2

7. 节点7:ip-10.2.1.65,port-2490, 一般节点 à 节点3

8. 在节点2用windows media player打开http://10.2.1.62:2490/stream.mp3

9. 节点7自动打开windows media player播放http://10.2.1.62:2001/stream.mp3

以上测试通过,播放流畅,不足之处在于音乐有些走调,不知原因,解决中,另外就是偶尔有爆破音,不能确定原因,解决中。


 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1274095

相关文章
|
1月前
|
前端开发
webpack如何设置devServer启动项目为https协议
webpack如何设置devServer启动项目为https协议
141 0
|
3月前
|
Web App开发 移动开发 JavaScript
Python网络编程(三),HTTP协议
Python网络编程(三),HTTP协议
61 0
|
4月前
|
网络协议
【计算机网络-应用层】HTTP协议
【计算机网络-应用层】HTTP协议
|
4月前
|
网络协议 网络安全
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
【网络安全 | HTTP】 gopher协议原理、语法及利用总结
108 0
|
1月前
|
安全 搜索推荐 数据安全/隐私保护
深入探讨HTTPS协议的原理和工作流程
【2月更文挑战第10天】
36 4
深入探讨HTTPS协议的原理和工作流程
|
2月前
|
安全 算法 Java
【JavaEE初阶】 详解HTTPS协议加密过程
【JavaEE初阶】 详解HTTPS协议加密过程
|
3月前
|
安全 算法 网络安全
浏览器 HTTPS 协议的相关知识点有哪些?
浏览器 HTTPS 协议的相关知识点有哪些?
20 0
|
3月前
|
缓存 前端开发
HTTP协议学习
HTTP协议学习
15 0
|
3月前
|
存储 缓存 安全
面试题:HTTP 协议包括哪些请求?
面试题:HTTP 协议包括哪些请求?
24 0
|
3月前
|
存储 安全 网络安全
HTTP与HTTPS的区别:安全性、协议地址和默认端口等比较
HTTP与HTTPS的区别:安全性、协议地址和默认端口等比较
154 0