Linux BitTorrent客户端设计与实现[含源码]

互联网络通信方式的在不断变迁,它历尽了从最初的同构互连到服务器/客户端格局的通信模式,最终回归到P2P通信模式。虽然P2P通信模式在技术还有许多未解决的问题,但趋势是计算机网络通信模式。itTorrent的BT技术,P2P技术是一种新的网络技术的研究和应用产生的焦点。本文仔细交代了BitTorrent协议,通过在逻辑上阐述其下载原理。什么是B编码、种子文件的工作原理、Tracker服务器跟踪过程以及peer节点间的交互的方式。从起初的发展现状到开发所用到的相关技术的介绍,从涉及的专业术语到相关的核心算法的介绍,最后还详细的描述了BT的八个大模块的设计与实现。F00007
关键字: P2P  BitTorrent  Peer
The Design and Implementation of a BT Client for Linux
Abstract:In the ever-changing network of communication, which have gone through from the initial interconnection isomorphic to the server / client communication mode pattern and eventually return to the P2P communication mode. While the P2P communication mode there are many unsolved technical problems, but the trend is a computer network communication mode. itTorrent the BT technology, P2P technology is the focus of research and application of a new generation of network technology. This paper carefully explained the BitTorrent protocol, logically explained by download works. What is a B-coded, works interactively seed file, Tracker tracking process servers and peer nodes. From the beginning of the current development are used to introduce the development of related technologies, from professional to introduce the relevant terminology involved in the core of the algorithm, and finally a detailed description of the design and implementation of BT's eight large modules.
Keywords: P2P;BitTorrent;Peer
目录查看完整请+Q:351916072获取
1. 绪论    4
1.1 BitTorrent 发展现状    4
1.2论文主要内容    4
1.3 开发技术    5
2. BitTorrent内容分发系统相关研究    9
2.1 BitTorrent系统简介    9
2.2 BitTorrent协议分析    10
2.3 BitTorrent系统的核心算法与策略    10
3. Linux下BT客户端的总体设计    12
3.1 系统分析    12
3.2 总体设计    12
3.3 BT客户端的模块化设计    13
4. 模块的设计与实现    15
4.1 种子解析模块的设计和实现    15
4.2 位图管理模块的设计和实现    15
4.3 Peer管理模块的设计和实现    16
4.4 消息处理模块的设计和实现    16
4.5 缓冲管理模块的设计和实现    17
4.6 策略管理模块的设计和实现    18
4.7 连接Tracker模块的设计和实现    18
4.8 与Peer交换数据模块的设计和实现    19
4.9 主函数的设计和实现    19
5. 结论    21
参考文献:    22
致  谢    23
1.1 BitTorrent 发展现状
目前,在P2P网络应用很多,包括BitTorrent和最流行的电驴的应用,两个中国用户的P2P下载的最重要途径。BitTorrent可缩写BT,也可称为比特洪流,是一个时髦的P2P技术。2002年,首个取得MIT许可证运用Python编写的BT软件BitTorrent涌现。随后BitTorrent技术迅猛发展。在2007年,某德国互联网公司报告称,根据不同地区,大部分的互联网流量都出自P2P应用。在这其中,BitTorrent的已超过电驴,P2P流量的优势。而eDonkey在不同地区,份额占了很少。
1.3 开发技术
1.3.1 P2P技术概述
P2P是对等互联网络技术是一种网络新技术。 P2P定义为通过在系统之间直接交换来共享计算机资源和服务的一种应用模式。在P2P网络 中不同用户之间可以不经过中继设备直接进行资源的交换和共享,依赖网络中参与 者的计算能力和带宽,而不是把依赖都聚集在较少的几台服务器上。P2P直接将用户联系起来,让用户通过互联网直接交互。
4.1 种子解析模块的设计和实现
此模块作用是对元信息文件进行B解码。当从Web服务器上下载种子文件后,BT客户端就可以通过分析种子文件然后去访问Tracker服务器,某些加入下载的节点会随机的成为申请节点的合作节点通过Tracker服务器,并且将这些节点的信息发送给申请节点,新参与的节点将开始上传或下载文件片段的编码块在连接合作节点后,并写入磁盘文件。BT客户端需做出元信息文件依据数据文件当其作为种子节点时,然后发布到Web服务器上,等候其它节点的申请连接,并且获得对应的文件片段从数据文件中,然后代码块代码上传到相应的节点合作。所以,BT客户端必须要一直操作元信息文件在其上传或者下载过程中。BT客户端是要做的第一件事是确定的种子文件,包括:
(1)辨别种子文件是否有效; (2) 获得以下信息:跟踪服务器,列表的块号,块大小,文件列表; (3)其他的一些次要信息如发布者,发布日期,注释等; (4)计算infohash。
4.8 与Peer交换数据模块的设计和实现
本模块由多个子模块构成,主要负责与已建立连接的peer交换数据。除此之外,还调用“连接Tracker”模块中定义的函数监视各个套接字,以及尝试与新的peer建立TCP连接。
Peer,表示与BT客户端抽象的建立连接和通信的节点,一个peer便称为一个合作节点。Peer主要从下载数据的速率、上传数据的速率、BT客户端与合作节点连接的状态、合作节点的piece位图、通信错误次数等角度来描述客户端与合作节点之间的通信状态。
4.9 主函数的设计和实现
主函数模块的作用是用来调用子模块,并且对BT的上传和下载进行控制。查看完整请+Q:351916072获取

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/2075.html

好棒文