摘要

  • BitTorrent 把热门文件的很大一部分出口流量,从发布者转移给同时下载的用户。普通网站、tracker 和最初的完整种子仍在分发链路中。
  • Cohen 讨论的 choking 互惠策略属于客户端行为,不是线路协议强制实施的规则。一个节点可能上传多于自己获得的内容,也可能只贡献足以改善自身下载的带宽,甚至下载完成后就停止分享。
  • 2007 年的一项研究发现,策略性客户端可以减少上传,同时提升自身表现。该结论对应研究当时观察的网络与测量,不足以概括之后所有种群。

文件分发不再由一台主机独自承担

传统 HTTP 下载把每一份文件都从原始主机送出。遇上热门文件,发布者必须准备足够大的出口容量,否则下载速度会受限。Bram Cohen 在 2003 年的论文里提出另一种分工:有多个用户同时下载时,他们可以相互交换已经收到的片段,让下载者也成为分发者。

这并没有让源站退出,而是改变了流量从哪里来。源站仍提供最初的文件和发现入口,参与者则随着加入而带来新的上传能力。Cohen 认为,当下载者的上行流量通常不按量计费时,这种方式可能使热门文件的托管更负担得起。这是特定计费环境下的判断,不等于上传在任何地方都免费:连接容量、用电和长期维护都有成本,接入服务的资费也不相同。

BitTorrent 的启动过程依然依赖几个具体角色。发布者把 .torrent 元信息放在普通 Web 服务器上;tracker 帮助下载者发现彼此;拥有完整文件的种子必须先启动,至少送出一份完整副本。Cohen 认为网页服务器与 tracker 的带宽需求相对较小,但种子仍须把整个原始文件传出去。改变的是大部分数据流量的承担者,而不是文件最初从哪里进入系统。

因此,“BitTorrent 让托管免费”不是准确结论。发布者或许少发了许多字节,但最终账单取决于带宽定价、出口上限、节点实际上行的能力,以及完整副本要保留多久。系统把分发能力分散给更多参与者,同时也把一部分成本和责任转移过去,并未抹去它们。

互惠是一项客户端政策,不是协议承诺

Cohen 描述的客户端会依据近期下载情况挑选上传对象,这是一种 tit-for-tat 变体。节点可以暂时对某条连接执行 choking:停止向它上传,但仍可继续从它下载。客户端还会周期性尝试 optimistic unchoke,给尚未获选的连接一个机会,看是否能找到更好的传输对象。

关键界线在于,Cohen 明确指出 choking 算法并不属于 BitTorrent 的线路协议。协议提供数据和信号交换方式;客户端决定服务哪些对等节点,则是本地实现策略。把“BitTorrent 保证互惠”当成协议属性,会把设计意图说成无法由标准保证的结果。节点手里的片段、连接更替、客户端实现以及闲置的上行容量都会影响最终交换。

发布者也保留一项决定权:是否采用 BitTorrent。用户则是因为想得到某个文件才使用它。Cohen 还强调,点击链接即可开始下载的简易界面,可能比性能或成本再分配更能解释普及。这说明协调机制不只取决于奖励如何设定,也取决于参与者是否愿意进入并留在系统里。

2007 年的反例提醒

2007 年,Michael Piatek、Tomas Isdal、Thomas Anderson、Arvind Krishnamurthy 与 Arun Venkataramani 重新检验了“激励机制带来稳健性”的说法。他们以真实流量记录为参数进行建模,发现节点会提供一些并不能直接改善自身表现的资源。团队随后实现 BitTyrant,通过调整活动连接集和每条连接的上传速率,尝试用更少的上行流量获得更高下载速度。

USENIX 会议摘要报告称,在他们实测的在线种群中,一个 1 Mbit/s 客户端取得了中位数 70% 的性能提升。作者同时指出,如果策略性客户端普遍采用,平均每个种群的表现可能低于当时比较的 BitTorrent 客户端。这个发现削弱了“tit-for-tat 本身足以保证贡献”的说法;它不是对所有客户端或今天网络的测量,也不能把 70% 当作普遍承诺。

需要区分两种作用:互惠可以组织交换,却不一定能强制参与者贡献全部能力。试探连接和能力差异会留下没有直接回报的上传空间;策略性客户端可以尝试捕获其中一部分。若这种做法广泛扩散,某个种群是否因此受损,要看仍有多少有效上传能力,以及参与者如何应对。

完整副本仍是控制点

发布者的部署选择让整个分发过程开始:发布元信息、维持 tracker 或其他节点发现方式,并启动一份完整种子。种群形成后,每个客户端决定自己的上传行为。Cohen 的设计没有一个中央调度者为每位用户分派强制上传份额。

这种分工带来弹性,也带来缺口。发布者可以依靠参与者扩大分发,而不必自行购买所有出口容量;用户也能决定下载完成后是否继续做种。但有协议不等于有稳定的上传供给。如果最初的种子在各片段还没有充分复制前离开,或者持有罕见片段的最后一个节点断线,文件就可能不再完整。稀有优先的选片策略能较早复制稀缺片段,却无法在最后一份消失后重新创造它。

运营者真正需要回答的不是 BitTorrent 是否“解决了托管”,而是源站还承担多少流量、节点究竟分担了多少,以及需求回落后由什么保证所有片段仍可取回。Cohen 把下载者变成了潜在分发者;后续研究则说明,这种能力需要持续测量,不能只凭协议名称推定。

来源