Bittorrent 如何在运营商级 NAT 后面的对等体中工作

Bittorrent 如何在运营商级 NAT 后面的对等体中工作

当我在谷歌上搜索“我的 IP 是什么”时,它显示的内容类似于“112.134.xy”。但是当我进入路由器配置并在 WAN IP 下时,它显示“100.68.ab”(据我所知,这是一个可路由的 IP)。因此,我一定是在运营商级 NAT (CGN) 之后。

但是 torrent 客户端,例如 uTorrent 和 BitTorrent 可以毫无问题地上传或下载。他们是如何做到的?

我家路由器的 UPnP 功能已关闭,当我尝试使用 Wire Shark 弄清楚幕后发生了什么时,我可以看到从 uTorrent (192.168.1.100 : 5351) 到我家路由器 (192.168.1.1 : 5351) 的端口映射和外部 IP 发现的 NAT-PMP 请求。但我看不到任何返回端口 5351 的响应!(这是什么意思?)

仅供参考,我是一名学生,正在“尝试”制作一个像 BitTorrent 这样的 P2P 网络系统,以便在 NAT 后面工作。因此,有关此主题的任何文档都非常有用.....(我知道一些方法,例如打洞、NAT-PMP、PCP、UPnP)

答案1

“完全正常”和“运行良好”之间是有区别的。在 P2P 网络中,一对节点的每一端都应该能够发起连接,并且还能够接受另一端发起的连接。

默认情况下,NAT 使得接受传入连接变得更加困难或不可能。

因此,无需执行任何特殊操作,torrent 客户端仍可在 NAT 后面工作,通过与可以接受传入连接的客户端建立连接。但这会减少可用对等端的数量,因为它会排除类似 NAT 或防火墙的客户端。在最坏的情况下,这破坏参与 torrent 的能力,但平均而言,它只会降低性能。

为了改善这种情况客户端将尝试各种 NAT 穿越技术,NAT-PMP只是其中之一。

相关内容