用C语言开发一个BT下载软件(一) ------ BitTorrent协议 -1

本文介绍了BitTorrent(BT)协议的工作原理,该协议利用每个下载者同时上传数据的方式进行文件分发。BT系统涉及web服务器、种子文件、Tracker服务器、原始文件提供者、网络浏览器和多个下载者。内容包括解析种子文件获取文件信息、连接Tracker获取peer信息、与peer建立连接进行上传下载,以及如何创建和生成种子文件。
摘要由CSDN通过智能技术生成

  BitTorrent(简称BT)是一个文件分发协议,每个下载者在下载的同时不断地向其他下载者上传已下载的数据。它是属于一个应用层的协议。

  基于BT协议的文件分发系统由以下几个实体构成:

  1. 一个web服务器
  2. 一个种子文件
  3. 一个Tracker服务器
  4. 一个原始文件提供者
  5. 一个网络浏览器
  6.  若干个下载者

      web服务器上保存着种子文件。种子文件又称为元文件或metafile,它保存了被共享文件的一些信息,如文件名、大小、Tracker服务器地址,种子文件以.torrent为后缀。Tracker服务器保存着当前下载某共享文件的所有下载者的IP和端口。原始文件提供者提供完整的共享文件供其他下载者下载。种子文件就是提供者使用BT客户端生成的。每个下载者通过运行BT客户端软件下载共享文件。某个下载者本身称为客户端,其他下载者称为peer。

      下载过程:客户端首先解析种子文件,从中获取待下载的共享文件的一些信息,包括Tracker服务器地址。然后客户端连接Tracker获取当前下载该文件的所有下载者的IP和端口。之后客户端根据IP和端口连接其他下载者,从它们那里下载文件,同时把自己已下载的部分提供给其他下载者下载。

      共享文件在逻辑上被划分为大小相同的块,称为piece,每个piece通常为256KB。实际使用中,每个piece又被划分为大小相同的slice,每个sli
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值