登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北边的风

IT 钓鱼 养生

 
 
 

日志

 
 

P2SP 深入认识  

2010-04-22 20:11:22|  分类: 网络分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

P2SP:Peer to Server&Peer 点对服务器和点(用户对服务器和用户)。

此处“点”(Peer)即网络节点或终端,可以理解为用户计算机。

BitTorrent中的“长效种子”就是P2SP的一个实现。

相关的用户下载模式还有:

P2P:Peer to Peer 点对点(对等网络),基于PPP点对点协议,籍由仲裁中介服务器实现的数据传输,尤指用户下载。我想大多数人不会陌生。

P2S:Peer to Server 点对服务器(用户对服务器)。

BitComet、迅雷是P2SP;

网际快车是P2S;

而BT则是典型的P2P型下载,因为BT的资源是需要至少有一台电脑作为种子,而一旦你使用了BT下载或者下载后没有关闭BT则你也是一个种子。

P2P的下载概念,简单点说,就是下载不再象传统方式那样只能依赖服务器,内容的传递可以在网络上的各个终端机器中进行。P2SP除了包含P2P以外, P2SP的“S”是指服务器。P2SP有效地把原本孤立的服务器和其镜像资源以及P2P资源整合到了一起。也就是说,在下载的稳定性和下载的速度上,都比 传统的P2P或P2S有了非常大的提高。但是有得必有失,无论是P2P还是P2SP型的下载,都对正在下载或者下载后没有关闭程序的用户有做种子的要求, BT是强制的,而迅雷则可以通过增大缓冲区、限制上传速率来限制这一点。由于做种子时,是有其他用户不停通过互联网读写你的磁盘,所以会对磁盘有损伤而且 会占用系统资源,导致机器的反应变慢,而且会不很稳定导致卡机甚至死机,所以应当尽量避免使用BT和迅雷这类涉及用户对用户的下载的软件,如果为了较高下 载速度,则应当设置上传限制,尽量减小对自己电脑的损伤。当然了,做种子光荣,下完就关者可耻。做人要厚道,如果你使用了P2P的资源,那么也忍痛做一次 种子吧o(∩_∩)o...

深入认识:

    近网络上面最为火暴的一个下载软件是成为迅雷的p2sp下载软件,它的主要技术现在已经基本查明:

1 关于ftp/http的下载前端

2 后台运行的crawler,并由此构建的数据库

3 多线程技术

====================

要在Linux下摹仿这一软件,必需分别解决上面3个问题

我可以采用wget/crawler.mysql/multi-thread分别学习

其中crawler是重点.

FemFinder是一个SAMBA和FTP搜索CRAWLER

设计多线程当然也有问题,比如改 wget 部分.

使用boost的多线程库.

有一个例子,用lftp的多线程下载做成脚本multiget

=====================

Prozilla就很好,完全可以实现我的构想。

现在对我所想像的基于P2SP的VOD ACCELERATOR 软件做一个简述:

项目名称暂时为“ZZ“。

一、系统结构

   安装到客户节点或者“NODE”上的软件包括两个部分,我们

   分别称为 ZZ_SEARCH 和 ZZ_DOWNLOAD

       -------------           ------------

       server::URL           File Database

       -------------           ------------

       -------------           ------------

       zz_search           zz_download

       ----------           (threads)

                       ------------

       =============

       Mplayer/mpg123

       =============              

二、流程

1、   用户使用命令起动:

       zz [URL]

   eg.  

       zz http://viedo.sina.com.cn/?15gov.news.hjt.speach&ews=0&tit=10&sss

   (或者支持MMS和RTSP,这个没想好,因为MMS和RTSP可能也只是实现了“实时压缩『调整比率」”)

       zz mms://viedo.sina.com.cn/?15gov.news.hjt.speach&ews=0&tit=10&sss

2、   解析URL,得到文件名称和大小,调用查询工具zz_search (FILE *file, int size),返回一个

   所有CACHE有该文件的FTP/HTTP列表 vector<server> list

3、   在dir($tmp)下面构建一个size 为相应大小的空文件,同时将此文件传递给播放器,这里

   我们假定为 $tmp_viedo_rand_num,同时启动恰当数量的线程同时分割并下载该视频文件,

  

4、   在确定如何分割并最优下载线程数目方面,是有算法改进的空间的,比如在进行ping 值排序后,怎样

   保证好的resource节点起到最为重要的作用,它要保证用户的视频感受。

三、相关工作

   目前已经有很多基于icecast/shout的p2p类软件,它们的普遍缺点是基于纯粹的p2p结构,没有很好的解决带宽问题。

    但是显然icecast也有一个巨大的好处,就是它可以动态压缩视频,从而达到和mms/RTSP相同的预想效果。

    我们设想,如果对“流程”中的第3步进行改进,临时文件 $tmp_viedo_randnum不是简单生成,而是先

   用p2sp的方式传递给icecast,然后再由icecast中我们自己的plugin判断目前“流”的状态,然后

   调整压缩比率,在向播放器进行输送。

 

  评论这张
 
阅读(746)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018