Más contenido relacionado
GTPP:一种DHT网络上的棱台结构
- 1. GTPP:一种 DHT 网络上的棱台结构
liulixiang‘@’liulixiang.info(2011 年某课程作业,仅供参考)
对于 GTPP 结构,作者共发表了三篇相关的文章:
Ou Z, Harjula E, Ylianttila M. GTPP: General truncated pyramid architecture over
P2PSIP networks. The International Conference on Mobile Technology,
Applications & Systems 2008(Mobility Conference), 10-12 September, Ilan,
Taiwan
Ou Z, Zhou J, Harjula E, Ylianttila M. Truncated pyramid peer-to-peer
architecture with vertical tunneling model. The Fourth International Workshop
on Dependable and Sustainable Peer-to-Peer Systems(DAS-P2P 2009) on CCNC
2009. 10–13, January, in Las Vegas, Nevada.
Ou Z, Zhou J, Harjula E, Ylianttila M. GTPP: General Truncated Pyramid
Peer-to-Peer Architecture over Structured DHT Networks. Mobile Network
Application, August 2009
以下将根据这三篇文章的内容小结说明作者们的研究结果。
1. 研究动机
由于其去中心、容错和可扩展性等方面的优点,P2P 技术已经获得了广泛的
应用。 目前比较流行的一些基于 DHT 分布式查询服务有 Chord、 CAN、Kademlia、
Pastry、Tapestry 等。
在 P2P 覆盖网络(overlay)上的 DHT 查找算法的核心在于定义 peer(或
peer-key)之间的距离,保存邻近的 peer,当进行查找 key 对应的 value 时,使
用不同的机制查找目标节点,其跳数一般为对数级。
而最初的 DHT 算法一般基于扁平结构,即所有的 peer 查询和维护时使用同
样的函数和负载。
层次结构经常伴随着可扩展、复杂的系统出现。在 DHT 设计中,层次结构也
已经被证明具有很多优点:容错和安全;缓存和带宽的高效利用;查询跳数和时
延的减少;适应物理网络;便于管理控制和自主控制;更适合移动的环境。
不过,原来的研究工作大多只使用两层结构。作者实现了一个一般意义上的
层次 DHT 结构,研究增加层次是否会带来性能和功能上的提升,并试图总结层
次结构 P2P 的特点。
2. 相关工作
基于非结构化网络的层次 P2P 结构在文件共享等领域广泛应用, 比如 KaZaA、
Gnutella、CAP 等。这些结构一般通过引入功能上比其它节点更强大的 super-node
(也称 super-peer)实现:这些功能更强大的节点组成一个覆盖网络,其它节点
通过这些节点查询服务。
在基于 DHT 的结构化 P2P 网络中,层次结构同样被广泛的使用。Artigas 等将
这些层次结构(HA)分成水平分层(H-HA)和垂直分层(V-HA) :在水平分层中
所有节点被连接至一个覆盖, 该覆盖组成概念上的层次结构;而在垂直分层中节
点组成一个类树形结构。作者进一步将垂直层次结构(V-HA)分为完全分层结构
- 2. (FV-HA)和部分分层结构(PV-HA) 。
H-HA 将一组节点看做一个节点,使用扁平 DHT 结构连接,采用概念上的分
层结构, 代表系统由 Canon, mDHT,Cyclone 等。在水平分层结构中不需要 gateway
peer(关节点) H-HA 优点有故障隔离、
。 负载均衡、 逻辑结构可觉察、层次存储、
访问控制等。H-HA 也有缺点:假设所有节点都可以参与到顶层网络中,不符合
某些节点由于防火墙或 NAT 问题无法满足该要求的情况。
FV-HA 中所有节点参与到所有层次,不需要 gateway peer,代表的系统由
HIERAS 等。 通过路由局部性, 将拓扑结构行相近的节点划分到底层的环结构中;
同时需要创建和维护一个 finger table 保存拓扑结构信息。 该结构有路由局部性,
拓扑结构可感知等优点。其缺点在于:不是大部分节点都被防火墙或 NAT 阻止
的情况,维护开销较大。
PV-HA 中部分节点位于顶部构成一个 DHT 结构,其它节点通过 gateway 节点
(参与到多层,成为代理节点)连接至顶层节点,相应的例子有 P2PSIP、
Garces-Erice、Le、Brocade 等。除了 V-HA 拥有的故障隔离、管理自治性、高效
的缓存和副本等优点,PV-HA 中不同节点的负载可能不同,适合于异构网络;适
合于很多节点被防火墙或 NAT 限制的情况。作者将通过对 GTPP 的研究进一步分
析 PV-HA 的特点。
3. GTPP 结构
为了更具有代表性,GTPP 基于基本的 DHT 函数(Chord)构建,所有层都使
用 相 同 的 DHT 函 数 , 并 且 无 如 anycast 、 multicast 、 mesh-connection 、
single-connection 等特殊优化,其覆盖网络的结构可以通过通过类似于聚类的方
法。 GTPP 形成的结构如下图所示, 所有的节点被分在一个个 SSO (sub-sub-overlay)
中,最顶层仅有一个 SSO,其它层的节点通过一个 gateway super-peer 作为代理
节点与上层连接(在实际中如果从稳定性考虑,一个 SSO 应该不止一个 gateway
super-peer) ,对于不同 SSO 中的两个节点,他们不能直接查询到对方,需要通过
上层的代理节点联系。
图 1 GTPP 结构
- 3. 3.1. 查询步骤
GTPP 中的服务查询步骤是递归的:
1) 初始 peer 发送一个查询请求至它的 gateway super-peer,然后该 gateway
super-peer 转发该请求到其自身的 gateway super-peer,……如此重复知道请
求到达顶层 SSO;
2) 在顶层 SSO 的 gateway super-peer 处理该请求在本地 SSO 使用 DHT 算法进行
查找,如果找到而来对应资源则返回应答至初始 peer,否则将该请求转发到
最接近该资源的下一层 SSO;
3) 以下每一层 SSO 重复步骤 2 的操作,直到最底层的 SSO;
4) 如果再最底层 SSO 还未查找到相关资源, 则按照与查询相反的路径返回失败
信息。
下图是一次查询的示例, N1_51 发起的一个查询,
从 向上经过代理节点 N2_48
到达顶层的 N3_39,在顶层查找到 N3_9 为与 key 最近节点,然后再向下查询,
至 N2_5 最后到覆盖 S1_1 成功查找到节点 N1_3,得到查询结构后原路返回:
图 2 GTPP 查询过程实例
以上步骤也可以设计为迭代的,在讨论部分将对迭代和递归进行比较。如果
第 4 步采用直接返回的方式,则称之为半递归路由。
4. 性能分析
对于 GTPP 的性能分析,作者给出了一下 3 个假设:
overlay 是稳定的,即所有的点都根据其能力被分在合适的层。
所有 peer 的 ID 和 key 都是均衡的,对于一个 key 来说他被分到每一层的概
率是相同的。
不同层的不同 peer 发起查询的概率是相同的 (其所查询的 key 也是完全符合
随机分布的) 。
- 4. 同时,为了讨论方便,定义以下符号:
覆盖网络中节点的个数为 N;一个节点位于第一层的概率为 p;GTPP 的层数
为 k;第 i 层的节点数为 Ni,其中 i=1,2,3,…,k;
一个 key 位于第 i 层的概率ζi,一个节点位于第 i 层的概率为 Pi,一个从第 i
层发起经过 j 个 SSO 的成功查询的的跳数为 Hi,j, 查询时延为 Li,j,其中 j=1,2,…,k,
i=1,2,3,…,k;
第 i 层查询的平均跳数为ωi,第 i 层覆盖网络查询成功的跳数的期望为Γi,
查询时延的期望为,Ωi,其中 i=1,2,…,k;
用 E(n,k)表示整个 GTPP 网络的平均查询跳数,用 D(n,k)表示整个 GTPP 网络
的平均查询时延;
表示一个第 i 层节点查询流量分布的矩阵,其中 i=1,2,…,k; 表示前面矩
阵的第 j 列的向量,表示从第 i 层节点发起经过 j 层 SSO 的查询流量分布;
F 是一个大小为 k*k 的临时矩阵,fi 是 F 的第 i 列向量。
表示第 i 层覆盖网络上节点的查询流量分布、维护流量分布和更新流量分布分别
为αi、βi、γi。mi 表示第 i 层的总体流量分布。
每个节点平均共享的项目数为 ϑ,T 表示时间间隔。
4.1. 基本推论
可以很容易地推出一些等式,每一层的 peer 数目为:
也可以表示为:
一个节点属于某一层的概率:
- 5. 即有:
4.2. 查询跳数
每一层的查询跳数的期望:
GTPP 中整个覆盖网络中一个成功查询的查询跳数的期望为:
4.3. 查询时延
GTPP 中查询时延的期望:
- 6. 4.4. 流量分布
对于不同的局部覆盖网络中的单个节点来说,其查询流量分布为:
由于一次查询需要经过两次消息的传输,故有 a 与 E(n,k)的关系如下:
通过 FIXFINGER 算法周期性维护覆盖网络的结构,维护开销分布满足:
对于更新操作,除了其更新时间间隔与查询不同外,其代价与查询几乎相同,
即有关系:
综上,整个 GTPP 结构中的流量为:
其中总的维护开销满足:
- 7. 5. 结果分析对比和实验仿真
作者通过对 n 的值从 2 到 N 进行枚举,对网络大小分别为 104,、106、108 规模的网络的
性能结果进行了分析。并通过一个 500 个节点的网络对 GTPP 结构进行了仿真验证,证实了
GTPP 结构性能分析结果。
根据 HIERAS 论文中的结果,以及实际中 LAN 和 WAN 中 RTT 的巨大差距,在性能分析
和实验仿真时作者假设最顶层的 SSO 中 RTT 延迟为 100ms,第 k-1 层的平均 RTT 延迟是第 k
层的一半。
5.1. GTPP 性能特点
由上一节对查询性能的分析结果,可以进行 GTPP 与扁平结构性能的对比,
可得——
在查询跳数上:改变 n 的值不影响查询跳数;GTPP 的查询跳数略多于扁平
结构;通过缓存顶层的 gateway super-peer 可以减少跳数。下图是查询跳数对比
图:
图 3 期望查询跳数对比(GTPP 结构 vs. 扁平结构)
查询时延:查询时延(的期望值)随着 n 的增大而减小;2-4 层时最优(增
加 overlay 的深度/n 的大小不会取得更好的性能)(性能对比以及详细分析见论
。
文相关部分。 )
流量分布:single peer:更清楚合理的流量分布,2 至 3 层结果最优;总体流
量分布:性能从 2 到 3 是显著提高,然后从 3 到 4 显著下降。 (性能对比以及详
细分析见论文相关部分。 )
5.2. 仿真结果
作者只对节点数量级的网络使用服务器进行了仿真。
所得的查询跳数结果如下:
- 8. 图 4 期望查询跳数仿真结果
流量分布仿真结果如下:
图 5 每个节点处理消息数目仿真结果
以上仿真实验的结果与性能分析结果相符。
5.3. 结果分析总结
GTPP 作为一种典型的 PV-HA(部分垂直分层结构),尽管相比于扁平结构而
言查询跳数稍多,但在查询时延上显著减少;GTPP 在异构环境下有优势,在不
- 9. 同的层都有比较清晰和合理的流量分布;其维护开销相对扁平结构有优势;在整
个网络全部流量上,GTPP 比扁平结构稍多,但是在层次数目为 2 到 3 时,总的
流量是可以接受的。
综合性能分析结果和仿真结果可知,2-3 层对于 GTPP 结构来说是最好的。
5.4. 讨论
以下三个方面对 GTPP 结构的性能有影响:
1) 内容缓存:性能分析中忽略了底层的节点可以缓存最上层 SSO 中自身对应的
节点,从而可以减少查询的跳数和时延;
2) 迭代路由:在进行查询时选择迭代还是递归会对性能和流量分布等产生影响;
3) 节点加入和退出:相对于扁平结构来说,采用层次结构时维护节点的加入和
退出的开销显著减少。
6. 总结
由 GTPP 结构的性能分析和验证可知, 相对于扁平结构,GTPP 具有以下特点:
GTPP 结构相对于扁平结构来说需要稍多的查询跳数,不过加入相关优化以
后二者的性能比较接近。
由于不同层之间的 RTT 的不同,GTPP 结构显著减少了查询时延;
GTPP 结构在不同层之间的流量分布更加清晰和合理;
GTPP 结构的维护开销显著减少。
另外,通过以上性能分析和实验仿真可知,对于 GTPP 来说 2-3 层是最合适
的。