摘 要
随着BitTorrent(以下简称BT)等一系列P2P应用的兴起,网络流量犹如洪水到来,互联网服务提供商(Internet Service Provider,以下简称ISP)正在面临巨大的网络带宽压力。据统计,目前我国互联网P2P流量已占总流量的70%左右,而以BT为主的P2P下载流量已占P2P总流量的80%,因此为了缓解BT等应用带来的大量带宽的占用,ISP通过充分挖掘基础网络设备功能来达到最基本的效果。本范文主张采取正确引导P2P流量的策略的方法,[]借鉴Web Caching技术与CDN内容分发网络技术的基本原理,提出设置P2P内容缓存服务器的方法和关键技术。首先将用户请求的内容转移到P2P内容缓存服务器中,然后再通知用户到P2P内容缓存服务器中下载,尽量将P2P流量控制在ISP网络内部,从而有效控制ISP出口网络带宽拥挤的状况。同时,实现了网络运营商对P2P内容的监管,为P2P技术推动互联网健康快速的发展起到了重要的作用。
关键词:BitTorrent,P2P,互联网服务提供商,流量,网络带宽,P2P内容缓存服务器
1 绪论 1
2 P2P技术介绍 2
2.1 传统资源共享方式 2
2.2 P2P网络共享方式 2
2.2.1 P2P网络原理 2
2.2.2 P2P网络应用模式 3
2.2.3 P2P网络路由模型 3
2.3 P2P流量的特征分析与识别 3
2.3.1 P2P流量特征 3
2.3.2 P2P流量识别与检测 4
2.4 P2P应用对ISP造成的影响 5
2.5 目前对P2P应用的解决办法 6
3 目前一些缓存技术分析和P2P内容缓存系统的可行性 7
3.1 Web Caching技术 7
3.2 CDN内容分发网络 8
3.2.1 CDN工作原理 8
3.2.2 CDN框架结构 8
3.3 Web Caching与CDN系统比较 9
3.4 Web Caching技术可行性报告 9
3.5 CDN技术可行性报告 10
3.6 本章小结 11
4 P2P内容缓存系统研究与设计 12
4.1 P2P内容缓存系统设计目标 12
4.2 P2P内容缓存系统总体设计概要 13
4.2.1 系统设计层次结构 13
4.2.2 系统功能模块 13
4.2.3 系统关键技术 15
4.3 系统方案设计 17
4.3.1 方案一 17
4.3.2 方案二 18
4.3.3 方案比较 19
5 用于缓存系统的下载软件开发与调试 20
5.1 系统开发环境与开发环境 20
5.2 程序结构与程序流程分析 20
5.2.1 进程设计 20
5.2.2 程序流程图 22
5.3 数据结构与关键算法分析 25
5.4 系统软件测试 28
5.4.1 系统测试环境 28
5.4.2 系统测试时遇到的问题 29
5.5 系统实现功能及特性说明 30
5.6 系统可扩展方案研究说明 30
6 结 论 32
6.1 设计过程与实现结果分析 32
6.2 系统遗留问题及工作展望 32
参考文献 33
致 谢 34
作者简介: 34
声 明 35
绪论
近几年来,随着以BitTorrent为代表的P2P技术的快速发展,彻底打破了传统的C/S资源共享模式,网络流量急剧增加,同时也影响了ISP的运营模式,使得ISP出口带宽紧缺,为了解决这些问题,ISP提出了很多方案,例如:阻塞常用P2P端口、限制用户上限带宽、干扰peer间通信等措施,但是最终取得的效果却并不理想,因此当前需要一种新型的网络解决方案实现缓解ISP出口带宽紧缺的问题。而P2P带宽解决方案的关键技术[1]在于:高速应用层协议识别、范围控制与本地服务、高速数据内容检测、数据流重定向。
本范文的研究目的就在于设计出一种P2P内容下载缓存系统,通过P2P流量检测技术,将所有经过ISP出口的P2P流量重定向到P2P内容缓存服务器中,P2P内容缓存器完成P2P内容数据的集中,然后再将这些P2P内容数据传送给请求的用户,使绝大多数的P2P流量控制在ISP内部,从而缓解ISP出口的带宽压力。
本文在深入分析当前ISP缓解网络带宽方案的基础上,结合Web Caching技术与CDN内容分法网络的缓存系统原理,提出基于BitTorrent应用的P2P内容下载缓存系统,并通过编写代码,实现用于P2P内容缓存服务的软件系统。该系统应能够支持基于BT协议的P2P下载控制以及将P2P缓存服务器中存在的P2P内容数据高速的传送给请求该内容的用户。
目前,暂时还没有关于使用P2P内容缓存服务器的方式来引导P2P流量的研究方案和实用系统,因此本系统的研究为P2P合理有效的利用和监管提供了新的方向和思路,对P2P技术的合理发展将起到一定的促进作用。
P2P技术介绍
传统资源共享方式
在如今的互联网时代,资源共享是其非常重要的功能之一。传统的资源共享方式主要是C/S模式(客户端/服务器,Client/Server),其主要由客户应用程序(Client)、服务器管理程序(Server)和中间件(Middleware)三个部件组成[2]。客户应用程序是系统中用户与数据进行交互的部件。服务器程序负责有效地管理系统资源,如管理一个信息数据库,其主要工作是当多个客户并发地请求服务器上的相同资源时,对这些资源进行最优化管理。中间件负责联结客户应用程序与服务器管理程序,协同完成一个作业,以满足用户查询管理数据的要求。比较经典的应用有FTP和WWW服务,其是FI'P,它的全称就是“文件传送协议”,FTP协议以其稳定、高速、简单的文件传输而一直保持着很大的生命力。
C/S结构在技术