zoukankan      html  css  js  c++  java
  • IFG以太网帧间隙

     交换机的线速

    描述交换机性能可以使用“线速”这个概念,那它是什么意思呢?所谓的线速是指经过交换机处理的理想状态下最大数据率。描述数据率可以用bps(bit per second)和mpps(million packets per second)这两个单位来描述。

    当用bps来描述时,直接用bit数来表示。当用mpps来描述时,需要进行一定的转换。如:

            1Gbps=1000000000/8/(64+12+8)=1.488Mpps

    利用这个式子,可以将bps转化为mpps

    那么交换机的背板带宽以及二层三层的线速怎么算呢?一般来讲,计算方法如下:
    1)线速的背板带宽
    考察交换机上所有端口能提供的总带宽。计算公式为端口数*相应端口速率*2(全双工模式)如果总带宽标称背板带宽,那么在背板带宽上是线速的。
    2)第二层包转发线速
    第二层包转发率=千兆端口数量×1.488Mpps+百兆端口数量*0.1488Mpps+其余类型端口数*相应计算方法,如果这个速率能标称二层包转发速率,那么交换机在做第二层交换的时候可以做到线速。
    3)第三层包转发线速
    第三层包转发率=千兆端口数量×1.488Mpps+百兆端口数量*0.1488Mpps+其余类型端口数*相应计算方法,如果这个速率能标称三层包转发速率,那么交换机在做第三层交换的时候可以做到线速。

    那么计算那个1.4880.1488式子中的128怎么来的呢?这个要涉及到以太网帧的发送过程中的帧间隙了(IFG)。

    以太网帧间隙

    1.什么是IFG?(What)

    IFG(Interframe Gap),帧间距,以太网相邻两帧之间的时间断;以太网发送方式是一个帧一个帧发送的,帧与帧之间需要间隙,即帧间距IFG也可称其为IPG (Interpacket Gap)。IFG指的是一段时间,不是距离,单位通常用微秒(μs)或纳秒(ns)。如下图所示:

    2.为什么需要IFG?(Why)

    网络设备和组件在接收一个帧之后,需要一段短暂的时间来恢复并为接收下一帧做准备。

    3.IFG的大小为多少?(Importance)

    IFG的最小值是96 bittime,即在媒介中发送96位原始数据所需要的时间,在不同媒介中IFG的最小值是不一样的:

    不管 10M/100M/1000M的以太网,两帧之间最少要有96bit;IFGmin=96bit/speed  (s)

    则:10Mmin:        9600 ns

         100Mmin:       960 ns

    1000Mmin:       96 ns

    4.如何使用IFG?(How)

    举个具体例子说明,IFG在以太网的流控机制中解决速度匹配问题;

    这里涉及到以太网的流控机制,如下图:

     

    1)    设备1以其自身的工作时钟(OSC1) 向设备2发送到待发数据;

    2)    数据包进入设备2:

    a)    经过时钟数据恢复器(CDR)的处理,从数据中提取时钟,并基于提取的时钟(CLK2),将数据包存入接收缓存,此时,CLK2和OSC1是同步的;

    b)    数据从接收缓存,经过上层协议的处理,存入发送缓存;

    3)    发送缓存以设备2的工作时钟(OSC2)发送数据,由于以太网是异步工作的,故OSC1和OSC2作为不同设备的本地时钟,并不能做到完全同频(以太网设备的工作时钟允许有正负50ppm的频差),上图假设OSC1大于OSC2,那么设备2的接收的速度将大于发送的速度,如果接收缓冲满了,将造成丢包;

    如何解决上述丢包问题?

    在设备2的发送侧通过减小IFG(帧间距)来加快其发送有效数据包的速度,从而使得发送速度能跟上接收速度。

    5.IFG在我们实际工作的应用?

    这里主要提到Smartbit 6000C 在产测中的使用。

    使用原理:

    IFG增大,设备的有效速度减小,可以解决因速度过快丢包的问题;

    IFG减小(但必须大于96 bittime),设备的有效速度增大,可以解决因速度过慢导致测试超时的问题。

     补充:
          以太网的发送方式是按照一个帧一个帧来发送的,帧与帧之间需要间隙,叫做帧间隙(InterFrameGap,IFG)。IFG的长度是96bit(12 Byte),也称为以太网最小帧间隙。此外还可能有Idle时间。

         互联网帧间隙共20字节,其中包括:
         以太网最小帧间隙  12Byte(IEEE802.3)
         数据链路层帧        7 Byte前导字符(用于时钟同步)
         帧开始标识            1Byte(标识帧的开始)

    参考:

    https://www.2cto.com/net/201307/232177.html

  • 相关阅读:
    恭喜发财
    狗腿子的一天
    向系统分析员爬进
    解决SqlTransaction用尽的问题
    Localhost与数据库连接
    《成都,今夜请将我遗忘》读后感
    如何快速掌握一门技术
    怎样做一个iOS App的启动分层引导动画?
    怎么去掉Xcode工程中的某种类型的警告
    iOS 8 AutoLayout与Size Class自悟
  • 原文地址:https://www.cnblogs.com/code1992/p/11491451.html
Copyright © 2011-2022 走看看