论文部分内容阅读
当传统的C/S网络结构已经不能满足大众对文件下载的需求时,P2P在这种环境下运应而生,而P2SP技术是在吸收P2P、传统C/S结构两者优点的基础上发展而来,由于P2SP优点众多,已经从最开始的文件资源交换,发展到了在分协同工作、分布式存储与计算、深度搜索等重要而新颖的应用,对现代网络产生的巨大影响。在目前的技术条件下,P2SP文件分发系统在实际设计中还有诸多的问题需要研究。首先,针对P2SP实际工作流程的问题,基于现有开源P2SP软件源代码以及技术文档研究P2SP系统的架构,揭示P2SP实际工作方式与流程,提出了精简的P2SP文件分发系统的软件设计方法。其次,针对避免文件重复传输的问题,研究了HTTP协议的工作机制,解决了文件分发系统在HTTP方式下有效快速断点续传文件的问题。最后,针对上传服务器因连接数过多而负载过高的问题,研究服务器负载均衡算法,采用最小连接数算法,解决上传服务器的高负载问题。在诸多问题解决过程提出了以下三点解决方法。(1)对令牌桶算法进行了改进,设计一种新的限速算法,针对已有算法时间精度不够,造成限速失败的问题,处理方法是将单位时间扩大到1S;针对丢包问题,采用在单位时间内将所有令牌一次性全部加入令牌桶的方式;这两种方法主要解决精度不够而限速失败与超过令牌桶上限而丢包的问题。(2)设计一种单缓存区、单线程的分包算法,针对TCP自身优化算法、发送过快、接收处理过慢都可能会导致的数据包粘连问题,采用对数据包格式化处理,使用递归算法取出完整的报文,解决TCP粘包问题。(3)设计一种高性能的通信架构,针对现有的IOCP设计中无法记录业务状态问题,在IOCP的Key和OverLapped属性中加入能够记录业务状态的“状态字”,在线程池的配合下,后期通过对分发系统的测试证明完全解决了“多用户一线程”,“一用户一线程”性能瓶颈问题,系统的网络传输与响应能力也有大幅度的提升。