论文阅读笔记(五)

简介:
 P2P文件共享和流媒体系统,内容分发,减轻服务器负载,VoD在用户共享视频内容方面同步很少,因此更难。需要每个节点贡献出一些硬盘空间(1GB)。新的内容复制,内容发现的调度机制。

      VoD和其他流媒体播放系统不同的地方在于每个节点可以在同一时间观看影片的不同部分,从而减小了相互之间的协助性,因此需要每个节点贡献出一些硬盘,而不是只贡献出一些播放缓冲区。从某种意义上看,就成为一个分布式文件系统。

      一个P2P VoD系统包含如下几个部分:1)源内容分发服务器 2)一组tracker,用来帮助节点连接到其他节点上去分享内容。3)一个bootstap服务器,用来帮助节点找到一个合适的tracker。4)其他服务器,比如日志服务器(记录用于数据管理的重要事件),传输服务器(帮助节点穿越NAT)。5)一组节点,它们会和上述各种服务器通信,并与其他节点贡献内容,此外,还会实现分布式哈希表(DHT)来备份和查找bootstap服务器和tracker。

      系统中传输的数据块大小是分层次的,这样设计可以满足系统不同的需求。

数据块       

层次

Size

movie           

entire video

> 100MB

chunk         

存储和向邻接点公告

2MB

piece       

WMP播放单元

16KB

sub-piece

传输单元

1KB

      复制策略首先考虑的是若硬盘空间够的话,是否cache多部影片。若这样的话,则一个节点可以在观看一部的同时上传另一部。其次是是否预取影片内容。若不预取,则只有那些观看过的影片可以在硬盘上找到,若预取,则又会影响带宽,像PPLive就不预取,因为国内的ADSL速度不够。然后是当硬盘满的时候,选择哪些数据块/影片清除掉,可以像OS一样使用LRU算法或LFU算法。当然更好的是基于权值的方法,这种方法可以在tracker的协助下来评估此影片的权值。

      除了节点的内容复制策略外,还要考虑如何发现内容和拥有这些内容的其他节点。依赖如下方法来进行内容公告和查找:1)tracker(或超级节点)。2)DHT。3)gossip算法。

Tracker用来登记各个节点拥有影片的情况。当用户开始或结束观看时,都会通知Tracker。一个节点拥有的数据块的信息保存在数据块位图中,节点会向它的邻接节点获取它们的数据块位图。然后选择从哪些邻接节点中下载。发现数据块的位置使用gossip算法,这就减小了对Tracker服务器的依赖性。

      每个节点会定时给Tracker服务器发送心跳包来报告它的数据块位图和其他信息,这些信息用于系统的监控和管理。

      选择哪些数据片下载需要考虑几个因素:1)选择离播放所需要最近的数据片。2)选择系统中最稀有的数据片(一般是最新的数据片),这样可以加速这些新成员的扩散,从而提高播放质量。3)基于锚点的策略。尽量选择最近的锚点数据片,当用户跳到一个特点位置时,可以使用这个锚点数据片。

      当选择要下载的特定数据块后,假设数据块在多个邻接节点处存在,如何选择从哪些节点下载呢?同时选择的邻接节点的数目?如何进行请求调度,设置超时?

      PPLive的传输策略是基于如下思想:一个节点可以同时向多个邻接节点请求不同的内容,若请求超时,它就重定向到另一个邻接节点。而且根据响应时间会调整发送请求的数目。经测试,要达到500kbps的速率,8-20个邻接节点是最优的,而要达到1Mbps,16-32个邻接节点最优。

      P2P VoD系统中没有BT中那样的激励机制,客户端软件必须定时向Tracker服务器回送数据块位图,否则Playback会被关掉。

      为了防止垃圾信息攻击,必须进行内容验证,这可以使用消息摘要和数字签名。可以在两个层次上进行:数据块层次或数据片层次。                       
本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/11/21/1338503.html,如需转载请自行联系原作者
目录
相关文章
|
网络安全 Python Windows
pyspark--完美解决 Could not find a version that satisfies the requirement 安装包名字 (from versions: )
pyspark--完美解决 Could not find a version that satisfies the requirement 安装包名字 (from versions: )
823 9
|
Python
Python分支结构双分支讲解
Python分支结构双分支讲解
436 0
|
IDE 测试技术 API
REDHAWK——连接(续)(三)
REDHAWK——连接(续)(三)
119 0
|
数据采集 机器学习/深度学习 自然语言处理
一文讲懂大模型调优技术
随着AI技术的发展,大模型如GPT系列、BERT等成为推动自然语言处理和计算机视觉领域进步的重要驱动力。然而,大模型的调优过程复杂且资源消耗巨大,对开发者构成严峻挑战。本文旨在全面解析大模型调优的关键技术,涵盖数据预处理、模型架构调整、超参数优化、正则化与泛化能力提升,以及分布式训练与并行优化等内容,为开发者提供系统性的调优指南。
|
数据采集 编解码 人工智能
破解ChatGPT惊人耗电!DeepMind新算法训练提效13倍,能耗暴降10倍
【7月更文挑战第19天】DeepMind的JEST算法革新AI训练,提升效率13倍,节能10倍。通过联合数据批次选择,预训练指导及多分辨率训练,优化资源利用,降低能耗。实验显示性能提升,达到SOTA水平,但实施需大量资源,依赖优质参考模型。[论文链接](https://arxiv.org/pdf/2406.17711)
219 10
|
编解码 安全
Wii 可以播放 DVD 吗?当然!| 2023 年更新
Wii 可以播放 DVD 吗?这可能是许多 Wii 爱好者最常问的问题。你可能会失望地发现答案是否定的。但由于技术的进步,只要你掌握正确的方法,你就可以在 Wii 上播放 DVD。
|
JavaScript
Vue 中使用Vant(按需引入)
Vue框架如何引入Vant-ui 来进行开发
345 1
|
存储 编译器 C语言
初识C语言(C语言整体知识介绍)(二)
初识C语言(C语言整体知识介绍)(二)
257 0
|
SQL Java 数据库
Spring基础篇:Spring操作数据库的方式以及事务控制(下)
Spring操作数据库的方式以及事务控制(下)
206 0
|
XML SQL Java
配置文件优化 | 学习笔记
快速学习配置文件优化.
138 0
配置文件优化 | 学习笔记