CN103414650B - 一种避免拥塞的路由方法和装置 - Google Patents

一种避免拥塞的路由方法和装置 Download PDF

Info

Publication number
CN103414650B
CN103414650B CN201310323965.XA CN201310323965A CN103414650B CN 103414650 B CN103414650 B CN 103414650B CN 201310323965 A CN201310323965 A CN 201310323965A CN 103414650 B CN103414650 B CN 103414650B
Authority
CN
China
Prior art keywords
network element
optimal path
data stream
stream
congested
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310323965.XA
Other languages
English (en)
Other versions
CN103414650A (zh
Inventor
洪佩琳
朱超
周伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Huawei Technologies Co Ltd
Original Assignee
Shanghai Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Huawei Technologies Co Ltd filed Critical Shanghai Huawei Technologies Co Ltd
Priority to CN201310323965.XA priority Critical patent/CN103414650B/zh
Publication of CN103414650A publication Critical patent/CN103414650A/zh
Application granted granted Critical
Publication of CN103414650B publication Critical patent/CN103414650B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种避免拥塞的路由方法和装置,其中,该方法包括:接收网络中各第一网元发送的LSA报文;构造出全局网络拓扑图;接收网络中各第一网元发送的NCA报文;获取全局拥塞信息;获取每个节点去往网络中其它节点的最优路径;获取所述最优路径允许的最大流入速率;根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,并发送给对应第一网元,使得所述第一网元根据所述转发策略获取流表表项,并存储。从而避免了拥塞,提高数据传输效率。

Description

一种避免拥塞的路由方法和装置
技术领域
本发明涉及通信技术领域,特别涉及一种避免拥塞的路由方法和装置。
背景技术
随着互联网规模的增长,互联网上的用户和应用都在快速的增长,拥塞已经成为一个十分重要的问题。近年来,在拥塞控制领域开展了大量的研究工作,拥塞算法可以分为两个主要部分,即:在端***上使用的源算法和在网络设备上使用的链路算法。
源算法可以理解为,在发生拥塞时,在源端降低发送数据的速率,从而使得大量的连接能够共享链路。通过源端对网络当前状态的感知和探测来响应调整发生分组的窗口大小,毋庸置疑,该算法提供的可扩展性促进了互联网早期的快速发展。随着技术的发展,对网络中的节点所发挥的作用的认知逐渐深入,由此提出了队列管理算法。队列管理算法是通过管理路由队列长度对每个队列设置一个最大值,然后接收包进入队列直到队列长度达到最大值,后续到达的数据包将被丢弃,即弃尾算法(DT,Drop Tail)。
现有技术中还提出了主动队列管理机制(AQM,Active QueueManagement),其中,早期随机丢弃(RED,Random Early Detection)是基于队列长度的AQM中最有代表性的方案。RED算法通过检测中间节点的平均队列长度q来检测网络拥塞,并通过以一定的概率丢弃分组来通知TCP发送方发生拥塞。RED算法中的分组丢弃概率是一个关于q的函数,它通过将接收到的数据包限制在一定水平以下,可以避免突发式连续丢弃来自同一个连接的数据包。如下式子(1)所示:
P = 0 , q &le; q min P max q - q min q max - q min , q min < q < q max 1 , q max < q - - - ( 1 )
其中,qmin,qmax,是队列的最小阈值和最大阈值,通过公式(1)就可以计算出分组丢弃的概率。如图1所示,RED算法的丢弃概率随平均队列长度的变化满足分段线性关系。
从上述现有解决拥塞问题的技术方案来看,弃尾算法这种简单的避免拥塞的方法,在网络中会发生同步丢包的现象,各数据流受到DT算法的影响,不断的增大和减小窗口,从而导致网络周期性的在拥塞和空闲两种状态之间摇摆,造成链路利用率的下降。AQM算法可以避免网络中同步丢包现象,但是这种算法在网络未发生拥塞时就提前开始丢包会造成网络资源的浪费。
因此,现有技术不能提供一种更合理,更优化的技术方案。
发明内容
本发明实施例提供一种避免拥塞的路由方法和装置,充分利用节点的队列缓存,同时又可以避免拥塞丢包现象,从源端解决网络拥塞的问题。
第一方面,提供了一种避免拥塞的路由方法,包括:
第一网元获取邻居节点信息,根据获取的邻居节点信息生成链路状态公告LSA报文,并将LSA报文发送给控制器;
所述第一网元获取拥塞状态公告NCA报文,将所述NCA报文发送给所述控制器,其中,所述NCA报文中包括有所述第一网元的拥塞信息。
在第一种可能的实现方式中,根据第一方面,所述第一网元的拥塞信息具体由所述第一网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内第一网元的个数,pj,i表示数据流从第一网元j进入第一网元i的最大允许进入速率,其中,第一网元i为所述方法执行主体的第一网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从第一网元j进入第一网元i的数据流速率;λi表示所有进入第一网元i的速率之和,取值为ui表示所有离开第一网元i的数据流速率之和,取值为qi表示第一网元的队列长度,当λi≥μi,且qi大于等于第一网元长度的门限阈值Qth时,所述第一网元处于拥塞状态。
在第二种可能的实现方式中,结合第一方面或第一种可能的实现方式,所述方法还包括:
所述第一网元发送进入和离开所述第一网元的数据流速率的数值,所述进入和离开所述第一网元的数据流速率的数值,用于控制器中获取构造当数据流为UDP数据流时丢包概率ρi的策略。
第二方面,提供了一种避免拥塞的路由方法,包括:
接收网络中各第一网元发送的LSA报文;根据所述LSA报文,构造出全局网络拓扑图;
接收网络中各第一网元发送的NCA报文;根据所述NCA报文,获取全局拥塞信息;
根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;
根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径允许的最大流入速率;
根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;
根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,根据所述转发策略获取流表表项,并发送给对应第一网元;
其中,根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当所述获取的最优路径中如果有第一网元处于拥塞状态时,要求所述获取的最优路径的源节点第一网元将接收的数据流分为两支数据流,其中,一支数据流以速率为所述获取的最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以接收的数据流的速率v,与所述获取的最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发。
在第一种可能的实现方式中,根据第二方面,根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,还具体包括:
当所述获取的最优路径的源节点第一网元中接收的数据流的速率v小于所述获取的最优路径所允许的最大流入速率,将所述数据流以速率为所述获取的最优路径所允许的最大流入速率,按照所述获取的最优路径转发。
在第二种可能的实现方式中,根据第一方面,或者第一方面的第一种可能的实现方式,每个NCA报文中包括一个第一网元的拥塞信息,所述第一网元的拥塞信息具体由所述第一网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内第一网元的个数,pj,i表示数据流从第一网元j进入第一网元i的最大允许进入速率,其中,第一网元i为所述方法执行主体的第一网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从第一网元j进入第一网元i的数据流速率;λi表示所有进入第一网元i的速率之和,取值为ui表示所有离开第一网元i的数据流速率之和,取值为qi表示第一网元的队列长度,当λi≥μi,且qi大于等于第一网元长度的门限阈值Qth时,所述第一网元处于拥塞状态;
根据所述NCA报文,获取全局拥塞信息,具体包括:
根据所述NCA报文中包括的第一网元的拥塞信息,构造出全局拥塞速率矩阵P,即:
P=[P1 ... Pi ... Pn]
其中,n表示区域内第一网元的个数,Pi为所述第一网元的拥塞速率矩阵。
在第三种可能的实现方式中,结合第二种可能的实现方式,所述根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径所允许的最大流入速率,具体包括:
从全局拥塞信息中和所述获取的最优路径中,获取所述获取的最优路径中前一跳ki-1到下一跳ki的最大允许进入速率
获取所述获取的最优路径中最小的最大允许进入速率,作为所述获取的最优路径所允许的最大流入速率p,即其中,S为所述获取的最优路径的源节点,D为所述获取的最优路径的目的节点。
在第四种可能的实现方式中,结合第二方面,第二方面第一中可能的实现方式至第二方面第三中可能的实现方式,任意一种,所述根据获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体为:
根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取当第一网元中接收的数据流为TCP数据流时的转发策略。
在第五种可能的实现方式中,结合第二方面,所述方法还包括:
接收各第一网元发送的进入和离开各第一网元的数据流速率;
所述根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径之后,所述方法还包括:
当第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略;
根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当第一网元中接收的数据流为UDP数据流时的转发策略;
将所述当第一网元中接收的数据流为UDP数据流时的转发策略,制作为流表表项,发送给所述对应的第一网元。
在第六种可能的实现方式中,结合第二方面第五种可能的实现方式,所述当第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略,具体包括:
以如下公式作为当第一网元中接收的数据流为UDP数据流时的丢包概率ρi的策略:
&rho; i = 0 , q i < Q th ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q th &le; q i < Q max ; 1 , q i &GreaterEqual; Q max ;
其中,λi、ui分别为所述第一网元上报的进入和离开第一网元i的数据流速率,qi为第一网元i的队列长度,Qth为第一网元i的门限阈值长度,Qmax为第一网元i的最大允许队列长度;
所述根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应第一网元中接收的数据流为UDP数据流时的转发策略,具体包括:
当第一网元的队列长度小于门限阈值长度时,所有UDP数据包都以所述获取的最优路径转发;
当第一网元的队列长度大于等于门限阈值长度并小于最大允许队列长度,且第一网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以所述获取的最优路径转发;
当第一网元的队列长度大于其最大允许队列长度时,所有进入所述第一网元的UDP数据包都将被丢弃。
第三方面,提供一种避免拥塞的路由方法,包括:
接收数据流;根据存储的流表表项,将所述接收的数据流分为两支数据流转发,
其中,一支数据流以速率为所述流表表项中记录的最优路径允许的最大流入速率,按照所述流表表项中记录的最优路径转发;
另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发。
在第一种可能的实现方式中,根据第三方面,所述另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发,之前,所述方法还包括:
对于以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,转发的另一支数据流,在所述另一支数据流的数据包头部设置标示,用于区分该数据流是拥塞分流的数据流。
在第二种可能的实现方式中,根据第三方面,所述方法还包括:
若所述流表表项中记录的所述最优路径处于非拥塞状态,按照所述流表表项中记录的最优路径转发所述数据流。
在第三种可能的实现方式中,结合第三方面或第一种可能的实现方式或第二种可能的实现方式,所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发之前,所述方法还包括:
判断所述接收的数据流是否为TCP数据流,如果是TCP数据流,执行所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发。
在第四种可能的实现方式中,结合第三方面第三种可能的实现方式,所述方法还包括:
当判断所述接收的数据流不是TCP数据流时,根据所述流表表项中记录执行转发,具体包括:
当所述第一网元中数据包的队列长度大于等于门限阈值长度,并小于最大允许队列长度,且所述第一网元的进入速率大于离开速率时,以ρi的概率丢包,剩余的UDP数据包以流表表项中记录的最优路径转发;其中,ρi为所述流表表项中记录第一网元i的丢包概率;
当第一网元的队列长度大于其最大允许队列长度时,所有进入所述第一网元的UDP数据包都将被丢弃。
第四方面,提供了一种网元,所述网元包括:第一获取单元,第一发送单元,第二获取单元,和第二发送单元;
所述第一获取单元,用于获取邻居节点信息,根据获取的邻居节点信息生成链路状态公告LSA报文;
所述第一发送单元,用于将LSA报文发送给控制器;
所述第二获取单元,用于获取拥塞状态公告NCA报文,其中,所述NCA报文中包括有所述网元的拥塞信息;
所述第二发送单元,用于将所述NCA报文发送给所述控制器。
在第一种可能的实现方式中,根据第四方面,所述网元的拥塞信息具体由所述网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内网元的个数,pj,i表示数据流从网元j进入网元i的最大允许进入速率,其中,网元i为所述方法执行主体的网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从网元j进入网元i的数据流速率;λi表示所有进入网元i的速率之和,取值为ui表示所有离开网元i的数据流速率之和,取值为qi表示网元的队列长度,当λi≥μi,且qi大于等于网元长度的门限阈值Qth时,所述网元处于拥塞状态。
在第二种可能的实现方式中,结合第四方面,或者第一种可能的实现方式,所述第二发送单元,还用于发送进入和离开所述网元的数据流速率的数值,所述进入和离开所述网元的数据流速率的数值,用于控制器中获取构造当数据流为UDP数据流时丢包概率ρi的策略。
第五方面,提供了一种控制器,所述控制器包括:
第一接收单元,第一构造单元,第二接收单元,第三获取单元,第四获取单元,第五获取单元,第六获取单元,第七获取单元,第三发送单元;
所述第一接收单元,用于接收网络中各第一网元发送的LSA报文;
所述第一构造单元,用于根据所述LSA报文,构造出全局网络拓扑图;
所述第二接收单元,用于接收网络中各第一网元发送的NCA报文;
所述第三获取单元,用于根据所述NCA报文,获取全局拥塞信息;
所述第四获取单元,用于根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;
所述第五获取单元,用于根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径允许的最大流入速率;
所述第六获取单元,用于根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;
所述第七获取单元,用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,根据所述转发策略获取流表表项;
其中,根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当获取的最优路径中如果有第一网元处于拥塞状态时,要求所述获取的最优路径的源节点第一网元将接收的数据流分为两支数据流,其中,一支数据流以速率为所述获取的最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以接收的数据流的速率v,与所述获取的最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发;
所述第三发送单元,用于将获取的所述流表表项发送给所述第一网元。
在第一种可能的实现方式中,根据第五方面,所述第七获取单元中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,还具体包括:
当所述获取的最优路径的源节点第一网元接收的数据流的速率v小于所述获取的最优路径所允许的最大流入速率,将所述数据流以速率为所述获取的最优路径所允许的最大流入速率,按照所述获取的最优路径转发。
在第二种可能的实现方式中,结合第五方面,第二接收单元中接收的每个NCA报文中包括一个第一网元的拥塞信息,所述第一网元的拥塞信息具体由所述第一网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内第一网元的个数,pj,i表示数据流从第一网元j进入第一网元i的最大允许进入速率,其中,第一网元i为所述方法执行主体的第一网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从第一网元j进入第一网元i的数据流速率;λi表示所有进入第一网元i的速率之和,取值为ui表示所有离开第一网元i的数据流速率之和,取值为qi表示第一网元的队列长度,当λi≥μi,且qi大于等于第一网元长度的门限阈值Qth时,所述第一网元处于拥塞状态;
第三获取单元中用于根据所述NCA报文,获取全局拥塞信息,具体包括:
根据所述NCA报文中包括的第一网元的拥塞信息,构造出全局拥塞速率矩阵P,即:
P=[P1 ... Pi ... Pn]
其中,n表示区域内第一网元的个数,Pi为所述第一网元的拥塞速率矩阵。
在第三种可能的实现方式中,结合第二种可能的实现方式,所述第五获取单元中,用于根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径所允许的最大流入速率,具体包括:
从全局拥塞信息中和所述获取的最优路径中,获取所述获取的最优路径中前一跳ki-1到下一跳ki的最大允许进入速率
获取所述获取的最优路径中最小的最大允许进入速率,作为所述获取的最优路径所允许的最大流入速率p,即其中,S为所述获取的最优路径的源节点,D为所述获取的最优路径的目的节点。
在第四种可能的实现方式中,结合第五方面或第一种可能的实现方式至第三种可能的实现方式的任意一种,所述第七获取单元中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体为:
所述根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取当对应第一网元中接收的数据流为TCP数据流时的转发策略。
在第五种可能的实现方式中,结合第五方面,所述第二接收单元,还用于接收各第一网元发送的进入和离开各第一网元的数据流速率;
所述控制器还包括:
第二构造单元和第四发送单元;
所述第二构造单元,用于在所述第四获取单元根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径之后,当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略;
所述第四发送单元,用于将所述当对应第一网元中接收的数据流为UDP数据流时的转发策略,制作为流表表项,发送给所述对应的第一网元。
在第六种可能的实现方式中,结合第五方面第五种可能的实现方式,所述第二构造单元中用于当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略,具体包括:
以如下公式作为当对应第一网元中接收的数据流为UDP数据流时的丢包概率ρi的策略:
&rho; i = 0 , q i < Q th ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q th &le; q i < Q max ; 1 , q i &GreaterEqual; Q max ;
其中,λi、ui分别为所述第一网元上报的进入和离开第一网元i的数据流速率,qi为第一网元i的队列长度,Qth为第一网元i的门限阈值长度,Qmax为第一网元i的最大允许队列长度;
所述根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应第一网元中接收的数据流为UDP数据流时的转发策略,具体包括:
当第一网元的队列长度小于门限阈值长度时,所有UDP数据包都以所述获取的最优路径转发;
当第一网元的队列长度大于等于门限阈值长度并,小于最大允许队列长度且第一网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以所述获取的最优路径转发;
当第一网元的队列长度大于其最大允许队列长度时,所有进入所述第一网元的UDP数据包都将被丢弃。
第六方面,提供了一种网元,所述网元包括:第四接收单元,和第一转发单元;
所述第四接收单元,用于接收数据流;
所述第一转发单元,用于根据存储的流表表项,将所述接收的数据流分为两支数据流转发;其中,一支数据流以速率为所述流表表项中记录的最优路径允许的最大流入速率,按照所述流表表项中记录的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发。
在第一种可能的实现方式中,根据第六方面,所述网元还包括:标示单元,
所述标示单元,用于所述第一转发单元在按照所述流表表项中记录的非拥塞时的最优路径转发之前,对于以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,转发的另一支数据流,在所述另一支数据流的数据包头部设置标示,用于区分该数据流是拥塞分流的数据流。
在第二种可能的实现方式中,根据第六方面,所述网元,还包括:第二转发单元,
所述第二转发单元,用于若所述流表表项中记录的所述最优路径处于非拥塞状态,按照所述流表表项中记录的最优路径转发所述数据流。
在第三种可能的实现方式中,结合第六方面或者第一种可能的实现方式,或者第二种可能的实现方式,所述网元还包括:第二判断单元,
所述第二判断单元,用于在所述第一转发单元根据存储的流表表项,将所述接收的数据流分为两支数据流转发之前,判断所述接收的数据流是否为TCP数据流;
所述第一转发单元,还用于如果是TCP数据流,执行所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发。
在第四种可能的实现方式中,结合第六方面第三中可能的实现方式,所述网元还包括:第三转发单元,
所述第三转发单元,用于当判断所述接收的数据流不是TCP数据流时,根据所述流表表项中记录执行转发,具体包括:
当所述网元中数据包的队列长度大于等于门限阈值长度,并小于最大允许队列长度;且所述网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以流表表项中记录的最优路径转发;其中,ρi为所述流表表项中记录网元i的丢包概率;
当网元的队列长度大于其最大允许队列长度时,所有进入所述网元的UDP数据包都将被丢弃。
第七方面,提供了一种网元,所述网元包括分别连接到总线上的输入装置,输出装置,存储器和处理器;
所述处理器,用于根据从输入装置获取的邻居节点信息,根据获取的邻居节点信息生成链路状态公告LSA报文;从输入装置获取拥塞状态公告NCA报文,其中,所述NCA报文中包括有所述网元的拥塞信息;
所述输出装置,用于将LSA报文发送给控制器;将所述NCA报文发送给所述控制器。
在第一种可能的实现方式中,根据第七方面,所述网元的拥塞信息具体由所述网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内网元的个数,pj,i表示数据流从网元j进入网元i的最大允许进入速率,其中,网元i为所述方法执行主体的网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从网元j进入网元i的数据流速率;λi表示所有进入网元i的速率之和,取值为ui表示所有离开网元i的数据流速率之和,取值为qi表示网元的队列长度,当λi≥μi,且qi大于等于网元长度的门限阈值Qth时,所述网元处于拥塞状态。
在第二种可能的实现方式中,根据第七方面或者第七方面第一种可能的实现方式,所述输出装置,还用于发送进入和离开所述网元的数据流速率的数值,所述进入和离开所述网元的数据流速率的数值,用于控制器中获取构造当数据流为UDP数据流时丢包概率ρi的策略。
第八方面,提供了一种控制器,所述控制器包括分别连接到总线上的输入装置,输出装置,存储器和处理器;
所述输入装置,用于接收网络中各第一网元发送的LSA报文;接收网络中各第一网元发送的NCA报文;
所述处理器,用于根据所述LSA报文,构造出全局网络拓扑图;根据所述NCA报文,获取全局拥塞信息;根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径允许的最大流入速率;根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,根据所述转发策略获取流表表项;
其中,根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当获取的最优路径中如果有第一网元处于拥塞状态时,要求所述获取的最优路径的源节点第一网元将接收的数据流分为两支数据流,其中,一支数据流以速率为所述获取的最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以接收的数据流的速率v,与所述获取的最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发;
所述输出装置,用于将获取的所述流表表项发送给所述第一网元。
在第一种可能的实现方式中,根据第八方面,所述处理器中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,还具体包括:
当所述获取的最优路径的源节点第一网元接收的数据流的速率v小于所述获取的最优路径所允许的最大流入速率,将所述数据流以速率为所述获取的最优路径所允许的最大流入速率,按照所述获取的最优路径转发。
在第二种可能的实现方式中,结合第一种可能的实现方式,所述输入装置中接收的每个NCA报文中包括一个第一网元的拥塞信息,所述第一网元的拥塞信息具体由所述第一网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内第一网元的个数,pj,i表示数据流从第一网元j进入第一网元i的最大允许进入速率,其中,第一网元i为所述方法执行主体的第一网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从第一网元j进入第一网元i的数据流速率;λi表示所有进入第一网元i的速率之和,取值为ui表示所有离开第一网元i的数据流速率之和,取值为qi表示第一网元的队列长度,当λi≥μi,且qi大于等于第一网元长度的门限阈值Qth时,所述第一网元处于拥塞状态;
所述处理器中用于根据所述NCA报文,获取全局拥塞信息,具体包括:
根据所述NCA报文中包括的第一网元的拥塞信息,构造出全局拥塞速率矩阵P,即:
P=[P1 ... Pi ... Pn]
其中,n表示区域内第一网元的个数,Pi为所述第一网元的拥塞速率矩阵。
在第三种可能的实现方式中,结合第八方面第二种可能的实现方式,所述处理器中,用于根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径所允许的最大流入速率,具体包括:
从全局拥塞信息中和所述获取的最优路径中,获取所述获取的最优路径中前一跳ki-1到下一跳ki的最大允许进入速率
获取所述获取的最优路径中最小的最大允许进入速率,作为所述获取的最优路径所允许的最大流入速率p,即其中,S为所述获取的最优路径的源节点,D为所述获取的最优路径的目的节点。
在第四种可能的实现方式中,结合第八方面或第一种可能的实现方式至第三种可能的实现方式任意一种,所述处理器中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体为:
所述根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取当对应第一网元中接收的数据流为TCP数据流时的转发策略。
在第五种可能的实现方式中,结合第八方面第四种可能的实现方式,所述输入装置,还用于接收各第一网元发送的进入和离开各第一网元的数据流速率;
所述处理器还用于:
在根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径之后,当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略;
将所述当对应第一网元中接收的数据流为UDP数据流时的转发策略,制作为流表表项,发送给所述对应的第一网元。
在第六种可能的实现方式中,结合第八方面第五种可能的实现方式,所述处理器中用于当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略,具体包括:
以如下公式作为当对应第一网元中接收的数据流为UDP数据流时的丢包概率ρi的策略:
&rho; i = 0 , q i < Q th ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q th &le; q i < Q max ; 1 , q i &GreaterEqual; Q max ;
其中,λi、ui分别为所述第一网元上报的进入和离开第一网元i的数据流速率,qi为第一网元i的队列长度,Qth为第一网元i的门限阈值长度,Qmax为第一网元i的最大允许队列长度;
所述根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应第一网元中接收的数据流为UDP数据流时的转发策略,具体包括:
当第一网元的队列长度小于门限阈值长度时,所有UDP数据包都以所述获取的最优路径转发;
当第一网元的队列长度大于等于门限阈值长度并,小于最大允许队列长度且第一网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以所述获取的最优路径转发;
当第一网元的队列长度大于其最大允许队列长度时,所有进入所述第一网元的UDP数据包都将被丢弃。
第九方面,提供了一种网元,所述网元包括分别连接到总线上的输入装置,输出装置,存储器和处理器;
所述输入装置,用于接收数据流;
所述处理器,用于根据存储的流表表项,将所述接收的数据流分为两支数据流转发;其中,一支数据流以速率为所述流表表项中记录的最优路径允许的最大流入速率,按照所述流表表项中记录的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发。
在第一种可能的实现方式中,根据第九方面,所述处理器,还用于所述第一转发单元在按照所述流表表项中记录的非拥塞时的最优路径转发之前,对于以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,转发的另一支数据流,在所述另一支数据流的数据包头部设置标示,用于区分该数据流是拥塞分流的数据流。
在第二种可能的实现方式中,结合第九方面第一种可能的实现方式,所述处理器,还用于若所述流表表项中记录的所述最优路径处于非拥塞状态,按照所述流表表项中记录的最优路径转发所述数据流。
在第三种可能的实现方式中,结合第九方面或者第一种可能的实现方式或者第二种可能的实现方式,其特征在于,所述处理器,还用于在所述第一转发单元根据存储的流表表项,将所述接收的数据流分为两支数据流转发之前,判断所述接收的数据流是否为TCP数据流;
所述处理器,还用于如果是TCP数据流,执行所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发。
在第四种可能的实现方式中,结合第三种可能的实现方式,所述处理器,还用于当判断所述接收的数据流不是TCP数据流时,根据所述流表表项中记录执行转发,具体包括:
当所述网元中数据包的队列长度大于等于门限阈值长度,并小于最大允许队列长度;且所述网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以流表表项中记录的最优路径转发;其中,ρi为所述流表表项中记录网元i的丢包概率;
当网元的队列长度大于其最大允许队列长度时,所有进入所述网元的UDP数据包都将被丢弃。
本发明实施例提供一种避免拥塞的路由方法和装置,该方案中控制器根据从网络中各交换机获取LSA报文和NCA报文,构造出全局网络拓扑图和全局拥塞信息,根据全局网络拓扑图和全局拥塞信息,构造出交换机在处于拥塞状态下的两条路径,即将拥塞的数据流分为两条数据流传输,一条数据流以原先路径可承受速率,按照该原先路径传输,分流的另一条数据流以非拥塞状态下的最优路径传输。从而避免的现有技术丢弃数据包的导致传输效率不佳的问题,大大提高了传输效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中RED算法的丢弃概率分段线性关系示意图;
图2是SDN网络中Open Flow交换机与控制器之间报文转发示意简图;
图3是Open Flow交换机中存储的流表示意简图;
图4是一种SDN网络示意简图;
图5是本发明实施例提供一提供的一种避免拥塞的路由方法流程简图;
图6是本发明实施例提供二提供的一种避免拥塞的路由方法流程简图;
图7是本发明实施例提供四提供的一种避免拥塞的路由方法流程简图;
图8a是本发明实施例提供五提供的一种避免拥塞的路由方法流程部分简图;
图8b是本发明实施例提供五提供的一种避免拥塞的路由方法流程部分简图;
图9是每个交换机发送给控制器的LSB报文示意简图;
图10是每个交换机发送给控制器的NCA报文示意简图;
图11是底层全局网络拓扑图示意简图;
图12是控制器构造非拥塞网络的从源节点到目的节点的最优路径示意简图;
图13是交换机中流表表项示意简图;
图14是交换机中区分TCP数据流和UDP数据流的流表表项示意简图;
图15是本发明实施例六提供的一种网元示意简图;
图16是本发明实施例七提供的一种控制器示意简图;
图17是本发明实施例九提供的一种网元示意简图;
图18是本发明实施例十提供的一种网元示意简图;
图19是本发明实施例十一提供的一种控制器示意简图;
图20是本发明实施例十二提供的一种网元示意简图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在对本发明实施例提供的技术方案进行详细说明之前,对本方案适用的软件定义网络(SDN,Software Defined Networking)进行说明,SDN是针对现有网络设备和架构的一场变革,其核心理念是网络转发与网络控制的分离。开放流(Open Flow)可以看作SDN思想一种具体实现方式。如图2所示,Open Flow将完全由交换机和路由器控制的报文转发过程,转化为由Open Flow交换机(Open Flow Switch)和控制器(Controller)来共同完成,从而实现了数据转发和路由控制的分离。控制器可以通过事先规定好的接口操作来控制Open Flow交换机中的流表(如图3所示流表示意简图),从而达到控制数据转发的目的。
如图4所示,一种SDN网络,包括一个控制器和多个交换机。每一个交换机都通过安全通道(如图2中虚线箭头)与控制器连接。交换机负责查询流表并转发数据,控制器负责监控网络并构造流表。数据流流经如图2所示的区域网络时,在每个交换机处,查询交换机内的流表,如果该数据流没有注册过,则交换机将该数据流信息(主要是数据流头部信息)发送给控制器,由控制器为该流生成转发策略,并根据转发策略制作流表表项;如果该数据流与交换机中的流表匹配,则交换机按照流表的动作将该数据流进行相关操作。需要理解的是,图4所示的SDN网络架构下的区域网络并非对本发明实施例的限制,仅是便于理解的一种说明,本发明实施例提供的技术方案还可以无差别的推广到各种类型的SDN网络中。
下面结合具体的实施例对本发明实施例提供的技术方案做详细说明。
实施例一
本发明实施例提供了一种避免拥塞的路由方法,该方法是从网络中每个交换机的角度撰写的操作过程,其中,本实施例所说的设备并不限制是交换机,也可以以第一网元作为执行主体,该第一网元可以是交换机,也可以是网络节点,或者一种控制器等等,此处不应该理解为对本发明实施例的现在,文中其他实施例都有类似的理解。
如图5所示,该方法包括:
步骤101,交换机获取邻居节点信息,根据获取的邻居节点信息生成链路状态公告LSA报文;并将LSA报文发送给控制器;
其中,网络中每个交换机定期,或者当邻居节点有变化时,将于自身的邻居节点信息通过LSA报文,发送给控制器,用于控制器根据各交换机的邻居节点信息,构造出全局网络拓扑图;以及,用于控制器在将拥塞的交换机(或者节点)去除后,构造非拥塞状态下的网络拓扑图。
步骤102,交换机获取拥塞状态公告NCA报文,将所述NCA报文发送给所述控制器,其中,所述NCA报文中包括有所述交换机的拥塞信息。
需要理解的是,网络中每个交换机发送的NCA报文中包括的交换机的拥塞信息,用于控制器中获取到全局拥塞信息,便于后续控制器对路由转发的控制。
其中,交换机的拥塞信息具体由所述交换机的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内交换机的个数,pj,i表示数据流从交换机j进入交换机i的最大允许进入速率,其中,交换机i为所述方法执行主体的交换机;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从交换机j进入交换机i的数据流速率;λi表示所有进入交换机i的速率之和,取值为ui表示所有离开交换机i的数据流速率之和,取值为qi表示交换机的队列长度,当λi≥μi,且qi大于等于交换机长度的门限阈值Qth时,所述交换机处于拥塞状态,如上式所示,当交换机处于拥塞状态下,其最大允许进入速率pj,i上报给控制,告知控制器,该交换机处于拥塞状态。
通过上述本实施例一说明的一种避免拥塞的路由方法,该方案中网络中的交换机将自身的邻居节点信息和自身拥塞信息,分别通过LSA和NCA发送给控制器,由控制器对网络中各交换机统一管理,构造出全局网络拓扑图,和全局拥塞信息,使得控制器根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;根据所述全局拥塞信息,和所述最优路径,获取所述最优路径允许的最大流入速率;根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,并制作流表表项,将流表表项发送给对应交换机,使得所述交换机获取流表表项,并存储;其中,根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当所述对应交换机中接收的数据流的速率v大于所述最优路径所允许的最大流入速率,则将所述接收的数据流分为两支数据流,其中,一支数据流以速率为所述最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发。
因此,本实施例说明的方法,与现有技术相比,避免如弃尾算法中简单的丢弃超过队列最大门限长度的数据包,也克服了在网络未发生拥塞时就提前开始丢包会造成网络资源的浪费的问题,提供了一种更合理的避免拥塞的方法,从而保证数据传输的质量,为用户提供更高效率的服务。
优选的,该方法还可以包括:第一网元发送进入和离开所述交换机的数据流速率的数值,该进入和离开所述第一网元的数据流速率的数值,用于控制器中获取构造当数据流为UDP数据流时丢包概率ρi的策略。
实施例二
本发明实施例提供一种避免拥塞的路由方法,该方法与上述实施例一中说明的方法,分别是基于不同的执行主体,该实施例中以控制器为执行主体,为各交换机统筹转发策略,将转发策略制作成流表表项,发送给各交换机,作为交换机中流表表项。交换机利用控制器的转发控制,可以有效的避免拥塞,同时有保证数据的有效传输。
该方法的详细说明,参考附图6所示,该方法包括:
步骤201,接收网络中各交换机发送的LSA报文;根据所述LSA报文,构造出全局网络拓扑图;
步骤202,接收网络中各交换机发送的NCA报文;根据所述NCA报文,获取全局拥塞信息;
其中,每个交换机发送的NCA报文中包括的拥塞信息,具体可以参考上述实施例一中步骤102中拥塞速率矩阵Pi的说明。在控制器获取到各交换机的拥塞速率矩阵Pi,构造出全局拥塞速率矩阵P,即:
P=[P1 ... Pi ... Pn]
其中,n表示区域内交换机的个数,Pi为所述交换机的拥塞速率矩阵。
步骤203,根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;
步骤204,根据所述全局拥塞信息,和所述最优路径,获取所述最优路径允许的最大流入速率;
需要说明的是,步骤204可以具体包括:
从全局拥塞信息中和所述最优路径中,获取所述最优路径中前一跳ki-1到下一跳ki的最大允许进入速率
获取所述最优路径中最小的最大允许进入速率,作为所述最优路径所允许的最大流入速率p,即其中,S为所述最优路径的源节点,D为所述最优路径的目的节点。
步骤205,根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;
步骤206,根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略;其中,根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当最优路径中如果有交换机处于拥塞状态时,要求该最优路径的源节点交换机将所述接收的数据流分为两支数据流,其中,一支数据流以速率为所述最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发。
其中,需要理解的,当路径上有交换机处于拥塞状态,则可以理解为该路径拥塞,因此,最优路径中的各交换机已经将其各自的拥塞信息上报给交换机,因此,控制器在获取到最优路径后,对于最优路径上的处于拥塞的交换机时显然可知的,若最优路径上有交换机处于拥塞状态,则控制器可知该最优路径处于拥塞,则将输入的数据流分为两路转发。
步骤207,根据上述转发策略构造流表表项,并发送给对应交换机,使得所述交换机取流表表项,并存储。其中,所述对应交换机可以是最优路径的源节点交换机,也包括网络中所有的交换机,当交换机不是最优路径的源节点交换机时,该交换机不执行分流数据流的任务,而是执行转发数据流到下一跳。对于本实施例中,最优路径的源节点交换机,主要根据控制器构造的流表表项,执行分流数据流并转发的操作,其他交换机仅执行转发操作。
通过上述对本发明实施例二的说明,该方案中控制器根据从网络中各交换机获取LSA报文和NCA报文,构造出全局网络拓扑图和全局拥塞信息,根据全局网络拓扑图和全局拥塞信息,构造出交换机在处于拥塞状态下的两条路径,即将拥塞的数据流分为两条数据流传输,一条数据流以原先路径可承受速率,按照该原先路径传输,分流的另一条数据流以非拥塞状态下的最优路径传输。从而避免的现有技术丢弃数据包的导致传输效率不佳的问题,大大提高了传输效率。
优选的,上述步骤206中根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,还具体包括:
步骤206a,当所述最优路径的源节点交换机中接收的数据流的速率v小于所述最优路径所允许的最大流入速率,将所述数据流以速率为所述最优路径所允许的最大流入速率,按照所述获取的最优路径转发。
上述增加的控制器生成的转发策略,并根据转发策略制作流表表项,其作用是当交换机未出现拥塞状况时,就依照根据全局拓扑图构成的最优路径转发数据流。
优选的,需要说明的是,数据流类型可以包括:传输控制协议(TCP,Transmission Control Protocol)数据流和用户数据报协议(UDP,User DatagramProtocol)数据流。其中,UDP数据流主要为实时类型数据流,这类业务的特点是对实时性要求比较高,对于丢包率的要求相对低,而且对于丢弃的数据包不会进行重传处理;采用TCP协议传输的数据流主要为数据类数据流,这类业务对于丢包率要求较高,对实时性要求相对低,而且如果网络中出现丢包现在,对于丢弃的数据包都会进行重传处理,如果该类业务流频繁丢包,就会造成大量的数据包重传,导致网络拥塞状态进一步恶化。因此,上述步骤206中获取的转发策略,具体包括:
步骤206b,所述根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取各交换机中接收的数据流为TCP数据流时的转发策略。其中,所述的各交换机包括最优路径的源节点交换机和各条路径上的交换机,但交换机中流表表项中指示分流数据流的主要是指最优路径的源节点交换机,路径中间的交换机仅执行转发任务,不执行分流数据流的操作。后续对交换机的理解都有类似的说明,不一一重复。
进一步,若交换机中接收的数据流是UDP数据流时,所述方法还包括:
接收各交换机发送的进入和离开各交换机的数据流速率;
在步骤203之后,该控制器还可以执行如下步骤:
步骤208,当对应交换机中接收的数据流为UDP数据流时,根据所述进入和离开各交换机的数据流速率,构造数据包的丢包概率ρi的策略;
步骤209,根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应交换机中接收的数据流为UDP数据流时的转发策略;
其中,当步骤208中,当对应交换机中接收的数据流为UDP数据流时,根据所述进入和离开各交换机的数据流速率,构造数据包的丢包概率ρi的策略,具体包括:
以如下公式作为当对应交换机中接收的数据流为UDP数据流时的丢包概率ρi的策略:
&rho; i = 0 , q i < Q th ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q th &le; q i < Q max ; 1 , q i &GreaterEqual; Q max ;
其中,λi、ui分别为交换机上报的进入和离开交换机i的数据流速率,qi为交换机i的队列长度,Qth为交换机i的门限阈值长度,Qmax为交换机i的最大允许队列长度;
所述根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应交换机中接收的数据流为UDP数据流时的转发策略,具体包括:
当交换机的队列长度小于门限阈值长度时,所有UDP数据包都以所述获取的最优路径转发;
当交换机的队列长度大于等于门限阈值长度并,小于最大允许队列长度且交换机的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以所述获取的最优路径转发;
当交换机的队列长度大于其最大允许队列长度时,所有进入所述交换机的UDP数据包都将被丢弃。
其中,需要理解的是控制器会生成相应的流表表项,流表表项被控制器下发给各个交换机,流表表项包含三部分:头部,计数器和动作,交换机直接匹配数据流的头部信息,匹配好直接执行相应的动作,该动作具体为按照丢包概率ρi丢包。
步骤210,将所述当对应交换机中接收的数据流为UDP数据流时的转发策略制作为流表表项,发送给所述对应的交换机。
需要理解的是,步骤208、209,210中所说的对应交换机,是指最优路径上的交换机,当路径上的每个交换机接收到UDP数据流后,按照流表表项中记录的该交换机拥塞,并按照记录的丢包概率丢包;若流表表项中记录的该交换机不拥塞,不丢包;若记录该交换机严重拥塞,则将接收到的数据包全部丢弃。
通过上述增加的步骤208、步骤209、步骤210,使得该控制器能够对交换机的UDP数据流执行不同的转发策略,即以丢包概率ρi的策略进行转发。使得控制器能够对交换机中的不同数据流进行不同的转发控制。
实施例三
本发明实施例提供了一种避免拥塞的路由方法,该方法主要为了说明交换机接收到控制器发送的根据转发策略制作的流表表项,从而使得交换机后续接收到数据流时,可以查询存储的流表表项进行数据流转发。
该方法包括:
步骤301,接收控制器发送的流表表项,
步骤302,存储所述流表表项。
通过本实施例提供的一种避免拥塞的路由方法,该方法交换机接收到控制器发送流表表项,当交换机后续接收到数据流时,可以查询存储的流表表项进行数据流转发。
施例四
本发明实施例提供了一种避免拥塞的路由方法,该方法是从交换机的角度说明,当有数据流流入交换机时,交换机具体根据控制器发送的流表表项数据流进行分流,从而有效避免拥塞,也避免丢包带来的数据重传等导致网络继续恶化的因素。
如图7所示,该方法包括:
步骤401,交换机接收数据流;
步骤402,根据存储的流表表项,将所述接收的数据流分为两支数据流转发,
其中,一支数据流以速率为所述流表表项中记录的最优路径允许的最大流入速率,按照所述流表表项中记录的最优路径转发;
另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发。
该执行该方法的交换机是最优路径中源节点交换机来执行分流操作,路径中间节点则根据控制器下发的流表表项执行转发到下一跳的操作,不执行分流的操作。
通过上述对本发明实施例四的说明,该方案中交换机接收数据流后,根据流表表项中记录的转发策略,将拥塞的数据流分为两条数据流传输,一条数据流以原先路径可承受速率,按照该原先路径传输,分流的另一条数据流以非拥塞状态下的最优路径传输。从而避免的现有技术丢弃数据包的导致传输效率不佳的问题,大大提高了传输效率。
优选的,当被分流的数据流以流表表项中记录的非拥塞状态最优路径转发之前,还可以在该被分流的数据流的数据包头部设置表示(使用ECN机制),使得接收该数据包的目的节点在与发送给数据流的源节点通信时,告知该源节点发送数据流速率太大导致拥塞,进而从源节点处进行数据流调整,从而避免拥塞。因此,该方法还可以包括:
步骤403,对于以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,转发的另一支数据流,在所述另一支数据流的数据包头部设置标示(具体可以是在IP头部服务类型字段中的第6为ECT位和第7位CE位设置为“11”,其中,采用ECT位和CE位设置的方案主要是基于ECN机制,ECN是IETF工作组提出的标准,目前公认的拥塞通告方法,当然,本实施例不限制使用一位的设置的情况),用于区分该数据流是拥塞分流的数据流。
优选的,上述步骤402中还可以包括:
若所述流表表项中记录的所述最优路径不是处于拥塞状态,按照所述流表表项中记录的最优路径转发所述数据流。
优选的,基于控制器侧对UDP数据流和TCP数据流分别下发不同的流表表项,因此,对于交换机侧,在步骤402之后,该方法还包括:
步骤404,判断所述接收的数据流是否为TCP数据流,
如果是TCP数据流,执行步骤403,根据存储的流表表项,将所述接收的数据流分为两支数据流转发。
步骤405,当判断所述接收的数据流不是TCP数据流时,根据所述流表表项中记录的丢包概率执行转发,具体包括:
当所述交换机中数据包的队列长度大于等于门限阈值长度,并小于最大允许队列长度;且所述交换机的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以流表表项中记录的最优路径转发;其中,λi、ui分别为进入和离开交换机i的数据流速率,ρi为交换机i的丢包概率;
当交换机的队列长度大于其最大允许队列长度时,所有进入所述交换机的UDP数据包都将被丢弃。
通过上述增加的步骤404~405,使得交换机能够应对不同的数据流进行转发。
优选的,在步骤401之后,步骤402之前,该方法还可以包括:
步骤406,判断所述数据流是否注册,如果注册,则执行步骤402;
步骤407,如果未注册,则将所述数据流的信息发送给控制器。
通过增加上述步骤406至步骤407,使得交换机更智能,对不能出来的数据包及时上报控制器,由控制器进行处理。
实施例五
本发明实施例提供一种避免拥塞的路由方法,如图8a所示,该方法包括:
步骤A01,网络中每个交换机获取邻居节点信息,根据获取的邻居节点信息生成链路状态公告(LSA,Link-State Advertisement)报文;并将LSA报文发送给控制器。
需要说明的是,对于动态的网络,网络中的交换机可以是定时的向控制器发送LSA报文,或者是当前发现邻居节点信息变化时发送LSA报文,或者其他导致网络变化的情况下发送LSA报文。
其中,网络中每个交换机获取邻居节点信息的具体操作,可以包括:定时向周围的邻居节点发送Hello包,获取邻居节点信息,交换机测量自身与每个邻居节点通信的链路开销(如时延,带宽等),将收集的邻居节点的信息构造成LSA报文上传给控制器,由控制器根据每个交换机的LSA报文构造出全局网络拓扑图。如图9所示,每个交换机发送给控制器的LSB报文示意简图,该图仅是便于理解的说明,并非对本发明实施例的限制。如图9中所示,在每个交换机发送的LSA报文中,记录了该交换机各邻居的信息。
步骤B02,控制器接收网络中各交换机发送的链路状态公告(LSA,Link-State Advertisement);控制器根据接收到的LSA,构造出全局网络拓扑图;
步骤A03,网络中每个交换机获取拥塞状态公告(NCA,Node CongestionAdvertisement)报文,其中,NCA报文用于表明该交换机是否处于拥塞状态。每个交换机的处理能力有限,当网络中的某个交换机已经处于拥塞状态,如果此时经过该交换机的速率超过其处理数据的速率,那么该节点的拥塞状态将进一步恶化,本方案中使用Pi来表示节点i的拥塞速率矩阵,网络中每个交换机定时或者当节点状态发生变化时将pi构成的NCA报文发生给控制器,如图10所示,NCA报文,包括本节点ID,报文类型,生成实际,和节点i拥塞速率矩阵Pi。用于控制器根据收集的所有节点的NCA报文构造出全局拥塞速率矩阵。
需要说明的是,假设每个交换机的队列长度门限阈值为Qth,当交换机的队列长度超过门限阈值Qth时,交换机可以理解为处于拥塞状态。如图11所示,网络中交换机a正处于拥塞状态,同时正有两条数据流进入交换机a,两条数据流分别为:λa1和λa2,那么进入交换机a的总数量为:λa(λaa1a2),同理,也有两条数据流从交换机a处理开,离开的速率分别为:μa1和μa2,那么离开交换机a的总速率为μa(μaa1a2)。如果此时进入交换机a的数据流的速率大于离开交换机的速率(即:λaa),这就意味着节点的拥塞状态将进一步恶化,此时,我们需要对这部分超出节点接纳能力的数据进行额外的处理,既需要避免节点出现拥塞“溢出”现象,同时也保证数据包不被丢弃而引起不必要的重传。
Pi是定义的拥塞速率矩阵,用来表示交换机i的拥塞信息,如下式(2)所示:
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1 - - - ( 2 )
Pi为一个n×1的二维矩阵,n表示区域内交换机的个数,pj,i表示数据流从交换机j进入交换机i的最大允许进入速率。需要理解的是,实际从交换机j进入交换机i的进入速率已经超出了交换机i能接受的范围,如果继续已当前实际的数据接入,那么就会发送拥塞,所以交换机i通知控制器的是计算后的速率,即控制器暂时允许进入交换机i的速率不能超过pj,i
其中,在交换机中,可以获取pj,i的取值为如下式(3):
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ; - - - ( 3 )
其中,λj,i表示从交换机j进入交换机i的数据流速率,λi表示所有进入交换机i的速率之和,取值为ui表示所有离开交换机i的数据流速率之和,取值为qi表示交换机的队列长度,当qi大于交换机长度的门限阈值Qth,同时进入交换机i的速率又大于离开的速率,那么意味着交换机i的拥塞状态将进一步恶化,所有此时允许从交换机j进入交换机i的最大速率为对于剩余的的数据流需要进行分流处理。如果此时交换机没有处于拥塞状态或者进入交换机的流速小于离开的速率,那么,所有的数据流都将按照正常的路由路径走。
步骤B04,控制器接收网络中交换机发送的NCA报文,构造出全局拥塞速率矩阵,如下式子是(4)所示,
P=[P1 ... Pi ... Pn] (4)
步骤B05,控制器根据全局网络拓扑图和全局拥塞速率矩阵,获取每个节点去往网络中其他节点的最优路径和该路径所允许的最大流入速率,以及获取非拥塞的最优路径,从而构造出每个节点的转发策略。
需要说明的是,步骤B05的详细步骤可以包括:
步骤B0500:控制器根据每个交换机上传的LSA报文,构造出全局网络拓扑图,然后使用Dijkstra算法计算出每个交换机到其他交换机的最优路径S为数据流进入区域网络的入***换机,D为离开区域网络的交换机节点,ki为每条路径中间经过的交换机节点。
需要理解的是,本实施例中关于计算最优路径的算法不限于上述Dijkstra算法,还可以是其他能够计算出最优路径的算法,此处不应该理解为对本发明实施例的限制。
步骤B0502:控制器查询全局拥塞速率矩阵P得出路径上允许流过的最大速率为 p = Min ( p S , k 1 , . . . , p k i - 1 , k i , . . . , p k n - 1 , k n , p k n , D ) ;
步骤B0504:控制器将网络中所有处于拥塞状态的节点从拓扑图中去除,构造新的网络拓扑图,如图12所示,控制器再次利用Dijkstra算法,根据新的网络拓扑图计算出非拥塞网络的从源节点到目的节点的最优路径 L S , k 1 &prime; , . . . , k i &prime; , . . . , k n &prime; , D &prime; ;
步骤B0506:控制器根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,构造流表,并发送给对应交换机。
其中,所述对应交换机可以是最优路径的源节点交换机,也包括网络中所有的交换机,当交换机不是最优路径的源节点交换机时,该交换机不执行分流数据流的任务,而是执行转发数据流到下一跳。对于本实施例中,后续说明的交换机,主要是指最优路径的源节点交换机,如果根据控制器构造的流表表项,执行分流数据流并转发的操作。
控制器在源节点交换机处决定是否分流,为该路径上所有的交换机构造相应的流表表项并发送。每个交换机的流表表项通知该交换机将相应的数据流发送至哪个下一跳节点。在源节点S的交换机中流表的表项如图13所示,对于去往目的节点D的数据流,按照流表匹配后,如果该数据流的速率v小于该路径的最大允许速率p,则该流表项可以告知交换机将该数据流按照全节点网络拓扑图构造的最优路径将数据包发送至下一跳节点k1,如果该数据流的速率v大于该路径的最大允许速率p,则该流表项可以告知交换机将该数据流分为两个子数据流,一个子数据流的速率为该路径允许接入的最大速率p,将该子数据流按照全节点网络拓扑图构造的最优路径发送至下一跳节点k1,剩下的一支速率为v-p的子数据流将按照非拥塞网络拓扑构造的最优路径发送至下一跳k′1
步骤B06,控制器根据构造的每个节点的转发策略,生成流表表项,并发送给对应的交换机。
通过上述步骤A01,步骤A03步骤,使得网络中的各交换机将自身的LSA和NCA发送给控制器,由控制器作为构造流表的依据。
控制器通过执行上述步骤B02,B04,B05,B06,能够根据网络中的各交换机发送的LSA,构造网络拓扑图,根据网络中的各交换机发送的NCA,构造全局拥塞速率矩阵,从而根据全局网络拓扑图和全局拥塞速率矩阵,获取每个节点去往网络中其他节点的最优路径和该路径所允许的最大流入速率,以及获取非拥塞的最优路径,最终构造出每个节点的转发策略。该转发策略使得最终存储在交换机中的流表表项中,包括有非拥塞的最优路径,使得在数据流刚进入网络时,就为超出路径接入能力的数据流计算出一条最优的非拥塞的路径,而不是在发生拥塞情况下,由交换机进行分流或者丢包处理,这样既避免了网络拥塞,又充分利用了网络资源,提高了网络吞吐量,同时,还使得负载更加均衡。
优选的,上述步骤B05,控制器构造的出的每个节点的转发策略,根据转发策略构造流表表项,可以是不需要考虑数据流类型,其中,数据流类型可以包括:传输控制协议(TCP,Transmission Control Protocol)数据流和用户数据报协议(UDP,User Datagram Protocol)数据流。即不区分数据流类型,都进行如上述步骤B05的操作。进一步,若控制器中区分数据流类型,则该方法还包括:
步骤B07:当数据流为TCP数据流时,构造如步骤B05中构造出每个节点的转发策略;
步骤B08:当数据流为UDP数据流时,控制器根据全局网络拓扑图和全局拥塞速率矩阵,获取每个节点去往网络中其他节点的最优路径和该路径所允许的最大流入速率,获取丢包概率ρ,其中,对比概率ρ用于将超出路径接收能力的数据包按照丢包概率丢弃,从而构造出每个节点的转发策略。
其中,UDP数据流丢包概率ρ的取值为式子(5)所示:
&rho; i = 0 , q i < Q th ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q th &le; q i < Q max ; 1 , q i &GreaterEqual; Q max ; - - - ( 5 )
其中,λi、ui分别为进入和离开交换机i的数据流速率,qi为交换机i的队列长度,Qth为交换机i的门限阈值长度,Qmax为交换机i的最大允许队列长度。当交换机的队列长度小于门限阈值长度时,所有数据包都不被丢弃;当交换机的队列长度大于等于门限阈值长度又小于最大允许队列长度且交换机的进入速率大于离开速率时,以的概率丢包;当交换机的队列长度大于其最大允许队列长度时,那么所有进入网络的UDP数据包都将被丢弃,按照概率ρ进行丢包可以确保进入节点的流速不超过其处理能力。
如步骤B08中当数据流为UDP数据流时,控制器在获取转发策略之前,还需要获取到交换机上报的λi、ui,即进入和离开交换机i的数据流速率,从而可以执行如步骤B08所述的丢包概率的计算。
如图14所示,步骤B07和步骤B08获取的流表的表项,为了实现对不同业务的区分,新到达的数据流查询流表时,除了要匹配目的IP地址还要匹配连接类型(TCP、UDP)。如果在某个交换机端口处有多个数据流等待被处理,为了保证UDP数据流的时效性同时也尽可能避免该类业务的丢包,可以设置UDP业务有较高的优先级,交换机将优先处理UDP数据流,使其尽可能使用原始的最短路径。
需要理解的是,网络中UDP数据流主要为实时类数据流,这类业务的特点就是对实时性要求比较高,对丢包率的要求相对低一些,而且对于丢弃的数据包也不会进行重传处理;采用TCP协议传输的数据流一般主要为数据类数据流,这类业务一般对丢包率要求较高,对实时性要求相对低一些,而且如果网络中出现丢包现象,对于丢弃的数据包都会进行重传处理,如果该类业务流频繁丢包,就会造成大量的数据包重传现象,这样不但容易进一步恶化网络拥塞状态,也会影响数据流的时效性,因此,对于这两种不同的业务流,本技术方案采取不同处理方法。
下面的步骤说明交换机如何利用控制器发送的流表,图8b所示,具体包括:
步骤A09,交换机接收控制器发送的流表表项。
步骤A10,交换机接收数据流,根据流表表项中的动作,将数据流分为两个子数据流转发,其中,一个子数据流的速率为该路径允许接入的最大速率p,将该子数据流按照全节点网络拓扑图构造的最优路径发送至下一跳节点k1,剩下的一支速率为v-p的子数据流将按照非拥塞网络拓扑构造的最优路径发送至下一跳k′1
步骤A12,所述流表表项中记录的所述最优路径处于非拥塞状态,则按照全节点网络拓扑图构造的最优路径发送至下一跳节点k1
通过上述步骤A09~A12的说明,交换机根据存储的流表,在数据流进入网络时,将超出路径接入能力的数据流转移到一条非拥塞的最优路径,同时,保证未超出路径接入能力的数据流在原始的最优路径上传输,从而将数据流分为两路,因此,可以避免了网络拥塞,又充分利用了网络资源,提高了网络吞吐量,同时,可以到达均衡负载的作用。
优选的,在步骤A11中,剩下的一支速率为v-p的子数据流将按照非拥塞网络拓扑构造的最优路径发送至下一跳k′1的操作之前,还可以包括:
步骤A1100,交换机对剩下的一支速率为v-p的子数据流中,将属于该数据流的数据包的IP头部中设置表示是分流数据包的标示;
其中,IP头部中设置表示是分流数据包的标示可以具体是:在IP头部服务类型字段中的第6为ECT位和第7位CE位设置为“11”;
则步骤A11具体包括:将步骤A1100中设置完成的数据流,按照非拥塞网络拓扑构造的最优路径发送至下一跳k′1
通过交换机执行上述步骤A1100,交换机将分流的数据包中的ECN域(其中,ECN机制中使用了IP头部两位,一个是第六位叫ECT位,一个是第七位叫CE,这两位合在一起称为ECN域)的设置,接收端收到ECN域被设置为‘11’(“11”表示第六位设置为1,第七位也设置为1)的数据包,可知网络出现了拥塞状态,然后通过ECN-Echo位被填充为‘1’的ACK数据包通知源端降低发送速率,从而更加有效的解决网络拥塞问题。
优选的,在步骤A11之前,即根据流表中的动作,将数据流分为两个子数据流转发之前,该方法还可以包括:
步骤A13:交换机判断接收的数据流类型是否为TCP数据流,如果是执行步骤A11;如果不是TCP数据流,则执行A14;
其中A14:交换机根据流表中的动作,按照丢包概率ρ接收进入该交换机中的数据流。
其中,丢包概率ρ的计算公式如式(5)中说明:
(1)、当交换机的队列长度小于门限阈值长度时,所有数据包都不被丢弃;
(2)、当交换机的队列长度大于等于门限阈值长度又小于最大允许队列长度且交换机的进入速率大于离开速率时,以的概率丢包;
(3)、当交换机的队列长度大于其最大允许队列长度时,那么所有进入网络的UDP数据包都将被丢弃,按照概率ρ进行丢包可以确保进入节点的流速不超过其处理能力。
由于,网络中UDP数据流主要为实时类数据流,这类业务的特点就是对实时性要求比较高,对丢包率的要求相对低一些,而且对于丢弃的数据包也不会进行重传处理;采用TCP协议传输的数据流一般主要为数据类数据流,这类业务一般对丢包率要求较高,对实时性要求相对低一些,而且如果网络中出现丢包现象,对于丢弃的数据包都会进行重传处理,如果该类业务流频繁丢包,就会造成大量的数据包重传现象,这样不但容易进一步恶化网络拥塞状态,也会影响数据流的时效性,因此,本发明实施例通过增加步骤A13,A14,能够对于这两种不同的业务流进行分别处理,提高了UDP数据流和TCP数据流的传输效率。
实施例六
本发明实施例提供了一种网元,该网元可以是交换机,但不限于交换机,如图15所示,所述网元包括:第一获取单元C01,第一发送单元C02,第二获取单元C03,和第二发送单元C04;
所述第一获取单元C01,用于获取邻居节点信息,根据获取的邻居节点信息生成链路状态公告LSA报文;
所述第一发送单元C02,用于将LSA报文发送给控制器;
所述第二获取单元C03,用于获取拥塞状态公告NCA报文,其中,所述NCA报文中包括有所述网元的拥塞信息;
其中,所述网元的拥塞信息具体由所述网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内网元的个数,pj,i表示数据流从网元j进入网元i的最大允许进入速率,其中,网元i为所述方法执行主体的网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从网元j进入网元i的数据流速率;λi表示所有进入网元i的速率之和,取值为ui表示所有离开网元i的数据流速率之和,取值为qi表示网元的队列长度,当λi≥μi,且qi大于等于网元长度的门限阈值Qth时,所述网元处于拥塞状态。
所述第二发送单元C04,用于将所述NCA报文发送给所述控制器。
通过上述本实施例六说明的一种网元,该方案中网络中的网元将自身的邻居节点信息和自身拥塞信息,分别通过LSA和NCA发送给控制器,由控制器对网络中各网元统一管理,构造出全局网络拓扑图,和全局拥塞信息,使得控制器根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;根据所述全局拥塞信息,和所述最优路径,获取所述最优路径允许的最大流入速率;根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,并根据转发策略制作流表表项,并将流表表项发送给对应网元,使得所述网元获取流表表项,并存储;其中,根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当所述对应网元中接收的数据流的速率v大于所述最优路径所允许的最大流入速率,则将所述接收的数据流分为两支数据流,其中,一支数据流以速率为所述最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发。
因此,本实施例说明的技术方案,与现有技术相比,避免如弃尾算法中简单的丢弃超过队列最大门限长度的数据包,也克服了在网络未发生拥塞时就提前开始丢包会造成网络资源的浪费的问题,提供了一种更合理的避免拥塞的方法,从而保证数据传输的质量,为用户提供更高效率的服务。
实施例七
本发明实施例提供一种控制器,如图16所示,所述控制器包括:
第一接收单元D01,第一构造单元D02,第二接收单元D03,第三获取单元D04,第四获取单元D05,第五获取单元D06,第六获取单元D07,第七获取单元D08,第三发送单元D09;
所述第一接收单元D01,用于接收网络中各网元发送的LSA报文;
所述第一构造单元D02,用于根据所述LSA报文,构造出全局网络拓扑图;
所述第二接收单元D03,用于接收网络中各网元发送的NCA报文;
所述第三获取单元D04,用于根据所述NCA报文,获取全局拥塞信息;
所述第四获取单元D05,用于根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;
所述第五获取单元D06,用于根据所述全局拥塞信息,和所述最优路径,获取所述最优路径允许的最大流入速率;
所述第六获取单元D07,用于根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;
所述第七获取单元D08,用于根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略;
其中,根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当最优路径中如果有网元处于拥塞状态时,要求所述最优路径的源节点网元将所述接收的数据流分为两支数据流,其中,一支数据流以速率为所述最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发;
所述第三发送单元D09,用于将所述获取的转发策略发送给对应网元,使得所述网元根据所述转发策略获取流表表项,并存储。
通过上述对本发明实施例七的说明,该方案中控制器根据从网络中各网元获取LSA报文和NCA报文,构造出全局网络拓扑图和全局拥塞信息,根据全局网络拓扑图和全局拥塞信息,构造出网元在处于拥塞状态下的两条路径,即将拥塞的数据流分为两条数据流传输,一条数据流以原先路径可承受速率,按照该原先路径传输,分流的另一条数据流以非拥塞状态下的最优路径传输。从而避免的现有技术丢弃数据包的导致传输效率不佳的问题,大大提高了传输效率。
优选的,所述第七获取单元D08中用于根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,还具体包括:
当最优路径的源节点网元中接收的数据流的速率v小于所述最优路径所允许的最大流入速率,将所述数据流以速率为所述最优路径所允许的最大流入速率,按照所述获取的最优路径转发。
优选的,第二接收单元D03中接收的每个NCA报文中包括一个网元的拥塞信息,所述网元的拥塞信息具体由所述网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内网元的个数,pj,i表示数据流从网元j进入网元i的最大允许进入速率,其中,网元i为所述方法执行主体的网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从网元j进入网元i的数据流速率;λi表示所有进入网元i的速率之和,取值为ui表示所有离开网元i的数据流速率之和,取值为qi表示网元的队列长度,当λi≥μi,且qi大于等于网元长度的门限阈值Qth时,所述网元处于拥塞状态;
第三获取单元中用于根据所述NCA报文,获取全局拥塞信息,具体包括:
根据所述NCA报文中包括的网元的拥塞信息,构造出全局拥塞速率矩阵P,即:
P=[P1 ... Pi ... Pn]
其中,n表示区域内网元的个数,Pi为所述网元的拥塞速率矩阵。
优选的,所述第五获取单元D06中,用于根据所述全局拥塞信息,和所述最优路径,获取所述最优路径所允许的最大流入速率,具体包括:
从全局拥塞信息中和所述最优路径中,获取所述最优路径中前一跳ki-1到下一跳ki的最大允许进入速率
获取所述最优路径中最小的最大允许进入速率,作为所述最优路径所允许的最大流入速率p,即其中,S为所述最优路径的源节点,D为所述最优路径的目的节点。
优选的,所述第七获取单元D08中用于根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体为:
所述根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取当对应网元中接收的数据流为TCP数据流时的转发策略。
优选的,所述控制器还包括:
所述第二接收单元,还用于接收各网元发送的进入和离开各网元的数据流速率;
第二构造单元D10和第四发送单元D11;
所述第二构造单元D10,用于在所述第四获取单元根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径之后,当对应网元中接收的数据流为UDP数据流时,根据所述进入和离开各网元的数据流速率,构造丢包概率ρi的策略;
所述第四发送单元D11,用于将所述当对应网元中接收的数据流为UDP数据流时的转发策略制作为流表表项,发送给所述对应的网元。
优选的,所述第二构造单元D10中用于当对应网元中接收的数据流为UDP数据流时,根据所述进入和离开各网元的数据流速率,构造丢包概率ρi的策略,具体包括:
以如下公式作为当对应网元中接收的数据流为UDP数据流时的丢包概率ρi的策略:
&rho; i = 0 , q i < Q th ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q th &le; q i < Q max ; 1 , q i &GreaterEqual; Q max ;
其中,λi、ui分别为网元上报的进入和离开网元i的数据流速率,qi为网元i的队列长度,Qth为网元i的门限阈值长度,Qmax为网元i的最大允许队列长度;
所述根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应网元中接收的数据流为UDP数据流时的转发策略,具体包括:
当网元的队列长度小于门限阈值长度时,所有UDP数据包都以所述获取的最优路径转发;
当网元的队列长度大于等于门限阈值长度并,小于最大允许队列长度且网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以所述获取的最优路径转发;
当网元的队列长度大于其最大允许队列长度时,所有进入所述网元的UDP数据包都将被丢弃。
实施例八
本发明实施例提供了一种网元,所述网元包括:第三接收单元,和存储单元;
所述第三接收单元,用于接收控制器发送的流表表项,
所述存储单元,用于存储所述流表表项。
通过本实施例提供的网元,接收到控制器发送的流表表项,从而使得网元后续接收到数据流时,可以查询存储的流表表项进行数据流转发。
实施例九
本发明实施例提供了一种网元,该网元可以是交换机,但不限于交换机。如图17所示,所述网元包括:第四接收单元E01,和第一转发单元E03;
所述第四接收单元E01,用于接收数据流;
所述第一转发单元E03,用于根据存储的流表表项,将所述接收的数据流分为两支数据流转发;其中,一支数据流以速率为所述流表表项中记录的最优路径允许的最大流入速率,按照所述流表表项中记录的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发。
通过上述对本发明实施例就的说明,该方案中网元接收数据流后,根据流表表项中记录的转发策略,将拥塞的数据流分为两条数据流传输,一条数据流以原先路径可承受速率,按照该原先路径传输,分流的另一条数据流以非拥塞状态下的最优路径传输。从而避免的现有技术丢弃数据包的导致传输效率不佳的问题,大大提高了传输效率。
优选的,所述网元还包括:标示单元E04,
所述标示单元E04,用于所述第一转发单元在按照所述流表表项中记录的非拥塞时的最优路径转发之前,对于以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,转发的另一支数据流,在所述另一支数据流的数据包头部设置标示,用于区分该数据流是拥塞分流的数据流。
优选的,所述网元,还包括:第二转发单元E05,
所述第二转发单元E05,用于若所述流表表项中记录的所述最优路径处于非拥塞状态,按照所述流表表项中记录的最优路径转发所述数据流。
优选的,所述网元,还包括:第二判断单元E06,
所述第二判断单元E06,用于所述第一转发单元根据存储的流表表项,将所述接收的数据流分为两支数据流转发之前,判断所述接收的数据流是否为TCP数据流;
所述第一转发单元,还用于如果是TCP数据流,执行所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发。
优选的,所述网元还包括:第三转发单元E07,
所述第三转发单元E07,用于当判断所述接收的数据流不是TCP数据流时,根据所述流表表项中记录执行转发,具体包括:
当所述网元中数据包的队列长度大于等于门限阈值长度,并小于最大允许队列长度;且所述网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以流表表项中记录的最优路径转发;其中,λi、ui分别为进入和离开网元i的数据流速率,ρi为网元i的丢包概率;
当网元的队列长度大于其最大允许队列长度时,所有进入所述网元的UDP数据包都将被丢弃。
优选的,所述网元还包括:第三判断单元E08,和第五发送单元E09;
所述第三判断单元,用于所述第四接收单元接收数据流之后,所述第一判断单元判断所述网元是否处于拥塞状态之前,判断所述数据流是否注册;
如果注册,则通知所述第一判断单元执行所述判断所述网元是否处于拥塞状态的操作;
所述第五发送单元,用于如果未注册,将所述数据流的信息发送给控制器。
实施例十
本发明实施例提供了一种网元,该网元可以是交换机,但不限于交换机,如图18所示,包括分别连接到总线上的存储器40、处理器41、输入装置43和输出装置44,其中:
存储器40中用来储存从输入装置43输入的数据,且还可以储存处理器41处理数据的必要文件等信息;
所述处理器,用于根据从输入装置获取的邻居节点信息,根据获取的邻居节点信息生成链路状态公告LSA报文;从输入装置获取拥塞状态公告NCA报文,其中,所述NCA报文中包括有所述网元的拥塞信息;
所述输出装置,用于将LSA报文发送给控制器;将所述NCA报文发送给所述控制器。
优选的,所述网元的拥塞信息具体由所述网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内网元的个数,pj,i表示数据流从网元j进入网元i的最大允许进入速率,其中,网元i为所述方法执行主体的网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从网元j进入网元i的数据流速率;λi表示所有进入网元i的速率之和,取值为ui表示所有离开网元i的数据流速率之和,取值为qi表示网元的队列长度,当λi≥μi,且qi大于等于网元长度的门限阈值Qth时,所述网元处于拥塞状态。
优选的,所述输出装置,还用于发送进入和离开所述网元的数据流速率的数值,所述进入和离开所述网元的数据流速率的数值,用于控制器中获取构造当数据流为UDP数据流时丢包概率ρi的策略。
通过上述本实施例说明的一种网元,该方案中网络中的网元将自身的邻居节点信息和自身拥塞信息,分别通过LSA和NCA发送给控制器,由控制器对网络中各网元统一管理,构造出全局网络拓扑图,和全局拥塞信息,使得控制器根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;根据所述全局拥塞信息,和所述最优路径,获取所述最优路径允许的最大流入速率;根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,并根据转发策略制作流表表项,并将流表表项发送给对应网元,使得所述网元获取流表表项,并存储;其中,根据所述获取的最优路径,所述最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当所述对应网元中接收的数据流的速率v大于所述最优路径所允许的最大流入速率,则将所述接收的数据流分为两支数据流,其中,一支数据流以速率为所述最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发。
因此,本实施例说明的技术方案,与现有技术相比,避免如弃尾算法中简单的丢弃超过队列最大门限长度的数据包,也克服了在网络未发生拥塞时就提前开始丢包会造成网络资源的浪费的问题,提供了一种更合理的避免拥塞的方法,从而保证数据传输的质量,为用户提供更高效率的服务。
实施例十一
本发明实施例提供一种控制器,如图19所示,包括分别连接到总线上的存储器50、处理器51、输入装置53和输出装置54,其中:
存储器50中用来储存从输入装置53输入的数据,且还可以储存处理器41处理数据的必要文件等信息;
所述输入装置53,用于接收网络中各第一网元发送的LSA报文;接收网络中各第一网元发送的NCA报文;
所述处理器51,用于根据所述LSA报文,构造出全局网络拓扑图;根据所述NCA报文,获取全局拥塞信息;根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径允许的最大流入速率;根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,根据所述转发策略获取流表表项;
其中,根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当获取的最优路径中如果有第一网元处于拥塞状态时,要求所述获取的最优路径的源节点第一网元将接收的数据流分为两支数据流,其中,一支数据流以速率为所述获取的最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以接收的数据流的速率v,与所述获取的最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发;
所述输出装置54,用于将获取的所述流表表项发送给所述第一网元。
优选的,所述处理器中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,还具体包括:
当所述获取的最优路径的源节点第一网元接收的数据流的速率v小于所述获取的最优路径所允许的最大流入速率,将所述数据流以速率为所述获取的最优路径所允许的最大流入速率,按照所述获取的最优路径转发。
优选的,所述输入装置中接收的每个NCA报文中包括一个第一网元的拥塞信息,所述第一网元的拥塞信息具体由所述第一网元的拥塞速率矩阵Pi表示;
P i = p 1 , i &CenterDot; &CenterDot; &CenterDot; p j , i &CenterDot; &CenterDot; &CenterDot; p n , i 1
其中,Pi为n×1的二维矩阵,n表示区域内第一网元的个数,pj,i表示数据流从第一网元j进入第一网元i的最大允许进入速率,其中,第一网元i为所述方法执行主体的第一网元;
其中,pj,i的取值为如下式:
P j , i = &lambda; j &CenterDot; i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q th ; &infin; , else ;
其中,λj,i表示从第一网元j进入第一网元i的数据流速率;λi表示所有进入第一网元i的速率之和,取值为ui表示所有离开第一网元i的数据流速率之和,取值为qi表示第一网元的队列长度,当λi≥μi,且qi大于等于第一网元长度的门限阈值Qth时,所述第一网元处于拥塞状态;
所述处理器中用于根据所述NCA报文,获取全局拥塞信息,具体包括:
根据所述NCA报文中包括的第一网元的拥塞信息,构造出全局拥塞速率矩阵P,即:
P=[P1 ... Pi ... Pn]
其中,n表示区域内第一网元的个数,Pi为所述第一网元的拥塞速率矩阵。
优选的,所述处理器中,用于根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径所允许的最大流入速率,具体包括:
从全局拥塞信息中和所述获取的最优路径中,获取所述获取的最优路径中前一跳ki-1到下一跳ki的最大允许进入速率
获取所述获取的最优路径中最小的最大允许进入速率,作为所述获取的最优路径所允许的最大流入速率p,即其中,S为所述获取的最优路径的源节点,D为所述获取的最优路径的目的节点。
优选的,所述处理器中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体为:
所述根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取当对应第一网元中接收的数据流为TCP数据流时的转发策略。
优选的,所述输入装置,还用于接收各第一网元发送的进入和离开各第一网元的数据流速率;
所述处理器还用于:
在根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径之后,当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略;
将所述当对应第一网元中接收的数据流为UDP数据流时的转发策略,制作为流表表项,发送给所述对应的第一网元。
优选的,所述处理器中用于当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略,具体包括:
以如下公式作为当对应第一网元中接收的数据流为UDP数据流时的丢包概率ρi的策略:
&rho; i = 0 , q i < Q th ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q th &le; q i < Q max ; 1 , q i &GreaterEqual; Q max ;
其中,λi、ui分别为所述第一网元上报的进入和离开第一网元i的数据流速率,qi为第一网元i的队列长度,Qth为第一网元i的门限阈值长度,Qmax为第一网元i的最大允许队列长度;
所述根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应第一网元中接收的数据流为UDP数据流时的转发策略,具体包括:
当第一网元的队列长度小于门限阈值长度时,所有UDP数据包都以所述获取的最优路径转发;
当第一网元的队列长度大于等于门限阈值长度并,小于最大允许队列长度且第一网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以所述获取的最优路径转发;
当第一网元的队列长度大于其最大允许队列长度时,所有进入所述第一网元的UDP数据包都将被丢弃。
通过上述对本发明实施例的说明,该方案中控制器根据从网络中各网元获取LSA报文和NCA报文,构造出全局网络拓扑图和全局拥塞信息,根据全局网络拓扑图和全局拥塞信息,构造出网元在处于拥塞状态下的两条路径,即将拥塞的数据流分为两条数据流传输,一条数据流以原先路径可承受速率,按照该原先路径传输,分流的另一条数据流以非拥塞状态下的最优路径传输。从而避免的现有技术丢弃数据包的导致传输效率不佳的问题,大大提高了传输效率。
实施例十二
本发明实施例提供了一种网元,该网元可以是交换机,但不限于交换机。如图20所示,包括分别连接到总线上的存储器60、处理器61、输入装置63和输出装置64,其中:
存储器60中用来储存从输入装置63输入的数据,且还可以储存处理器61处理数据的必要文件等信息;
所述输入装置63,用于接收数据流;
所述处理器61,用于根据存储的流表表项,将所述接收的数据流分为两支数据流转发;其中,一支数据流以速率为所述流表表项中记录的最优路径允许的最大流入速率,按照所述流表表项中记录的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发。
通过上述对本发明实施例就的说明,该方案中网元接收数据流后,根据流表表项中记录的转发策略,将拥塞的数据流分为两条数据流传输,一条数据流以原先路径可承受速率,按照该原先路径传输,分流的另一条数据流以非拥塞状态下的最优路径传输。从而避免的现有技术丢弃数据包的导致传输效率不佳的问题,大大提高了传输效率。
优选的,所述处理器,还用于所述第一转发单元在按照所述流表表项中记录的非拥塞时的最优路径转发之前,对于以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,转发的另一支数据流,在所述另一支数据流的数据包头部设置标示,用于区分该数据流是拥塞分流的数据流。
优选的,所述处理器,还用于若所述流表表项中记录的所述最优路径处于非拥塞状态,按照所述流表表项中记录的最优路径转发所述数据流。
优选的,所述处理器,还用于在所述第一转发单元根据存储的流表表项,将所述接收的数据流分为两支数据流转发之前,判断所述接收的数据流是否为TCP数据流;
所述处理器,还用于如果是TCP数据流,执行所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发。
优选的,所述处理器,还用于当判断所述接收的数据流不是TCP数据流时,根据所述流表表项中记录执行转发,具体包括:
当所述网元中数据包的队列长度大于等于门限阈值长度,并小于最大允许队列长度;且所述网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以流表表项中记录的最优路径转发;其中,ρi为所述流表表项中记录网元i的丢包概率;
当网元的队列长度大于其最大允许队列长度时,所有进入所述网元的UDP数据包都将被丢弃。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本发明实施例所提供的一种避免拥塞的路由方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (42)

1.一种避免拥塞的路由方法,其特征在于,包括:
第一网元获取邻居节点信息,根据获取的邻居节点信息生成链路状态公告LSA报文,并将LSA报文发送给控制器;
所述第一网元获取拥塞状态公告NCA报文,将所述NCA报文发送给所述控制器,其中,所述NCA报文中包括有所述第一网元的拥塞信息;
其中,所述第一网元的拥塞信息具体由所述第一网元的拥塞速率矩阵Pi表示;
其中,Pi为n×1的二维矩阵,n表示区域内第一网元的个数,pj,i表示数据流从第一网元j进入第一网元i的最大允许进入速率,其中,第一网元i为所述方法执行主体的第一网元;
其中,pj,i的取值为如下式:
p j , i = &lambda; j . i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q t h ; &infin; , e l s e ;
其中,λj,i表示从第一网元j进入第一网元i的数据流速率;λi表示所有进入第一网元i的速率之和,取值为ui表示所有离开第一网元i的数据流速率之和,取值为qi表示第一网元的队列长度,当λi≥μi,且qi大于等于第一网元长度的门限阈值Qth时,所述第一网元处于拥塞状态。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:
所述第一网元发送进入和离开所述第一网元的数据流速率的数值,所述进入和离开所述第一网元的数据流速率的数值,用于控制器中获取构造当数据流为UDP数据流时丢包概率ρi的策略。
3.一种避免拥塞的路由方法,其特征在于,包括:
接收网络中各第一网元发送的LSA报文;根据所述LSA报文,构造出全局网络拓扑图;
接收网络中各第一网元发送的NCA报文;根据所述NCA报文,获取全局拥塞信息;
根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;
根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径允许的最大流入速率;
根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;
根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,根据所述转发策略获取流表表项,并发送给对应第一网元;
其中,根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当所述获取的最优路径中如果有第一网元处于拥塞状态时,要求所述获取的最优路径的源节点第一网元将接收的数据流分为两支数据流,其中,一支数据流以速率为所述获取的最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述获取的最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发。
4.根据权利要求3所述方法,其特征在于,根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,还具体包括:
当所述获取的最优路径的源节点第一网元中接收的数据流的速率v小于所述获取的最优路径所允许的最大流入速率,将所述数据流以速率为所述获取的最优路径所允许的最大流入速率,按照所述获取的最优路径转发。
5.根据权利要求3或者4所述方法,其特征在于,每个NCA报文中包括一个第一网元的拥塞信息,所述第一网元的拥塞信息具体由所述第一网元的拥塞速率矩阵Pi表示;
其中,Pi为n×1的二维矩阵,n表示区域内第一网元的个数,pj,i表示数据流从第一网元j进入第一网元i的最大允许进入速率,其中,第一网元i为所述方法执行主体的第一网元;
其中,pj,i的取值为如下式:
p j , i = &lambda; j . i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q t h ; &infin; , e l s e ;
其中,λj,i表示从第一网元j进入第一网元i的数据流速率;λi表示所有进入第一网元i的速率之和,取值为ui表示所有离开第一网元i的数据流速率之和,取值为qi表示第一网元的队列长度,当λi≥μi,且qi大于等于第一网元长度的门限阈值Qth时,所述第一网元处于拥塞状态;
根据所述NCA报文,获取全局拥塞信息,具体包括:
根据所述NCA报文中包括的第一网元的拥塞信息,构造出全局拥塞速率矩阵P,即:
P=[P1 … Pi … Pn]
其中,n表示区域内第一网元的个数,Pi为所述第一网元的拥塞速率矩阵。
6.根据权利要求5所述方法,其特征在于,所述根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径所允许的最大流入速率,具体包括:
从全局拥塞信息中和所述获取的最优路径中,获取所述获取的最优路径中前一跳ki-1到下一跳ki的最大允许进入速率
获取所述获取的最优路径中最小的最大允许进入速率,作为所述获取的最优路径所允许的最大流入速率p,即其中,S为所述获取的最优路径的源节点,D为所述获取的最优路径的目的节点。
7.根据权利要求6所述方法,其特征在于,所述根据获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体为:
根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取当第一网元中接收的数据流为TCP数据流时的转发策略。
8.根据权利要求3所述方法,其特征在于,所述方法还包括:
接收各第一网元发送的进入和离开各第一网元的数据流速率;
所述根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径之后,所述方法还包括:
当第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略;
根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当第一网元中接收的数据流为UDP数据流时的转发策略;
将所述当第一网元中接收的数据流为UDP数据流时的转发策略,制作为流表表项,发送给所述对应的第一网元。
9.根据权利要求8所述的方法,其特征在于,所述当第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略,具体包括:
以如下公式作为当第一网元中接收的数据流为UDP数据流时的丢包概率ρi的策略:
&rho; i = 0 , q i < Q t h ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q t h &le; q i < Q m a x ; 1 , q i &GreaterEqual; Q max ;
其中,λi、ui分别为所述第一网元上报的进入和离开第一网元i的数据流速率,qi为第一网元i的队列长度,Qth为第一网元i的门限阈值长度,Qmax为第一网元i的最大允许队列长度;
所述根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应第一网元中接收的数据流为UDP数据流时的转发策略,具体包括:
当第一网元的队列长度小于门限阈值长度时,所有UDP数据包都以所述获取的最优路径转发;
当第一网元的队列长度大于等于门限阈值长度并小于最大允许队列长度,且第一网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以所述获取的最优路径转发;
当第一网元的队列长度大于其最大允许队列长度时,所有进入所述第一网元的UDP数据包都将被丢弃。
10.一种避免拥塞的路由方法,其特征在于,包括:
接收数据流;根据存储的流表表项,将所述接收的数据流分为两支数据流转发,
其中,一支数据流以速率为所述流表表项中记录的最优路径允许的最大流入速率,按照所述流表表项中记录的最优路径转发;
另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发。
11.根据权利要求10所述方法,其特征在于,所述另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发,之前,所述方法还包括:
对于以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,转发的另一支数据流,在所述另一支数据流的数据包头部设置标示,用于区分该数据流是拥塞分流的数据流。
12.根据权利要求10所述方法,其特征在于,所述方法还包括:
若所述流表表项中记录的所述最优路径处于非拥塞状态,按照所述流表表项中记录的最优路径转发所述数据流。
13.根据权利要求10至12任一项所述方法,其特征在于,所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发之前,所述方法还包括:
判断所述接收的数据流是否为TCP数据流,如果是TCP数据流,执行所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发。
14.根据权利要求13所述方法,其特征在于,所述方法还包括:
当判断所述接收的数据流不是TCP数据流时,根据所述流表表项中记录执行转发,具体包括:
当第一网元中数据包的队列长度大于等于门限阈值长度,并小于最大允许队列长度,且所述第一网元的进入速率大于离开速率时,以ρi的概率丢包,剩余的UDP数据包以流表表项中记录的最优路径转发;其中,ρi为所述流表表项中记录第一网元i的丢包概率;
当第一网元的队列长度大于其最大允许队列长度时,所有进入所述第一网元的UDP数据包都将被丢弃。
15.一种网元,其特征在于,所述网元包括:第一获取单元,第一发送单元,第二获取单元,和第二发送单元;
所述第一获取单元,用于获取邻居节点信息,根据获取的邻居节点信息生成链路状态公告LSA报文;
所述第一发送单元,用于将LSA报文发送给控制器;
所述第二获取单元,用于获取拥塞状态公告NCA报文,其中,所述NCA报文中包括有所述网元的拥塞信息;
所述第二发送单元,用于将所述NCA报文发送给所述控制器;
其中,所述网元的拥塞信息具体由所述网元的拥塞速率矩阵Pi表示;
其中,Pi为n×1的二维矩阵,n表示区域内网元的个数,pj,i表示数据流从网元j进入网元i的最大允许进入速率,其中,网元i为避免拥塞的路由方法执行主体的网元;
其中,pj,i的取值为如下式:
p j , i = &lambda; j . i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q t h ; &infin; , e l s e ;
其中,λj,i表示从网元j进入网元i的数据流速率;λi表示所有进入网元i的速率之和,取值为ui表示所有离开网元i的数据流速率之和,取值为qi表示网元的队列长度,当λi≥μi,且qi大于等于网元长度的门限阈值Qth时,所述网元处于拥塞状态。
16.根据权利要求15所述网元,其特征在于,所述第二发送单元,还用于发送进入和离开所述网元的数据流速率的数值,所述进入和离开所述网元的数据流速率的数值,用于控制器中获取构造当数据流为UDP数据流时丢包概率ρi的策略。
17.一种控制器,其特征在于,所述控制器包括:
第一接收单元,第一构造单元,第二接收单元,第三获取单元,第四获取单元,第五获取单元,第六获取单元,第七获取单元,第三发送单元;
所述第一接收单元,用于接收网络中各第一网元发送的LSA报文;
所述第一构造单元,用于根据所述LSA报文,构造出全局网络拓扑图;
所述第二接收单元,用于接收网络中各第一网元发送的NCA报文;
所述第三获取单元,用于根据所述NCA报文,获取全局拥塞信息;
所述第四获取单元,用于根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;
所述第五获取单元,用于根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径允许的最大流入速率;
所述第六获取单元,用于根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;
所述第七获取单元,用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,根据所述转发策略获取流表表项;
其中,根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当获取的最优路径中如果有第一网元处于拥塞状态时,要求所述获取的最优路径的源节点第一网元将接收的数据流分为两支数据流,其中,一支数据流以速率为所述获取的最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以接收的数据流的速率v,与所述获取的最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发;
所述第三发送单元,用于将获取的所述流表表项发送给所述第一网元。
18.根据权利要求17所述控制器,其特征在于,所述第七获取单元中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,还具体包括:
当所述获取的最优路径的源节点第一网元接收的数据流的速率v小于所述获取的最优路径所允许的最大流入速率,将所述数据流以速率为所述获取的最优路径所允许的最大流入速率,按照所述获取的最优路径转发。
19.根据权利要求17所述控制器,其特征在于,第二接收单元中接收的每个NCA报文中包括一个第一网元的拥塞信息,所述第一网元的拥塞信息具体由所述第一网元的拥塞速率矩阵Pi表示;
其中,Pi为n×1的二维矩阵,n表示区域内第一网元的个数,pj,i表示数据流从第一网元j进入第一网元i的最大允许进入速率,其中,第一网元i为避免拥塞的路由方法执行主体的第一网元;
其中,pj,i的取值为如下式:
p j , i = &lambda; j . i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q t h ; &infin; , e l s e ;
其中,λj,i表示从第一网元j进入第一网元i的数据流速率;λi表示所有进入第一网元i的速率之和,取值为ui表示所有离开第一网元i的数据流速率之和,取值为qi表示第一网元的队列长度,当λi≥μi,且qi大于等于第一网元长度的门限阈值Qth时,所述第一网元处于拥塞状态;
第三获取单元中用于根据所述NCA报文,获取全局拥塞信息,具体包括:
根据所述NCA报文中包括的第一网元的拥塞信息,构造出全局拥塞速率矩阵P,即:
P=[P1 … Pi … Pn]
其中,n表示区域内第一网元的个数,Pi为所述第一网元的拥塞速率矩阵。
20.根据权利要求19所述控制器,其特征在于,所述第五获取单元中,用于根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径所允许的最大流入速率,具体包括:
从全局拥塞信息中和所述获取的最优路径中,获取所述获取的最优路径中前一跳ki-1到下一跳ki的最大允许进入速率
获取所述获取的最优路径中最小的最大允许进入速率,作为所述获取的最优路径所允许的最大流入速率p,即其中,S为所述获取的最优路径的源节点,D为所述获取的最优路径的目的节点。
21.根据权利要求17至20任一项所述控制器,其特征在于,所述第七获取单元中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体为:
所述根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取当对应第一网元中接收的数据流为TCP数据流时的转发策略。
22.根据权利要求17所述控制器,其特征在于,所述第二接收单元,还用于接收各第一网元发送的进入和离开各第一网元的数据流速率;
所述控制器还包括:
第二构造单元和第四发送单元;
所述第二构造单元,用于在所述第四获取单元根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径之后,当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略;
所述第四发送单元,用于将所述当对应第一网元中接收的数据流为UDP数据流时的转发策略,制作为流表表项,发送给所述对应的第一网元。
23.根据权利要求22所述控制器,其特征在于,所述第二构造单元中用于当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略,具体包括:
以如下公式作为当对应第一网元中接收的数据流为UDP数据流时的丢包概率ρi的策略:
&rho; i = 0 , q i < Q t h ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q t h &le; q i < Q m a x ; 1 , q i &GreaterEqual; Q max ;
其中,λi、ui分别为所述第一网元上报的进入和离开第一网元i的数据流速率,qi为第一网元i的队列长度,Qth为第一网元i的门限阈值长度,Qmax为第一网元i的最大允许队列长度;
所述根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应第一网元中接收的数据流为UDP数据流时的转发策略,具体包括:
当第一网元的队列长度小于门限阈值长度时,所有UDP数据包都以所述获取的最优路径转发;
当第一网元的队列长度大于等于门限阈值长度并,小于最大允许队列长度且第一网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以所述获取的最优路径转发;
当第一网元的队列长度大于其最大允许队列长度时,所有进入所述第一网元的UDP数据包都将被丢弃。
24.一种网元,其特征在于,所述网元包括:第四接收单元,和第一转发单元;
所述第四接收单元,用于接收数据流;
所述第一转发单元,用于根据存储的流表表项,将所述接收的数据流分为两支数据流转发;其中,一支数据流以速率为所述流表表项中记录的最优路径允许的最大流入速率,按照所述流表表项中记录的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发。
25.根据权利要求24所述网元,其特征在于,所述网元还包括:标示单元,
所述标示单元,用于所述第一转发单元在按照所述流表表项中记录的非拥塞时的最优路径转发之前,对于以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,转发的另一支数据流,在所述另一支数据流的数据包头部设置标示,用于区分该数据流是拥塞分流的数据流。
26.根据权利要求24所述网元,其特征在于,所述网元,还包括:第二转发单元,
所述第二转发单元,用于若所述流表表项中记录的所述最优路径处于非拥塞状态,按照所述流表表项中记录的最优路径转发所述数据流。
27.根据权利要求24至26任一项所述网元,其特征在于,所述网元还包括:第二判断单元,
所述第二判断单元,用于在所述第一转发单元根据存储的流表表项,将所述接收的数据流分为两支数据流转发之前,判断所述接收的数据流是否为TCP数据流;
所述第一转发单元,还用于如果是TCP数据流,执行所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发。
28.根据权利要求27所述网元,其特征在于,所述网元还包括:第三转发单元,
所述第三转发单元,用于当判断所述接收的数据流不是TCP数据流时,根据所述流表表项中记录执行转发,具体包括:
当所述网元中数据包的队列长度大于等于门限阈值长度,并小于最大允许队列长度;且所述网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以流表表项中记录的最优路径转发;其中,ρi为所述流表表项中记录网元i的丢包概率;
当网元的队列长度大于其最大允许队列长度时,所有进入所述网元的UDP数据包都将被丢弃。
29.一种网元,其特征在于,所述网元包括分别连接到总线上的输入装置,输出装置,存储器和处理器;
所述处理器,用于根据从输入装置获取的邻居节点信息,根据获取的邻居节点信息生成链路状态公告LSA报文;从输入装置获取拥塞状态公告NCA报文,其中,所述NCA报文中包括有所述网元的拥塞信息;
所述输出装置,用于将LSA报文发送给控制器;将所述NCA报文发送给所述控制器;
其中,所述网元的拥塞信息具体由所述网元的拥塞速率矩阵Pi表示;
其中,Pi为n×1的二维矩阵,n表示区域内网元的个数,pj,i表示数据流从网元j进入网元i的最大允许进入速率,其中,网元i为避免拥塞的路由方法执行主体的网元;
其中,pj,i的取值为如下式:
p j , i = &lambda; j . i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q t h ; &infin; , e l s e ;
其中,λj,i表示从网元j进入网元i的数据流速率;λi表示所有进入网元i的速率之和,取值为ui表示所有离开网元i的数据流速率之和,取值为qi表示网元的队列长度,当λi≥μi,且qi大于等于网元长度的门限阈值Qth时,所述网元处于拥塞状态。
30.根据权利要求29所述网元,其特征在于,所述输出装置,还用于发送进入和离开所述网元的数据流速率的数值,所述进入和离开所述网元的数据流速率的数值,用于控制器中获取构造当数据流为UDP数据流时丢包概率ρi的策略。
31.一种控制器,其特征在于,所述控制器包括分别连接到总线上的输入装置,输出装置,存储器和处理器;
所述输入装置,用于接收网络中各第一网元发送的LSA报文;接收网络中各第一网元发送的NCA报文;
所述处理器,用于根据所述LSA报文,构造出全局网络拓扑图;根据所述NCA报文,获取全局拥塞信息;根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径;根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径允许的最大流入速率;根据所述全局拥塞信息,将网络中所有处于拥塞状态的节点从拓扑图中去除得到非拥塞状态的网络拓扑图;根据非拥塞状态的网络拓扑图,获取非拥塞时的最优路径;根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,根据所述转发策略获取流表表项;
其中,根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体包括:
当获取的最优路径中如果有第一网元处于拥塞状态时,要求所述获取的最优路径的源节点第一网元将接收的数据流分为两支数据流,其中,一支数据流以速率为所述获取的最优路径允许的最大流入速率,按照所述获取的最优路径转发;另一支数据流以接收的数据流的速率v,与所述获取的最优路径所允许的最大流入速率的差的速率,按照所述非拥塞时的最优路径转发;
所述输出装置,用于将获取的所述流表表项发送给所述第一网元。
32.根据权利要求31所述控制器,其特征在于,所述处理器中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,还具体包括:
当所述获取的最优路径的源节点第一网元接收的数据流的速率v小于所述获取的最优路径所允许的最大流入速率,将所述数据流以速率为所述获取的最优路径所允许的最大流入速率,按照所述获取的最优路径转发。
33.根据权利要求32所述控制器,其特征在于,所述输入装置中接收的每个NCA报文中包括一个第一网元的拥塞信息,所述第一网元的拥塞信息具体由所述第一网元的拥塞速率矩阵Pi表示;
其中,Pi为n×1的二维矩阵,n表示区域内第一网元的个数,pj,i表示数据流从第一网元j进入第一网元i的最大允许进入速率,其中,第一网元i为避免拥塞的路由方法执行主体的第一网元;
其中,pj,i的取值为如下式:
p j , i = &lambda; j . i &lambda; i &CenterDot; u i , &lambda; i &GreaterEqual; &mu; i , q i &GreaterEqual; Q t h ; &infin; , e l s e ;
其中,λj,i表示从第一网元j进入第一网元i的数据流速率;λi表示所有进入第一网元i的速率之和,取值为ui表示所有离开第一网元i的数据流速率之和,取值为qi表示第一网元的队列长度,当λi≥μi,且qi大于等于第一网元长度的门限阈值Qth时,所述第一网元处于拥塞状态;
所述处理器中用于根据所述NCA报文,获取全局拥塞信息,具体包括:
根据所述NCA报文中包括的第一网元的拥塞信息,构造出全局拥塞速率矩阵P,即:
P=[P1 … Pi … Pn]
其中,n表示区域内第一网元的个数,Pi为所述第一网元的拥塞速率矩阵。
34.根据权利要求33所述控制器,其特征在于,所述处理器中,用于根据所述全局拥塞信息,和所述获取的最优路径,获取所述获取的最优路径所允许的最大流入速率,具体包括:
从全局拥塞信息中和所述获取的最优路径中,获取所述获取的最优路径中前一跳ki-1到下一跳ki的最大允许进入速率
获取所述获取的最优路径中最小的最大允许进入速率,作为所述获取的最优路径所允许的最大流入速率p,即其中,S为所述获取的最优路径的源节点,D为所述获取的最优路径的目的节点。
35.根据权利要求31至34任一项所述控制器,其特征在于,所述处理器中用于根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取转发策略,具体为:
所述根据所述获取的最优路径,所述获取的最优路径所允许的最大流入速率,和所述非拥塞时的最优路径,获取当对应第一网元中接收的数据流为TCP数据流时的转发策略。
36.根据权利要求31所述控制器,其特征在于,所述输入装置,还用于接收各第一网元发送的进入和离开各第一网元的数据流速率;
所述处理器还用于:
在根据所述全局网络拓扑图,获取每个节点去往网络中其它节点的最优路径之后,当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略;
将所述当对应第一网元中接收的数据流为UDP数据流时的转发策略,制作为流表表项,发送给所述对应的第一网元。
37.根据权利要求36所述控制器,其特征在于,所述处理器中用于当对应第一网元中接收的数据流为UDP数据流时,根据所述进入和离开各第一网元的数据流速率,构造丢包概率ρi的策略,具体包括:
以如下公式作为当对应第一网元中接收的数据流为UDP数据流时的丢包概率ρi的策略:
&rho; i = 0 , q i < Q t h ; &lambda; i - u i &lambda; i , &lambda; i &GreaterEqual; &mu; i , Q t h &le; q i < Q m a x ; 1 , q i &GreaterEqual; Q max ;
其中,λi、ui分别为所述第一网元上报的进入和离开第一网元i的数据流速率,qi为第一网元i的队列长度,Qth为第一网元i的门限阈值长度,Qmax为第一网元i的最大允许队列长度;
所述根据所述丢包概率ρi的策略,和所述获取的最优路径,获取当对应第一网元中接收的数据流为UDP数据流时的转发策略,具体包括:
当第一网元的队列长度小于门限阈值长度时,所有UDP数据包都以所述获取的最优路径转发;
当第一网元的队列长度大于等于门限阈值长度并,小于最大允许队列长度且第一网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以所述获取的最优路径转发;
当第一网元的队列长度大于其最大允许队列长度时,所有进入所述第一网元的UDP数据包都将被丢弃。
38.一种网元,其特征在于,所述网元包括分别连接到总线上的输入装置,输出装置,存储器和处理器;
所述输入装置,用于接收数据流;
所述处理器,用于根据存储的流表表项,将所述接收的数据流分为两支数据流转发;其中,一支数据流以速率为所述流表表项中记录的最优路径允许的最大流入速率,按照所述流表表项中记录的最优路径转发;另一支数据流以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,按照所述流表表项中记录的非拥塞时的最优路径转发。
39.根据权利要求38所述网元,其特征在于,所述处理器,还用于第一转发单元在按照所述流表表项中记录的非拥塞时的最优路径转发之前,对于以所述接收的数据流的速率v,与所述流表表项中记录的最优路径所允许的最大流入速率的差的速率,转发的另一支数据流,在所述另一支数据流的数据包头部设置标示,用于区分该数据流是拥塞分流的数据流。
40.根据权利要求39所述网元,其特征在于,所述处理器,还用于若所述流表表项中记录的所述最优路径处于非拥塞状态,按照所述流表表项中记录的最优路径转发所述数据流。
41.根据权利要求38至40任一项所述网元,其特征在于,所述处理器,还用于在第一转发单元根据存储的流表表项,将所述接收的数据流分为两支数据流转发之前,判断所述接收的数据流是否为TCP数据流;
所述处理器,还用于如果是TCP数据流,执行所述根据存储的流表表项,将所述接收的数据流分为两支数据流转发。
42.根据权利要求41所述网元,其特征在于,所述处理器,还用于当判断所述接收的数据流不是TCP数据流时,根据所述流表表项中记录执行转发,具体包括:
当所述网元中数据包的队列长度大于等于门限阈值长度,并小于最大允许队列长度;且所述网元的进入速率大于离开速率时,以的概率丢包,剩余的UDP数据包以流表表项中记录的最优路径转发;其中,ρi为所述流表表项中记录网元i的丢包概率;
当网元的队列长度大于其最大允许队列长度时,所有进入所述网元的UDP数据包都将被丢弃。
CN201310323965.XA 2013-07-29 2013-07-29 一种避免拥塞的路由方法和装置 Active CN103414650B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310323965.XA CN103414650B (zh) 2013-07-29 2013-07-29 一种避免拥塞的路由方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310323965.XA CN103414650B (zh) 2013-07-29 2013-07-29 一种避免拥塞的路由方法和装置

Publications (2)

Publication Number Publication Date
CN103414650A CN103414650A (zh) 2013-11-27
CN103414650B true CN103414650B (zh) 2016-12-07

Family

ID=49607636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310323965.XA Active CN103414650B (zh) 2013-07-29 2013-07-29 一种避免拥塞的路由方法和装置

Country Status (1)

Country Link
CN (1) CN103414650B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099938B (zh) * 2014-05-13 2018-10-12 华为技术有限公司 网络中拥塞窗口的确定方法和装置
US10404608B2 (en) * 2014-10-31 2019-09-03 Huawei Technologies Co., Ltd. Systems, devices, and methods for low-jitter communication over a packet-switched network
CN104378380A (zh) * 2014-11-26 2015-02-25 南京晓庄学院 一种基于SDN架构的识别与防护DDoS攻击的***及方法
CN104618475B (zh) * 2015-01-28 2018-10-30 清华大学 用于异构sdn网络的水平方向通信方法和sdn***
CN104852847A (zh) * 2015-04-07 2015-08-19 胡汉强 一种数据传输方法及控制面设备、转发面设备
CN104883695A (zh) * 2015-04-24 2015-09-02 南京航空航天大学 一种多跳认知无线电网络架构及部署方法
CN106302216A (zh) * 2015-05-20 2017-01-04 天脉聚源(北京)科技有限公司 一种网络负载均衡的方法和***
CN106357552B (zh) 2015-07-13 2019-11-29 华为技术有限公司 一种拥塞控制方法及网络节点
CN106470116B (zh) * 2015-08-20 2019-06-25 ***通信集团公司 一种网络故障检测与恢复方法及装置
CN106817299B (zh) * 2015-11-27 2019-11-29 新华三技术有限公司 软件定义网络的表项生成方法和装置以及报文转发方法
CN105530697B (zh) * 2015-12-15 2019-02-01 重庆大学 一种支持工业物联网业务时间同步方法
EP3442180B1 (en) * 2016-04-28 2020-11-11 Huawei Technologies Co., Ltd. Congestion processing method, host, and system
CN105916059A (zh) * 2016-04-29 2016-08-31 北京奇虎科技有限公司 视频传输处理方法及装置
CN106209669B (zh) * 2016-06-30 2019-06-07 中国人民解放军国防科学技术大学 面向sdn数据中心网络最大概率路径流调度方法及装置
US10715446B2 (en) 2016-09-12 2020-07-14 Huawei Technologies Co., Ltd. Methods and systems for data center load balancing
CN106411766A (zh) * 2016-09-30 2017-02-15 赛特斯信息科技股份有限公司 基于sdn的流量调度***及方法
CN108243146B (zh) * 2016-12-23 2020-01-24 中科星图股份有限公司 一种信息提交方法
CN108512769B (zh) * 2017-02-28 2021-04-09 华为技术有限公司 一种软件定义网络中流表项发送、接收方法及相关设备
CN107135159B (zh) * 2017-03-31 2019-11-22 武汉绿色网络信息服务有限责任公司 一种sdn网络中最优路径确定的方法和***
EP3678339A4 (en) 2017-09-29 2020-07-15 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR PROCESSING MESSAGES
CN112511325B (zh) * 2019-09-16 2022-03-11 华为技术有限公司 网络拥塞控制方法、节点、***及存储介质
CN117319301A (zh) * 2022-06-23 2023-12-29 华为技术有限公司 网络拥塞控制方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119271A (zh) * 2007-07-05 2008-02-06 中国科学技术大学 一种基于结构化p2p应用服务平台及其实现方法
CN101754266A (zh) * 2008-12-15 2010-06-23 ***通信集团公司 调整传输速率、重定向路由的方法、***及装置
CN102244568A (zh) * 2011-06-24 2011-11-16 华南理工大学 一种附带式跨层设计的无线网络拥塞控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119271A (zh) * 2007-07-05 2008-02-06 中国科学技术大学 一种基于结构化p2p应用服务平台及其实现方法
CN101754266A (zh) * 2008-12-15 2010-06-23 ***通信集团公司 调整传输速率、重定向路由的方法、***及装置
CN102244568A (zh) * 2011-06-24 2011-11-16 华南理工大学 一种附带式跨层设计的无线网络拥塞控制方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GMPLS控制面中的邻居发现和拓扑发现机制的改进研究;刘慧卿等;《重庆邮电大学学报(自然科学版)》;20070430;全文 *
Link State Feedback Control Based on Linear Estimation;Wang Yuhan, Zhu Huiliig, Ma Zhengxin, Cao Zhigang;《IEEE》;20031231;全文 *
Reliability Computation of an IP/ATM Network with Congestion;Hui-Ling Liu,Martin L.Shooman;《IEEE》;20031231;全文 *

Also Published As

Publication number Publication date
CN103414650A (zh) 2013-11-27

Similar Documents

Publication Publication Date Title
CN103414650B (zh) 一种避免拥塞的路由方法和装置
US9154394B2 (en) Dynamic latency-based rerouting
CN105471764B (zh) 一种SDN网络中端到端QoS保障的方法
JP6321628B2 (ja) パケットデータネットワーキングにおける輻輳制御
CN106533960A (zh) 一种基于Fat‑Tree结构的数据中心网络路由方法
CN105847151A (zh) 一种面向软件定义网络的多约束QoS路由策略设计方法
CN103716208A (zh) 支持大象流的网络管理方法、***、交换机和网络
CN110351286B (zh) 一种软件定义网络中链路洪泛攻击检测响应机制
CN102263697A (zh) 一种聚合链路流量分担方法和装置
AU2017441267B2 (en) Routing and forwarding method for multi-homed network based on programmable network technology
CN108174412A (zh) 一种负载均衡的rpl多路径数据传输机制
WO2011118574A1 (ja) 通信システム、制御装置、遅延測定方法およびプログラム
Barabas et al. Multipath routing management using neural networks-based traffic prediction
CN105393597B (zh) 网络拥塞控制方法和控制器
CN102801622A (zh) 一种数据报文的转发方法及转发装置
CN102595487B (zh) 一种基于多通信模块的传感网网关拥塞控制装置及方法
JP2012134582A (ja) パケット中継装置
CN107548120B (zh) 临空通信网络的路由方法和装置
CN106330536A (zh) 一种wmSDN的网络状态信息的采集方法
CN103067294A (zh) 多下一跳转发路由器中基于流保续的数据流均衡处理的方法
Pa et al. A new method for congestion avoidance in wireless mesh networks
CN105049345B (zh) 一种bgp路由流量数据融合的方法及***
CN104185241B (zh) 适用于受限卫星网络的路由方法
CN106209633A (zh) 一种报文转发方法及装置
CN108092900A (zh) 一种多端口路由器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant