以太网帧的最小长度_揭秘以太网帧长中隐藏的两个内容:前导码、帧间隙
概述
我们在工作中,经常听到小伙伴说报文的长度是64、128、256字节等,我们都知道它们是什么意思,不过在计算网络带宽时,总是会比预想的要小,并且报文越小,差距越大。
这个问题几乎是所有网络新手都会遇到的困扰,网上关于这方面的资料也不多,大部分小伙伴只能去咨询老员工,被鄙视一顿后然后才知道原因:)。
其实这个问题并不难,标准的文档上就有,不过IEEE的标准文档实在是“难以下咽”,让人看到就头疼。今天就把以太网完整帧长的小知识点分享给大家,也非常欢迎各位关注我们的头条号,一起讨论网络知识。
以太网格式
要想知道以太网帧的真正长度,需要先从以太网格式说起。如下图是完整的以太网格式:
![](/assets/blank.gif)
以太网完整帧长
各位小伙伴有没有发现完整帧长中,有的内容比较陌生呢?我们通常说的帧长,指的是下面的内容,它不包含Preamble,SFD,和IFG这三部分内容;
![](/assets/blank.gif)
通常说的帧长
这三部分内容到底有什么用处呢,为什么要算在完整帧长里呢?看完下面的解释就知道了!
Preamble
Preamble,中文翻译是“序言”,引申为“前导码”;
Preamble有7个字节, 它由10循环代码组成,每个字节的内容都是“10101010”;
![](/assets/blank.gif)
Preamble
Preamble本身并没有实际的意思,仅仅用在发送方和接收方之间同步时钟和bit流;
- 当发送方发送数据时,会加上这7个字节的报文,告诉接收方“请按照这种规律准备好,我马上要发送数据了”;
- 当接收方连续收到“10101010”这串代码时,就需要调整字节的时钟,准备好接收数据。
SFD
SFD全称是start of frame delimiter,中文意思“帧开始界定符”,它只有1个byte,内容是固定的:“10101011”。
![](/assets/blank.gif)
SFD
SFD用来通知接收方“从这个byte以后的内容都是有效数据,不能丢弃了”。
当接收方收到Preamble以后,又收到1个byte的内容,但是这个内容的最后两个bits是“11”,它就知道后面的内容不在是同步信号,而是有意义的数据。
理论上SFD和Preamble是不一样的,两者的功能差别比较大,但是工作中我们通常把这两个内容只简称为“前导码”,忽略SFD(谁让它太短):);但是我们听到前导码时,要知道,它包含两部分的内容:Preamble,SFD。
![](/assets/blank.gif)
前导码
IFG
IFG全称是inter Frame Gap,中文名称是“帧间隙”,它表示的两个Frame之间相隔大小。设备发送完一个Frame以后,并不会立刻再发送下一个,而是会等待IFG的间隔才会继续发送,这一点可能与我们理解的不一样。
最小的帧间隙是12bytes,也是发送完一个帧以后,需要等待发送12bytes的时间才能发送,至于为什么最小是12bytes,需要参考以太网的CSMA/CD特性才行(主要是为了避免冲突)。
以太网带宽计算
上面我们详细解释了Preamble、SFD、IFG三者的功能,现在我们要记住的是:一个完整以太网帧长度,也包含这三部分的内容,因为这三部分也算是以太网的开销。
要计算带宽,我们还需要知道FPS(关于FPS的内容,参见我的前一篇文章描述),我们来看一张经典的带宽和FPS对于关系图:
![](/assets/blank.gif)
带宽和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%)其实是不高的,尤其是在字节偏小的情况下,传输效率特别小,也因为这个原因,当初以太网差点被别的技术取代。
总结
从上面的文章里,我们可以得出如下的结论:
- 完整的帧长度包含8字节的前导码和12字节的空闲帧;
- 前导码用于同步同步发送方/接收方的bit流,提示有效帧内容的开始;
- 计算带宽时,使用的帧长是完整帧长,否则计算出来的仅仅是以太网的有效带宽;
看完上面的描述,大家对于前导码和空闲帧的功能了解了吗?如果有疑问,欢迎留言讨论!并且非常欢迎各位关注我们的头条号,一起讨论网络知识,谢谢!
以太网帧的最小长度_揭秘以太网帧长中隐藏的两个内容:前导码、帧间隙相关推荐
- 以太网帧的最小长度_802.3?以太网?看完你就懂了
关注.星标公众号,不错过精彩内容 上一篇文章<以太网数据包结构>讲解了以太网数据包结构,其中牵扯到了802.3,以太网数据包等名词,本文将详解讲解一下这方面的内容. 在TCP/IP世界中, ...
- win7 以太网媒体断开怎么处理_工业以太网协议的历史及其优势
每种工业以太网协议都有其独特的历史和不同的工业应用效益.本文将简述以下三种主要协议及其优势:Ethercat.Profinet 和Multiprotocls 多协议方案. 工业以太网 工业以太网用于工 ...
- vue中数组长度_如何在Vue.js中获取计算数组的长度
我使用的是一个计算方法,它检查用户是否单击了搜索输入,然后检查JSON文件,以将用户的查询与JSON文件中的字符串匹配.这是我当前的代码: computed: { filteredPrizesByQu ...
- wpfbutton按钮禁用_wpfbutton按钮禁用_如何在WPF窗口中隐藏关闭按钮?
我只是遇到了类似的问题,乔·怀特的解决方案在我看来似乎简单而干净.我重用了它并将其定义为Window的附加属性 public class WindowBehavior { private static ...
- 辐射强度和辐射亮度_如何在“辐射4”中隐藏“创意俱乐部新闻”垃圾邮件
辐射强度和辐射亮度 A long time ago in the far-off year of 2015, Bethesda tried to copy the incredible variety ...
- 以太网帧最小字节数以及以太网碰撞
说明:本文源自多个网页,原文链接已经不可寻 以太网是无连接的,不可靠的服务,采用尽力传输的机制.以太网CSMA/CD我就不多讲了,我相信大家都了解这个原理. 以太网是不可靠的,这意味着它并不知道对方有 ...
- 为什么以太网帧的长度最短64字节,最长1518字节?
1.碰撞槽时间 假设公共总线媒体长度为S,帧在媒体上的传播速度为0.7C(光速),网络的传输率为R(bps),帧长为L(bps),tPHY为某站的物理层时延: 则有: 碰撞槽时间=2S/0.7C+ ...
- 以太网帧最小字节数以及以太网碰撞率(collision rate)
2019独角兽企业重金招聘Python工程师标准>>> 以太网是无连接的,不可靠的服务,采用尽力传输的机制.以太网CSMA/CD我就不多讲了,我相信大家都了解这个原理. ...
- 5种css隐藏元素的方法_在CSS中隐藏元素的10种方法
5种css隐藏元素的方法 There are multiple ways to hide an element in CSS, but they differ in the way they affe ...
最新文章
- HTML form 标签的 method 属性
- 20175208『Java程序设计』课程 结对编程练习_四则运算
- css固定gridview的表头
- linux 计算集群搭建,使用centos构建服务器计算集群
- android 访问服务器sql_XSS 攻击、CSRF 攻击、SQL 注入、流量劫持(DNS 劫持、HTTP 劫持)—— 浏览器安全
- css3常用技巧_您可能错过的5个CSS3技巧和窍门
- linux 二进制安装mysql
- 【渝粤教育】国家开放大学2018年春季 8601-22T燃气工程概论 参考试题
- 深信服桌面云-(1)
- BAT算法工程师的成长之路,超详细的学习路线
- 分页组件extremeComponents的使用
- 显卡的测试软件是什么,你的显卡是什么水平,用这个软件就知道了
- 学习方法-北大学霸(01)学习方法基础
- iOS中雷达波扩散Layer层动画的实现
- Linux实操篇-组管理和权限管理
- 淘宝卖家过劳死VS跳楼死
- 电脑远程连接打印机打印
- Android项目:基于Android安卓医院挂号预约系统软件app(计算机毕业设计)
- Too Files - 免费无限空间网络硬盘
- 蚁群算法 python
热门文章
- Tomcat性能调优
- 16.1.3 存储过程和函数的优点
- html中input元素的email,HTML5 input元素类型:email及url介绍
- 通过 Photoshop(ps)降低文件大小
- python常用(RSA)
- 写一首程序员界的嘻哈
- 红牛农场java实验报告,双向链表中有两个指针域,llink和rlink分别指向前趋及后继,设p指向链表中的一个结点,现要求 删去p所指结点,则正确的删除是()。 (4.0分)...
- 特征分解(Eigendecomposition)
- 上市公司股权激励方法的实施与改进
- PDF.js实现在线展示pdf文件