HTTP 代理与 NAT 盒有何不同?

HTTP 代理与 NAT 盒有何不同?

局域网中 IP(10.0.0.1 TCP 端口 8888)的主机连接到服务器,但不知道网络边缘有 NAT 盒。NAT 盒很笨,只会将端口 8888 转换为其他端口 5555,并将 IP 更改为公共 IP 地址(例如 205.209.96.96),并在字典中保存键值对:(5555,10.0.0.1:8888)。

当它收到回复时,它会进行反向转换并将数据包转发回主机。HTTP 代理的操作与此有何不同?我知道代理可以执行其他操作,如过滤、缓存等,但代理的基本操作与 NAT 盒有何不同?

答案1

HTTP 代理不适用于除 HTTP 之外的任何协议。

它不适用于 OpenVPN 连接,不适用于 P2P 流量、多人 3D 游戏等。

NAT 适用于所有类型的 TCP 流量。其中许多还处理 UDP 和 ICMP(以有限的方式,因为 ICMP 没有端口)。

答案2

NAT 工作在较低的协议级别 - 它仅重写 IP 地址和端口;它不会破坏 TCP 连接(因此它对更高级别的协议来说基本是透明的)。

HTTP 代理执行的操作完全不同:首先,TCP 连接终止于此,然后它打开与目标主机的完全不同的连接。其次,它对 HTTP 请求和响应进行自己的处理和转换。

答案3

它们在很多方面都很相似,都是网关。HTTP 代理在 HTTP 请求级别上运行。执行 NAT 的路由器在 TCP/IP 连接级别上运行。许多网络路由器也执行这两种功能。

相关内容