论文部分内容阅读
P2P技术把互联网上大量的计算机组织起来,参与者通过共享各自的CPU、存储以及带宽等资源,使得整个P2P网络的资源和服务能力随着参与者的加入而不断增大。如今,以Bittorrent为代表的P2P内容分发系统能够实现大文件在互联网上高效分发。但是传统的类似于Bittorrent的P2P内容分发系统仍然存在一些诸如对种子节点依赖性太强、资源分布不均匀以及网络资源利用率不高等问题。网络编码是近年来信息传输领域最具创新的技术之一。在应用网络编码的通信系统中,中间节点不再只是扮演数据转发器的角色,而是将收到的数据经过编码后再转发,目的节点通过解码恢复原始数据。最近的研究表明,将网络编码技术应用到P2P内容分发系统中,可以避免复杂低效的内容协商并且能够保证系统资源分布均匀和文件高效分发。本文的主要工作如下:1)研究线性网络编码的构造原理和随机线性网络编码算法,重点分析基于网络编码的P2P内容分发系统的实现技术,包括以微软开发的Avalanche系统为例的完全编码和一种可以改善编码效率的稀疏编码算法。2)研究Bittorrent协议,在Bittorrent协议中集成网络编码技术,设计一个基于网络编码的P2P内容分发系统。通过对Bittorrent协议进行修改,提出四个关键设计:线性相关检测、位图设计、Interest机制和Piece选择机制。3)借助于开源软件Enhanced CTorrent,利用C++实现了基于网络编码的P2P文件共享客户端(NCTorrent)。4)本文最后对NCTorrent进行了系统测试和性能分析,同时得出结论:第一,应用稀疏编码后编码效率比较可观且能够满足系统需求,但解码效率相对较低,对系统性能会造成一定影响。第二,文件分发效率与文件划分密切相关并且在小规模网络中网络编码的优势并不明显。第三,在拥有大量节点的文件分发系统中,与Bittorrent相比,NCTorrent系统吞吐量更高、对动态节点更具弹性、下载成功率更高,从而实现了更高的文件分发效率。