一种基于PoP网络拓扑的IP城市级定位算法的制作方法

文档序号:18161255发布日期:2019-07-13 09:20阅读:1079来源:国知局
一种基于PoP网络拓扑的IP城市级定位算法的制作方法

本发明涉及ip定位算法技术领域,尤其涉及一种基于pop网络拓扑的ip城市级定位算法。



背景技术:

当前,随着计算机网络的蓬勃发展,互联网作为重要的基础设施,已经渗透到生活的各个角落。在互联网技术中,ip定位技术通过ip提供用户地理位置,在广告定向投放、本地化服务、版权控制等方面应用广泛。ip定位根据精度可分为国家级、城市级以及街道级,其中城市级ip定位能够有效提供城市相关网络服务,并对更高级别的街道级ip定位提供数据支撑,在实际生活中被广泛应用。

主流的ip定位技术可分为基于数据库、基于数据挖掘和基于网络测量三大类[1]。基于数据库的定位技术通过查询、对比ip数据库来确定目标位置,如maxmind、ip2location、cz88、ip138、taobaoip等。基于数据挖掘的定位技术通过挖掘网站、社交网络以及移动应用中的用户数据来确定目标位置[2],如structon[3]、chenkin-geo[4]等。基于网络测量的定位技术通过对探测源与探测目标之间的时延、拓扑、域名等相关信息进行测量与分析来确定目标位置[5],如cbg(constrained-basedgeolocation)[6]、octant[7]、lbg(learning-basedgeolocation)[8]、slg(street-levelgeolocation)[9]等。

其中,基于网络测量的定位技术对网络中时延、拓扑、域名等信息进行高效利用,是当前ip定位技术研究的热点[10]。在经典算法中,cbg计算每个探测源的“时延-距离”最小误差,将时延转化为地理距离,并通过多个探测源对目标ip进行位置估计;octant通过统计若干个探测源与目标之间的“时延-距离”关系,并将中间路由器加入至分析过程中,来确定目标的位置;lbg通过对探测源到地标的时延和跳数等多种测量数据的综合应用,将ip定位问题转化为机器学习的分类问题;slg根据cbg得到低精度的目标区域估计,并在区域内通过大量地标进行路径比对进一步提高定位精度。

尽管这些方法都具有一定的ip定位能力,但这些方法往往需要较为严苛的前提条件,如:cbg、octant和lbg要求定位区域内部网络时延与地理距离之间存在严格的正相关性;lbg和slg在对网络时延测量有很高的精度要求的同时,还要求提供定位区域内部海量地标信息。



技术实现要素:

本发明的目的是提供一种基于pop网络拓扑的ip城市级定位算法,能够实现目标ip的城市级定位,且对于网络时延测量精度要求低,对定位区域内部地标信息要求少。

本发明采用的技术方案为:

一种基于pop网络拓扑的ip城市级定位算法,包括以下步骤:

s1:输入目标城市的ip地标、ip地标所在子网内部的多个网络节点、地理位置未知的定位目标ip;

s2:地标扩展:

s2.1:在目标城市之外设置探测源,在探测源与ip地标、探测源与每个网络节点分别进行路径探测,得到与ip地标对应的地标路径信息,和每个网络节点的一一对应的网络节点路径信息;

s2.2:对地标路径信息和每个网络节点路径信息分别进行时延分析;

s2.3:根据路径中的城市间单跳时延分布规律,丢弃通向非目标城市的网络节点路径信息,保留通向目标城市的网络节点路径信息;

s3:路径划分:将保留的网络节点路径信息按单跳时延划分,保留属于目标城市部分的路径信息,得到分区网络节点路径信息;

s4:匿名路由查找与处理:对s3中得到的分区网络节点路径信息中的每条路径依次进行幻象结构的迭代查询,去除暂时匿名路由;对s3中得到的分区网络节点路径信息中的每条路径依次进行平行结构、星形结构和二叉结构的迭代查询,归并永久匿名路由,并在完成后去除重复路由,得到目标城市网络节点路径信息;

s5:pop网络拓扑提取:通过bi-fan结构在目标城市网络节点路径信息中迭代提取pop网络,并根据pop网络包含的地标确定其位置信息,并将pop网络数据录入数据库,构成pop网络数据库;

s6:对定位目标ip进行目标定位:对定位目标ip进行目标定位:对定位目标ip进行路径探测,得到定位目标路径信息,对定位目标路径进行时延分析,并查找定位目标路径所经过的pop网络;根据pop网络的位置,结合对定位目标路径的时延分析结果,得到定位目标ip的定位结果。

所述的步骤s2.3包括以下步骤:根据路径中的城市间单跳时延分布规律,选择满足单跳时延为非负,并具有低-高-低分布特征的网络节点路径信息;将选择的网络节点路径信息与地标路径信息做对比,当网络节点路径信息的单跳时延和地标路径信息的单跳时延分析趋势一致,说明该条节点路径信息通向目标城市,将该条网络节点路径信息保留,否则说明该条节点路径信息通向非目标城市,将该条网络节点路径信息丢弃。

所述的步骤s3包括以下步骤:根据保留的网络节点路径信息的单跳时延峰,将每条网络节点目标路径信息单跳延迟峰值之后的路径信息保留,根据单跳时延分布情况,找到保留的路径信息中的骨干节点,然后删除骨干节点以及之前的节点,保留属于目标城市网络的部分,得到分区网络节点路径信息。

所述的步骤s4包括去除暂时匿名路由和归并永久匿名路由:

去除暂时匿名路由:对分区网络节点路径进行遍历,若路径中存在节点构成幻象结构,则将该节点还原为原始拓扑,去除暂时匿名路由节点;遍历完成后,检查路径并去除重复部分;

归并永久匿名路由:对精致分区网络节点路径进行遍历,若任一路径中存在构成平行结构、星形结构和二叉结构,则将其还原为原始拓扑,归并永久匿名路由节点,遍历完成后,检查路径并去除重复部分。

所述的步骤s5包括以下步骤:

5.1:通过提取和合并所有bi-fan,获得pop网络:根据目标城市网络节点路径信息,使用bi-fan搜索节点组,通过使用bi-fan结构提取和合并节点来获得pop网络;

5.2:pop网络的地理定位:通过pop网络包含的ip地标确定pop网络的城市位置,找到所有pop网络,并删除未包含ip地标的pop,并将数据录入数据库,得到pop网络数据库。

所述的目标城市的ip地标为多个,依次重复步骤一至在步骤四,得到pop网络数据库。

本发明对ip地标、ip地标所在子网内部的多个网络节点分别进行路径探测,根据不同城市网络节点间单跳时延的分布规律,从探测路径中划分出属于目标城市的网络节点,并进行地标扩展,随后利用常见的匿名路由结构对路径信息中匿名路由进行查找与归并,最后通过紧密连接的网络节点来提取城市内部的pop网络拓扑,将其录入pop数据库,用于目标ip的城市级定位;再对定位目标ip进行路径探测,确定定位目标ip在探测过程中所经过的pop网络,最后,根据pop网络所处的城市地理位置区域,完成对定位目标ip的定位,在定位过程中并未直接利用时延进行定位,降低了对时延精度的要求;且在定位的过程中并不需要到达目标ip,只需确定在对目标ip探测过程中所经过的pop网络,便可确定目标ip的位置区域,因此该算法能有效的完成对某些探测不可达的目标ip的位置估计。

附图说明

图1为本发明的方法流程图;

图2为本发明的城市间报文传输示意图;

图3为幻象结构及其原始拓扑结构示意图;

图4为平行结构及其原始拓扑结构示意图;

图5为星形结构及其原始拓扑结构示意图;

图6为二叉结构及其原始拓扑结构示意图;

图7为三角结构及其原始拓扑结构示意图;

图8为正八面体结构及其原始拓扑结构示意图;

图9为局部结构统计结果图;

图10为bi-fan结构提取示意图;

图11为bi-fan结构合并结果示意图;

图12为城市级pop网络结构示意图;

图13为河南省单跳延迟中值分布图;

图14为将匿名节点排除时pop网络提取示意图;

图15为将匿名节点加入时pop网络提取示意图;

图16为对匿名节点进行处理时初始pop网络示意图;

图17为对匿名节点进行平行结构处理后pop网络提取示意图;

图18为对图17中的匿名节点再进行平行结构处理后pop网络提取示意图;

图19为对图18中的匿名节点再进行二叉结构处理后pop网络提取示意图。

具体实施方式

如图1所示,本发明以下步骤:

s1:输入目标城市的ip地标、ip地标所在子网内部的多个网络节点、地理位置未知的定位目标ip;

s2:地标扩展:

s2.1:在目标城市之外设置探测源,在探测源与ip地标、探测源与每个网络节点(即除ip地标外额外的ip)分别进行路径探测,得到与ip地标对应的地标路径信息,和每个网络节点的一一对应的网络节点路径信息;

s2.2:对地标路径信息和每个网络节点路径信息分别进行时延分析;

s2.3:根据路径中的城市间单跳时延分布规律,丢弃通向非目标城市的网络节点路径信息,保留通向目标城市的网络节点路径信息;

如图2,城市c1、城市c2和城市c3间进行报文传输,当探测源和目标ip位于同一isp内且距离较远时,其探测路径上相邻路由器之间的单跳时延存在某些特征。由于一个城市的路由器之间的距离通常较短,因此城市内的单跳时延较低。在不考虑网络拥塞的情况下,高单跳时延通常是由路由器之间的物理距离或高排队时延引起的。基于上述分析,城市间单跳时延应遵循一种“低-高-低”分布规律。

通过使用上述这种分布规律,可以根据通向ip地标的探测路径单跳时延高处的路由器判断扩展的节点是否与地标位于同一城市。

根据路径中的城市间单跳时延分布规律,选择满足单跳时延为非负,并具有低-高-低分布特征的网络节点路径信息;将选择的网络节点路径信息与地标路径信息做对比,当网络节点路径信息的单跳时延和地标路径信息的单跳时延分析趋势一致,说明该条节点路径信息通向目标城市,将该条网络节点路径信息保留,否则说明该条节点路径信息通向非目标城市,将该条网络节点路径信息丢弃,从而实现目标城市地标扩展。

s3:路径划分:将保留的网络节点路径信息按单跳时延划分,保留属于目标城市部分的路径信息,得到分区网络节点路径信息;

对于步骤s2中保留的通过使用城市间单跳时延应遵循一种“低-高-低”分布规律,判断扩展的节点是否与地标位于同一城市,并划出网络节点路径中属于目标城市的部分。

根据保留的网络节点路径信息的单跳时延峰,将每条网络节点路径信息单跳延迟峰值之后的路径信息保留,根据单跳时延分布情况,找到保留的路径信息中的骨干节点,然后删除骨干节点以及之前的节点,保留属于目标城市网络的部分,得到分区网络节点路径信息。

根据城市间单跳时延规律,划分出通向目标城市的网络节点路径,并再次划分出这些网络节点路径中属于目标城市的部分,删除这些网络节点路径中的骨干节点,从而可靠地完成目标ip探测路径的划分,在目标城市中获得更精确的节点路径信息,为获取目标ip所属的城域网拓扑信息奠定基础。

s4:匿名路由查找与处理:对s3中得到的分区网络节点路径信息中的每条路径依次进行幻象结构的迭代查询,去除暂时匿名路由;对s3中得到的分区网络节点路径信息中的每条路径依次进行平行结构、星形结构和二叉结构的迭代查询,归并永久匿名路由,并在完成后去除重复路由,得到目标城市网络节点路径信息;

常见的路由局部结构包括如图3所示的幻象结构及其原始拓扑、如图4所示的平行结构及其原始拓扑、如图5所示的星形结构及其原始拓扑、如图6所示的二叉结构及其原始拓扑、如图7所示的三角结构及其原始拓扑、如图8所示的正八面体结构及其原始拓扑。

如图9所示,根据在中国和美国网络中采集了大量路径信息,并对上述局部结构存在数量进行统计,统计结果表明,在进行基于路径探测的拓扑分析时,幻象结构、平行结构、星形结构和二叉结构存在较为普遍,三角结构和正八面体结构本身较为复杂,存在数量较少。故本发明采用幻象结构、平行结构、星形结构和二叉结构对匿名路由进行匹配查找,因为平行结构的数量最多,二叉结构数量最少,因此用上述顺序依次查找。查找一遍后,路径中的匿名路由会减少,下一轮工作量就会减少,从而降低算法的运算量,同时保证算法的可靠度,

网络环境会因地、因时、因设备而异。在探测路径经过中间路由器时,会因为网络流量拥塞或者路由器自身设置而无法收到路由器的响应,从而形成匿名路由。这些情况会影响后续pop网络划分与提取的结果。针对此类问题,本发明用常见的匿名路由结构来对匿名路由进行匹配查找,并将其去除或归并,以得到高完整性的pop网络。

去除暂时匿名路由:对分区网络节点路径进行遍历,若路径中存在节点构成幻象结构,则将该节点还原为原始拓扑,去除暂时匿名路由节点;遍历完成后,检查路径并去除重复部分;

归并永久匿名路由:对分区网络节点路径进行遍历,若任一路径中存在构成平行结构、星形结构和二叉结构,则将其还原为原始拓扑,归并永久匿名路由节点。遍历完成后,检查路径并去除重复部分;

通过对分区网络节点路径信息中的匿名节点进行检索、归并处理,拓扑信息更加接近真实情况,使pop网络划分结果更加准确和全面,提取到城市核心路由的机率上升,从而能够提升定位算法的成功率。

优选的,所述的目标城市的ip地标为多个,依次重复步骤一至在步骤四,得到pop网络数据库。ip地标的数量越多,通过路径扩展得到的分区路径信息就越丰富,有利于建立更加全面的pop网络数据库,使pop网络划分结果更加准确和全面,提取到城市核心路由的机率上升,从而能够提升定位算法的成功率。

在步骤s4的基础上,步骤s5进行pop网络拓扑提取:通过bi-fan结构在目标城市网络节点路径信息中迭代提取pop网络,并根据pop网络包含的地标确定其位置信息,并将pop网络数据录入数据库,构成pop网络数据库;由于pop中的节点具有紧密的连接特性,因此,步骤s5从网络拓扑中搜索bi-fan结构,并将其视为提取pop网络的核心结构。bi-fan结构具有非常强的连接性和代表性,适合作为pop网络通信分析的基本单元。bi-fan中的每个节点指向两个以上不同的节点,或者每个节点至少由两个不同的节点指向。

所述的步骤s5包括以下步骤:

5.1:通过提取和合并所有bi-fan,获得pop网络:根据目标城市网络节点路径信息,使用bi-fan搜索节点组,通过使用bi-fan结构提取和合并节点来获得pop网络;如图10所示,有3组具有bi-fan结构:g1,g2和g3,将其提取。如图11所示,由于节点n2属于g1和g2,节点n4,n5都属于g1和g3,g1,g2,g3组合成pop1。

5.2:pop网络的地理定位:通过pop网络包含的ip地标确定pop网络的城市位置,找到所有pop网络,并删除未包含ip地标的pop,并将数据录入数据库,得到pop网络数据库。如图11所示,pop网络p1位于城市c1地标l1的探测路径中,然后确定c1中的pop网络p1。同样,pop网络p2位于城市c1地标l2的探测路径中,由此确定c1中的pop网络p2。

s6:对定位目标ip进行目标定位:对定位目标ip进行目标定位:对定位目标ip进行目标定位:对定位目标ip进行路径探测,得到定位目标路径信息,对定位目标路径进行时延分析,并查找定位目标路径所经过的pop网络;根据pop网络的位置,结合对定位目标路径的时延分析结果,得到定位目标ip的定位结果。

在pop网络的地理定位之后,提取每个pop网络中的核心路由器,目标ip的地理位置是基于这些城市核心路由器估算的。

目标ip城市级定位的步骤:由于从isp骨干网传输的数据将通过城市的核心路由器,因此,可通过分析探测过程中的路由器来确定目标ip的城市级位置。例如,在图12中,对于定位目标ipt1、定位目标ipt2、定位目标ipt3、定位目标ipt4的外部通信,有必要通过pop网络中的路由器。如果定位目标ipt1,t2,t3,t4的探测路径包含路由器r1,r2,r3,r4,r5,r6,r7,r8中的一个,则可以确定它们位于城市c1中。

图13描述了南省7000个网络节点的单跳时延中值分布。探测源(sources)部署在北京(beijing)、南京(nanjing)和成都(chengdu)。如图7所示,当同一isp中的探测源和目标相距很远时,探测路径中的单跳时延显示出低-高-低分布。

大量的探测数据表明,城市内与城市外的网络节点在通信中,其间相邻路由器之间的单跳时延存在“低-高-低”的分布现象,这种现象与数据传输过程中途经路由器所处的地理位置有关。当数据在同一城市网络内部进行转发时,由于城市区域中各个路由器节点间的地理位置接近,传输过程中的时延值较低;当数据需要进行跨城市远距离的转发时,由于路由器节点间地理距离的增加以及isp骨干网中大量网络数据的汇聚,传输过程中的时延值会增高。因此,根据这一现象,对ip地标路径探测的同时,也对地标所处同一子网内其他网络节点进行探测,可以得出ip地标所在的目标城市的区域网络的边界,以及网络节点路径是否通向ip地标所在的目标城市,并通过比具有高单跳时延的路由节点,找出属于目标城市的节点,扩展了目标城市地标的数量,大大丰富了目标城市的路径数据。

同时,因为只保留了目标城市内部的网络节点信息,去除了无关信息,降低了后续拓扑分析的计算开销。

在步骤s4中,对匿名路由进行了查找和处理。在实际探测路径中,匿名路由节点大量存在,若不对匿名路由节点进行处理,则会影响pop网络拓扑的提取结果。

如图14所示,在n5为匿名节点时,若将其排除出划分过程,则将导致g1和g2无法被识别,最终只有g3被提取;如图15所示,若将其加入进划分过程,则会在拓扑中出现大量雷同节点,轻则大大拖慢算法运行效率,重则同样导致大量结构无法被识别。

实际网络中,根据匿名路由节点产生的原因,分为由于网络流量拥塞造成的暂时匿名路由和固定设置为不对探测报文响应的永久匿名路由。在去除暂时匿名路由后,路径信息中因网络拥塞所产生的匿名节点被基本去除,减少了拓扑信息中的冗余部分,减轻了永久匿名路由处理的计算负担。

对于永久匿名路由,不能确定不同路径中的匿名节点是否对应同一节点,故无法应用于网络拓扑分析中。在归并永久匿名路由后,拓扑信息更加接近真实情况,pop网络可信度更高。

在图14中,若节点n5为匿名节点,原算法只能提取出包含节点n2,n3,n6,n7的pop网络。

图16所示为图15中匿名节点才初始状态,采用本发明步骤s4中匿名路由分析,依次经过平行结构、星形结构、二叉结构的处理后,拓扑信息被还原为原始路由,其中,经过平行结构处理分析的pop网络如图17所示,经过星形结构处理分析的pop网络如图18所示,经过二叉结构处理分析的pop网络如图19所示。经过上述处理后,提取的pop网络包含节点n1,n2,n3,n4,n5,n6,n7,n8,n9,大大增加了提取节点数量,在保证准确率的前提下增加了检索城市核心路由的机率,使定位成功率得以上升。

在步骤s5中,通过bi-fan结构在目标城市网络节点路径信息中迭代提取pop网络。在现有的网络拓扑结构的分析算法中,通常将网络分解为不同的基础单元进行分析。milor等人对这些基础网络单元进行了大量的统计分析,指出图bi-fan结构最具强连接性和代表性。由于pop网络大多具有很强的连接特性,所以本节采用bi-fan这种结构作为pop网络的基础网络单元,进而完成对城市区域网络内pop网络的划分和提取。

在确定pop网络的构成之后,需要更进一步确定其所处的地理位置区域。由于pop网络负责管理一定区域内的网络用户,该区域内的网络用户在进行数据传输时通常经过同一个pop网络,因此,可以结合对ip地标探测路径的分析,统计各个pop网络内的ip地标信息,进而确定对各个pop网络所处的地理区域范围。

如图10所示,pop1和pop2是经分析得到的位于城市c中的两个pop网络,ip地标l1和l2分别位于城市内某个区域z1和z2中,由于在对ip地标l1的探测过程中,经过pop1的传输,因此可以确定pop1位于地标l1所处的城市区域z1,同理,pop2位于ip地标l2所处的城市区域z2。

在步骤s6中,对定位目标ip进行目标定位。在对定位目标ip进行路径探测的过称中,在到达定位目标ip之前,需要经过定位目标ip所属的pop网络,因此可以分析定目标ip的探测路径,得到定位目标路径,并查找定位目标路径所经过的城市pop网络,并根据pop网络的位置,完成对目标ip的城市级定位。

在对定位目标ip探测得到的定位目标路径路径中,不仅包含了目标所属的pop网络信息,同时也包含了探测源所属的pop网络信息,因此,首先需要对定位目标路径路径基于单跳时延进行路经划分,从中提取出定位目标路径中,定位目标ip所在城市区域网络内部的路径信息,进而对这些内部的路径信息进行分析,结合分析所得的城市pop网络中所含的网络节点,确定定位目标ip在探测过程中所经过的pop网络,最后,根据pop网络所处的城市地理位置区域,完成对定位目标ip的定位。该算法在定位过程中并未直接利用时延进行定位,降低了对时延精度的要求。

此外,该算法在定位的过程中并不需要到达目标ip,只需确定在对目标ip探测过程中所经过的pop网络,便可确定目标ip的位置区域,因此该算法能有效的完成对某些探测不可达的目标ip的位置估计。

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