一种通信路径确定方法及装置
技术领域
本申请涉及网络通信技术领域,尤其是涉及一种通信路径确定方法及装置。
背景技术
随着生活、工作的不断发展,人们对网络信息传输要求的也越来越高,其中,网络的数据传输速度和传输质量是网络信息传输中尤为重要的两个方面。网络的传输速度与质量受到链路带宽等因素的限制,在网络繁忙时,网络通信会因链路的拥塞而导致性能下降,如丢包、数据传输速率下降等。
目前,基于软件定义网络的通信路径确定方法通常是在通信路径发生拥塞之后,再对通信路径进行选择,而这种方式虽然起到了一定的作用,但不能快速的做出反映,网络通信的质量与传输速度仍然不能有效提高。
发明内容
有鉴于此,本申请的目的在于提供一种通信路径确定方法及装置,以避免使用拥堵的链路,提升通信的速度与质量。
本申请实施例提供了一种通信路径确定方法,所述通信路径确定方法包括:
获取待发送数据,并基于所述待发送数据携带的目标终端信息确定目标终端;
确定所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息;
基于所述状态信息,分别确定目标软件定义网络的拓扑结构、目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率;
基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定目标通信路径。
进一步的,所述基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定目标通信路径,包括:
基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定所述目标软件定义网络中每条链路的状态信息;
基于所述每条链路的状态信息,确定所述目标软件定义网络中的可选目标链路;
基于所述可选目标链路,确定所述目标通信路径。
进一步的,基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定所述目标软件定义网络中每条链路的状态信息,包括:
当所述目标软件定义网络中存在可用带宽小于预设带宽阈值的链路时,确定该链路的状态信息为第一预设数值;
当所述目标软件定义网络中存在可用带宽大于所述预设带宽阈值的链路,且该链路的带宽利用率大于预设带宽利用率阈值时,确定该链路的状态信息为第二预设数值;
当所述目标软件定义网络中存在可用带宽大于所述预设带宽阈值的链路,且该链路的带宽利用率不大于预设带宽利用率阈值时,确定该链路的状态信息为第三预设数值。
进一步的,所述基于所述每条链路的状态信息,确定所述目标软件定义网络中的可选目标链路,包括:
确定所述状态信息为第三预设数值的链路为所述目标软件定义网络中的可选目标链路。
进一步的,所述基于所述可选目标链路,确定所述目标通信路径,包括:
基于所述可选目标链路,确定与所述目标终端之间的可选通信路径;
从所述可选通信路径中选取最短的通信路径为目标通信路径。
进一步的,所述通信路径确定方法还包括:
确定所述目标通信路径上每个交换机的数据输入端口和数据输出端口,并基于所述数据输入端口和数据输出端口,将所述待发送数据发送至所述目标终端。
本申请实施例还提供了一种通信路径确定装置,所述通信路径确定装置包括:
第一获取模块,用于获取待发送数据,并基于所述待发送数据携带的目标终端信息确定目标终端;
第二获取模块,用于确定所述获取模块确定的所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息;
第一确定模块,用于基于所述第一确定模块获取的所述状态信息,分别确定目标软件定义网络的拓扑结构、目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率;
第二确定模块,用于基于所述第一确定模块确定的所述拓扑结构、所述可用带宽及所述带宽利用率,确定目标通信路径。
进一步的,所述第二确定模块包括:
第一确定单元,用于基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定所述目标软件定义网络中每条链路的状态信息;
第二确定单元,用于基于所述每条链路的状态信息,确定所述目标软件定义网络中的可选目标链路;
第三确定单元,用于基于所述可选目标链路,确定所述目标通信路径。
进一步的,所述第一确定单元具体用于:
当所述目标软件定义网络中存在可用带宽小于预设带宽阈值的链路时,确定该链路的状态信息为第一预设数值;
当所述目标软件定义网络中存在可用带宽大于所述预设带宽阈值的链路,且该链路的带宽利用率大于预设带宽利用率阈值时,确定该链路的状态信息为第二预设数值;
当所述目标软件定义网络中存在可用带宽大于所述预设带宽阈值的链路,且该链路的带宽利用率不大于预设带宽利用率阈值时,确定该链路的状态信息为第三预设数值。
进一步的,所述第二确定单元具体用于:
确定所述状态信息为第三预设数值的链路为所述目标软件定义网络中的可选目标链路。
进一步的,所述第三确定单元具体用于:
基于所述可选目标链路,确定与所述目标终端之间的可选通信路径;
从所述可选通信路径中选取最短的通信路径为目标通信路径。
进一步的,所述通信路径确定装置还包括:
发送模块,用于确定所述目标通信路径上每个交换机的数据输入端口和数据输出端口,并基于所述数据输入端口和数据输出端口,将所述待发送数据发送至所述目标终端。
本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的通信路径确定方法的步骤。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述的通信路径确定方法的步骤。
本申请实施例提供的通信路径确定方法及装置,获取待发送数据,并基于所述待发送数据携带的目标终端信息确定目标终端;确定所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息;基于所述状态信息,分别确定目标软件定义网络的拓扑结构、目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率;基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定目标通信路径。与现有技术中的通信路径确定方法相比,本申请通过目标软件定义网络中每条链路的带宽利用率及可用带宽,确定该链路是否为拥堵链路,并选取流畅的链路作为通信路径,以避免使用拥堵的链路,提升通信的速度与质量。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种通信路径确定方法的流程图;
图2示出了本申请实施例所提供的另一种通信路径确定方法的流程图;
图3示出了本申请实施例所提供的一种通信路径确定装置的结构示意图之一;
图4示出了本申请实施例所提供的一种通信路径确定装置的结构示意图之二;
图5示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请可适用的应用场景进行介绍。本申请可应用于软件定义网络中终端之间的通信。本申请的执行主体可以是软件定义网络的控制器,软件定义网络中存在多个交换机,多个交换机通信连接,每个交换机与至少一个终端设备通信连接。
经研究发现,随着生活、工作的不断发展,人们对网络信息传输要求的也越来越高,其中,网络的数据传输速度和传输质量是网络信息传输中尤为重要的两个方面。网络的传输速度与质量受到链路带宽等因素的限制,在网络繁忙时,网络通信会因链路的拥塞而导致性能下降,如丢包、数据传输速率下降等。
基于此,本申请实施例提供了一种通信路径确定法,以降低数据传输的丢包率,减少数据传输时延,避免使用拥堵的链路,提升通信的速度与质量。
请参阅图1,图1为本申请实施例所提供的一种通信路径确定方法的流程图。所如图1中所示,本申请实施例提供的通信路径确定方法,包括:
S101、获取待发送数据,并基于所述待发送数据携带的目标终端信息确定目标终端。
该步骤中,可以先从需要发送数据的终端获取待发送数据,待发送数据携带有目标终端信息,可以根据目标终端信息中的目标终端地址,确定目标终端。
其中,目标终端和需要发送数据的终端处于同一个软件定义网络中,两者之间有至少一个交换机。
S102、确定所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息。
该步骤中,可以确定目标终端和需要发送数据的终端所处于的同一个软件定义网络为目标软件定义网络,并通过目标软件定义网络的控制器获取目标软件定义网络中每个交换机的状态信息。
其中,交换机的状态信息可以包括端口状态、MAC地址、端口的最大传输单元、端口的实际传输单元、每个交换机之间的连接关系等信息。
S103、基于所述状态信息,分别确定目标软件定义网络的拓扑结构、目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率。
该步骤中,可以通过每个交换机之间的连接关系、MAC地址、端口状态等状态信息,确定整个目标软件定义网络的拓扑关系,通过端口的最大传输单元、端口的实际传输单元、端口状态等状态信息,确定目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率。
S104、基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定目标通信路径。
该步骤中,可以根据每条链路对应的可用带宽和带宽利用率,确定目标软件定义网络中每条链路的运行状态,选择出不拥堵的链路,作为可以进行通信的链路,并根据这些链路的连接关系,确定出传输距离最短的通信路径,作为目标通信路径。
本申请实施例提供的通信路径确定方法,获取待发送数据,并基于所述待发送数据携带的目标终端信息确定目标终端;确定所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息;基于所述状态信息,分别确定目标软件定义网络的拓扑结构、目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率;基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定目标通信路径。与现有技术中的通信路径确定方法相比,本申请通过目标软件定义网络中每条链路的带宽利用率及可用带宽,确定该链路是否为拥堵链路,并选取流畅的链路作为通信路径,以避免使用拥堵的链路,提升通信的速度与质量。
请参阅图2,图2为本申请另一实施例提供的通信路径确定方法的流程图。如图2中所示,本申请实施例提供的通信路径确定方法,包括:
S201、获取待发送数据,并基于所述待发送数据携带的目标终端信息确定目标终端。
S202、确定所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息。
S203、基于所述状态信息,分别确定目标软件定义网络的拓扑结构、目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率。
S204、基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定所述目标软件定义网络中每条链路的状态信息。
该步骤中,拓扑结构表示了目标定义网络中每条链路的连接关系和位置关系,基于拓扑结构、可用带宽及带宽利用率,来确定目标软件定义网络中每条链路的状态信息,其中,每条链路的状态信息可以反映出该链路的工作状态、繁忙程度等。
S205、基于所述每条链路的状态信息,确定所述目标软件定义网络中的可选目标链路。
该步骤中,根据每条链路的状态信息,能够判断该链路是否能够作为与目标终端的通信路径,可以将状态信息满足预设条件的链路作为可选目标链路。
其中,可选目标链路是能够正常传输待发送数据至目标终端的链路。
S206、基于所述可选目标链路,确定所述目标通信路径。
该步骤中,多个可选目标链路可以组成多个通信路径,而在多个通信路径中,通信路径的长短不同,选取较长的通信路径会造成资源的浪费和传输时延的增长,因此,还要对多个可选目标链路组成的多个通信路径进行筛选,选择最优的通信路径作为目标通信路径。
其中,S201至S203的描述可以参照S101至S103的描述,并且能达到相同的技术效果,对此不做赘述。
可选的,基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定所述目标软件定义网络中每条链路的状态信息,包括:
当所述目标软件定义网络中存在可用带宽小于预设带宽阈值的链路时,确定该链路的状态信息为第一预设数值;
当所述目标软件定义网络中存在可用带宽大于所述预设带宽阈值的链路,且该链路的带宽利用率大于预设带宽利用率阈值时,确定该链路的状态信息为第二预设数值;
当所述目标软件定义网络中存在可用带宽大于所述预设带宽阈值的链路,且该链路的带宽利用率不大于预设带宽利用率阈值时,确定该链路的状态信息为第三预设数值。
该步骤中,可以将目标软件定义网络的拓扑结构、每条链路的可用带宽分别变形成一个拓扑矩阵和一个目标软件定义网络的链路可用带宽矩阵,拓扑矩阵和链路可用带宽矩阵中每个元素以及对应一条链路,当存在链路对应的可用带宽和带宽利用率满足上述条件时,将拓扑矩阵中该链路对应的元素替换为上述条件对应的预设数值,得到链路状态信息矩阵,链路状态信息矩阵中的每个元素为其对应的链路的状态信息。
其中,预设带宽阈值和预设带宽利用率可以根据实际情况而定,当链路的状态信息的值为第一预设数值时,表示该链路拥塞严重,将其视为断开;当链路的状态信息的值为第二预设数值时,表示该链路的带宽资源占用较多,但带宽资源可供自身的正常使用使用,不将其作为可选目标链路;当链路的状态信息的值为第三预设数值时,表示该链路的资源占用较少,能够作为可选目标链路。
可选的,所述基于所述每条链路的状态信息,确定所述目标软件定义网络中的可选目标链路,包括:
确定所述状态信息为第三预设数值的链路为所述目标软件定义网络中的可选目标链路。
这样,即可避免链路的资源占用过多导致的链路拥塞,进而提高通信的质量与传输速度。
可选的,所述基于所述可选目标链路,确定所述目标通信路径,包括:
基于所述可选目标链路,确定与所述目标终端之间的可选通信路径;从所述可选通信路径中选取最短的通信路径为目标通信路径。
这样,可以避免资源的浪费,缩短传输时延。
可选的,所述通信路径确定方法还包括:
确定所述目标通信路径上每个交换机的数据输入端口和数据输出端口,并基于所述数据输入端口和数据输出端口,将所述待发送数据发送至所述目标终端。
该步骤中,可以根据目标通信路径,确定目标通信路径上每个交换机的数据输入端口和数据输出端口,然后控制目标软件定义网络的底层设备通过数据输入端口和数据输出端口,将待发送数据发送至目标终端。
本申请实施例提供的通信路径确定方法,获取待发送数据,并基于所述待发送数据携带的目标终端信息确定目标终端;确定所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息;确定所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息;基于所述状态信息,分别确定目标软件定义网络的拓扑结构、目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率;基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定所述目标软件定义网络中每条链路的状态信息;基于所述每条链路的状态信息,确定所述目标软件定义网络中的可选目标链路;基于所述可选目标链路,确定所述目标通信路径。与现有技术中的通信路径确定方法相比,本申请通过目标软件定义网络中每条链路的带宽利用率及可用带宽,确定该链路是否为拥堵链路,并选取流畅的链路作为通信路径,以避免使用拥堵的链路,提升通信的速度与质量。
请参阅图3、图4,图3为本申请实施例所提供的一种通信路径确定装置的结构示意图之一,图4为本申请实施例所提供的一种通信路径确定装置的结构示意图之二。如图3中所示,所述通信路径确定装置300包括:
第一获取模块310,用于获取待发送数据,并基于所述待发送数据携带的目标终端信息确定目标终端;
第二获取模块320,用于确定所述获取模块310确定的所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息;
第一确定模块330,用于基于所述第一确定模块320获取的所述状态信息,分别确定目标软件定义网络的拓扑结构、目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率;
第二确定模块340,用于基于所述第一确定模块330确定的所述拓扑结构、所述可用带宽及所述带宽利用率,确定目标通信路径。
进一步的,如图4所示,所述第二确定模块340包括:
第一确定单元341,用于基于所述第一确定模块330确定的所述拓扑结构、所述可用带宽及所述带宽利用率,确定所述目标软件定义网络中每条链路的状态信息;
第二确定单元342,用于基于所述第一确定单元341确定的所述每条链路的状态信息,确定所述目标软件定义网络中的可选目标链路;
第三确定单元343,用于基于所述第二确定单元342确定的所述可选目标链路,确定所述目标通信路径。
进一步的,所述第一确定单元341具体用于:
当所述目标软件定义网络中存在可用带宽小于预设带宽阈值的链路时,确定该链路的状态信息为第一预设数值;
当所述目标软件定义网络中存在可用带宽大于所述预设带宽阈值的链路,且该链路的带宽利用率大于预设带宽利用率阈值时,确定该链路的状态信息为第二预设数值;
当所述目标软件定义网络中存在可用带宽大于所述预设带宽阈值的链路,且该链路的带宽利用率不大于预设带宽利用率阈值时,确定该链路的状态信息为第三预设数值。
进一步的,所述第二确定单元342具体用于:
确定所述状态信息为第三预设数值的链路为所述目标软件定义网络中的可选目标链路。
进一步的,所述第三确定单元343具体用于:
基于所述可选目标链路,确定与所述目标终端之间的可选通信路径;
从所述可选通信路径中选取最短的通信路径为目标通信路径。
进一步的,所述通信路径确定装置300还包括:
发送模块350,用于确定所述目标通信路径上每个交换机的数据输入端口和数据输出端口,并基于所述数据输入端口和数据输出端口,将所述待发送数据发送至所述目标终端。
本申请实施例提供的通信路径确定装置,获取待发送数据,并基于所述待发送数据携带的目标终端信息确定目标终端;确定所述目标终端所在的目标软件定义网络,并获取所述目标软件定义网络中每个交换机的状态信息;基于所述状态信息,分别确定目标软件定义网络的拓扑结构、目标软件定义网络中每条链路的可用带宽及目标软件定义网络中每条链路的带宽利用率;基于所述拓扑结构、所述可用带宽及所述带宽利用率,确定目标通信路径。与现有技术中的通信路径确定装置相比,本申请通过目标软件定义网络中每条链路的带宽利用率及可用带宽,确定该链路是否为拥堵链路,并选取流畅的链路作为通信路径,以避免使用拥堵的链路,提升通信的速度与质量。
请参阅图5,图5为本申请实施例所提供的一种电子设备的结构示意图。如图5中所示,所述电子设备500包括处理器510、存储器520和总线530。
所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,所述机器可读指令被所述处理器510执行时,可以执行如上述图1以及图2所示方法实施例中的通信路径确定方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的通信路径确定方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。