具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提供的基于混合资源的路由选路方法和装置适用于图1所示的应用场景,包括多节点网络20和服务器10,多节点网络20中的任意一个网络节点与服务器10通信连接。多节点网络20包括多个网络节点,图1只是示例性的示出了网络节点A、网络节点B、网络节点C、网络节点D和网络节点E,在实际网络环境中还包括更多的网络节点,各个网络节点可以支持路由功能,彼此间可以发送和接收数据。每个网络节点上可以设置数据采集装置(图中未示出),用于采集两个网络节点间带宽、时延、抖动和丢包率等数据。
每两个网络节点间可以具有一种或者多种网络资源,例如图2所示,网络节点A和网络节点B之间具有网络资源1和网络资源2两种网络资源,例如互联网资源和专线资源。数据包可以通过网络资源1从网络节点A传输至网络节点B,也可以通过网络资源2从网络节点A传输至网络节点B。
服务器10用于对数据包在各网络节点间的传输路径进行管理,服务器10可以定义包括一个或更多通信路径的有向图(请参照图1)。当服务器10检测到或发起某个数据包传输任务时,根据该有向图在源网络节点和目的网络节点间构建出数据包的传输路径,并将该传输路径发送给对应的网络节点,对应的网络节点根据该传输路径信息进行数据包的转发。服务器10为提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
具体的,服务器10在构建有向图时,如果任意两个网络节点间包括至少两个网络资源,则为所述网络资源中的至少两个网络资源构建有向边。各网络节点会定时传送采集到的带宽、时延、抖动和丢包率等数据给服务器10,服务器10根据上述数据中的一个或者多个值得到任意有向边的时延权重值。区别于现有技术,不管两个网络节点间有多少个网络资源,都只为一个网络资源构建有向边,本方案可以同时把至少两个网络资源信息包含到有向图中,选路算法可以灵活调度网络中的网络资源。
如图3所示,本申请实施例提供了一种基于混合资源的路由选路方法,可以由图1中的服务器10执行,所述选路方法包括:
101:为所述多节点网络构建有向图,如果任意两个网络节点间包括至少两个网络资源,则为所述网络资源中的至少两个网络资源构建有向边。
即为任意两个网络节点构建有向边,如果两个网络节点间只有一个网络资源,则在该两个网络节点间为该网络资源构建有向边;如果两个网络节点间有两个以上的网络资源,则从两个以上的网络资源中选出两个或者更多个网络资源,并给该两个或更多个网络资源构建有向边。例如,如图2所示,网络节点A和网络节点B之间包括网络资源1和网络资源2,可以为网络资源1和网络资源2均构建一条有向边。如果网络节点A和网络节点B之间包括更多的网络资源,也可以从中选出至少两个网络资源为其构建有向边。例如,如果包括三个网络资源,则可以选择两个网络资源构建有向边,也可以选择全部三个网络资源均构建有向边。
其中,所述有向边是指有方向的边,例如网络节点A和网络节点B之间的有向边可以为A->B或者B->A。
其中,可选的,所述如果任意两个网络节点间包括至少两个网络资源,则为所述网络资源中的至少两个网络资源构建有向边,包括:
设置与所述两个网络节点对应的逻辑节点,所述逻辑节点具有地址,所述逻辑节点与其对应的网络节点之间的时延权重值小于第二预设阀值;
其中,所述两个网络节点间的一个网络资源的有向边的两个端点为所述两个网络节点,其他网络资源的有向边的两个端点为分别与所述两个网络节点对应的逻辑节点。
即可以分别为不同网络资源的有向边设置不同的端点,因为只有两个网络节点,因此需要设置虚拟的逻辑节点,以图2网络节点A和网络节点B之间包括网络资源1和网络资源2为例,可以设置与网络节点A对应的逻辑节点A’和与网络节点B对应的逻辑节点B’。将网络节点A和网络节点B作为网络资源1的有向边的两个端点,将逻辑节点A’和逻辑节点B’作为网络资源2的有向边的两个端点。请参照图4。
其中,网络节点A和逻辑节点A’实际上表示同一节点,因此网络节点A和逻辑节点A’之间的时延权重值可以设置为一个很小的值,例如0.0001,因此,第二预设阀值可以取值0.0001或者更小的值。网络节点B和逻辑节点B’同理。网络节点与其对应的逻辑节点可以用不同的I P地址来表示,例如如果网络资源1为互联网资源,网络资源2为专线网络资源,则网络节点A和网络节点B可以用公网I P地址表示,逻辑节点A’和逻辑节点B’可以用内网I P地址表示。
102:接收各个网络节点的节点信息,根据所述节点信息获得任意两个网络节点间在任一网络资源下的时延权重值,并将所述时延权重值分配给对应的有向边。
其中,所述节点信息可以为带宽、时延、抖动和丢包率中的一种或几种,例如节点信息包括网络节点A到网络节点B的时延、抖动和丢包率,服务器10根据上述时延、抖动和丢包率计算获得从网络节点A到网络节点B的有向边的时延权重值。
本申请实施例提供的选路方法,通过在两个网络节点间存在两个以上的网络资源时,为所述网络资源中的至少两个网络资源构建有向边。可以在有向图中体现至少两个网络资源的信息,能够灵活调用网络中的网络资源。
可选的,如图5所示,在所述方法的其他实施例中,所述方法除了201和202之外(201和202的详细内容请参照101和102),还包括:
203:根据所述有向图构建通信路径,并获取每个通信路径的时延权重值;
204:根据所述通信路径的时延权重值选择最优路径。
以如图6所示的有向图为例,如果构建从起始网络节点S到终止网络节点D之间的通信路径,可以构建三条通信路径,分别为S->A->B->D,S->D和S->A->A’->B’->B->D。最后一条通信路径包含了网络节点和逻辑节点,可以进行合并,合并后路径为:S->A->B’->D。由图6可以算得三个通信路径的时延权重值分别145、115和95。
可以根据最短路径选路算法获得从网络节点S到网络节点D的最优路径为S->A->B’->D。
本申请实施例通过在两个网络节点间存在两个以上的网络资源时,为所述网络资源中的至少两个网络资源构建有向边。可以在有向图中体现至少两个网络资源的信息,选路方法可以从包含各个网络资源的路径中选择出最优路径,提高了数据包传输的效率。
可选的,在图6所示的混合资源路径有向图中,从网络节点S到网络节点D也可以同时使用网络资源1和网络资源2,两者之间流量分配按时延权重值进行负载均衡。如图7所示,在所述方法的其他实施例中,所述方法除了301和302之外(301和302的详细内容请参照101和102),还包括:
303:根据所述有向图构建通信路径,并获取每个通信路径的时延权重值。
仍以图6为例,获得三条通信路径S->A->B->D,S->D和S->A->B’->D的时延权重值分别145、115和95。
304:如果所述通信路径包括至少两个网络资源,获得利用每个网络资源的最优路径。
利用网络资源1的最优路径为S->D,时延权重值为115,利用网络资源2的最优路径为S->A->B’->D,时延权重值为95。
305:根据各个最优路径的带宽使用率和时延权重值获得每个最优路径的路径使用权重。
可以同时考虑带宽使用率和时延权重值,如果某个最优路径的带宽使用率大,则可适当减小流过此路径的流量,如果某个最优路径的时延权重值小,则可以适当增加流过此路径的流量。
具体的,如果所述最优路径的带宽使用率超过带宽使用阀值,将该最优路径的路径使用权重设置为权重最小阀值Wmin;
否则,所述最优路径的路径使用权重为
其中,x表示每个最优路径的时延权重值,i表示最优路径的序号,n表示最优路径的数量。
以图6为例,如果两个最优路径的带宽使用率均未超过带宽使用阈值,则最优路径S->D和S->A->B’->D的路径使用权重分别为:
W1=V1/(V1+V2)×(255-Wmin)和W2=V2/(V1+V2)×(255-Wmin),其中V1=115+95-115=95,V2=95+115-95=115,Wmin的值可以根据实际应用情况预先设定。
306:将网络流量按照所述路径使用权重通过各个最优路径。
本申请实施例通过在两个网络节点间存在两个以上的网络资源时,为所述网络资源中的至少两个网络资源构建有向边。可以在有向图中体现至少两个网络资源的信息,选路时根据该有向图选出利用每个网络资源的最优路径,同时使用至少两个网络资源,进行数据包传输,可以避免某条通信路径带宽使用率过高,进一步提高数据包传输的效率。
可选的,在所述方法的其他实施例中,所述方法还包括:
当任意两个网络节点间的某个网络资源出现故障时,将所述两个网络节点间该网络资源对应的有向边的时延权重值设置为大于第一预设阀值。
当两个网络节点间的某一网络资源出现故障时,可以将该网络资源对应的有向边的时延权重值设置为一个较大的值,这样算路方法不会再选择含有这个网络资源的路径,选路机制可以无缝把链路切换到另一网络资源,保证数据包的正常传输。例如图6中网络节点A和网络节点B之间的网络资源2出现故障时,可以将有向边A’->B’的时延权重值设置为一个较大的值。因此第一预设阈值需取一个较大的值,例如100000,在实际应用中,也可以直接将有向边A’->B’的时延权重值设置为无穷大。
可选的,在所述方法的其他实施例中,所述方法还包括:
如果用户不具有使用某一网络资源的权限,则将所述用户在该网络资源下的有向边的时延权重值设置为大于第一预设阀值。
在网络使用中,有些用户不具有使用较高级网络资源的权限,为了使选路算法处理该用户的任务时不会选择较高级别的网络资源,可以将该用户在该高级网络资源下的有向边的时延权重值设置为一个较大的值,例如无穷大。
相应的,本申请实施例还提供了一种基于混合资源的路由选路装置,所述选路装置设置于图1所示的服务器10内,如图8所示,所述选路装置800包括:
有向图构建模块801,用于为所述多节点网络构建有向图,如果任意两个网络节点间包括至少两个网络资源,则为所述网络资源中的至少两个网络资源构建有向边;
时延权重值确定模块802,用于接收各个网络节点的节点信息,根据所述节点信息获得任意两个网络节点间在任一网络资源下的时延权重值,并将所述时延权重值分配给对应的有向边。
本申请实施例提供的选路装置,通过在两个网络节点间存在两个以上的网络资源时,为所述网络资源中的至少两个网络资源构建有向边。可以在有向图中体现至少两个网络资源的信息,能够灵活调用网络中的网络资源。
可选的,在所述装置的某些实施例中,如图9所示,选路装置800还包括:
第一时延权重值设置模块803,用于当任意两个网络节点间的某个网络资源出现故障时,将所述两个网络节点间该网络资源对应的有向边的时延权重值设置为大于第一预设阀值。
可选的,在所述装置的某些实施例中,如图9所示,选路装置800还包括:
第二时延权重值设置模块804,用于如果用户不具有使用某一网络资源的权限,则将所述用户在该网络资源下的有向边的时延权重值设置为大于第一预设阀值。
可选的,在所述装置的某些实施例中,所述有向图构建模块801具体用于:
设置与所述两个网络节点对应的逻辑节点,所述逻辑节点具有地址,所述逻辑节点与其对应的网络节点之间的时延权重值小于第二预设阀值;
其中,所述两个网络节点间的一个网络资源的有向边的两个端点为所述两个网络节点,其他网络资源的有向边的两个端点为分别与所述两个网络节点对应的逻辑节点。
可选的,在所述装置的其他实施例中,如图10所示,选路装置800还包括:
第一路径构建模块805,用于:
根据所述有向图构建通信路径,并获取每个通信路径的时延权重值;
根据所述通信路径的时延权重值选择最优路径。
可选的,在所述装置的其他实施例中,如图11所示,选路装置800还包括:
第二路径构建模块806,用于:
根据所述有向图构建通信路径,并获取每个通信路径的时延权重值;
如果所述通信路径包括至少两个网络资源,获得利用每个网络资源的最优路径;
根据各个最优路径的带宽使用率和时延权重值获得每个最优路径的路径使用权重;
将网络流量按照所述路径使用权重通过各个最优路径。
可选的,在选路装置800的某些实施例中,第二路径构建模块806具体用于:
如果所述最优路径的带宽使用率超过带宽使用阀值,将该最优路径的路径使用权重设置为权重最小阀值Wmin;
否则,所述最优路径的路径使用权重为
其中,x表示每个最优路径的时延权重值,i表示最优路径的序号,n表示最优路径的数量。
需要说明的是,上述选路装置可执行本申请实施例所提供的选路方法,具备执行方法相应的功能模块和有益效果。未在选路装置实施例中详尽描述的技术细节,可参见本申请实施例所提供的选路方法。
图12是本申请实施例提供的服务器10的硬件结构示意图,如图12所示,该服务器10包括:
一个或多个处理器11以及存储器12,图12中以一个处理器11为例。
处理器11和存储器12可以通过总线或者其他方式连接,图12中以通过总线连接为例。
存储器12作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的选路方法对应的程序指令/模块(例如,附图8所示的有向图构建模块801)。处理器11通过运行存储在存储器12中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的选路方法。
存储器12可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据选路装置的使用所创建的数据等。此外,存储器12可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器12可选包括相对于处理器11远程设置的存储器,这些远程存储器可以通过网络连接至选路装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器12中,当被所述一个或者多个处理器11执行时,执行上述任意方法实施例中的选路方法,例如,执行以上描述的图3中的方法步骤101-102,图5中的方法步骤201至步骤203,图7中的方法步骤301至步骤306;实现图8中的模块801和802、图9中的模块801-804,图10中模块801-805,图11中模块801-804和806的功能。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图12中的一个处理器11,可使得上述一个或多个处理器可执行上述任意方法实施例中的选路方法,例如,执行以上描述的图3中的方法步骤101-102,图5中的方法步骤201至步骤203,图7中的方法步骤301至步骤306;实现图8中的模块801和802、图9中的模块801-804,图10中模块801-805,图11中模块801-804和806。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。