概述

我们在工作中,经常听到小伙伴说报文的长度是64、128、256字节等,我们都知道它们是什么意思,不过在计算网络带宽时,总是会比预想的要小,并且报文越小,差距越大。

这个问题几乎是所有网络新手都会遇到的困扰,网上关于这方面的资料也不多,大部分小伙伴只能去咨询老员工,被鄙视一顿后然后才知道原因:)。

其实这个问题并不难,标准的文档上就有,不过IEEE的标准文档实在是“难以下咽”,让人看到就头疼。今天就把以太网完整帧长的小知识点分享给大家,也非常欢迎各位关注我们的头条号,一起讨论网络知识。

以太网格式

要想知道以太网帧的真正长度,需要先从以太网格式说起。如下图是完整的以太网格式:

以太网完整帧长

各位小伙伴有没有发现完整帧长中,有的内容比较陌生呢?我们通常说的帧长,指的是下面的内容,它不包含Preamble,SFD,和IFG这三部分内容;

通常说的帧长

这三部分内容到底有什么用处呢,为什么要算在完整帧长里呢?看完下面的解释就知道了!

Preamble

Preamble,中文翻译是“序言”,引申为“前导码”;

Preamble有7个字节, 它由10循环代码组成,每个字节的内容都是“10101010”;

Preamble

Preamble本身并没有实际的意思,仅仅用在发送方和接收方之间同步时钟和bit流;

  1. 当发送方发送数据时,会加上这7个字节的报文,告诉接收方“请按照这种规律准备好,我马上要发送数据了”;
  2. 当接收方连续收到“10101010”这串代码时,就需要调整字节的时钟,准备好接收数据。

SFD

SFD全称是start of frame delimiter,中文意思“帧开始界定符”,它只有1个byte,内容是固定的:“10101011”。

SFD

SFD用来通知接收方“从这个byte以后的内容都是有效数据,不能丢弃了”。

当接收方收到Preamble以后,又收到1个byte的内容,但是这个内容的最后两个bits是“11”,它就知道后面的内容不在是同步信号,而是有意义的数据。

理论上SFD和Preamble是不一样的,两者的功能差别比较大,但是工作中我们通常把这两个内容只简称为“前导码”,忽略SFD(谁让它太短):);但是我们听到前导码时,要知道,它包含两部分的内容:Preamble,SFD。

前导码

IFG

IFG全称是inter Frame Gap,中文名称是“帧间隙”,它表示的两个Frame之间相隔大小。设备发送完一个Frame以后,并不会立刻再发送下一个,而是会等待IFG的间隔才会继续发送,这一点可能与我们理解的不一样。

最小的帧间隙是12bytes,也是发送完一个帧以后,需要等待发送12bytes的时间才能发送,至于为什么最小是12bytes,需要参考以太网的CSMA/CD特性才行(主要是为了避免冲突)。

以太网带宽计算

上面我们详细解释了Preamble、SFD、IFG三者的功能,现在我们要记住的是:一个完整以太网帧长度,也包含这三部分的内容,因为这三部分也算是以太网的开销

要计算带宽,我们还需要知道FPS(关于FPS的内容,参见我的前一篇文章描述),我们来看一张经典的带宽和FPS对于关系图:

带宽和FPS对于图

我们以64字节为例,分别以完整帧长度和普通帧长度来计算,看看哪个结果是我们所说的1G(1000M)带宽。

PS:1G带宽对应的FPS是1488095,我们直接从图上可以查到,或者查询标准文档也可以。

完整帧长度

前一篇文章已经描述过,带宽通常指的是1秒内能够处理的bit数,其公式为:带宽 = 速率 * 帧长度;

假设以完整帧长度来计算,因为它包括前导码和帧间隙,所以完整帧长度 = 帧长度 + 8字节的前导码 + 12字节的帧间隙 = 64 + 8 + 12 = 84 bytes,转换为bit为84*8= 672 bits。

带宽 = 1488095 * 672 = 999,999,840 bit = 1000M bit,这样就和我们通常说的带宽是相同的,也可以证明这种计算方式是正确的。

我们再来看看不加前导码和帧间隙的带宽计算结果。

普通帧长度

假设我们不加上前导码和帧间隙,其计算出来的带宽应该为 = 1488095 * (64*8)= 761,904,640 ≈ 761M,并不是我们通常说的带宽。

不过这种计算方式得到的值也有一个专有的名称:以太网有效负载带宽

以太网有效负载带宽带宽也是一个非常重要的指标,它表示传输1000M的数据,有效内容只有761M左右,剩下的都是以太网本身的消耗

从结果上看,这个效率(76%)其实是不高的,尤其是在字节偏小的情况下,传输效率特别小,也因为这个原因,当初以太网差点被别的技术取代。

总结

从上面的文章里,我们可以得出如下的结论:

  1. 完整的帧长度包含8字节的前导码和12字节的空闲帧;
  2. 前导码用于同步同步发送方/接收方的bit流,提示有效帧内容的开始;
  3. 计算带宽时,使用的帧长是完整帧长,否则计算出来的仅仅是以太网的有效带宽;

看完上面的描述,大家对于前导码和空闲帧的功能了解了吗?如果有疑问,欢迎留言讨论!并且非常欢迎各位关注我们的头条号,一起讨论网络知识,谢谢!

以太网帧的最小长度_揭秘以太网帧长中隐藏的两个内容:前导码、帧间隙相关推荐

  1. 以太网帧的最小长度_802.3?以太网?看完你就懂了

    关注.星标公众号,不错过精彩内容 上一篇文章<以太网数据包结构>讲解了以太网数据包结构,其中牵扯到了802.3,以太网数据包等名词,本文将详解讲解一下这方面的内容. 在TCP/IP世界中, ...

  2. win7 以太网媒体断开怎么处理_工业以太网协议的历史及其优势

    每种工业以太网协议都有其独特的历史和不同的工业应用效益.本文将简述以下三种主要协议及其优势:Ethercat.Profinet 和Multiprotocls 多协议方案. 工业以太网 工业以太网用于工 ...

  3. vue中数组长度_如何在Vue.js中获取计算数组的长度

    我使用的是一个计算方法,它检查用户是否单击了搜索输入,然后检查JSON文件,以将用户的查询与JSON文件中的字符串匹配.这是我当前的代码: computed: { filteredPrizesByQu ...

  4. wpfbutton按钮禁用_wpfbutton按钮禁用_如何在WPF窗口中隐藏关闭按钮?

    我只是遇到了类似的问题,乔·怀特的解决方案在我看来似乎简单而干净.我重用了它并将其定义为Window的附加属性 public class WindowBehavior { private static ...

  5. 辐射强度和辐射亮度_如何在“辐射4”中隐藏“创意俱乐部新闻”垃圾邮件

    辐射强度和辐射亮度 A long time ago in the far-off year of 2015, Bethesda tried to copy the incredible variety ...

  6. 以太网帧最小字节数以及以太网碰撞

    说明:本文源自多个网页,原文链接已经不可寻 以太网是无连接的,不可靠的服务,采用尽力传输的机制.以太网CSMA/CD我就不多讲了,我相信大家都了解这个原理. 以太网是不可靠的,这意味着它并不知道对方有 ...

  7. 为什么以太网帧的长度最短64字节,最长1518字节?

    1.碰撞槽时间 假设公共总线媒体长度为S,帧在媒体上的传播速度为0.7C(光速),网络的传输率为R(bps),帧长为L(bps),tPHY为某站的物理层时延:  则有:  碰撞槽时间=2S/0.7C+ ...

  8. 以太网帧最小字节数以及以太网碰撞率(collision rate)

    2019独角兽企业重金招聘Python工程师标准>>> 以太网是无连接的,不可靠的服务,采用尽力传输的机制.以太网CSMA/CD我就不多讲了,我相信大家都了解这个原理.        ...

  9. 5种css隐藏元素的方法_在CSS中隐藏元素的10种方法

    5种css隐藏元素的方法 There are multiple ways to hide an element in CSS, but they differ in the way they affe ...

最新文章

  1. HTML form 标签的 method 属性
  2. 20175208『Java程序设计』课程 结对编程练习_四则运算
  3. css固定gridview的表头
  4. linux 计算集群搭建,使用centos构建服务器计算集群
  5. android 访问服务器sql_XSS 攻击、CSRF 攻击、SQL 注入、流量劫持(DNS 劫持、HTTP 劫持)—— 浏览器安全
  6. css3常用技巧_您可能错过的5个CSS3技巧和窍门
  7. linux 二进制安装mysql
  8. 【渝粤教育】国家开放大学2018年春季 8601-22T燃气工程概论 参考试题
  9. 深信服桌面云-(1)
  10. BAT算法工程师的成长之路,超详细的学习路线
  11. 分页组件extremeComponents的使用
  12. 显卡的测试软件是什么,你的显卡是什么水平,用这个软件就知道了
  13. 学习方法-北大学霸(01)学习方法基础
  14. iOS中雷达波扩散Layer层动画的实现
  15. Linux实操篇-组管理和权限管理
  16. 淘宝卖家过劳死VS跳楼死
  17. 电脑远程连接打印机打印
  18. Android项目:基于Android安卓医院挂号预约系统软件app(计算机毕业设计)
  19. Too Files - 免费无限空间网络硬盘
  20. 蚁群算法 python

热门文章

  1. Tomcat性能调优
  2. 16.1.3 存储过程和函数的优点
  3. html中input元素的email,HTML5 input元素类型:email及url介绍
  4. 通过 Photoshop(ps)降低文件大小
  5. python常用(RSA)
  6. 写一首程序员界的嘻哈
  7. 红牛农场java实验报告,双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链表中的一个结点,现要求 删去p所指结点,则正确的删除是()。 (4.0分)...
  8. 特征分解(Eigendecomposition)
  9. 上市公司股权激励方法的实施与改进
  10. PDF.js实现在线展示pdf文件