CN111935333A - Nat类型的确定方法、设备、***和存储介质 - Google Patents

Nat类型的确定方法、设备、***和存储介质 Download PDF

Info

Publication number
CN111935333A
CN111935333A CN202010805783.6A CN202010805783A CN111935333A CN 111935333 A CN111935333 A CN 111935333A CN 202010805783 A CN202010805783 A CN 202010805783A CN 111935333 A CN111935333 A CN 111935333A
Authority
CN
China
Prior art keywords
response message
client
test request
nat
server
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
Application number
CN202010805783.6A
Other languages
English (en)
Other versions
CN111935333B (zh
Inventor
付少平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Ezviz Network Co Ltd
Original Assignee
Hangzhou Ezviz Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Ezviz Network Co Ltd filed Critical Hangzhou Ezviz Network Co Ltd
Priority to CN202010805783.6A priority Critical patent/CN111935333B/zh
Publication of CN111935333A publication Critical patent/CN111935333A/zh
Application granted granted Critical
Publication of CN111935333B publication Critical patent/CN111935333B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种NAT类型的确定方法、设备、***和存储介质。该方法包括:向服务器发送至少两个测试请求指令;所述服务器用于对所述至少两个测试请求指令进行并行处理;接收所述服务器返回的所述至少两个测试请求指令对应的响应消息;根据所述响应消息,确定所述客户端的NAT类型。本申请实施例的NAT类型检测的效率较高。

Description

NAT类型的确定方法、设备、***和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种NAT类型的确定方法、设备、***和存储介质。
背景技术
网络地址转换(Network Address Translation,NAT)是一种将私有(保留)地址转化为合法IP地址的转换技术,它被广泛应用于各种类型因特网(Internet)接入方式和各种类型的网络中。NAT能够解决IP地址不足的问题。私网中的一个节点发送报文到一个外部节点,当报文经过NAT设备时,在NAT设备上生成映射,并把报文的源地址和源端口替换成外部地址和外部端口。该外部节点发送报文到私网中的节点时,经过NAT设备时根据所述的映射把报文的目的地址和目的端口替换成内部地址和内部端口。在对等计算P2P网络中由于网络地址转换NAT设备的存在,P2P节点一般需要先检测NAT网络类型,从而选择有效的NAT穿透技术。
相关技术中,在私网内部安装一个STUN客户端,在公网上安装两个STUN服务器,STUN客户端向STUN服务器发送请求,STUN服务器发送响应给STUN客户端。STUN客户端依次向其中一个STUN服务器发送多个测试项的数据包,STUN客户端根据收到的响应数据包确定NAT类型,其中,多个测试项是依次进行的,在前一个测试项接收到响应数据包或未接收到响应数据包之后,才进行后一个测试项,即发送后一个测试项的数据包。上述方法中必须依次发送多个测试项的数据包,多个测试项有先后的顺序依赖,即串行发送多个测试项的数据包,因此,NAT类型检测的效率较低。
发明内容
本申请提供一种NAT类型的确定方法、设备、***和存储介质,以提高NAT类型检测的效率。
第一方面,本申请提供一种网络地址转换NAT类型的确定方法,应用于客户端,所述方法包括:
向服务器发送至少两个测试请求指令;所述服务器用于对所述至少两个测试请求指令进行并行处理;
接收所述服务器返回的所述至少两个测试请求指令对应的响应消息;
根据所述响应消息,确定所述客户端的NAT类型。
第二方面,本申请提供一种网络地址转换NAT类型的确定方法,应用于服务器,所述方法包括:
接收来自所述客户端的至少两个测试请求指令;
对客户端发送的至少两个测试请求指令进行并行处理;
向所述客户端发送所述至少两个测试请求指令对应的响应消息,所述响应消息用于确定所述客户端的NAT类型。
第三方面,本申请提供一种NAT类型的确定装置,应用于客户端,该装置包括:
发送模块,用于向服务器发送至少两个测试请求指令;所述服务器用于对所述至少两个测试请求指令进行并行处理;
接收模块,用于接收所述服务器返回的所述至少两个测试请求指令对应的响应消息;
处理模块,用于根据所述响应消息,确定所述客户端的NAT类型。
第四方面,本申请提供一种NAT类型的确定装置,应用于服务器,该装置包括:
接收模块,用于接收来自所述客户端的至少两个测试请求指令;
处理模块,用于对客户端发送的至少两个测试请求指令进行并行处理;
发送模块,用于向所述客户端发送所述至少两个测试请求指令对应的响应消息,所述响应消息用于确定所述客户端的NAT类型。
第五方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面、第二方面中任一项所述的方法。
第六方面,本申请实施例提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第一方面中任一项所述的方法。
第七方面,本申请实施例提供一种服务器,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行第二方面中任一项所述的方法。
第八方面,本申请实施例提供一种网络***,包括:
客户端设备和服务器;
其中,所述服务器用于接收所述客户端发送的至少两个测试请求指令,对所述至少两个测试请求指令进行并行处理,并向所述客户端返回所述至少两个测试请求指令对应的响应消息;
所述客户端用于根据所述至少两个测试请求指令对应的响应消息,确定所述客户端的NAT类型。
本申请实施例提供的NAT类型的确定方法、设备、***和存储介质,向服务器发送至少两个测试请求指令;服务器用于对至少两个测试请求指令进行并行处理;通过一个服务器对多个测试请求指令进行并行处理,减少了服务器的处理时延,进一步,根据服务器返回的响应消息,确定客户端的NAT类型,提高了NAT类型检测的效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请实施例提供的***架构示意图;
图2是本申请提供的NAT类型的确定方法一实施例的流程示意图;
图3是本申请提供的NAT类型的确定方法一实施例的原理示意图;
图4是本申请提供的方法另一实施例的流程图;
图5是本申请提供的NAT类型的确定方法另一实施例的流程示意图;
图6是本申请提供的NAT类型的确定装置一实施例的结构图;
图7是本申请提供的NAT类型的确定装置另一实施例的结构图;
图8是本申请提供的电子设备实施例的结构图;
图9是本申请提供的服务器实施例的结构图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本申请的说明书和权利要求书及所述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,对本申请实施例涉及的部分词汇和应用场景进行介绍。
完全圆锥型NAT(Full cone NAT),即著名的一对一(one-to-one)NAT:
一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。任意外部主机都能通过给eAddr:port2发包到达iAddr:port1。
受限圆锥型NAT(Address-Restricted cone NAT),即地址受限,只接收曾经发送到对端的IP地址来的数据包:
一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。任意外部主机(hostAddr:any)都能通过给eAddr:port2发包到达iAddr:port1的前提是:iAddr:port1之前发送过包到hostAddr:any."any"也就是说端口不受限制。
端口受限圆锥型NAT(Port-Restricted cone NAT),即端口和地址受限:
一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自iAddr:port1的包都经由eAddr:port2向外发送。一个外部主机(hostAddr:port3)能够发包到达iAddr:port1的前提是:iAddr:port1之前发送过包到hostAddr:port3。
对称NAT(Symmetric NAT):
每一个来自相同内部IP与port的请求到一个特定目的地的IP地址和端口,都被映射到一个独特的外部来源的IP地址和端口。同一个内部主机发出一个信息包到不同的目的端,将使用不同的映射。
图1为本申请实施例提供的***架构示意图。如图1所示,本申请实施例的***架构中可以包括但不限于:电子设备11和服务器12。电子设备例如包括用户的终端设备,例如手机、平板电脑、计算机等等。其中,电子设备11的个数可以是多个,图1中以一个为例进行说明。电子设备作为客户端与服务器交互。
其中,电子设备11和服务器12之间可以通过网络连接。
本申请实施例提供的方法可由一个电子设备如处理器执行相应的软件代码实现,也可由一个电子设备在执行相应的软件代码的同时,通过和服务器进行数据交互来实现。
本申请实施例的方法,基于NAT的UDP简单穿越(Simple Traversal of UDP overNATs,STUN)协议来进行NAT类型检测。
相关技术中,在私网内部安装一个STUN客户端,在公网上安装两个STUN服务器,STUN客户端依次向一个STUN服务器发送多个测试项的数据包,在该STUN服务器收到来自STUN客户端的数据包后,该STUN服务器发送响应数据包给STUN客户端,或该STUN服务器通知另外一个STUN服务器发送响应数据包给STUN客户端;STUN客户端根据收到的响应数据包(包括两个服务器发送的响应数据包)确定NAT类型,其中,多个测试项是依次进行的,在前一个测试项接收到响应数据包或未接收到响应数据包之后,才进行后一个测试项,即发送后一个测试项的数据包。上述方法中必须依次发送多个测试项的数据包,多个测试项有先后的顺序依赖,即串行发送多个测试项的数据包,因此,NAT类型检测的效率较低。
本申请实施例的方法,通过一个服务器对至少两个测试请求指令进行并行处理,根据该服务器返回的响应消息确定NAT类型,能够减少服务器的处理时延,进而提高NAT类型检测的效率。
在一实施例中,服务器配置有至少一个网卡,所述至少一个网卡具有至少两个IP地址,根据至少两个IP返回的响应消息确定NAT类型。
下面以具体的实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2是本申请提供的NAT类型的确定方法一实施例的流程示意图。如图2所示,本实施例提供的方法应用于客户端,该方法包括:
步骤101、向服务器发送至少两个测试请求指令;服务器用于对至少两个测试请求指令进行并行处理。
具体的,NAT类型检测中,主要的耗时为发送和接收数据包中间的网络传输过程,和STUN服务器处理数据包时的排队时延。这些过程中的耗时,对于客户端来说,是不能控制的。因此,为了提高处理效率,本申请实施例中服务器配置至少一个网卡(如表1所示),服务器用于通过至少一个网卡对至少两个测试请求指令进行并行处理。
在一实施例中,该至少一个网卡具有至少两个IP地址,根据至少两个IP返回的响应消息确定NAT类型。
例如,一个网卡具有两个IP地址,或两个网卡各自具有一个IP地址。
以下实施例中以两个网卡为例进行说明。
表1网卡资源
编号 网卡 内网 公网IP
1 eth0 LocalIP_1 IP1
2 eth1 LocalIP_2 IP2
其中,网卡1对应的内网IP为LocalIP_1,公网IP为IP1;网卡1对应的内网IP为LocalIP_2,公网IP为IP2。
而且,为了提高NAT类型检测效率,客户端能够做的,就是尽量提早发包,这样后续接收到数据包时,也能够更快一些。因此,可以同时发送至少两个测试请求指令。
步骤102、接收服务器返回的至少两个测试请求指令对应的响应消息;
具体的,为了区分该些指令,需要对各个测试请求指令进行标记,例如在发送测试请求指令时携带该测试请求指令的标识。后续直接接收相关指令返回的响应消息。根据响应消息中的标识,来判断是对哪个指令的响应。
在实际应用中,有可能接收到服务器针对各个测试请求指令返回的响应消息,也可能针对部分测试请求指令返回的响应消息,或未接收到任何响应消息。
可以设定一个预设时长,发送测试请求指令后在预设时长内接收服务器返回的响应消息,若超过预设时长,则认为超时,可以不再接收响应消息。
步骤103、根据响应消息,确定客户端的NAT类型。
具体的,根据测试请求指令对应的响应消息的组合,确定客户端的NAT类型。例如收到一个测试请求指令对应的响应消息或收到两个测试请求指令各自对应的响应消息等。
NAT类型包括但不限于如下几种:1、完全圆锥型NAT Full Cone NAT;2、限制圆锥型Restricted Cone NAT;3、端口限制圆锥型Port Restricted Cone NAT;4、对称型Symmetric NAT;5、位于Nat前;6、防火墙限制;7、UDP不通;8、未知。
在一实施例中,该方法还包括:
若未收到服务器返回的响应消息,则确定客户端的NAT类型为用户数据报协议(User Datagram Protocol,UDP)不通。
本实施例的方法,向服务器发送至少两个测试请求指令;服务器用于对至少两个测试请求指令进行并行处理;通过多个网卡对多个测试请求指令进行并行处理,减少了服务器的处理时延,进一步,根据服务器返回的响应消息,确定客户端的NAT类型,提高了NAT类型检测的效率。
在上述实施例的基础上,至少两个测试请求指令包括:第一测试请求指令和第二测试请求指令;
第一测试请求指令用于请求服务器从第一IP地址、第一端口反馈第一响应消息;
第二测试请求指令用于请求服务器从第二IP地址、第二端口反馈第二响应消息;
其中,第一响应消息携带客户端的第一公网IP地址和第一公网端口。
进一步的,至少两个测试请求指令还包括:第三测试请求指令和第四测试请求指令;
第三测试请求指令用于请求服务器从第一IP地址、第二端口反馈第三响应消息;
第四测试请求指令用于请求服务器从第二IP地址、第二端口反馈第四响应消息;
其中,第四响应消息携带客户端的第二公网IP地址和第二公网端口。
具体的,如图3所示,为客户端与服务器的交互原理。
第一测试请求指令和第二测试请求指令的目的地址为服务器的第一IP地址和服务器的第一端口的端口号;
第三测试请求指令的目的地址为服务器的第一IP地址和服务器的第一端口的端口号;
第四测试请求指令的目的地址为服务器的第二IP地址和服务器的第二端口的端口号。
第一测试请求指令要求服务器从第一IP地址、第一端口返回响应消息,第二测试请求指令要求服务器从第一IP地址、第二端口返回响应消息,第三测试请求指令要求服务器从第一IP地址、第二端口返回响应消息;
第四测试请求指令要求服务器从第二IP地址、第二端口返回响应消息。
测试请求指令可参见下表1:
表1
Figure BDA0002629070500000081
Figure BDA0002629070500000091
其中,如表1所示,第一测试请求指令,IP1+Port1接收客户端的请求,即从第一IP地址、第一端口接收请求,IP1+Port1响应客户端的请求,即从第一IP地址(IP1)、第一端口(Port1)反馈响应,而且响应消息中携带客户端的第一公网IP、第一公网端口。
第二测试请求指令,IP1+Port1接收客户端的请求,即从第一IP地址(IP1)、第一端口接收请求,IP2+Port2响应客户端的请求,即从第二IP地址(IP2)、第二端口(Port2)反馈响应。
第三测试请求指令,IP1+Port1接收客户端的请求,即从第一IP地址(IP1)、第一端口接收请求,IP1+Port2响应客户端的请求,即从第一IP地址(IP1)、第二端口反馈响应。
第四测试请求指令,IP2+Port2接收客户端的请求,即从第二IP地址(IP2)第二端口接收请求,IP2+Port2响应客户端的请求,即从第二IP地址(IP2)、第二端口反馈响应,而且响应消息中携带客户端的第二公网IP、第二公网端口。
以下是需要监听的数据包来源:
编号 网卡 内网 公网IP 端口
1 eth0 LocalIp_1 IP1 Port1
2 eth0 LocalIp_1 IP1 Port2
3 eth1 LocalIp_2 IP2 Port2
即从第一IP地址(IP1)、第一端口(Port1)反馈的响应,从第一IP地址(IP1)、第二端口(Port2)反馈的响应,从第二IP地址(IP2)、第二端口(Port2)反馈的响应。
至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息、第三响应消息或第四响应消息。
在一实施例中,步骤103具体可以通过如下方式实现:
若响应消息包括所述第一响应消息,根据第一响应消息确定客户端的状态,客户端的状态为位于NAT前或者位于NAT后,位于NAT前表示客户端未进行网络地址转换,位于NAT后表示客户端进行了网络地址转换;
根据响应消息和客户端的状态,确定客户端的类型。
具体的,若收到从服务器返回的Check_I对应的第一响应消息,即从第一IP地址(IP1)、第一端口(Port1)反馈的响应,则根据该第一响应消息可以确定客户端的状态,即位于NAT前还是位于NAT后,若位于NAT前则表示该客户端未进行网络地址转换,可直接使用本地IP地址与外网通信;若位于NAT后则表示该客户端进行了网络地址转换,即使用经过NAT转换后的公网IP地址与外网通信。
进而可以根据该客户端的状态,即是位于NAT前还是位于NAT后,以及响应消息进一步确定客户端的类型。
在一实施例中,具体可以通过如下方式确定客户端的状态,是位于NAT前还是位于NAT后:
若第一响应消息携带的第一公网IP地址与客户端的本地IP地址相同,则确定客户端的状态为位于NAT前;
若第一响应消息携带的第一公网IP地址与客户端的本地IP地址不相同,则确定客户端的状态为位于NAT后。
具体的,若第一公网IP地址与该客户端的本地IP地址相同,说明未进行网络地址转换,直接使用本地IP地址与外网通信,则客户端的状态为位于NAT前。
若第一公网IP地址与该客户端的本地IP地址不相同,说明进行了网络地址转换,使用第一公网IP地址与外网通信,则客户端的状态为位于NAT后。
在一实施例中,具体可以通过如下方式确定客户端的类型:
若服务器返回的响应消息包括第一响应消息和第二响应消息,且客户端的状态为位于NAT前,则确定客户端的类型为:位于NAT前;
若服务器返回的响应消息包括第一响应消息和第二响应消息,且客户端的状态为位于NAT后,则确定客户端的NAT类型为:完全圆锥型NAT。
具体的,若收到Check_I对应的第一响应消息和Check_II对应的第二响应消息,且客户端位于NAT前,则确定客户端的类型为:位于NAT前。
若收到第一响应消息和第二响应消息,且客户端位于NAT后,则改变IP、端口都能收到,说明对IP和端口没有限制,确定NAT类型为完全圆锥型NAT。
若所述客户端位于NAT后,收到第一响应消息,且未收到第二响应消息,则确定客户端的NAT类型为未知类型。
在一实施例中,若响应消息包括第一响应消息和第四响应消息,客户端的状态为位于NAT后,且第一响应消息携带的第一公网IP地址与第四响应消息携带的第二公网IP地址不同,则确定客户端的NAT类型为:对称型NAT;
若响应消息包括第一响应消息和第四响应消息,客户端的状态为位于NAT后,且所述第一响应消息携带的第一公网端口与第四响应消息携带的第二公网端口不同,则确定客户端的NAT类型为:对称型NAT;
若客户端的状态为位于NAT后,响应消息包括第一响应消息和第三响应消息,且响应消息不包括第二响应消息,则确定客户端的NAT类型为:限制圆锥型NAT。
具体的,若客户端位于NAT后,收到Check_I对应的第一响应消息和Check_IV对应的第四响应消息,且第一响应消息和第四响应消息解析到的外网IP不同或第一响应消息和第四响应消息解析到的PORT不同,则客户端的NAT类型为:对称型NAT。即同一个内部主机发出一个信息包到不同的目的端,使用不同的映射,即发到不同的目的端的外网IP或端口不同。
若客户端位于NAT后,收到Check_I对应的第一响应消息和Check_III对应的第三响应消息,未收到Check_II对应的第二响应消息,即收到IP1对应的响应,收不到IP2对应的响应,则确定客户端的NAT类型为:限制圆锥型NAT,即地址限制。
在一实施例中,该方法还包括如下步骤:
确定发送至少两个测试请求指令的次数是否超过预设次数;
若次数超过预设次数,客户端的状态为位于NAT前,响应消息包括第一响应消息,且响应消息不包括第四响应消息,则确定客户端的NAT类型为防火墙限制;
若所述次数超过预设次数,所述客户端的状态为位于NAT后,所述响应消息包括所述第一响应消息和所述第四响应消息,且所述响应消息不包括所述第二响应消息和所述第三响应消息,则确定所述客户端的NAT类型为:端口限制圆锥型NAT。
具体的,在确定NAT类型时,可以多次发送测试请求指令,例如一次发四个测试请求指令(第一至第四测试请求指令),可能并未接收到响应消息,或根据接收到的响应消息无法确定NAT类型,则可以重复发送该至少两个测试请求指令;
若重复发送的次数已超过预设次数,且客户端位于NAT前,收到Check_I对应的第一响应消息,未收到Check_IV对应的第四响应消息,则确定客户端的NAT类型为防火墙限制,即限制了某些IP的数据包。
若重复发送的次数已超过预设次数,客户端位于NAT后,收到Check_I对应的第一响应消息和Check_IV对应的第四响应消息,未收到Check_II对应的第二响应消息和Check_III对应的第三响应消息,则确定客户端的NAT类型为:端口限制圆锥型NAT,即响应消息只能从发的IP和端口回来。
上述实施方式中,可同时发送多个测试请求指令,根据接收到的响应消息的各种组合,确定NAT类型,效率较高。
在一实施例中,如图4所示,向服务器发送测试请求指令Check_I,Check_II,Check_III,Check_IV,且NAT前后标识bBeforeNat=false;
定时(例如1s)进行收取服务器回复的响应信令,处理响应信令,根据信令找到是针对那条测试请求指令的回复,并标记此指令已经接收到响应;若超时,则认为未收到响应;
如果收到Check_I返回的响应,且解析到的服务器返回的公网IP与本地IP相同,则标志为NAT前,bBeforeNat=true;
如果收到Check_I和Check_II响应,则执行:
若BeforeNat为true,标记NATTYTPE=5,否则标记NAT TYPE=1;
否则,执行:
如果bBeforeNat为false,收到Check_I和Check_IV响应,且解析到的外网IP或端口PORT不同,即Check_I和Check_IV携带的公网IP或端口PORT不同,则标记NAT TYPE=4;否则,执行:
如果bBeforeNat为false,且Check_I和Check_III响应,且没有收到Check_II的响应,则标记NAT TYPE=2,否则,执行:
重试次数是否超过了预设次数(5次),若否,则返回重新向服务器发送测试请求指令;
若超过了预设次数,则执行下述步骤:
如果bBeforeNat为true,收到Check_I没有收到Check_II,则标记NAT TYPE=6,否则:
如果bBeforeNat为false,收到Check_I、Check_IV,没有收到Check_II、Check_III,则标记NATTYPE=3,否则:
如果bBeforeNat为false,收到Check_I没有收到Check_II,则标记NATTYPE=8,否则,标记NAT TYPE=7
图5是本申请提供的NAT类型的确定方法另一实施例的流程示意图。如图5所示,本实施例提供的方法应用于服务器,该方法包括:
步骤201、接收来自客户端的至少两个测试请求指令;
步骤202、对客户端发送的至少两个测试请求指令进行并行处理;
步骤203、向客户端发送至少两个测试请求指令对应的响应消息,响应消息用于确定客户端的NAT类型。
具体的,NAT类型检测中,主要的耗时为发送和接收数据包中间的网络传输过程,和STUN服务器处理数据包时的排队时延。这些过程中的耗时,对于客户端来说,是不能控制的。因此,为了提高处理效率,本申请实施例中服务器配置至少一个网卡(如表1所示),服务器用于对至少两个测试请求指令进行并行处理。
而且,为了提高NAT类型检测效率,客户端能够做的,就是尽量提早发包,这样后续接收到数据包时,也能够更快一些。因此,可以同时发送至少两个测试请求指令。
为了区分该些指令,需要对各个测试请求指令进行标记,例如在发送测试请求指令时携带该测试请求指令的标识。后续直接接收相关指令返回的响应消息。根据响应消息中的标识,来判断是对哪个指令的响应。
根据测试请求指令对应的响应消息的组合,确定客户端的NAT类型。例如收到一个测试请求指令对应的响应消息或收到两个测试请求指令各自对应的响应消息等。
在一实施例中,所述至少两个测试请求指令包括:第一测试请求指令和第二测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息;
所述第一测试请求指令用于请求所述服务器从第一IP地址、所述第一端口反馈所述第一响应消息;
所述第二测试请求指令用于请求所述服务器从第二IP地址、第二端口反馈所述第二响应消息;
其中,所述第一测试请求指令和所述第二测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第一响应消息携带所述客户端的第一公网IP地址和第一公网端口。
在一实施例中,所述至少两个测试请求指令还包括:第三测试请求指令和第四测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息、第三响应消息、第四响应消息;
所述第三测试请求指令用于请求所述服务器从第一IP地址、所述第二端口反馈第三响应消息;
所述第四测试请求指令用于请求所述服务器从第二IP地址、所述第二端口反馈第四响应消息;
其中,所述第三测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第四测试请求指令的目的地址为所述服务器的第二IP地址和服务器的第二端口的端口号;
所述第四响应消息携带所述客户端的第二公网IP地址和第二公网端口。
本实施例的方法,与上述客户端侧方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本申请提供的NAT类型的确定装置一实施例的结构图,如图6所示,本实施例的NAT类型的确定装置,应用于客户端,该装置包括:
发送模块601,用于向服务器发送至少两个测试请求指令;所述服务器用于对所述至少两个测试请求指令进行并行处理;
接收模块602,用于接收所述服务器返回的所述至少两个测试请求指令对应的响应消息;
处理模块603,用于根据所述响应消息,确定所述客户端的NAT类型。
在一种可能的实现方式中,所述至少两个测试请求指令包括:第一测试请求指令和第二测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息;
所述第一测试请求指令用于请求所述服务器从第一IP地址、第一端口反馈所述第一响应消息;
所述第二测试请求指令用于请求所述服务器从第二IP地址、第二端口反馈所述第二响应消息;
其中,所述第一测试请求指令和所述第二测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第一响应消息携带所述客户端的第一公网IP地址和第一公网端口。
在一种可能的实现方式中,所述处理模块603,具体用于:
若所述响应消息包括所述第一响应消息,根据所述第一响应消息确定所述客户端的状态,所述客户端的状态为位于NAT前或者位于NAT后,所述位于NAT前表示所述客户端未进行网络地址转换,所述位于NAT后表示所述客户端进行了网络地址转换;
根据所述响应消息和所述客户端的状态,确定所述客户端的类型。
在一种可能的实现方式中,所述处理模块603,具体用于:
若所述第一响应消息携带的第一公网IP地址与所述客户端的本地IP地址相同,则确定所述客户端的状态为位于NAT前;
若所述第一响应消息携带的第一公网IP地址与所述客户端的本地IP地址不相同,则确定所述客户端的状态为位于NAT后。
在一种可能的实现方式中,所述处理模块603,具体用于:
若所述响应消息包括所述第一响应消息和所述第二响应消息,且所述客户端的状态为位于NAT前,则确定所述客户端的类型为:位于NAT前;
若所述响应消息包括所述第一响应消息和所述第二响应消息,且所述客户端的状态为位于NAT后,则确定所述客户端的NAT类型为:完全圆锥型NAT。
在一种可能的实现方式中,所述至少两个测试请求指令还包括:第三测试请求指令和第四测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息、第三响应消息、第四响应消息;
所述第三测试请求指令用于请求所述服务器从所述第一IP地址、所述第二端口反馈第三响应消息;
所述第四测试请求指令用于请求所述服务器从所述第二IP地址、所述第二端口反馈第四响应消息;
其中,所述第三测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第四测试请求指令的目的地址为所述服务器的第二IP地址和服务器的第二端口的端口号;
所述第四响应消息携带所述客户端的第二公网IP地址和第二公网端口。
在一种可能的实现方式中,所述处理模块603,具体用于:
若所述响应消息包括所述第一响应消息和所述第四响应消息,所述客户端的状态为位于NAT后,且所述第一响应消息携带的第一公网IP地址与所述第四响应消息携带的第二公网IP地址不同,则确定所述客户端的NAT类型为:对称型NAT;
若所述响应消息包括所述第一响应消息和所述第四响应消息,所述客户端的状态为位于NAT后,且所述第一响应消息携带的第一公网端口与所述第四响应消息携带的第二公网端口不同,则确定所述客户端的NAT类型为:对称型NAT;
若所述客户端的状态为位于NAT后,所述响应消息包括所述第一响应消息和所述第三响应消息,且所述响应消息不包括所述第二响应消息,则确定所述客户端的NAT类型为:限制圆锥型NAT。
在一种可能的实现方式中,所述处理模块603,还用于:
确定发送所述至少两个测试请求指令的次数是否超过预设次数;
若所述次数超过预设次数,所述客户端的状态为位于NAT前,所述响应消息包括所述第一响应消息,且所述响应消息不包括所述第四响应消息,则确定所述客户端的NAT类型为防火墙限制;
若所述次数超过预设次数,所述客户端的状态为位于NAT后,所述响应消息包括所述第一响应消息和所述第四响应消息,且所述响应消息不包括所述第二响应消息和所述第三响应消息,则确定所述客户端的NAT类型为:端口限制圆锥型NAT。
在一种可能的实现方式中,所述处理模块603,还用于:
若未收到所述服务器返回的响应消息,则确定所述客户端的NAT类型为用户数据报协议UDP不通。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本申请提供的NAT类型的确定装置另一实施例的结构图,如图7所示,本实施例的NAT类型的确定装置,应用于服务器,该装置包括:
接收模块701,用于接收来自所述客户端的至少两个测试请求指令;
处理模块702,用于对客户端发送的至少两个测试请求指令进行并行处理;
发送模块703,用于向所述客户端发送所述至少两个测试请求指令对应的响应消息,所述响应消息用于确定所述客户端的NAT类型。
在一种可能的实现方式中,所述至少两个测试请求指令包括:第一测试请求指令和第二测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息;
所述第一测试请求指令用于请求所述服务器从第一IP地址、第一端口反馈所述第一响应消息;
所述第二测试请求指令用于请求所述服务器从第二IP地址、第二端口反馈所述第二响应消息;
其中,所述第一测试请求指令和所述第二测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第一响应消息携带所述客户端的第一公网IP地址和第一公网端口。
在一种可能的实现方式中,所述至少两个测试请求指令还包括:第三测试请求指令和第四测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息、第三响应消息、第四响应消息;
所述第三测试请求指令用于请求所述服务器从第一IP地址、所述第二端口反馈第三响应消息;
所述第四测试请求指令用于请求所述服务器从第二IP地址、所述第二端口反馈第四响应消息;
其中,所述第三测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第四测试请求指令的目的地址为所述服务器的第二IP地址和服务器的第二端口的端口号;
所述第四响应消息携带所述客户端的第二公网IP地址和第二公网端口。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本申请提供的电子设备实施例的结构图,如图8所示,该电子设备包括:
处理器801,以及,用于存储处理器801的可执行指令的存储器802。
可选的,还可以包括:通信接口803,用于实现与其他设备的通信。
上述部件可以通过一条或多条总线进行通信。
其中,处理器801配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。
该电子设备可以是前述的客户端设备。
图9为本申请提供的服务器实施例的结构图,如图9所示,该服务器包括:
处理器901,以及,用于存储处理器901的可执行指令的存储器902。
可选的,还可以包括:通信接口903,用于实现与其他设备的通信。
上述部件可以通过一条或多条总线进行通信。
其中,处理器901配置为经由执行所述可执行指令来执行前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,此处不再赘述。
本申请实施例中还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述方法实施例中对应的方法,其具体实施过程可以参见前述方法实施例,其实现原理和技术效果类似,此处不再赘述。
本申请实施例中还提供一种网络***,包括:
客户端设备和服务器;
其中,所述服务器用于接收所述客户端发送的至少两个测试请求指令,对所述至少两个测试请求指令进行并行处理,并向所述客户端返回所述至少两个测试请求指令对应的响应消息;
所述客户端用于根据所述至少两个测试请求指令对应的响应消息,确定所述客户端的NAT类型。
本实施例的***,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。

Claims (16)

1.一种网络地址转换NAT类型的确定方法,其特征在于,应用于客户端,所述方法包括:
向服务器发送至少两个测试请求指令;所述服务器用于对所述至少两个测试请求指令进行并行处理;
接收所述服务器返回的所述至少两个测试请求指令对应的响应消息;
根据所述响应消息,确定所述客户端的NAT类型。
2.根据权利要求1所述的方法,其特征在于,所述至少两个测试请求指令包括:第一测试请求指令和第二测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息;
所述第一测试请求指令用于请求所述服务器从第一IP地址、第一端口反馈所述第一响应消息;
所述第二测试请求指令用于请求所述服务器从第二IP地址、第二端口反馈所述第二响应消息;
其中,所述第一测试请求指令和所述第二测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第一响应消息携带所述客户端的第一公网IP地址和第一公网端口。
3.根据权利要求2所述的方法,其特征在于,所述根据所述响应消息,确定所述客户端的NAT类型,包括:
若所述响应消息包括所述第一响应消息,根据所述第一响应消息确定所述客户端的状态,所述客户端的状态为位于NAT前或者位于NAT后,所述位于NAT前表示所述客户端未进行网络地址转换,所述位于NAT后表示所述客户端进行了网络地址转换;
根据所述响应消息和所述客户端的状态,确定所述客户端的类型。
4.根据权利要求3所述的方法,其特征在于,根据所述第一响应消息确定所述客户端的状态,包括:
若所述第一响应消息携带的第一公网IP地址与所述客户端的本地IP地址相同,则确定所述客户端的状态为位于NAT前;
若所述第一响应消息携带的第一公网IP地址与所述客户端的本地IP地址不相同,则确定所述客户端的状态为位于NAT后。
5.根据权利要求3或4所述的方法,其特征在于,根据所述响应消息和所述客户端的状态,确定所述客户端的类型,包括:
若所述响应消息包括所述第一响应消息和所述第二响应消息,且所述客户端的状态为位于NAT前,则确定所述客户端的类型为:位于NAT前;
若所述响应消息包括所述第一响应消息和所述第二响应消息,且所述客户端的状态为位于NAT后,则确定所述客户端的NAT类型为:完全圆锥型NAT。
6.根据权利要求3或4所述的方法,其特征在于,所述至少两个测试请求指令还包括:第三测试请求指令和第四测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息、第三响应消息、第四响应消息;
所述第三测试请求指令用于请求所述服务器从所述第一IP地址、所述第二端口反馈第三响应消息;
所述第四测试请求指令用于请求所述服务器从所述第二IP地址、所述第二端口反馈第四响应消息;
其中,所述第三测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第四测试请求指令的目的地址为所述服务器的第二IP地址和服务器的第二端口的端口号;
所述第四响应消息携带所述客户端的第二公网IP地址和第二公网端口。
7.根据权利要求6所述的方法,其特征在于,根据所述响应消息和所述客户端的状态,确定所述客户端的类型,包括:
若所述响应消息包括所述第一响应消息和所述第四响应消息,所述客户端的状态为位于NAT后,且所述第一响应消息携带的第一公网IP地址与所述第四响应消息携带的第二公网IP地址不同,则确定所述客户端的NAT类型为:对称型NAT;
若所述响应消息包括所述第一响应消息和所述第四响应消息,所述客户端的状态为位于NAT后,且所述第一响应消息携带的第一公网端口与所述第四响应消息携带的第二公网端口不同,则确定所述客户端的NAT类型为:对称型NAT;
若所述客户端的状态为位于NAT后,所述响应消息包括所述第一响应消息和所述第三响应消息,且所述响应消息不包括所述第二响应消息,则确定所述客户端的NAT类型为:限制圆锥型NAT。
8.根据权利要求7所述的方法,其特征在于,还包括:
确定发送所述至少两个测试请求指令的次数是否超过预设次数;
若所述次数超过预设次数,所述客户端的状态为位于NAT前,所述响应消息包括所述第一响应消息,且所述响应消息不包括所述第四响应消息,则确定所述客户端的NAT类型为防火墙限制;
若所述次数超过预设次数,所述客户端的状态为位于NAT后,所述响应消息包括所述第一响应消息和所述第四响应消息,且所述响应消息不包括所述第二响应消息和所述第三响应消息,则确定所述客户端的NAT类型为:端口限制圆锥型NAT。
9.根据权利要求1-4任一项所述的方法,其特征在于,还包括:
若未收到所述服务器返回的响应消息,则确定所述客户端的NAT类型为用户数据报协议UDP不通。
10.一种网络地址转换NAT类型的确定方法,其特征在于,应用于服务器,所述方法包括:
接收来自客户端的至少两个测试请求指令;
对所述客户端发送的至少两个测试请求指令进行并行处理;
向所述客户端发送所述至少两个测试请求指令对应的响应消息,所述响应消息用于确定所述客户端的NAT类型。
11.根据权利要求10所述的方法,其特征在于,所述至少两个测试请求指令包括:第一测试请求指令和第二测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息;
所述第一测试请求指令用于请求所述服务器从第一IP地址、第一端口反馈所述第一响应消息;
所述第二测试请求指令用于请求所述服务器从第二IP地址、第二端口反馈所述第二响应消息;
其中,所述第一测试请求指令和所述第二测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第一响应消息携带所述客户端的第一公网IP地址和第一公网端口。
12.根据权利要求10或11所述的方法,其特征在于,所述至少两个测试请求指令还包括:第三测试请求指令和第四测试请求指令;所述至少两个测试请求指令对应的响应消息包括以下至少一项:第一响应消息、第二响应消息、第三响应消息、第四响应消息;
所述第三测试请求指令用于请求所述服务器从第一IP地址、第二端口反馈第三响应消息;
所述第四测试请求指令用于请求所述服务器从第二IP地址、所述第二端口反馈第四响应消息;
其中,所述第三测试请求指令的目的地址为所述服务器的第一IP地址和服务器的第一端口的端口号;所述第四测试请求指令的目的地址为所述服务器的第二IP地址和服务器的第二端口的端口号;
所述第四响应消息携带所述客户端的第二公网IP地址和第二公网端口。
13.一种网络***,其特征在于,包括:
客户端设备和服务器;
其中,所述服务器用于接收所述客户端发送的至少两个测试请求指令,对所述至少两个测试请求指令进行并行处理,并向所述客户端返回所述至少两个测试请求指令对应的响应消息;
所述客户端用于根据所述至少两个测试请求指令对应的响应消息,确定所述客户端的NAT类型。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-12任一项所述的方法。
15.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-9任一项所述的方法。
16.一种服务器,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求10-12任一项所述的方法。
CN202010805783.6A 2020-08-12 2020-08-12 Nat类型的确定方法、设备、***和存储介质 Active CN111935333B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010805783.6A CN111935333B (zh) 2020-08-12 2020-08-12 Nat类型的确定方法、设备、***和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010805783.6A CN111935333B (zh) 2020-08-12 2020-08-12 Nat类型的确定方法、设备、***和存储介质

Publications (2)

Publication Number Publication Date
CN111935333A true CN111935333A (zh) 2020-11-13
CN111935333B CN111935333B (zh) 2022-09-27

Family

ID=73311145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010805783.6A Active CN111935333B (zh) 2020-08-12 2020-08-12 Nat类型的确定方法、设备、***和存储介质

Country Status (1)

Country Link
CN (1) CN111935333B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080259943A1 (en) * 2007-04-20 2008-10-23 Matsushita Electric Industrial Co., Ltd. Ip communication apparatus and nat type determination method by the same
US20090323632A1 (en) * 2008-06-27 2009-12-31 Nix John A Efficient Handover of Media Communications in Heterogeneous IP Networks using LAN Profiles and Network Handover Rules
US20100146099A1 (en) * 2008-12-04 2010-06-10 Microsoft Corporation Network Address Translators (NAT) Type Detection Techniques
CN102196057A (zh) * 2010-03-03 2011-09-21 腾讯科技(深圳)有限公司 一种确定nat类型的方法及装置
US20130170471A1 (en) * 2008-09-12 2013-07-04 Google Inc. Efficient handover of media communications in heterogeneous ip networks using handover procedure rules and media handover relays
CN105049300A (zh) * 2015-08-28 2015-11-11 北京奇艺世纪科技有限公司 一种检测nat网络类型的方法及装置
CN105187567A (zh) * 2015-06-24 2015-12-23 东莞市南星电子有限公司 一种基于sip和ice的音视频通信方法
CN105610999A (zh) * 2016-03-30 2016-05-25 上海斐讯数据通信技术有限公司 一种通过穿透nat实现p2p通信的方法、设备、服务器及***

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080259943A1 (en) * 2007-04-20 2008-10-23 Matsushita Electric Industrial Co., Ltd. Ip communication apparatus and nat type determination method by the same
US20090323632A1 (en) * 2008-06-27 2009-12-31 Nix John A Efficient Handover of Media Communications in Heterogeneous IP Networks using LAN Profiles and Network Handover Rules
US20130170471A1 (en) * 2008-09-12 2013-07-04 Google Inc. Efficient handover of media communications in heterogeneous ip networks using handover procedure rules and media handover relays
US20100146099A1 (en) * 2008-12-04 2010-06-10 Microsoft Corporation Network Address Translators (NAT) Type Detection Techniques
CN102196057A (zh) * 2010-03-03 2011-09-21 腾讯科技(深圳)有限公司 一种确定nat类型的方法及装置
CN105187567A (zh) * 2015-06-24 2015-12-23 东莞市南星电子有限公司 一种基于sip和ice的音视频通信方法
CN105049300A (zh) * 2015-08-28 2015-11-11 北京奇艺世纪科技有限公司 一种检测nat网络类型的方法及装置
CN105610999A (zh) * 2016-03-30 2016-05-25 上海斐讯数据通信技术有限公司 一种通过穿透nat实现p2p通信的方法、设备、服务器及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐颖等: "基于UDP的端对端通讯的原理及实现", 《北京航空航天大学学报》 *

Also Published As

Publication number Publication date
CN111935333B (zh) 2022-09-27

Similar Documents

Publication Publication Date Title
CN109831547B (zh) Nat穿透方法、装置、设备及存储介质
US8478891B1 (en) Employing socket ranges to ascertain layer 2 addresses
CN111131544B (zh) 一种实现nat穿越的方法
CN109525684B (zh) 报文转发方法和装置
CN102196057A (zh) 一种确定nat类型的方法及装置
CN110012118B (zh) 一种提供网络地址转换nat服务的方法及控制器
CN112040030A (zh) 报文传输方法、装置、计算机设备及存储介质
CN106375491A (zh) 一种发现网络设备的方法、装置及***
US9992159B2 (en) Communication information detecting device and communication information detecting method
RU2019113321A (ru) Системы и способы обнаружения вспомогательной сети для кластерных систем на основе нулевой конфигурации
US20200213233A1 (en) Balancing load
CN107800745B (zh) 基于mDNS进行服务宣告和服务发现的方法、装置和计算机可读存储介质
CN111711705A (zh) 基于代理节点作双向nat实现网络连接的方法和装置
CN114189492A (zh) 一种基于网络地址转换技术的网卡压力测试方法和***
US20230269216A1 (en) Communication method and apparatus
CN111935333B (zh) Nat类型的确定方法、设备、***和存储介质
WO2017219816A1 (zh) 一种数据传输方法、网络地址转换设备
US20150212914A1 (en) Methods, systems, and computer readable media for testing network devices using simulated application traffic
CN106789666B (zh) 一种确定转换后端口的方法和装置
US20100238930A1 (en) Router and method of forwarding ipv6 packets
CN113676409B (zh) 一种报文转发方法、装置、电子设备以及存储介质
CN109842692A (zh) 用于获得物理网络中主机信息的VxLAN交换机、***和方法
CN115022281A (zh) 一种nat穿透的方法、客户端及***
CN114979065A (zh) 一种提高源nat地址转换有效性的方法及装置
CN112019641B (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