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


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

    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),不包含前导码和帧间隙的速率,

  • 相关阅读:
    Vue 中 KeepAlive 内置缓存使用
    基于人工智能的智能化指挥决策和控制
    《持续交付:发布可靠软件的系统方法》- 读书笔记(二)
    力扣刷题学习SQL篇——1-6 删除(删除重复的电子邮箱——临时表实现/连表实现)
    Flink使用AsyncDataStream异步处理数据
    ptmalloc源码分析 - malloc/free函数的实战篇(12)
    Java 将数据导出到Excel并发送到在线文档
    《机器学习实战》学习笔记(十四)
    共享单车数据处理与分析
    vnc服务
  • 原文地址:https://blog.csdn.net/weixin_44081384/article/details/126712578