● 摘要
传统C/S(Client/Server,客户端/服务器)架构中服务器作为系统中心节点,服务器计算能力,存储效率,网络带宽等诸多因素直接决定了系统服务质量的优劣,人们不得不寻求一种的新的技术架构来克服传统C/S架构的不足。P2P(Peer-to-Peer,点对点)技术架构的出现极大丰富了人与人之间沟通以及便利获取、发布共享数据这一时代主要特征,使网络资源高度利用率成为可能。
本文在分析P2P技术架构的基础上,设计了一个P2P文件共享系统。该系统集中体现了P2P非中心化思想,完全不依赖中心服务器工作,系统难点在资源存储视图设计上,需要综合考虑系统的容量,便于资源定位等因素。系统采用DHT(Distributed Hash Table)分布式存储技术,节点只需存储一小部分数据就可以实现整个网络的寻址和存储,并且实现了基于DHT的资源冗余备份。另外,采用Redis内存数据库作为本系统的高速缓存,大幅度提高了资源查询和下载效率。最后,为了实现系统中节点真正意义上的对等,需要考虑外网节点访问位于NAT(Network Address Translation)之后的节点,在此基础上提出了NAT穿越方案。本文针对用户的实际需求以及相关难点的解决方案,开发实现了P2P文件共享系统,目标是使P2P网络用户能够快速高效地分享和获取文件,实现了文件共享、文件传输以及文件搜索的主要功能,在一段时间内可以适应一定数量的用户,在较短的时间内对用户需求作出反应且执行相应动作。
本文通过绪论阐述了P2P技术的背景和意义,分析广域网中用户快速获取共享资源的需求,进而阐明文件共享系统架构以及总体设计,在此基础上详细分析了系统各个模块设计与实现,最后完成了对系统的测试。