基于多源点聚类思想的匿名节点定位方法与流程

文档序号:23055652发布日期:2020-11-25 17:34阅读:136来源:国知局
基于多源点聚类思想的匿名节点定位方法与流程

本发明涉及计算机技术领域,特别是涉及一种基于多源点聚类思想的匿名节点定位方法。



背景技术:

出于安全性和业务特点的考虑,现有internet网络中大量的应用业务以匿名方式开展,正常通信对端无法根据这个匿名标识获知信息发送者的位置。但是,网络上的非法信息和垃圾信息也经常采用匿名通信,会破坏网络安全,对于国家信息监管部门或者个人,有时需要对匿名通信进行溯源,以定位非法信息和垃圾信息的来源。由于网络中存在别名与匿名的干扰,ip级别的拓扑测量所得到的结果会与真实的网络环境有着不小的差距,为了减少traceroute所得到的ip路径中匿名节点对真实网络路由节点的干扰,急需一种针对匿名节点定位的方法。



技术实现要素:

本发明为了减少traceroute所得到的ip路径中匿名节点对真实网络路由节点的干扰,提供一种基于k-means聚类与层次聚类的多源点聚类思想的匿名节点定位方法。

本发明提供一种基于多源点聚类思想的匿名节点定位方法,包括以下步骤:

a.获取国内的ip地址、地理位置和经纬度;

b.用ping命令对ip进行存活性探测过滤,提取出存活的ip地址;

c.将探测出地理位置的ip存入数据库,并附加信息作为分类的其他依据;

d.通过k-means算法得到的聚类中心附近部署服务器,对同一类别内的目的节点进行traceroute探测;

e.同时从源点对目的ip进行多次ping命令探测,获取时延曲线,对时延曲线进行特征提取;

f.再对所提取的特征进行层次聚类,获取层析树,依据层析树的结构对traceroute所得到的ip路径进行合并,将可能是同一个匿名节点的点进行合并,并记录其上一跳与下一跳的ip地址;

g.计算匿名节点对的上一跳,下一跳ip所构成的集合中心,使用欧式距离对经纬度进行计算,作为该匿名节点的物理位置。

优选地,步骤a具体方法为:用ping以及其他的命令判断ip地址是否存活,并利用iptoregin获取经纬度信息。

优选地,步骤c中附加信息包括城市的经济等级、发展程度和城市等级。

优选地,步骤c的具体步骤如下:

a.收集存活的ip地址;

b.用外部api得出其经纬度信息,记录所在城市;

c.利用python记录网上发布的城市等级;

d.将经度、纬度、城市等级作为聚类的特征;

e.将k-means聚类方法的聚类数目定为3,或通过算法自动算出最优的k值。

优选地,步骤e的k-means聚类方法具体方法为:从数据内选取k个对象作为初始聚类中心:

(1)计算每个聚类对象到聚类中心的距离来划分;

(2)再次计算每个聚类中心;

(3)重复以上步骤直到满足要求。

优选地,步骤e中获取时延曲线并获得曲线特征的具体步骤如下:

(a).在短时间多次对大量同属一类的ip进行ping操作,将时延的变化量记录下来,绘出特征曲线;

(b).用小波分解来提取曲线的特征值。

优选地,步骤f对特征曲线进行层次聚类,再依据层次聚类的结果所对相应的若干traceroute所得到的路径进行融合,将可能是同一个匿名节点的点进行合并,其具体步骤如下:

1)对小波分解所得到的特征值进行层次聚类,记录打印信息;

2)选取所要融合的两条traceroute路径进行匿名融合;

3)记录融合后的匿名节点集的上一跳,下一跳的ip地址,作为对该匿名节点定位的依据。

优选地,步骤2)融合的准则:

a).将父节点与子节点都相同的匿名节点归并为一个节点;

b).将无父节点但子节点相同的匿名节点归并为一个节点;

c).将父节点相同,但无子节点的最后一个点归并为一个节点。

优选地,步骤g中匿名节点的定位具体步骤为:

a).匿名节点集合的上一跳、下一跳存在大于等于2个已知ip地址,用欧氏距离依据已知ip经纬度坐标的信息来计算确定一个范围,取其中心作为该匿名对应的物理地址;

b).匿名节点集合的上一跳、下一跳只有一个已知ip的情况,就直接将该点与目的节点的ip地址进行取均值操作,作为其物理地址。

本发明的有益效果是:本发明能够还原比较真实的网络环境,由于网络中存在别名与匿名的干扰,路由级别的拓扑测量所得到的结果会与真实的网络环境有着不小的差距,本发明主要是解决匿名节点的问题,在原有的技术上,对探测源点进行预处理,并仅对类内的ip进行测量,减少了误差,并对匿名节点进行了粗定位,可以较准确的对网络环境进行还原。

附图说明

图1是本发明的操作流程示意图;

图2是本发明在测试存活ip热力示意图;

图3是本发明层级聚类的数据列表示意图;

图4是本发明层级聚类的数据可视化示意图。

具体实施方式

下面结合附图和实施例对本发明做进一步说明,以使本发明所属技术领域的技术人员能够容易实施本发明。

实施例1:本发明提供了一种匿名节点定位的方法,如图1所示,是本发明的操作流程示意图,本发明具体包括以下步骤:

a.获取国内的ip地址及所在城市、经纬度,其格式为:ip地址、地理位置、经纬度。

b.用ping命令对ip进行存活性探测过滤,提取出存活的ip地址。

c.将可探测出地理位置的ip存入数据库,并可附加其他信息作为分类的其他依据。

d.通过k-means算法得到的聚类中心附近部署服务器,对同一类别内的目的节点进行traceroute探测。

e.同时从源点对目的ip进行多次ping命令探测,获取时延曲线,对时延曲线进行特征提取。

f.再对所提取的特征进行层次聚类,获取层析树。依据层析树的结构对traceroute所得到的ip路径进行合并。将可能是同一个匿名节点的点进行合并,并记录其上一跳与下一跳的ip地址。

g.计算匿名节点对的上一跳,下一跳ip所构成的集合中心,这里使用欧式距离对经纬度进行计算,作为该匿名节点的物理位置。

以上是本发明的基本流程,下面将进一步的介绍每一步的具体流程:

步骤a中,获取ip地址以及其经纬度信息,由于中国的ip地址范围是已知的,所以可以用ping以及其他的命令判断该ip地址是否存活,并利用iptoregin或者艾文科技等其他的api获取经纬度信息。

步骤b中,对ip进行存活性探测,由于ip不一定永久都可以被探测到,所以要对已有的ip再次进行存活性探测。保证后续获得的匿名节点地理位置的准确性。

步骤c中,添加其他的信息,可能包括城市的经济等级,发展程度,几线城市。探测源点的选择十分重要,但由于选择探测源点之前没有过多的信息作为参考。探测源点要尽可能选择其周围ip节点多的点作为源点,这样才能获取尽可能完整的拓扑结构,推断匿名节点的位置也更准确。经济发达的地方,其周围ip也会更多。所以可以将经济发展的等级加入到分类特征中。步骤c的具体步骤如下:

a.收集存活的ip地址。

b.用外部api得出其经纬度信息,并且记录所在城市。

c.利用python记录网上发布的城市等级,比如北京为一线城市记为1、哈尔滨记为2等,将城市等级考虑进去是因为,在同一区域内经济发展更高的城市作为中心更有利于后续的操作与准确。

d.将(经度、纬度、城市等级)作为聚类的特征。

e.考虑经济可行性可将k定为3,也可以通过算法自动算出最优的k值。

对步骤e的k-means聚类方法进行进一步的说明:

(1)从数据内选取k个对象作为初始聚类中心;

(2)计算每个聚类对象到聚类中心的距离来划分;

(3)再次计算每个聚类中心;

(4)重复以上步骤直到满足要求。

步骤e中,获取时延曲线,并获得曲线特征的步骤如下:

(a)在短时间多次对大量同属一类的ip进行ping操作,将时延的变化量记录下来,绘出特征曲线;

(b)用小波分解来提取曲线的特征值。

进一步,对于步骤(a)来说,由于每个时间段内,网络的状况都是波动变换的,所以要求在短时间内进行多源点的类内探测,这样探测的优势如下:

由于需要探测的节点过于庞大,无法保证在同一时间内,大量获取时延曲线。所以采用类内探测,既能保证局部完整性又能分担探测的压力。

虽然聚类的时候没有依据网络环境进行分类,因为只是对源点的预选择,但在同一区域的ip,其地理位置具有相似的特性。这样也会有利于之后的层次聚类。

步骤f是匿名融合的核心,对特征曲线进行层次聚类,再依据层次聚类的结果所对相应的若干traceroute所得到的路径进行融合,将可能是同一个匿名节点的点进行合并。其具体步骤如下:

1)对小波分解所得到的特征值进行层次聚类,记录打印信息;

2)选取所要融合的两条traceroute路径进行匿名融合,其中融合的准则主要有3点:

a).将父节点与子节点都相同的匿名节点归并为一个节点;

b).将无父节点但子节点相同的匿名节点归并为一个节点;

c).将父节点相同,但无子节点的最后一个点归并为一个节点。

记录融合后的匿名节点集的上一跳,下一跳的ip地址,作为对该匿名节点定位的依据。

步骤g中匿名节点的定位中,一共分为两种情况:

a).匿名节点集合的上一跳、下一跳存在大于等于2个已知ip地址。用欧氏距离依据已知ip经纬度坐标的信息来计算,由于多个上下跳的ip地址可以确定一个范围,而匿名节点的位置必然会在所形成范围的内部,故可以取其中心作为该匿名对的物理地址。

b).当其上一跳或者下一跳只有一个已知ip的情况,就直接将该点与目的节点的ip地址进行取均值操作,作为其物理地址,依据有两点:

一)由于是对类内的ip进行测量,所以精确度得到保证。

二)由于上一跳与下一跳的物理位置不会相聚过远,并且一般这种情况只会出现在最后一个节点为匿名的情况下,所以用上一跳与目的节点作为依据,定位该节点的坐标。

实施例2:本发明将只从一个点对其类内的ip进行探测作为实施例:

步骤0预处理,k-means聚类。记录下聚类中心以及其类内的ip。如图2所示,是选取的部分存活ip热力图可知,上海附近的ip比较丰富,所以本实施例仅将探测源点定在上海。

步骤1利用python调用系统的ping命令,对类内目的ip同时进行10次以上的ping操作,画出时延曲线。

步骤2利用python的pywt包对时延曲线进行小波基分解,获取时延的特征向量。

步骤3利用python调用系统traceroute命令,获取traceroute的路径。

步骤4再利用python层次聚类的包,对特征值进行聚类。最终得到层次聚类与层析树,配合traceroute路径进行匿名融合,结果如图3-4所示。

步骤5按照数据的前两列,从数据库中挑出对应traceroute路径进行融合。最终得到的数据格式为:{(匿名节点对),(上下跳的ip)}

步骤6利用上下跳信息定位匿名节点的物理地址。

以上所述仅对本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡是在本发明的权利要求限定范围内,所做的任何修改、等同替换、改进等,均应在本发明的保护范围之内。

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