网络距离预测方法、装置、终端主机和介质与流程

文档序号:19123986发布日期:2019-11-13 01:56阅读:185来源:国知局
网络距离预测方法、装置、终端主机和介质与流程

本发明一般涉及计算机网络技术领域,具体涉及网络距离预测方法、装置、终端主机和介质。



背景技术:

近年来,随着因特网规模的快速增长,新的网络技术和分布式网络应用不断出现,许多分布式网络应用的整体性能依赖于底层网络通信的性能,如分布式文件共享,分布式文件存储,覆盖式多播,p2p视频点播等在有多个候选网络资源的情况下,选择具有较小网络距离的节点进行服务成为优化上层服务性能的关键,其中,在计算机网络领域中,节点间的网络距离是影响网络应用性能的重要原因之一。

传统技术中对网络距离进行预测是通过idmaps的测量方案,其是由hops的服务器来维护的包括终端主机和若干特殊主机的虚拟拓扑地图构成,当终端主机想要获取与另一台终端主机之间的距离时,向hops服务器发送查询请求从而获取距离。

但是,由于传统的idmaps是基于cs(客户端/服务器)架构,而cs架构存在客户端与服务器之间通信的延迟,尤其是网络系统规模扩大时,导致网络距离预测代价较高并且耗时过多。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种网络距离预测方法、装置、终端主机和介质,克服由第三方服务器中转计算终端主机之间的网络距离的延迟问题,并有效地提升网络距离计算的精度。

第一方面,本发明提供了一种网络距离预测方法,该方法包括:

建立由n+1个地标节点组成的n维网络系统模型,n≥2;

确定所述地标节点的坐标值;

在所述网络系统模型中加入至少两个普通节点,根据所述地标节点的坐标值,确定所述普通节点的坐标值;

根据所述普通节点的坐标值,确定任意两个所述普通节点之间的网络距离。

第二方面,本发明提供了一种网络距离预测装置,该装置包括:

建立模块,用于建立由n+1个地标节点组成的n维网络系统模型,n≥2;

第一确定模块,用于确定所述地标节点的坐标值;

第二确定模块,用于在所述网络系统模型中加入至少两个普通节点,根据所述地标节点的坐标值,确定每个所述普通节点的坐标值;

第三确定模块,用于根据所述普通节点的坐标值,确定任意两个所述普通节点之间的网络距离。

第三方面,本申请实施例提供了一种终端主机,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述所述网络距离的预测方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述所述网络距离的预测方法。

本申请提供的网络距离预测方法、装置、终端主机和介质,通过建立由n+1个地标节点组成的n维网络系统模型,并确定地标节点的坐标值,然后在网络系统模型中加入至少两个普通节点,根据地标节点的坐标值,确定每个普通节点的坐标值,从而确定任意两个普通节点之间的网络距离。该技术方案中把网络空间映射为几何空间,且把网络节点映射为几何空间中的点,实现了网络的几何空间建模,与现有技术相比,其无需共享的服务器,消除了传统的cs架构导致通信延迟的性能瓶颈,且在确定出各节点坐标后,可以快速预测出网络距离,很大程度上提高了计算精度以及保证了网络的安全性。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明实施例提供的网络距离预测方法的流程示意图;

图2为本发明实施例提供的网络架构的结构示意图;

图3为本发明实施例提供的网络距离预测方法的流程示意图;

图4为本发明实施例提供的网络距离预测方法的流程示意图;

图5为本发明实施例提供的网络距离预测装置的结构示意图;

图6为本发明实施例提供的终端主机的结构示意图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

如背景技术中提到的,随着互联网用户和应用的快速增长,网络架构变得日益复杂和庞大,为了更好的挖掘网络架构的巨大潜力,网络路径的选择显得尤为重要,例如在点对点文件分享平台上,系统在选择网络通信路径时具有非常大的灵活性,可以通过按需实时进行网络测量,但是当点对点分布式系统较大,且系统中存在较多终端主机节点时,考虑到大量的广域跨度存在网络延迟和拥堵的几率较大,使得执行按需测量网络距离是不切实际的,为了进一步对网络性能进行优化,需要测量出网络终端主机之间的距离,之后提出了idmaps的测量方案,该方案是由多个hops的服务器来维护的包括终端主机和若干特殊主机的虚拟拓扑地图构成,当终端主机想要获取与另一台终端主机的距离时,需要向多个hops服务器发送查询请求从而获取距离,使得每次在获取网络距离时,均需要经过多个服务器,存在客户端与服务器之间通信的延迟,导致网络距离预测代价较高且耗时过多。

基于上述缺陷,本申请提供了一种网络距离预测方法和装置,通过建立由n+1个地标节点组成的n维网络系统模型,并确定出网络系统模型中的地标节点的坐标值,然后在网络系统模型中加入普通节点,并根据地标节点的坐标值,确定普通节点的坐标值,从而确定出任意两个普通节点之间的网络距离,该点对点分布式网络中无需共享的服务器,消除了传统的cs架构中的通信延迟的性能瓶颈。

为了便于理解和说明,下面通过图1至图6详细说明本申请实施例提供的网络距离预测方法、装置、终端主机及介质。

图1为本申请实施例提供的网络距离预测方法的流程示意图,如图1所示,该方法包括:

步骤s101、建立由n+1个地标节点组成的n维网络系统模型。

分布式网络也叫网状网络,它是由分布在不同地点的计算机系统互连而成,网中无中心节点。通信子网是封闭式结构,通信控制功能分布在各节点上。

上述网络系统模型可以由多个终端主机组成的点对点分布式网络系统,根据终端主机之间的网络距离进行空间映射,将点对点分布式网络系统映射为几何空间,网络系统中的每个节点(网络终端主机)映射为几何空间中的点,从而构建出网络系统的几何空间模型。其中,点对点分布式网络系统中每个网络终端主机独立维护一个坐标值,该坐标值可以是由一组数字构成的,用于描述网络终端主机在网络系统中的位置。

分布式网络系统中端到端的网络性能是指节点之间的网络路径之间的性能。例如,衡量网络路径性能,可以是两节点之间的响应延时,可以是带宽相关的数据传输速率等,还可以是通过预测网络距离。其中,网络距离是影响网络应用与服务的基本属性。

每个终端主机可以视作地标节点,地标节点作为网络系统模型的基础坐标,可以参见图2所示的网络架构的结构示意图。其中,p1为建立的n维网络系统模型,l1、l2和l3为地标节点,h1和h2为加入的普通节点,p2为加入普通节点之后构成的网络系统模型。

在几何空间建模时,节点个数根据建立的几何空间模型的维数而定,例如,如果建立一个n维的几何空间,则至少需要n+1个地标节点,其中,n≥2。

步骤s102、确定地标节点的坐标值。

具体的,对于一个分布式网络空间g=(v,e),其中v={1,2,…,m}为地标节点集合,e={(i,j)|i,j∈v∧i≠j}为边的集合,其中,在t时刻边(i,j)的权值dij(t)表示此时节点i与节点j之间的网络距离。由于不同时刻测量节点间的网络距离可能存在误差,可以通过测量出地标节点的实际网络距离,并确定出欧式距离,使得实际网络距离等于欧式距离,从而确定出网络系统模型中的地标节点的坐标值。

可选的,作为步骤s102的一种可实现方式,可以参见图3,该方法包括:

步骤s201、确定地标节点i与地标节点j之间的第一实际网络距离和第一欧式距离,0<i<j≤n+1。

步骤s202、基于第一实际网络距离和第一欧式距离,计算地标节点i与地标节点j的总平方误差函数。

需要说明的是,网络距离可以用往返时间值(round-triptime,简称rtt)来表示。例如可以通过网络诊断工具(packetinternetgroper,简称ping)等工具来直接测量。在测量地标节点i与地标节点j之间的第一实际网络距离时,可以通过地标节点i向地标节点j发送ping命令,以测量两个节点之间的rtt时间值(即往返时间值)。根据两个节点之间的往返时间值,确定出地标节点i与地标节点j之间的第一实际网络距离,其中,0<i<j≤n+1。

其中,rtt在计算机网络中是一个重要的性能指标,表示从发送端发送数据开始,到发送端接收到来自接收端的确认总共经历的时间。ping语言是windows、unix和linux系统下的一个命令,是tcp/ip协议的一部分。可以用来检查网络是否通畅和网络连接速度的命令。发送ping命令的过程可以是:向目标ip地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

进一步的,在确定地标节点i和地标节点j之间的第一欧式距离时,可以先根据预先建立的n维网络系统模型,设定地标节点i的n维欧式坐标为cri(xi1,xi2,…,xin),地标节点j的n维欧式坐标为crj(xj1,xj2,…,xjn),则可以得到地标节点i与地标节点j之间的第一欧式距离表示为:

以三维空间为例,考虑地标节点个数对构建空间的限制,需要先确定出r1,r2,r3,r4为四个地标节点。然后,通过两两节点之间发送ping命令,来测量出两两节点之间的第一实际网络距离最后,可以计算出节点之间的总平方误差函数为:

其中,表示节点ri与rj间的平方误差,分别为地标节点r1,r2,r3,...,rn对应的坐标值,为地标节点i与地标节点j之间的第一实际网络距离,为地标节点i与地标节点j之间的第一欧式距离。

步骤s203、采用单纯形下降算法求解地标节点i与地标节点j的总平方误差函数,以确定地标节点i的坐标值与地标节点j的坐标值。

需要说明的是,在确定出地标节点i和地标节点j的总平方误差函数后,采用单纯形下降(simplexdownhill)算法求解总平方误差取最小值的一组最优未知数值为所求坐标值cri和crj,同理,通过上述方法确定出所有地标节点的坐标值。其中,simplexdownhill算法是nelder于1965年提出的多维函数优化算法,通过多次迭代不断趋近函数最小值。

本申请实施例中通过两个地标节点之间发送ping命令,以测量出两个地标节点之间的第一实际网络距离,确定出两个地标节点之间的第一欧式距离,再通过单纯形下降算法进一步确定出地标节点的坐标值。该方法能够基于往返时间值rtt等一些相对稳定的特征来快速确定地标节点的坐标值,从而极大地减少网络测量的时间和计算开销。

步骤s103、在网络系统模型中加入至少两个普通节点,根据地标节点的坐标值,确定每个普通节点的坐标值。

在确定出预先建立的网络系统模型中的地标节点的坐标值之后,可以在该网络系统模型中加入普通节点,可以基于确定出的地标节点的坐标值,并通过测量出普通节点到地标节点之间的第二实际网络距离,且确定出其之间的第二欧式距离,从而确定出普通节点的坐标值。

可选的,在上述实施例的基础上,作为步骤s103的一种可实现方式,可以参见图4,该方法包括:

步骤s301、确定普通节点k与每个地标节点之间的第二实际网络距离和第二欧式距离,k>0。

步骤s302、基于第二实际网络距离和第二欧式距离,计算普通节点k的平方误差函数。

假设在网络系统模型中加入普通节点k,则普通节点k使用icmp协议的ping命令向地标节点i多次发送ping命令请求,以获取到其与地标节点i间的多个往返时间值,并从该多个往返时间值中确定出路径最短的往返时间值,然后基于该最短的往返时间值,确定出普通节点k与该地标节点i之间的第二实际网络距离

进一步的,在确定普通节点k与地标节点i之间的第二欧式距离时,可以设定普通节点k的欧式坐标为chk(xk1,xk2,…,xkn),则可以得到普通节点k到地标节点i之间的第二欧式距离为:

得到普通节点k与地标节点i的平均误差函数:

其中,为普通节点k的欧式坐标,为普通节点k到地标节点i之间的第二实际网络距离,为普通节点k到地标节点i之间的第二欧式距离,表示地标节点i与普通节点k间的平方误差。

步骤s303、采用单纯形下降算法求解普通节点k的平方误差函数,确定普通节点k的坐标值。

需要说明的是,在确定出地标节点i和普通节点k的平方误差函数后,采用单纯形下降法求解平方误差函数取最小值的一组的普通节点k的坐标并依次确定出其他普通节点的坐标。

进一步的,在确定普通节点的坐标值之前,为了避免普通节点的坐标值计算存在不准确性,可以基于预设的三角不等式规则来检测网络系统模型中每个地标节点是否为恶意节点,即先确定出待检测地标节点,并选择其中一个普通节点和一个地标节点等三个节点构成三角形,然后分别计算该待检测地标节点到普通节点和另一个地标节点之间的网络距离,以及该普通节点与一个地标节点之间的网络距离;同理,可以将该待检测节点与该普通节点和其他地标节点进行三角不等式规则的验证,当均不符合两边之和大于第三边的规则时,则说明该待检测地标节点为恶意节点,其中,一个边指的是两两节点之间的网络距离。

示例性的,假设三维网络系统模型中有四个地标节点r1,r2,r3,r4和一个普通节点h1,要检测该网络系统模型中地标节点是否为恶意节点时,得先确定待检测地标节点,可以随意选择任意一地标节点作为待检测地标节点,例如,待检测地标节点为r1时,则可以选择普通节点h1和地标节点r2构成三角形,计算出节点r1与h1、r1与r2、h1与r2的网络距离;如果r1与h1的网络距离、r1与r2的网络距离之和大于h1与r2的网络距离,则继续选择普通节点h1和地标节点r3构成新的三角形,同理计算出r1与h1、r1与r3、h1与r3的网络距离,如果r1与h1的网络距离、r1与r3的网络距离之和大于h1与r3的网络距离;则继续选择普通节点h1和地标节点r4构成又一新的三角形,同理计算出r1与h1、r1与r4、h1与r4的网络距离,如果r1与h1的网络距离、r1与r4的网络距离之和大于h1与r4的网络距离,则说明该待检测地标节点r1满足三角不等式规则,即待检测地标节点r1为正常节点,反之则为恶意节点。

当地标节点违背三角不等式规则,即如果地标节点是恶意节点时,则在排除掉恶意节点后,根据地标节点的坐标值,确定普通节点的坐标值,进而确定任意两个普通节点之间的网络距离。

本申请实施例中通过基于预设的三角不等式规则对恶意节点进行检测,从而排除掉恶意节点,并进一步确定出普通节点的坐标值,该方法能够对地标节点进行安全性判断,避免了恶意节点伪装地标节点,对整个网络系统的距离预测精度产生影响,使得在计算终端主机之间的距离时更加高效。

步骤s104、根据普通节点的坐标值,确定任意两个普通节点之间的网络距离。

需要说明的是,在排除掉恶意节点并确定出普通节点的坐标值后,可以通过欧式距离公式来进一步确定出任意两个普通节点之间的网络距离,同时地标节点的坐标值也是已知的,也可以确定出普通节点到地标节点之间的网络距离。

本申请提供的网络距离预测方法,通过建立由n+1个地标节点组成的n维网络系统模型,并确定地标节点的坐标值,然后在网络系统模型中加入至少一个普通节点,根据地标节点的坐标值,确定普通节点的坐标值,从而确定任意两个普通节点之间的网络距离。该技术方案中把网络空间映射为几何空间,且把网络节点映射为几何空间中的点,实现了网络的几何空间建模,与现有技术相比,其无需共享的服务器,消除了传统的cs架构导致通信延迟的性能瓶颈,且在确定出各节点坐标后,可以快速预测出网络距离,很大程度上提高了计算精度以及保证了网络的安全性。

应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

图5为本发明实施例提供的网络距离预测装置的结构示意图。如图5所示,该装置可以实现如图1~图4所示的方法,该装置可以包括:

建立模块10,用于建立由n+1个地标节点组成的n维网络系统模型,n≥2;

第一确定模块20,用于确定所述地标节点的坐标值;

第二确定模块30,用于在所述网络系统模型中加入至少两个普通节点,根据所述地标节点的坐标值,确定每个所述普通节点的坐标值;

第三确定模块40,用于根据所述普通节点的坐标值,确定任意两个所述普通节点之间的网络距离。

可选的,所述第一确定模块20,包括:

第一确定单元201,用于确定所述网络系统模型中地标节点i与地标节点j之间的第一实际网络距离和第一欧式距离,0<i<j≤n+1;

第一计算单元202,用于基于所述第一实际网络距离和所述第一欧式距离,计算所述地标节点i与地标节点j的总平方误差函数;

第三确定单元203,用于采用单纯形下降算法求解所述地标节点i与地标节点j的总平方误差函数,以确定地标节点i的坐标值与地标节点j的坐标值。

可选的,所述第一确定单元201,具体用于:

所述地标节点i向所述地标节点j发送请求,以测量所述地标节点i与地标节点j之间的往返时间值;

基于所述往返时间值,确定所述地标节点i和所述地标节点j的第一实际网络距离。

可选的,所述第一确定单元201,具体用于:

确定地标节点i和地标节点j的n维欧式坐标;

根据所述地标节点i和地标节点j的n维欧式坐标,得到所述地标节点i与所述地标节点j之间的第一欧式距离。

可选的,所述第二确定模块30,包括:

第四确定单元301,用于确定所述普通节点k与每个所述地标节点之间的第二实际网络距离和第二欧式距离,k>0;

第二计算单元302,用于基于所述第二实际网络距离和所述第二欧式距离,计算所述普通节点k的平方误差函数;

第五确定单元303,用于采用单纯形下降算法求解所述普通节点k的平方误差函数,确定所述普通节点k的坐标值。

可选的,所述第四确定单元302,具体用于:

所述普通节点k向所述每个地标节点多次发送ping命令请求,以获取所述普通节点k与所述地标节点之间的多个往返时间值;

确定所述多个往返时间值中最短的往返时间值;

基于所述最短的往返时间值,确定所述普通节点k与所述地标节点之间的第二实际网络距离。

可选的,所述装置,还用于:

基于预设的三角不等式规则,检测所述网络系统模型中每个所述地标节点是否为恶意节点,所述恶意节点为违背预设的三角不等式规则的节点;

如果所述地标节点是恶意节点,则删除所述恶意节点,如果所述地标节点不是恶意节点,则进入根据所述地标节点的坐标值,确定所述普通节点的坐标值。

本实施例提供的网络距离预测装置,可以执行上述方法的实施例,其实现原理和技术效果类似,在此不再赘述。

图6为本发明实施例提供的一种终端主机的结构示意图。如图6所示,其示出了适于用来实现本申请实施例的终端主机的计算机系统600的结构示意图。

如图6所示,计算机系统600包括中央处理单元(cpu)601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。在ram603中,还存储有系统600操作所需的各种程序和数据。cpu601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口606也连接至总线604。

以下部件连接至i/o接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口606。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。

特别地,根据本公开的实施例,上文参考图2-4描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行图2-4的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,前述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本申请实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括建立模块、第一确定模块、第二确定模块及第三确定模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,建立模块还可以被描述为“用于建立由n+1个地标节点组成的n维网络系统模型,n≥2”。

作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如上述实施例中所述的网络距离预测方法。

例如,所述电子设备可以实现如图1中所示的:步骤s101,建立由n+1个地标节点组成的n维网络系统模型,n≥2;步骤s102,确定所述地标节点的坐标值;步骤s103,在所述网络系统模型中加入至少两个普通节点,根据所述地标节点的坐标值,确定每个所述普通节点的坐标值;步骤s104,根据所述普通节点的坐标值,确定任意两个所述普通节点之间的网络距离。又如,所述电子设备可以实现如图2—图4中所示的各个步骤。

应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。

此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1