在千兆以太网的MAC 子层,除了支持以往的CSMA/CD介质访问控制协议外,还引入了全双工流量控制协议。其中,CSMA/CD协议用于解决共享信道的争用问题,即支持以集线器作为星型拓扑中心的共享以太网组网;全双工流量控制协议适用于交换机到交换机或交换机到站点之间的点-点连接,两点间可以同时进行发送与接收,即支持以交换机作为星型拓扑中心的交换以太网组网。
当以太网交换控制电路端口工作在半双工模式时,符合IEEE 802.3协议的载波侦听多路访问/冲突检测(CSMA/CD)算法,可以实现隐式的流量控制,即采用背压技术(BackPressure)防止缓冲区的溢出,在发送方数据到来前采取某种动作,阻止发送方发送数据。
背压技术是交换控制电路发出一种伪碰撞信号(False Collision Signal)技术。背压技术通常根据已用缓冲区的容量比例来实现,当已用缓冲区容量达到一个预先设定的比例时,端口将根据这个阈值生成阻塞信号,而当空闲缓冲区容量超过另一个较低的比例时,端口将取消阻塞信号。在拥塞端口所在的网段内,阻塞信号的传输可以使该网段里所有的端口都能检测到冲突,等待阻塞信 号结束后再传输数据帧,从而阻止更多的碰撞,暂时中止了数据的传输,使缓冲区的空间得到释放。
而在全双工网络中,交换控制电路端口不检测冲突,忽略可延迟传送的载波侦听,所以不能采用背压技术解决拥塞,需要采用显式的流量控制机制,使交换控制电路能够阻塞处于拥塞状态的站点。于是,IEEE 802.3协议为MAC控制子层提供了一个全双工流量控制结构框架,MAC控制子层是介于逻辑链路控制子层和介质访问控制子层间的可选功能。
交换控制电路要防止缓冲区溢出,可以利用MAC控制子层来控制以太网介质访问控制子层的操作。当已用缓冲区容量达到一个预先设定的阈值时,端口向全双工链路对方发出停止发送数据的请求,这个请求通过MAC控制子层产生的控制帧实现。
同样,端口可以接收由其他站点MAC控制子层产生的控制帧,控制帧夹在客户数据帧流中发送,接收方会根据帧的内容将控制帧分离出来,提交到MAC控制子层中的流量控制模块,流量控制模块解析控制帧的内容,提取帧中的控制参数,根据控制参数决定暂停发送的时间。
在全双工MAC控制框架下,流量控制机制是通过PAUSE功能实现的。PAUSE功 能可以防止瞬时过载导致缓冲区溢出时不必要的帧丢失。PAUSE操作实现了一种简单的停-等式流量控制机制。如果某个端口要停止帧的接收,可以发送一个带有参数的PAUSE帧,参数指示全双工链路对方在开始发送数据前需要等待的时间。当链路对方接收到PAUSE帧后,在参数指定的时间内停止发送数据。当指 定时间超出,或端口流量控制状态解除后,原拥塞端口重新发出操作参数为0的PAUSE帧,链路对方从暂停的位置继续发送数据帧。
关于PAUSE帧,这里不再介绍。
版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处
作者:杭州卿萃科技ALIFPGA
原文地址:杭州卿萃科技FPGA极客空间 微信公众号
扫描二维码关注杭州卿萃科技FPGA极客空间