如果您阻止所有传入连接,您如何仍然使用互联网?

Kun*_*pra 22 internet http

如果您的 ISP 或防火墙阻止所有传入连接,Web 服务器如何仍将数据发送到您的浏览器?您发送请求(传出),服务器发送数据(传入)。如果您阻止所有传入,Web 服务器如何响应?

使用 UDP 的视频流和多人游戏怎么样?UDP 是无连接的,因此不需要建立连接,那么防火墙或 ISP 将如何处理?

gow*_*awr 43

“传入阻止”意味着传入的新连接被阻止,但允许已建立的流量。因此,如果允许出站新连接,则该对话的传入一半是可以的。

防火墙通过跟踪连接状态来管理这一点(这种防火墙通常称为“状态防火墙”)。它看到传出的 TCP SYN 并允许它。它看到传入的 SYN/ACK,并可以验证它是否与它看到的出站 SYN 匹配,并让它通过,等等。如果它允许三向握手(例如,根据防火墙规则允许),它将允许该对话。当它看到会话结束(FIN 或 RST)时,它会将该连接从允许的数据包列表中删除。

UDP 的处理方式类似,尽管它涉及防火墙记住足够多的内容以假装 UDP 具有连接或会话(而 UDP 没有)。

  • 对于 UDP,由于没有实际连接,防火墙通常会跟踪传出 UDP 数据包的目标 IP 和端口,如果有与源 IP 和端口相同的传入数据包,它会认为这是回复并放行。在。 (2认同)

小智 17

@gowenfawr 有高级别的图片。但是,我想我会添加一些关于如何执行连接跟踪的“匹配”的细节,因为对于外行来说,这听起来像是魔术。

每个 TCP 连接的每一端都有一个端口号。大多数技术人员都知道,HTTP 服务器在端口 80 上运行。当您的浏览器连接到 Web 服务器时,它会要求操作系统生成一个“本地”端口号,该端口号将是随机的,例如 29672,不被任何其他人使用来自该计算机的 TCP 连接(操作系统可以这样做,因为它知道所有活动的 TCP 连接)。然后,一个初始 TCP 设置数据包将从您机器的 ip (IP_YOURS) 和端口号 29672 发送到 Web 服务器的 ip (IP_WEBSERVER) 和端口号 80。此时,状态防火墙会说“啊哈,来自 IP_WEBSERVER 端口的未来数据包进入 IP_YOURS 端口 29672 的 80 不是新连接,它们是对现有连接的响应,并且是被允许的”。状态防火墙维护一张表,

  • 这基本上是正确的,但是,作为一些次要的点,端口号停止在 65535(它们是 16 位无符号数)并且,除了超时之外,设置了 FIN 或 RST 标志的数据包也可以表示 TCP连接现已关闭。 (3认同)

归档时间:

查看次数:

9094 次

最近记录:

10 年,6 月 前