节点交换

节点交换（，简称PEX；或称对等端交换）是一个增强BitTorrent文件共享协议的通信协议，它使一组用户（或对等端）能更加快速和高效地共享特定的文件。

在BitTorrent文件共享协议的原始设计中，一个文件共享组（也称swarm）中的对等端（用户）依赖一个称为Tracker的中心化跟踪服务器来找到其他人和维持群组。PEX则极大降低了对等端对Tracker的依赖，允许每个对等端直接更新群组中的对等端参与信息。通过降低对集中式跟踪服务器的依赖，PEX提升了速度、效率和BitTorrent协议的健壮性。

描述 
节点交换不能用在将一个新对等端介绍到一个swarm。要初始化与swarm的接触，每个对等端必须使用一个“.torrent”文件连接到tracker，或者使用名为bootstrap node的路由计算机来找到一个描述了对等端swarm列表的DHT。对于大多数BitTorrent用户而言，DHT和PEX将在BitTorrent客户端启动并打开一个.torrent文件后开始工作。另一点值得注意的是“私有种子”，它不会公开可用，且通常将禁用DHT。

节点交换惯例 
根据Azureus与µTorrent的开发者之间达成的一致，任何实现上述两者（之一）机制的客户端在发送PEX消息时应遵守以下限制：
 提供的任何PEX消息中应该不添加超过50个或移除超过50个对等端。
 对等端交换消息的发送频率不应超过每分钟一次。
一些客户端可能选择强制实施这些限制，并且放弃忽视这些规则的客户端的连接。

DHT 
为创建一个PEX协议，提供均匀分布的对等端选择，其中一个可以对种子形成一个小的DHT本地网络。 For each desired new peer one would look up a (uniformly) random key, and use the node responsible for the key as a new peer.这在概念上很简单，但也需要不小的开销。

版本 
共有三个互不兼容的PEX实现（形成非互通的网络群组）
 Vuze – 在Azureus中引入
 BitComet – 专有 – 在BitComet中引入
 MainLine – 在µTorrent中引入

支持对等端交换的客户端 
下列客户端的特定版本已实现对等端交换：
 Ares Galaxy
 aria2，支持µTorrent PEX
 Vuze，旧称Azureus，以及基于它的客户端（Vuze PEX仅与Transmission客户端兼容。其他客户端的PEX已在Vuze及Azureus 3.0.4.3及以上版本中实现）
 BitComet的旧版本中支持使用专有协议的PEX。从v.1.19开始，它也添加了µTorrent/Mainline实现的基于扩展协议的PEX。
 Bitflu
 BitTorrent
 KTorrent在2.1 RC1中已实现完整的µTorrent PEX支持。
 libtorrent及基于它的客户端（Deluge、qBittorrent、MooPolice）与µTorrent兼容
 Tixati
 µTorrent
 Opera 9.5，支持µTorrent PEX
 qBittorrent，支持µTorrent PEX
 rTorrent
 Transmission（μTorrent和Vuze的实现均兼容）
 XTorrent基于Transmission的源代码，因此在其1.0 (v40)版本中同样兼容Vuze和µTorrent的实现

参考资料

外部链接
Description on the official Azureus wiki 

BitTorrent