广告

原创 【转】流量控制和背压技术

2014-11-4 22:02 277 0 分类: 工程师职场 文集: Ethernet

在千兆以太网的MAC 子层,除了支持以往的CSMA/CD介质访问控制协议外,还引入了全双工流量控制协议。其中,CSMA/CD协议用于解决共享信道的争用问题,即支持以集线器作为星型拓扑中心的共享以太网组网全双工流量控制协议适用于交换机到交换机或交换机到站点之间的点-点连接,两点间可以同时进行发送与接收,即支持以交换机作为星型拓扑中心的交换以太网组网。

当以太网交换控制电路端口工作在半双工模式时,符合IEEE 802.3协议的载波侦听多路访问/冲突检测(CSMA/CD)算法,可以实现隐式的流量控制,即采用背压技术(Back Pressure)防止缓冲区的溢出,在发送方数据到来前采取某种动作,阻止发送方发送数据。

背压技术是交换控制电路发出一种伪碰撞信号(False Collision Signal)技术。背压技术通常根据已用缓冲区的容量比例来实现,当已用缓冲区容量达到一个预先设定的比例时,端口将根据这个阈值生成阻塞信号,而当空闲缓冲区容量超过另一个较低的比例时,端口将取消阻塞信号。在拥塞端口所在的网段内,阻塞信号的传输可以使该网段里所有的端口都能检测到冲突,等待阻塞信号结束后再传输数据帧,从而阻止更多的碰撞,暂时中止了数据的传输,使缓冲区的空间得到释放。

而在全双工网络中,交换控制电路端口不检测冲突,忽略可延迟传送的载波侦听,所以不能采用背压技术解决拥塞,需要采用显式的流量控制机制,使交换控制电路能够阻塞处于拥塞状态的站点。于是,IEEE 802.3协议为MAC控制子层提供了一个全双工流量控制结构框架,MAC控制子层是介于逻辑链路控制子层和介质访问控制子层间的可选功能

交换控制电路要防止缓冲区溢出,可以利用MAC控制子层来控制以太网介质访问控制子层的操作。当已用缓冲区容量达到一个预先设定的阈值时,端口向全双工链路对方发出停止发送数据的请求,这个请求通过MAC控制子层产生的控制帧实现。

同样,端口可以接收由其他站点MAC控制子层产生的控制帧,控制帧夹在客户数据帧流中发送,接收方会根据帧的内容将控制帧分离出来,提交到MAC控制子层中的流量控制模块,流量控制模块解析控制帧的内容,提取帧中的控制参数,根据控制参数决定暂停发送的时间。

在全双工MAC控制框架下,流量控制机制是通过PAUSE功能实现的。PAUSE功能可以防止瞬时过载导致缓冲区溢出时不必要的帧丢失。PAUSE操作实现了一种简单的停-等式流量控制机制。如果某个端口要停止帧的接收,可以发送一个带有参数的PAUSE帧,参数指示全双工链路对方在开始发送数据前需要等待的时间。当链路对方接收到PAUSE帧后,在参数指定的时间内停止发送数据。当指定时间超出,或端口流量控制状态解除后,原拥塞端口重新发出操作参数为0的PAUSE帧,链路对方从暂停的位置继续发送数据帧。

MAC控制帧是符合IEEE 802.3协议的以太网帧,可以通过其唯一的类型域标识符(0x8808)识别。MAC控制帧在网络上的发送和接收与数据帧类似,除了前导码和帧开始符外,长度为以太网帧的最小帧长度(64字节)。MAC控制帧的'数据'字段内,前两个字节标识了MAC控制的操作码,表示帧请求的控制功能。目前协议只定义了一种操作代码,即PAUSE操作,操作代码为0x0001。操作码后是操作所需的参数,参数只用了数据字段的2个字节,'数据'字段中其余位将填充0。PAUSE帧格式如图5-18所示。


前导码
(7字节)

帧开始符
(1字节)

目的地址
(6字节)

源地址
(6字节)

类型
(2字节)

操作码
(2字节)

操作参数
(2字节)

……

保留
(42字节)

校验序列
(4字节)


 
(点击查看大图)图5-18  PAUSE帧格式

PAUSE帧各个字段的定义如下:

前导码:与数据帧前导码相同,为连续7字节的10101010序列,用于物理层设备的同步。

帧开始符:也与数据帧帧开始符相同,为序列10101011,表示帧数据内容的开始。

目的地址:为帧发送端口的48位MAC地址,它可以是单播地址,也可以是组播地址,协议规定PAUSE的目的地址为保留的组播地址0x01-80-C2-00-00-01。

源地址:为发送PAUSE帧端口的48位MAC地址。

类型:为所有MAC控制帧保留类型0x8808。

操作码:恒为0x0001。

PAUSE操作参数:为2字节的暂停时间参数。它是PAUSE发送方请求对方停止发送数据帧的时间长度,通常为0xFFFF,时间度量单位是以当前传输速率传输512位数据所用的时间,接收方实际暂停的时间为操作参数字段内容与以当前传输速率传输512位数据所用时间的乘积。

帧校验和(FCS):为4个字节的循环冗余校验序列(CRC)字段。

广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
sunyzz 2017-08-19 10:38
【博客大赛】AVALON总线介绍
1、AVALON总线简介Avalon总线是一种协议较为简单的片内总线,是ALTERA公司定义的片上互联总线,该总线可以将诸如NIOS II的CPU与其他外设连接起来,进而进行数据交换。AVALON总线...
sunyzz 2017-08-17 21:36
【博客大赛】不要轻易做职场滥好人
小A毕业于国内普通高校,但是他聪明,勤奋,能干,动手能力强,可是即便有这些优点也不能让小A轻轻松松找到一份好工作。这不,去年9月份小A好不容易找到一份工作,然后立马就入职了C公司,生怕C公司过两天不要...
sunyzz 2017-08-16 21:15
【博客大赛】IC设计低功耗技术四
五:工艺层面的降低功耗前面几节都是在讨论设计人员如何在前期阶段,中期阶段降低功耗,涉及到软件层面的,硬件层面的,这些技巧基本都是前辈总结出来的,或者根据理论推论出来的。但是到了后期,想降低功耗基本就要...
sunyzz 2017-08-14 22:35
【博客大赛】IC设计之低功耗技术三
四:RTL(寄存器传输)级的低功耗设计4.1 状态机的设计状态机编码中一般有两种方式,普通的二进制编码,特殊的格雷码,格雷码的特点是两个数据之间的跳变时只会有一个bit在toggle,显然比起多bit...
sunyzz 2017-08-12 16:51
【博客大赛】IC设计之低功耗技术二
三、架构层面的降低功耗系统的实现有很多的方式,每种方式对功耗的影响都不相同,本节主要介绍架构对功耗的影响。3.1 高级门口电路 在同步电路系统中,时钟占据了大部分的动态功耗,因而在一些情况下,如果有些...
sunyzz 2017-08-12 10:37
【博客大赛】IC 设计之低功耗技术一
一、前言随着计算机技术和微电子技术的迅速发展,嵌入式系统应用领域越来越广泛。节能是全球化的热潮,如计算机里的许多芯片过去用5V供电,现在用3.3V,1.8V,甚至更低的电压。目前的低功耗设计主要从芯片...
我要评论
0
0
广告