1.8 公平算法 RPR采用共享带宽方式实现各节点对带宽资源的利用,当数据流量较小的情况下,RPR可以满足所有节点流量传输需求;但当流量较大时,往往会出现链路过载、流量拥塞的情况,流量对链路带宽占用需求不能得到完全满足。为了保证在拥塞或过载等情况下各节点能够公平地享用带宽,RPR为此提供了专门的公平算法,实现带宽的公平共享和调度。 1.8.1 基本原理 当某个节点发生拥塞,它将通过向传送数据相反方向的子环发送拥塞公告(Advertise),告知一个Advertise速率,上游节点利用Advertise速率,利用反压信号通知Host来调整其允许上环的速率,使得不超过拥塞节点Advertise速率,如果该节点也发生了拥塞,就以同样方式向其上游节点发送Advertise。 根据协议规定,要解决环路拥塞,必须满足两个条件: 1)bi / wi <= fairRate,其中fairRate公平帧传递的参数,bi为收到公平帧的站点发送数据的速率,wi为此站点在环路上的带宽权重; 2)∑bi<= LINK_RATE*(1 - fa),其中表达式左边为所有站点的上环速度之和,LINK_RATE为整个带宽大小,fa为站点预留的带宽百分比。 1.8.2 拥塞域 每一段拥塞域都包括拥塞起始节点(Head)和拥塞结束节点(Tail),在每一段拥塞域内,有不同的fairRate,每个节点都遵循bi / wi≤fairRate的规则。 拥塞尾节点是能够收到non-full通告但是不继续往上发送通告的站点,拥塞节点只要满足两个条件之一,就能成为尾节点: 1)上游站点收到下游站点发出公平帧的fairRate和自己发出公平帧的fairRate不相同 2)上游站点向上发出公平帧的fairRate等于FULL_RATE。 在评估站点发送流量时,需要考虑站点本身和拥塞点的情况,保证流量不超过允许的带宽。拥塞的头节点就是下游发生拥塞的第一个节点。
图 17 拥塞域 |