当外部端口不断变化时,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
我正在阅读 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