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

posted @ 2019-09-09 14:15  quanzhan  阅读(2103)  评论(0编辑  收藏  举报