![保持数据包顺序](https://linux22.com/image/1405030/%E4%BF%9D%E6%8C%81%E6%95%B0%E6%8D%AE%E5%8C%85%E9%A1%BA%E5%BA%8F.png)
在我看来,在众多职责中,iso/osi模型链路层,它必须确保数据包的顺序得以保留。
你能向我解释一下这样做的意义是什么吗?
为什么还要费心保留数据包顺序,因为这个顺序很可能在转发过程中被搞乱。网络层?
我这里遗漏了什么吗?
有没有关于这个主题我应该阅读的资源?
谢谢。
答案1
分层方法试图最大限度地减少层之间的相互依赖性;一般来说,数据链路层不需要了解它所承载的更高级别的协议数据/功能。
数据链路层的PDU是框架数据帧将包含网络层数据,这些数据可以但不需要,是一个数据包。想想 ISDN 或帧中继,它们都是面向连接的(分别使用数据链路协议 Q.921 和 Q.922)。
我还必须说,我很少看到强调这种(排序),因为数据链路传输往往(逻辑上)是序列化的,所以帧顺序是相当自然的结果。
还有一个具体的例子,说明了这在分组/无连接场景中是如何有用的 - 802.11(http://en.wikipedia.org/wiki/IEEE_802.11) 允许帧分段,有效地将数据包拆分为多个帧进行传输。显然,这些帧需要按正确的顺序重新组装,否则它们携带的数据包将被打乱。