当外部端口不断变化时,natted 网络中对等点之间的 P2P

P2P between peers in natted networks when the external port changes constantly

我正在阅读 WebRTC,这让我开始研究 STUN(NAT 的会话遍历实用程序),我看到的所有示例似乎都假设 public ip 和端口至少是静态的一次几秒或几分钟。

但是,我的家庭互联网连接使用共享 public ip 并放置以下 php 代码

<?php
echo $_SERVER['REMOTE_ADDR'] . ":" . $_SERVER['REMOTE_PORT'];
?>

在具有 public IP 地址的服务器上给出这样的结果

63.142.201.34:34850
63.142.201.34:34924
etc.

页面反复刷新时。我的手机 phone 在使用我的数据计划时也会发生同样的事情(只是使用不同的 public ip)。

在这种情况下,点对点连接如何实现?谁能给我指出一个教程或一些我可以用来查找的关键字?

达斯汀·苏达克

您看到不同外部端口的原因是您使用了不同的本地端口,一个用于每个 HTTP 请求。这在 TCP 中很常见。

UDP 作为一种无连接协议,可以更轻松地重用本地端口。 Tailscale 项目最近写了一篇关于打孔的精彩博客 post here