CN116366524B - 一种基于内容分发网络的路径计算方法及装置 - Google Patents

一种基于内容分发网络的路径计算方法及装置 Download PDF

Info

Publication number
CN116366524B
CN116366524B CN202310631104.1A CN202310631104A CN116366524B CN 116366524 B CN116366524 B CN 116366524B CN 202310631104 A CN202310631104 A CN 202310631104A CN 116366524 B CN116366524 B CN 116366524B
Authority
CN
China
Prior art keywords
path
solving
node
source station
nodes
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
CN202310631104.1A
Other languages
English (en)
Other versions
CN116366524A (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.)
Tianyi Cloud Technology Co Ltd
Original Assignee
Tianyi Cloud Technology 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 Tianyi Cloud Technology Co Ltd filed Critical Tianyi Cloud Technology Co Ltd
Priority to CN202310631104.1A priority Critical patent/CN116366524B/zh
Publication of CN116366524A publication Critical patent/CN116366524A/zh
Application granted granted Critical
Publication of CN116366524B publication Critical patent/CN116366524B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/14Routing performance; Theoretical aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种基于内容分发网络的路径计算方法及装置,通过起始节点与源站地址之间的所有父层节点以及任意两个相邻节点之间的路径值构建有向图,并结合深度优先遍历算法、路径阈值以及跳数阈值来控制整个路径求解过程中的回溯点,不仅利于收敛计算量,使其在超多节点两两互相探测的场景下依然能很好支持计算多个较优路径;其次引入小顶堆数据结构,速度快且空间使用少,高效解决计算多个较优路径的排序问题,进而提高整体效率。

Description

一种基于内容分发网络的路径计算方法及装置
技术领域
本申请属于网络数据传输技术领域,特别的涉及一种基于内容分发网络的路径计算方法及装置。
背景技术
内容分发网络,一般指构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容以及降低网络拥塞,提高用户访问响应速度和命中率。在内容分发网络中,动态加速是针对客户源站需要动态交互的内容进行的内容分发网络加速服务,除了利用压缩传输、协议优化、链路复用和内核优化等自研技术手段外,通过智能选路实时计算出一条优质回源路径也是非常关键的一个环节。
在现有的一些计算优质回源路径的技术中,每次只能获取一条较优路径,计算速度相对较快,但对于需要获取到达同一个目标节点的其它次优路径时不适用;且随着内容分发网络业务发展,边缘主机组增多以及探测数据量急剧增大,尤其是内容分发网络内部两两互相探测的节点增多,导致在计算多个最优路径时计算量过大,以及对于多个最优路径排序的效率带来极大影响。
发明内容
本申请为解决上述提到的对于需要获取到达同一个目标节点的其它次优路径时不适用;且随着内容分发网络业务发展,边缘主机组增多以及探测数据量急剧增大,尤其是内容分发网络内部两两互相探测的节点增多,导致在计算多个最优路径时计算量过大,以及对于多个最优路径排序的效率带来极大影响等技术缺陷,提出一种基于内容分发网络的路径计算方法及装置,其技术方案如下:
第一方面,本申请实施例提供了一种基于内容分发网络的路径计算方法,包括:
根据接收到的客户请求确定起始节点以及源站地址,并基于源站地址的解析处理结果得到至少两个源站节点;
基于预设的数据库查找出起始节点与每个源站节点之间的所有父层节点,并在起始节点、每个源站节点以及所有父层节点中获取任意两个相邻节点之间的网络探测数据,根据预设的权重值以及网络探测数据计算出任意两个相邻节点之间的路径值;
根据起始节点、源站地址、所有父层节点以及任意两个相邻节点之间的路径值构建有向图,并判断起始节点到每个源站节点之间是否开启计算路径功能;
当检测到起始节点到每个源站节点之间开启计算路径功能时,基于深度优先遍历算法对有向图进行路径求解,并当检测到第m求解路径的总路径值未超过预设路径阈值时,判断第m求解路径是否写入小顶堆数据结构;其中,第m求解路径包括起始节点以及至少一个父层节点,m为正整数,小顶堆数据结构设置n个求解路径存储位置,n为预设个数阈值;
当在预设时间间隔内检测到小顶堆数据结构未写入求解路径时,将小顶堆数据结构内的所有求解路径作为目标求解路径。
在第一方面的一种可选方案中,在判断起始节点到每个源站节点之间是否开启计算路径功能之后,还包括:
当检测到起始节点到每个源站节点之间未开启计算路径功能时,在与起始节点相邻的所有父层节点中确定出路径值最小的第一父层节点;
在与第一父层节点相邻的所有父层节点中确定出路径值最小的第二父层节点,并直至确定出第j父层节点相邻的所有节点中包含源站地址时,将与起始节点、j个父层节点以及源站地址对应的路径作为目标求解路径;其中,j为大于2的正整数。
在第一方面的又一种可选方案中,在基于深度优先遍历算法对有向图进行路径求解之后,检测到第m求解路径的总路径值未超过预设路径阈值之前,还包括:
获取当前求解路径中父层节点的个数,并根据父层节点的个数确定路径跳数;
当检测到路径跳数未超过预设跳数阈值时,将当前求解路径作为第m求解路径,并根据第m求解路径中任意两个相邻节点之间的路径值计算出第m求解路径的总路径值;
当检测到路径跳数超过预设跳数阈值时,判断当前求解路径中倒数第二父层节点所相邻的所有节点中是否包含源站地址;
当检测到倒数第二父层节点所相邻的所有节点中包含源站地址时,将当前求解路径中倒数第一父层节点替换为源站地址,并将替换后的当前求解路径作为第m求解路径,根据第m求解路径中任意两个相邻节点之间的路径值计算出第m求解路径的总路径值。
在第一方面的又一种可选方案中,判断第m求解路径是否写入小顶堆数据结构,包括:
当检测到第m求解路径中包含源站地址时,若m小于或等于n,将第m求解路径写入小顶堆数据结构,并按照总路径值从大到小的顺序对小顶堆数据结构中所有的求解路径进行排序;其中,小顶堆数据结构中的堆尾为总路径值最大的求解路径。
在第一方面的又一种可选方案中,判断第m求解路径是否写入小顶堆数据结构,还包括:
当检测到第m求解路径中包含源站地址时,若m大于n,判断第m求解路径的总路径值是否超过小顶堆数据结构中堆尾所对应的总路径值;
当检测到第m求解路径的总路径值超过堆尾所对应的总路径值时,不将第m求解路径写入小顶堆数据结构;
当检测到第m求解路径的总路径值未超过堆尾所对应的总路径值时,对小顶堆数据结构中堆尾所对应的求解路径进行删除处理,并将第m求解路径写入小顶堆数据结构。
在第一方面的又一种可选方案中,将第m求解路径写入小顶堆数据结构之后,还包括:
按照总路径值从大到小的顺序对小顶堆数据结构中所有的求解路径重新进行排序,并将总路径值最大的求解路径重新作为小顶堆数据结构中的堆尾。
在第一方面的又一种可选方案中,网络探测数据包括丢包率、首包时间以及下载速率等至少两种。
第二方面,本申请实施例提供了一种基于内容分发网络的路径计算装置,包括:
请求处理模块,用于根据接收到的客户请求确定起始节点以及源站地址,并基于源站地址的解析处理结果得到至少两个源站节点;
路径计算模块,用于基于预设的数据库查找出起始节点与每个源站节点之间的所有父层节点,并在起始节点、每个源站节点以及所有父层节点中获取任意两个相邻节点之间的网络探测数据,根据预设的权重值以及网络探测数据计算出任意两个相邻节点之间的路径值;
图形构建模块,用于根据起始节点、源站地址、所有父层节点以及任意两个相邻节点之间的路径值构建有向图,并判断起始节点到每个源站节点之间是否开启计算路径功能;
数据更新模块,用于当检测到起始节点到每个源站节点之间开启计算路径功能时,基于深度优先遍历算法对有向图进行路径求解,并当检测到第m求解路径的总路径值未超过预设路径阈值时,判断第m求解路径是否写入小顶堆数据结构;其中,第m求解路径包括起始节点以及至少一个父层节点,m为正整数,小顶堆数据结构设置n个求解路径存储位置,n为预设个数阈值;
目标确定模块,用于当在预设时间间隔内检测到小顶堆数据结构未写入求解路径时,将小顶堆数据结构内的所有求解路径作为目标求解路径。
第三方面,本申请实施例提供了一种基于内容分发网络的路径计算装置,包括处理器以及存储器;
处理器与存储器连接;
存储器,用于存储可执行程序代码;
处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现本申请实施例第一方面或第一方面的任意一种实现方式提供的基于内容分发网络的路径计算方法。
第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,可实现本申请实施例第一方面或第一方面的任意一种实现方式提供的基于内容分发网络的路径计算方法。
在本申请实施例中,可在基于内容分发网络计算多个较优路径时,根据接收到的客户请求确定起始节点以及源站地址,并基于源站地址的解析处理结果得到至少两个源站节点;基于预设的数据库查找出起始节点与每个源站节点之间的所有父层节点,并在起始节点、每个源站节点以及所有父层节点中获取任意两个相邻节点之间的网络探测数据,根据预设的权重值以及网络探测数据计算出任意两个相邻节点之间的路径值; 根据起始节点、源站地址、所有父层节点以及任意两个相邻节点之间的路径值构建有向图,并判断起始节点到每个源站节点之间是否开启计算路径功能; 当检测到起始节点到每个源站节点之间开启计算路径功能时,基于深度优先遍历算法对有向图进行路径求解,并当检测到第m求解路径的总路径值未超过预设路径阈值时,判断第m求解路径是否写入小顶堆数据结构;当在预设时间间隔内检测到小顶堆数据结构未写入求解路径时,将小顶堆数据结构内的所有求解路径作为目标求解路径。通过起始节点与源站地址之间的所有父层节点以及任意两个相邻节点之间的路径值构建有向图,并结合深度优先遍历算法、路径阈值以及跳数阈值来控制整个路径求解过程中的回溯点,不仅利于收敛计算量,使其在超多节点两两互相探测的场景下依然能很好支持计算多个较优路径;其次引入小顶堆数据结构,速度快且空间使用少,高效解决计算多个较优路径的排序问题,进而提高整体效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于内容分发网络的路径计算方法的整体流程图;
图2为本申请实施例提供的一种基于内容分发网络的路径计算系统的架构示意图;
图3为本申请实施例提供的一种有向图的结构示意图;
图4为本申请实施例提供的一种目标求解路径的计算效果示意图;
图5为本申请实施例提供的一种基于内容分发网络的路径计算装置的结构示意图;
图6为本申请实施例提供的又一种基于内容分发网络的路径计算装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在下述介绍中,术语“第一”、“第二”仅为用于描述的目的,而不能理解为指示或暗示相对重要性。下述介绍提供了本申请的多个实施例,不同实施例之间可以替换或者合并组合,因此本申请也可认为包含所记载的相同和/或不同实施例的所有可能组合。因而,如果一个实施例包含特征A、B、C,另一个实施例包含特征B、D,那么本申请也应视为包括含有A、B、C、D的一个或多个所有其他可能的组合的实施例,尽管该实施例可能并未在以下内容中有明确的文字记载。
下面的描述提供了示例,并且不对权利要求书中阐述的范围、适用性或示例进行限制。可以在不脱离本申请内容的范围的情况下,对描述的元素的功能和布置做出改变。各个示例可以适当省略、替代或添加各种过程或组件。例如所描述的方法可以以所描述的顺序不同的顺序来执行,并且可以添加、省略或组合各种步骤。此外,可以将关于一些示例描述的特征组合到其他示例中。
现有技术在计算多个较优路径时,一般直接利用深度优先遍历算法,通过穷举法获取所有可能路径,其原理可理解为把每一个分支深入到不能再深入为止,而且每个节点只能访问一次;当发现无路可走时,回溯到上一个节点,在回溯节点继续深入下一个可达相邻节点;当回溯节点可达的相邻节点都走完后,再继续回溯,直到回溯节点为起始节点且其可达相邻节点都已走完时,整个深度遍历完成,此时可获得起始节点到目标节点的所有路径全集。对于多个较优路径全集的求解,此处可以但不局限于假设有13个父层节点两两互相探测,并且起始节点经过这13个父层节点到达目标节点,其大概的路径全集如下:
可以看出,把起始节点和目标节点固定两端,将中间节点进行随机组合排列大概有约170亿条路径,这样的求解路径全集显然是巨大的计算量,在时间和空间都不占据优势。
基于此请参阅图1,图1示出了本申请实施例提供的一种基于内容分发网络的路径计算方法的整体流程图。
如图1所示,该基于内容分发网络的路径计算方法至少可以包括以下步骤:
步骤102、根据接收到的客户请求确定起始节点以及源站地址,并基于源站地址的解析处理结果得到至少两个源站节点。
在本申请实施例中,基于内容分发网络的路径计算方法可以但不局限于应用在内容分发网络中某一边缘节点的控制终端,或是直接应用在内容分发网络对应的控制终端,以通过该内容分发网络中的一个或是已建立连接的边缘节点接收客户请求,根据该客户请求来确定出相应的起始节点以及源站地址,通过起始节点与源站地址之间的所有父层节点以及任意两个相邻节点之间的路径值构建有向图,并结合深度优先遍历算法、路径阈值以及跳数阈值来控制整个路径求解过程中的回溯点,不仅利于收敛计算量,使其在超多节点两两互相探测的场景下依然能很好支持计算多个较优路径;其次,在存储多个较优路径时还引入小顶堆数据结构,速度快且空间使用少,高效解决计算多个较优路径的排序问题,进而提高整体效率。
此处可参阅图2示出的本申请实施例提供的一种基于内容分发网络的路径计算系统的架构示意图,如图2所示,基于内容分发网络的路径计算系统在某一边缘节点接收到用户请求之后,可根据用户请求确定出相应的源站地址,并基于该源站地址的解析处理结果得到两个源站节点(图2中最左侧的两个服务器图形)。此处用户请求对应的边缘节点(也可理解为起始节点)到该两个源站节点之间包括两层父层节点,其中边缘节点到源站节点的传递路径共有三种,分别为包含第一层第一父层节点(图2中靠近用户一侧的三个服务器图形中的第一个)以及第二层第一父层节点(图2中靠近源站节点一侧的两个服务器图形中的第一个),包含第一层第二父层节点(图2中靠近用户一侧的三个服务器图形中的第二个)以及第二层第一父层节点(图2中靠近源站节点一侧的两个服务器图形中的第一个),包含第一层第三父层节点(图2中靠近用户一侧的三个服务器图形中的第三个)以及第二层第二父层节点(图2中靠近源站节点一侧的两个服务器图形中的第二个)。
具体地,在基于内容分发网络计算多个较优路径时,可以但不局限于根据内容分发网络中某一边缘节点接收到的客户请求,将该边缘节点作为起始节点,并可从接收到的客户请求中提取出相应的源站地址,以通过该源站地址的解析处理结果得到至少两个源站节点(此处可以但不局限于由内容分发网络的边缘agent对该源站地址进行解析处理),其中,起始节点以及每个源站节点均可用IP地址进行表示,也即每个节点对应为一个IP地址。可以理解的是,客户请求可视为一种对域名的访问请求,例如客户请求为想搜索一个内容时,可视为一种对www.xxx.com的访问请求,例如但不局限于通过百度搜索界面来满足客户的搜索请求;此处对域名的解析处理为本领域的惯用手段,每个域名经过解析处理之后可以但不局限于获取到至少两个源站节点(也即IP地址,例如对上述与百度搜索界面对应的域名进行解析可得到五个IP地址)。
步骤104、基于预设的数据库查找出起始节点与每个源站节点之间的所有父层节点,并在起始节点、每个源站节点以及所有父层节点中获取任意两个相邻节点之间的网络探测数据,根据预设的权重值以及网络探测数据计算出任意两个相邻节点之间的路径值。
具体地,在得到至少两个源站节点之后,可以但不局限于通过预设的数据库,查找出在起始节点与每个源站节点之间的所有父层节点,其中,预设的数据库可包括内容分发网络所设置的所有节点中任意两个节点之间所包含的所有父层节点(也即中间节点),此处任意两个节点之间所包含的所有父层节点可理解为在两个节点之间的距离区域内所涵盖的所有中间节点,例如但不局限于可根据该两个节点的坐标计算出相应的距离区域坐标范围,并将处于该距离区域坐标范围内的所有坐标所对应的节点均作为父层节点。
进一步的,在确定出起始节点与每个源站节点之间的所有父层节点之后,可在起始节点、每个源站节点以及所有父层节点中获取任意两个相邻节点之间的网络探测数据,该网络探测数据可以但不局限于为两个相邻节点在进行网络传输过程中对应的首包时间、丢包率以及下载速率等综合多个指标中任意至少两种,且该网络探测数据的获取方式可以但不局限于由与节点对应的边缘agent组件进行探测计算并上报得到,此处不限定于此。
进一步的,在起始节点、每个源站节点以及所有父层节点中获取到任意两个相邻节点之间的网络探测数据之后,可根据预设的权重值对该网络探测数据进行加权求和计算,以得到任意两个相邻节点之间的路径值。此处以任意两个相邻节点之间的网络探测数据分别为首包时间A、丢包率B以及下载速率C为例,预设的权重值可为首包时间对应为a,丢包率对应为b以及下载速率对应为c,a + b + c =1,则该任意两个相邻节点之间的路径值可以表示为:
A*a + B*b +C*c
可以理解的是,任意两个相邻节点之间的路径值越小,表明该两个相邻节点之间的网络质量较好,也即该两个相邻节点之间的数据传输耗时较短。
步骤106、根据起始节点、源站地址、所有父层节点以及任意两个相邻节点之间的路径值构建有向图,并判断起始节点到每个源站节点之间是否开启计算路径功能。
具体地,在得到起始节点、每个源站节点以及所有父层节点中任意两个相邻节点之间的路径值之后,可以但不局限于将该起始节点、每个源站节点以及所有父层节点进行整合处理,例如将与起始节点相邻的所有父层节点作为有向图中的第一层;接着可在该第一层的所有父层节点中分别确定出相邻的所有父层节点,并将该再次确定出的所有父层节点作为有向图中的第二层,并依次类推,直至确定出有向图中的最后一层;其中,有向图中的最后一层可理解为与每个源站节点相邻的所有父层节点,且由于每个源站节点均为同一源站地址解析得到,此处在有向图中可将所有源站节点表示为一个源站地址(也即源站IP),且起始节点也可表示为一个起始地址(也即起始IP),并结合任意两个相邻节点之间的路径值对任意两个相邻节点之间进行赋值,以构建出有向图。
此处还可参阅图3示出的本申请实施例提供的一种有向图的结构示意图,如图3所示,该有向图中源站IP与起始IP之间设置有两层,其中第一层包括有父层节点1、父层节点2以及父层节点3,该起始IP与父层节点1、父层节点2以及父层节点3之间均具有网络传递功能,第二层包括父层节点4以及父层节点5,其中父层节点1与父层节点4之间具有网络传递功能,父层节点2与父层节点4以及父层节点5之间均具有网络传递功能,父层节点3与父层节点5之间具有网络传递功能,且父层节点4以及父层节点5均与源站IP之间具有网络传递功能。可以理解的是,该有向图中各个具有网络传递功能的相邻两个节点之间设置有路径值(图3中未示出),且在该有向图中父层节点1与父层节点2之间不具有网络传递功能,父层节点2以及父层节点3之间不具有网络传递功能,父层节点4以及父层节点5之间不具有网络传递功能。
进一步的,在构建出有向图之后,可根据用户请求所对应的源站地址判断起始节点到每个源站节点之间是否开启计算路径功能,其判断方式可以但不局限于为从源站地址中按照域名提取出相应的下发配置,并从该下发配置中读取出的字符数据判断是否开启计算路径功能,例如与计算路径功能对应的字符数据为1时,表征具有计算路径功能;当与计算路径功能对应的字符数据为0时,表征不具有计算路径功能。
可以理解的是,通过判断起始节点到每个源站节点之间是否开启计算路径功能,可便于在起始节点与源站地址之间快速确定出多个较优路径,且有效提前筛除无法满足需求的其他路径。
步骤108、当检测到起始节点到每个源站节点之间开启计算路径功能时,基于深度优先遍历算法对有向图进行路径求解,并当检测到第m求解路径的总路径值未超过预设路径阈值时,判断第m求解路径是否写入小顶堆数据结构。
具体地,当检测到起始节点到每个源站节点之间开启计算路径功能时,可基于深度优先遍历算法对该有向图进行路径求解,并可对得到的每条求解路径所对应的总路径值进行判断,可能的,当检测到第m求解路径的总路径值未超过预设路径阈值时,表明该第m求解路径可作为多条较优路径的一条备选路径,进而可判断该第m求解路径是否可写入小顶堆数据结构。其中,第m求解路径可以但不局限于包括起始节点、源站地址以及至少一个父层节点,其所对应的总路径值可通过对该第m求解路径中任意两个相邻节点之间的路径值进行累加计算得到,m为正整数。此处,深度优先遍历算法为本领域的惯用技术手段,其可计算出有向图中所有可行的求解路径,在本申请实施例中不再过多赘述。
可能的,当检测到第m求解路径的总路径值超过预设路径阈值时,表明该第m求解路径无法作为多条较优路径的一条备选路径,进而可基于深度优先遍历算法继续对该有向图进行路径求解,以得到第m+1求解路径,并再对该第m+1求解路径的总路径值进行判断。
可以理解的是,在本申请实施例中第m求解路径还可以但不局限于包括起始节点以及至少一个父层节点,换言之,还可对该第m求解路径中计算出的总路径值进行实时计算,并实时判断该总路径值是否超过预设路径阈值。例如当前得到的第m求解路径包括起始节点以及父层节点1,在检测到该第m求解路径中起始节点与父层节点1之间的路径值未超过预设路径阈值时,可在该第m求解路径的基础上继续基于深度优先遍历算法进行计算;接着当该第m求解路径包括起始节点、父层节点1以及父层节点2时,可计算出该第m求解路径中起始节点与父层节点1之间的路径值,以及父层节点1以及父层节点2之间的路径值的总和,并当检测到该总和仍未超过预设路径阈值时,可在该当前求解路径的基础上继续基于深度优先遍历算法进行计算,以得到下一父层节点或是源站地址,并重复上述操作。需要注意的是,当检测到该第m求解路径中的总路径值超过预设路径阈值时,停止该第m求解路径的后续计算,并返回至该第m求解路径中的倒数第二节点,以根据该倒数第二节点继续进行其他求解路径的计算,若未找到其他求解路径,则表明该第m求解路径不适用,进而可进行第m+1求解路径的计算。
作为本申请实施例的一种可选,在判断起始节点到每个源站节点之间是否开启计算路径功能之后,还包括:
当检测到起始节点到每个源站节点之间未开启计算路径功能时,在与起始节点相邻的所有父层节点中确定出路径值最小的第一父层节点;
在与第一父层节点相邻的所有父层节点中确定出路径值最小的第二父层节点,并直至确定出第j父层节点相邻的所有节点中包含源站地址时,将与起始节点、j个父层节点以及源站地址对应的路径作为目标求解路径;其中, j为大于2的正整数;
当检测到起始节点到每个源站节点之间未开启计算路径功能时,表明此时起始节点与源站地址之间无法有效求解出多个较优路径,进而可直接确定出起始节点与源站地址之间的最优路径。
具体地,当检测到起始节点到每个源站节点之间未开启计算路径功能时,可先在与起始节点相邻的所有父层节点中确定出路径值最小的第一父层节点,接着在与该第一父层节点相邻的所有父层节点中确定出路径值最小的第二父层节点,并重复该确定第二父层节点的方式,直至确定出的第j父层节点相邻的所有节点中包含源站地址,此时可将起始节点、j个父层节点以及源站地址对应的路径作为目标求解路径。
此处可参阅图4示出的本申请实施例提供的一种目标求解路径的计算效果示意图,如图4所示,上半部分可对应为一种构建的有向图,该有向图中包括起始节点A、父层节点B、父层节点C、父层节点D以及源站地址E,下半部分中第一步为判断起始节点A分别到父层节点B、父层节点C、父层节点D之间路径值最小的父层节点,并确定出第一父层节点为父层节点B;第二步为判断该父层节点B分别到父层节点D以及源站地址E之间路径值最小的父层节点,并确定出第二父层节点为父层节点D;第三步为判断该父层节点D分别到父层节点C以及源站地址E之间路径值最小的父层节点,并确定出第三父层节点为父层节点C;第四步为确定目标求解路径为起始节点A到父层节点B到父层节点D到父层节点C到源站地址E。
作为本申请实施例的又一种可选,在基于深度优先遍历算法对有向图进行路径求解之后,检测到第m求解路径的总路径值未超过预设路径阈值之前,还包括:
获取当前求解路径中父层节点的个数,并根据父层节点的个数确定路径跳数;
当检测到路径跳数未超过预设跳数阈值时,将当前求解路径作为第m求解路径,并根据第m求解路径中任意两个相邻节点之间的路径值计算出第m求解路径的总路径值;
当检测到路径跳数超过预设跳数阈值时,判断当前求解路径中倒数第二父层节点所相邻的所有节点中是否包含源站地址;
当检测到倒数第二父层节点所相邻的所有节点中包含源站地址时,将当前求解路径中倒数第一父层节点替换为源站地址,并将替换后的当前求解路径作为第m求解路径,根据第m求解路径中任意两个相邻节点之间的路径值计算出第m求解路径的总路径值。
具体地,在基于深度优先遍历算法对有向图进行路径求解之后,可实时获取当前求解路径中父层节点的个数,并根据该父层节点的个数确定路径跳数,其中,该路径跳数可以但不局限于为父层节点个数+1。接着,当检测到该路径跳数超过预设跳数阈值时,表明此时当前求解路径无法作为第m求解路径(也即无法作为多个较优路径中的备选路径),则可判断该当前求解路径中倒数第二父层节点所相邻的所有节点中是否包含源站地址。可能的,当确定该当前求解路径中倒数第二父层节点所相邻的所有节点中包含源站地址时,将当前求解路径中倒数第一父层节点替换为源站地址,并再次获取当前求解路径中父层节点的个数,以便于再次确定出的路径跳数未超过预设跳数阈值时,将该经过替换后的当前求解路径作为第m求解路径。可以理解的是,若再次确定出的路径跳数仍超过预设跳数阈值,则可对该当前求解路径中的倒数第一父层节点进行剔除处理,并判断该当前求解路径中倒数第三父层节点所相邻的所有节点中是否包含源站地址,依次类推。
当检测到该路径跳数未超过预设跳数阈值时,表明此时当前求解路径可作为第m求解路径(也即可作为多个较优路径中的备选路径),则将该当前求解路径作为第m求解路径,并根据第m求解路径中任意两个相邻节点之间的路径值计算出第m求解路径的总路径值,以便于后续与预设路径阈值的判断操作。
在本申请实施例中,可通过以下两个优化指标来控制回溯节点以达到收敛计算量的目的:1)路径跳数控制,在计算求解路径过程中配置路径跳数来控制路径深度。显然,路径跳数过大对实际动态加速效果不佳,在满足极致动态加速效果下限制路径跳数可大大减少计算量;2)路径阈值控制,在计算求解路径过程中,还可判断当前路径值是否超过阈值,如果超过阈值则停止当前路径计算,立即回溯到上一个节点继续尝试其它未访问的可达相邻节点,这样可以提前过滤掉路径值过大的路径,减少计算量的同时也能保证回源路径的质量。
作为本申请实施例的又一种可选,判断第m求解路径是否写入小顶堆数据结构,包括:
当检测到第m求解路径中包含源站地址时,若m小于或等于n,将第m求解路径写入小顶堆数据结构,并按照总路径值从大到小的顺序对小顶堆数据结构中所有的求解路径进行排序;其中,小顶堆数据结构中的堆尾为总路径值最大的求解路径。
其中,小顶堆数据结构设置有n个求解路径存储位置,该n可理解为多个较优路径的具体数值,也即预设个数阈值,且当该小顶堆数据结构中的n个求解路径存储位置全部被占满时,若仍计算出其他求解路径,则可根据该其他求解路径的总路径值判断是否对该小顶堆数据结构中所存储的任意一个求解路径进行替换处理,以保障该小顶堆数据结构中所存储的n个求解路径为实时的目标较优路径。
具体地,在判断第m求解路径是否写入小顶堆数据结构的过程中,当检测到第m求解路径中包含源站地址时,若m小于或等于n,表明此时小顶堆数据结构中的n个求解路径存储位置未被全部占满,则可直接将第m求解路径写入小顶堆数据结构,并按照总路径值从大到小的顺序对小顶堆数据结构中所有的求解路径进行排序。可以理解的是,此处可将小顶堆数据结构中的堆尾作为总路径值最大的求解路径,以便于当该小顶堆数据结构中的求解路径存储位置全部被占满时,可快速通过该堆尾所对应的总路径值判断是否对该小顶堆数据结构进行更新处理。
当m大于n时,表明此时小顶堆数据结构中的n个求解路径存储位置被全部占满,则可判断此时第m求解路径的总路径值是否超过小顶堆数据结构中堆尾所对应的总路径值;当检测到超过小顶堆数据结构中堆尾所对应的总路径值时,表明该小顶堆数据结构需要进行更新处理,进而可将该小顶堆数据结构中堆尾所对应的求解路径进行删除处理,并把第m求解路径写入至该小顶堆数据结构中,此时可再次按照总路径值从大到小的顺序对该小顶堆数据结构中所有的求解路径进行排序,以将小顶堆数据结构中的堆尾作为当前总路径值最大的求解路径。
当检测到未超过小顶堆数据结构中堆尾所对应的总路径值时,表明该第m求解路径无法作为多个较优路径的备选,则可不将该第m求解路径写入小顶堆数据结构。
步骤110、当在预设时间间隔内检测到小顶堆数据结构未写入求解路径时,将小顶堆数据结构内的所有求解路径作为目标求解路径。
具体地,当在预设时间间隔内检测到小顶堆数据结构未写入求解路径时,表明此时深度优先遍历算法对有向图进行路径求解已完成或是刚刚完成,进而可直接将小顶堆数据结构内的所有求解路径作为目标求解路径,进而高效解决计算多个较优路径的排序问题,提高整体效率。
请参阅图5,图5示出了本申请实施例提供的一种基于内容分发网络的路径计算装置的结构示意图。
如图5所示,该基于内容分发网络的路径计算装置至少可以包括请求处理模块501、路径计算模块502、图形构建模块503、数据更新模块504以及目标确定模块505,其中:
请求处理模块501,用于根据接收到的客户请求确定起始节点以及源站地址,并基于源站地址的解析处理结果得到至少两个源站节点;
路径计算模块502,用于基于预设的数据库查找出起始节点与每个源站节点之间的所有父层节点,并在起始节点、每个源站节点以及所有父层节点中获取任意两个相邻节点之间的网络探测数据,根据预设的权重值以及网络探测数据计算出任意两个相邻节点之间的路径值;
图形构建模块503,用于根据起始节点、源站地址、所有父层节点以及任意两个相邻节点之间的路径值构建有向图,并判断起始节点到每个源站节点之间是否开启计算路径功能;
数据更新模块504,用于当检测到起始节点到每个源站节点之间开启计算路径功能时,基于深度优先遍历算法对有向图进行路径求解,并当检测到第m求解路径的总路径值未超过预设路径阈值时,判断第m求解路径是否写入小顶堆数据结构;其中,第m求解路径包括起始节点以及至少一个父层节点,m为正整数,小顶堆数据结构设置n个求解路径存储位置,n为预设个数阈值;
目标确定模块505,用于当在预设时间间隔内检测到小顶堆数据结构未写入求解路径时,将小顶堆数据结构内的所有求解路径作为目标求解路径。
在一些可能的实施例中,装置还包括:
在判断起始节点到每个源站节点之间是否开启计算路径功能之后,当检测到起始节点到每个源站节点之间未开启计算路径功能时,在与起始节点相邻的所有父层节点中确定出路径值最小的第一父层节点;
在与第一父层节点相邻的所有父层节点中确定出路径值最小的第二父层节点,并直至确定出第j父层节点相邻的所有节点中包含源站地址时,将与起始节点、j个父层节点以及源站地址对应的路径作为目标求解路径;其中,j为大于2的正整数。
在一些可能的实施例中,装置还包括:
在基于深度优先遍历算法对有向图进行路径求解之后,检测到第m求解路径的总路径值未超过预设路径阈值之前,获取当前求解路径中父层节点的个数,并根据父层节点的个数确定路径跳数;
当检测到路径跳数未超过预设跳数阈值时,将当前求解路径作为第m求解路径,并根据第m求解路径中任意两个相邻节点之间的路径值计算出第m求解路径的总路径值;
当检测到路径跳数超过预设跳数阈值时,判断当前求解路径中倒数第二父层节点所相邻的所有节点中是否包含源站地址;
当检测到倒数第二父层节点所相邻的所有节点中包含源站地址时,将当前求解路径中倒数第一父层节点替换为源站地址,并将替换后的当前求解路径作为第m求解路径,根据第m求解路径中任意两个相邻节点之间的路径值计算出第m求解路径的总路径值。
在一些可能的实施例中,数据更新模块具体用于:
当检测到第m求解路径中包含源站地址时,若m小于或等于n,将第m求解路径写入小顶堆数据结构,并按照总路径值从大到小的顺序对小顶堆数据结构中所有的求解路径进行排序;其中,小顶堆数据结构中的堆尾为总路径值最大的求解路径。
在一些可能的实施例中,数据更新模块具体用于:
当检测到第m求解路径中包含源站地址时,若m大于n,判断第m求解路径的总路径值是否超过小顶堆数据结构中堆尾所对应的总路径值;
当检测到第m求解路径的总路径值超过堆尾所对应的总路径值时,不将第m求解路径写入小顶堆数据结构;
当检测到第m求解路径的总路径值未超过堆尾所对应的总路径值时,对小顶堆数据结构中堆尾所对应的求解路径进行删除处理,并将第m求解路径写入小顶堆数据结构。
在一些可能的实施例中,数据更新模块具体用于:
将第m求解路径写入小顶堆数据结构之后,按照总路径值从大到小的顺序对小顶堆数据结构中所有的求解路径重新进行排序,并将总路径值最大的求解路径重新作为小顶堆数据结构中的堆尾。
在一些可能的实施例中,网络探测数据包括丢包率、首包时间以及下载速率等至少两种。
本领域的技术人员可以清楚地了解到本申请实施例的技术方案可借助软件和/或硬件来实现。本说明书中的“单元”和“模块”是指能够独立完成或与其他部件配合完成特定功能的软件和/或硬件,其中硬件例如可以是现场可编程门阵列(Field-ProgrammableGate Array,FPGA)、集成电路(Integrated Circuit,IC)等。
请参阅图6,图6示出了本申请实施例提供的又一种基于内容分发网络的路径计算装置的结构示意图。
如图6所示,该基于内容分发网络的路径计算装置600可以包括至少一个处理器601、至少一个网络接口604、用户接口603、存储器605以及至少一个通信总线602。
其中,通信总线602可用于实现上述各个组件的连接通信。
其中,用户接口603可以包括按键,可选用户接口还可以包括标准的有线接口、无线接口。
其中,网络接口604可以但不局限于包括蓝牙模块、NFC模块、Wi-Fi模块等。
其中,处理器601可以包括一个或者多个处理核心。处理器601利用各种接口和线路连接基于内容分发网络的路径计算装置600内的各个部分,通过运行或执行存储在存储器605内的指令、程序、代码集或指令集,以及调用存储在存储器605内的数据,执行路由基于内容分发网络的路径计算装置600的各种功能和处理数据。可选的,处理器601可以采用DSP、FPGA、PLA中的至少一种硬件形式来实现。处理器601可集成CPU、GPU和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器601中,单独通过一块芯片进行实现。
其中,存储器605可以包括RAM,也可以包括ROM。可选的,该存储器605包括非瞬时性计算机可读介质。存储器605可用于存储指令、程序、代码、代码集或指令集。存储器605可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器605可选的还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及基于内容分发网络的路径计算应用程序。
具体地,处理器601可以用于调用存储器605中存储的基于内容分发网络的路径计算应用程序,并具体执行以下操作:
根据接收到的客户请求确定起始节点以及源站地址,并基于源站地址的解析处理结果得到至少两个源站节点;
基于预设的数据库查找出起始节点与每个源站节点之间的所有父层节点,并在起始节点、每个源站节点以及所有父层节点中获取任意两个相邻节点之间的网络探测数据,根据预设的权重值以及网络探测数据计算出任意两个相邻节点之间的路径值;
根据起始节点、源站地址、所有父层节点以及任意两个相邻节点之间的路径值构建有向图,并判断起始节点到每个源站节点之间是否开启计算路径功能;
当检测到起始节点到每个源站节点之间开启计算路径功能时,基于深度优先遍历算法对有向图进行路径求解,并当检测到第m求解路径的总路径值未超过预设路径阈值时,判断第m求解路径是否写入小顶堆数据结构;其中,第m求解路径包括起始节点以及至少一个父层节点,m为正整数,小顶堆数据结构设置n个求解路径存储位置,n为预设个数阈值;
当在预设时间间隔内检测到小顶堆数据结构未写入求解路径时,将小顶堆数据结构内的所有求解路径作为目标求解路径。
在一些可能的实施例中,在判断起始节点到每个源站节点之间是否开启计算路径功能之后,还包括:
当检测到起始节点到每个源站节点之间未开启计算路径功能时,在与起始节点相邻的所有父层节点中确定出路径值最小的第一父层节点;
在与第一父层节点相邻的所有父层节点中确定出路径值最小的第二父层节点,并直至确定出第j父层节点相邻的所有节点中包含源站地址时,将与起始节点、j个父层节点以及源站地址对应的路径作为目标求解路径;其中,j为大于2的正整数。
在一些可能的实施例中,在基于深度优先遍历算法对有向图进行路径求解之后,检测到第m求解路径的总路径值未超过预设路径阈值之前,还包括:
获取当前求解路径中父层节点的个数,并根据父层节点的个数确定路径跳数;
当检测到路径跳数未超过预设跳数阈值时,将当前求解路径作为第m求解路径,并根据第m求解路径中任意两个相邻节点之间的路径值计算出第m求解路径的总路径值;
当检测到路径跳数超过预设跳数阈值时,判断当前求解路径中倒数第二父层节点所相邻的所有节点中是否包含源站地址;
当检测到倒数第二父层节点所相邻的所有节点中包含源站地址时,将当前求解路径中倒数第一父层节点替换为源站地址,并将替换后的当前求解路径作为第m求解路径,根据第m求解路径中任意两个相邻节点之间的路径值计算出第m求解路径的总路径值。
在一些可能的实施例中,判断第m求解路径是否写入小顶堆数据结构,包括:
当检测到第m求解路径中包含源站地址时,若m小于或等于n,将第m求解路径写入小顶堆数据结构,并按照总路径值从大到小的顺序对小顶堆数据结构中所有的求解路径进行排序;其中,小顶堆数据结构中的堆尾为总路径值最大的求解路径。
在一些可能的实施例中,判断第m求解路径是否写入小顶堆数据结构,还包括:
当检测到第m求解路径中包含源站地址时,若m大于n,判断第m求解路径的总路径值是否超过小顶堆数据结构中堆尾所对应的总路径值;
当检测到第m求解路径的总路径值超过堆尾所对应的总路径值时,不将第m求解路径写入小顶堆数据结构;
当检测到第m求解路径的总路径值未超过堆尾所对应的总路径值时,对小顶堆数据结构中堆尾所对应的求解路径进行删除处理,并将第m求解路径写入小顶堆数据结构。
在一些可能的实施例中,将第m求解路径写入小顶堆数据结构之后,还包括:
按照总路径值从大到小的顺序对小顶堆数据结构中所有的求解路径重新进行排序,并将总路径值最大的求解路径重新作为小顶堆数据结构中的堆尾。
在一些可能的实施例中,网络探测数据包括丢包率、首包时间以及下载速率等至少两种。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。其中,计算机可读存储介质可以包括但不限于任何类型的盘,包括软盘、光盘、DVD、CD-ROM、微型驱动器以及磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪速存储器设备、磁卡或光卡、纳米系统(包括分子存储器IC),或适合于存储指令和/或数据的任何类型的媒介或设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些服务接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(RandomAccess Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通进程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory, ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上者,仅为本公开的示例性实施例,不能以此限定本公开的范围。即但凡依本公开教导所作的等效变化与修饰,皆仍属本公开涵盖的范围内。本领域技术人员在考虑说明书及实践这里的公开后,将容易想到本公开的其实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未记载的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的范围和精神由权利要求限定。

Claims (10)

1.一种基于内容分发网络的路径计算方法,其特征在于,包括:
根据接收到的客户请求确定起始节点以及源站地址,并基于所述源站地址的解析处理结果得到至少两个源站节点;
基于预设的数据库查找出所述起始节点与每个所述源站节点之间的所有父层节点,并在所述起始节点、每个所述源站节点以及所有所述父层节点中获取任意两个相邻节点之间的网络探测数据,根据预设的权重值以及所述网络探测数据计算出任意两个相邻节点之间的路径值;
根据所述起始节点、所述源站地址、所有所述父层节点以及所述任意两个相邻节点之间的路径值构建有向图,并判断所述起始节点到每个所述源站节点之间是否开启计算路径功能;
当检测到所述起始节点到每个所述源站节点之间开启所述计算路径功能时,基于深度优先遍历算法对所述有向图进行路径求解,并当检测到第m求解路径的总路径值未超过预设路径阈值时,判断所述第m求解路径是否写入小顶堆数据结构;其中,所述第m求解路径包括所述起始节点以及至少一个所述父层节点,所述m为正整数,所述小顶堆数据结构设置n个求解路径存储位置,所述n为预设个数阈值;
当在预设时间间隔内检测到所述小顶堆数据结构未写入求解路径时,将所述小顶堆数据结构内的所有求解路径作为目标求解路径。
2.根据权利要求1所述的方法,其特征在于,在所述判断所述起始节点到每个所述源站节点之间是否开启计算路径功能之后,还包括:
当检测到所述起始节点到每个所述源站节点之间未开启所述计算路径功能时,在与所述起始节点相邻的所有所述父层节点中确定出路径值最小的第一父层节点;
在与所述第一父层节点相邻的所有所述父层节点中确定出路径值最小的第二父层节点,并直至确定出第j父层节点相邻的所有节点中包含所述源站地址时,将与所述起始节点、j个所述父层节点以及所述源站地址对应的路径作为目标求解路径;其中,j为大于2的正整数。
3.根据权利要求1所述的方法,其特征在于,在所述基于深度优先遍历算法对所述有向图进行路径求解之后,所述检测到第m求解路径的总路径值未超过预设路径阈值之前,还包括:
获取当前求解路径中所述父层节点的个数,并根据所述父层节点的个数确定路径跳数;
当检测到所述路径跳数未超过预设跳数阈值时,将所述当前求解路径作为第m求解路径,并根据所述第m求解路径中任意两个相邻节点之间的路径值计算出所述第m求解路径的总路径值;
当检测到所述路径跳数超过所述预设跳数阈值时,判断所述当前求解路径中倒数第二父层节点所相邻的所有节点中是否包含所述源站地址;
当检测到所述倒数第二父层节点所相邻的所有节点中包含所述源站地址时,将所述当前求解路径中倒数第一父层节点替换为所述源站地址,并将替换后的所述当前求解路径作为第m求解路径,根据所述第m求解路径中任意两个相邻节点之间的路径值计算出所述第m求解路径的总路径值。
4.根据权利要求1所述的方法,其特征在于,所述判断所述第m求解路径是否写入小顶堆数据结构,包括:
当检测到所述第m求解路径中包含所述源站地址时,若m小于或等于n,将所述第m求解路径写入小顶堆数据结构,并按照总路径值从大到小的顺序对所述小顶堆数据结构中所有的求解路径进行排序;其中,所述小顶堆数据结构中的堆尾为总路径值最大的求解路径。
5.根据权利要求4所述的方法,其特征在于,所述判断所述第m求解路径是否写入小顶堆数据结构,还包括:
当检测到所述第m求解路径中包含所述源站地址时,若m大于n,判断所述第m求解路径的总路径值是否超过所述小顶堆数据结构中堆尾所对应的总路径值;
当检测到所述第m求解路径的总路径值超过所述堆尾所对应的总路径值时,不将所述第m求解路径写入所述小顶堆数据结构;
当检测到所述第m求解路径的总路径值未超过所述堆尾所对应的总路径值时,对所述小顶堆数据结构中堆尾所对应的求解路径进行删除处理,并将所述第m求解路径写入小顶堆数据结构。
6.根据权利要求5所述的方法,其特征在于,所述将所述第m求解路径写入小顶堆数据结构之后,还包括:
按照总路径值从大到小的顺序对所述小顶堆数据结构中所有的求解路径重新进行排序,并将总路径值最大的求解路径重新作为所述小顶堆数据结构中的堆尾。
7.根据权利要求1所述的方法,其特征在于,所述网络探测数据包括丢包率、首包时间以及下载速率等至少两种。
8.一种基于内容分发网络的路径计算装置,其特征在于,包括:
请求处理模块,用于根据接收到的客户请求确定起始节点以及源站地址,并基于所述源站地址的解析处理结果得到至少两个源站节点;
路径计算模块,用于基于预设的数据库查找出所述起始节点与每个所述源站节点之间的所有父层节点,并在所述起始节点、每个所述源站节点以及所有所述父层节点中获取任意两个相邻节点之间的网络探测数据,根据预设的权重值以及所述网络探测数据计算出任意两个相邻节点之间的路径值;
图形构建模块,用于根据所述起始节点、所述源站地址、所有所述父层节点以及所述任意两个相邻节点之间的路径值构建有向图,并判断所述起始节点到每个所述源站节点之间是否开启计算路径功能;
数据更新模块,用于当检测到所述起始节点到每个所述源站节点之间开启所述计算路径功能时,基于深度优先遍历算法对所述有向图进行路径求解,并当检测到第m求解路径的总路径值未超过预设路径阈值时,判断所述第m求解路径是否写入小顶堆数据结构;其中,所述第m求解路径包括所述起始节点以及至少一个所述父层节点,所述m为正整数,所述小顶堆数据结构设置n个求解路径存储位置,所述n为预设个数阈值;
目标确定模块,用于当在预设时间间隔内检测到所述小顶堆数据结构未写入求解路径时,将所述小顶堆数据结构内的所有求解路径作为目标求解路径。
9.一种基于内容分发网络的路径计算装置,其特征在于,包括处理器以及存储器;
所述处理器与所述存储器连接;
所述存储器,用于存储可执行程序代码;
所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行如权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-7任一项所述方法的步骤。
CN202310631104.1A 2023-05-31 2023-05-31 一种基于内容分发网络的路径计算方法及装置 Active CN116366524B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310631104.1A CN116366524B (zh) 2023-05-31 2023-05-31 一种基于内容分发网络的路径计算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310631104.1A CN116366524B (zh) 2023-05-31 2023-05-31 一种基于内容分发网络的路径计算方法及装置

Publications (2)

Publication Number Publication Date
CN116366524A CN116366524A (zh) 2023-06-30
CN116366524B true CN116366524B (zh) 2023-08-04

Family

ID=86941936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310631104.1A Active CN116366524B (zh) 2023-05-31 2023-05-31 一种基于内容分发网络的路径计算方法及装置

Country Status (1)

Country Link
CN (1) CN116366524B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116962288B (zh) * 2023-09-21 2023-12-05 卓望数码技术(深圳)有限公司 Cdn多节点寻路优化方法、装置、设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096783A (zh) * 2016-06-13 2016-11-09 Tcl集团股份有限公司 一种基于Dijkstra的路径优化方法及其系统
CN107036618A (zh) * 2017-05-24 2017-08-11 合肥工业大学(马鞍山)高新技术研究院 一种基于最短路径深度优化算法的agv路径规划方法
CN111181849A (zh) * 2018-11-09 2020-05-19 北京嘀嘀无限科技发展有限公司 回源路径确定方法、确定装置、计算机设备和存储介质
CN111708364A (zh) * 2020-06-19 2020-09-25 南京理工大学 一种基于a*算法改进的agv路径规划方法
CN112256495A (zh) * 2020-10-20 2021-01-22 平安科技(深圳)有限公司 数据传输方法、装置、计算机设备及存储介质
CN113630268A (zh) * 2021-07-29 2021-11-09 西安电子科技大学 时变网络中定长随机中断场景最大错误分离路径获取方法
CN114254832A (zh) * 2021-12-24 2022-03-29 四创科技有限公司 一种最优巡查路径的选择方法与终端
CN114500290A (zh) * 2021-12-21 2022-05-13 天翼云科技有限公司 云平台网关节点探测拓扑生成的方法、装置、设备及介质
CN115277539A (zh) * 2022-07-29 2022-11-01 天翼云科技有限公司 一种数据传输方法、选路集群以及边缘节点

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110319845B (zh) * 2018-03-30 2024-01-09 日本电气株式会社 用于确定两点之间的可达路径的方法、装置和系统
US11456946B2 (en) * 2020-06-11 2022-09-27 Oracle International Corporation Regular path queries (RPQS) for distributed graphs

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106096783A (zh) * 2016-06-13 2016-11-09 Tcl集团股份有限公司 一种基于Dijkstra的路径优化方法及其系统
CN107036618A (zh) * 2017-05-24 2017-08-11 合肥工业大学(马鞍山)高新技术研究院 一种基于最短路径深度优化算法的agv路径规划方法
CN111181849A (zh) * 2018-11-09 2020-05-19 北京嘀嘀无限科技发展有限公司 回源路径确定方法、确定装置、计算机设备和存储介质
CN111708364A (zh) * 2020-06-19 2020-09-25 南京理工大学 一种基于a*算法改进的agv路径规划方法
CN112256495A (zh) * 2020-10-20 2021-01-22 平安科技(深圳)有限公司 数据传输方法、装置、计算机设备及存储介质
CN113630268A (zh) * 2021-07-29 2021-11-09 西安电子科技大学 时变网络中定长随机中断场景最大错误分离路径获取方法
CN114500290A (zh) * 2021-12-21 2022-05-13 天翼云科技有限公司 云平台网关节点探测拓扑生成的方法、装置、设备及介质
CN114254832A (zh) * 2021-12-24 2022-03-29 四创科技有限公司 一种最优巡查路径的选择方法与终端
CN115277539A (zh) * 2022-07-29 2022-11-01 天翼云科技有限公司 一种数据传输方法、选路集群以及边缘节点

Also Published As

Publication number Publication date
CN116366524A (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
US9674279B2 (en) Methods, devices, and systems for allocating service nodes in a network
CN116366524B (zh) 一种基于内容分发网络的路径计算方法及装置
KR20220104239A (ko) 원격 사용자들을 위한 모바일 소프트웨어 정의 광역 네트워크 게이트웨이 위치를 동적으로 생성하기 위한 시스템들 및 방법들
US20060003823A1 (en) Dynamic player groups for interest management in multi-character virtual environments
CN104133825A (zh) 一种匹配客户端用户的方法及装置
JP2015529904A (ja) ユーザ推薦方法、及び同方法を用いるユーザ推薦システム
CN104767682A (zh) 路由方法和系统以及分发路由信息的方法和装置
CN103685583A (zh) 一种域名解析的方法和系统
CN112083933A (zh) 一种基于强化学习的服务功能链部署方法
US10469348B2 (en) Centrality-based caching in information-centric networks
CN113568860B (zh) 基于深度学习的多机集群拓扑映射方法、装置及程序产品
WO2019218439A1 (zh) 网络访问的调度方法、系统、设备及存储介质
CN104426881B (zh) 一种检测恶意行为的方法及装置
CN109597903B (zh) 图像文件处理装置和方法、文件存储系统及存储介质
CN108199967A (zh) 路由处理方法及装置
CN104618388B (zh) 快速注册登录方法及对应的重置服务器、信息服务器
CN109039959A (zh) 一种sdn网络规则的一致性判断方法及相关装置
CN104582011B (zh) 一种用于将移动终端连接至网络的方法和装置
CN109412976B (zh) 数据传输方法、装置、系统、服务器、电子设备及介质
US20220233964A1 (en) Matchmaking for online gaming with privacy compliant connectivity prediction
CN113230665A (zh) 资源分配方法及装置
CN116016199B (zh) 一种信息控制方法、系统、电子设备及可读存储介质
US10798022B2 (en) Switch proxy controller for switch virtualization
JP2018511131A (ja) オンライン媒体のための階層的なコストベースのキャッシング
CN113596098A (zh) 会话检索方法、装置、设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant