代理和路由之间的区别

代理和路由之间的区别

我很清楚代理和路由器的用途。但我不知道如何准确地区分它们。

以下是我在其中发现的因素的列表。

代理服务器

  • 可以自由修改应用层数据
  • 通常从源接收 TCP 会话
  • 通常形成 TCP 会话以定位目标
  • 可以读取应用层数据来定义目标
  • 使用 IP 协议时是 IP 数据包的目标

我们最好不要考虑网络设备。考虑路由 SOAP 请求的应用服务器网络。路由器

  • 符合明确定义的路由协议
  • 通常从源接收 TCP 会话
  • 通常形成 TCP 会话以定位目标
  • 可以读取应用层数据来定义目标
  • 使用 IP 协议时是 IP 数据包的目标

如果路由规则为各方所知,那么这是否称为路由?如果路由规则不为各方所知,那么这是否称为代理?我相信有一个明确的因素可以区分这两者。

答案1

代理服务器和路由器在协议栈中处于不同的层级。代理服务器在应用层(例如 HTTP 代理服务器)运行。路由器在网络层(例如 IP 协议)运行。

路由器的主要作用是在网络之间移动数据包。

代理的主要工作是执行一些有用的服务,例如缓存 HTTP 内容、应用应用程序级过滤和授权功能等。

路由器通常不关心建立 TCP 会话。即使执行网络地址转换 (NAT) 的路由器也只是跟踪内部客户端和外部服务器之间的会话并根据需要修改 IP 地址。

在正常使用中,路由器不是 TCP 会话的端点。

在正常使用中,路由器不会读取应用层协议的内容。

答案2

在 OSI 模型中,路由通常仅限于第 3 层,即网络层。路由器主要在网络之间传输 IP 数据包(除非使用 QoS,否则并不太关心 TCP 流)。路由器会导致数据包在网络之间传输时 IP 报头发生变化,但通常不会修改数据包的有效负载。

代理通常在第 4 层(传输层)及以上层(第 7 层,即应用层,最为常见)上工作。代理可能在大于单个数据包的数据单元上工作,并且更有可能执行诸如添加或修改数据有效负载之类的操作(HTTP 代理添加Via:标头就是一个很好的例子)。

与网络中的大多数事物一样,各层之间的界限有时可能很模糊。路由器可以执行代理的许多功能,例如修改流量、过滤安全性等,并且代理可用于使两个不同的网络相互通信。出于性能和成本原因,路由器通常最明智的做法是尽可能少地执行操作,因为它通常需要可靠地处理整个网络的所有互联网流量,而不仅仅是特定的应用程序流量。

答案3

我想我已经找到决定性因素了。

代理服务器强制目标回复自身。然后,代理服务器可以同步或异步地将响应转发到源。强制通过自身回复定义了代理服务器。

代理也可以是集群。在这种情况下,回复将强制通过单个代理集群,而不是单个代理服务器。

相关内容