首页 > 解决方案 > OSI 模型如何工作

问题描述

再会!

我正在研究 OSI 模型。

我有一些困惑的问题。

在网络层,数据可以被分成多个数据包并重新组合。

重组意味着“按顺序”组装,但在传输层协议 UDP 中,数据包可能是无序的。

我的问题是:

标签: networkingethernetosi

解决方案


您正在混合不同的功能和层。

在网络层,超大的数据包可以被分段,由目的地的网络层重新组装。此功能解决了在跳到跳传输期间 MTU 可能变得小于实际数据包的问题(在 IPv4 - IPv6 中删除了此功能以支持路径 MTU 发现)。

传输层,有(面向连接的)协议,如 TCP,将连续数据流分成由源和目标跟踪的段。当所有必要的段都到达时,数据流由目的地重建。使用跟踪重新发送丢失的段。

UDP 数据报可能需要沿途分段,需要由目的地重新组装。但是,如果其中一个片段丢失,则不会重新组装,也不会将数据报传递给应用程序——它就丢失了。

UDP 是一种传输数据报的“即发即弃”协议。不同的数据报可能采用不同的网络路由,可能会导致它们乱序到达。

当 TCP 段丢失时,它无法得到目的地的确认。这使得源重新发送段。携带分段的数据包是否需要分段并不重要——只有当所有分段都到达时,重新组装的分段才会传递给 TCP。然后 TCP 确认该段并将数据传递给应用程序。

TCP 还重建段的顺序,因此数据流与发送时完全相同。为此,段被编号,当它们无序到达时,TCP(传输)层会使用它们。


推荐阅读