一种基于ICMP限速的远程IPv6节点相互连通性测量方法

文档序号:27755339发布日期:2021-12-03 21:50阅读:185来源:国知局
一种基于ICMP限速的远程IPv6节点相互连通性测量方法
一种基于icmp限速的远程ipv6节点相互连通性测量方法
技术领域
1.本发明涉及通信技术领域,尤其涉及一种远程ipv6节点相互连通性测量方法。


背景技术:

2.连通性是网络最重要的测量指标之一。尽管正如互联网字面意思所言,绝大多数网络节点都是互相连通的,但仍然在网络存在普遍的连通性故障问题。造成连通性故障的可能原因有很多,包括但不限于各类网络审查、路由故障、访问权限控制等。对网络连通性的测量有利于帮助我们定位网络故障并对互联网进行态势感知。
3.然而,对远程网络节点的相互连通性进行测量是一件困难甚至理论上不可能的事情,因为只要我们无法控制远程节点进行收发包,就无法知道其连通性的情况。在此情况下,我们需要一种能够仅凭单一本地测量点,就能对任意两个远程网络节点进行连通性测量的方法。
4.以往的类似方法主要分为三类:
5.根据dns测量:pearce,scott等人利用dns连通性来间接推断网络审查,但dns连通性并不一定能代表网络层的连通性;
6.根据vpn测量:niaki等人利用虚拟专用网络(vpn)来测量全球范围内的网络审查,但租用和部署vpn服务成本巨大,而且覆盖面仍然有限,无法覆盖每一个网络;
7.根据ipid侧信道测量:pearce等人利用公共ip id计数器的侧信道来测量网络连通性,然而,ipid已经不是ipv6标准报头的一部分,他们的方法完全无法利用于ipv6网络。


技术实现要素:

8.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
9.为此,本发明的第一个目的在于提出一种基于icmp限速的远程ipv6节点相互连通性测量方法,以实现定位网络连通故障、发现网络审查与权限控制、感知网络态势等效果。
10.本发明的第二个目的在于提出一种计算机设备。
11.本发明的第三个目的在于提出一种非临时性计算机可读存储介质
12.为达上述目的,本发明第一方面实施例提出了一种基于icmp限速的远程ipv6节点相互连通性测量方法,包括第一远程ipv6节点和第二远程ipv6节点,所述第一远程ipv6节点向所述第二远程ipv6节点发送数据包,当所述第一远程ipv6节点发送的数据包能够到达所述第二远程ipv6节点时,则所述第一远程ipv6节点与所述第二远程ipv6节点的连通性正常;其中,通过下述步骤判断所述第一远程ipv6节点与所述第二远程ipv6节点之间的连通性:
13.步骤s10,确定离所述第二远程ipv6节点最近的边缘路由器,和所述边缘路由器下面不可达的第三远程ipv6节点;
14.步骤s20,测量点先向所述第三远程ipv6节点发送n个icmp回显请求报文,此时,收到所述边缘路由器向测量点发送的x个icmp错误分组,其中,n和x均为正整数;
15.步骤s30,所述测量点再向所述第三远程ipv6节点发送n个icmp回显请求报文,且与此同时,伪造源地址为第三远程ipv6节点地址向所述第一远程ipv6节点发送m个icmp回显请求报文,此时,收到所述边缘路由器向所述测量点发送的y个icmp错误分组,其中,m和y均为正整数;
16.步骤s40,将所述步骤s20和所述步骤s30分别重复执行q次,分别获取x的q个取值以及y的q个取值,并分别计算x和y的q个取值的平均值,其中,所述x的平均值为所述y的平均值为其中,q为正整数;
17.步骤s50,若则确定所述第一远程ipv6节点与所述第二远程ipv6节点的连通性正常;
18.若则确定所述第一远程ipv6节点与所述第二远程ipv6节点的连通性异常。
19.可选地,在本技术的一个实施例中,所述的基于icmp限速的远程ipv6节点相互连通性测量方法,其特征在于,在步骤s10之前,还包括:发现边缘路由器,通过下述步骤发现边缘路由器:
20.获取所有公告ipv6 bgp前缀;
21.通过所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀长度到第64位的所有位,指定后64位完全随机;
22.所述第二远程ipv6节点最近的边缘路由器来自所述发现边缘路由器。
23.可选地,在本技术的一个实施例中,所述通过所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀长度到第64位的所有位,指定后64位完全随机,还包括:
24.将通过所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀的遍历结果按bgp前缀和自治域进行分类。
25.可选地,在本技术的一个实施例中,所述通过所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀长度到第64位的所有位,指定后64位完全随机,还包括:嗅探器,
26.在所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀的过程中,通过所述嗅探器抓取icmp错误分组,以得到p对地址对。
27.本技术的技术效果:高效性,能够在一个单一本地测量点就能对全球范围内的任意两点连通性进行测量,而且测量过程简便,只需要若干分钟甚至一分钟以内;高覆盖,对几乎任意两个ipv6节点,都能用该方法进行测量;高可用,该方案可以随时部署,随时停止,可以根据需要,实时更新数据。
28.为达上述目的,本技术第二方面实施例提出一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本技术第一方面实施例提出的一种基于icmp限速的远程ipv6节点相互连通性测量的方法。
29.为达上述目的,本技术第三方面实施例提出了一种计算机设备其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现实现本技术第一方面实施例提出的一种基于icmp限速的远程ipv6节点相互连通性测量的方法。
30.本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
31.本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
32.图1为本发明实施例所提供的一种基于icmp限速的远程ipv6节点相互连通性测量的方法流程示意图。
具体实施方式
33.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
34.下面参考附图描述本发明实施例的一种基于icmp限速的远程ipv6节点相互连通性测量的方法。
35.如附图1所示,为本发明实施例所提供的一种基于icmp限速的远程ipv6节点相互连通性测量的方法流程示意图。
36.为达上述目的,为达上述目的,本发明第一方面实施例提出了一种基于icmp限速的远程ipv6节点相互连通性测量方法,包括以下步骤:
37.包括第一远程ipv6节点和第二远程ipv6节点,所述第一远程ipv6节点向所述第二远程ipv6节点发送数据包,当所述第一远程ipv6节点发送的数据包能够到达所述第二远程ipv6节点时,则所述第一远程ipv6节点与所述第二远程ipv6节点的连通性正常;其中,通过下述步骤判断所述第一远程ipv6节点与所述第二远程ipv6节点之间的连通性:
38.步骤s10,确定离所述第二远程ipv6节点最近的边缘路由器,和所述边缘路由器下面不可达的第三远程ipv6节点;
39.步骤s20,测量点先向所述第三远程ipv6节点发送n个icmp回显请求报文,此时,收到所述边缘路由器向测量点发送的x个icmp错误分组,其中,n和x均为正整数;
40.步骤s30,所述测量点再向所述第三远程ipv6节点发送n个icmp回显请求报文,且与此同时,伪造源地址为第三远程ipv6节点地址向所述第一远程ipv6节点发送m个icmp回显请求报文,此时,收到所述边缘路由器向所述测量点发送的y个icmp错误分组,其中,m和y均为正整数;
41.步骤s40,将所述步骤s20和所述步骤s30分别重复执行q次,分别获取x的q个取值以及y的q个取值,并分别计算x和y的q个取值的平均值,其中,所述x的平均值为所述y的平均值为其中,q为正整数;
42.步骤s50,若则确定所述第一远程ipv6节点与所述第二远程ipv6节点的连通性正常;
43.若则确定所述第一远程ipv6节点与所述第二远程ipv6节点的连通性异常。
44.在本技术的一个实施例中,进一步而言,所述的基于icmp限速的远程ipv6节点相互连通性测量方法,其特征在于,在步骤s10之前,还包括:发现边缘路由器,通过下述步骤发现边缘路由器:
45.获取所有公告ipv6 bgp前缀;
46.通过所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀长度到第64位的所有位,指定后64位完全随机;
47.所述第二远程ipv6节点最近的边缘路由器来自所述发现边缘路由器。
48.在本技术的一个实施例中,进一步而言,所述通过所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀长度到第64位的所有位,指定后64位完全随机,还包括:
49.将通过所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀的遍历结果按bgp前缀和自治域进行分类。
50.在本技术的一个实施例中,进一步而言,所述通过所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀长度到第64位的所有位,指定后64位完全随机,还包括:嗅探器,
51.在所述icmp回显请求报文的方式遍历所述所有公告ipv6 bgp前缀的过程中,通过所述嗅探器抓取icmp错误分组,以得到p对地址对。
52.在本技术的一个实施例中,具体而言,对所有的公告ipv6 bgp前缀,利用如下方法进行icmp echo request(ping)扫描:遍历其前缀长度到第64位的所有位,然后指定后64位完全随;例如,对于2402:da::/32,先遍历遍历其2402:da:xxxx:xxxx:(后64位)中的所有xxxx:xxxx的可能性(从0000:0000,到ffff:ffff),然后后64位在此过程中不断随机;在这一过程,设置一个无状态的嗅探器,不断抓取icmp错误分组;在此过程后,会得到大量的地址对<a,b>,向b发送一个ping请求,就能收到来自a的一个icmp错误分组。
53.在本技术的一个实施例中,进一步地,所述的基于icmp限速的远程ipv6节点相互连通性测量方法,其特征在于,所述基于icmp限速的远程ipv6节点相互连通性测量方法,还包括无状态的嗅探器,通过所述无状态的嗅探器不断地抓取所述第一icmp错误分组和第二icmp错误分组,具体包括以下步骤:
54.对所有的公告ipv6 bgp前缀,先遍历所述公告ipv6 bgp前缀长度到底64位的所有位;
55.指定所述公告ipv6 bgp前缀的后64位完全随机。
56.在本技术的一个实施例中,具体而言,以测量a到b的连通性为例,即,a发送的数据包能否到达b;找到离b的最近的一个边缘路由器r,对r下面的一个不可达地址r’发送icmp echo request(ping请求)能够收到来自r的icmp错误分组(这些数据根据第一步可以得到);发送n个ping请求给r’,这时,收到了x个icmp错误分组;发送n个ping请求给r’;在此,几乎同时,伪造源地址为r’,发送m个ping请求给a;收到了y个icmp错误分组;不断重复测量这两个值,并取平均值。
57.为了实现上述实施例,具体而言,本发明的实施方式只需要定时定期运行测量程序即可;一般来说,在第一步扫描完成后,将扫描结果按bgp前缀和自治域进行分类,然后输入到第二步的测量程序中。此后,测量程序持续对给点两点进行连通性测量即可。
58.为了实现上述实施例,本发明提出一种计算机设备,包括存储器、处理器及存储在
所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本技术第一方面实施例提出的一种基于icmp限速的远程ipv6节点相互连通性测量的方法。
59.本技术的技术效果:高效性,能够在一个单一本地测量点就能对全球范围内的任意两点连通性进行测量,而且测量过程简便,只需要若干分钟甚至一分钟以内;高覆盖,对几乎任意两个ipv6节点,都能用该方法进行测量;高可用,该方案可以随时部署,随时停止,可以根据需要,实时更新数据。
60.为了实现上述实施例,本发明还提出了一种计算机设备其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现实现本技术第一方面实施例提出的一种基于icmp限速的远程ipv6节点相互连通性测量的方法。
61.为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器被执行时,使得能够执行一种方法,所述方法包括:。
62.为了实现上述实施例,本发明还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,执行一种基于人工智能的方法,所述方法包括:。
63.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
64.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
65.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
66.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存
储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
67.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
68.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
69.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
70.上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1