0

首先我想定义我的问题: 1,我说的是做 IM 的计算机程序,而不是移动应用程序。该程序应该在每个家庭或办公室环境中运行。

2,现在所有(或大多数)家用电脑都在路由器后面,受 ISP 的安全策略保护。这不像 20 年前,当一台计算机连接到一个适配器时,它会获得一个通用 IP,就像 Microsoft.com 和 whitehouse.gov 一样好。10年前,你可以建议用户进行端口转发,或者使用UPnP偷偷执行端口转发任务。但是现在以安全的名义,ISP 正在从 ISP 管理的路由器中取出端口转发(据我所知,xfinity 正在这样做)。

我知道如何在局域网设置或通用IP设置中进行IM,您获取朋友的IP,使用TCP或UDP建立连接,然后传输信息。现在当所有电脑都在路由器后面时,再次做IM的可行方式/流行方式/正确方式是什么?通过建立 UserA-Server 和 UserB-Server 的连接,使用中央服务器传输信息?以我的拙见,我知道它会起作用,但不是很“即时”。

请指教,谢谢。

4

1 回答 1

1
  1. Upnp 和 NAT-PMP 仍然可以工作,它会像打孔一样映射一个外部端口。问题是我们的外部IP可能不确定。所以如果你想发送 IM,有两种选择,DHT 或中央控制器。

  2. 我建议你使用DHT和一个ICE结构的中心服务器,如果DHT可以工作就可以了,或者我们可以使用中心服务器来做UDP/TCP的遍历。在某些情况下,如对称 NAT,服务器需要做中继,但在其他情况下,它只是启动连接,然后是没有服务器的 p2p 连接。

于 2020-06-10T03:01:14.377 回答