Node.js 在没有端口转发(例如WebTorrent)的NodeJ中,种子下载是如何工作的?

Node.js 在没有端口转发(例如WebTorrent)的NodeJ中,种子下载是如何工作的?,node.js,tcp,p2p,torrent,webtorrent,Node.js,Tcp,P2p,Torrent,Webtorrent,我正在尝试通过TCP在节点中不同网络上的两个设备之间建立连接 我一直在阅读,要通过TCP连接两个设备,我需要在路由器上设置端口转发,或者使用ICE连接(很好的总结) 据我所知,这些限制完全有道理 所以我不明白的是,在没有端口转发或ICE连接的情况下如何工作。项目自述说明在node.js中,此模块是一个简单的torrent客户端,使用TCP和UDP 我看过代码,但老实说,我不知道它是如何完成的,有人知道torrent客户端如何能够在没有端口转发/中间件的情况下通过TCP从其他对等方播种和下载数据吗

我正在尝试通过TCP在节点中不同网络上的两个设备之间建立连接

我一直在阅读,要通过TCP连接两个设备,我需要在路由器上设置端口转发,或者使用ICE连接(很好的总结)

据我所知,这些限制完全有道理

所以我不明白的是,在没有端口转发或ICE连接的情况下如何工作。项目自述说明在node.js中,
此模块是一个简单的torrent客户端,使用TCP和UDP


我看过代码,但老实说,我不知道它是如何完成的,有人知道torrent客户端如何能够在没有端口转发/中间件的情况下通过TCP从其他对等方播种和下载数据吗?

没有跟踪器或DHT,torrent客户端与关闭的端口之间不可能相互连接。无论如何都需要一些“中间件”。据我所知,跟踪器(和DHT)的作用是告诉同龄人谁在线,并播种/吸血,从而提供每个同龄人的位置信息,以便其他同龄人可以连接到他们。就像在WebRTC中交换ICE信息的服务器一样。如果这是正确的,你是在告诉我跟踪器也会通过隧道传输流量到每个对等点吗?不,跟踪器不会通过隧道传输流量,但它们会提供有关对等点位置的信息(正如你正确提到的)。我之前的评论不太正确:如果只有具有关闭端口的客户端,那么它们不能交换任何数据,至少其中一个应该具有开放端口。此客户端将是所有其他客户端的“隧道”。这意味着,如果我从路由器后面的家用pc连接到torrent网络,然后我想从另一台路由器后面的另一台pc下载存储在这台pc(这是唯一的播种机)上的文件,两者之间的连接实际上是通过网络上的另一个对等方进行的?是的,你是对的。事实上,这个同伴会从你的家用电脑上下载文件,然后将其植入你的另一台电脑。