【问题标题】:How does server find browser without public IP in a lan via Websocket?服务器如何通过Websocket在局域网中找到没有公共IP的浏览器?
【发布时间】:2017-10-03 22:34:44
【问题描述】:

浏览器可以向网络服务器发送请求并得到响应,这很容易理解,因为每个域都解析到一个或多个公网IP,浏览器可以通过公网IP找到网络服务器。
有些客户端有公网IP,比如PPPOE,所以,当我在浏览器和服务器之间建立Websocket连接时,服务器可以向拥有公网IP设备的设备上的浏览器发送数据,但并不是每个客户端都有公网IP。
我的问题是服务器如何通过Websocket在局域网中找到没有公共IP的浏览器?

【问题讨论】:

    标签: tcp websocket


    【解决方案1】:

    部分魔法是Network Address Translation,由服务器和网络浏览器计算机之间的路由器执行。

    【讨论】:

      【解决方案2】:

      简单的答案是server 永远不必找到client,因为一旦浏览器向服务器发送请求并建立 TCP 连接,该连接就可以保持必要的时间。

      TCP 协议具有keepalive 概念,其中对等方每隔一段时间就会向客户端发送一个探测数据包,而没有预期的数据和 ACK 数据包作为响应。这样,尽管网络不活动,连接仍然有效,并且可以在对等方没有回复的情况下终止。

      WebSocket 协议是一种基于 TCP 的协议,它也定义了一个类似的概念 Ping/Pong,其中任何一个对等方都可以在建立连接后按需发送 Ping 探测。对等方必须尽快用 Pong 帧响应 Ping 帧。这会检查死节点,在这种情况下连接会死。

      【讨论】:

      • 也谢谢你的回答?,我主要是对 v1bri 的 anwser 中的 NAT 部分感到困惑。
      猜你喜欢
      • 2020-01-22
      • 1970-01-01
      • 2017-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多