当前课程知识点:计算机网络技术 > 第五章 Internet应用层与应用层协议 > 5.2 P2P网络的主要类型 > 5.2 P2P网络的主要类型(下)
分布式非结构化P2P网络的问题
随着网络规模的扩大
网络中的消息报文呈指数级增长
这些消息将极大地消耗
节点的处理时间 吞噬网络带宽
导致网络超载和拥塞
不同节点处理能力与带宽不同
某些节点受处理能力与带宽的限制
不得不主动退出网络
造成网络拓扑的变化
和整个网路被隔离成片
使得网络的可扩展性
的服务质量受到极大的影响
使得网络的可扩展性
和服务质量受到极大的影响
在高度动态的Gnutella网络中
节点可以随时接入和离开网络
节点之间连接也在动态的发生变化
节点为了维护有效的网络连接
必须经常广播PING/PONG消息
造成网络中存在着大量
重复转发的冗余消息
浪费了很多节点处理能力与通信带宽
针对分布式非结构化
P2P网络可扩展性差的缺点
产生了一种高度结构化的
分布式P2P网络
网络中的节点
拓扑相对稳定和规则
每个节点可以被指定一个逻辑地址
并且将地址与节点位置对应起来
逻辑地址通过Hash散列函数获得
每一个节点都保持着
一张分布式散列表(DHT)
进行路由
因此分布式结构化P2P网络也叫DHT网络
分布式结构化P2P网络中
关键的问题是如何找到
存放所需文件的节点
一个最容易想到的解决办法
是建立一张索引表
这张表具有的特征是分布式的
能够根据节点与共享资源的变化
实现动态更新
在设计索引表时
需要解决3个基本问题
1 每个节点
只需要保留少量的有关其它节点的信息
2 每个节点
能够很快地查找到索引表中的表项信息
3 每个节点允许
多节点并发访问索引表的表项信息
针对这些问题
曾经出现了4种主要的解决方案
一个是Chord
一个是CAN
还有Pastry
以及Tapestry
在分布式结构化P2P网络中
用节点标识符来表示节点
将分配给标识符的节点
从小到大形成一个闭合的逻辑环
节点标识符
与真实网络中节点的映射关系
如图(b)所示
可以通过对每一个节点的名字
(如IP地址)进行散列
(如SHA-1安全散列算法1 )
计算来获取唯一的节点标识符
如p=Hash(IP)
可以通过对每一个
共享文件内容
进行散列计算来获取唯一的关键字
如k=Hash(v)
DHT应用举例 Chord
Chord协议
提供一种适用于P2P环境中
分布式资源的查找服务
其机制是
对每一个共享文件
用SHA-1算法
计算出一个长度为160b的关键字key的值
从小到大顺序
排列形成闭合的逻辑环
同样要用SHA-1
计算出节点IP地址散列值(value)
一个节点需要把一对散列值插入到指针表中
映射到Chord环上
每个节点只需要维护
到达O(log2N)个节点的路由信息
而不需要知道网络中
其它全部节点信息
如图所示
节点1指针表中
共存有3个节点(2 3 5)的
路由信息
第1表项是节点2的路由信息
节点2覆盖节点2到节点3的信息
节点2的后继节点就是节点3
Chord查询机制有2个重要的特性
1 任何节点只需维护部分节点的信息
2 每个节点
不拥有足以确定任意关键字的位置信息
例如
图中节点3
就无法直接定位关键字1
因为节点3的指针表中
没有包含关键字1的后继节点信息
但是可以间接查询到节点1的信息
由于节点1包含在指针表第3项
即开始标识符=7
后继节点=0
那么
根据指针表第3项的信息
节点3就需要向节点0查询
可能存储有关键字k=1的后继节点
节点0接收到节点1的查询请求后
就向节点3发回节点1
存储有关键字k=1的信息
这样节点3就将节点1作为后继节点
查找有关建字k=1的信息
如果节点0也不知道关键字k=1的后继节点
则将此过程递归执行
直到获得关键字k=1的节点相关信息为止
再一个是混合式P2P网络
集中式P2P网络结构有利于
提高网络资源快速查找能力
但是目录服务器容易受到攻击
系统安全性和性能受到中心服务器节点的影响
分布式P2P网络结构
有利于提高系统的可扩展性与安全性
但是网络资源查找速度受到限制
系统维护机制复杂
因此人们自然会想到如何将两者结合起来
研究第三代P2P技术
即混合式P2P网络
研究混合式P2P网络的目的
是继承集中式P2P网络与分布式结构化
P2P网络的优点
同时又降低
集中式P2P网络信令消息交互的负担
降低分布式结构化P2P网络系统维护的复杂度
进一步提高P2P网络的性能
混合式P2P网络的节点分为3类
一种是用户节点
它只能为普通用户提供查询共享信息服务
没有其他特殊的功能
第二个是搜索节点
它是接受与它相连的用户节点的查询请求
通过索引节点查找共享资源的位置
并将查询结果回送给用户节点
第三个是索引节点
存储有网络中共享信息的文件列表
接受查询请求
返回被查询文件存储节点地址信息
并负责维护混合式P2P网络的结构
混合式P2P网络协议有
Gnutella 0.6
电驴2000
以及基于这些协议的P2P应用主要有
kazaA Skypeemule 电骡 modonkey等
以Gnutella 0.6为例
来分析混合式P2P网络的协议与工作过程
选择处理 存储
带宽能力较强的节点
作为超级对等节点(如S1 S2 S3)
普通的对等节点作为叶子节点
如L1 L2 L3……L7
并以星形结构与超级节点S相连
如图所示
叶子节点要将本节点
能够提供的共享文件的信息
报告给超级节点
各个超级节点存储系统
部分节点的共享资源信息
内容路由算法
只在超级节点之间执行
超级节点再把获得的结果
转发给提供查询请求的叶子节点
例如叶子节点 L2
要查询需下载的文件存储地址
那么它就向与它直接连接的超级节点S3
发送查询请求
S3只将节点地址查询的工作限制在
超级对等节点之间
例如S3向其他超级节点
发送节点地址查询请求后
S2有需要下载文件存储的叶子节点地址(如L4)
那么S2
将存有需要下载文件存储的叶子节点L4的IP地址
作为查询结果回送给S3
S3再将查询结果反馈给叶子节点L2
L2根据查询获得的IP地址
找到目的叶子节点L4下载需要的文件
这张表给出了4中P2P网络的对比
比较的内容包括可扩展性 可靠性 可维护性
节点发现算法效率
以及复杂查询等
这张表给出了
4种P2P网络的对比
比较的内容包括
可扩展性
可靠性
可维护性
-1.1 计算机网络的发展历程
--计算机的发展
-1.2 从计算机网络到互联网
-1.3 从互联网到移动互联网
-1.4 从移动互联网到物联网
-1.5-1.7 深入认识计算机网络结构、网络安全、互联网的成功经验
--1.5-1.7 深入认识计算机网络结构、网络安全、互联网的成功经验
-第一章 作业
-2.1 传输网的基本概念
-2.2 广域网技术研究与发展
-2.3 城域网技术研究与发展
-2.4 局域网技术研究与发展
-2.5 个人区域网研究与发展
-2.6 个人区域网研究与发展
-2.7-2.8 3G/4G与M2M工作模式、传输网两个融合的发展趋势
--2.7-2.8 3G/4G与M2M工作模式、传输网两个融合的发展趋势
-第二章 作业
-3.1 网络层与IP协议的演变与发展
-3.2 IPv4与IPv6协议
-3.3 路由技术的研究与发展
-3.4 QoSR与RSVP、DiffServ与MPLS
-3.5 IPv4向IPv6过渡
-3.6 路由器技术的研究与发展
-3.7 下一代互联网体系结构的研究
-第三章 作业
-4.1 网络环境中分布式进程通信
-4.2 传输层的基本功能
-4.3 传输控制协议
-4.4 用户数据报协议
-4.5 实时传输协议RTP/RTCP
-4.6. 容迟网技术的研究
-第四章 作业
-5.1 Internet应用发展与应用层协议分类
-5.2 P2P网络的主要类型
-5.3 基于P2P的网络应用
-6.1 移动互联网的概念
--第6章-移动互联网与移动IP - 6.1-6.2-PPT
-6.2 移动IP
-6.3 移动IPv4的基本工作原理
--第6章-移动互联网与移动IP - 6.3-6.4-PPT
-6.4 移动IPv6协议
-第五-六章 作业
-7.1 网联网的概念
-7.2 物联网的体系结构
-7.3 物联网的ONS 服务
-7.4 车联网VANET的基本概念
-7.5 车联网VANET的协议标准
-第七章 作业
