我采取了大约5层模型。众所周知,TCP是一个可靠的服务,而IP是最好的交付,因此是不可靠的(ref RFC 792 - TCP)。此外,数据链路层是“可靠的”,因为它的ARQ机制保证了分组的顺序传送(参考)。
我无法理解在低不可靠服务(IP)上发送可靠服务(TCP)数据包的意义,而IP则在提供可靠性的层(链路层)上发送数据包。为什么我们不能取消在链路层的可靠性,因为IP是不可靠的?
发布于 2014-02-28 05:01:51
问题是,您操作的理念是,每个层本身都是一个独立的、自主的实体。要明白IP并不是现存的唯一的数据包传送协议,它恰好是最常见的协议。还请理解,这些“层”只是抽象工具--去掉的是,每个“层”对于某些功能依赖于它下面的层,而堆栈下面的层可以在适当的时候将某些职责(即可靠的数据传输)交给它们上面的层,以保持低开销和高性能。每个较低层封装从上面的层发送到电线的数据,下层在返回堆栈到应用程序的过程中解除对数据的封装。
您所链接的关于数据链路层的论文甚至指出,虽然数据链路层的传递机制是可靠的,但它们仍然是最有效的,并且有一个假设是,如果有必要,更高层协议(即TCP)将处理重传。
发布于 2014-02-28 04:55:33
如果你看看课堂笔记,你会看到#4写着,“也许吧。”一些数据链接技术是可靠的,但大多数不是。原因主要是历史原因,因为许多技术都是为语音而创建的,然后又被重新用于数据。我们将保证交付留给更高层的原因是,许多应用程序不需要它,而将其放在较低的级别会增加开销,而在没有用处的地方。
https://networkengineering.stackexchange.com/questions/6562
复制相似问题