小樱 发表于 2021/5/30 01:08

转:关于 BitTorrent Tracker Protocol

小樱先生:

你好。
冒昧来信,恕其失礼,诸多烦渎,惶愧奚如。

通过互联网寻到你,看到你过往一直对 BitTorrent 相关的内容有涉入了解,想找你请教一些知识。

很久之前看到现有的 PT 站点,一直都想找时间重写一个更具现代化(好用)的 PT 服务。断断续续,近来完成了 Bencode 编解码的库。准备去实现 Tracker Server 库,但是找了很多相关资料,发现现在各种客户端的实现中并不是完全符合 BEP 标准的,且其中一部分内容并不在其中。

例如 libtorrent 的实现中会有支持加密、强制加密的选项,在某个邮件列表中看到相关的内容中,SupportCrypto 和 RequireCrypto 是两个字段,但在 libtorrent 的实现中只有 SupportCrypto 字段(强制加密也是使用的这个字段)。

libtorrent 会发送 Redundant 字段,但是并没查到关于这个字段的资料,不清楚这个字段做什么的。在其他文档看到 Remaining 字段,也不知这个字段的用途。

测试各种 Tracker Server 服务的实现中发现了一些其他的问题。

例如,
1. 无视 numwant 选项,返回数量并不会尽量匹配;
2. 无视 compact 强制返回压缩 peers;
3. compact 都强制了,no_peer_id 可想而知。

不知小樱对这些是否有所涉猎。

不情之請,尚乞見諒,如蒙鴻訓,幸何如之。
aoang@x2ox.com
aoangc@gmail.com




libtorrent 中 Redundant 字段的问题,建议找官方发issues确认一下,个人认为这个是不会发起到tracker server当中的。
https://github.com/arvidn/libtorrent/issues

PT Tracker server建议用c语言实现,以便提供更好的网络性能和降低系统负载。

1.这是tracker server的一些参数设定,例如忽略numwant,强制返回全部,或者返回更多的peer给客户端,以便大幅度提升下载性能,所以部分公共tracker会导致不同的peer数量返回结果
2.这可能通过了cloudflare,cdn会强制进行br或者gzip压缩,以便节省cdn server产生的网络传输流量,节省服务器成本开支
3.no_peer_id 这个字段我视乎没见到过,你是在哪个客户端上面发起tracker时发现的?

不可名 发表于 2021/7/19 02:16

{:3027:}{:3027:}{:3016:}啊
页: [1]
查看完整版本: 转:关于 BitTorrent Tracker Protocol