以下是维基百科的end-to-end principle
部分
端到端连接是互联网的一项属性,允许所有人 网络的节点将数据包发送到所有其他节点 网络,无需进一步的中间网络元素 解释它们。
但是你应该注意到路由器(中间设备)总是在终端节点之间。因此,正如上面的end-to-end principle
,不仅是NAT
,而且通常也是具有中断end-to-end principle
的网络。
这是真的吗?如果没有,请解释为什么,通常网络路由器不会破坏端到端的原则。
谢谢:)
答案 0 :(得分:5)
路由器有一项特殊的工作,它必须促进端到端原则。
路由器的工作基本上是解释目的地IP地址并确定要发送给它的下一个路由器(或终端节点)。路由器通常做两件事:
通常,进一步解释数据包。
现在,NAT会端到端地断开,因为进一步会解释并转换数据包。例如,NAT可能会更改数据包的源地址。在这种情况下,您已经破坏了端到端,因为另一个互联网主机将无法识别发送数据包的特定主机。他们只能识别NAT的源地址。
修改:RFC 1812在第2.2.1节中明确说明了分层职责:
o Transport Layer
The Transport Layer provides end-to-end communication services.
...
TCP is a reliable connection-oriented transport service that
provides end-to-end reliability, resequencing, and flow control.
...
o Internet Layer
All Internet transport protocols use the Internet Protocol (IP) to
carry data from source host to destination host. IP is a
connectionless or datagram internetwork service, providing no
end-to-end delivery guarantees.
在2.2.3节中,它继续说明:
Routers provide datagram transport only, and they seek to minimize
the state information necessary to sustain this service in the
interest of routing flexibility and robustness.
“普通”路由器根本不涉及“端到端”原则。它的工作就是简单地在Internet层传递数据包,根据定义,它“不提供端到端的传输保证”。那是传输层的工作。 NAT通过在传输层而不是简单的Internet层上运行来“打破端到端”,并保持对每个连接的过多状态。
希望这是有道理的。我知道这可能令人困惑。
答案 1 :(得分:1)
我浏览了维基百科中的文章,发现有一个条件是它只适用于特定于应用程序的作业而不适用于其他支持性任务,如地址转换或重定向,NAT等。这是由中间路由器执行的...这是该文章的一部分
端到端原则规定,特定于应用程序的功能应该驻留在网络的终端主机中而不是中间节点中 - 只要它们可以完全正确地实现并且#34;最后主持人。
因此,原则得以保留,因为中间路由器不处理特定于应用程序的函数,它是执行这些功能的终端路由器(节点)。