论文部分内容阅读
随着网络规模的扩大和用户数量的急剧增加,使得互联网的流量急剧增加,给网络的带宽造成极大的压力,也加大了服务器的负担,导致服务不稳定。当前C/S架构网络将信息的传输中转和处理都集中在中心服务器上,容易造成网络拥塞和性能瓶颈。于此同时,个人计算机的飞速发展,使得每台计算机相比过去都具有较强的计算和存储能力,而这些性能在大部分情况下没有得到充分的利用。在这种背景下产生了P2P技术,网络中各节点相互平等独立,没有中央服务器,节点与节点之间直接进行信息和数据的传输。一方面将中心服务器上的任务分散到网络中的各个节点,极大的降低了服务器的和网络带宽的压力,同时由于P2P的节点分布特性,使其具有很强的健壮性和可扩展性,避免了单点失效;另一方面也使得个人计算机中未被发掘的性能得到更充分的利用。由于没有中心服务器,资源分布在网络内各个节点中,所以在P2P网络中,最关键的问题就是如何找到快速找到存储资源的节点。第一代的P2P系统为基于目录服务器的架构,虽然资源都存储在节点上,但是需要通过目录服务器记录特定的资源的存放位置,节点需要先与目录服务器通信,得到文件在网络上的存储信息,最后才能与节点直接通信获得资源,在用户增多时,目录服务器同样也会存在瓶颈问题。第二代是非结构化的架构,采用泛洪的方式在网络中查询文件的存储位置,在网络规模变大时,会给网络带来较大的负担,而且查找效率较低。针对以上系统的问题,提出了第三代基于DHT的P2P网络。DHT将文件的索引信息存在各个节点上,取代了目录服务器,然后每个节点利用自身保存的路由信息,通过特定的路由算法就可以快速找到文件的索引信息,最后直接与存储着文件的节点进行通信,目前应用比较广泛的是Kademlia、Chord、Pastry、CAN等算法。目前基于Kademlia的DHT网络还存在许多问题和需要改进的地方。首先是基于Kademlia的DHT实现中还没有基于IPv6网络的,无法在纯IPv6环境下使用DHT功能。其次是DHT中节点的逻辑位置和物理位置完全脱离,使得路由查找时效率不够高。还有就是当前DHT的架构中,由于各个节点完全平等,节点经常从其他网络寻找资源造成过多的跨域流量。针对以上问题通过对Libtorrent函数库进行改造,针对IPv6网络进行修改,同时融合IPv6的特性,将物理位置信息融入到节点之中。通过对DHT进行层次化优化,使得DHT网络具有更好的路由效率。最后利用以上改进,设计并实现了一个IPv6环境下基于DHT的P2P媒体分享系统,检验优化方案的效果。