本发明涉及互联网技术领域,特别涉及一种选取路由路径的方法、系统及服务器。
背景技术:
随着互联网的高速发展,用户对网络数据的传输速度的要求也越来越高。通过建立内容分发网络,可以部署各种节点服务器,在现有互联网基础之上构建一层智能虚拟网络并缓存部分静态文件,以使用户可以直接获取各节点服务器上缓存的静态文件,从而提高数据传输速度。然而,对于动态文件,只能回源站获取用户请求的数据,此时,为提高数据传输速度,需要从众多回源路径中选择一条最优回源路径进行路由获取数据。
目前,通常是各边缘节点周期性地向源站及关联的中转节点发起探测请求来获取探测时延,将探测时延最小的回源路径作为最优回源路径。探测时延主要包括传播时延、排队时延以及数据处理时延,并主要体现在网络拥塞程度、通信链路质量及网卡性能等方面。然而对于上传加速场景,目前通常使用post请求进行分片上传,如果接收端处理时间过长、发送的包较大或者发送包的频率太快,都会造成一定程度的丢包,因此这种情况下如果单一的使用探测时延来作为选取最优回源路径的依据,不能准确反映网络拥塞程度,可能选到的路径,实际丢包比较严重,链路响应慢,导致用户体验差,也降低了路由系统选路准确性。另一方面,中转节点接收到边缘节点发出的探测请求后,会再次向源站发出探测请求,对于具有m个边缘节点和n个中转节点的内容分发网络,对源站的探测请求的规模为m*n个,源站需承担较大的探测请求压力。因此,目前亟需一种更优化的选取路由路径的方法,以提高路由系统选取路由路径的准确性和可靠性。
技术实现要素:
本申请的目的在于提供一种选取路由路径的方法、系统及服务器,能够提高路由系统选路的准确性,降低源站的服务压力。
为实现上述目的,本申请一方面提供一种选取路由路径的方法,包括:
接收用户发出的获取数据的请求,按照回源路径向中转节点和源站发送探测请求,得到与所述探测请求对应的边缘探测时延;所述回源路径包括:中转回源路径以及直接回源路径;所述中转回源路径为:边缘节点通过中转节点与源站进行数据传输的路径;所述直接回源路径为:边缘节点直接与源站进行数据传输的路径;
获取所述中转节点反馈的第一路径的中转探测时延,以及所述边缘节点至所述中转节点的平均丢包率;
根据所述边缘探测时延、中转探测时延以及所述平均丢包率确定所述中转回源路径的总探测时延;
根据所述总探测时延选取最优回源路径。
为实现上述目的,本申请另一方面提供一种选取路由路径的系统,包括:至少一个边缘节点服务器、至少一个中转节点服务器以及至少一个源站服务器;其中,
所述边缘节点服务器,用于接收用户发出的获取数据的请求,按照回源路径向所述中转节点服务器和源站服务器发送探测请求,得到与所述探测请求对应的边缘探测时延;所述边缘节点服务器还用于获取所述中转节点服务器反馈的第一路径的中转探测时延,以及所述边缘节点服务器至所述中转节点服务器的平均丢包率;所述边缘节点服务器还用于根据所述边缘探测时延、中转探测时延以及所述平均丢包率确定所述中转回源路径的总探测时延,并根据所述总探测时延选取最优回源路径;
所述中转节点服务器,用于反馈第一路径的中转探测时延至所述边缘节点服务器;所述第一路径包括:所述中转节点服务器到所述源站服务器的路径中探测时延最小的路径;
所述源站服务器,用于接收所述边缘节点服务器和所述中转节点服务器发出的探测请求以及获取数据的请求。
为实现上述目的,本申请另一方面还提供一种服务器,所述服务器为内容分发网络中的边缘节点服务器,包括:探测时延获取单元、校正数据获取单元、中转总探测时延确定单元和最优回源路径确定单元;其中,
所述探测时延获取单元,用于接收用户发出的获取数据的请求,按照回源路径向中转节点服务器和源站服务器发送探测请求,得到与所述探测请求对应的边缘探测时延;
所述校正数据获取单元,用于获取所述中转节点反馈的第一路径的中转探测时延,以及所述边缘节点服务器至所述中转节点服务器的平均丢包率;
所述中转总探测时延确定单元,用于根据所述边缘探测时延、中转探测时延以及所述平均丢包率确定所述中转回源路径的总探测时延;
所述最优回源路径确定单元,用于根据所述总探测时延选取最优回源路径。
为实现上述目的,本申请另一方面还提供一种服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述方法实施方案中执行的方法。
由上可见,本申请提供的技术方案,边缘节点发送探测请求给直接回源路径中的源站和中转回源路径中的中转节点,得到与探测请求对应的边缘探测时延,利用边缘节点至中转节点传输过程中的平均丢包率对中转回源路径中的边缘探测时延随丢包率进行校正,并将校正后的校正探测时延与中转节点反馈的最小探测时延按照权重进行相加,得到中转回源路径的总探测时延,再选取总探测时延中探测时延最小的回源路径作为最优回源路径。在确定边缘节点至中转节点的探测时延时,考虑了边缘节点至中转节点传输过程中的平均丢包率,可以保证选取最优回源路径时既考虑了探测时延,也考虑了丢包率,因此,本申请提供的技术方案可以避免选取到由于网络拥塞导致丢包严重但探测时延较优的回源路径,提高了选取最优回源路径的准确性和可靠性。同时,边缘节点的探测请求仅发送给直接回源路径中的源站和中转回源路径中的中转节点,中转回源路径中的中转节点通过向源站发送探测请求,直接将中转节点至源站探测时延最小的路径反馈给边缘节点,而不需要每一条回源路径的中转节点都向源站发送探测请求,因此,对于具有m个边缘节点和n个中转节点的内容分发网络,对源站的探测请求的规模为m+n个,大大降低了源站需承担的探测请求压力,节省了服务器资源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本说明书实施方式中内容分发网络中各回源路径的示意图;
图2是本说明书实施例中一种选取路由路径的方法的流程图;
图3是本说明书实施例中选取路由路径的系统的一种结构示意图;
图4是本说明书实施例中边缘节点服务器的一个模块图;
图5是本说明书服务器实施例中总探测时延确定单元的一个模块图;
图6是本发明实施例中服务器的结构示意图;
图7是本发明实施例中计算机终端的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本申请提供一种选取路由路径的方法,该方法可以应用于内容分发网络。请参阅图1,所述内容分发网络包括:至少一个边缘节点、至少一个中转节点以及至少一个源站。所述中转节点、所述边缘节点以及所述源站之间可以建立通信连接。所述源站、中转节点与边缘节点可以为服务器或服务器集群。
图2是本说明书方法实施例中一种选取路由路径的方法的流程图。请参阅图1和图2,本申请提供的路由方法可以包括以下步骤。
s11:接收用户发出的获取数据的请求,按照回源路径向中转节点和源站发送探测请求,得到与所述探测请求对应的边缘探测时延。
所述边缘节点可以接收用户发出的获取数据的请求。接收用户发出的所述获取数据的请求后,可以触发探测任务,发出探测请求。
所述探测请求可以包括:所述边缘节点按照各回源路径向中转节点及源站发送的探测请求。所述中转节点为与所述边缘节点关联的中转节点,即所述中转节点为所述回源路径中的中转节点。
在一个实施方式中,所述回源路径可以包括:中转回源路径以及直接回源路径。
所述中转回源路径可以为:边缘节点通过中转节点与源站进行数据传输的路径。例如,所述中转回源路径可以为:从“边缘节点1”经过“中转节点1”到“源站1”的路径。
所述直接回源路径可以为:边缘节点直接与源站进行数据传输的路径。例如,所述直接回源路径可以为图1中从“边缘节点1”直接到“源站1”的路径。
通过向所述中转节点和所述源站发送探测请求,可以得到与所述探测请求对应的边缘探测时延。
对于所述直接回源路径,所述边缘探测时延即为该直接回源路径的总探测时延。
s12:获取所述中转节点反馈的第一路径的中转探测时延,以及所述边缘节点至所述中转节点的平均丢包率。
在一个实施方式中,边缘节点可以获取所述中转节点反馈的第一路径的中转探测时延。所述第一路径可以是所述中转节点到至少一个源站的路径中探测时延最小的路径。
例如,图1中示出两个源站,分别为“源站1”、“源站2”,假设所述中转节点1发出探测请求到源站1得到的探测时延为1毫秒,中转节点1发出探测请求到源站2得到的探测时延为1.5毫秒,那么可以选取中转节点1到源站1的路径为第一路径。
所述边缘节点还可以获取该边缘节点至中转节点的平均丢包率。
在一个实施方式中,所述获取边缘节点至所述中转节点的平均丢包率,可以包括:记录预设周期长度内一个边缘节点至一个中转节点的实时丢包率,统计预设个数的周期内该边缘节点至该中转节点的丢包率的平均值,将所述平均值作为该边缘节点至该中转节点的平均丢包率。
在一个实施方式中,所述获取边缘节点至所述中转节点的平均丢包率可以利用编程接口(socket)调用中转节点中的内核接口(例如setsockopt/getsockopt等)的方式来获取。
通过调用内核接口的方式来获取平均丢包率,无需为获取平均丢包率的信息建立新的连接,因此,这种获取平均丢包率的方式具有效率更高、实现简单、系统开销较小的优点。
s13:根据所述边缘探测时延、中转探测时延以及所述平均丢包率确定所述中转回源路径的总探测时延。
根据所述边缘探测时延、中转探测时延以及所述平均丢包率,可以确定所述中转回源路径的总探测时延。在一个实施方式中,具体可以包括:可以利用所述平均丢包率对所述边缘探测时延进行校正,得到所述边缘节点至所述中转节点的校正探测时延,根据所述校正探测时延与所述中转探测时延可以确定所述中转回源路径的总探测时延。
在一个实施方式中,所述利用所述平均丢包率对所述边缘探测时延进行校正,得到所述边缘节点至所述中转节点之间的校正探测时延,可以包括:根据预先建立的非线性关系函数对所述平均丢包率和边缘探测时延进行计算,得到所述校正探测时延。所述校正探测时延与所述边缘探测时延的比例值可以与所述平均丢包率的值成正比。
在一个实施方式中,所述根据预先建立的非线性关系函数对所述平均丢包率和边缘探测时延进行计算得到所述校正探测时延可以包括:所述校正探测时延为基于平均丢包率的运算函数与所述边缘探测时延的乘积。所述基于平均丢包率的运算函数可以为非线性函数。
例如,所述基于平均丢包率的运算函数可以表示为:
plr_rtt=s2p_rtt×f(weight_plr)(1)
上述公式(1)中,plr_rtt可以表示校正探测时延,s2p_rtt可以表示边缘探测时延,、weight_plr可以表示平均丢包率,f(weight_plr)可以表示基于平均丢包率的运算函数。
在一个实施方式中,所述基于平均丢包率的运算函数可以是根据已有的测试数据拟合而成的。
在一个实施方式中,所述基于平均丢包率的运算函数可以为区间非线性函数。所述平均丢包率越高的区间内所述非线性函数的斜率可以越高。具体地,所述非线性关系函数中基于平均丢包率的运算函数f(weight_plr)可以包括:
(a)当所述平均丢包率位于第一区间(0,plr_level1]时,所述非线性关系函数中基于平均丢包率的运算函数可以利用下述公式(2)来表示:
f(weight_plr)=1(2)
在一个实施方式中,所述plr_level1的取值可以为1%。
上述公式(2)表示,当平均丢包率很小时,可以忽略丢包率的影响,此时,校正探测时延的值可以等于所述边缘探测时延的值。
(b)当所述平均丢包率位于第二区间(plr_level1,plr_level2]时,所述非线性关系函数中基于平均丢包率的运算函数可以利用下述公式(3)来表示:
在一个实施方式中,所述plr_level2的取值可以为5%。
上述公式(3)的计算结果位于区间[1,2]。通过公式(3),可以根据平均丢包率将边缘探测时延放大1-2倍。
(c)当所述平均丢包率位于第三区间(plr_level2,plr_level3]时,所述非线性关系函数中基于平均丢包率的运算函数可以利用下述公式(4)来表示:
在一个实施方式中,所述plr_level3的取值可以为20%。
上述公式(4)的计算结果位于区间[2,10]。通过公式(3),可以根据平均丢包率将边缘探测时延放大2-10倍。
(d)当所述平均丢包率位于第四区间(plr_level3,1]时,所述非线性关系函数中基于平均丢包率的运算函数可以利用下述公式(5)来表示:
f(weight_plr)=log2(weight_plr×10000)(5)
上述公式(5)的计算结果大于或等于10。通过公式(5),可以根据平均丢包率将边缘探测时延放大10倍以上。
通过上述非线性关系,可以实现利用平均丢包率对边缘探测时延进行校正,平均丢包率越高,校正得到的校正探测时延相比于边缘探测时延的放大倍数越大。
在一个实施方式中,所述根据校正探测时延与中转探测时延确定所述中转回源路径的总探测时延,可以包括:按照预设权重对所述校正探测时延与所述中转探测时延进行相加,得到所述中转回源路径的总探测时延。
具体地,可以利用下述公式确定所述中转回源路径的总探测时延:
s2o_rtt=s2p_rtt×(1-p2o_rate)+p2o_rtt×p2o_rate(6)
上述公式(6)中,s2o_rtt可以表示所述中转回源路径的总探测时延,s2p_rtt可以表示边缘节点到中转节点的校正探测时延;p2o_rtt可以表示中转节点到源站的中转探测时延;p2o_rate为预设权重,可以用于表示中转节点到源站服务器探测时延占整个回源路径探测时延的百分比。所述预设权重的值可以根据实际需要进行设置,例如,可以设置为80%。
s14:根据所述总探测时延选取最优回源路径。
根据所述总探测时延可以选取最优回源路径。具体地,可以将总探测时延最小的回源路径作为最优回源路径。所述总探测时延可以包括所述中转回源路径的总探测时延和所述直接回源路径的总探测时延。
本申请实施例还提供一种选取路由路径的系统。请参阅图3,所述选取路由路径的系统包括至少一个边缘节点服务器(图中仅示出1个)、至少一个中转节点服务器(图中仅示出2个)以及至少一个源站服务器(图中仅示出2个)。
所述边缘节点服务器,可以用于接收用户发出的获取数据的请求,按照回源路径向所述中转节点服务器和源站服务器发送探测请求,得到与所述探测请求对应的边缘探测时延。所述边缘节点服务器还可以用于获取所述中转节点服务器反馈的第一路径的中转探测时延,以及所述边缘节点服务器至所述中转节点服务器的平均丢包率。所述边缘节点服务器还可以用于根据所述边缘探测时延、中转探测时延以及所述平均丢包率确定所述中转回源路径的总探测时延,并根据所述总探测时延选取最优回源路径。
所述中转节点服务器,可以用于反馈第一路径的中转探测时延至所述边缘节点服务器。所述第一路径可以是所述中转节点服务器到所述源站服务器的路径中探测时延最小的路径。
所述源站服务器,可以用于接收所述边缘节点服务器和所述中转节点服务器发出的探测请求以及获取数据的请求。
本申请实施例还提供一种服务器,所述服务器为边缘节点服务器。请参阅图4,所述服务器可以包括:探测时延获取单元、校正数据获取单元、中转总探测时延确定单元和最优回源路径确定单元。
所述探测时延获取单元,可以用于接收用户发出的获取数据的请求,按照回源路径向中转节点服务器和源站服务器发送探测请求,得到与所述探测请求对应的边缘探测时延。
所述校正数据获取单元,可以用于获取所述中转节点反馈的第一路径的中转探测时延,以及所述边缘节点服务器至所述中转节点服务器的平均丢包率。
所述中转总探测时延确定单元,可以用于根据所述边缘探测时延、中转探测时延以及所述平均丢包率确定所述中转回源路径的总探测时延。
所述最优回源路径确定单元,可以用于根据所述总探测时延选取最优回源路径。
请参阅图5,在一个实施方式中,所述总探测时延确定单元具体可以包括:校正子单元和计算子单元。
所述校正子单元,可以用于利用所述平均丢包率对所述边缘探测时延进行校正,得到所述边缘节点服务器至所述中转节点服务器的校正探测时延。
所述计算子单元,可以用于根据所述校正探测时延与所述中转探测时延,计算所述中转回源路径的总探测时延。
参阅图6,本申请还提供一种服务器,所述推流服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述方法实施例执行的推流方法。
请参阅图7,在本申请中,上述实施例中的技术方案可以应用于如图7所示的计算机终端10上。计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图7所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图7中所示更多或者更少的组件,或者具有与图7所示不同的配置。
存储器104可用于存储应用软件的软件程序以及模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
具体地,在本申请中,上述的服务器的部署方法可以作为计算机程序存储于上述的存储器104中,所述存储器104可以与处理器102耦合,那么当处理器102执行所述存储器104中的计算机程序时,便可以实现上述的服务器的部署方法中的各个步骤。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。
由上可见,本申请提供的技术方案中,边缘节点发送探测请求给直接回源路径中的源站和中转回源路径中的中转节点,得到与探测请求对应的边缘探测时延,利用边缘节点至中转节点传输过程中的平均丢包率对中转回源路径中的边缘探测时延随丢包率进行校正,并将校正后的校正探测时延与中转节点反馈的最小探测时延按照权重进行相加,得到中转回源路径的总探测时延,再选取总探测时延中探测时延最小的回源路径作为最优回源路径。在确定边缘节点至中转节点的探测时延时,考虑了边缘节点至中转节点传输过程中的平均丢包率,可以保证选取最优回源路径时既考虑了探测时延,也考虑了丢包率,可以避免选取到由于网络拥塞导致丢包严重但探测时延较优的回源路径,提高了选取最优回源路径的准确性和可靠性。同时,边缘节点的探测请求仅发送给直接回源路径中的源站和中转回源路径中的中转节点,中转回源路径中的中转节点通过向源站发送探测请求,直接将中转节点至源站探测时延最小的路径反馈给边缘节点,而不需要每一条回源路径的中转节点都向源站发送探测请求,因此,对于具有m个边缘节点和n个中转节点的内容分发网络,对源站的探测请求的规模为m+n个,大大降低了源站需承担的探测请求压力,节省了服务器资源。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。