BitTorrent
维基百科,自由的百科全书
应用层 | DNS, FTP, ENRP,HTTP, IMAP, IRC, NNTP, POP3, RTP, SIP, SMTP, SNMP, SSH, Telnet, BitTorrent, DHCP ... |
传输层 | DCCP, SCTP, TCP, UDP, IL, RUDP, ... |
网络层 | IP(IPv4, IPv6),ICMP,ARP,RARP,IGMP... |
数据链路层 | Ethernet, Wi-Fi, Token Ring, MPLS, PPP ... |
物理层 | RS-232, EIA-422, RS-449, EIA-485, 10BASE2, 10BASE-T ... |
BitTorrent协议(简称BT,俗称比特洪流、BT下载、变态下载)是一个网络-{A|zh-cn:文件;zh-tw:檔案}-传输协议,它能够实现点对点文件分享的技術。比起其他點對點的协议,它更有多點對多點的特性,這個特點简单的说就是:下载的人越多,速度越快。下载完不马上关闭BitTorrent软件,就可以成为种子(擁有完整的檔案者)分流让其他人下载。
目录 |
[编辑] 原理简述
普通的HTTP/FTP下载使用TCP/IP协议,BitTorrent协议是架构于TCP/IP协议之上的一个P2P文件传输协议,处于TCP/IP结构的应用层。 BitTorrent协议本身也包含了很多具体的内容协议和扩展协议,并在不断扩充中。
根据BitTorrent协议,文件发布者会根据要发布的文件生成提供一个.torrent文件,即种子文件,也简称为“种子”。
.torrent文件本质上是-{A|zh-cn:文本;zh-tw:純文字}-文件,包含Tracker-{A|zh-cn:信息;zh-tw:資訊}-和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的-{A|zh-cn:块;zh-tw:區段}-,块大小必须为2k的整数次方(由于是虚拟-{A|zh-cn:分块;zh-tw:分段}-,硬盘上并不产生各个块文件),并把每个块的索引信息和Hash验证码写入.torrent文件中;所以,.torrent文件就是被下载文件的“索引”。
下载者要下载文件内容,需要先得到相应的.torrent文件,然后使用BT客户端软件进行下载。
下载时,BT客户端首先解析.torrent文件得到Tracker地址,然后连接Tracker服务器。Tracker服务器回应下载者的请求,提供下载者其他下载者(包括发布者)的IP。下载者再连接其他下载者,根据.torrent文件,两者分别对方告知自己已经有的块,然后交换对方没有的-{A|zh-cn:数据;zh-tw:資料}-。此时不需要其他服务器参与,分散了单个线路上的数据流量,因此减轻了服务器负担。
下载者每得到一个块,需要算出下载块的Hash验证码与.torrent文件中的对比,如果一样则说明块正确,不一样则需要重新下载这个块。这种规定是为了解决下载内容准确性的问题。
一般的HTTP/FTP下載,发布文件仅在某个或某几个服务器,下載的人太多,服务器的带宽很易不勝負荷,變得很慢。而BitTorrent协议下载的特点是,下載的人越多,提供的带宽也越多,種子也會越來越多,下載速度就越快。
而有些人下載完成后關掉下载任务,提供较少量数据给其他用户,为尽量避免这种行为,在非官方BitTorrent协议中存在超级种子(super seed)的算法。这种算法允许文件发布者分几步发布文件,发布者不需要一次提供文件所有内容,而是慢慢开放的下载内容的比例,延长下载时间。此时,速度快的人由于未下载完必须提供给他人数据,速度慢的人有更多机会得到数据。
[编辑] DHT网络
目前,又发展出DHT网络技术,使得无Tracker下载成为可能。
DHT全称为分布式-{zh-cn:哈希;zh-tw:雜湊}-表(Distributed Hash Table),是一种分布式-{A|zh-cn:存储;zh-tw:儲存}-方法。在不需要服务器的情况下,每个客户端负责一个小范围的路由,并负责存储一小部分数据,从而实现整个DHT网络的寻址和存储。使用支持该技术的BT下载软件,用户无需连上Tracker就可以下载,因为软件会在DHT网络中寻找下载同一文件的其他用户并与之通讯,开始下载任务。
有些软件(比特精灵)还会自动通过DHT搜索种子资源,构成种子市场。
另外,这里使用的DHT算法叫Kademlia(在eMule中也有使用,称为KAD,具体实现协议有所不同)。
这种技术好处十分明显,就是大大减轻了Tracker的负担(甚至不需要)。用户之间可以更快速建立通讯(特别是与Tracker连接不上的时候)。
[编辑] BT中相关概念
Tracker:收集下载者信息的服务器,并将此信息提供给其他下载者,使下载者们相互连接起来,传输数据。
种子:指一个下载任务中所有文件都被某下载者完整的下载,此时下载者成为一个种子。发布者本身发布的文件就是原始种子。也指.torrent文件。
做种:发布者提供下载任务的全部内容的行为;下载者下载完成后继续提供给他人下载的行为。
[编辑] BitTorrent與自由軟件
BitTorrent對於大型文档和自由軟件如Linux、FreeBSD的發佈幫助很大。對於發佈數百MB以至數GB的檔案時,如Fedora的光碟镜像格式檔,BitTorrent的使用能大大減低伺服器的数据流量從而減低發佈的成本。另外,一般有新版本軟件推出時,伺服器必定人山人海,使用BitTorrent也能大大減低繁忙時間伺服器的負擔。
[编辑] 歷史
2002年,布莱姆·科亨在CodeCon初次露面,發表首個BT軟件BitTorrent。它以Python寫成,以MIT許可證發布。
[编辑] 负面影响
BT下载方式目前引起社会的广泛讨论。
利用BT免费发布版权内容肯定损害版权所有者的合法权益,但传播非收费性内容的好处有目共睹。争论的焦点是,是否应因此立法全面禁止BT,并且对从事BT下载的人作出惩罚。但到目前为止,中国大陆和西欧国家等,对BT仍没有任何法律上的约束。而在香港,已经有人(綽號為古惑天皇)因为发布电影的种子而被海关拘捕。2005年10月24日,香港司法機關裁定「古惑天皇」的侵權罪成立,需要即時「監禁」三個月。香港工商貿易部門領導曾俊華與「海關關長」湯顯明對今次裁決感到歡迎,並表示香港將不容忍任何侵權行為的存在,同時政府亦會隨時與商人合作打擊侵權行為。而在台灣,由於需受到美國特別301條款報復的壓力,因此經常與IFPI及商業軟體聯盟(BSA)等商業版權組織合作查緝提供BT來源的網站及討論區,台灣論壇首度因為供應BT下載遭到被捕,卡提諾王國為全台灣最大的BT以及違法分享最大的分享平台,也於不久後被法務部調查。
[编辑] 支援BT下載協定的瀏覽器
- Opera 9
[编辑] 优秀的BT软件
[编辑] 参考
[编辑] 外部鏈接
- (英文)BT官方網站
- (英文)Torrnet Finder - Search over 100 torrent searches
- (英文)BitTorrent官方協議
- (英文)BitTorrent官方健壮性分析
- (英文)BitTorrent非官方協議
- (简体中文)BitTorrent非官方协议、健壮性分析、源代码分析
- (简体中文)全球首名BT電影上載者於香港被捕
- (正體中文-香港)香港BT案件分析
- (正體中文-香港)P2P與版權研究
- (正體中文-香港)P2P與版權人的衝突