【问题标题】:Definition of Network Units: Fragment, Segment, Packet, Frame, Datagram网络单元的定义:分片、分段、包、帧、数据报
【发布时间】:2012-07-23 02:21:13
【问题描述】:

网络术语中使用哪些单位?我们在哪里使用它们?

我知道以下内容 - 但我不确定它们的含义:

  • 片段
  • 数据包
  • 框架
  • 数据报

可以将它们分配给特定的 OSI 层吗?是不是更复杂?

【问题讨论】:

    标签: networking ip definition osi


    【解决方案1】:

    取自 TCP/IP Illustrated: Vol 1 by Richard Stevens et al 中的第 1.2 节。, 考虑 4 层 TCP/IP 堆栈:

            +-------------+-------------------------+
            | Application |  Telnet, FTP, etc       |
            +-------------+-------------------------+
            | Transport   |  TCP, UDP               |
            +-------------+-------------------------+
            | Network     |  IP, ICMP               |
            +-------------+-------------------------+
            | Link        | drivers, interface card | 
            +-------------+-------------------------+
    

    Segment:如果传输协议是TCP,则TCP发送到的数据单位 网络层称为Segment

    数据报:这用于 2 层。如果网络协议是IP,单位 数据称为数据报。在传输层,如果协议是UDP,我们使用数据报 也有。因此,我们将它们区分为UDP 数据报IP 数据报

    Frame:物理层表示。

    数据包:这是一个更通用的术语,用于传输层或网络层。 TCP PacketUDP PacketIP Packet等我没见过代表 物理层数据单元。

    片段:我的猜测是,当一个数据单元被一个 协议以适应 MTU 大小,生成的数据单元称为 Fragments。 但我猜。

    【讨论】:

    • 虽然不常见,但您偶尔会听到“以太网数据包”,例如on the Wireshark wiki。 “框架”在物理层当然更标准。
    • “协议数据单元”是一个通用的术语,虽然是 OSI 式的,用于所有这些,跨越层次结构。
    • 虽然我应该读过这本书。但你确定那是从史蒂文斯的书中摘录的吗? '因为从技术角度来看,这看起来不太正确......例如我认为在 TCP/IP 参考模型/架构中,它是网络层而不是网络层。网络层是 ISO/OSI 术语。而且我认为 TCP/IP 参考模型中有一个“链接层”,我在您的回答中没有看到。在 ISO OSI ref 模型中,第 1 层(物理)我听说过一个“数据包”,称为符号,第 2 层是帧。
    • @barlop:将上图中的“Network”替换为“Internet”,将“Physical”替换为“Network Access”,这将匹配我从O'Reilly学习的TCP/IP模型。
    • @Wildcard UDP(UDP中的D)的定义中使用了术语数据报,以及用于IP的RFC(使用术语IP数据报),该术语在RFC 1594中定义见定义。它说它应该是自包含的 n 有足够的信息可以从源路由到目标。 UDP 类似于数据报定义,因为它是无连接的,因此它不依赖于先前的消息,因此在这个意义上是自包含的。数据包类似于数据报定义,因为它具有源 n 目标网络地址,因此“自包含” " 和 "足够的信息从源路由到目标")
    【解决方案2】:

    这些术语用于指代我们所指的 OSI 层,数据保持不变,但标头和尾标被添加或删除。

    在物理层(即物理层)中,实际数据以“位”为单位,即 0 和 1。

    当它到达数据链路层或第 2 层时,它变成“帧”,并添加了源和目标 MAC 地址。

    当它到达第三层或网络层时,它变成一个“数据包”,附有源和目标 IP 地址。

    最后它在第 4 层或 TCP/IP 层成为“段”。基本上“段”一词用于 TCP 连接,“数据报”用于 UDP。

    那么其他层呢,例如:会话、表示和应用程序?在这些层中,数据被称为“PDU”或“协议数据单元”。

    因此,当有人说网络设备正在接收“帧”时,您就知道该设备是交换机。

    路由器收到一个数据包并处理它。

    【讨论】:

    • 看起来不错,有资源吗?有趣的是,你有所有有趣的晦涩的 OSI 术语,如帧、PDU、段,然后对于物理层,你说的是比特,就像一个正常的术语一样,OSI 是否使用比特来指代物理层中的事物,就像它们使用的方式一样帧、段等对于其他层?你的来源甚至是 OSI 吗? OSI 是创造术语框架等的人。阿法克。
    • @barlop 他使用的术语与amazon.com/dp/9332518742一致。
    • @devouredelysium 你说他使用的术语与 Andrew S. Tanenbaum 的计算机网络 5th 相同。请记住,一本关于网络的一般书籍通常不会使用正确/官方的术语,通常是出于草率。无法对他的内容发表太多评论,但dannyreviews.com/h/Computer_Networks.html 显示了一个引用,查看引用我注意到他可能没有清楚地区分参考模型和架构。
    • @barlop,看看维基文章。这与郭和我上面提到的书完全一致:en.wikipedia.org/wiki/Protocol_data_unit#OSI_model。物理层单位是位。
    • @devouredelysium 维基百科页面上的内容是有问题的。请注意,该维基百科页面谈到 4 层并将其称为 OSI 模型,它显然将 TCP/IP 与 OSI 混为一谈。并且在区分参考和架构方面可能不清楚。那里的术语可能更实用,不清楚它是使用纯粹的 OSI 术语还是纯粹的 TCPIP 术语,因为它只显示了 4 层但称之为 OSI 模型(OSI 架构,当然还有 OSI 参考模型是 7 层)。
    【解决方案3】:

    上面的答案是完整的。不过,如果我没记错的话,我认为数据包这个术语来自数据包交换..

    有两种类型:

    电路交换是一种实现电信网络的方法,其中两个网络节点在节点可以通信之前通过网络建立专用通信通道(电路)。该电路保证通道的全带宽,并在通信会话期间保持连接。电路的功能就像节点与电路物理连接一样。(Wiki)

    分组交换是一种数字网络通信方法,它将所有传输的数据——无论内容、类型或结构——分组到适当大小的块中,称为数据包。(Wiki)

    我会自己定义它,但只是为了确定

    所以这里是数据包术语。关于片段我同意与 Josua Schmid 的回答。

    【讨论】:

      【解决方案4】:

      Frame 作为物理层表示对我来说听起来不是 100% 准确。它主要位于物理之上的数据链路层。

      对于更具操作性的定义,我会说帧是一种协议数据单元,它具有确定其边界的方法。例子:

      • HDLC 帧的开头和结尾都有标志,还有一些填充
        机制
      • 以太网帧使用前导码和 SFD
      • GFP 使用 HEC 帧描述,如 ATM

      一个cell,就像在ATM中一样,只是为了多介绍一个术语,是一个固定长度的帧。

      数据包是一个协议数据单元,它依赖于较低层单元来确定其边界。如果需要,它可能完全适合一帧或分成片段。在后一种情况下,必须设计碎片和重组机制。 Datagram大多是packet的同义词。

      应用程序数据流可以分成。段在数据报上承载,然后段被重新组合到原始应用程序流中。这通常由 TCP 层完成。因此,在 TCP 中,我们在数据链路帧上通过 IP 数据报在 TCP 段上使用应用程序流。 UDP中没有分段,所以UDP数据报是一对一映射到IP数据报上的。

      【讨论】:

      • 这可能是一个有用的答案,但请记住,阅读本文的人试图清除基本术语的混淆,并且引入附加术语 HDLC、SFD、GFD、HEC 和 ATM,对于回答这个问题确实没有必要。引入“细胞”很好,因为您也包含了它的定义。
      • @Wildcard 他介绍了重新框架,因为他对 25 票赞成的答案有点困惑,所以他说“框架作为物理层表示对我来说听起来不是 100% 准确”并且他谈到了一个更具操作性的定义,而且他采用技术性,因为他无法简化它。但是,实际上,它要简单得多..我们可以用 25 票完全抛弃答案中给出的框架的错误定义。,框架(一个 OSI 术语)不是物理层的东西,它是数据链路层的东西。而且是数据(就像物理之上的一切)。不需要不同的实际和操作定义!
      • 我们可以说传输层中发送的DataHeader组成b>(SegmentDatagram)和一个Message(数据层)?
      【解决方案5】:

      我同意上面的答案,但重要的是要强调这是假设 TCP/IP 堆栈。如果我们使用我认为更普遍的 OSI 模型,我们会有以下情况:

      传输层:如果是 TCP 则分段,如果是 UDP 则为数据报 网络层:Datagram, Fragment 如果拆分可以使用(它仍然是一个数据报) 数据链路层:MAC 子层中的帧、LLC 子层中的帧或位(取决于您使用的级别,它们不可互换) 物理层:位

      正如前面的答案中提到的,数据包更通用,它可以用于传输层、网络层或数据链路层,但不能用于物理层。在这个级别,它还没有被“打包”。所以我想说这是 TCP/IP 堆栈模型和 OSI 模型之间最大的区别。 OSI 模型将 TCP/IP 堆栈中的物理层分解为两层:数据链路层和物理层。

      希望这会有所帮助。

      【讨论】:

      • 支持与 OSI 相关的回答。但是,我不同意您的“单一最大区别”的说法:TCP/IP Stack 模型将数据链路和物理结合成“网络访问”,这是真的,但它结合了 OSI 的顶层应用程序,演示,会话进入“应用层”。
      【解决方案6】:

      一个数据报是.... 一个自包含、独立的数据实体,携带足够的信息,可以从源计算机路由到目标计算机,而不依赖于该源计算机和目标计算机与传输网络之间的早期交换。 (……在 UDP 中使用)

      一个段是.... 一个协议数据单元,它包含一个 TCP 头和一个来自(上)应用层的应用数据块(数据包)

      【讨论】:

      • 你能提供其他问题的答案吗?
      【解决方案7】:

      数据包:网络中源和目标之间通信的基本单位是数据包。数据包是 OSI 模型中网络层内的数据单元。数据包位于网络层

      片段:数据包通常可以大于最大大小,因此每个数据包也被分成更小的数据片段,称为片段。 网络层负责分片。

      Segment:Segment 是数据包的碎片,每个数据包中都有一个 TCP 标头。段提高了网络性能的效率并提高了安全性。段位于传输层中。

      :类似于数据包,帧是网络中消息的一小部分。帧是 OSI 模型的数据链路层中使用的数据单位。

      数据报:数据报表示网络中传输的数据单元。在网络中传输的数据被分成更小的部分,称为数据报。 运输

      另外,还有一些类位,这是在一个Physical layer

      【讨论】:

        猜你喜欢
        • 2017-04-19
        • 2014-10-27
        • 2016-02-12
        • 1970-01-01
        • 2010-10-19
        • 1970-01-01
        • 2020-06-12
        • 1970-01-01
        相关资源
        最近更新 更多