以太网帧长中的前导码和帧间隙

1 、概述

目前出现三个bug都涉及到L1和L2限速不准确的问题:在计算网络带宽时,报文设置的越小,差距就越大。
这个问题几乎所有新手都会遇到,在此梳理一下,以此与该问题做个了断。
那么,如果PIC卡实际收到的帧间隙、前导码、帧开始界定符,如果跟协议规定的不一样,是不
是这个数据帧也会被丢弃?答案是,PIC卡在处理帧间隙时,帧间隙一般可以容忍跟协议规定的
不一样(比如不是全1);但前导码、帧开始界定符必须符合协议规定的值,否则当做帧间隙处
理,也就是帧被丢弃了。

2、以太网帧格式

首先弄清楚以太网帧格式,其包含:Preamble、SFD、帧长和IFG,帧格式如图1 所示,图2是以太网帧长部分包含字段。



平常所说的帧长是图2包含的内容,而不包含Preamble、SFD 和IFG这三个字段,那这三个字段是什么意思呢?下面分别说明

2.1、Preamle——前导码

1、Preamle包含7个字节,由10循环组成,每个字节内容为:10101010。七个字节的前导码内容如图3所示。
2、 Preamle的作用是在发送方和接收方之间进行时钟同步。
3、当发送方发送数据时,加上这7个字节的前导码作为报文首部,发送给接收方;
4、当接收方收到10101010时,会按照协议规定,调整自己的字节时钟,准备接收发送方来的数据。
在这里插入图片描述

2.2、 SFD(start of frame delimiter)——帧开始定界符

1、 SFD翻译为:帧开始定界符,长度为1B,内容为10101011。
2、 这段代码的意思是通知接收方,当收到11后边的内容时,不是同步信号了,是真正的数据了。
3、通常说的前导码包含了Preamle和SFD,一共8字节,但实际上是7+1,知道每个字节的作用即可。

2.3. IFG(inter Frame Gap)——帧间隙

1、IFG中文翻译为“帧间隙”,它表示两个Frame之间相隔大小。
2、发送端发送完一个Frame之后,不会立即发送下一个,而是等待IFG时间之后才继续发送。
3、最小的帧间隙是12Byte,即等待12字节时间之后再发送下一帧,这与CSMACD特性有关,避免冲突。

3、以太网带宽计算

计算上面图的帧(Frame)数量时,首先明确如下转换:

1、10M=10^7bps,
2、64Byte+20(8前导符+12帧间隙)=84Byte=672b,即一个64B的帧,加上帧间隙后为672b。
3、同理,128B+20=1488=1184b,一个128Byte的帧,加上帧间隙后为1184b。

从上图中可以看出,
10M速率64B的帧对应的帧数量为:10^7/672=14880,
100M对应的帧数量为148809,从testcenter测试仪中可看出。

3.1 完整帧长度

带宽指的是1s内处理的bit数量,公式为:带宽=速率帧长度。
以64B的帧长度为672b,10M的速率的帧数量为:14881,
根据公式:
带宽=帧总数 * 帧长度=14881 * 672=10 000 032 b= 10M;
同理148809*672=99 999 648 b= 100M

3.2 普通帧长度

假设我们不加上前导码和帧间隙,64B=512b;
10M对应的实际带宽为:带宽=512*14881=7 619 072b=7.6M。
这种方式计算出的值有一个专有名词,以太网有效负载带宽,它表示传输传输10M数据,有效内容只有7.6M,其他的都是以太网的消耗。

3.3. TestCenter上L1和L2速率

L1:指的是物理层速率,即加上帧间隙的速率;
L2(Total Tx(Rx) Rate):实际指的是L2速率(去掉帧间隙和前导码),即数据链路层的速率。

4、总结

1、完整的帧长度包含8字节前导码和12字节帧间隙;
2、前导码用于同步接收方和发送方bit流,表示有效帧内容的开始;
3、计算带宽时,使用完整帧长计算出的带宽和有效帧长计算出的带宽不同。
4、L1对应的是包含前导码和帧间隙的速率,L2对应的TotalTxRate(bps),不包含前导码和帧间隙的速率,

TCP/IP协议专栏——以太网帧中的前导码和帧间隙-带宽计算 详解——网络入门和工程维护必看相关推荐

  1. TCP/IP协议专栏——以太帧结构 详解——网络入门和工程维护必看

    以太网帧结构 以太网帧发送数据时都是从8个字节的前导码开始的.前导码是1和0的交互. > > 前导码:作用是通知接收方有数据到来.要与其的时钟保持同步.在物理层加进去的.不属于帧这部分 & ...

  2. TCP/IP协议专栏——MAC地址详解——网络入门和工程维护必看

    以太帧格式 前导同步符:共8字节,由7个字节的前同步信号和一个分界符开始字节构成. DA/SA:共6个字节,前3个字节代表供应商代码,后3个字节代表厂商序列号. TPID:标记协议标识符,2个字节,值 ...

  3. TCP/IP协议专栏——ND 详解——网络入门和工程维护必看

    文章目录 术语 协议概况 ICMPv6包 IPv6邻居发现(ND)与IPv4中ARP区别 ND协议介绍 Ipv6邻居发现(ND)机制 路由器请求(Router solicitation) 路由器通告( ...

  4. TCP/IP协议(2): 以太网(IEEE 802.3) 协议 —— 构成有线局域网的基本协议

    #TCP/IP协议(2): 以太网(IEEE 802.3)协议 -- 构成有线局域网的基本协议 关于以太网(IEEE 802.3) 协议 以太网(Ethernet) 是一套广泛应用于局域网(LAN), ...

  5. TCP/IP协议学习之计算机中的端口

    端口的概念 在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem.集线器.交换机.路由器用于连接其他网络设备的接口,如RJ-45端口.SC端口等等.二是逻辑意 ...

  6. 计算机网络_以太网帧中的前导码和帧间隙

    以太网帧长中的前导码和帧间隙 1 .概述 目前出现三个bug都涉及到L1和L2限速不准确的问题:在计算网络带宽时,报文设置的越小,差距就越大. 这个问题几乎所有新手都会遇到,在此梳理一下,以此与该问题 ...

  7. 以太网帧中的前导码和帧间隙

    目录 一.什么是帧间距(IFG) 1.1.前导码(Preamble) 1.2.帧开始界定符(SFD) 1.3.IFG(Interframe Gap帧间距) 二.为什麽什么是帧间距 三.IFG的大小为多 ...

  8. uIP tcp/ip协议分析及其在嵌入式系统中的应用

    网络技术的发展使越来越多的工业控制设备将网络接入功能作为其必备的特性之一.同样,嵌入式系统的发展,要求其应用能够支持网络功能,为用户提供一个简易方便的可视化图形界面.当前WEB浏览器已经成为用户的合理 ...

  9. linux中tcp/ip协议实现及嵌入式应用 下载,LINU中TCPIP协议实现及嵌入式应用

    好文网为大家准备了关于LINU中TCPIP协议实现及嵌入式应用范文,好文网里面收集了五十多篇关于好LINU中TCPIP协议实现及嵌入式应用好文,希望可以帮助大家.更多关于LINU中TCPIP协议实现及 ...

最新文章

  1. 把ePO4.5或者4.6从32位迁移到64位系统
  2. 大学学习方法介绍之:使用两套教材
  3. 关于 UDP Hole Punching 的资料
  4. xamarin拖一个gridview控件报错怎么解决_[笔记阁]Xamarin初探:版式面板(一)
  5. 在猜年龄的基础上编写登录、注册方法,并且把猜年龄游戏分函数处理
  6. 能用python做信号处理吗_Python中的信号处理
  7. [机器学习] 模型稳定度指标PSI
  8. matlab查找替换指令,使用matlab GUI在.txt文件中编辑特定数字使用搜索/替换
  9. autotools入门笔记(一)
  10. 在Visual Studio Code配置GoLang开发环境
  11. 【机器学习】监督学习--(回归)LASSO
  12. zend studio 7.2.0怎么创建项目
  13. studying and learning
  14. Markdown(六)——表格合并单元格增加标题
  15. windows 7 help 帮助文件无法打开的解决
  16. PPT制作手机手指滑动效果
  17. 微信群有效期可以延长吗?突破微信群7天有效期有什么办法?
  18. 1.《天空之城》- 尤克里里指弹入门版
  19. MyBatis一对多查询collection三表三层查询
  20. 表格中自动布局注意和使用自动计算行高

热门文章

  1. 计算机专业大一有必要买电脑吗,大一有必要买电脑吗 适合女生用的笔记本电脑...
  2. [第五篇]——Docker 镜像加速
  3. js删除cookie
  4. 【每日一练】97—美丽画卷折叠效果
  5. vivoz5android能关吗,vivo Z5这4个隐藏小技巧,你知道吗?
  6. Vue 微信网页截图实现
  7. 头像上传和图片裁剪功能(cropper.js)
  8. 通信设备市场遭遇狼来了,华为面临三星挑战
  9. iOS开源加密相册Agony的实现(一)
  10. centos 内核升级