如何连接到从bittorrent获得的对等体

Rat*_*lle 8 bittorrent nat

我正在寻找在Ruby中构建一个bittorrent客户端(尽管语言在这里并不重要).

我读了一个BEP规范,它说查询/announce(没有DHT支持)跟踪器会给出一个当前为给定信息哈希连接的对等列表.

检查一下.我创建了一个torrent文件,我发现跟踪器返回我的机器的IP以及端口(我确认是我的机器上的Bittorrent客户端的运行端口,即Utorrent)

但是问题是Peers信息返回了我的ISP的IP即111.125.209.41(面向IP的公众,因为我在NAT后面).

现在我无法通过我的ISP 连接(通过TCP)到我的机器上运行的进程.

任何人都可以建议bitorrent如何在这方面工作,我该怎么做才能解决这个问题.

它可能会通过UDP Bittorrent使用UDP保持打孔不确定TCP上发生了什么.

the*_*472 2

有两个不同的问题。

  1. 互联网上的对等点(即世界上 99.99999% 的人)如何连接到您的 NAT 节点
  2. 网络内的对等点如何连接到同一网络上的节点。

第一个是通过各种nat穿越方法来实现,包括与nat设备协商或手动配置它。

第二个问题要么需要路由器能够结合转发端口进行发夹路由,要么需要本地对等点通过其他方式(例如LSD)发现内部地址。