CN109889396A - 一种自治域级互联网拓扑可视化方法 - Google Patents
一种自治域级互联网拓扑可视化方法 Download PDFInfo
- Publication number
- CN109889396A CN109889396A CN201910225735.7A CN201910225735A CN109889396A CN 109889396 A CN109889396 A CN 109889396A CN 201910225735 A CN201910225735 A CN 201910225735A CN 109889396 A CN109889396 A CN 109889396A
- Authority
- CN
- China
- Prior art keywords
- autonomous domain
- autonomous
- longitude
- domain
- information
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种自治域级互联网拓扑可视化方法,涉及网络拓扑可视化技术领域。为了解决现有的互联网拓扑可视化方法无法体现自治域级拓扑特点的问题。根据层级信息将自治域分为Tier1、Tier2和其余自治域;Tier1中的所有自治域分别用一种图形符号表示,Tier2中的所有自治域分别用与Tier1相同或不同的图形符号表示,其余自治域用分别用不同于Tier1和Tier2的图形符号表示;对地理信息中的经度进行统计,得到自治域的经度覆盖范围,将自治域的经度覆盖范围作为自治域级互联网拓扑图的横坐标数据;使用图形绘制工具生成一张以经度为横坐标、以拓扑层级为纵坐标的二维图,所述二维图中体现出自治域基本信息和邻接信息,从而完成自治域级互联网拓扑的可视化。
Description
技术领域
本发明涉及一种自治域级互联网拓扑可视化方法,涉及网络拓扑可视化技术领域。
背景技术
自治域是互联网路由架构的关键元素之一,大范围的路由比如跨国路由不可避免的要使用域际路由,自治域在互联网路由中扮演着重要角色,因而对自治域级别的互联网拓扑可视化将便于我们对自治域进行了解和掌握。而且全球互联网在自治域级上分布不均衡,不同国家和地区的自治域数量、规模差别很大,自治域级拓扑的可视化有助于认识到国家层面互联网建设的差距。
现有的一些路由可视化技术大多是将路由器表示成点、路由器之间的链路表示成边,形成一幅图,但是这样在表示自治域机拓扑时存在一些问题,比如无法体现自治域的规模、增加自治域间增加一条边时对图的影响很大、无法反映自治域与地理位置的关系等。
发明内容
本发明的目的是提供一种自治域级互联网拓扑可视化方法,以解决现有的互联网拓扑可视化方法无法体现自治域级拓扑特点的问题。
本发明为解决上述技术问题采取的技术方案是:
一种自治域级互联网拓扑可视化方法,所述方法是基于含有自治域基本信息、邻接信息、层级信息和地理信息的初始数据进行,所述自治域基本信息包括自治域号、自治域名称、所属国家,所述邻接信息是指一个自治域与哪些自治域直接相连,所述层级信息是自治域在互联网中的所属层次,所述地理信息为自治域声明的所有前缀的地理信息的总和,前缀的地理信息包括经度和纬度;
所述方法的实现过程为:
步骤一、根据层级信息将自治域分为Tier1、Tier2和其余自治域,按照自治域规模排序,根据自治域的邻接信息计算所述其余自治域与Tier1、Tier2的邻接关系,得到自治域的拓扑层级位置;Tier1是全世界范围内顶级的23个自治域;Tier2是与Tier1直接相连的较大规模自治域,较大规模自治域是连接的子自治域数量大于等于50的自治域;所述其余自治域是指所有自治域中除Tier1和Tier2的自治域;所述自治域的拓扑层级位置作为自治域级互联网拓扑图的纵坐标数据;
步骤二、Tier1中的所有自治域分别用一种图形符号表示,Tier2中的所有自治域分别用与Tier1相同或不同的图形符号表示,其余自治域用分别用不同于Tier1和Tier2的图形符号表示;
步骤三、对地理信息中的经度进行统计,得到自治域的经度覆盖范围,将自治域的经度覆盖范围作为自治域级互联网拓扑图的横坐标数据;
步骤四、使用图形绘制工具(前端绘制技术)生成一张以经度为横坐标、以拓扑层级为纵坐标的二维图,所述二维图中体现出自治域基本信息和邻接信息,从而完成自治域级互联网拓扑的可视化。
进一步地,自治域声明的所有前缀的地理信息的总和的获得过程为:
利用地理定位数据库(ip2Location)构建一棵以前缀IP地址为关键字的Trie树,并根据城市经纬度把库中“国家、州、城市”格式的地理定位信息转为经纬度信息存在Trie树的对应节点处;然后把各自治域声明的前缀也加入树中,将前缀的父亲节点以及所有后代节点的经纬度取整后存在一个集合中作为该前缀的经纬度数据;各自治域将其声明的所有前缀的经纬度数据合并为一个集合,整理后得到该自治域的经纬度列表数据,即得到所有前缀的地理信息的总和。
进一步地,在步骤一中,根据自治域的邻接信息计算所述其余自治域与Tier1、Tier2的邻接关系的具体过程为:
把所有自治域按邻接关系组合成一张有向图,对该有向图进行广度优先遍历,该遍历为迭代过程,迭代过程用到的数据结构为队列,把Tier1、Tier2自治域加入队列中作为初始状态,迭代开始后从队列中取出一个自治域A,找到A所有的商业关系为顾客(customer) 的自治域;标记商业关系为顾客的自治域已被A访问到,并将其加入队列;迭代结束后则得到各自治域与哪个Tier1、Tier2自治域最邻近。
进一步地,在步骤二中,用矩形代表Tier1、Tier2自治域,用小圆形代表其余自治域。
进一步地,在步骤三中,基于经度信息先利用区间分割算法对经度区间列表进行分割,然后再利用区间合并算法对分割后的经度区间列表进行重新整合,最后得到每个自治域的经度覆盖范围,
所述区间分割算法的输入为经度信息和分割粒度,输出为分割后的经度区间列表;经度信息表示为一个排好序的数组[x1,x2,x3,…,xn],其中西经表示成范围为-180到0的负数,东经表示成范围为0到180的正数;分割粒度是一个预选设定的正数P,依次计算所述数组中相邻两数的差值,第i项的差值记作di,当i不等于n时,di=xi+1-xi;当i等于n时,di=360-xn+x1;若在序列D=[d1,d2,d3,…,dn]中,值最大的一项为dm,则xm+1和xm分别作为自治域覆盖范围的起始点和终结点;然后创建一个空区间I,从dm+1开始遍历序列D,当di小于P时,将 xi+1加入I,当di大于等于P时,将I保存,并把xi+1加入新建的区间I,最终得到若干分割后的区间;若得到跨越180°的区间,即若区间的最后一项大于第一项,将其分为[……,180] 和[-180,……]两部分;
所述区间合并算法算法的输入所有自治域分割后的经度区间列表Iist和合并粒度t,所述合并粒度t是表示要整合的区间个数,输出为每个自治域的经度覆盖范围,
首先对Iist按顺序分成每t个区间一组,对每个组进行如下处理:①对组中区间按经度坐标值大小排序;②若组中存在没有标记的区间则新建一行L,取第一个没有标记的区间加入L,然后依次对其后的区间进行比较,如果有区间的开始坐标比之前的区间的结束坐标大,则将这个区间也加入到L行,并对其做标记;重复②直到所有区间都已做标记。
进一步地,在步骤四中,所述图形绘制工具为HTML页面,在其上使用SVG表示图形,使用HTML页面上的d3.js模块进行二维图坐标轴的绘制、对表示自治域的图形符号的批量绘制、自治域信息的展示。
进一步地,在步骤四中,所得的自治域级互联网拓扑图具有查询自治域、邻接关系的功能;查询自治域、邻接关系的功能的实现过程为:
查询自治域的功能由Javascript实现,绘制图形时给图形的id值赋为其自治域号的值,按照自治域号查询时使用JS的DOM操作搜索id为该自治域号的元素,获取其形状、位置信息,用不同颜色的形状显示即可;查询商业关系需要先用AJAX技术向后台发送请求,得到带有自治域号的回复后,再用查询自治域的方法显示出来。
本发明具有以下有益效果:
本发明所述自治域级互联网拓扑可视化方法,在进行可视化的过程中综合考虑了自治域的拓扑位置和地理位置,在呈现自治域和拓扑关系时最小化了可视化元素,十分简洁;因为可视化基于地理位置,又保证了可视化的稳定性,互联网拓扑的局部变化不会导致全局变化;同时在可视化过程中加入了对国家因素的考量,使得拓扑图可以反映各主要国家在互联网中占据的位置。在可视化之外,还有简单的搜索定位等功能,可以更方便地观察拓扑的细节。
附图说明
图1是本发明的实施方式框图;图2是计算与各Tier1、Tier2自治域最邻近的其余自治域的原理图;图3是分割算法结果示意图;图4是计算横坐标轴刻度区间权重的示意图;图5是利用本发明方法获得的一种自治域级互联网拓扑可视化界面截图;图6是查询自治域的显示效果界面截图;图7是查询商业关系的显示效果界面截图。
具体实施方式
如图1所示,本实施方式对一种自治域级互联网拓扑可视化方法进行如下说明:
初始数据有自治域基本信息、邻接信息、层级信息和前缀地理信息。根据层级信息将自治域分为Tier1、Tier2和其余自治域,并按照自治域规模排序,得到自治域的拓扑层级位置;对地理信息中的经度列表进行范围统计,算到合理尺度的坐标轴,再经过坐标转换、区间分割与合并等方法得到自治域的经度覆盖范围。从而用矩形代表Tier1、Tier2自治域,用小圆形代表其余自治域,使用前端绘制技术生成一张以经度为横坐标,以拓扑层级为纵坐标的二维图,并提供图中自治域的基础查询功能。
所述方法的实现过程为:
(1)对初始数据进行整合,将地理信息转换为经纬度,对除Tier1、Tier2外的其余自治域计算其距哪个顶级自治域最邻近,最终得到每个自治域的完整信息。
(2)根据经度信息使用区间分割算法计算每个自治域的覆盖范围,并使用区间合并算法重新整合;统计各区间自治域覆盖总量,计算横坐标轴的合适比例,从而计算用来表示各自治域的矩形和圆形在此坐标轴下的坐标;给自治域数量较多的国家分配基准颜色,并给各图形按照基准颜色生成随机颜色;构建前缀树和邻接关系。
(3)使用前端技术将表示自治域的图形按照坐标、颜色绘制在页面上,同时显示各自治域的信息;并提供查询自治域、邻接关系的功能,能够将查询结果标注在图形上。
步骤(1)中主要内容为生成各自治域的经纬度数据和计算除Tier1、Tier2外的自治域与哪个顶级自治域最邻近两部分:
步骤(1.1)是生成各自治域的经纬度数据。利用地理定位数据库(ip2Location)构建一棵以前缀IP地址为关键字的Trie树,并根据城市经纬度把库中“国家、州、城市”格式的地理定位信息转为经纬度信息存在Trie树的对应节点处。然后把各自治域声明的前缀也加入树中,将前缀的父亲节点以及所有后代节点的经纬度取整后存在一个集合中作为该前缀的经纬度数据。各自治域将其声明的所有前缀的经纬度数据合并为一个集合,整理后得到该自治域的经纬度列表数据。
步骤(1.2)是计算与各Tier1、Tier2自治域最邻近的其余自治域。各自治域根据邻接关系可以组合成一张有向图,对这张图进行广度优先遍历,把Tier1、Tier2自治域加入队列中作为初始状态,迭代开始后从队列中取出一个自治域,找到其所有的商业关系为顾客(customer)的自治域,标记其已被访问到,并将其加入队列。在遍历过程中记录其由谁访问到,就可以得到各自治域与哪个Tier1、Tier2自治域最邻近。此过程原理图见图2。
步骤(2)主要为本发明的核心算法流程,算法的输入是步骤(1)完成之后得到的以自治域为键的键值数据,输出是能够供前端直接绘图使用的图形数据。算法流程可以分为四个部分(2.1)对Tier1、Tier2自治域的经度信息使用区间分割算法计算自治域的覆盖范围;(2.2)对Tier2分割后的区间使用区间合并算法重新整合;(2.3)统计各区间Tier1、Tier2 自治域覆盖总量,计算横坐标轴的合适比例(2.4)计算用来表示各自治域的矩形和圆形在此坐标轴下的坐标;(2.5)给自治域数量较多的国家分配基准颜色,并给各图形按照基准颜色生成随机颜色。
下面对以上五个步骤中的核心内容做详细描述:
(2.1)此步骤为根据经度信息计算自治域的覆盖范围。主要使用了区间分割算法,算法的输入为经度信息和分割粒度,经度信息可以表示为一个排好序的数组[x1,x2,x3,…,xn],其中西经表示成范围为-180到0的负数,东经表示成范围为0到180的正数;分割粒度是一个正数P,是人为指定的,分割的意义在于,可以认为当经度列表中相邻两个经度差值超过分割粒度时,自治域不覆盖这个范围。依次计算相邻两数的差值,第i项的差值记作di,当i不等于n时,di=xi+1-xi;当i等于n时,di=360-xn+x1。若在序列D=[d1,d2,d3,…,dn]中,最大的一项为dm,则xm+1和xm分别作为自治域覆盖范围的起始点和终结点。然后创建一个空区间I,从dm+1开始遍历序列D,当di小于P时,将xi+1加入I,当di大于等于P时,将I 保存,并把xi+1加入新建的区间I,最终得到若干分割后的区间。此过程的结果如图3所示。若得到如图中I2所示的跨越180°的区间,即若区间的最后一项大于第一项,将其分为[……,180]和[-180,……]两部分。
(2.2)此步骤为对Tier2自治域分割产生的区间进行重新整合。由于很多自治域在经过步骤(2.1)之后得到的区间覆盖范围比较稀疏,如果一行只绘制一个自治域的话,图中会有很多的空白,因此需要重新整合以提高空间利用率。此步骤主要用到了区间合并算法,由于自治域在图上的纵坐标也是有意义的,不能随意打乱区间的顺序,因此算法的参数除了所有自治域分割后的区间列表Iist之外,还有表示在多少个区间范围内进行整合的t。首先对Iist按顺序分成每t个区间一组,对每个组进行:①对组中区间按坐标值大小排序;②取第一个没有标记的区间做为新一行的开始,然后依次对其后的区间进行比较,如果有区间的开始坐标比之前的区间的结束坐标要大,就把这个区间也加入到这一行,并做对其标记。重复②直到所有区间都已做标记。算法的伪代码描述如下:
(2.3)此步骤为统计各区间自治域覆盖总量,计算横坐标轴的合适比例。由于东西方互联网发展不均衡以及太平洋、大西洋的存在,使得自治域在经度的分布不均匀。为尽量减少图中的空白并更明确的表示哪些地区的自治域规模更大,需要为经度坐标轴调整比例,也就是给不同的经度范围不同的权重。经度坐标轴的刻度为[-180°W,-150°W,-120°W,-90° W,-60°W,-30°W,0°,30°E,60°E,90°E,120°E,150°E,180°E],共13个刻度,12个区间,要计算的就是这12个区间长短的相对权重。这个权重由落入区间的长度来表达,读取步骤(2.2) 得到的区间的端点[x,y],并找到x和y分别落入的区间[q1,q2]和[q3,q4],那么区间[q1,q2] 增加权重q2-x,[q3,q4]增加权重y-q3,如果存在q2和q3之间的区间则增加等于其区间长度的权重。此过程原理即图4所示。对每个区间上述操作后,得到权重数组 W=[w0,w1,……,w11]。令d为坐标轴总长度,t0是第一个坐标刻度的位置,则横坐标轴第i 个刻度的实际坐标可由此式得:
(2.4)此步骤为计算用来表示各自治域的矩形和圆形在此坐标轴下的坐标。Tier1和 Tier2自治域用矩形来表示,其形状和位置可由左上顶点坐标与长、高来确定。横坐标由经度信息确定,由区间[x,y]的端点在横坐标轴的位置,计算出左右端点的坐标,两者相减得到矩形的长;纵坐标由拓扑位置和自治域规模来确定,所有Tier1自治域都在Tier2的上方, Tier1、Tier2内部按照自治域规模大小排序,规模越大的画在越靠上的地方;表示Tier1自治域的矩形的宽由其customer数量取log函数得到,Tier2自治域的矩形的宽的值固定。其余自治域用小圆形表示,其形状和位置由圆心坐标和半径确定。圆心横坐标由其经度平均值计算得到,纵坐标与距其最近的Tier1、Tier2自治域相同,半径为固定值,据此可将这些自治域绘制在图上。
(2.5)此步骤为给自治域数量较多的国家分配基准颜色,并按照基准颜色给各图形生成随机颜色,其目的在于能让自治域的颜色反映出其国家信息。统计各国家拥有的Tier1、 Tier2自治域数量,给排名前十的国家和地区和其余国家和地区主观地设定基准颜色。颜色在计算机中由RGB值确定,对自治域所在国家的基准颜色的RGB进行一些小的变化,就能得到与基准颜色相近的随机颜色,Tier1、Tier2自治域的颜色就由这些随机颜色组成,其余自治域的颜色由距其最近的Tier1、Tier2自治域的颜色稍微加深得到。
步骤(3)为使用前端技术将步骤(2)得到的表示自治域的图形按照坐标、颜色绘制在页面上;同时显示各自治域的信息,并提供查询自治域、邻接关系的功能。前端主要是HTML页面,在其上使用SVG表示图形,使用d3.js进行坐标轴的绘制、图形的批量绘制、自治域信息的展示。查询自治域的功能由Javascript实现,绘制图形时给图形的id值赋为其自治域号的值,按照自治域号查询时使用JS的DOM操作搜索id为该自治域号的元素,获取其形状、位置信息,用不同颜色的形状显示即可;查询商业关系需要先用AJAX技术向后台发送请求,得到带有自治域号的回复后,再用查询自治域的方法显示出来。
上述步骤只是对实施过程的简单描述,在计算和绘制的过程中还有很多细节,以及可以进行的调整,比如区间合并的过程可以忽略极小的区间,坐标轴的权重可以进行函数调整,Tier2自治域重新整合后,其余自治域如何绘制在最佳的位置等。
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
实施例:
为了更好的说明本发明内容,将结合实际的拓扑可视化过程做详细描述:
步骤(1)中主要内容为生成各自治域的经纬度数据和计算除Tier1、Tier2外的自治域与哪个顶级自治域最邻近两部分。
步骤(1.1)是生成各自治域的经纬度数据。利用地理定位数据库(ip2Location)查询到各自治域声明的所有前缀的经纬度数据,合并整理后得到该自治域的经纬度列表数据。得到的数据如下所示:
上述数据为7029号自治域的信息(部分)。用“|”分割开的数据分别为自治域号、自治域名称、所属国家、自治域规模、经度信息列表、纬度信息、声明的前缀(部分)。
步骤(1.2)是计算与各Tier1、Tier2自治域最邻近的其余自治域。对自治域根据邻接关系组合成的有向图进行广度优先遍历,在遍历过程中记录各自治域由谁访问到,就可以得到各自治域与哪个Tier1、Tier2自治域最邻近。再将自治域信息结合在一起,得到如下数据:
该数据中第一行是与7029号自治域最邻近的393449号自治域的信息。用“|”分割开的数据分别为最邻近的自治域号、自己的自治域号、自治域名称、所属国家、自治域规模、经度信息列表、纬度信息、与最邻近自治域之间的路径、声明的前缀。
步骤(2)主要为本发明的核心算法流程,算法的输入是步骤(1)完成之后得到的以自治域为键的键值数据,输出是能够供前端直接绘图使用的图形数据。算法流程可以分为四个部分(2.1)对Tier1、Tier2自治域的经度信息使用区间分割算法计算自治域的覆盖范围;(2.2)对Tier2分割后的区间使用区间合并算法重新整合;(2.3)统计各区间Tier1、Tier2 自治域覆盖总量,计算横坐标轴的合适比例(2.4)计算用来表示各自治域的矩形和圆形在此坐标轴下的坐标;(2.5)给自治域数量较多的国家分配基准颜色,并给各图形按照基准颜色生成随机颜色。
下面分别以例子对上述五个步骤中的核心内容做详细描述:
(2.1)此步骤为根据经度信息计算自治域的覆盖范围。主要使用了区间分割算法,算法的输入为经度信息和分割粒度,7029号自治域的经度信息用数组表示为[-162,-157,-149,-124,-123,-122,-121,-120,-119,-118,-117,-116,-115,-114,-113,-112,-111,-110,-109, -108,-107,-106,-105,-104,-103,-102,-101,-100,-99,-98,-97,-96,-95,-94,-93,-92,-91,-90, -89,-88,-87,-86,-85,-84,-83,-82,-81,-80,-79,-78,-77,-76,-75,-74,-73,-72,-71,-70,-69,-68, -67,-66,0,2,13,18,24,114,153,166],分割粒度默认设为60。首先找到数组中相邻两数差值最大的位置,经计算知是24和114的差值最大,则114为自治域覆盖范围起始点,再从 114开始依次比较相邻两数数差值是否大于分割粒度,若大于则新增一个区间,否则更新上一个区间的右端点,由此得到区间列表[[114,-66],[0,24]]。列表中区间[114,-66]左端点大于右端点,即跨过了180度,故拆分,得到最终结果[[114,180],[-180,-66],[0,24]]。
(2.2)此步骤为对Tier2自治域分割产生的区间进行重新整合。算法的输入为区间列表和分组数目。由于上个步骤产生的区间非常多,取前20个区间举例说明此过程,区间为[(-149, 176),(-123,153),(-180,-173),(-122,-82),(0,180),(-122,-71),(2,153),(-121,-73),(-3,153),(7, 158),(-122,-71),(-15,39),(139,166),(-121,-73),(2,153),(-122,-78),(0,6),(57,153),(28,153), (-122,-70)],每10个区间分为一组。前10个区间为第一组,先按坐标排序,得到列表[(-180, -173),(-149,176),(-123,153),(-122,-82),(-122,-71),(-121,-73),(-3,153),(0,180),(2,153),(7, 158)]。新建区间列表,并取第一个区间加入,即[(-180,-173)],然后依次寻找区间开始端点大于-173的区间,找到区间(-149,176),将其加入列表,得到[(-180,-173),(-149,176)];再依次寻找区间开始端点大于176的区间,没有这样的区间,则这次迭代结束。存储现在的区间列表,新建区间列表,找到未加入过的第一个区间(-123,153),重复上述过程。最终得到的结果为[[(-180,-173),(-149,176)],[(-123,153)],[(-122,-82),(-3,153)],[(-122,-71),(0,180)], [(-121,-73),(2,153)],[(7,158)],[(-122,-78),(-15,39),(57,153)],[(-122,-71),(0,6),(28,153)], [(-122,-70),(2,153)],[(-121,-73),(139,166)],[(-180,-70),(-4,7),(114,180)],[(-180,-66),(-2, 174)],[(-122,-70),(0,24),(139,180)],[(0,38),(151,153)],[(-180,-66),(-1,55),(77,172)],[(-122, -77),(2,18),(28,180)],[(-122,-71),(8,51)],[(-121,-87),(-82,-34)],[(-180,-68),(0,158)],[(-180, -68),(0,180)],[(-122,-86),(-80,-3),(72,153)],[(-121,-73),(106,174)],[(121,180)]]。
(2.3)此步骤为统计各区间自治域覆盖总量,计算横坐标轴的合适比例。经度坐标轴的刻度为[-180°W,-150°W,-120°W,-90°W,-60°W,-30°W,0°,30°E,60°E,90°E,120°E,150° E,180°E],共13个刻度,12个刻度区间。这12个刻度区间的相对权重初始值都是0,即[0, 0,0,0,0,0,0,0,0,0,0,0]。读取上个步骤产生的区间列表,第一个区间(-180,-173),其左右端点都落在第一个刻度区间,因此第一个刻度区间增加权重-173-(-180)=7,权重值更新为[7, 0,0,0,0,0,0,0,0,0,0,0];第二个区间(-149,176),其左端点落在第2个区间,右端点落在最后一个区间,因此第二个区间增加权重-120-(-149)=29,最后一个区间增加权重 176-150=26,其余区间增加权重30,权重值更新为[7,29,30,30,30,30,30,30,30,30,30, 26]……以此类推,对上个步骤的20个区间进行计算后,权重值为[157,204,600,402,116, 112,458,426,421,470,561,331]。若坐标轴总长度为1200,第一个刻度的坐标为100,则经下式计算:
得到各刻度的实际坐标为[100,144.2,201.7,370.8,484.1,516.8,548.4,677.5,797.5, 916.2,1048.6,1206.7,1300]。
(2.4)此步骤为计算用来表示各自治域的矩形和圆形在此坐标轴下的坐标。以自治域7029和393449,在步骤(2.3)计算出来的横坐标轴下为例。7029号自治域自治域是Tier2,其分割后的经度覆盖区间为[[114,180],[-180,-66],[0,24]],因此用3个矩形表示。这里计算一下第一个矩形,区间左端点114在坐标轴的90°E到120°E区间,90°E的坐标为916.2, 120°E的坐标为1048.6,因此114在坐标轴上的坐标为:
同理可得180在坐标轴上的坐标为1300,因此矩形的长为1300-1048=252,Tier2自治域的宽是固定值12,左上顶点的横坐标为1022.12。Tier2自治域的纵坐标是由自治域拓扑位置和规模大小决定的,还需要考虑步骤(2.2)重新整合之后同一自治域的矩形纵坐标可能不同的问题,所以还需要其他自治域的信息以及参数来确定,在这里假设其纵坐标为745,则得到了这个矩形的完整位置信息:左上顶点坐标(1022.12,745),长252,宽12,足够进行绘制。
393449号自治域不是Tier1和Tier2,用小圆形来表示,画在距其最近的Tier1、Tier2 自治域7029下。393449号自治域的经度平均值为-70,因此横坐标为446.8;纵坐标与7029 号自治域相同,为745;半径为固定值5。最终得到圆形的完整信息:圆心坐标(446.8,745),半径5。
(2.5)此步骤为给自治域数量较多的国家分配基准颜色,并按照基准颜色给各图形生成随机颜色。统计各国家拥有的Tier1、Tier2自治域数量,给排名靠前的国家和地区和其余国家和地区主观地设定基准颜色,统计和分配结果见下表1。
表1自治域数量最多的几个国家及分配的颜色
以自治域7029为例,其属于美国,因此由基准颜色#87CEEB随机生成一个相近颜色#93D4FC可以看出还是比较相近的,但仍然可以区分。自治域393449是一个距7029号自治域最近的其余自治域,因此生成一个比#93D4FC深一些的颜色#74A3CA
步骤(3)为使用前端技术将步骤(2)得到的表示自治域的图形按照坐标、颜色绘制在页面上;同时显示各自治域的信息,并提供查询自治域、邻接关系的功能。前端主要是HTML页面,在其上使用SVG表示图形,使用d3.js进行坐标轴的绘制、图形的批量绘制、自治域信息的展示。绘制后的页面如图5:
查询自治域的功能由Javascript实现,绘制图形时给图形的id值赋为其自治域号的值,按照自治域号查询时使用JS的DOM操作搜索id为该自治域号的元素,获取其形状、位置信息,用不同颜色的形状显示即可;查询商业关系需要先用AJAX技术向后台发送请求,得到带有自治域号的回复后,再用查询自治域的方法显示出来。
查询自治域的显示效果如图6所示,黑框框住的图形即为查询的2828自治域:
查询商业关系的显示效果如图7所示,黑框框住的图形即为查询的2828自治域,蓝框框住的图形为peer商业关系的自治域,红框框住的图形为provider关系的自治域,绿框框住的图形为customer商业关系的自治域。
Claims (7)
1.一种自治域级互联网拓扑可视化方法,所述方法是基于含有自治域基本信息、邻接信息、层级信息和地理信息的初始数据进行,所述自治域基本信息包括自治域号、自治域名称、所属国家,所述邻接信息是指一个自治域与哪些自治域直接相连,所述层级信息是自治域在互联网中的所属层次,所述地理信息为自治域声明的所有前缀的地理信息的总和,前缀的地理信息包括经度和纬度;
其特征在于,所述方法的实现过程为:
步骤一、根据层级信息将自治域分为Tier1、Tier2和其余自治域,按照自治域规模排序,根据自治域的邻接信息计算所述其余自治域与Tier1、Tier2的邻接关系,得到自治域的拓扑层级位置;Tier1是全世界范围内顶级的23个自治域;Tier2是与Tier1直接相连的较大规模自治域,较大规模自治域是连接的子自治域数量大于等于50的自治域;所述其余自治域是指所有自治域中除Tier1和Tier2的自治域;所述自治域的拓扑层级位置作为自治域级互联网拓扑图的纵坐标数据;
步骤二、Tier1中的所有自治域分别用一种图形符号表示,Tier2中的所有自治域分别用与Tier1相同或不同的图形符号表示,其余自治域用分别用不同于Tier1和Tier2的图形符号表示;
步骤三、对地理信息中的经度进行统计,得到自治域的经度覆盖范围,将自治域的经度覆盖范围作为自治域级互联网拓扑图的横坐标数据;
步骤四、使用图形绘制工具生成一张以经度为横坐标、以拓扑层级为纵坐标的二维图,所述二维图中体现出自治域基本信息和邻接信息,从而完成自治域级互联网拓扑的可视化。
2.根据权利要求1所述的一种自治域级互联网拓扑可视化方法,其特征在于,自治域声明的所有前缀的地理信息的总和的获得过程为:
利用地理定位数据库构建一棵以前缀IP地址为关键字的Trie树,并根据城市经纬度把库中“国家、州、城市”格式的地理定位信息转为经纬度信息存在Trie树的对应节点处;然后把各自治域声明的前缀也加入树中,将前缀的父亲节点以及所有后代节点的经纬度取整后存在一个集合中作为该前缀的经纬度数据;各自治域将其声明的所有前缀的经纬度数据合并为一个集合,整理后得到该自治域的经纬度列表数据,即得到所有前缀的地理信息的总和。
3.根据权利要求1或2所述的一种自治域级互联网拓扑可视化方法,其特征在于,在步骤一中,根据自治域的邻接信息计算所述其余自治域与Tier1、Tier2的邻接关系的具体过程为:
把所有自治域按邻接关系组合成一张有向图,对该有向图进行广度优先遍历,该遍历为迭代过程,迭代过程用到的数据结构为队列,把Tier1、Tier2自治域加入队列中作为初始状态,迭代开始后从队列中取出一个自治域A,找到A所有的商业关系为顾客的自治域;标记商业关系为顾客的自治域已被A访问到,并将其加入队列;迭代结束后则得到各自治域与哪个Tier1、Tier2自治域最邻近。
4.根据权利要求1或2所述的一种自治域级互联网拓扑可视化方法,其特征在于,在步骤二中,用矩形代表Tier1、Tier2自治域,用小圆形代表其余自治域。
5.根据权利要求4所述的一种自治域级互联网拓扑可视化方法,其特征在于,在步骤三中,基于经度信息先利用区间分割算法对经度区间列表进行分割,然后再利用区间合并算法对分割后的经度区间列表进行重新整合,最后得到每个自治域的经度覆盖范围,
所述区间分割算法的输入为经度信息和分割粒度,输出为分割后的经度区间列表;经度信息表示为一个排好序的数组[x1,x2,x3,…,xn],其中西经表示成范围为-180到0的负数,东经表示成范围为0到180的正数;分割粒度是一个预选设定的正数P,依次计算所述数组中相邻两数的差值,第i项的差值记作di,当i不等于n时,di=xi+1-xi;当i等于n时,di=360-xn+x1;若在序列D=[d1,d2,d3,…,dn]中,值最大的一项为dm,则xm+1和xm分别作为自治域覆盖范围的起始点和终结点;然后创建一个空区间I,从dm+1开始遍历序列D,当di小于P时,将xi+1加入I,当di大于等于P时,将I保存,并把xi+1加入新建的区间I,最终得到若干分割后的区间;若得到跨越180°的区间,即若区间的最后一项大于第一项,将其分为[……,180]和[-180,……]两部分;
所述区间合并算法算法的输入所有自治域分割后的经度区间列表Iist和合并粒度t,所述合并粒度t是表示要整合的区间个数,输出为每个自治域的经度覆盖范围,
首先对Iist按顺序分成每t个区间一组,对每个组进行如下处理:①对组中区间按经度坐标值大小排序;②若组中存在没有标记的区间则新建一行L,取第一个没有标记的区间加入L,然后依次对其后的区间进行比较,如果有区间的开始坐标比之前的区间的结束坐标大,则将这个区间也加入到L行,并对其做标记;重复②直到所有区间都已做标记。
6.根据权利要求4或5所述的一种自治域级互联网拓扑可视化方法,其特征在于,在步骤四中,所述图形绘制工具为HTML页面,在其上使用SVG表示图形,使用HTML页面上的d3.js模块进行二维图坐标轴的绘制、对表示自治域的图形符号的批量绘制、自治域信息的展示。
7.根据权利要求6所述的一种自治域级互联网拓扑可视化方法,其特征在于,在步骤四中,所得的自治域级互联网拓扑图具有查询自治域、邻接关系的功能;查询自治域、邻接关系的功能的实现过程为:
查询自治域的功能由Javascript实现,绘制图形时给图形的id值赋为其自治域号的值,按照自治域号查询时使用JS的DOM操作搜索id为该自治域号的元素,获取其形状、位置信息,用不同颜色的形状显示即可;查询商业关系需要先用AJAX技术向后台发送请求,得到带有自治域号的回复后,再用查询自治域的方法显示出来。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910225735.7A CN109889396B (zh) | 2019-03-22 | 2019-03-22 | 一种自治域级互联网拓扑可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910225735.7A CN109889396B (zh) | 2019-03-22 | 2019-03-22 | 一种自治域级互联网拓扑可视化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109889396A true CN109889396A (zh) | 2019-06-14 |
CN109889396B CN109889396B (zh) | 2021-09-03 |
Family
ID=66933927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910225735.7A Expired - Fee Related CN109889396B (zh) | 2019-03-22 | 2019-03-22 | 一种自治域级互联网拓扑可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109889396B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111130876A (zh) * | 2019-12-20 | 2020-05-08 | 北京邮电大学 | 一种自治域系统在三维地理空间的展示方法及装置 |
CN111580817A (zh) * | 2020-05-11 | 2020-08-25 | 山东汇贸电子口岸有限公司 | 一种可视化监控资源的前端实现方法 |
CN111865698A (zh) * | 2020-07-30 | 2020-10-30 | 中国电子信息产业集团有限公司第六研究所 | 一种基于地理信息的自治域级互联网拓扑可视化方法 |
CN114268551A (zh) * | 2021-12-16 | 2022-04-01 | 南京华飞数据技术有限公司 | 一种基于主被动协同的自治域级网络拓扑测绘方法 |
CN114615182A (zh) * | 2021-12-16 | 2022-06-10 | 浙江省新型互联网交换中心有限责任公司 | 一种互联网自治域系统商业关系分步推断的方法 |
CN115941495A (zh) * | 2022-09-30 | 2023-04-07 | 天翼安全科技有限公司 | 一种网络拓扑构建方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756188A (zh) * | 2004-09-30 | 2006-04-05 | 北京航空航天大学 | 大规模网络拓扑图形化显示的方法 |
US20120243443A1 (en) * | 2011-03-25 | 2012-09-27 | Futurewei Technologies, Inc. | System and Method for Topology Transparent Zoning in Network Communications |
CN102932177A (zh) * | 2012-10-30 | 2013-02-13 | 东南大学 | 一种域间分布式资源控制方法 |
CN104348672A (zh) * | 2013-07-29 | 2015-02-11 | 中国电信股份有限公司 | 大型ip网络bgp路由条目检测方法和装置 |
US20150249587A1 (en) * | 2012-09-20 | 2015-09-03 | Ntt Docomo, Inc. | Method and apparatus for topology and path verification in networks |
CN107104809A (zh) * | 2016-02-19 | 2017-08-29 | 北京神州泰岳软件股份有限公司 | 一种生成网络拓扑图的方法和系统 |
CN108718247A (zh) * | 2018-04-16 | 2018-10-30 | 哈尔滨工业大学 | 一种基于虚拟化技术的自治域级网络模拟方法 |
-
2019
- 2019-03-22 CN CN201910225735.7A patent/CN109889396B/zh not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1756188A (zh) * | 2004-09-30 | 2006-04-05 | 北京航空航天大学 | 大规模网络拓扑图形化显示的方法 |
US20120243443A1 (en) * | 2011-03-25 | 2012-09-27 | Futurewei Technologies, Inc. | System and Method for Topology Transparent Zoning in Network Communications |
US20150249587A1 (en) * | 2012-09-20 | 2015-09-03 | Ntt Docomo, Inc. | Method and apparatus for topology and path verification in networks |
CN102932177A (zh) * | 2012-10-30 | 2013-02-13 | 东南大学 | 一种域间分布式资源控制方法 |
CN104348672A (zh) * | 2013-07-29 | 2015-02-11 | 中国电信股份有限公司 | 大型ip网络bgp路由条目检测方法和装置 |
CN107104809A (zh) * | 2016-02-19 | 2017-08-29 | 北京神州泰岳软件股份有限公司 | 一种生成网络拓扑图的方法和系统 |
CN108718247A (zh) * | 2018-04-16 | 2018-10-30 | 哈尔滨工业大学 | 一种基于虚拟化技术的自治域级网络模拟方法 |
Non-Patent Citations (1)
Title |
---|
张晔,张宇: "《基于半监督聚类的局部网络拓扑测量任务选取方法》", 《智能计算机与应用》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111130876A (zh) * | 2019-12-20 | 2020-05-08 | 北京邮电大学 | 一种自治域系统在三维地理空间的展示方法及装置 |
CN111580817A (zh) * | 2020-05-11 | 2020-08-25 | 山东汇贸电子口岸有限公司 | 一种可视化监控资源的前端实现方法 |
CN111580817B (zh) * | 2020-05-11 | 2023-08-15 | 山东汇贸电子口岸有限公司 | 一种可视化监控资源的前端实现方法 |
CN111865698A (zh) * | 2020-07-30 | 2020-10-30 | 中国电子信息产业集团有限公司第六研究所 | 一种基于地理信息的自治域级互联网拓扑可视化方法 |
CN111865698B (zh) * | 2020-07-30 | 2023-10-17 | 中国电子信息产业集团有限公司第六研究所 | 一种基于地理信息的自治域级互联网拓扑可视化方法 |
CN114268551A (zh) * | 2021-12-16 | 2022-04-01 | 南京华飞数据技术有限公司 | 一种基于主被动协同的自治域级网络拓扑测绘方法 |
CN114615182A (zh) * | 2021-12-16 | 2022-06-10 | 浙江省新型互联网交换中心有限责任公司 | 一种互联网自治域系统商业关系分步推断的方法 |
CN114615182B (zh) * | 2021-12-16 | 2023-03-31 | 浙江省新型互联网交换中心有限责任公司 | 一种互联网自治域系统商业关系分步推断的方法 |
CN115941495A (zh) * | 2022-09-30 | 2023-04-07 | 天翼安全科技有限公司 | 一种网络拓扑构建方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109889396B (zh) | 2021-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889396A (zh) | 一种自治域级互联网拓扑可视化方法 | |
US11042572B2 (en) | System and method for spatial clustering using multiple-resolution grids | |
US9501577B2 (en) | Recommending points of interests in a region | |
CN104794195B (zh) | 一种用于电信潜在换机用户发现的数据挖掘方法 | |
CN111865698B (zh) | 一种基于地理信息的自治域级互联网拓扑可视化方法 | |
US20120136575A1 (en) | Path oracles for spatial networks | |
CN109214462A (zh) | 一种基于分布式增量型dbscan算法的空间数据流在线聚类方法 | |
CN106462620A (zh) | 巨型网络上的距离查询 | |
CN106874339B (zh) | 一种有向循环图的展示方法及其应用 | |
CN106844458B (zh) | 展示用户网上行为轨迹的方法、计算装置及存储介质 | |
CN110909173A (zh) | 一种基于标签传播的非重叠社区发现方法 | |
CN115757604B (zh) | 一种基于夜光影像数据的gdp时空演变分析方法 | |
CN106874574A (zh) | 基于决策树的移动应用性能瓶颈分析方法及装置 | |
US20230224224A1 (en) | 3D visualization of multi-layer networks including network topology and encapsulation | |
WO2011123326A1 (en) | Navigation system with indexed term searching and method of operation thereof | |
CN106530100A (zh) | 一种面向信任度社交网络的社区发现技术方法 | |
US20040196865A1 (en) | Method and system for discovering a topology of a portion of a computer network | |
CN112464040A (zh) | 图结构识别方法、电子设备及计算机可读存储介质 | |
JP5320308B2 (ja) | 地域情報提示サーバ及び地域情報提示方法 | |
Huang et al. | GO: A cluster algorithm for graph visualization | |
CN113139065B (zh) | 一种融合地理知识的混合知识图谱构建方法 | |
CN106055568B (zh) | 一种基于单步添加团的社交网络的朋友自动分组方法 | |
CN113625884B (zh) | 一种输入词推荐方法、装置、服务器及存储介质 | |
CN105813235B (zh) | 移动终端客户社团的划分方法和系统 | |
CN114896480A (zh) | 基于路网索引的Top-K空间关键字查询方法 |
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 | ||
CB03 | Change of inventor or designer information |
Inventor after: Zhang Yu Inventor after: Qin Chaoyi Inventor after: An Yuhao Inventor after: Zhang Hongli Inventor before: Zhang Yu Inventor before: An Yuhao Inventor before: Zhang Hongli |
|
CB03 | Change of inventor or designer information | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210903 |
|
CF01 | Termination of patent right due to non-payment of annual fee |