1000M约等于(1秒/(1纳秒))/ (1024*1024)

==============================================================

1.什么是 IFG?(What)

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

图 1 帧间距

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

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

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

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

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

则:10Mmin:          9600 ns

100Mmin:         960 ns

1000Mmin:        96 ns

4.如何使用IFG?(How)

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

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

图 2以太网传输示例

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 bit time),设备的有效速度增大,可以解决因速度过慢导致测试超时的问题。

补充:

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

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

最新文章

  1. word转化jpg
  2. 【技术贴】大型发布会现场的WiFi网络应该如何搭建?
  3. 苹果下如果安装nginx,给nginx安装markdown第三方插件
  4. C#4.0 特性
  5. vim - Highlight unwanted spaces
  6. Linux/Unix shell sql 之间传递变量
  7. Hadoop启动异常情况解决方案
  8. C#结合js 上传文件和删除文件(技术点有:asp.net mvc ,nhibernate,ajax等)
  9. 李洪强iOS开发之拓展篇—UIDynamic(简单介绍)
  10. [转]hive中order by,distribute by,sort by,cluster by
  11. android textView 富文本显示
  12. WebKit的历史项管理
  13. HDU 5037 FROG (贪婪)
  14. Jquery实现的几款漂亮的时间轴
  15. Function与Object的关系
  16. Sentry快速开始并集成钉钉群机器人
  17. 【Beta阶段】展示博客
  18. ubuntu installs matlab2017a
  19. python名片管理
  20. 像素 转换 px dp

热门文章

  1. centos5/6/7下yum安装zabbix-agent(被控端)
  2. JavaScript入门:004—JS凝视的写法和基本运算符
  3. WPF-Binding的源
  4. 转载:DenseNet算法详解
  5. 定位frame中的元素
  6. Machine Learning - week 2 - 编程练习
  7. distinct与NULL在count的注意事项
  8. Centos7安装dubbo管理控制台
  9. Git中如何将代码恢复到之前某个节点
  10. matlab学习笔记之基础知识(一)