【问题标题】:how to OSI model worksOSI 模型如何工作
【发布时间】:2019-02-10 03:50:27
【问题描述】:

美好的一天!

我正在研究 OSI 模型。

我有一些困惑的问题。

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

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

我的问题是:

  • 您在哪里重新组装数据包?
  • 如果您在网络层工作,为什么 UDP 会出问题?
  • 网络层和传输层的作用

【问题讨论】:

  • 阅读 udpCommunication Layers 的 RFC。学习如何使用谷歌
  • @robert 我想我对数据报和数据包感到困惑。网络层将数据报分成若干个数据包,将数据包按顺序组装起来,发送给传输层。并且高层检查发送的数据报是否可靠。对吗?
  • TCP/IP 不是 OSI 模型的示例。它有自己的先验模型。

标签: networking ethernet osi


【解决方案1】:

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

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2021-11-29
    • 2022-06-14
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2016-11-30
    相关资源
    最近更新 更多