gpt4 book ai didi

protocols - 为什么 STUN 服务器需要两个不同的公共(public) IP 地址

转载 作者:行者123 更新时间:2023-12-02 18:56:34 25 4
gpt4 key购买 nike

我查看了 openfire 中的 STUN 服务器设置,以及来自那里的声明:

“为了充当 STUN 服务器,同一台计算机上需要两个不同的公共(public) IP 地址,并且每个 IP 需要两个不同的端口号。”

我在google上研究过,一般stun服务器需要两个公共(public)IP,这是什么原因?

最佳答案

对于尝试建立 P2P 连接,STUN 绑定(bind)请求和 STUN 服务的主地址(IP 和端口)的响应才是真正重要的。此请求的响应正文中返回的映射地址被传递(通过 XMPP 或其他服务)到本地客户端尝试与之建立直接通信的远程节点。

STUN 服务监听的第二个 IP 和端口对于确定 NAT 端口映射行为和 NAT 过滤行为非常有用。

通过向服务上的备用 IP:端口发出绑定(bind)请求,客户端可以发现其 NAT 是否对本地端口具有一致的映射语义。如果他为每个测试获得不同的端口映射值,客户端可以断定它位于“对称 NAT”之后 - 这是 P2P 最难遍历的。

通过发送带有“更改请求”属性的绑定(bind)请求,要求服务从其他 IP 或端口进行响应,客户端可以检测其 NAT 是否仅根据 IP 和端口过滤来自远程主机的数据报,或者允许对于来自已向其发送出站数据报的主机上备用端口的数据报。

映射行为和过滤测试仅为后续 P2P 连接提供有限的信息。在确定主机和互联网之间存在对称NAT的情况下,一些实现可以观察到NAT在每个绑定(bind)响应中具有一致的端口值增量值。 (例如 STUN 服务观察到的外部端口增加 1)。因此,客户端可以为远程客户端提供尝试发送的 IP 和猜测的端口号,而不是从第一个绑定(bind)请求映射回的端口号。或者客户端可以使用此行为/过滤测试进行日志记录。或者在对称 NAT 的情况下自动分配中继。

关于protocols - 为什么 STUN 服务器需要两个不同的公共(public) IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7594390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com