CN115914164A - 一种隧道连接方法、装置、电子设备和存储介质 - Google Patents
一种隧道连接方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN115914164A CN115914164A CN202111142072.6A CN202111142072A CN115914164A CN 115914164 A CN115914164 A CN 115914164A CN 202111142072 A CN202111142072 A CN 202111142072A CN 115914164 A CN115914164 A CN 115914164A
- Authority
- CN
- China
- Prior art keywords
- port
- server
- equipment
- client
- guess
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000007667 floating Methods 0.000 claims description 14
- 230000006855 networking Effects 0.000 claims description 14
- 230000002457 bidirectional effect Effects 0.000 abstract description 6
- 238000011330 nucleic acid test Methods 0.000 description 14
- 230000005641 tunneling Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种隧道连接方法、装置、电子设备和存储介质,其中方法包括:响应于客户端设备和服务端设备分别发起的连接请求,服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合;若是,则根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应的端口猜测数量和端口猜测策略;客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。本公开方案通过双向猜测的方式在客户端设备和服务端设备之间建立隧道连接,提升了隧道连接的成功率。
Description
技术领域
本公开涉及物联网技术领域,尤其涉及一种隧道连接方法、装置、电子设备和存储介质。
背景技术
在物联网方案中,隧道连接是非常重要的技术,不仅能很好地解决应用程序、电子设备彼此点对点的网络连接,降低整个系统的服务费用。
在隧道连接中,涉及到NAT(Network Address Translation,网络地址转换)穿越,通过将不同的私网地址映射到同一公网地址的不同端口号,实现了内网中多台主机能够使用同一IP(Internet Protocol,网际互连协议)地址进行互联网连接的功能。这解决了IP地址不足的问题,却带来了很多的技术问题。
NAT类型包括如下4类:全锥型、IP限制锥型、端口限制锥型和对称型。其中,端口限制锥型NAT与对称型NAT的网络组合、对称型NAT与对称型NAT的网络组合,因其网络类型的特点,隧道连接的成功率较低,相应的网络节点间无法进行数据通信,影响网络中正常的数据传输。
发明内容
本公开提供了一种隧道连接方法、装置、电子设备和存储介质,以达到提高隧道连接成功率的目的。
根据本公开的一方面,提供了一种隧道连接方法,应用于智能设备组网系统,智能设备组网系统至少包括部署在公网的服务器设备,以及部署在不同私网的客户端设备和服务端设备,方法包括:
响应于客户端设备和服务端设备分别发起的连接请求,服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合;
若是,则根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应的端口猜测数量和端口猜测策略;
客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
根据本公开的另一方面,提供了一种隧道连接装置,配置于智能设备组网系统,智能设备组网系统至少包括部署在公网的服务器设备,以及部署在不同私网的客户端设备和服务端设备,装置包括:
判断模块,用于响应于客户端设备和服务端设备分别发起的连接请求,通过服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合;
下发模块,用于若判断结果为是,则根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应端口猜测数量和端口猜测策略;
连接模块,通过客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开任意实施例的隧道连接方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行本公开任意实施例的隧道连接方法。
根据本公开的技术,通过双向猜测的方式在客户端设备和服务端设备之间建立隧道连接,提升了隧道连接的成功率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本公开实施例提供的一种隧道连接方法的流程示意图;
图2是本公开实施例提供的又一种隧道连接方法的流程示意图;
图3是本公开实施例提供的另一种隧道连接方法的流程示意图;
图4是本公开实施例提供的又一种隧道连接方法的流程示意图;
图5是本公开实施例提供的一种隧道连接装置的结构示意图;
图6是用来实现本公开实施例的隧道连接方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本公开实施例中,对4种类型的NAT进行说明:
全锥型NAT(Full Cone NAT),同一私网地址X(包括IP地址和端口号)的连接请求都会被映射到同一公网地址Y(包括IP地址和端口号),与请求的目的地址无关。NAT会将所有外部地址Z(包括IP地址和端口号)发送给Y的请求转发给X。
限制锥型NAT(Restricted NAT),同一私网地址X(包括IP地址和端口号)的连接请求都会被映射到同一公网地址Y(包括IP地址和端口号),与请求的目的地址无关。但是只有私网地址X先通过公网地址Y发送请求到地址Z(只包括IP地址,端口号不限),NAT才会将Z发送给Y的请求转发给X,否则Z发送到X的请求会被NAT认为是未经认证的而进行阻止。
端口限制锥型NAT(Port Restricted NAT),所有来自同一私网地址X(包括IP地址和端口号)的连接请求都会被映射到同一公网地址Y(包括IP地址和端口号),与请求的目的地址无关。但是只有私网地址X先通过公网地址Y发送请求到地址Z(包括IP地址和端口号),NAT才会将Z发送给Y的请求转发给X,否则Z发送到X的请求会被NAT认为是未经认证的而进行阻止。
对称型NAT(Symmetric NAT),来自同一私网地址X的连接请求根据目的地址(包括IP地址和端口号)的不同,会被映射到不同的公网地址(端口号不同)。只有私网地址X先通过公网地址Y发送请求到地址Z(包括IP地址和端口号),NAT才会将Z发送给Y的请求转发给X,否则Z发送到X的请求会被NAT认为是未经认证的而进行阻止。
本公开实施例中,智能设备组网系统至少包括部署在公网的服务器设备,以及部署在不同私网的客户端设备和服务端设备,其中,不同的私网部署有不同类型的NAT,客户端设备和服务端设备可通过各自所在私网的NAT与公网连接通信。需要说明的是,针对不同的场景,客户端设备和服务端设备不同,例如针对视频监控场景,客户端设备可选的为安装有监控客户端的用户终端设备,服务端设备可选的为网络摄像机。在客户端设备要访问位于另一私网的服务端设备时,需要建立隧道连接以实现点对点的通信,然而,如果客户端设备和服务端设备的NAT类型组合为端口限制锥型NAT与对称型NAT的网络组合或对称型NAT与对称型NAT的网络组合,因其网络类型的特点,隧道连接的成功率较低。基于此,提出一种隧道连接方法,以达到提高客户端设备和服务端设备之间隧道连接成功率的目的。具体的方法参见如下实施例。
图1为本公开实施例的一种隧道连接方法的流程示意图,本实施例可适用于通过双向的端口猜测方式在具有不同类型NAT的设备之间建立隧道连接的情况。该方法可由一种隧道连接装置来执行,该装置采用软件和/或硬件的方式实现,并集成在电子设备上。
具体的,参见图1,隧道连接方法的流程如下:
S101、响应于客户端设备和服务端设备分别发起的连接请求,服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合。
本公开实施例中,客户端设备和服务端设备可通过各自对应的NAT向位于公网的服务器设备发起连接,服务器设备探测客户端设备和服务端设备各自对应的NAT类型和公网IP端口。需要说明的是,服务器设备可以采用任意探测方法,在此不做具体限定。
在得到客户端设备和服务端设备各自对应的NAT类型后,判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合,其中,目标类型组合为对称型NAT和端口限制锥型NAT的组合,例如客户端设备的NAT类型为对称型NAT,服务端设备的NAT类型为端口限制锥型NAT;或者,客户端设备的NAT类型为端口限制锥型NAT,服务端设备的NAT类型为对称型NAT;除此之外,目标类型组合还可以是对称型NAT和对称型NAT的组合,也即客户端设备的NAT类型和服务端设备的NAT类型均为对称型NAT。
本公开实施例中,若判断客户端设备和服务端设备的NAT类型组合为目标类型组合,则表明客户端设备与服务端设备之间建立隧道连接的成功率较低,可按照S102-S103的步骤建立两者之间的隧道连接,以提升连接的成功率。
S102、根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应的端口猜测数量和端口猜测策略。
S103、客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
本公开实施例中,端口猜测数量用于限制客户端设备或服务端设备发送猜询报文的数量;端口猜测策略包括客户端设备或服务端设备发送猜询报文时源端口和目的端口的设定策略。不同类型的NAT对应的端口猜测数量和端口猜测策略不同,因此需要根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应的端口猜测数量和端口猜测策略。需要说明的是,服务器设备还将客户端的NAT类型和公网IP端口信息发送给服务端设备,同时还将服务端设备的NAT类型和公网IP端口信息发送给客户端设备。
在一种可选的实施方式中,如果客户端设备的NAT类型为对称型NAT,服务端设备的NAT类型为端口限制锥型NAT,则客户端设备和服务端设备彼此猜测对方的端口时,可按照如下步骤进行:(1)客户端设备根据自身的公网IP端口信息以及服务端设备的公网IP端口信息,向服务端设备发送源端口随机、目的端口固定的第一类猜询报文,也即第一类猜询报文的源端口可以是客户端设备的任意公网IP端口,目的端口是服务端设备的公网IP端口;(2)在客户端设备的多个端口开放完毕后,服务端设备根据自身的公网IP端口信息以及客户端设备的公网IP端口信息,向客户端设备发送源端口固定、目的端口随机的第二类猜询报文,使得第二类猜询报文与第一类猜询报文进行碰撞,其中,第二类猜询报文的源端口可以是服务端设备的公网IP端口,目的端口是客户端设备的任意公网IP端口,第一类猜询报文的数量等于客户端设备接收到的端口猜测数量,第二类猜询报文的数量等于服务端设备接收到的端口猜测数量。若碰撞成功,也即客户端设备和服务端设备通过某一端口连接成功使得彼此接收到对方的报文,此时确定猜测正确并建立客户端设备和服务端设备之间的隧道连接。在建立隧道连接后,可将未连接成功的端口释放。
在另一种可选的实施方式中,如果客户端设备的NAT类型为端口限制锥型NAT,服务端设备的NAT类型为对称型NAT,则客户端设备和服务端设备彼此猜测对方的端口时,可按照如下步骤进行:(1)客户端设备根据自身的公网IP端口信息以及服务端设备的公网IP端口信息,向服务端设备发送源端口固定、目的端口随机的第三类猜询报文,也即第三类猜询报文的源端口可以是客户端设备的公网IP端口,目的端口是服务端设备的任意公网IP端口,其中,第三类猜询报文的数量等于客户端设备接收到的端口猜测数量;(2)服务端设备根据自身的公网IP端口信息以及客户端设备的公网IP端口信息,向客户端设备发送源端口随机、目的端口固定的第四类猜询报文,也即第四类猜询报文的源端口可以是服务端设备的任意公网IP端口,目的端口是客户端设备的公网IP端口,其中,第四类猜询报文的数量等于服务端设备接收到的端口猜测数量。通过第三类猜询报文和第四类猜询报文碰撞,并在碰撞成功的情况下,建立客户端设备和服务端设备之间的隧道连接。
本公开实施例中,客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接,由此实现了通过双向猜测的方式,根据两端不同的NAT类型采用不同的端口猜测策略,在客户端设备和服务端设备之间建立隧道连接,相比于通过单向猜测的方式,提升了隧道连接的成功率。
图2是根据本公开实施例的又一隧道连接方法的流程示意图,本实施例是在上述实施例的基础上进行优化,参见图2,隧道连接方法具体流程如下:
S201、响应于客户端设备和服务端设备分别发起的连接请求,服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合。
若服务器设备判断客户端设备和服务端设备的NAT类型组合为目标类型组合,则执行S202-S205的步骤,以建立隧道连接。
进一步的,按照S202-S203的步骤,可实现快速确定客户端设备和服务端设备各自对应的端口猜测数量。
S202、获取预先建立的连接方案对照表。
本公开实施例中,连接方案对照表记录了在不同隧道连接成功率下,不同NAT类型对应的端口猜测数量。示例性的,连接方案对照表如下:
表1
需要说明的是,在构建连接方案对照表时,服务器设备以成功率T为目标,计算出m和n的组合方式。假设Host A为对称型NAT,Host B为端口限制锥型NAT。请求由Host B发起,Host B提供一个开放端口Port B,Host A发送m个报文使对称NAT开放多个端口,Host B发送n个报文去猜测Host A开放端口。碰撞成功,连接成功的概率T为: 由此以端口限制锥型NAT和对称型NAT不同的猜测组合,形成不同梯度的连接成功率及对应的组合方案。
S203、根据设定的当前隧道连接成功率,从连接方案对照表中确定客户端设备的NAT类型和服务端设备的NAT类型各自对应的端口猜测数量,并依次下发到客户端设备和服务端设备。
本公开实施例中,可根据设定的当前隧道连接成功率,从连接方案对照表中选择与当前隧道连接成功率最接近的目标连接成功率,并将目标连接成功率对应的端口限制锥型NAT端口猜测数量m和对称型NAT端口探测数量n,下发到对应的客户端设备或服务端设备,例如,若客户端设备的NAT类型为端口限制型,则将m值下发到客户端设备。
S204、根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应的端口猜测策略。
S205、客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
S204-S205的步骤可参见上述实施例,在此不再赘述。
本公开实施例中,服务器设备以成功率为目标,计算出端口猜测数量m和端口猜测数量n的组合方式,形成不同梯度的连接成功率及对应的连接方案,进而可根据当前设定的连接成功率,可快速确定端口猜测数量m和端口猜测数量n,为后续建立隧道连接提供了保证。
图3是根据本公开实施例的又一隧道连接方法的流程示意图,本实施例是在上述实施例的基础上进行优化,参见图3,隧道连接方法具体流程如下:
S301、响应于客户端设备和服务端设备分别发起的连接请求,服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合。
若服务器设备判断客户端设备和服务端设备的NAT类型组合为目标类型组合,则执行S302-S305的步骤,以建立隧道连接。
S302、获取预先建立的连接方案对照表。
本公开实施例中,连接方案对照表记录了在不同隧道连接成功率下,不同NAT类型对应的端口猜测数量。
S303、获取预设的隧道连接成功率的浮动值。
S304、根据浮动值和当前隧道连接成功率,从连接方案对照表中确定候选隧道连接成功率。
本公开实施例中,为了确定不同NAT类型对应的最佳的端口猜测数量,可预先设定一个浮动值,该浮动值可以是向上浮动的值,也可以为上下双向浮动的值,例如,浮动值可选的为±0.5%。
进一步的,根据浮动值和当前隧道连接成功率,可确定连接成功率范围,进而根据连接成功率范围从连接方案对照表中确定至少一个候选隧道连接成功率。示例性的,当前隧道连接成功率为90%,浮动值可选的为±0.5%,确定的成功率范围为89.5.%-90.5%,参见表1,则候选隧道连接成功率为方案序号206-266对应的连接成功率。
S305、根据客户端设备和服务端设备的端口资源和性能参数,从各候选隧道连接成功率下不同NAT类型各自对应的端口猜测数量中,确定客户端设备的NAT类型和服务端设备的NAT类型各自对应的端口猜测数量,并依次下发到客户端设备和服务端设备。
本公开实施例中,为了从各候选隧道连接成功率对应的组合方案选出不同类型NAT对应的最佳的端口猜测数量组合,提高系统的适应性。在一种可选的实施方式中,根据两端的剩余端口资源,剔除不满足任一端端口使用资源的方案,进而在剩余方案中,通过对不同系统性能参数的侧重进行选择。例如,因对称型NAT在每一层都消耗n个端口资源,对系统整体的端口资源消耗大,因此选择对称型NAT一端的端口资源消耗不高于可选方案的平均值的一半的组合方案。
示例性的,通过S304确定候选隧道连接成功率对应的组合方案序号为260-266。假定端口限制锥型NAT剩余端口资源为2000,对称型NAT剩余端口资源为200,则筛除掉序号264、265、266的方案。剩余可选择的方案为序号为260、261、262和263的组合方案。而在剩余的方案中,对称型NAT端口探测数量分别为170、190、100、150,平均值为152.5。筛选掉高于该平均值的方案,即序号为260、261的方案。剩下序号为262、263两种方案中,序号为263的方案,端口消耗总数最少,作为最终方案。也即端口限制锥型NAT端口猜测数量m=1000,对称型NAT端口探测数量n=150。若客户端设备的NAT类型为端口限制型,服务端设备的NAT类型为对称型,则将m值下发到客户端设备,将n值下发到服务端设备。
需要说明的是,为了从各候选隧道连接成功率对应的组合方案选出不同类型NAT对应的最佳的端口猜测数量组合,还可结合两端的端口资源、系统性能进行权重计算等形式,或者选择与范围内平均值最接近的方案,在此不做具体限定。
S306、根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应的端口猜测策略。
S307、客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
S306-S307的步骤可参见上述实施例,在此不再赘述。
本公开实施例中,根据浮动值确定成功率范围,并在该成功率范围内,结合设备端口资源和性能进行选择不同NAT类型对应最优的端口猜测数量,实现了自适应的选择端口猜测数量组合。
图4是根据本公开实施例的又一隧道连接方法的流程示意图,本实施例是在上述实施例的基础上进行优化,参见图4,隧道连接方法的具体流程如下:
S401、响应于客户端设备和服务端设备分别发起的连接请求,服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合。
若服务器设备判断客户端设备和服务端设备的NAT类型组合为目标类型组合,则执行S402-S406的步骤。
S402、获取预先建立的连接方案对照表。
其中,连接方案对照表记录了在不同隧道连接成功率下,不同NAT类型对应的端口猜测数量。
S403、根据设定的当前隧道连接成功率,从连接方案对照表中确定客户端设备的NAT类型和服务端设备的NAT类型各自对应的端口猜测数量,并依次下发到客户端设备和服务端设备。
S404、客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
其中,S402-S404的步骤可参见上述实施例的描述,在此不再赘述。
S405、统计客户端设备和服务端设备之间建立隧道连接的真实连接成功率。
S406、判断真实连接成功率是否大于当前隧道连接成功率,若是,则利用真实连接成功率替换当前隧道连接成功率。
在执行完S404后统计本次操作的最终连接是否成功,进而统计客户端设备和服务端设备之间建立隧道连接的真实连接成功率,以便根据真实连接成功率调整当前隧道连接成功率,进而后续按照新的连接成功率选择不同NAT类型对应的端口猜测数量。
本公开实施例中,以连接成功率为目标牵引,结合预先设定的组网两端端口猜测数量组合方案,可选出最佳的端口猜测数量组合方案,能保障连接成功率维持在一个较高水平。
图5是根据本公开实施例的隧道连接装置的结构示意图,本实施例可适用于通过双向的端口猜测方式在具有不同类型NAT的设备之间建立隧道连接的情况。该装置配置于智能设备组网系统,智能设备组网系统至少包括部署在公网的服务器设备,以及部署在不同私网的客户端设备和服务端设备。如图5所示,该装置具体包括:
判断模块501,用于响应于客户端设备和服务端设备分别发起的连接请求,通过服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合;
下发模块502,用于若判断结果为是,则根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应端口猜测数量和端口猜测策略;
连接模块503,通过客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
在上述实施例的基础上,可选的,下发模块包括:
获取单元,用于获取预先建立的连接方案对照表;其中,连接方案对照表记录了在不同隧道连接成功率下,不同NAT类型对应的端口猜测数量;
选择与下发单元,用于根据设定的当前隧道连接成功率,从连接方案对照表中确定客户端设备的NAT类型和服务端设备的NAT类型各自对应的端口猜测数量,并依次下发到客户端设备和服务端设备。
在上述实施例的基础上,可选的,选择与下发单元包括:
获取子单元,用于获取预设的隧道连接成功率的浮动值;
第一选择子单元,用于根据浮动值和当前隧道连接成功率,从连接方案对照表中确定候选隧道连接成功率;
第二选择子单元,用于根据客户端设备和服务端设备的端口资源和性能参数,从各候选隧道连接成功率下不同NAT类型各自对应的端口猜测数量中,确定客户端设备的NAT类型和服务端设备的NAT类型各自对应的端口猜测数量。
在上述实施例的基础上,可选的,还包括:
统计模块,用于统计客户端设备和服务端设备之间建立隧道连接的真实连接成功率;
替换模块,用于判断真实连接成功率是否大于当前隧道连接成功率,若是,则利用真实连接成功率替换当前隧道连接成功率。
在上述实施例的基础上,可选的,目标类型组合为对称型NAT和端口限制锥型NAT的组合;端口猜测策略包括客户端设备或服务端设备发送猜询报文时源端口和目的端口的设定策略。
在上述实施例的基础上,可选的,客户端设备的NAT类型为对称型NAT,服务端设备的NAT类型为端口限制锥型NAT;
相应的,连接模块包括:
第一发报单元,用于通过客户端设备根据自身的公网IP端口信息以及服务端设备的公网IP端口信息,向服务端设备发送源端口随机、目的端口固定的第一类猜询报文,其中,第一类猜询报文的数量等于客户端设备接收到的端口猜测数量;
第二发报单元,用于通过服务端设备根据自身的公网IP端口信息以及客户端设备的公网IP端口信息,向客户端设备发送源端口固定、目的端口随机的第二类猜询报文,其中,第二类猜询报文的数量等于服务端设备接收到的端口猜测数量。
在上述实施例的基础上,可选的,客户端设备的NAT类型为端口限制锥型NAT,服务端设备的NAT类型为对称型NAT;
相应的,连接模块包括:
第三发报单元,用于通过客户端设备根据自身的公网IP端口信息以及服务端设备的公网IP端口信息,向服务端设备发送源端口固定、目的端口随机的第三类猜询报文,其中,第三类猜询报文的数量等于客户端设备接收到的端口猜测数量;
第四发报单元,用于通过服务端设备根据自身的公网IP端口信息以及客户端设备的公网IP端口信息,向客户端设备发送源端口随机、目的端口固定的第四类猜询报文,其中,第四类猜询报文的数量等于服务端设备接收到的端口猜测数量。
本公开实施例提供的装置可执行本公开任意实施例提供的隧道连接方法,具备执行隧道连接方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本公开任意方法实施例中的描述。
图6是本公开实施例中提供的一种电子设备的结构示意图。本公开实施例中,电子设备示例性的为服务器设备。如图6所示结构,本公开实施例中提供的电子设备包括:一个或多个处理器602和存储器601;该电子设备中的处理器602可以是一个或多个,图6中以一个处理器602为例;存储器601用于存储一个或多个程序;一个或多个程序被一个或多个处理器602执行,使得一个或多个处理器602实现如本公开实施例中任一项的隧道连接方法。
该电子设备还可以包括:输入装置603和输出装置604。
该电子设备中的处理器602、存储器601、输入装置603和输出装置604可以通过总线或其他方式连接,图6中以通过总线连接为例。
该电子设备中的存储器601作为一种计算机可读存储介质,可用于存储一个或多个程序,程序可以是软件程序、计算机可执行程序以及模块。处理器602通过运行存储在存储器601中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述方法实施例中隧道连接方法。
存储器601可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器601可进一步包括相对于处理器602远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置603可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。输出装置604可包括显示屏等显示设备。
并且,当上述电子设备所包括一个或者多个程序被一个或者多个处理器602执行时,程序进行如下操作:
响应于客户端设备和服务端设备分别发起的连接请求,服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合;
若是,则根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应的端口猜测数量和端口猜测策略;
客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
当然,本领域技术人员可以理解,当上述电子设备所包括一个或者多个程序被一个或者多个处理器执行时,程序还可以进行本公开任意实施例中所提供的隧道连接方法中的相关操作。
本公开的一个实施例中提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行隧道连接方法,应用于智能设备组网系统,智能设备组网系统至少包括部署在公网的服务器设备,以及部署在不同私网的客户端设备和服务端设备,该方法包括:
响应于客户端设备和服务端设备分别发起的连接请求,服务器设备判断客户端设备和服务端设备的NAT类型组合是否为目标类型组合;
若是,则根据客户端设备和服务端设备各自的NAT类型,依次向客户端设备和服务端设备发送各自对应的端口猜测数量和端口猜测策略;
客户端设备和服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
本公开实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言(诸如“C”语言或类似的程序设计语言)。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(例如包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本公开的较佳实施例及所运用技术原理。本领域技术人员会理解,本公开不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本公开的保护范围。因此,虽然通过以上实施例对本公开进行了较为详细的说明,但是本公开不仅仅限于以上实施例,在不脱离本公开构思的情况下,还可以包括更多其他等效实施例,而本公开的范围由所附的权利要求范围决定。
Claims (10)
1.一种隧道连接方法,其特征在于,应用于智能设备组网系统,所述智能设备组网系统至少包括部署在公网的服务器设备,以及部署在不同私网的客户端设备和服务端设备,所述方法包括:
响应于所述客户端设备和所述服务端设备分别发起的连接请求,所述服务器设备判断所述客户端设备和所述服务端设备的NAT类型组合是否为目标类型组合;
若是,则根据所述客户端设备和所述服务端设备各自的NAT类型,依次向所述客户端设备和所述服务端设备发送各自对应的端口猜测数量和端口猜测策略;
所述客户端设备和所述服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
2.根据权利要求1所述的方法,其特征在于,根据所述客户端设备和所述服务端设备各自的NAT类型,依次向所述客户端设备和所述服务端设备发送各自对应的端口猜测数量,包括:
获取预先建立的连接方案对照表;其中,所述连接方案对照表记录了在不同隧道连接成功率下,不同NAT类型对应的端口猜测数量;
根据设定的当前隧道连接成功率,从所述连接方案对照表中确定所述客户端设备的NAT类型和所述服务端设备的NAT类型各自对应的端口猜测数量,并依次下发到所述客户端设备和所述服务端设备。
3.根据权利要求2所述的方法,其特征在于,根据设定的当前隧道连接成功率,从所述连接方案对照表中确定所述客户端设备的NAT类型和所述服务端设备的NAT类型各自对应的端口猜测数量,包括:
获取预设的隧道连接成功率的浮动值;
根据所述浮动值和所述当前隧道连接成功率,从所述连接方案对照表中确定候选隧道连接成功率;
根据所述客户端设备和所述服务端设备的端口资源和性能参数,从各候选隧道连接成功率下不同NAT类型各自对应的端口猜测数量中,确定所述客户端设备的NAT类型和所述服务端设备的NAT类型各自对应的端口猜测数量。
4.根据权利要求2所述的方法,其特征在于,在猜测正确的情况下建立隧道连接之后,所述方法还包括:
统计所述客户端设备和所述服务端设备之间建立隧道连接的真实连接成功率;
判断所述真实连接成功率是否大于所述当前隧道连接成功率,若是,则利用所述真实连接成功率替换所述当前隧道连接成功率。
5.根据权利要求1所述的方法,其特征在于,所述目标类型组合为对称型NAT和端口限制锥型NAT的组合;所述端口猜测策略包括所述客户端设备或所述服务端设备发送猜询报文时源端口和目的端口的设定策略。
6.根据权利要求5所述的方法,其特征在于,所述客户端设备的NAT类型为对称型NAT,服务端设备的NAT类型为端口限制锥型NAT;
相应的,所述客户端设备和所述服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,包括:
所述客户端设备根据自身的公网IP端口信息以及所述服务端设备的公网IP端口信息,向所述服务端设备发送源端口随机、目的端口固定的第一类猜询报文,其中,所述第一类猜询报文的数量等于所述客户端设备接收到的端口猜测数量;
所述服务端设备根据自身的公网IP端口信息以及所述客户端设备的公网IP端口信息,向所述客户端设备发送源端口固定、目的端口随机的第二类猜询报文,其中,所述第二类猜询报文的数量等于所述服务端设备接收到的端口猜测数量。
7.根据权利要求5所述的方法,其特征在于,所述客户端设备的NAT类型为端口限制锥型NAT,服务端设备的NAT类型为对称型NAT;
相应的,所述客户端设备和所述服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,包括:
所述客户端设备根据自身的公网IP端口信息以及所述服务端设备的公网IP端口信息,向所述服务端设备发送源端口固定、目的端口随机的第三类猜询报文,其中,所述第三类猜询报文的数量等于所述客户端设备接收到的端口猜测数量;
所述服务端设备根据自身的公网IP端口信息以及所述客户端设备的公网IP端口信息,向所述客户端设备发送源端口随机、目的端口固定的第四类猜询报文,其中,所述第四类猜询报文的数量等于所述服务端设备接收到的端口猜测数量。
8.一种隧道连接装置,其特征在于,配置于智能设备组网系统,所述智能设备组网系统至少包括部署在公网的服务器设备,以及部署在不同私网的客户端设备和服务端设备,所述装置包括:
判断模块,用于响应于所述客户端设备和所述服务端设备分别发起的连接请求,通过所述服务器设备判断所述客户端设备和所述服务端设备的NAT类型组合是否为目标类型组合;
下发模块,用于若判断结果为是,则根据所述客户端设备和所述服务端设备各自的NAT类型,依次向所述客户端设备和所述服务端设备发送各自对应端口猜测数量和端口猜测策略;
连接模块,通过所述客户端设备和所述服务端设备根据各自接收的端口猜测数量和端口猜测策略,彼此猜测对方的端口,并在猜测正确的情况下建立隧道连接。
9.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111142072.6A CN115914164A (zh) | 2021-09-28 | 2021-09-28 | 一种隧道连接方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111142072.6A CN115914164A (zh) | 2021-09-28 | 2021-09-28 | 一种隧道连接方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115914164A true CN115914164A (zh) | 2023-04-04 |
Family
ID=86496185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111142072.6A Pending CN115914164A (zh) | 2021-09-28 | 2021-09-28 | 一种隧道连接方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115914164A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117176781A (zh) * | 2023-11-01 | 2023-12-05 | 北京融为科技有限公司 | 点对点组网方法及装置 |
CN117729052A (zh) * | 2024-02-06 | 2024-03-19 | 北京天维信通科技股份有限公司 | 基于多端口的隧道流量混淆方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651721A (zh) * | 2008-08-14 | 2010-02-17 | 百度在线网络技术(北京)有限公司 | 网络地址转换设备类型的判断方法和系统 |
CN102196057A (zh) * | 2010-03-03 | 2011-09-21 | 腾讯科技(深圳)有限公司 | 一种确定nat类型的方法及装置 |
US20140156870A1 (en) * | 2012-11-30 | 2014-06-05 | Yamaha Corporation | Communication system and server |
CN105187567A (zh) * | 2015-06-24 | 2015-12-23 | 东莞市南星电子有限公司 | 一种基于sip和ice的音视频通信方法 |
CN105553809A (zh) * | 2015-12-08 | 2016-05-04 | 浙江宇视科技有限公司 | 一种stun隧道管理方法及装置 |
-
2021
- 2021-09-28 CN CN202111142072.6A patent/CN115914164A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101651721A (zh) * | 2008-08-14 | 2010-02-17 | 百度在线网络技术(北京)有限公司 | 网络地址转换设备类型的判断方法和系统 |
CN102196057A (zh) * | 2010-03-03 | 2011-09-21 | 腾讯科技(深圳)有限公司 | 一种确定nat类型的方法及装置 |
US20140156870A1 (en) * | 2012-11-30 | 2014-06-05 | Yamaha Corporation | Communication system and server |
CN105187567A (zh) * | 2015-06-24 | 2015-12-23 | 东莞市南星电子有限公司 | 一种基于sip和ice的音视频通信方法 |
CN105553809A (zh) * | 2015-12-08 | 2016-05-04 | 浙江宇视科技有限公司 | 一种stun隧道管理方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117176781A (zh) * | 2023-11-01 | 2023-12-05 | 北京融为科技有限公司 | 点对点组网方法及装置 |
CN117176781B (zh) * | 2023-11-01 | 2024-03-26 | 北京融为科技有限公司 | 点对点组网方法及装置 |
CN117729052A (zh) * | 2024-02-06 | 2024-03-19 | 北京天维信通科技股份有限公司 | 基于多端口的隧道流量混淆方法及装置 |
CN117729052B (zh) * | 2024-02-06 | 2024-04-16 | 北京天维信通科技股份有限公司 | 基于多端口的隧道流量混淆方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108322467B (zh) | 基于ovs的虚拟防火墙配置方法、电子设备及存储介质 | |
JP2018528679A (ja) | 負荷平衡システムにおいて接続を確立するデバイス及び方法 | |
US9094483B2 (en) | System and method for collecting and evaluating statistics to establish network connections | |
CN110915188A (zh) | 用于区块链网络中的高效传播的概率中继 | |
CN115914164A (zh) | 一种隧道连接方法、装置、电子设备和存储介质 | |
CN109088799B (zh) | 一种客户端接入方法、装置、终端以及存储介质 | |
WO2015114473A1 (en) | Method and apparatus for locality sensitive hash-based load balancing | |
US10367893B1 (en) | Method and apparatus of performing peer-to-peer communication establishment | |
CN109922144B (zh) | 用于处理数据的方法和装置 | |
CN106452909B (zh) | 一种路由发布方法以及路由反射器设备 | |
US11961074B2 (en) | Method and system for a network device to obtain a trusted state representation of the state of the distributed ledger technology network | |
WO2017190467A1 (zh) | 终端最大传输单元的调整方法、装置和终端设备 | |
WO2022116767A1 (zh) | 数据传输方法、用户设备及存储介质 | |
CN114500633A (zh) | 数据转发方法、相关装置、程序产品及数据传输系统 | |
CN112152880A (zh) | 一种链路健康检测方法及装置 | |
CN115277539A (zh) | 一种数据传输方法、选路集群以及边缘节点 | |
CN107222403A (zh) | 一种数据传输方法、系统和电子设备 | |
CN106878320A (zh) | 一种防止ip地址欺骗的方法和装置 | |
CN116708358B (zh) | P2p穿越方法、设备及存储介质 | |
CN107592361B (zh) | 一种基于双ib网络的数据传输方法、装置、设备 | |
US9455911B1 (en) | In-band centralized control with connection-oriented control protocols | |
CN107222299A (zh) | 一种数据传输方法、系统和电子设备 | |
CN114826898A (zh) | 跨主机通信方法、装置、设备、系统及可读存储介质 | |
JP3929969B2 (ja) | 通信システム、サーバ、端末装置、通信方法、プログラムおよび記憶媒体 | |
CN114205405B (zh) | 一种bfd报文发送方法、装置、电子设备及存储介质 |
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 |