端到端财产

时间:2014-12-19 06:02:36

标签: networking system distributed-computing

我理解经典MIT论文中的端到端原则,该原理指出在2个远程节点之间执行函数不依赖于中间节点的状态。

但是什么是端到端加密,端到端保证,端到端协议等......?我无法找到端到端的精确定义。这个词似乎被过度使用了。

换句话说,当一个系统属性X描述为端到端时,它意味着什么?端到端的反义词是什么?

1 个答案:

答案 0 :(得分:1)

我不认为端到端被过度使用。它只是说财产从一端到另一端。一个"结束"可以是计算堆栈中的节点或层。

考虑三个节点:A,B和C.节点A想要与C交谈.B位于A和C之间,并在它们之间转发消息。例如,B是负载平衡器或网关。

如果B无法读取和篡改从A发送到C的消息,则加密是端到端的。具体示例如下:A是您的笔记本电脑,C是您家中或网络中的远程计算机。 B是VPN网关。这里的加密是端到端,因为只有A和B之间的链接实际上是加密的。坐在B和C之间的攻击者将能够阅读明文。在实践中这可能很好,但它不是端到端的。

另一个例子。假设我们不关心加密,而是关注可靠的消息传输。您知道网络可能会破坏消息。因此,TCP和其他协议具有校验和字段,每当接收到消息时都会检查该字段。但这些校验和的保证不一定是端到端的。

如果A依赖于TCP的校验和向C发送消息 m ,则位于中间的节点B可能以不可检测的方式破坏消息。抽象大部分细节,节点B基本上(1)接收 m ,(2)检查 m 的校验和,(3)找到到C的路由并创建一个带有 m 的有效负载的新消息,(4)计算 m 的新校验和,以及(5)发送 m (带有新的校验和)到C.现在,如果节点B在(2)之后但在步骤(4)之前破坏了消息,则到达C的结果消息已损坏但是通过查看 m 无法检测到校验和!因此,这种校验和不是端到端的。节点B甚至不必是恶意的。这种损坏可能是由硬件错误引起的,或者更多可能是由节点B中的错误引起的。这在Amazon S3服务中已经发生了几次,例如:this casethis case以及this case

显然,解决方案是使用端到端的应用程序级校验和。这里,在计算下层校验和之前,将 m 的有效载荷的校验和附加到有效载荷上。