Ash*_*win 10 networking router nat proxy
我的机器连接在本地局域网中。连接到互联网流量通过代理服务器。我对代理服务器的理解是它代表原始请求发送者发送请求。所以当服务器回复时,它认为它是客户端将回复发送给代理。然后代理将回复转发到我的机器。
以网络地址转换为例。您的请求通过 nat 路由器。然后 nat 路由器为您提供一个公共 IP 地址并将此映射存储在其表中。回复(来自服务器)被发送到这个分配的公共地址。nat 路由器从表中解析为您的本地 IP 地址并将回复转发到您的机器。
我的问题为什么当代理本身能够调解流量并为您提供对互联网的访问时需要 nat?
Mad*_*ter 18
在我看来,您已经很好地掌握了这里的基础知识,简短的回答是,如果您使用具有公共地址的代理,则不需要 NAT - 对于由代理调解的协议.
然而,天地间的规矩比你的哲学所梦想的还要多;并非所有这些都是可代理的,即使所有代理都不存在,因此 NAT 是这些的一个方便的后备。
编辑:代理是一种在应用程序级别上工作的计算设备。HTTP 代理接收远程站点的 HTTP 请求,正如您所指出的,它会转到该站点本身并发出请求,然后将答案传递回发出请求的客户端。但它必须在详细级别上了解 HTTP 才能做到这一点。
同样,您可以编写 FTP 代理,但它必须了解 MKD、DELE、LIST 等 ftp 协议命令的详细信息,才能正确代理客户端的请求。任何想要透明工作的代理通常都必须密切了解协议的内部结构才能代理该协议。
SOCKS 在某种程度上是此规则的一个例外,但那是因为 SOCKS 协议为代理设置了一个更通用的接口,要求每个客户端都经过 SOCKS 化,因此能够发出 SOCKS 代理的正确请求,以便设置每个需要的代理类型,这并不完全透明。
MadHatter 写了一篇出色的外行解释代理和 NAT 之间的差异。
有关更多技术细节,我建议您阅读 OSI 模型和 TCP/IP 模型。Nat 在 OSI 模型的后 3 层(在这种情况下是网络层,IP)运行,而代理通常在第 7 层(应用程序层、HTTP 或任何您代理的层)运行。
NAT 和代理也试图解决稍微不同的问题。NAT 将一些私有 IP 隐藏在较少数量的公共 IP 后面以缓解 IP 地址的短缺,而代理则出于安全、审计或性能原因创建网络“阻塞点”
归档时间: |
|
查看次数: |
11078 次 |
最近记录: |