1.一种无损网络中避免队头阻塞和拥塞扩散的流量隔离方法,其特征在于,包括:交换机按以下步骤进行操作:
步骤S11,初始化链路基础往返延时RTT、链路带宽C、每条链路基础延时d、隔离阈值更新周期Tth、PFC触发阈值QPFC、隔离阈值Qth、隔离阈值更新周期的起始时间t;
步骤S12,交换机监听是否有新数据包到达,若有新数据包到达,转步骤S13;否则继续监听是否有新数据包到达;
步骤S13,获取交换机出端口队列长度,转步骤S14;
步骤S14,根据出端口队列长度判断该出端口的流是否为拥塞流,如是,则发送拥塞通告信息到上游交换机,转步骤S15;否则转步骤S15;
步骤S15,判断当前交换机是否收到拥塞通告信息,如果收到了拥塞通告信息,则转步骤S16;否则,转步骤S17;
步骤S16,判断当前数据包是否为拥塞流数据包,如果是,则设置当前数据包的目的出端口路径为隔离路径,并转发当前数据包到目的出端口,转步骤S12;否则,重路由当前数据包,即重新选择除了当前目的出端口之外的最短队列出端口作为转发出端口,转步骤S12;
步骤S17,判断是否收到非拥塞通告信息,如是,则解除当前隔离路径,并转发当前数据包到目的出端口,转步骤S12,否则,转发当前数据包到目的出端口,转步骤S12;
从步骤S12中监听到有新数据包到达至步骤S17执行前的任一时间,判断当前时间与隔离阈值更新周期的起始时间t的差值是否大于或等于隔离阈值更新周期Tth,若大于或等于隔离阈值更新周期Tth,则更新隔离阈值Qth,保证上游交换机在隔离操作前不触发PFC,且解除隔离后不出现链路为空的现象,并将隔离阈值更新周期的起始时间t设置为当前时间;
所述隔离阈值Qth的更新方法如下:
假设tp时刻的出端口队列长度为Q(tp),生成拥塞通告信息传送到上游交换机直至发送端,拥塞通告信息传输过程中,出端口队列仍然在增长,出端口队列最大增长到Q(tp+
2d),如下式(1):
其中,vi(t)为第i条流的发送速率;
为了保证拥塞通告信息传输过程中不触发PFC,tp时刻的出端口队列长度Q(tp)需满足如下式(2):其中,M是交换机出端口数量;
假设当出端口队列长度在时间tR降低到Q(tR),非拥塞通知从当前交换机发送到上游交换机直至发送端,恢复拥塞流的传输,在非拥塞通知传输的过程中,出端口队列仍然在继续减小,为了保证链路不为空,Q(tR)需要满足如下式(3):为了保证拥塞流的隔离机制在PFC触发前触发,且在出端口队列排空前恢复拥塞流的传输,更新后的隔离阈值Qth的取值范围需满足如下式(4):再以保守的方式取发送速率的最大值,即链路带宽C,进一步获取隔离阈值Qth的取值范围,因此更新后的隔离阈值Qth为:
2.根据权利要求1所述的无损网络中避免队头阻塞和拥塞扩散的流量隔离方法,其特征在于:还包括对发送端的控制,如果当前操作主体是发送端,则发送端按以下步骤进行操作:步骤S21,初始化流的发送速率以及拥塞流的数量N;
步骤S22,判断是否收到拥塞通告信息,如是,则将拥塞流的发送速率设置为目标速率,并按该目标速率发送数据包,转步骤S24,否则,转步骤S23;
步骤S23,按线速率转发数据包,转步骤S24;
步骤S24,判断数据包是否发送完毕,如是,则结束;否则转步骤S22。
3.根据权利要求2所述的无损网络中避免队头阻塞和拥塞扩散的流量隔离方法,其特征在于:在步骤S11中,初始化时链路基础往返延时RTT设置为50μs;链路带宽C设置为交换机出端口的带宽值;每条链路基础延时d设置为5μs;隔离阈值更新周期Tth设置为2RTT;PFC触发阈值QPFC设置为256KB;隔离阈值Qth、隔离阈值更新周期的起始时间t都设置为0。
4.根据权利要求3所述的无损网络中避免队头阻塞和拥塞扩散的流量隔离方法,其特征在于:在步骤S14中,判断出端口队列长度是否大于或等于隔离阈值Qth,如果是,则到该出端口的流都为拥塞流。
5.根据权利要求4所述的无损网络中避免队头阻塞和拥塞扩散的流量隔离方法,其特征在于:所述拥塞通告信息携带拥塞流号和拥塞流的数量N。
6.根据权利要求5所述的无损网络中避免队头阻塞和拥塞扩散的流量隔离方法,其特征在于:在步骤S16中,到拥塞出端口的所有流均为拥塞流,根据当前到达的数据包包头的五元组信息:源IP地址、源端口、目的IP地址、目的端口、传输层协议来判断该数据包是否属于拥塞流的数据包。
7.根据权利要求6所述的无损网络中避免队头阻塞和拥塞扩散的流量隔离方法,其特征在于:在步骤S21中,初始化时流的发送速率设置为链路带宽C,拥塞流的数量N设置为0。
8.根据权利要求7所述的无损网络中避免队头阻塞和拥塞扩散的流量隔离方法,其特征在于:在步骤S22中,所述目标速率为按拥塞流的数量N均分链路带宽C,即目标速率的值为C/N。