论文部分内容阅读
随着P2P网络的发展,它在对等计算、协同工作、内容共享等领域都有非常广泛的应用。但是P2P应用的增加必将产生大量的数据请求和数据传送,而这会造成网络拥塞等一系列问题,进而降低P2P网络的性能。缓存是一种提高计算机系统数据性能的有效机制,并且Web缓存技术也被广泛应用以提高传统计算机网络系统的性能,但是它不能很好的适应在P2P网络环境中多个对等节点共享数据的需要,于是网络缓存协作概念就此产生。网络缓存协作是指在P2P网络中,一个对等节点不仅能从自身的缓存中保存和获取数据,而且能够从其它对等节点的缓存中保存和获取数据,进而能提高缓存命中率和缓存利用率,提高P2P网络的性能,因此一个完善的缓存协作协议具有很强的研究意义。本论文分析了现存的缓存协作协议,指出缓存协作应包含两部分内容:针对P2P网络缓存协作特点的缓存替换算法,和与该缓存替换算法配合的缓存协作协议,并在此基础之上提出了基于蚁群算法的缓存替换算法和基于读写组的缓存协作协议(简称R/WGCC协议)。本论文在对基于蚁群算法的缓存替换算法的讨论中,首先分析了现存的缓存替换算法和缓存替换算法在P2P网络缓存协作中的特点,并指出传统的缓存替换算法并不能很好的适应P2P网络缓存协作的应用。然后分析了缓存替换问题和0/1背包问题之间的异同,并分别给出了缓存替换问题的一般化描述、形式化描述和数字模型,并证实缓存替换问题是一类典型的0/1背包问题。以此结论出发,借鉴求解0/1背包问题的蚁群算法模型,针对P2P网络缓存协作的特点,对其进行适当的修改,提出了基于蚁群算法的缓存替换算法。并通过仿真实验证明其可行性和有效性。本论文在对R/WGCC协议的讨论中,首先分析了现有的缓存协作协议中的缓存组分组算法的优缺点,提出了一种新的缓存组分组算法。该算法的基本思想是区分P2P网络中对等节点的不同类型,把不同类型的对等节点划分到只读缓存组中或读写缓存组中。然后提出了三种缓存协作协议的操作。这些操作利用基于蚁群算法的缓存替换算法产生的缓存的平均信息素浓度来判断该节点缓存被利用的情况,并根据节点所在的缓存组,来管理缓存组内各节点之间的缓存资源和缓存协作。在进行理论研究的同时,本文利用OPNET网络仿真软件和作者编写的缓存协作协议模拟器,对基于蚁群算法的缓存替换算法和R/WGCC协议进行了仿真实验。通过对仿真结果的比较和分析,验证了作者所提出的基于蚁群算法的缓存替换算法和R/WGCC协议的可行性和有效性。