优化解决

  1. 如果 Tracker 服务器出问题了,连不上这个问询的服务器,就拿不到周围的邻居节点,怎么办?

BT 发明者提出了 DHT 的概念,就算 Tracker 连不上了,也可以通过分布式哈希表 DHT 技术,通过 DHT 网络慢慢的寻找志同道合的邻居节点,只是没有 Tracker 那么直接那么快速,但慢一些总还是有机会找到邻居的。

  1. 网络是复杂的,特别是聪明的各个运营商,为了不让自己的用户消耗太多带宽,很多地区的运营商对 P2P 是有封锁的

他们的做法早期是分析协议里面的握手消息,BT 的握手消息是明文的 Bittorrent Protocol,粗暴的运营商看到刚建立完连接就发这个明文会立即断开连接; 文明点的运营商看到后不断开连接,但会限速到 20K 让你慢慢下载。 当然,BT 后来也发明了加密协议,运营商也升级了封锁的设备,也开始模拟自己是一个客户端,尝试分析加密后的协议,精彩纷呈。 所以,要做一个稳定的靠谱的 P2P 系统还是有不少坑要趟的

  1. 还有很多很多,比如 BT 对磁盘的调度、缓存的机制、文件分块的调度算法、服务器对几百万几千万用户量时的性能提升等等