CN107317869B - 一种节点nat类型探测方法、装置以及系统 - Google Patents
一种节点nat类型探测方法、装置以及系统 Download PDFInfo
- Publication number
- CN107317869B CN107317869B CN201710544927.5A CN201710544927A CN107317869B CN 107317869 B CN107317869 B CN 107317869B CN 201710544927 A CN201710544927 A CN 201710544927A CN 107317869 B CN107317869 B CN 107317869B
- Authority
- CN
- China
- Prior art keywords
- port
- detection
- server
- node
- response message
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供了一种节点NAT类型探测方法、装置以及系统,其中,该系统包括:第一服务器、第二服务器以及节点;第一服务器上有第一网卡;第一网卡上有第一端口以及第二端口;第二服务器上有第二网卡;第二网卡上有第三端口和第四端口;第一服务器用于接收节点所发送的探测消息;所述探测消息中携带有探测种类,第一服务器根据探测种类通过第一端口或者第二端口向节点发送响应消息,或者第一服务器将探测消息转发给第二服务器;第二服务器接收探测消息,并根据探测种类通过第三端口或者第四端口向节点发送响应消息;该系统成本更低,部署难度更小。
Description
技术领域
本发明涉及P2P(Peer-to-peer,点对点)传输技术领域,具体而言,涉及一种节点NAT类型探测方法、装置以及系统。
背景技术
随着互联网的发展,P2P(Peer-to-peer,点对点)传输技术有了越来越多的应用,采用P2P技术可以创建节点(节点,又称种子)与点之间的数据传输通道,数据可以直接在节点之间交互,而不需要通过服务器中转。这样可以节约大量的网络带宽,降低互联网企业的带宽成本和运营成本。
在P2P系统中,每个节点都要向云端上报自己的NAT(Network AddressTranslation,网络地址转换)类型,因此需要节点通过NAT探测步骤获知自身的NAT类型,然后上报给云端。节点有多种不同类型,而为了实现节点类型的探测,则要求一台服务器具有两个网卡,两个网卡都具有公网IP地址,且每个网卡上均有两个端口,两个端口具备不同的端口号,因此,最终的四个端口具有不同的地址;该地址包括IP地址以及端口号。节点在探测过程中,会要求服务器用不同的地址进行响应,节点根据是否能接收到响应,以及对比各个响应详细中所包含的节点外网IP地址、节点外网端口号是否相同,来确定自身的NAT类型。
然而这种服务器由于需要两个网卡,且会在节点探测过程不断的对节点进行响应,并频繁的实现响应端口、网卡的切换,需要的数据处理量比较大,导致其需要较高的配置才能够满足需要,成本高,且部署难度大。
发明内容
有鉴于此,本发明实施例的目的在于提供一种节点NAT类型探测方法、装置以及系统,能够以更低的成本、更低的部署难度完成对节点的NAT类型的探测。
第一方面,本发明实施例提供了一种节点NAT类型探测系统,包括:第一服务器、第二服务器以及节点;
所述第一服务器上设置有第一网卡;所述第一网卡上设置有第一端口以及第二端口;
所述第二服务器上设置有第二网卡;所述第二网卡上设置有第三端口和第四端口;
其中,第一端口和第三端口的端口号相同,第二端口和第四端口的端口号相同;
所述第一服务器用于接收节点所发送的探测消息;所述探测消息中携带有探测种类,用于所述第一服务器根据所述探测种类通过第一端口或者第二端口向节点发送响应消息,或者用于所述第一服务器将所述探测消息转发给所述第二服务器;
所述第二服务器用于接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息;
所述节点用于向第一服务器发送所述探测消息;所述探测消息中携带有探测种类,用于所述第一服务器或者所述第二服务器返回相应的响应消息;根据响应消息的接收情况判断自身的网络地址转换NAT类型。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中:所述探测种类包括:原址返回;
所述第一服务器具体用于:从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第一端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第一端口的端口号。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中:所述探测种类包括:切换端口;
所述第一服务器具体用于:从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第二端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第二端口的端口号。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中:所述探测种类包括:切换IP地址;
所述第一服务器具体用于:从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器具体用于:接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第三端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第三端口的端口号。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中:所述探测种类包括:切换IP及端口号;
所述第一服务器具体用于:从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器具体用于:接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第四端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第四端口的端口号。
第二方面,本发明实施例还提供一种节点NAT类型探测方法,该方法应用于包括:第一服务器、第二服务器以及节点构成的节点NAT类型探测系统中;其中,所述第一服务器上设置有第一网卡;所述第一网卡上设置有第一端口以及第二端口;所述第二服务器上设置有第二网卡;所述第二网卡上设置有第三端口和第四端口;第一端口和第三端口的端口号相同,第二端口和第四端口的端口号相同;该方法具体包括:
节点向第一服务器发送探测消息;所述探测消息中携带有探测种类;
所述第一服务器根据所述探测种类通过第一端口或者第二端口向节点发送响应消息,或者将所述探测消息转发给所述第二服务器;
所述第二服务器接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息;
所述节点根据响应消息的接收情况判断自身的网络地址转换NAT类型。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中:
所述探测种类包括:原址返回、切换端口、切换IP地址、切换IP及端口号中至少一种;
当所述探测种类包括原址返回时:
所述第一服务器根据所述探测种类通过第一端口向节点发送响应消息,具体包括:
所述第一服务器从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;
所述第一服务器将所述响应消息通过所述第一端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第一端口的端口号;
当所述探测种类包括切换端口时:
所述第一服务器根据所述探测种类通过第二端口向节点发送响应消息,具体包括:
所述第一服务器从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;
所述第一服务器所述响应消息通过所述第二端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第二端口的端口号;
当所述探测种类包括切换IP地址时:
所述第一服务器根据所述探测种类将所述探测消息转发给所述第二服务器,具体包括:
所述第一服务器从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息具体包括:
所述第二服务器接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第三端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第三端口的端口号。
当所述探测种类包括:切换IP及端口号时:
所述第一服务器根据所述探测种类将所述探测消息转发给所述第二服务器,具体包括:
所述第一服务器从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息具体包括:
所述第二服务器接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;
所述第二服务器将所述响应消息通过所述第四端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第四端口的端口号。
第三方面,本发明实施例还提供一种节点NAT类型探测方法,包括:
接收节点所发送的探测消息;所述探测消息中携带有探测种类;
根据所述探测种类对节点进行响应:
通过第一网卡上设置的第一端口或者第二端口向节点发送响应消息;或者将所述探测消息转发至所述第二服务器,以使所述第二服务器根据所述探测种类,通过第二网卡上设置的第三端口或者第四端口向节点发送响应消息;
所述第一端口和第三端口的端口号相同;所述第二端口和第四端口的端口号相同。
结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中:当所述探测种类包括:原址返回,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第一端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第一端口的端口号;
当所述探测种类包括:切换端口,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第二端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第二端口的端口号;
当所述探测种类包括:切换IP地址,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器,以使所述第二服务器根据所述探测种类生成响应消息,并将所述响应消息通过所述第三端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第三端口的端口号;
当所述探测种类包括:切换IP及端口号,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器,以使所述第二服务器根据所述探测种类生成响应消息,并将所述响应消息通过所述第四端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第四端口的端口号。
第四方面,本发明实施例还提供一种节点NAT类型探测装置,包括:
探测消息接收装置,用于接收节点所发送的探测消息;所述探测消息中携带有探测种类;
探测消息响应装置,用于根据所述探测种类,通过第一网卡上设置的第一端口或者第二端口向节点发送响应消息;或者将所述探测消息转发至所述第二服务器,以使所述第二服务器根据所述探测种类,通过第二网卡上设置的第三端口或者第四端口想节点发送响应消息。
第五方面,本发明实施例还提供一种节点NAT类型探测方法,包括:
接收第一服务器转发的探测消息;所述探测消息中携带有探测种类;
根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息。
第六方面,本发明实施例还提供一种节点NAT类型探测方法,包括:
向第一服务器发送所述探测消息;所述探测消息中携带有探测种类;
接收第一服务器或者第二服务器返回相应的响应消息;
根据响应消息的接收情况判断自身的网络地址转换NAT类型。
本发明实施例所提供的节点NAT类型探测方法、装置以及系统,包括了第一服务器和第二服务器,第一服务器上设置了第一网卡,第一网卡上设置有第一端口和第二端口;第二服务器上设置了第二网卡,第二网卡上设置有第三端口和第四端口。当节点向第一服务器发送了探测消息后,会根据探测消息中所携带的探测种类的不同,通过第一端口或者第二端口向节点发送响应消息,或者用于所述第一服务器将所述探测消息转发给所述第二服务器;且第二服务器会在接收到第一服务器转发的探测消息后,根据探测种类的不同,通过第三端口或者第四端口向节点发送响应消息。而节点则根据响应消息的接收情况判断自身的NAT类型,在该系统中,采用了两个服务器完成了探测的需要,单个服务器需要处理的数据量少,因此每个服务器的数据处理压力都大大降低,因而成本更低;同时,两台服务器每一台服务器均设置一个网卡,较之现有技术中一台服务器设置两个网卡,部署难度更小。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的一种节点NAT类型探测系统的结构示意图;
图2示出了本发明实施例所提供的一种节点NAT类型探测方法的流程图;
图3示出了本发明实施例所提供的另一种节点NAT类型探测方法的流程图;
图4示出了本发明实施例所提供的一种节点NAT类型探测装置的结构示意图;
图5示出了本发明实施例所提供的另一种节点NAT类型探测方法的流程图;
图6示出了本发明实施例所提供的另一种节点NAT类型探测装置的结构示意图;
图7示出了本发明实施例所提供的另一种节点NAT类型探测方法的流程图;
图8示出了本发明实施例所提供的另一种节点NAT类型探测装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前在P2P系统中,节点需要先通过NAT探测步骤获知自身的NAT类型,然后将NAT类型上报至云端。节点的NAT类型包括:1、公网(Public Network);2、完全锥型(Full coneNAT);3、IP受限制锥形(Address-Restricted cone NAT);4、端口限制锥形(Port-Restricted cone NAT);5、对称型(Symmetric NAT);6、阻止UDP型防火墙(无法使用UDP穿透和中转)以及;7、对称型UDP防火墙(无法使用UDP穿透,可以中转),其中,第1和第2类被认为是优质节点,它们很容易和对端创建点对点的直接连接数据通道,当一个节点peer想云端请求种子资源时,云端会有限将这些节点分配下去;第3和第4类被认为是普通节点,而第5、6、7类则被认为是差种子,差种子比较难以和对端建立直接数据通道,是偶能够穿透成功取决于对端是否为优质种子,因此,差种子一般通过服务器中转方式来和其他种子交换数据。
节点有多种不同类型,而为了实现节点类型的探测,则要求一台服务器具有两个网卡,两个网卡都具有公网IP地址,且每个网卡上均有两个端口,两个端口具备不同的端口号,因此,最终的四个端口具有不同的地址;该地址包括IP地址以及端口号。节点在探测过程中,会要求服务器用不同的地址进行响应,节点根据是否能接收到响应,以及对比各个响应详细中所包含的节点外网IP地址、节点外网端口号是否相同,来确定自身的NAT类型。但是实际上,这种服务器需要两个网卡,且在节点的探测过程中不断对节点进行响应,生成响应的响应消息发送给节点,需要处理的数据量较大,因此服务器需要较高的配置才能够满足需求,成本高,且两个网卡在同一个服务器中的部署难度比较大,基于此,本申请提供的一种节点NAT类型探测方法、装置以及系统,能够以更低的成本、更低的部署难度完成对节点的NAT类型的探测。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种节点NAT类型探测系统进行详细介绍。
参见图1所示,本发明实施例所提供的节点NAT类型探测系统包括:第一服务器、第二服务器以及节点;
所述第一服务器上设置有第一网卡;所述第一网卡上设置有第一端口以及第二端口;
所述第二服务器上设置有第二网卡;所述第二网卡上设置有第三端口和第四端口;
其中,第一端口和第三端口的端口号相同,第二端口和第四端口的端口号相同;
所述第一服务器用于接收节点所发送的探测消息;所述探测消息中携带有探测种类,用于所述第一服务器根据所述探测种类通过第一端口或者第二端口向节点发送响应消息,或者用于所述第一服务器将所述探测消息转发给所述第二服务器;
所述第二服务器用于接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息;
所述节点用于向第一服务器发送所述探测消息;所述探测消息中携带有探测种类,用于所述第一服务器或者所述第二服务器返回相应的响应消息;根据响应消息的接收情况判断自身的网络地址转换NAT类型。
本发明实施例所提供的节点NAT类型探测系统,包括了两个服务器,即第一服务器和第二服务器。第一服务器上设置了第一网卡,第一网卡上设置有第一端口和第二端口;第二服务器上设置了第二网卡,第二网卡上设置有第三端口和第四端口。当节点向第一服务器发送了探测消息后,第一服务器通过第一端口接收到该探测消息,并对该探测消息进行解析,获取到探测消息中所携带的探测种类。该探测种类实际上指示了第一服务器应当按照何种方式向节点返回响应消息,因此第一服务器在解析到该探测种类之后,按照该探测种类进行后续的响应消息返回操作:
1、如果该探测消息要求原址返回响应消息,则第一服务器从第一端口返回相应的响应消息。
2、如果该探测消息要求切换端口返回响应消息,则第一服务器从第二端口返回相应的响应消息。
3、如果该探测消息要求切换IP地址返回响应消息,则第一服务器将探测消息根据其与第二服务器之间的通讯协议,打包成数据包,并发送给第二服务器。第二服务器则在接收到该数据包后,将探测种类从中解析出来,然后根据该探测种类,从第二服务器的第三端口向节点返回响应消息。
4、如果该探测消息要求切换IP地址以及切换端口号返回响应消息,则第一服务器同样将探测消息转发给第二服务器,第二服务器根据探测消息所携带的探测种类,通过第四端口将响应消息返回给节点。
节点在探测过程中,通过探测消息要求服务器用不同的地址进行响应,最终能够根据能否接收到相应的响应。以及对比各个响应消息中所包含的IP地址和端口号是否相同,来获知自己的NAT类型。
需要注意的是,当节点进行NAT网络的探测时,探测消息可能只发送一次,便能够得到最终的探测结果,探测消息也可能发送多次,才能够得到最终的探测结果。
具体地,所述探测种类包括:原址返回;
所述第一服务器具体用于:从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第一端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第一端口的端口号。
所述探测种类包括:切换端口;
所述第一服务器具体用于:从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第二端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第二端口的端口号。
所述探测种类包括:切换IP地址;
所述第一服务器具体用于:从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器具体用于:接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第三端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第三端口的端口号。
所述探测种类包括:切换IP及端口号;
所述第一服务器具体用于:从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器具体用于:接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第四端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第四端口的端口号。
另外,需要注意的是,节点向第一服务器所发送的探测消息,会被封装成数据包的格式,在数据包中,还携带了源IP地址和源端口号。其中,如果节点可以是直接与服务器进行通信的节点,那么该源IP地址即为该节点的IP地址;如果该节点被布设在某个局域网内,该局域网具有一个IP地址以及发出消息相应的端口号,在该局域网内所有的节点发出的消息均需要进行再一次的封装,源IP地址则应当为该局域网的IP地址,源端口号为该局域网发出消息的端口号。而在第一服务器或者第二服务器向节点所返回的响应消息中,将该源IP地址,作为响应消息的目的IP地址,将该源端口号,作为响应消息的目的端口号。
本发明实施例所提供的节点NAT类型探测系统中,包括了第一服务器和第二服务器,第一服务器上设置了第一网卡,第一网卡上设置有第一端口和第二端口;第二服务器上设置了第二网卡,第二网卡上设置有第三端口和第四端口。当节点向第一服务器发送了探测消息后,会根据探测消息中所携带的探测种类的不同,通过第一端口或者第二端口向节点发送响应消息,或者用于所述第一服务器将所述探测消息转发给所述第二服务器;且第二服务器会在接收到第一服务器转发的探测消息后,根据探测种类的不同,通过第三端口或者第四端口向节点发送响应消息。而节点则根据响应消息的接收情况判断自身的NAT类型,在该系统中,采用了两个服务器完成了探测的需要,单个服务器需要处理的数据量少,因此每个服务器的数据处理压力都大大降低,因而成本更低;同时,两台服务器每一台服务器均设置一个网卡,较之现有技术中一台服务器设置两个网卡,部署难度更小。
参见图2所示,本发明实施例又提供一种节点NAT类型探测方法,该方法应用于包括:第一服务器、第二服务器以及节点构成的节点NAT类型探测系统中;其中,所述第一服务器上设置有第一网卡;所述第一网卡上设置有第一端口以及第二端口;所述第二服务器上设置有第二网卡;所述第二网卡上设置有第三端口和第四端口;第一端口和第三端口的端口号相同,第二端口和第四端口的端口号相同;该方法具体包括:
S201:节点向第一服务器发送探测消息;所述探测消息中携带有探测种类;
S202:所述第一服务器根据所述探测种类通过第一端口或者第二端口向节点发送响应消息,
S203:所述第一服务器根据所述探测种类将所述探测消息转发给所述第二服务器;或者,所述第二服务器接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息;
S204:所述节点根据响应消息的接收情况判断自身的网络地址转换NAT类型。
S201-S204的具体实施可参见图1对应的实施例的记载,在此不再赘述。
本发明实施例所提供的点NAT类型探测方法中,节点向第一服务器发送了探测消息后,会根据探测消息中所携带的探测种类的不同,通过第一端口或者第二端口向节点发送响应消息,或者用于所述第一服务器将所述探测消息转发给所述第二服务器;且第二服务器会在接收到第一服务器转发的探测消息后,根据探测种类的不同,通过第三端口或者第四端口向节点发送响应消息。而节点则根据响应消息的接收情况判断自身的NAT类型,在该系统中,采用了两个服务器完成了探测的需要,单个服务器需要处理的数据量少,因此每个服务器的数据处理压力都大大降低,因而成本更低;同时,两台服务器每一台服务器均设置一个网卡,较之现有技术中一台服务器设置两个网卡,部署难度更小。
其中,在该实施例基础上,所述探测种类包括:原址返回、切换端口、切换IP地址、切换IP及端口号中至少一种;
当所述探测种类包括原址返回时:
所述第一服务器根据所述探测种类通过第一端口向节点发送响应消息,具体包括:
所述第一服务器从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;
所述第一服务器将所述响应消息通过所述第一端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第一端口的端口号;
当所述探测种类包括切换端口时:
所述第一服务器根据所述探测种类通过第二端口向节点发送响应消息,具体包括:
所述第一服务器从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;
所述第一服务器所述响应消息通过所述第二端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第二端口的端口号;
当所述探测种类包括切换IP地址时:
所述第一服务器根据所述探测种类将所述探测消息转发给所述第二服务器,具体包括:
所述第一服务器从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息具体包括:
所述第二服务器接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第三端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第三端口的端口号。
当所述探测种类包括:切换IP及端口号时:
所述第一服务器根据所述探测种类将所述探测消息转发给所述第二服务器,具体包括:
所述第一服务器从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息具体包括:
所述第二服务器接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;
所述第二服务器将所述响应消息通过所述第四端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第四端口的端口号。
参见图3所示,本发明实施例又提供一种节点NAT类型探测方法,该方法的执行主体是第一服务器,包括:
S301:接收节点所发送的探测消息;所述探测消息中携带有探测种类;
S302:根据所述探测种类对节点进行响应:
通过第一网卡上设置的第一端口或者第二端口向节点发送响应消息;或者将所述探测消息转发至所述第二服务器,以使所述第二服务器根据所述探测种类,通过第二网卡上设置的第三端口或者第四端口向节点发送响应消息;
所述第一端口和第三端口的端口号相同;所述第二端口和第四端口的端口号相同。
S301-S303的具体实施可参见图1对应的实施例的记载,在此不再赘述。
本发明实施例提供的节点NAT类型探测方法,第一服务器在接收到节点所发送的探测消息之后,根据其所携带的探测种类的不同,通过第一网卡上设置的第一端口或者第二端口向节点发送响应消息;或者将所述探测消息转发至所述第二服务器,以使所述第二服务器根据所述探测种类,通过第二网卡上设置的第三端口或者第四端口向节点发送响应消息,进而完成节点NAT类型的探测。在该方法中,两台服务器分别部署一个网卡,较之现有技术部署难度更小,且由于数据处理被分散到两个服务器,对服务器的配置要求更低,成本更少。
具体地,当所述探测种类包括:原址返回,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第一端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第一端口的端口号;
当所述探测种类包括:切换端口,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第二端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第二端口的端口号;
当所述探测种类包括:切换IP地址,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器,以使所述第二服务器根据所述探测种类生成响应消息,并将所述响应消息通过所述第三端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第三端口的端口号;
当所述探测种类包括:切换IP及端口号,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器,以使所述第二服务器根据所述探测种类生成响应消息,并将所述响应消息通过所述第四端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第四端口的端口号。
参见图4所示,本发明实施例还提供一种节点NAT类型探测装置,包括:
探测消息接收装置,用于接收节点所发送的探测消息;所述探测消息中携带有探测种类;
探测消息响应装置,用于根据所述探测种类,通过第一网卡上设置的第一端口或者第二端口向节点发送响应消息;或者将所述探测消息转发至所述第二服务器,以使所述第二服务器根据所述探测种类,通过第二网卡上设置的第三端口或者第四端口想节点发送响应消息。
本实施例中,探测消息接收装置、探测消息响应装置的具体功能和交互方式,可参见图1对应的实施例的记载,在此不再赘述。
参见图5所示,本发明实施例还提供一种节点NAT类型探测方法,该方法的执行主体为第二服务器,包括:
S501:接收第一服务器转发的探测消息;所述探测消息中携带有探测种类;
S502:根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息。
S501-S502的具体实施可参见图1对应的实施例的记载,在此不再赘述。
参见图6所示,本发明实施例还提供一种节点NAT类型探测装置,包括:
转发消息接收装置,用于接收第一服务器转发的探测消息;所述探测消息中携带有探测种类;
第二探测消息响应装置,用于根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息。
本实施例中,转发消息接收装置、第二探测消息响应装置的具体功能和交互方式,可参见图1对应的实施例的记载,在此不再赘述。
参见图7所示,本发明实施例还提供一种节点NAT类型探测方法,该方法的执行主体为节点,包括:
S701:向第一服务器发送所述探测消息;所述探测消息中携带有探测种类;
S702:接收第一服务器或者第二服务器返回相应的响应消息;
S703:根据响应消息的接收情况判断自身的网络地址转换NAT类型。
其中,S701-S703的具体实施可参见图1对应的实施例的记载,在此不再赘述。
参见图8所示,本发明实施例还提供一种节点NAT类型探测装置,包括:
探测消息发送装置,用于向第一服务器发送所述探测消息;所述探测消息中携带有探测种类;
响应接收装置,用于接收第一服务器或者第二服务器返回相应的响应消息;
类型判断装置,用于根据响应消息的接收情况判断自身的网络地址转换NAT类型。
本实施例中,探测消息发送装置、响应接收装置和类型判断装置的具体功能和交互方式,可参见图1饿图2对应的实施例的记载,在此不再赘述。
本发明实施例所提供的节点NAT类型探测方法、装置以及系统的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种节点NAT类型探测系统,其特征在于,包括:第一服务器、第二服务器以及节点;
所述第一服务器上设置有第一网卡;所述第一网卡上设置有第一端口以及第二端口;
所述第二服务器上设置有第二网卡;所述第二网卡上设置有第三端口和第四端口;
其中,第一端口和第三端口的端口号相同,第二端口和第四端口的端口号相同;
所述第一服务器用于接收节点所发送的探测消息;所述探测消息中携带有探测种类,用于所述第一服务器根据所述探测种类通过第一端口或者第二端口向节点发送响应消息,或者用于所述第一服务器将所述探测消息转发给所述第二服务器;其中,所述探测种类用于指示第一服务器向节点返回响应消息的具体方式;所述探测种类包括:原址返回、切换端口、切换IP地址、切换IP及端口号;
所述第二服务器用于接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息;
所述节点用于向第一服务器发送所述探测消息;所述探测消息中携带有探测种类,用于所述第一服务器或者所述第二服务器返回相应的响应消息;根据响应消息的接收情况判断自身的网络地址转换NAT类型。
2.根据权利要求1所述的节点NAT类型探测系统,其特征在于,所述探测种类包括:原址返回;
所述第一服务器具体用于:从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第一端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第一端口的端口号。
3.根据权利要求1所述的节点NAT类型探测系统,其特征在于,所述探测种类包括:切换端口;
所述第一服务器具体用于:从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第二端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第二端口的端口号。
4.根据权利要求1所述的节点NAT类型探测系统,其特征在于,所述探测种类包括:切换IP地址;
所述第一服务器具体用于:从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器具体用于:接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第三端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第三端口的端口号。
5.根据权利要求1所述的节点NAT类型探测系统,其特征在于,所述探测种类包括:切换IP及端口号;
所述第一服务器具体用于:从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器具体用于:接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第四端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第四端口的端口号。
6.一种节点NAT类型探测方法,其特征在于,该方法应用于包括:第一服务器、第二服务器以及节点构成的节点NAT类型探测系统中;其中,所述第一服务器上设置有第一网卡;所述第一网卡上设置有第一端口以及第二端口;所述第二服务器上设置有第二网卡;所述第二网卡上设置有第三端口和第四端口;第一端口和第三端口的端口号相同,第二端口和第四端口的端口号相同;该方法具体包括:
节点向第一服务器发送探测消息;所述探测消息中携带有探测种类;所述探测种类用于指示第一服务器向节点返回响应消息的具体方式;所述探测种类包括:原址返回、切换端口、切换IP地址、切换IP及端口号;
所述第一服务器根据所述探测种类通过第一端口或者第二端口向节点发送响应消息,或者将所述探测消息转发给所述第二服务器;
所述第二服务器接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息;
所述节点根据响应消息的接收情况判断自身的网络地址转换NAT类型。
7.根据权利要求6所述的节点NAT类型探测方法,其特征在于,所述探测种类包括:原址返回、切换端口、切换IP地址、切换IP及端口号中至少一种;
当所述探测种类包括原址返回时:
所述第一服务器根据所述探测种类通过第一端口向节点发送响应消息,具体包括:
所述第一服务器从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;
所述第一服务器将所述响应消息通过所述第一端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第一端口的端口号;
当所述探测种类包括切换端口时:
所述第一服务器根据所述探测种类通过第二端口向节点发送响应消息,具体包括:
所述第一服务器从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;
所述第一服务器所述响应消息通过所述第二端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第二端口的端口号;
当所述探测种类包括切换IP地址时:
所述第一服务器根据所述探测种类将所述探测消息转发给第二服务器,具体包括:
所述第一服务器从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息具体包括:
所述第二服务器接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第三端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第三端口的端口号;
当所述探测种类包括:切换IP及端口号时:
所述第一服务器根据所述探测种类将所述探测消息转发给所述第二服务器,具体包括:
所述第一服务器从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器;
所述第二服务器接收所述第一服务器转发的探测消息,并根据所述探测种类,通过第三端口或者第四端口向节点发送响应消息具体包括:
所述第二服务器接收第一服务器所发送的探测消息,并根据所述探测种类生成响应消息;
所述第二服务器将所述响应消息通过所述第四端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第四端口的端口号。
8.一种节点NAT类型探测方法,其特征在于,包括:
接收节点所发送的探测消息;所述探测消息中携带有探测种类;所述探测种类包括:原址返回、切换端口、切换IP地址、切换IP及端口号;
根据所述探测种类对节点进行响应:
通过第一网卡上设置的第一端口或者第二端口向节点发送响应消息;或者将所述探测消息转发至第二服务器,以使所述第二服务器根据所述探测种类,通过第二网卡上设置的第三端口或者第四端口向节点发送响应消息;
所述第一端口和第三端口的端口号相同;所述第二端口和第四端口的端口号相同。
9.根据权利要求8所述的节点NAT类型探测方法,其特征在于,当所述探测种类包括:原址返回,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第一端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第一端口的端口号;
当所述探测种类包括:切换端口,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并根据所述探测种类生成响应消息;将所述响应消息通过所述第二端口返回至节点;所述响应消息中包括:第一网卡的IP地址以及第二端口的端口号;
当所述探测种类包括:切换IP地址,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器,以使所述第二服务器根据所述探测种类生成响应消息,并将所述响应消息通过所述第三端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第三端口的端口号;
当所述探测种类包括:切换IP及端口号,所述根据所述探测种类向节点发送响应消息,具体包括:
从第一端口接收所述探测消息,并将所述探测消息转发至第二服务器,以使所述第二服务器根据所述探测种类生成响应消息,并将所述响应消息通过所述第四端口返回至节点;所述响应消息中包括:第二网卡的IP地址以及第四端口的端口号。
10.一种节点NAT类型探测装置,其特征在于,包括:
探测消息接收装置,用于接收节点所发送的探测消息;所述探测消息中携带有探测种类;其中,所述探测种类用于指示向节点返回响应消息的具体方式;所述探测种类包括:原址返回、切换端口、切换IP地址、切换IP及端口号;
探测消息响应装置,用于根据所述探测种类,通过第一网卡上设置的第一端口或者第二端口向节点发送响应消息;或者将所述探测消息转发至第二服务器,以使所述第二服务器根据所述探测种类,通过第二网卡上设置的第三端口或者第四端口想节点发送响应消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710544927.5A CN107317869B (zh) | 2017-07-06 | 2017-07-06 | 一种节点nat类型探测方法、装置以及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710544927.5A CN107317869B (zh) | 2017-07-06 | 2017-07-06 | 一种节点nat类型探测方法、装置以及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107317869A CN107317869A (zh) | 2017-11-03 |
CN107317869B true CN107317869B (zh) | 2020-09-04 |
Family
ID=60180646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710544927.5A Active CN107317869B (zh) | 2017-07-06 | 2017-07-06 | 一种节点nat类型探测方法、装置以及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107317869B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111193794A (zh) * | 2019-12-30 | 2020-05-22 | 深圳市网心科技有限公司 | 文件传输方法、装置、计算机设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102196057A (zh) * | 2010-03-03 | 2011-09-21 | 腾讯科技(深圳)有限公司 | 一种确定nat类型的方法及装置 |
CN105635346A (zh) * | 2016-03-31 | 2016-06-01 | 北京奇艺世纪科技有限公司 | 一种nat网络类型检测方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI257217B (en) * | 2003-11-10 | 2006-06-21 | Inst Information Industry | Method to detect the form of network address translation |
CN101651721B (zh) * | 2008-08-14 | 2013-11-27 | 百度在线网络技术(北京)有限公司 | 网络地址转换设备类型的判断方法和系统 |
CN101938532B (zh) * | 2010-09-17 | 2013-07-24 | 北京神州泰岳软件股份有限公司 | 基于udp的穿越nat设备的方法及系统 |
-
2017
- 2017-07-06 CN CN201710544927.5A patent/CN107317869B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102196057A (zh) * | 2010-03-03 | 2011-09-21 | 腾讯科技(深圳)有限公司 | 一种确定nat类型的方法及装置 |
CN105635346A (zh) * | 2016-03-31 | 2016-06-01 | 北京奇艺世纪科技有限公司 | 一种nat网络类型检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107317869A (zh) | 2017-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101727234B1 (ko) | 콘텐츠 중심 네트워크에서 네트워크 주소 변환기를 갖는 관리자 라우팅 | |
EP3219087B1 (en) | Methods, systems, and computer readable media for facilitating the resolving of endpoint hostnames in test environments with firewalls, network address translators(nats), or clouds | |
US9049122B2 (en) | Bandwidth probing messages | |
TWI599201B (zh) | 網路系統及建立資料連線的方法 | |
CN109379291B (zh) | 一种组网中服务请求的处理方法及装置 | |
CN112637364B (zh) | 建立p2p连接的方法、客户端及系统 | |
JP2013511207A (ja) | スマートクライアントルーティング | |
US20080205388A1 (en) | Discovery of network devices logically located between a client and a service | |
US8619631B2 (en) | Information communication system, information communication method, node device included in information communication system and recording medium recording information processing program | |
KR101727233B1 (ko) | 콘텐츠 중심 네트워크에서 sip-기반 관리자 라우팅 | |
EP1727310A1 (en) | Method and apparatus for discovering a service in an AD-HOC network | |
TW201521392A (zh) | 穿透網路位址轉換的方法、電腦可讀取媒體與連線中介系統 | |
EP4181436B1 (en) | Data processing method and apparatus, related device and storage medium | |
US11683275B2 (en) | Device and method for interconnecting two subnetworks | |
CN107317869B (zh) | 一种节点nat类型探测方法、装置以及系统 | |
US10375175B2 (en) | Method and apparatus for terminal application accessing NAS | |
CN114598532B (zh) | 连接建立方法、装置、电子设备和存储介质 | |
CN112019641B (zh) | 数据传输方法和装置 | |
Lardies et al. | Deploying pervasive web services over a p2p overlay | |
EP3044929B1 (en) | A mobile-device based proxy for browser-originated procedures | |
WO2013127881A1 (fr) | Gestion de la mobilite d'un reseau mobile | |
CN108769293B (zh) | 一种ip地址解析方法及相关装置 | |
CN102377835B (zh) | 一种网元群组网络的通信方法和装置 | |
KR101586058B1 (ko) | Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법 | |
Victoriano et al. | Offline Collaboration Tool utilizing WebRTC in Ad Hoc Peer-to-Peer Networks |
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 |