LeeReamond
V2EX  ›  问与答

P2P 下载工具是如何解决 NAT 问题的?

  •  
  •   LeeReamond · Apr 1, 2022 · 2643 views
    This topic created in 1686 days ago, the information mentioned may be changed or developed.

    如题,假设 IPV4 条件下 A 和 B 同时使用 utorrent 下载同一种子(两人均无公网 IP ),由 A 向 B 发送数据。那么 A 如何能确保发送出的数据会抵达 B ?他们之间(不包括协调过程,仅就传输过程而言)是否需要经由中转服务器中转?如果是的话现在一般单用户 P2P 下载很容易跑到 10MBPS ,这么多用户中转服务器岂不爆炸。。

    10 replies  •  2022-04-01 14:55:15 +08:00
    des
    des
    Apr 1, 2022 via iPhone
    1
    nat 打洞,所以 bt 协议基本都是用 UDP
    riggzh
    riggzh
    Apr 1, 2022
    2
    upnp 啊。
    antipro
    antipro
    Apr 1, 2022 via Android
    3
    不是服务器中转的,是直连的。路由器有自动 Nat 功能。
    riggzh
    riggzh
    Apr 1, 2022
    4
    哦,刚才没仔细看问题,基本都是打洞。
    mons
    mons
    Apr 1, 2022
    5
    UPnP / NAT-PMP 打洞。例

    https://github.com/qbittorrent/qBittorrent/wiki/Explanation-of-Options-in-qBittorrent#listening-port
    https://docs.netgate.com/pfsense/en/latest/services/upnp.html

    现在的路由器一般都支持,但可能出于安全原因而默认禁用。
    V1Eerie
    V1Eerie
    Apr 1, 2022 via Android
    6
    无法建立连接就无法传输数据。有传输速度的都是点对点连接成功的。
    对于 p 主提出的假设情况来说如果都处于网络严格的状态应该是无法建立连接的。
    ysc3839
    ysc3839
    Apr 1, 2022 via Android
    7
    A 确保不了数据会到达 B 。不会经服务器中转。
    djv
    djv
    Apr 1, 2022
    8
    我记得是需要至少一方有公网吧。
    swulling
    swulling
    Apr 1, 2022
    9
    有一篇文章很好,介绍 Tailscale 怎么打洞的

    http://arthurchiao.art/blog/how-nat-traversal-works-zh/
    swulling
    swulling
    Apr 1, 2022
    10
    Tailscale 的打洞支持的比较复杂,实测多数的 NAT 都能穿透。

    而一般的 P2P 工具的 NAT 穿透就比较简单,更多的依赖一些端口映射的协议,如 uPnP
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4598 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 06:30 · PVG 14:30 · LAX 22:30 · JFK 01:30
    ♥ Do have faith in what you're doing.