如果我没有打开任何端口,信息如何到达我的计算机?

网络工程 ip tcp 传输协议
2022-02-23 20:55:24

这是一个非常新的问题,可能表明对网络的误解;所以请耐心等待。

我正在使用由其他人管理的网络;这个网络似乎所有端口都被路由器阻止了。我可以理解我能够向另一台在 Internet 上具有开放端口的计算机(例如 )发送请求(例如 HTTP),example.com:80不明白响应如何到达我的计算机。

服务器无法通过端口 80 或 443 回复我,因为它们没有打开。所以我假设路由器以某种方式侦听数据,然后将其转发到我的计算机。

因此,我有以下问题:

  • 这种机制如何运作?
  • 我只能在我请求后接收数据吗?它以什么方式与我建立的联系联系在一起?
  • 在任一服务器关闭之前,是否不可能保持此“路径”打开?这意味着服务器/客户端/谁可以不断地向我发送数据?
  • 这种机制是否用于在线游戏?还是它是 TCP 特定的功能?

谢谢你。

3个回答

这种机制如何运作?

防火墙检查数据包并使用其标头(有时是有效负载)中的信息来跟踪连接。

此信息可用于仅允许与现有连接相关的传入数据包。它还可以用于网络地址转换,以将大量客户端隐藏在单个公共 IP 后面。

我只能在我请求后接收数据吗?它以什么方式与我建立的联系联系在一起?

首先是 IP 地址和端口号。有时还可以检查/翻译应用程序有效负载(例如,这是使主动模式 FTP 工作所必需的)。

在任一服务器关闭之前,是否不可能保持此“路径”打开?这意味着服务器/客户端/谁可以不断地向我发送数据?

是的,您通常可以根据需要保持路径打开。

这种机制是否用于在线游戏?还是它是 TCP 特定的功能?

该机制同样适用于 TCP 和 UDP。

不过,棘手的是建立一个连接,其中两个设备都位于这样的防火墙/nat 后面。有一些技巧可以使用,但它们并不总是有效,具体取决于翻译机制的确切行为。

状态防火墙保存状态信息。因此,端口实际上是开放的,您的响应可以到达您的手中。

主要是在服务器、PC、VoIP 电话等设备上运行的网络服务与端口相关联,例如:80 用于 http,443 用于 https,21 用于 ftp,22 用于 ssh。这些是众所周知的端口,低于 1024。问题是,出于安全原因,在边缘设备上,放置了一些访问列表以保护内部用户,在此之上,阻止了发往端口(主要是众所周知的端口)的流量,这可能会损害某些系统。然后,当您请求某个网页并向 80 端口上的某个服务器发出请求时,来自您机器的请求是在 1024 上的端口上生成的,它不是什么都不听,而是您的应用程序,在这种情况下,您的 iexplorer,或 mozilla 或 chrome,有可能打开并发送接收流量,一旦你得到你想要的,关闭它。