关于Peercast一些观点的更新

Peercast原本是基于Gnutella协议的。

但发展到现在,已经跟Gnutella没有多大关系了。相关的地方只是在广播机制上采用的仍然是泛洪机制。

Gnutella协议是基于图的协议。

 

而现在的Peercast是基于树的转发机制,类似于IP组播。

所以严格来说Peercast并不能称之为P2P流媒体,因为只从一个源获得数据,无法体现P2P中加入人数越多越流畅的优势。

 

Peercast仍保留了一些Gnutella机制的代码,只是为了兼容性,并没有太大的实际作用。

我以前说过看Peercast协议最好先理解Gnutella机制,是当初没具体分析的误解。

向大家说声抱歉。

不过大家可以理解一下Gnutella的泛洪机制,以及TTL和HOP的控制。

 

我觉得看Peercast源代码要抓住三条主线:

   PCP协议:这是Peercast自已定义的协议,实现控制信息的传送。若想发送信息,必须按PCP规定的格式进行封装。

  chanMgr和servMgr:这是Peercast中两个最重要的全局对象,可以说这两个对象引发了Peercast几乎所有的操作,把所有的类串联了起来。

    servent类:Peercast对每个连接分配一个servent对象,而一个servent对象有着自己的socket和线程,控制信息和频道数据的传输均通过此类来完成。可以说理解了servent类就理解了Peercast的网络编程机制。

 

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值