一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种分布式网络的网络层NAT穿越算法的制作方法

2022-03-22 22:56:08 来源:中国专利 TAG:

一种分布式网络的网络层nat穿越算法
技术领域
1.本发明涉及通信技术领域,特别涉及一种分布式网络的网络层nat穿越算法。


背景技术:

2.libp2p是ipfs和filecoin的基础设施,也是未来所有p2p和区块链、物联网的基础设施,libp2p是一个p2p的网络,分为网络层、路由层、交换层,是通过一套点对点的协议来发现节点,并连接他们,发现内容,并转移它们,使用libp2p的一个节点可以与另一个节点进行通信,能够使用各种不同的传输方式,这些传输方式包括连接延迟,以及通过不同协议进行通信,并根据需求进行协商,libp2p模块在ipfs中主要负责数据的传递功能,即路由、网络、交换等。随着网络日益普及,接入internet的计算机越来越多,ip地址资源愈加难以与其相匹配,而1994年出现的nat技术刚好可以解决以上问题,但位于不同局域网中的主机难以直接连接,于是又出现了内网穿越技术,穿越技术通常需要一个服务器进行协调打洞,即需要外网服务器的参与才能实现两个节点之间的穿越,增加了安全隐患。


技术实现要素:

3.针对上述问题,本发明提供一种分布式网络的网络层nat穿越算法,该分布式网络的网络层nat穿越算法包括以下步骤:
4.s1:位于同一分布式网络中的任一调度节点接收其相邻穿越节点的发送的数据包,该数据包中包括穿越节点的ip、端口号和请求内容对应的哈希值;
5.s2:调度节点根据数据包中的请求内容对应的哈希值定位存储有请求内容的被穿越节点;
6.s3:调度节点引导穿越节点和被穿越节点进行穿越。
7.本发明还提供了一种分布式网络的网络层,该网络层执行时实现以上分布式网络的网络层nat穿越算法的步骤;
8.本发明的有益效果如下:
9.本发明提供的分布式网络的网络层nat穿越算法通过位于同一分布式网络中的任一调度节点接收其相邻穿越节点的发送的带有请求内容对应的哈希值的数据包,可以根据内容定位具体的被穿越节点,使穿越节点和被穿越节点之间快速、准确的进行穿越,建立连接。
附图说明
10.图1为分布式网络的网络层nat穿越算法的算法流程图;
11.图2为调度节点引导穿越节点和被穿越节点进行穿越的结构图;
12.图3为调度节点引导穿越节点和被穿越节点进行穿越的结构图;
13.图4为调度节点引导穿越节点和被穿越节点进行穿越的结构图;
14.图5为调度节点引导穿越节点和被穿越节点进行穿越的结构图;
15.图6为调度节点更换的示意图。
具体实施方式
16.下面结合附图和以下实施例对本发明作进一步详细说明。
17.在某些实施例中,如图1所示,提供了一种分布式网络的网络层nat穿越算法,该nat穿越算法包括以下步骤:
18.s1:位于同一分布式网络中的任一调度节点接收其相邻穿越节点的发送的数据包,该数据包中包括穿越节点的ip、端口号和请求内容对应的哈希值;
19.s2:调度节点根据数据包中的请求内容对应的哈希值定位存储有请求内容的被穿越节点;
20.s3:调度节点引导穿越节点和被穿越节点进行穿越。
21.其中,各节点发现相邻的节点是通过random-walk或bootstrap-list协议进行的,同一节点在不同的场景下可以作为调节节点、穿越节点或被穿越节点,即根据不同的需要,同一节点可以扮演不同的角色;本实施例公开的算法主要是调度节点通过协议发现与其相邻的调度节点,该调度节点可迅速定位存储有请求内容的被穿越节点,并对其进行引导,使穿越节点和被穿越节点分别向对方的公网地址发送目的端口为对方nat转换后端口号的udp报文,然后穿越节点和被穿越节点向该调度节点反馈结果,当需要对对称型nat进行穿透时,可使该调度节点的客户端同时扮演着服务器和中继的角色,被穿透节点或被穿透点通过调度节点作为中继转发数据来实现内网穿透。
22.在某些实施例中,如图2所示,步骤s3调度节点引导穿越节点和被穿越节点进行穿越包括以下步骤:
23.s311:调度节点将穿越节点的ip和端口号发送至被穿越节点;
24.s312:调度节点将被穿越节点的ip和端口号发送至穿越节点;
25.其中,本发明所有实施例中的穿越节点用a表示,调度节点用b表示,被穿越节点用c表示;穿越节点a的ip和端口号用a表示,被穿越节点c的ip和端口号用c表示,由图2可知,穿越节点a先将其ip、端口号a和请求内容对应的哈希值(图中未示出)发送至调度节点b,调度节点b根据请求内容对应的哈希值迅速定位一个存储有请求内容的被穿越节点c,并将穿越节点a的ip、端口号a发送至被穿越点c,并将被穿越点c的ip、端口号c发送至穿越节点a,使穿越节点a和被穿越节点c分别向对方的公网地址发送目的端口为对方nat转换后端口号的udp报文,然后穿越节点a和被穿越节点c向该调度节点反馈结果。
26.在某些实施例中,由图3可知,步骤s3调度节点引导穿越节点和被穿越节点进行穿越包括以下步骤:
27.s321:调度节点将被穿越节点的ip和端口号发送至穿越节点;
28.s322:穿越节点将其自身ip和端口号发送至被穿越节点。
29.本实施例中,由图3可知,穿越节点a先将其ip、端口号a和请求内容对应的哈希值发送至调度节点b,调度节点b根据请求内容对应的哈希值迅速定位一个存储有请求内容的被穿越节点c,并将被穿越点c的ip、端口号c发送至穿越节点a,穿越节点a将其自身的ip、端口号a发送至被穿越点c,使穿越节点a和被穿越节点c分别向对方的公网地址发送目的端口为对方nat转换后端口号的udp报文,然后穿越节点a和被穿越节点c向该调度节点反馈结
果。
30.在某些实施例中,由图4可知,步骤s3调度节点引导穿越节点和被穿越节点进行穿越包括以下步骤:
31.s331:所述调度节点将所述穿越节点的ip和端口号发送至被穿越节点;
32.s332:所述被穿越节点将其自身的ip和端口号发送至穿越节点。
33.本实施例中,由图4可知,穿越节点a先将其ip、端口号a和请求内容对应的哈希值发送至调度节点b,调度节点b根据请求内容对应的哈希值迅速定位一个存储有请求内容的被穿越节点c,并将穿越节点a的ip、端口号a发送至被穿越点c,被穿越点c将其自身的ip、端口号c发送至穿越节点a,使穿越节点a和被穿越节点c分别向对方的公网地址发送目的端口为对方nat转换后端口号的udp报文,然后穿越节点a和被穿越节点c向该调度节点反馈结果。
34.在某些实施例中,由图5可知,步骤s3调度节点引导穿越节点和被穿越节点进行穿越包括以下步骤:
35.s341:调度节点将被穿越节点的ip和端口号发送至穿越节点,同时将穿越节点的ip和端口号发送至被穿越节点;
36.s342:穿越节点接到被穿越节点的ip和端口号后也向被穿越节点发送其自身的ip和端口号;被穿越节点接到穿越节点的ip和端口号后也向穿越节点发送其自身的ip和端口号。
37.本实施例中,由图5可知,穿越节点a先将其ip、端口号a和请求内容对应的哈希值发送至调度节点b,调度节点b根据请求内容对应的哈希值迅速定位一个存储有请求内容的被穿越节点c,并将穿越节点a的ip、端口号a发送至被穿越点c,同时将被穿越点c的ip、端口号c发送至穿越节点a,被穿越点c将其自身的ip、端口号c发送至穿越节点a,穿越点a也将其自身的ip、端口号a发送至被穿越点c,使穿越节点a和被穿越节点c分别向对方的公网地址发送目的端口为对方nat转换后端口号的udp报文,然后穿越节点a和被穿越节点c向该调度节点反馈结果。
38.在某些实施例中,提供了一种具体的场景,如位于北京市的张三想要通过客户端所在的节点(穿越节点a)在腾讯所在的基于内容寻址分布式网络上下载“功夫”电影资源,该客户端所在的节点(穿越节点a)向与其位于同一所述分布式网络(cdn p2p)的一个或多个并与其相邻的节点(调度节点b)发包,该数据包中包括所述穿越节点的ip(201.1.1.90)、端口号(900)和“功夫”电影资源对应的哈希值,该调度节点b将穿越节点a的ip(201.1.1.90)和端口号(900)发送至被穿越节点c,同时将被穿越节点c的ip(201.1.1.90)和端口号(900)发送至穿越节点a,使穿越节点和被穿越节点分别向对方的公网地址发送目的端口为对方nat转换后端口号的udp报文,然后穿越节点和被穿越节点向该调度节点反馈结果,此时被穿越节点c和穿越节点a完成穿越,建立连接,此时,客户端所在的节点(穿越节点a)可向被穿越节点c发包,发送下载“功夫”电影资源的请求指令,以获得“功夫”电影资源。
39.在某些实施例中,调度节点引导穿越节点和被穿越节点进行穿越期间,当调度节点处于离线状态时,穿越节点的其他相邻节点取代调度节点的角色,继续引导穿越节点和被穿越节点进行穿越。
40.如图6所示,引导穿越节点a和被穿越节点c完成穿越的过程为调度过程,在一次完整的调度过程中,调度节点并非是恒定的,调度节点可能从始至终是同一个节点b1,也可能开始是b1,在调度过程中,调度节点又更换为节点b2、b3

bn,由于与节点临近的节点是通过协议计算得到的,因此,当任一调度节点b1处于离线状态时,其无法继续完成调度,此时,可以将调度节点更换为其他与穿越节点相邻的节点(b2、b3

bn)取代节点b1继续执行剩下的调度过程。
41.在某些实施例中,任一节点的相邻节点的个数为4-6个,步骤s3调度节点引导穿越节点和被穿越节点进行穿越中的调度节点包括调度节点1、调度节点2

调度节点n,n≤6,多个与穿越节点相邻的调度节点同时引导穿越节点和被穿越节点进行穿越,多个调度节点定位的被穿越节点相同或不同。
42.本实施例限定了任一节点的相邻节点的个数为4-6个,避免相邻节点过多导致的拥堵,同时又能保证其足以用于引导穿越节点和被穿越节点进行穿越,且本实施例限定的方法可以同时通过多个穿越节点相邻的调度节点同时引导穿越节点和被穿越节点进行穿越,提高穿越效率,本实施例中,不同的调度节点定位的被穿越点可能相同,如调度节点1-4定位的被穿越点均为被穿越点c1,不同的调度节点定位的被穿越点可能不相同,如调度节点1-4定位的被穿越点分别为被穿越点c1-4。
43.在某些实施例中,步骤s3调度节点引导穿越节点和被穿越节点进行穿越还包括以下步骤:
44.判断多个调度节点是否处于在线状态,如果至少一个调度节点在线,则不作处理,如果所有的调度节点均离线,则重新定义n个与穿越节点相邻的节点作为调度节点,重新定义的n个调度节点对应取代原来的n各调度节点的角色,继续引导穿越节点和被穿越节点进行穿越。
45.本实施例通过以上判断逻辑,可以保证至少一个调度节点在线,引导穿越节点和被穿越节点进行穿越,当所有的调度节点均离线时,重新定义调度节点,以保证继续引导穿越节点和被穿越节点进行穿越。
46.在某些实施例中,步骤s3调度节点引导穿越节点和被穿越节点进行穿越还包括以下步骤:
47.在某些实施例中,分布式网络的网络层nat穿越算法还包括以下步骤:穿越节点与位于同一分布式网络中的其他节点建立连接后,向其他节点发送内容请求时,同时发送公钥,其他节点将请求的内容使用公钥进行加密,发送回穿越节点,穿越节点使用私钥对请求的内容进行解密,获取请求的内容。
48.本发明还提供了一种分布式网络的网络层,该网络层执行时实现以上分布式网络的网络层nat穿越算法的步骤;
49.优选的,分布式网络的网络层还基于libnice协议、libwebrtc协议或natty协议构建。
50.以上实施例仅仅是本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的权利要求书确定的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献