1、编辑版pppt1P2P从入门到实践编辑版pppt2什么是什么是BitTorrent?BT全名为BitTorrent,是一个P2P下载软件(点对点下载软件),你在下载的同时,也在为其他用户提供该文件的上传,因为大家是“互相帮助”,所以不会随着用户数的增加产生服务器拥塞而降低下载速度。编辑版pppt3BitTorrent的应用的应用 Bittorrent已经成为最为流行的P2P软件,在2004年6月的Cachelogic的一份测试是报告中提到Bittorrent的数据流量已经占到整个P2P数据流量的52%。与其他传统P2P软件如Gnutella,Fasttrack不同,Bittorrent只是一个
2、纯粹的文件下载协议,并提供搜索功能,所以往往资源的获取要跟其他一些应用结合起来,比如说发布Bittorrent种子信息的网站或搜索引擎网站。编辑版pppt4BT下载的几个要素1、“元信息”文件(.torrent文件)2、Tracker服务器3、种子节点4、下载节点编辑版pppt5BT下载要素图示Web ServerBobTrackerDownloader:ASeeder:BDownloader:CHarry Potter.torrent编辑版pppt6元信息文件的发布通常用WEB服务器来发布已制作好的.torrent文件。例如:http:/bt.LOR.nethttp:/bt.HarryP S
3、erverHarry Potter.torrentTransformer.torrentThe Lord of Ring.torrent编辑版pppt7.torrent 文件五要素文件五要素The URL of the tracker(Tracker服务器的URL)Pieces (文件分片)Piece length(分片的长度(大小)Name of the file(文件的名称)Length of the file(文件的大小)编辑版pppt8文件的分片在BT下载中,一个大的文件初分解成若干个文件分片,分片的大小,在64 KB 到1 MB之间。12345678编辑版pppt9Tracker服务
4、器服务器IP地址,port(端口),peer id(节点ID)State information(状态消息Completed or Downloading)Returns a random list of peers(返回随机的Peer列表)编辑版pppt10BitTorrent下载过程下载过程Seeder(种子)(种子)=提供完全文件的PeerInitial seeder(初始种子)=提供初始文件拷贝的PeerInitial seeder(初始种子)Seeder(种子)Leecher(下载者)正在下载且上传文件Leecher(下载者)编辑版pppt11简要示例Seeder:ADownload
5、er B1,2,3,4,5,6,7,8,9,101,2,3Downloader C1,2,31,2,3,41,2,3,51,2,3,4,5编辑版pppt12BT下载的基本思路初始者分解文件,制件.torrent文件下载者取得下载者取得.torrent 文件,连接Tracker服务器(tracker),Tracker告知下载者当前有哪些Peer(IP,Port)正在下载这个文件,下载者连接其它Peer下载文件分片。当一个Peer拥有一个完整的文件分片时,在下载的同时也上传自己已有的文件分片,这样各个Peer之间就可以实现交互共享。Peer将下载的所有文件分片,根据校验值,组合成一个完整的文件。编
6、辑版pppt13BitTorrent协议规范BT协议规范,来源于BT官方网站,http:/ Protocol Specification。编辑版pppt14BT协议规范之说明来源及维护应用范围约定BT工作过程描述编辑版pppt15BT协议规范之相关概念.torrent文件2TrackerTracker是指运行于服务器上的一个服务程序,也称Tracker服务器。这个程序能够追踪到底有多少人同时在下载或上传同一个文件。客户端连上Tracker服务器,就会获得一个正在下载和上传的用户的信息列表(通常包括IP地址、端口、客户端ID等信息),根据这些信息,BT客户端会自动连上别的用户进行下载和上传。3C
7、lient(客户端)(客户端)Client,泛指运行在用户自己电脑上的支持BitTorrent协议的程序。Client(客户)与Trackers服务器通信,这样,其他的客户端才能下载到那些发布的文件。4Seed(种子)(种子)BT把提供完整文件档案的人称为种子(Seed)。某一个文件现在有多少种子是可以看到的,只要一个种子就可以放心地下载,一定能接收完。当然,种子越多、客户越多的文件接收起来的速度也就越快。5Re-Seed(补种)(补种)拥有文件的人发布文件之后一段时间,很有可能有人未下完这个文件,这个时候下完的人就可以re-seed一下,帮助那些还没有下载的朋友补完。6Hash(哈希)(哈希
8、)Hash是指用一小段数据来标识容量很大的一段数据。以验证它的完整性,在BT下载中,Hash主要来验证文件的完整性,并且Hash还可以作为不同文件判别的标志。7SHA1 hashingSHA1 hashing 是BT使用的hash方式编辑版pppt16BT协议规范之B编码字节串(字节串(byte strings)整数类型(整数类型(integers)Lists列表类型(列表类型(lists)字典数据型(字典数据型(dictionarys)编辑版pppt17BT协议规范之元信息文件结构“元信息文件元信息文件”的键值说明的键值说明Info DictionaryInfo键对应的值键对应的值Info
9、in Single File Mode(单文件模式下的(单文件模式下的Info键)键)Info in Multiple File Mode(多文件模式下的(多文件模式下的Info键键)BitTorrent协议规范中对分片(协议规范中对分片(piece)的说明)的说明编辑版pppt18BT协议规范之Tracker的HTTP/HTTPS协议1Tracker的的Get请求请求2Tracker的请求参数(的请求参数(Tracker Request Parameters)Tracker服务器的应答(服务器的应答(Tracker Response)BT工作过程描述编辑版pppt19BT协议规范之Peer端协议(Peer wire protocol)关于关于Peer write protocol协议描述协议描述数据类型数据类型报文流(报文流(Message flow)握手(HandShake)20感谢亲观看此幻灯片,此课件部分内容来源于网络,感谢亲观看此幻灯片,此课件部分内容来源于网络,如有侵权请及时联系我们删除,谢谢配合!如有侵权请及时联系我们删除,谢谢配合!