网络穿透方法、装置、电子设备及存储介质与流程

文档序号:30977165发布日期:2022-08-02 23:38阅读:80来源:国知局
网络穿透方法、装置、电子设备及存储介质与流程

1.本发明涉及计算机网络技术领域,尤其是一种网络穿透方法、装置、电子设备及存储介质。


背景技术:

2.在计算机网络通信中,通常会出于安全原因或者节省ip地址等原因而使用nat(network address translation,网络地址转换)技术,nat技术的原理是当网络数据包经过nat设备时,nat设备会修改这些数据包的某些内容,修改完毕后再转发到网络上,同时nat设备会针对这个修改做一个记录,当响应数据包返回时,nat设备再根据记录将返回的数据包修改为内网设备能够识别的数据包。
3.nat技术也会导致一个问题。公网设备不能主动发起对私网设备的连接,因为在未进行nat操作前,公网设备无法得知私网设备被nat设备转换后的ip地址和端口。这里将需要经过nat地址转换的设备称为私网设备,将数据包经过nat地址转换后转发到nat设备连接的另一个网络上的设备称为公网设备。这些网络环境会导致两个需要通信的设备至少一方不能主动向另一方发起网络连接。
4.因此,现有技术需要改进。


技术实现要素:

5.本发明实施例所要解决的一个技术问题是:提供一种网络穿透方法、装置、电子设备及存储介质,以解决现有技术存在的问题。
6.在本技术的实施例中,所述网络穿透方法包括:
7.获取存在第一局域网内的第一设备和第二设备;
8.依据所述存在第一局域网内的第一设备和第二设备,获取中间服务器的源ip地址和源端口号作为第二网络参数;
9.所述第一局域网内的所述第二设备使用第一网络参数作为源ip地址和源端口号,第二网络参数作为目的ip地址和目的端口号发送数据包经过nat设备后到达所述中间服务器,其中第一网络参数的ip地址为所述第一设备的ip地址;
10.所述第二局域网内的所述第三设备使用第四网络参数作为源ip地址和源端口号,第二网络参数作为目的ip地址和目的端口号发送数据包经过nat设备后到达所述中间服务器;
11.所述中间服务器把第三设备发送的数据包经过nat设备转换后的源ip地址和源端口号作为第五网络参数发送给所述第二设备,把第二设备发送的数据包经过nat设备转换后的源ip地址和源端口号作为第三网络参数发送给所述第三设备;
12.所述第二设备使用第一网络参数作为源ip地址和源端口号,第五网络参数作为目的ip地址和目的端口号发送数据包到所述第一局域网nat设备;
13.所述第三设备通过第四网络参数作为源ip地址和源端口号,使用第三网络参数作
为目的ip地址和目的端口号发送数据,与所述第一设备建立网络通讯。
14.基于本技术实施例的另一个方面,公开一种网络穿透装置,所述装置包括:
15.网络参数获取模块,用于获取存在第一局域网内的第一设备和第二设备;依据所述存在第一局域网内的第一设备和第二设备,获取中间服务器的源ip地址和源端口号作为第二网络参数;
16.所述第一局域网内的所述第二设备使用第一网络参数作为源ip地址和源端口号,第二网络参数作为目的ip地址和目的端口号发送数据包经过nat设备后到达所述中间服务器。其中第一网络参数的ip地址为所述第一设备的ip地址;
17.所述第二局域网内的所述第三设备使用第四网络参数作为源ip地址和源端口号,第二网络参数作为目的ip地址和目的端口号发送数据包经过nat设备后到达所述中间服务器;
18.所述中间服务器把第三设备发送的数据包经过nat设备转换后的源ip地址和源端口号作为第五网络参数记录,把第二设备发送的数据包经过nat设备转换后的源ip地址和源端口号作为第三网络参数记录;
19.网络参数交换模块,用于将所述中间服务器把第三网络参数发送给所述第三设备,把第五网络参数发送给所述第二设备;
20.网络穿透模块,用于依据所述第二设备使用第一网络参数作为源ip地址和源端口号,使用第五网络参数作为目的ip地址与目的端口号发送数据包到所述第一局域网nat设备,所述第三设备通过第四网络参数作为源ip地址和源端口号,使用第三网络参数作为目的ip地址和目的端口号发送数据,与所述第一设备建立网络通讯。
21.基于本发明实施例的又一个方面,公开一种电子设备,所述电子设备包括一个或者多个处理器和存储器,存储器,用于存储一个或多个程序;当所述一个或多个程序被所述处理器执行时,使得所述处理器实现本发明各实施例提供的网络穿透方法。
22.基于本发明实施例的又一个方面,公开一种存储有计算机程序的计算机可读存储介质,该计算机程序被执行时实现本发明各实施例提供的网络穿透方法。
23.与现有技术相比,本发明具有以下优点:
24.本技术的网络穿透方法、装置、电子设备及存储介质让需要进行网络连接的两个设备中,只有主动发起连接的第三设备参与网络穿透过程,而被动接受连接的第一设备无需参与网络穿透过程,完成网络穿透后,最终让两个设备建立连接。
25.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
26.构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
27.参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
28.图1为一个实施例中网络穿透方法的应用场景图;
29.图2为本发明一个实施例中网络穿透方法的流程图;
30.图3为本发明一个实施例中网络穿透装置的软件结构框图;
31.图4为一个实施例中电子设备的内部结构图。
具体实施方式
32.现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
33.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
34.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
35.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
36.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
37.实施例1
38.本技术提供的网络穿透方法,可以应用于如图1所示的应用环境中。该网络穿透方法应用于网络穿透装置中。所述网络穿透装置可以配置在终端102或者服务器104,或者部分配置在终端102,部分配置在服务器104中,由终端102与服务器104交互完成网络穿透方法。
39.其中,终端102与服务器104可以通过网络进行通信。
40.其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,终端102需具有接收、查看、编辑、分享共享的3d模型场景的功能,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
41.在一个实施例中,如图2所示,提供了一种网络穿透方法。本实施例主要以该方法应用于图1中的终端102来举例说明。
42.首先对相关计算机网路方面的相关术语进行说明:
43.tcp(transmission control protocol,传输控制)协议。该协议为运输层协议,为两台主机上的应用程序提供有连接的端到端的通信。为描述方便,本技术将在tcp包头中,syn字段置为1的数据称为tcp syn数据包。将在tcp包头中,rst字段置为1的数据包tcp rst数据包。
44.ip(internet protocol,网际)协议。该协议为网络层协议,主要作用是标识两台主机在网络上的位置使得运输层所传下来的数据分组能够正确无误地按照ip地址在网络上找到目的站。
45.arp(address resolution protocol,地址解析)协议。该协议为数据链路层协议,作用是查询ip地址对应的mac(media access control address,媒体接入控制)地址,或通过mac地址查询对应的ip地址。
46.本技术把具有数据链路层协议和功能的网络设备称为二层网络设备,如交换机,无线ap。数据链路层的协议包括arp协议,ieee 802.2,ieee802.3等协议。把具有网络层协议和功能的网络设备称为三层网络设备,如路由器。网络层的协议包括ip协议,igmp等协议。这种对网络设备进行分类的方式为此领域技术人员所熟知的分类方式。
47.实施例2
48.如图2所示,所述网络穿透方法包括:
49.步骤210:获取存在第一局域网内的第一设备和第二设备;
50.步骤220:依据所述存在第一局域网内的第一设备和第二设备,获取中间服务器的源ip地址和源端口号作为第二网络参数。
51.步骤230:所述第一局域网内的所述第二设备使用第一网络参数作为源ip地址和源端口号,第二网络参数作为目的ip地址和目的端口号发送数据包经过nat设备后到达所述中间服务器,其中第一网络参数的ip地址为所述第一设备的ip地址;所述第二局域网内的所述第三设备使用第四网络参数作为源ip地址和源端口号,第二网络参数作为目的ip地址和目的端口号发送数据包经过nat设备后到达所述中间服务器。
52.步骤240:所述中间服务器把步骤230中第三设备发送的数据包经过nat设备转换后的源ip地址和源端口号作为第五网络参数发送给所述第二设备,把第二设备发送的数据包经过nat设备转换后的源ip地址和源端口号作为第三网络参数发送给所述第三设备。
53.步骤250:所述第二设备使用第一网络参数作为源ip地址和源端口号,第五网络参数作为目的ip地址和目的端口号发送数据包到所述第一局域网nat设备。
54.步骤260:所述第三设备通过第四网络参数作为源ip地址和源端口号,使用第三网络参数作为目的ip地址和目的端口号发送数据,与所述第一设备建立网络通讯。
55.所述第二设备发送的数据包包括:
56.所述第二设备发送数据包到中间服务器,所述数据包包括udp数据包和tcp syn网络数据包,所述数据包通过ip协议进行封装并运输;
57.实施例3
58.在一个实施例中,提供了一种电子设备,该电子设备可以是终端,其内部结构图可以如图4所示。该电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、近场通信(nfc)或其他技术实现。该计算机程序被处理器执行时以实现一种网络穿透方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
59.本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
60.在一个实施例中,本技术提供的网络穿透装置可以实现为一种计算机程序的形式,计算机程序可在如图4所示的电子设备上运行。电子设备的存储器中可存储组成该基于网络穿透装置的各个程序模块,比如,图2所示的服务器端、客户端。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本技术各个实施例的网络穿透方法中的步骤。
61.例如,图4所示的电子设备可以通过图3所示的网络穿透装置的网络参数获取模块获取存在第一局域网内的第一设备和第二设备;依据所述存在第一局域网内的第一设备和
第二设备,获取中间服务器的源ip地址和源端口号作为第二网络参数;
62.所述第一局域网内的所述第二设备使用第一网络参数作为源ip地址和源端口号,第二网络参数作为目的ip地址和目的端口号发送数据包经过nat设备后到达所述中间服务器,其中第一网络参数的ip地址为所述第一设备的ip地址;
63.所述第二局域网内的所述第三设备使用第四网络参数作为源ip地址和源端口号,第二网络参数作为目的ip地址和目的端口号发送数据包经过nat设备后到达所述中间服务器;
64.所述中间服务器把第三设备发送的数据包经过nat设备转换后的源ip地址和源端口号作为第五网络参数记录,把第二设备发送的数据包经过nat设备转换后的源ip地址和源端口号作为第三网络参数记录;
65.网络参数交换模块,用于将所述中间服务器把第三网络参数发送给所述第三设备,把第五网络参数发送给所述第二设备;
66.网络穿透模块,用于依据所述第二设备使用第一网络参数作为源ip地址和源端口号,使用第五网络参数作为目的ip地址与目的端口号发送数据包到所述第一局域网nat设备,所述第三设备通过第四网络参数作为源ip地址和源端口号,使用第三网络参数作为目的ip地址和目的端口号发送数据,与所述第一设备建立网络通讯。
67.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,比如静态随机存取存储器(static random access memory,sram)和动态随机存取存储器(dynamic random access memory,dram)等。
68.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
69.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1