CN107294851A - 一种路由器级网络拓扑推断方法 - Google Patents
一种路由器级网络拓扑推断方法 Download PDFInfo
- Publication number
- CN107294851A CN107294851A CN201710458859.0A CN201710458859A CN107294851A CN 107294851 A CN107294851 A CN 107294851A CN 201710458859 A CN201710458859 A CN 201710458859A CN 107294851 A CN107294851 A CN 107294851A
- Authority
- CN
- China
- Prior art keywords
- node
- node2
- node1
- merge
- nodes
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种路由器级网络拓扑推断方法,用于解决现有技术存在的推断效率与准确性不能兼顾的问题。实现步骤为:获取网络测量数据文件或公开的路由器级网络数据文件,并从该文件中提取节点集合、链路集合和监测集合;确定节点集合中各节点的类型;根据链路集合,创建邻接矩阵;将节点集合中的两两节点组成节点对,进行合并条件的判断,将满足条件的节点对加入可合并节点对集合;对可合并节点对集合中的节点对依次进行合并,得到最终邻接矩阵;根据最终邻接矩阵,画出网络拓扑结构图。本发明在保证了推断效率的前提下,提高推断准确性,可用于网络管理、流量分析和网络协议分析。
Description
技术领域
本发明属于计算机网络管理技术领域,涉及一种网络拓扑推断方法,具体涉及一种路由器级网络拓扑推断方法,可用于网络管理、流量分析、网络协议分析等。
背景技术
随着网络的快速发展,网络已经渗透到当今社会的各行各业,各种各样的网络应用正在深刻地影响着人们的生活。网络结构的复杂化、多样化,促使人们对网络的稳定性与安全性的重视程度不断的增加。作为网络运营、网络研究的基石,网络拓扑在网络管理、流量分析、网络协议评估、防止恶意入侵和攻击等领域都有着重要的作用。
网络拓扑是指网络中各个设备和链路的连接方式,而网络拓扑推断是指推断网络中各个设备和链路连接方式的过程。根据网络的层次关系,可以将网络拓扑推断分为路由器级网络拓扑推断、链路层网络拓扑推断和overlay网络拓扑推断。路由器级网络拓扑推断作为其他类别网络拓扑推断的基础,具有重要的研究意义和指导作用,故本发明所涉及的就是路由器级网络拓扑推断。
在路由器级拓扑推断中,traceroute是掌握网络拓扑的重要技术手段之一。然而,基于traceroute的方法进行网络测量时所面临的问题是:并不是所有的节点都会对探测报文正确响应。特别在非合作网络探测中,不响应探测包或者直接丢弃探测包的情况时有发生,这就使得人们无法得知该类节点的IP地址,故在拓扑结构中通常把这类节点标记为“*”。然而,由于不知道这类节点的IP地址,我们无法区分哪些“*”属于同一个节点,很可能将一个节点当做多个节点加入到拓扑结构中,从而导致拓扑图错误,这就是所谓的匿名节点问题。
匿名节点问题虽然是基于traceroute网络拓扑推断研究领域的固有问题,但并没有的得到很多的关注,许多已有的网络拓扑推断算法存在诸多问题。例如,B.Yao等人在INFOCOM上发表的“Topology inference in the presence of anonymous routers”论文中,提供了一种网络拓扑推断方法。该方法将匿名节点问题当做优化问题来看待,其主要通过计算节点之间的相似度来判断节点是否可以合并,将可合并匿名节点进行合并,从而得到最小规格的拓扑结构,而最小规格的拓扑结构即为最终的网络拓扑结构。该方法的不足之处是计算节点间相似度的方法,其计算复杂度很高,使得该方法并不适用于实际网络中的拓扑推断。
Brett Holbert等人在其发表“Network Topology Inference With PartialInformation”(IEEE Transactions on Network and Service Management,2015)的论文中,提供了一种通过部分信息来推断网络拓扑结构的方法。该方法通过链接的类型和节点间距离来判断链接是否可以合并,合并满足条件的链接来获得最终的网络拓扑结构。该方法的不足之处是,在合并链接的过程中,将在之前网络状态可以合并、但在目前网络状态下并不能合并的链接进行了合并,导致拓扑图中出现环的情况,使得推断出的拓扑图准确性较低。
发明内容
本发明的目的在于克服上述现有技术存在的不足,提出了一种路由器级网络拓扑结构推断方法,旨在保证推断效率的前提下,提高推断的准确性。
为实现上述目的,本发明采取的技术方案,包括如下步骤:
(1)对待测网络进行traceroute测量,将测量数据存入数据文件,并从该数据文件中提取链路集合Links、节点集合Nodes和监测集合Monitors;
(2)确定节点集合Nodes中各节点的类型,实现步骤为:
2a)将网络测量时对探测包正常响应的节点,作为响应节点;
2b)将网络测量时不返回响应信息但继续传递请求的节点,作为匿名节点;
2c)将网络测量时丢弃探测包的节点,作为阻塞节点;
2d)将网络测量时阻塞节点之间的节点,作为未知节点;
(3)根据链路集合Links中的路径信息,构建邻接矩阵DN×N,其中,N代表节点信息集合Nodes中节点总数;
(4)获取可合并节点对集合MergeList,实现步骤为:
4a)创建可合并节点对集合MergeList,并将其初始化为空集;
4b)从节点集合Nodes中随机选取两个节点node1和node2,组成节点对(node1,node2);
4c)判断节点node1和节点node2的邻居节点:若节点node1和节点node2均为非合作节点,或者一个为非合作节点另一个为响应节点,且该两个节点的邻居节点为相同的响应节点,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,并执行步骤4g),否则执行步骤4d);
4d)遍历链路集合Links中的路径信息,若某一条路径上同时包含节点node1和节点node2,则执行步骤4g),否则,执行步骤4e);
4e)更新邻接矩阵DN×N,并计算监测集合Monitors中的两两检测节点间的最短距离,若所有检测节点间的最短距离均不小于邻接矩阵DN×N更新前的最短距离,则恢复邻接矩阵DN×N,并执行步骤4f),否则恢复邻接矩阵DN×N,并执行步骤4g);
4f)判断节点node1和节点node2是否满足节点类型判断条件,若是,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,否则执行步骤4g);
4g)判断节点集合Nodes中的每个节点是否都与其他节点完成对比,若是,实现合并节点对集合MergeList的获取,并执行步骤(5),否则执行步骤4b);
(5)对可合并节点对集合MergeList中的节点对依次进行合并,得到最终的邻接矩阵D′N×N,实现步骤为:
5a)从可合并节点对集合MergeList中提取可合并节点对(nodeX,nodeY);
5b)判断可合并节点对(nodeX,nodeY)是否满足合并条件,若是,则执行步骤5c),否则执行步骤5f);
5c)更新链路集合Links:遍历链路集合Links集合中所有的路径信息,若路径中包含节点nodeY,则将该路径上的nodeY更新为nodeX;
5d)更新邻接矩阵DN×N:若邻接矩阵DN×N中有DnodeY,x=1的情况,则DnodeX,x=Dx,nodeX=1,且DnodeY,y=Dy,nodeY=-1,其中,x∈[1,N],1≤y≤N;
5e)更新可合并节点对集合MergeList:将可合并节点对(nodeX,nodeY)从可合并节点对集合MergeList中删除,并遍历可合并节点对集合MergeList中所有的节点对,若节点对中包含节点nodeY,则将其更新为nodeX;
5f)判断可合并节点对集合MergeList是否为空集,若是,则邻接矩阵DN×N就是最终的邻接矩阵D′N×N,并执行步骤(6),否则执行步骤5a);
(6)根据最终的邻接矩阵D′N×N,画出网络拓扑结构图。
一种路由器级网络拓扑推断方法,其特征在于包括如下步骤:
(1)获取公开的路由器级数据文件,并从该数据文件中提取链路集合Links、节点集合Nodes和监测集合Monitors;
(2)确定节点集合Nodes中各节点的类型,实现步骤为:
2a)设置节点集合Nodes中的非合作节点所占比例为r;
2b)确定节点集合Nodes中匿名节点和阻塞节点:根据非合作节点所占比例r,计算非合作节点的个数并随机选取节点集合Nodes中个节点作为匿名节点,个节点作为阻塞节点;
2c)控制节点集合Nodes中未知节点个数:
2c1)遍历链路集合Links中的所有路径,对于每一条路径,计算未知节点平均个数每遍历一条路径重新计算m的值,其中,M为链路集合Links中未遍历链路总数,V为需设置未知节点个数;
2c2)若路径上存在两个及其以上的阻塞节点,则计算该路径上第一个阻塞节点和最后一个阻塞节点之间的节点个数s;
2c3)计算路径上需设置的未知节点个数v=min{m,s};
2c4)从第一个阻塞节点开始,之后的节点均作为未知节点,直到未知节点的个数为v为止,将紧随其后的节点作为阻塞节点,若之后的节点中有阻塞节点,则将其改为匿名节点;
2d)将节点集合Nodes中除匿名节点、阻塞节点和未知节点外的其余节点作为响应节点;
(3)根据链路集合Links中的路径信息,构建邻接矩阵DN×N,其中,N代表节点信息集合Nodes中节点总数;
(4)获取可合并节点对集合MergeList,实现步骤为:
4a)创建可合并节点对集合MergeList,并将其初始化为空集;
4b)从节点集合Nodes中随机选取两个节点node1和node2,组成节点对(node1,node2);
4c)判断节点node1和节点node2的邻居节点:若节点node1和节点node2均为非合作节点,或者一个为非合作节点另一个为响应节点,且该两个节点的邻居节点为相同的响应节点,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,并执行步骤4g),否则执行步骤4d);
4d)遍历链路集合Links中的路径信息,若某一条路径上同时包含节点node1和节点node2,则执行步骤4g),否则,执行步骤4e);
4e)更新邻接矩阵DN×N,并计算监测集合Monitors中的两两检测节点间的最短距离,若所有检测节点间的最短距离均不小于邻接矩阵DN×N更新前的最短距离,则恢复邻接矩阵DN×N,并执行步骤4f),否则恢复邻接矩阵DN×N,并执行步骤4g);
4f)判断节点node1和节点node2是否满足节点类型判断条件,若是,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,否则执行步骤4g);
4g)判断节点集合Nodes中的每个节点是否都与其他节点完成对比,若是,实现合并节点对集合MergeList的获取,并执行步骤(5),否则执行步骤4b);
(5)对可合并节点对集合MergeList中的节点对依次进行合并,得到最终的邻接矩阵D′N×N,实现步骤为:
5a)从可合并节点对集合MergeList中提取可合并节点对(nodeX,nodeY);
5b)判断可合并节点对(nodeX,nodeY)是否满足合并条件,若是,则执行步骤5c),否则执行步骤5f);
5c)更新链路集合Links:遍历链路集合Links集合中所有的路径信息,若路径中包含节点nodeY,则将该路径上的nodeY更新为nodeX;
5d)更新邻接矩阵DN×N:若邻接矩阵DN×N中有DnodeY,x=1的情况,则DnodeX,x=Dx,nodeX=1,且DnodeY,y=Dy,nodeY=-1,其中,x∈[1,N],1≤y≤N;
5e)更新可合并节点对集合MergeList:将可合并节点对(nodeX,nodeY)从可合并节点对集合MergeList中删除,并遍历可合并节点对集合MergeList中所有的节点对,若节点对中包含节点nodeY,则将其更新为nodeX;
5f)判断可合并节点对集合MergeList是否为空集,若是,则邻接矩阵DN×N就是最终的邻接矩阵D′N×N,并执行步骤(6),否则执行步骤5a);
(6)根据最终的邻接矩阵D′N×N,画出网络拓扑结构图。
本发明与现有技术相比,具有如下优点:
1、本发明在提取可合并节点对集合的过程中,以节点的邻居节点、节点间的距离和节点类型来作为合并条件,来判断节点对是否加入可合并节点对集合,这一策略的使用,避免了现有技术中节点相似度的复杂计算;在节点对合并过程,通过对节点对进行了合并条件的重新判定,及对邻接矩阵、链路集合、可合并节点对集合等数据结构的更新机制,彻底避免了网络拓扑推断结果中环的出现,与现有技术相比,在保证了推断效率的前提下,提高了推断的准确性。
2、本发明给出了一种针对公开数据集的节点类型确定方法-随机+控制方法,使得基于公开数据集的网络拓扑推断算法模拟研究得以进行,对于网络拓扑推断算法的研究、验证、以及优化有着重要的意义。
附图说明
图1是本发明的实现流程图;
图2是本发明获取可合并节点对集合的实现流程图;
图3是本发明最终邻接矩阵生成的实现流程图;
图4是本发明使用的公开数据集CAIDA的数据格式图;
图5是本发明确认节点类型的实现流程图。
具体实施方式
下面结合附图和具体实施例,对本方明作进一步的详细说明。
实施例1
参照图1、一种路由器级网络拓扑推断方法,包括如下步骤:
步骤1、对待测网络进行traceroute测量,将测量数据存入数据文件,并从该数据文件中提取链路集合Links、节点集合Nodes和监测集合Monitors;
在进行网络测量时,需要将测量得到的数据整理成路径信息,整理路径信息时,需注意将丢弃探测包节点之间的节点根据TTL值进行补全,并将路径信息写入数据文件;
步骤2、确定节点集合Nodes中各节点的类型,实现步骤为:
步骤2a,将网络测量时对探测包正常响应的节点,作为响应节点;
步骤2b,将网络测量时不返回响应信息但继续传递请求的节点,作为匿名节点;
步骤2c,将网络测量时丢弃探测包的节点,作为阻塞节点;
步骤2d,将网络测量时阻塞节点之间的节点,作为未知节点;
步骤3、根据链路集合Links中的路径信息,构建邻接矩阵DN×N,其构建方法为:
其中,nodeI和nodeJ均代表节点,N代表节点信息集合Nodes中节点总数;
步骤4、获取可合并节点对集合MergeList,参照图2,实现步骤为:
步骤4a,创建可合并节点对集合MergeList,并将其初始化为空集;
步骤4b,从节点集合Nodes中随机选取两个节点node1和node2,组成节点对(node1,node2);
步骤4c,判断节点node1和节点node2的邻居节点:若节点node1和节点node2均为非合作节点,或者一个为非合作节点另一个为响应节点,且该两个节点的邻居节点为相同的响应节点,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,并执行步骤4g,否则执行步骤4d;
步骤4d,遍历链路集合Links中的路径信息,若某一条路径上同时包含节点node1和节点node2,则执行步骤4g,否则,执行步骤4e;
步骤4e,更新邻接矩阵DN×N,并计算监测集合Monitors中的两两检测节点间的最短距离,若所有检测节点间的最短距离均不小于邻接矩阵DN×N更新前的最短距离,则恢复邻接矩阵DN×N,并执行步骤4f,否则恢复邻接矩阵DN×N,并执行步骤4g;
更新邻接矩阵DN×N的方法为:若邻接矩阵DN×N中有Dnode2,x=1的情况,则Dnode1,x=Dx,node1=1,且Dnode2,y=Dy,node2=-1,其中,x∈[1,N],1≤y≤N;
步骤4f,判断节点node1和节点node2是否满足节点类型判断条件,若是,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,否则执行步骤4g,其中节点类型判断条件,可分为三种情况:
1)若节点node1和节点node2均为匿名节点,或者均为阻塞节点,或者均未知节点,则节点node1和节点node2满足节点类型判断条件;
2)若节点node1和节点node2一个为未知节点另一个为匿名节点,或者一个为未知节点另一个为阻塞节点,则节点node1和节点node2满足节点类型判断条件;
3)若节点node1和节点node2一个为匿名节点另一个为阻塞节点,或者一个为匿名节点另一个为响应节点,或者一个为阻塞节点另一个为响应节点,则节点节点node1和节点node2不满足节点类型判断条件;
步骤4g,判断节点集合Nodes中的每个节点是否都与其他节点完成对比,若是,则可合并节点对集合MergeList获取完成,并执行步骤5,否则执行步骤4b;
步骤5、对可合并节点对集合MergeList中的节点对依次进行合并,得到最终的邻接矩阵D′N×N,参照图3,实现步骤为:
步骤5a,从可合并节点对集合MergeList中提取可合并节点对(nodeX,nodeY);
步骤5b,判断可合并节点对(nodeX,nodeY)是否满足合并条件,若是,执行步骤5c,否则执行步骤5f;
步骤5c,更新链路集合Links:遍历链路集合Links集合中所有的路径信息,若路径中包含节点nodeY,则将该路径上的nodeY更新为nodeX;
步骤5d,更新邻接矩阵DN×N:若邻接矩阵DN×N中有DnodeY,x=1的情况,则DnodeX,x=Dx,nodeX=1,且DnodeY,y=Dy,nodeY=-1,其中,x∈[1,N],1≤y≤N;
步骤5e,更新可合并节点对集合MergeList:将可合并节点对(nodeX,nodeY)从可合并节点对集合MergeList中删除,并遍历可合并节点对集合MergeList中所有的节点对,若节点对中包含节点nodeY,则将其更新为nodeX;
步骤5f,判断可合并节点对集合MergeList是否为空集,若是,则邻接矩阵DN×N就是最终的邻接矩阵D′N×N,并执行步骤(6),否则执行步骤5a);
步骤6、根据最终的邻接矩阵D′N×N,画出网络拓扑结构图。
实施例2、本实施例与实施例1的其他步骤相同,仅对步骤1和步骤2做了调整,具体为:
步骤1、获取公开路由器级数据文件,并从中提取链路集合Links、节点集合Nodes和监测集合Monitors;
本实施例所使用的公开数据集为CAIDA,其格式参照图4;
步骤2、确定节点集合Nodes中各节点的类型,实现步骤为:
步骤2a,设置非合作节点所占比例r;
本实施例中设置非合作节点所占比例为60%;
步骤2b,确定节点集合Nodes中匿名节点和阻塞节点:根据非合作节点所占比例r,计算非合作节点的个数并随机选取节点集合Nodes中个节点作为匿名节点,个节点作为阻塞节点;
本实施例中,非合作节点个数有9个,随机选取3个节点N2、N4和N7作为匿名节点,随机选取3个加点N10、N11和N14作为阻塞节点;
步骤2c,控制节点信息集合Nodes中未知节点个数:
1)遍历链路集合Links中的所有路径,对于每一条路径,计算未知节点平均个数每遍历一条路径重新计算m的值,其中,M为链路集合Links中未遍历链路总数,V为需设置未知节点个数;
本实施例中,遍历路径L1时,未知节点平均数由于路径L1上没有阻塞节点,继续遍历路径L2,此时未未知节点平均数中路径L2上仍没有阻塞节点,继续遍历路径L3,此时此时未未知节点平均数由于路径L3上有3个阻塞,故执行步骤2);
2)若路径上存在两个及其以上的阻塞节点,则计算该路径上第一个阻塞节点和最后一个阻塞节点之间的节点个数s;
本实施例中,路径L3上有3个阻塞节点,第一个阻塞节点N10和最后一个阻塞节点N14之间的节点个数s=3;
3)计算路径上需设置的未知节点个数v=min{m,s};
本实施例中,路径L3上需设置的位置节点个数v=3;
4)从第一个阻塞节点开始,之后的节点均作为未知节点,直到未知节点的个数为v为止,将紧随其后的节点作为阻塞节点,若之后的节点中有阻塞节点,则将其改为匿名节点;
本实施例中,从第一个阻塞节点N10开始,其后的节点N11、N12和N13均作为未知节点,紧随其后的节点N14作为阻塞节点,之后的节点中没有阻塞节点;
5)将节点集合Nodes中除匿名节点、阻塞节点和未知节点外的其余节点作为响应节点;
本实施例中,节点集合Nodes中除匿名节点、阻塞节点和未知节点外的其余节点N1、N3、N5、N6、N8、N9和N15作为响应节点。
Claims (6)
1.一种路由器级网络拓扑推断方法,其特征在于包括如下步骤:
(1)对待测网络进行traceroute测量,将测量数据存入数据文件,并从该数据文件中提取链路集合Links、节点集合Nodes和监测集合Monitors;
(2)确定节点集合Nodes中各节点的类型,实现步骤为:
2a)将网络测量时对探测包正常响应的节点,作为响应节点;
2b)将网络测量时不返回响应信息但继续传递请求的节点,作为匿名节点;
2c)将网络测量时丢弃探测包的节点,作为阻塞节点;
2d)将网络测量时阻塞节点之间的节点,作为未知节点;
(3)根据链路集合Links中的路径信息,构建邻接矩阵DN×N,其中,N代表节点信息集合Nodes中节点总数;
(4)获取可合并节点对集合MergeList,实现步骤为:
4a)创建可合并节点对集合MergeList,并将其初始化为空集;
4b)从节点集合Nodes中随机选取两个节点node1和node2,组成节点对(node1,node2);
4c)判断节点node1和节点node2的邻居节点:若节点node1和节点node2均为非合作节点,或者一个为非合作节点另一个为响应节点,且该两个节点的邻居节点为相同的响应节点,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,并执行步骤4g),否则执行步骤4d);
4d)遍历链路集合Links中的路径信息,若某一条路径上同时包含节点node1和节点node2,则执行步骤4g),否则,执行步骤4e);
4e)更新邻接矩阵DN×N,并计算监测集合Monitors中的两两检测节点间的最短距离,若所有检测节点间的最短距离均不小于邻接矩阵DN×N更新前的最短距离,则恢复邻接矩阵DN×N,并执行步骤4f),否则恢复邻接矩阵DN×N,并执行步骤4g);
4f)判断节点node1和节点node2是否满足节点类型判断条件,若是,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,否则执行步骤4g);
4g)判断节点集合Nodes中的每个节点是否都与其他节点完成对比,若是,实现合并节点对集合MergeList的获取,并执行步骤(5),否则执行步骤4b);
(5)对可合并节点对集合MergeList中的节点对依次进行合并,得到最终的邻接矩阵DN×N′,实现步骤为:
5a)从可合并节点对集合MergeList中提取可合并节点对(nodeX,nodeY);
5b)判断可合并节点对(nodeX,nodeY)是否满足合并条件,若是,则执行步骤5c),否则执行步骤5f);
5c)更新链路集合Links:遍历链路集合Links集合中所有的路径信息,若路径中包含节点nodeY,则将该路径上的nodeY更新为nodeX;
5d)更新邻接矩阵DN×N:若邻接矩阵DN×N中有DnodeY,x=1的情况,则DnodeX,x=Dx,nodeX=1,且DnodeY,y=Dy,nodeY=-1,其中,x∈[1,N],1≤y≤N;
5e)更新可合并节点对集合MergeList:将可合并节点对(nodeX,nodeY)从可合并节点对集合MergeList中删除,并遍历可合并节点对集合MergeList中所有的节点对,若节点对中包含节点nodeY,则将其更新为nodeX;
5f)判断可合并节点对集合MergeList是否为空集,若是,则邻接矩阵DN×N就是最终的邻接矩阵DN×N′,并执行步骤(6),否则执行步骤5a);
(6)根据最终的邻接矩阵DN×N′,画出网络拓扑结构图。
2.根据权利要求1所述的一种路由器级网络拓扑推断方法,其特征在于:步骤(3)中所述的根据链接结合Links中的路径信息,构建邻接矩阵DN×N,具体为:
其中,nodeI和nodeJ均代表节点。
3.根据权利要求1所述的一种路由器级网络拓扑推断方法,其特征在于:步骤4f)中所述的判断节点node1和节点node2是否满足节点类型判断条件,分为三种情况:
1)若节点node1和节点node2均为匿名节点,或者均为阻塞节点,或者均为未知节点,则节点node1和节点node2满足节点类型判断条件;
2)若节点node1和节点node2一个为未知节点另一个为匿名节点,或者一个为未知节点另一个为阻塞节点,则节点node1和节点node2满足节点类型判断条件;
3)若节点node1和节点node2一个为匿名节点另一个为阻塞节点,或者一个为匿名节点另一个为响应节点,或者一个为阻塞节点另一个为响应节点,则节点node1和节点node2不满足节点类型判断条件。
4.一种路由器级网络拓扑推断方法,其特征在于包括如下步骤:
(1)获取公开的路由器级数据文件,并从该数据文件中提取链路集合Links、节点集合Nodes和监测集合Monitors;
(2)确定节点集合Nodes中各节点的类型,实现步骤为:
2a)设置节点集合Nodes中的非合作节点所占比例为r;
2b)确定节点集合Nodes中匿名节点和阻塞节点:根据非合作节点所占比例r,计算非合作节点的个数并随机选取节点集合Nodes中个节点作为匿名节点,个节点作为阻塞节点;
2c)控制节点集合Nodes中未知节点个数:
2c1)遍历链路集合Links中的所有路径,对于每一条路径,计算未知节点平均个数每遍历一条路径重新计算m的值,其中,M为链路集合Links中未遍历链路总数,V为需设置未知节点个数;
2c2)若路径上存在两个及其以上的阻塞节点,则计算该路径上第一个阻塞节点和最后一个阻塞节点之间的节点个数s;
2c3)计算路径上需设置的未知节点个数v=min{m,s};
2c4)从第一个阻塞节点开始,之后的节点均作为未知节点,直到未知节点的个数为v为止,将紧随其后的节点作为阻塞节点,若之后的节点中有阻塞节点,则将其改为匿名节点;
2d)将节点集合Nodes中除匿名节点、阻塞节点和未知节点外的其余节点作为响应节点。
(3)根据链路集合Links中的路径信息,构建邻接矩阵DN×N,其中,N代表节点信息集合Nodes中节点总数;
(4)获取可合并节点对集合MergeList,实现步骤为:
4a)创建可合并节点对集合MergeList,并将其初始化为空集;
4b)从节点集合Nodes中随机选取两个节点node1和node2,组成节点对(node1,node2);
4c)判断节点node1和节点node2的邻居节点:若节点node1和节点node2均为非合作节点,或者一个为非合作节点另一个为响应节点,且该两个节点的邻居节点为相同的响应节点,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,并执行步骤4g),否则执行步骤4d);
4d)遍历链路集合Links中的路径信息,若某一条路径上同时包含节点node1和节点node2,则执行步骤4g),否则,执行步骤4e);
4e)更新邻接矩阵DN×N,并计算监测集合Monitors中的两两检测节点间的最短距离,若所有检测节点间的最短距离均不小于邻接矩阵DN×N更新前的最短距离,则恢复邻接矩阵DN×N,并执行步骤4f),否则恢复邻接矩阵DN×N,并执行步骤4g);
4f)判断节点node1和节点node2是否满足节点类型判断条件,若是,则将节点对(node1,node2)加入到可合并节点对集合MergeList中,否则执行步骤4g);
4g)判断节点集合Nodes中的每个节点是否都与其他节点完成对比,若是,实现合并节点对集合MergeList的获取,并执行步骤(5),否则执行步骤4b);
(5)对可合并节点对集合MergeList中的节点对依次进行合并,得到最终的邻接矩阵DN×N′,实现步骤为:
5a)从可合并节点对集合MergeList中提取可合并节点对(nodeX,nodeY);
5b)判断可合并节点对(nodeX,nodeY)是否满足合并条件,若是,则执行步骤5c),否则执行步骤5f);
5c)更新链路集合Links:遍历链路集合Links集合中所有的路径信息,若路径中包含节点nodeY,则将该路径上的nodeY更新为nodeX;
5d)更新邻接矩阵DN×N:若邻接矩阵DN×N中有DnodeY,x=1的情况,则DnodeX,x=Dx,nodeX=1,且DnodeY,y=Dy,nodeY=-1,其中,x∈[1,N],1≤y≤N;
5e)更新可合并节点对集合MergeList:将可合并节点对(nodeX,nodeY)从可合并节点对集合MergeList中删除,并遍历可合并节点对集合MergeList中所有的节点对,若节点对中包含节点nodeY,则将其更新为nodeX;
5f)判断可合并节点对集合MergeList是否为空集,若是,则邻接矩阵DN×N就是最终的邻接矩阵DN×N′,并执行步骤(6),否则执行步骤5a);
(6)根据最终的邻接矩阵DN×N′,画出网络拓扑结构图。
5.根据权利要求4所述的一种路由器级网络拓扑推断方法,其特征在于:步骤(3)中所述的根据链接结合Links中的路径信息,构建邻接矩阵DN×N,具体为:
其中,nodeI和nodeJ均代表节点。
6.根据权利要求4所述的一种路由器级网络拓扑推断方法,其特征在于:步骤4f)中所述判断节点node1和节点node2是否满足节点类型判断条件,分为三种情况:
1)若节点node1和节点node2均为匿名节点,或者均为阻塞节点,或者均为未知节点,则节点node1和节点node2满足节点类型判断条件;
2)若节点node1和节点node2一个为未知节点另一个为匿名节点,或者一个为未知节点另一个为阻塞节点,则节点node1和节点node2满足节点类型判断条件;
3)若节点node1和节点node2一个为匿名节点另一个为阻塞节点,或者一个为匿名节点另一个为响应节点,或者一个为阻塞节点另一个为响应节点,则节点node1和节点node2不满足节点类型判断条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710458859.0A CN107294851B (zh) | 2017-06-16 | 2017-06-16 | 一种路由器级网络拓扑推断方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710458859.0A CN107294851B (zh) | 2017-06-16 | 2017-06-16 | 一种路由器级网络拓扑推断方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107294851A true CN107294851A (zh) | 2017-10-24 |
CN107294851B CN107294851B (zh) | 2019-11-26 |
Family
ID=60097271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710458859.0A Active CN107294851B (zh) | 2017-06-16 | 2017-06-16 | 一种路由器级网络拓扑推断方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107294851B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107944489A (zh) * | 2017-11-17 | 2018-04-20 | 清华大学 | 基于结构语义融合的大规模混合图特征学习方法 |
CN108011746A (zh) * | 2017-10-25 | 2018-05-08 | 北京知道未来信息技术有限公司 | 基于Traceroute及SNMP协议的IP级全球互联网拓扑测绘方法 |
CN109033383A (zh) * | 2018-07-27 | 2018-12-18 | 成都网丁科技有限公司 | 基于双向搜索交叉碰撞检测的路由补全方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120051231A1 (en) * | 2010-08-31 | 2012-03-01 | Cisco Technology, Inc. | Enhancing mtrace to detect failure in multicast diverse paths |
CN105262690A (zh) * | 2015-09-15 | 2016-01-20 | 电子科技大学 | 一种自治系统级网络拓扑识别方法 |
CN105491564A (zh) * | 2015-11-25 | 2016-04-13 | 西安电子科技大学 | 用于多无人机环境下建立安全通信链路的方法 |
US20160254992A1 (en) * | 2014-03-31 | 2016-09-01 | Juniper Networks, Inc. | Apparatus, system, and method for reconfiguring point-to-multipoint label-switched paths |
CN106533780A (zh) * | 2016-11-30 | 2017-03-22 | 大连大学 | 基于局域世界的加权指控网络演化模型构建方法 |
-
2017
- 2017-06-16 CN CN201710458859.0A patent/CN107294851B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120051231A1 (en) * | 2010-08-31 | 2012-03-01 | Cisco Technology, Inc. | Enhancing mtrace to detect failure in multicast diverse paths |
US20160254992A1 (en) * | 2014-03-31 | 2016-09-01 | Juniper Networks, Inc. | Apparatus, system, and method for reconfiguring point-to-multipoint label-switched paths |
CN105262690A (zh) * | 2015-09-15 | 2016-01-20 | 电子科技大学 | 一种自治系统级网络拓扑识别方法 |
CN105491564A (zh) * | 2015-11-25 | 2016-04-13 | 西安电子科技大学 | 用于多无人机环境下建立安全通信链路的方法 |
CN106533780A (zh) * | 2016-11-30 | 2017-03-22 | 大连大学 | 基于局域世界的加权指控网络演化模型构建方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108011746A (zh) * | 2017-10-25 | 2018-05-08 | 北京知道未来信息技术有限公司 | 基于Traceroute及SNMP协议的IP级全球互联网拓扑测绘方法 |
CN108011746B (zh) * | 2017-10-25 | 2021-06-29 | 北京知道未来信息技术有限公司 | 基于Traceroute及SNMP协议的IP级全球互联网拓扑测绘方法 |
CN107944489A (zh) * | 2017-11-17 | 2018-04-20 | 清华大学 | 基于结构语义融合的大规模混合图特征学习方法 |
CN109033383A (zh) * | 2018-07-27 | 2018-12-18 | 成都网丁科技有限公司 | 基于双向搜索交叉碰撞检测的路由补全方法及装置 |
CN109033383B (zh) * | 2018-07-27 | 2021-11-16 | 成都网丁科技有限公司 | 基于双向搜索交叉碰撞检测的路由补全方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107294851B (zh) | 2019-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rodeheffer et al. | SmartBridge: A scalable bridge architecture | |
Wu et al. | A dominating-set-based routing scheme in ad hoc wireless networks | |
Sun et al. | A QoS-guaranteed intelligent routing mechanism in software-defined networks | |
CN107294851A (zh) | 一种路由器级网络拓扑推断方法 | |
CN101321134B (zh) | 动态网络条件下的服务质量路由选择方法 | |
CN106470168A (zh) | 一种数据传输方法、使用该方法的交换机以及网络控制系统 | |
CN109547966A (zh) | 输电线路无线传感器网络的路由规划及故障诊断备份方法 | |
CN106612289A (zh) | 一种基于sdn的网络协同异常检测方法 | |
CN106330749B (zh) | 无回路多端部网络拓扑中的类别感知的负载平衡 | |
CN110543728B (zh) | 一种城市交通路网关键路口发现方法 | |
CN104038418B (zh) | 针对混合型拓扑结构数据中心的路由方法、路径探测机制和报文处理机制 | |
CN115622902B (zh) | 基于网络结构和节点价值的电信网节点重要度计算方法 | |
CN107896217B (zh) | 内容中心网络中多参数的缓存污染攻击检测方法 | |
CN115622903B (zh) | 一种基于网络结构的电信网节点重要度计算方法 | |
CN107395440A (zh) | 基于复杂网络的互联网拓扑探测节点优化部署方法 | |
CN105848242A (zh) | 一种无线传感器网络中基于信任感知的安全路由优化方法 | |
US20030156536A1 (en) | Node, an optical/electrical path integrated network using the node, and a program which controls the node | |
CN109889444A (zh) | 一种规划路径的方法、装置和系统 | |
CN111064817B (zh) | 一种基于节点排序的城市级ip定位方法 | |
CN108419304A (zh) | 一种无线传感器网络水质监控系统 | |
CN108965288A (zh) | 一种基于流指纹的跨域溯源的方法 | |
CN113452801B (zh) | 区块链网络中一种面向块传输的可信节点选择优化方法 | |
CN100384142C (zh) | 基于多视图的域间路由异常检测方法 | |
CN104410646B (zh) | 一种带有黑洞攻击探测的数据转发方法 | |
CN109887280A (zh) | 一种交通网络节点关键度评估方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |