![如果我们忽略标头,段、数据包和帧的大小是否相同?](https://linux22.com/image/1338488/%E5%A6%82%E6%9E%9C%E6%88%91%E4%BB%AC%E5%BF%BD%E7%95%A5%E6%A0%87%E5%A4%B4%EF%BC%8C%E6%AE%B5%E3%80%81%E6%95%B0%E6%8D%AE%E5%8C%85%E5%92%8C%E5%B8%A7%E7%9A%84%E5%A4%A7%E5%B0%8F%E6%98%AF%E5%90%A6%E7%9B%B8%E5%90%8C%EF%BC%9F.png)
我已经寻找了一些关于段,数据包和帧之间的差异的解释,从我读到的内容来看:
- 段是原始数据+传输层报头。
- 数据包是由段 + 网络层报头组成的。
- 帧是数据包+数据链路层头。
所以基本上这意味着如果我们把标题放在一边,段 = 数据包 = 帧。
我记得读到过,数据链路层接收网络层传输的数据,并将其拆分成较小的数据块,以供物理层传输。因此,我假设这些帧是给定数据包的较小部分。
但是我到处搜索,都看到段、数据包和帧之间的唯一区别是附加在不同层中的原始数据的标头,并且名称不同,因为它们对于每一层都是唯一的,即使它们基本上是同一件事。
段、数据包和帧真的是同一件事吗?除了它们各自包含的报头之外?它们的大小都一样吗?
答案1
每层都有其标题,如您所见:
- 段:传输层(TCP/UDP)=传输头+数据(来自上层)
- 数据包:互联网层(IP)=网络头+传输头和数据(来自上层的传输和数据)
- 帧:网络层(以太网)=帧头+网络头、传输头和数据(来自上三层)。
因此,回答您的问题,段、数据包和帧之间的区别基本上在于其各自的层将什么视为“数据”。在段上,数据来自应用层;在数据包上,数据来自传输层(传输头 + 数据);在帧上,数据来自互联网层(传输和互联网头 + 来自应用层的数据)。
答案2
除了各自包含的报头之外,段、数据包和帧真的是同一件事吗?
http://www.inetdaemon.com/tutorials/basic_concepts/communication/frames_packets_n_pdus.shtml
它们都是一样大小的吗?
如果您将各层视为单个实体,则答案是否定的;它们都有不同的最大和最小大小。将它们相互关联起来考虑;下层决定了上层可以传递的最大数据大小。