-
P2P
技术
技术原理
什么是对等网络
(P2P)
技术?
P2P
技术属于覆盖层网络
(Overlay
Network)
p>
的范
畴,是相对于客户机
/
服务器
(C/S)
模式来说的一种网络信息交换方
p>
式。在
C/S
模
式中,
数据的分发采用专门的服务器,
多个客户端都从此服务器
获取数据。
这
种模式的优点是:数据的一致性容易控制,系统也
容易管理。但是此种
模式的
缺点是:
因为服务器的个数只有一个
(
即便有多个也非常有限
)
,系统容易出现单
一失效点;单一服务器面对众
多的客户端,由于
CPU
能力、内存大小、网
< br>
络带
宽的限制,
可同时服务的
客户端非常有限,
可扩展性差。
P2P
技术正是为了解决
这些问题而提出来的一种对等网络结构。在
P
2P
网络中,每个节点既可以从
其<
/p>
他节点得到服务,
也可以向其他节点提供服务。
< br>这样,
庞大的终端资源被利用起
来,一举解决了
C/S
模式中的两个弊端。
对等网络的基本结构
(
1
)集中式对等网络
(
Na
pster
、
QQ
)
< br>
集中式对等网络基于中
央目
录服务器,为网络中各节目提供目录查询服务,传
输内容无需再经过中央服务器。
这种网络,
结构比较简单,
中央服务器的负担
大
大降低。但由于仍存在中央节
点,
容易形成传输瓶颈,扩展性也比较差,不适
合大型网络。
但由于
目录集中管理,
对于小型网络的管理和控制上倒是一种可选
择方
案。
(
2
)
无结构分布式网络
(
Gnutella
)
无结构分布式网络与集中式的最显著区别在于,
它没有中央服务器,
所有结点通
过与相邻节点间的
通信,
接入整个网络。
在无结构的网络中,
节点采用一种查询
包的
机制来搜
索需要的资源。具体的方式为,某节点将包含查询内容的查询包
发送到与之相邻的节点,
该查询包以扩散的方式在网络中蔓延,
由于这样的方式
如果不加节
制,
会造
成消息泛滥,
因此一般会设置一个适当的生存时间
(
TTL
)
,
在查询的过程
中递减,当
TTL
值为
0
时,将不再继续发送。
这种无结构的方式,
组织方式比较松散,
节点的加入与离开
比较自由,
当查询
热门内容时,很容易就能找到,但如果需求的
内容比较冷门,较小的
TTL
不容
易找
到,而较大的
TTL
值又容易引起较大的查询流量,尤其当网络范围扩展到
一定规模时,即使限制的
TTL
值较小,仍然会引起流量的剧增。但当网络中存
在一些拥
有丰富资源的所谓的类服务器节点时,可显著提高查询的效率。
(
3
)结构化分布式网络
(
第三代
P2P Pastry
、
Tapestry
、
Chord
、
CAN
)
结构化分布式网络,
是近几年
基于分布式哈希表
(
Distributed
Hash
Table
)
技术的研究成果。
它的基本思想是将网络中所有的资源整理成一张巨大的表,
表
内包含资源的关键字和所存放结点的地址,然后将这张表分割
后分别存
储到网
络中的每一结点中去
。
当用户在网络中搜索相应的资源时,
它将能发现存储与关
p>
键词对应的哈希表内容所存放的结点,在该结点中存储了包含所需资源的结点
地址,
然后发起搜索的结点根据这些地址信息,
p>
与对应结点连接并传输资源。
这
是一种技术
上比较先进的对等网络,
它具有高度结构化,
高可扩展性,
p>
结点的加
入与
离开比较自由。这种方式适合比较大型的网络。
P2P
网络有
3
种比较流行
的组织结构,被应用在不同的
P2P
应用中。
< br>
(1)DHT
结构
分布式哈希表
(DHT)[1
]
是一种功能强大的工具,它的提出引起了学术界一股
研究
p>
DHT
的热潮。
虽然
DHT
具有各种各样的实现方式,
但是具有共同的特
征,
即都是一个环行拓扑结构,在这个结构里
每个节点具有一个唯一的节点标识
(I
D)
,
节点
ID
是一个
128
位的哈希值。
每个节点都在路由表里保存了其他
前
驱、
后继节点的
< br>ID
。如图
1(a)
所示。通过
这些路由信息,可以方便地找到其他节点。
这种结构多用于文件共享和作为底层结构用于
流媒体传输
[2]
。
(2)
树形结构
P2P
网络树形结构如图
p>
1(b)
所示。在这种结构中,所有的节点都被组织在一
棵树中,树根只有子节点,树叶只有父节点,其他节点既有子节点也有父节点。
信息的流向沿着树枝流动。最初的树形结构多用于
P2P
流
媒体直播
[3-4]
。
(3)
网状结构
网状结构如图
1(c)
所示,又叫无结构。顾名思义,这种结构中,所有的节点
无规则地连在
一起,
没有稳定的关系,
没有父子关系。
网状结构
[5]
为
P2P
提供
了最大的容忍性、动态适应性,在流媒体直
播和点播应用中取得了极大的成功。
当网络变得很大时,
常常会
引入超级节点的概念,
超级节点可以和任何一种以上
结构
结合起来组成新的结构,如
KaZaA[6
]
。
P2P
技术应用
(1)
分布式科学计算
P2P
技术可以使得众多终端的
CPU
资源联合起来,服务于一个共同的计算。这
种计算一般是计算量巨大、
数据极多、
耗时很长的科学计算。
在每次计算
过程中,
任务
(
包括逻辑与数据等
)
被划分成多个片,被分配到参与科学计
算的
P2P
节点
机器上。在不影响原有
计算机使用的前提下,人们利用分散的
CPU
资源完成计
算
任务,并将结果返回给一个或多个服务器
,将众多结果进行整合,以得到最
终结果。
(2)
文件共享
BitTorrent
是一种无结构的网络协议。除了
Bi
tTorrent
之外,还有不少著名的无结构化的
P2P
p>
文件共享协议,典型的有
Gnutella[8]
< br>和
KaZaA[6]
。
(3)
流媒体直播
(4)
流媒体点播
(5)IP
层语音通信
Skype
采取类似
KaZaA
的拓扑结构,在网络中选取一些超级节点。在通信双方
直连效果不好时,
一些合适的超级节点则担当起其中转节点的角色,
为通信双方
创建中转连接,并转发相应的语音通信包。
典型<
/p>
P2P
应用的机制分析
3.1BitTorrent
BitTorrent
软件用户首先从
Web
服务器上
获得下载文件的种子文件,种子
文件中包含下载文件名及数据部分的哈希值,还包含一个或者多个的索引
(
Trac
ker)
服务器地址。它的工作过程如下:客户
端向索引服务器发一个超文本传输
协议
p>
(HTTP)
的
GET
请求,并把它自己的私有信息和下载文件的哈希值放在
GET
的参数中;索引服务器根据请求的哈希值
查找内部的数据字
典,随机地返回正
在下载该文件的一组节点,
客户端连接这些节
点,
下载需要的文件片段。
因此可
以将
索引服务器的文件下载过程简单地分成两个
部分:与索引服务
器通信的
H
TTP
,与其他客户端通信
并传输数据的协议,我们称为
BitTorrent
对等协议。
B
itTorrent
软件的工作原理
如图
4
所示。
BitTorrent
协议也处在不断变化中,可
以通过数据
报协议
(UDP)
和
DHT
的方法获得可用的传输节点信息,而不是仅仅
通过原有的
< br>
HTTP
,这种方法使得
Bi
tTorrent
应用更加灵活,提高
BitTorrent<
/p>
用户的下载体验。
3.2eMule
eMule
软件基于
eDonkey<
/p>
协议改进后的协议,
同时兼容
eDonk
ey
协议。
每
个
eMule
客户端都预先设置好了一个服务器列表和一个本地共享文件
列表,
客
户端通过
TCP
连接到
eMule
服务器进行登录,
得到想要的文件的信息以及可用
的客户端的
信息。一个客户端可以从多个其他的
EMule
客户端下载
p>
同一个文
件,
并
从不同的客户端取得不同的数据片段。
eMule
同时扩展了<
/p>
eDonkey
的能
力,允许客户端之间
互相交换关
于服务器、其他客户端和文件的信息。
eMule
服务器不保存任何文件,它只是文件位置信息的中心索引。
p>
eMule
客户端一启
动就会自动使用传输
控制协议
(TCP)
连接到
eMule
服务器上。服务器给客户端
提供一个
客户端标识
(ID)
,它仅在客户端服务器连接的生命周期内有
效。连接建
-
-
-
-
-
-
-
-
-
上一篇:XP sp2多国语言版的微软官方下载地址
下一篇:经常要用的医学简称