APP下载

浅议一种高效安全的P2P覆盖网络

2019-10-21宋静静

科学与财富 2019年32期
关键词:路由表覆盖层可用性

宋静静

摘 要:大多数结构化P2P覆盖网络是利用分布式哈希表(DHT)来实现无管理、容错的覆盖网络,并保证在O(logn)跳内将消息传递到目标。虽然从理论上讲很完善,但这些系统在开放环境下面临着一些困难。节点频繁的加入和离开不仅会产生巨大的维护开销,而且节点的各种行为和资源也会影响网络的性能和安全性。本文构建了一个与互联网拓扑结构紧密匹配的独特的覆盖网络。基于这种结构的P2P系统不仅路由效率高,而且即使在高动态环境下,维护开销也很低。

我们将首先讨论如何构造一个近似于互联网拓扑的覆盖层,然后基于该覆盖层构建一个高效查找、低维护开销和高可用性的P2P系統。

覆盖网络的本质是根据节点在Internet中的物理网络位置来组织节点,所有节点都可以通过其自治系统(AS)轨迹划分为组。由于互联网由ASE组成,每个AS都是一个单一管理权限下的网络,因此它为P2P节点提供了良好的边界。与Internet中的一样,组是网络中路由和组织节点的基本单元。

一、P2P覆盖网络

为了支持类似DHT的ID查找操作,覆盖网采用了类似的ID机制。与当前的DHT设计一样,覆盖网的每个对象都被分配了一个128位的ID。覆盖网的每个节点不需要映射一个小范围的对象,而是使用两级映射机制,第一个级别是在这些组中,第二个级别是在簇中。一个簇中的节点数量是可变的,以便于群集物理附近的节点,并增加系统下的稳定性。

通常一个簇包括10到50个节点。每个簇都将选择一个拥有良好网络带宽和可用性的领导者。此外,每个簇还分配了一个32位的ID。这些ID将随机分配给每个组及其簇,因为它们首先出现在覆盖网中。对象ID的前64位分为两部分。前32位用于映射组ID,后32位用于簇ID。每个组使用自身和下一组之间的ID对对象进行充电,簇也是如此。

簇是存储对象的基本单元。为了提高可靠性和可用性,每个簇将保留两份对象副本。一份副本保存在领导者中,以响应所有其他同行的查询。另一个将通过擦除代码技术分块存储在簇成员中。由于大多数对等端都是通过对称网络连接的,因此从许多相邻对等端读取数据的速度明显快于从一个对等端读取数据的速度。这一特点有助于旧领导失败后,迅速重建新领导。

二、路由机制

除了让许多不稳定的节点参与系统路由之外,只有选定的具有适当带宽和可用性的节点将成为覆盖路由的代理。通常,3个代理可以在不影响其主机的情况下提供足够的可用性和性能。

由于我们的覆盖网与Internet拓扑结构紧密匹配,因此与当前的DHT设计相比,路由机制实际上很简单。由于覆盖网使用了两级映射机制,因此路由表由两部分组成。一个记录覆盖网中每个组的ID和代理信息,称为路由表。此表在每个代理和领队中维护,以路由普通节点的消息。另一个记录了簇中所有簇的ID和领导信息,称为交付表。给定一个对象ID,可以通过路由表找到负责组及其代理。消息将直接发送到目标组的代理,而不是一个接一个地到达目标组。当消息到达该代理时,只需通过传递表将其转发给响应簇负责人。最后,领队解析并回复查询。

三、节点加入与离开

节点的加入和离开过程很简单。当一个新节点加入覆盖时,它的轨迹可以由它的IP地址决定。通过覆盖网的任何节点,加入请求将被转发给代理。在测量其地标向量后,节点将根据网络位置加入一个簇。如果一个簇人口太多,它将根据节点的网络位置划分为两个簇。如果加入节点是网络中的第一个节点,则加入请求将转发到附近的物理组。而不是形成一个新的组,节点最初将成为组内的一个队友。当其中的节点足以容纳三个簇时,将选择代理并生成一个单独的新组。

对于正常节点,簇会自动容忍其离开或失败。如果领导或代理离开,将选择一个新的领导或代理,并且信息将快速传播。

四、维护机制

在P2P环境下,由于每个节点都可以任意加入和退出覆盖层,所以不仅每个节点的离开和失败都是不可预测的,而且整个覆盖层都是高度动态的。对于所有的P2P覆盖网络来说,这确实是一个挑战。

虽然代理和领导被认为比普通的更可用,但他们并不是维护良好的服务器。这里使用一个环协议来监视它们。例如,所有领导者都将形成一个环作为他们的ID关系,并且每秒钟每个节点都会向其继任者和前任发送一条保持活动的消息。虽然这个协议很简单,但它足以检测到一个或多个领导者的失败。同样,一个簇的领导者也可以通过他们的查询消息来监控队友的变化。但是,为了准确区分每个节点对于领导者和代理候选人的行为,每个节点设计30秒向领导者发送一个查询或保持活动的消息。

由于领队缓存来自组代理的路由表,因此需要一些方法来保持它们的一致性。对于有几十个簇的小簇,领导者可以直接与附近的代理交换信息。但是,如果一个组非常大,其中有数百个簇,那么这样简单的时间表将不会具有可伸缩性。因此,可以利用当前路由器广泛支持的管理范围的IP多播有效地传递最新的代理信息。对于不支持多播协议的网络,将使用以代理为根的分发树将信息多播给所有领导者。当组更大时,它将被划分为两个或多个组。

如前所述,每个代理都维护一个路由表,记录所有代理的信息。使这些路由表保持最新对于查找的正确性至关重要。此外,这种维护的开销应该很低,否则,系统性能和可扩展性都会受到影响。因此,我们的覆盖网设计成将维护工作集成到公共操作、查找中。

五、总结

针对开放互联网环境下P2P覆盖结构面临的困难,从不同角度提出了一种构建P2P覆盖网络的新方法。与当前专注于自身系统覆盖的设计不同,我们的方法侧重于物理网络,并按照物理网络构建覆盖网络。自然地利用物理网络特性,构建高效、安全的P2P覆盖网络。基于节点的物理网络特性,网络打印为开放Internet环境下的节点提供了一个实用的自认证标识符。结合简单的覆盖路由机制,路由过程是安全的。此外,覆盖网络还可以通过弹出恶意节点来自我修复。

猜你喜欢

路由表覆盖层可用性
基于文献计量学的界面设计可用性中外对比研究
深水浅覆盖层倾斜岩面河床围堰设计及应用
基于辐射传输模型的GOCI晨昏时段数据的可用性分析
声子晶体覆盖层吸声机理研究
基于OSPF特殊区域和LSA的教学设计与实践
无限元法在深覆盖层土石坝动力分析中的应用
浅薄覆盖层倾斜岩面大直径钢护筒施工方案比选及应用
空客A320模拟机FD1+2可用性的讨论
基于新路由表的双向搜索chord路由算法
黔西南州烤烟化学成分可用性评价