可能很多人对FECN前向拥塞标识还不是特别的了解,这里我们主要分析了FECN前向拥塞标识的基础知识。帧中继服务提供帧的透明与非证实的传输,收到的用户数据除了地址与FCS字段被改变以外,均将被作为数据转发出去。帧中继网络面临拥塞时,可能会通知用户拥塞发生,并假设用户会采取舒适的行为去减轻拥塞,也可能只是丢掉这帧。
在网络控制方面,为了降低系统开销,FR采用了简单的拥塞通知机制,而没有使用显式的基于每一条虚拟电路的控制机制。这主要是因为FR通常运行在比较稳定的网络介质之上,所以完全可以将流量控制功能交由上层协议完成,而不会影响到数据的完整性。FR所采用的拥塞通知机制由以下两部分组成:前向拥塞标识(FECN)和后向拥塞标识(BECN)
FECN前向拥塞标识和BECN都是由位于FR帧头部的比特位控制。除了FECN和BECN位之外,FR帧中还提供了一个可丢弃指示位(DE),用来标识当出现网络拥塞时可以丢弃的非重要数据。当DTE设备向FR网络发送数据时启动FECN机制。如果网络出现拥塞,DCE设备(例如交换机等)将会自动把帧的FECN位设定为1。当数据帧到达目标接收DTE设备时,通过分析地址域(包含已经设置为1的FECN位)就可以知道该帧是否在传输过程中经历网络拥塞。位于接收方的DTE设备会把收到的信息传递给高层协议以进行进一步的处理。根据不同的情况,启动流量控制机制或者忽略FECN前向拥塞标识位通知信息。当设置过FECN位的FR帧反向传输时,DCE设备会根据网络情况对BECN位进行设置以通知接收方,该数据帧在方向传输过程中是否遇到网络拥塞。DTE设备将上述信息传递给上层协议进行处理,根据不同的情况启动流量控制机制或忽略BECN位信息。
拥塞控制主要应用拥塞避免和拥塞恢复这两个机制。拥塞避免是在发生拥塞状态时,网络通过在用户数据帧中置位 BECN和FECN,对用户发出明确通知;如果此时用户有效地降低发向网络的业务量,就可缓解拥塞状态。网络使用FECN前向拥塞标识与BECN两个比特来通知终端站点拥塞的发生,当网络中帧流向相同方向发生拥塞时重置FECN比特;当网络中帧流向相反方向发生拥塞时,重置BECN比特。这样结果会导致这样一种情况,当传输在某条特定虚电路上是单向的话,只有接受方被通知到拥塞,而可能恰恰是发送方导致了拥塞。拥塞恢复是在用户设备不能有效地对BEDN/FECN进行反应,致使网络拥塞更趋严重时引发的,此时网络会首先丢弃DE比特置位的用户帧;如果仍不能缓和拥塞,则会丢弃Be数据乃至Bc数据。
FECN和BECN拥塞指示通常只由网络设置,而且一般在中等拥塞时设置,所以此时网络仍能传输帧,只有在严重拥塞时开始丢帧用户端。可以用地址字段中的DE比特给帧设定优先级,网络将先丢弃设置了DE比特的帧,但是标准中并不限制网络只丢弃设置DE比特的帧,只是假设,但并不强调终端站点在检测到网络拥塞之后,会减少自己的信息传输速率。
以上介绍的是带内拥塞控制方式,但帧中继标准内设计的这种带内拥塞信令限制了对拥塞的正确反应,阻止了更先进的拥塞控制模式的实现。因为带内帧中继拥塞控制方式依赖于送往目的地的数据中FECN前向拥塞标识比特的设置,然后请求发送方减慢。但是事实上所依赖的端到端的流赖量控制过程可能就不存在这种限制,于是ITU-T又制定了另一种可选的信令机制,那就是CLLM(Consolidate Link Layer Management,强化链路层管理)。
CLLM占用一个独立的DLCI,也就是带外的,允许网络传送控制消息至用户端。CLLM消息包含一个很可能导致拥塞的DLCI列表,希望通过限制指定的DLCI的数据传输来减轻终端站点的拥塞。对两字节地址字段的帧,CLLM消息使用DLCI 1007格式,而对于三字节、或四字节地址字段的帧,CLLM以LAPF XID帧格式发送C/R字段,置1指示一个响应。帧中继网络可能在一专用DLCI上发送显式拥塞控制消息,采用带外信令报告拥塞。除了从远端终端站点发出的帧和网络上发送的LMI(Local Management Interface,本地管理接口)消息以外,终端站点也可能收到网络产生的CLLM消息来报告拥塞。也可能用帧地址字段的比特采用带内信令报告拥塞,这样终端站点除了远端发出的帧和LMI消息外,不会收到别的帧。当网络发生拥塞时,网络既可以在用户的数据DLCI中置FECN/BECN比特,也可使用CLLM消息,还可以同时用。