如果忽略标题,段,数据包和帧的大小是否相同?


12

我一直在寻找有关网段,数据包和帧之间差异的解释,以及从我的阅读中得到的解释:

  • 段是原始数据+传输层标头。
  • 数据包是网段+网络层标头。
  • 帧是数据包+数据链路层报头。

因此,基本上这意味着如果我们将标头放在一边,则细分=数据包=帧。

我记得读过《数据链路层》,它接受了网络层传输给它的数据,并将其拆分为较小的数据块,以便物理层进行传输。因此,我假设这些帧是给定数据包的较小部分。

但是在我搜索的所有地方,我都读到,段,数据包和帧之间的唯一区别是附加到原始数据在不同层中的标头,并且名称是不同的,因为它们对于每一层都是唯一的,即使它基本上是一样。

除了段,包和帧中的每一个都包含的报头之外,段,包和帧真的一样吗?它们都一样大小吗?


1
“填充”或数据量可以不同。看一下在许多网络堆栈中实现的“ Nagle算法”:en.wikipedia.org/wiki/Nagle's_algorithm
Florenz Kley 2012年

Answers:


16

在此处输入图片说明

每个图层都有其标题,如您所见:

  • 段:传输层(TCP / UDP)=传输头+数据(来自上层)
  • 数据包:Internet层(IP)=网络头+传输头和数据(来自上层的传输和数据)
  • 帧:网络层(以太网)=帧头+网络,传输头和数据(来自三个较高层)。

因此,要回答您的问题,段,数据包和帧之间的区别基本上就是其相应层认为的“数据”。在一个网段上,数据来自应用程序层。在数据包上,数据来自传输层(传输头+数据);在框架上,数据来自Internet层(传输和Internet标头+来自应用程序层的数据)。


1
最终通过物理层传输数据的方式又如何呢?如果不是一次都传输所有数据,那么拆分如何进行?是否在网络和数据链路层中同时发生(并由传输层处理)?您能否在回答中详细说明此过程?
amiregelz 2012年

Diogo是正确的,但也有一些考虑因素可能会引起误解。尽管您可能正在发送100字节的数据,但该数据包仍占据了线路上的完整MTU(通常为1500字节)。不利的一面是,如果要发送一堆微小的数据包,您将永远无法获得网络链路的最大可用带宽。一些封装的隧道可以减少/减少这种浪费……但这是另一个问题。
TheCompWiz 2012年

@Diogo可以根据我的评论编辑答案吗?谢谢。
amiregelz 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.