本节内容主要对流量控制原理认识,接下来的章节会对二层通信知识点进行系统讲解。
流量控制需求产生:
流量控制可以有效的防止由于网络中瞬间的大量数据对网络带来的冲击,保证用户网络高效而稳定的运行。
流量控制定义:
流量控制用于防止在端口阻塞的情况下丢帧,这种方法是当发送或接收缓冲区开始溢出时通过将阻塞信号发送回源地址实现的,是点到点的协议。
控制流量的方式:
1)在半双工方式下,流量控制是通过反压(Backpressure)实现的。
2) 在全双工方式下,流量控制一般遵循IEEE 802.3X标准,是由交换机向信息源发送“pause”帧【 01-80-C2-00-00-01 】令其暂停发送。
单工(Simplex Communication):
通信双方中,一方固定为发送端,一方则固定为接收端。信息只能沿一个方向传输,使用一根传输线,不需要回传信息想回通信的可以用单工模式。
半双工(Half Duplex):
指数据可以在一个信号载体的两个方向上传输,但是不能同时传输,相对于单方向一次性传输。
全双工(Full Duplex):
数据传输允许在两个方向上同时传输,它在能力上相当于两个单工通信方式的结合。
当以太网交换控制电路端口工作在半双工模式时,符合IEEE 802.3协议的载波侦听多路访问/冲突检测(CSMA/CD)算法,可以实现隐式的流量控制,即采用背压技术(Back Pressure)防止缓冲区的溢出,在发送方数据到来前采取某种动作,阻止发送方发送数据。
背压技术(Back Pressure):
背压技术是交换控制电路发出一种伪碰撞信号(False Collision Signal)技术。就是消费者需要多少,生产者就生产多少,接收方根据自己的接收端口的情况来控制接收速率,并通过反向的ACK包来控制发送方的发送速率。
背压技术实现分析:
根据已经使用缓冲区的容量比例来判断,当已用缓冲区容量达到一个预先设定的比例时,端口将根据这个阈值生成阻塞信号,类似告警功能,主动发出信号包ACK。
而当空闲缓冲区容量比例高于设定值时,端口将取消阻塞信号。
在拥塞端口所在的网段内,阻塞信号ACK包的传输可以使该网段里所有的端口都能检测到冲突,等待阻塞信号结束后再传输数据帧,从而阻止更多的碰撞,暂时中止了数据的传输,使缓冲区的空间得到释放。
这个是一种防止丢包策略的技术,相应的还有节流(丢弃),打包(小包裹转大包裹降低传输开销)等技术。
全双工网络控制:
而在全双工网络中,交换控制电路端口不会检测冲突,并且忽略可延迟传送的载波侦听,
所以不能采用背压技术解决拥塞,需要采用显式的流量控制机制,使交换控制电路能够阻塞处
于拥塞状态的站点。于是,IEEE 802.3协议为mac控制子层提供了一个全双工流量控制结构框架,MAC控制子层是介于逻辑链路控制子层和介质访问控制子层间的可选功能。既然是全双工可以互相通信,所以接收方可以告诉发送方利用“pause”帧方式。