CN106027689B - 一种通信方法和通信装置 - Google Patents

一种通信方法和通信装置 Download PDF

Info

Publication number
CN106027689B
CN106027689B CN201610283819.2A CN201610283819A CN106027689B CN 106027689 B CN106027689 B CN 106027689B CN 201610283819 A CN201610283819 A CN 201610283819A CN 106027689 B CN106027689 B CN 106027689B
Authority
CN
China
Prior art keywords
address
client
server
communication
nat
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
Application number
CN201610283819.2A
Other languages
English (en)
Other versions
CN106027689A (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.)
Shenzhen Depu Optical Technology Co ltd
Original Assignee
Phicomm Shanghai 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 Phicomm Shanghai Co Ltd filed Critical Phicomm Shanghai Co Ltd
Priority to CN201610283819.2A priority Critical patent/CN106027689B/zh
Publication of CN106027689A publication Critical patent/CN106027689A/zh
Application granted granted Critical
Publication of CN106027689B publication Critical patent/CN106027689B/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/2582NAT traversal through control of the NAT server, e.g. using universal plug and play [UPnP]

Abstract

本发明提供一种通信方法,通过判断客户端本身的地址是否与服务器上接收到的客户端的地址相同来确定链路上是否存在NAT设备,以及通过判断客户端连接的网络设备的地址与服务器上接收到的客户端的地址判断是否为多级NAT串联,并由此采用UPnP或长连接方式在在所述客户端与所述服务器之间通信。本发明还提供一种通信装置。本发明的方案结合多种NAT穿透方式的优点,可以穿透所有NAT类型,既保证了穿透效率,还提高了系统性能。

Description

一种通信方法和通信装置
技术领域
本发明涉及计算机通信,具体涉及一种用于在客户端与服务器进行通信的方法和装置。
背景技术
NAT(Network Address Translation)又称"网络地址转换",它是一种把内部私有网络地址翻译成合法网络IP地址的技术。NAT就是在局域网内部使用私有地址,而当内部节点要与外部网络进行通讯时,就在网关(可以理解为出口)处将内部地址替换成公用地址,从而在公网(internet)上正常使用.通过这种方法,可以只申请一个合法IP地址,就把整个局域网中的计算机接入Internet中。
在这样的体系中,设备的私有地址在公网上是不能被路由。这样,NAT不仅解决了IPv4地址资源不足的问题,还能够有效避免来自网络外部的攻击,隐藏并保护网络内部的计算机。同时,NAT也阻碍了外网到内网的直接访问,设备必须通过NAT设备才能访问外网,外网上的设备也必须通过NAT才能访问内网的设备。而P2P通信是两台设备直接通信,这样当有一个设备处于NAT设备下的内网时,这两个设备之间就不能进行P2P通信。于是,人们就需要采用一种方法能够使得消除NAT的障碍,称为NAT穿透。NAT穿透是P2P通信的主要问题。
已知的一种NAT穿透方法是使用UPnP。UPnP是微软提出的通用即插即用协议簇,用于全网络嵌入式设备的点到点互联通信。当NAT设备支持UPnP时,利用UPnP能够把P2P通信的端口号自动映射到公网上,从而公网上的设备能够对NAT私网侧发起连接。然而,使用UPnP只能穿透一层NAT。也就是,如果NAT设备本身也处于另一NAT设备的私网上,则UPnP就不能起到作用。
长连接是一种TCP连接,是具有保活通信的TCP连接,可以穿透TCP NAT和对称型,支持多级串联的NAT穿透,是当前互联网常用的TCP穿透方法。长连接的应用缺陷是服务器负载和带宽占用较高。
发明内容
本发明的目的提供一种可用于NAT穿透的新的通信方案。
按照本发明的一个方面,一种通信方法,用于在客户端与服务器之间的通信,包括如下步骤:S10,在所述客户端与所述服务器之间建立连接;S20,判断所述客户端的第一地址是否与所述服务器上存储的所述客户端的第二地址相同;S30,如果所述第一地址与所述第二地址不同,则,判断所述客户端连接的网络设备的地址与所述第二地址是否相同;S40,如果所述第二地址与所述网络设备的地址相同,则在所述客户端与所述服务器之间基于UPnP协议的通信;S50,如果所述第二地址与所述网络设备的地址不同,则在所述客户端与所述服务器之间基于长连接方式进行通信。
在一个实施例中,该方法还包括:将所述第二地址从所述服务器传输到所述客户端,以及在所述客户端完成步骤S20。
在一个实施例中,该方法还包括:将所述第一地址从所述客户端发送到所述服务器,以及在所述服务器完成步骤S20。
在一个实施例中,该方法还包括:将所述网络设备的地址发送到所述客户端,以及在所述客户端完成所述步骤S30。
在一个实施例中,该方法还包括:将所述网络设备的地址发送到所述服务器,以及在所述服务器完成所述步骤S30。
按照本发明另一方面,一种通信装置,其用于在客户端与服务器之间的通信,包括:第一判断单元,其判断所述客户端的第一地址与所述服务器上存储的所述客户端的第二地址是否相同;第二判断单元,其判断所述第二地址与所述客户端连接的网络设备的地址是否相同;第一通信单元,其构造为基于UPnP协议在所述客户端与所述服务器之间进行通信;第二通信单元,其构造为基于长连接方式在所述客户端与所述服务器之间进行通信;其中,当所述第二地址与所述网络设备的地址相同时,所述第一通信单元运行,当所述第二地址与所述网络设备的地址不同时,所述第二通信的运行。
进一步,该装置还包括信息获取单元,其获取所述第一地址、第二地址和所述网络设备的地址,并将所述第一地址和第二地址发送至所述第一判断单元,以及将所述第二地址和所述网络设备的地址发送至所述第二判断单元。
在本发明中,网路设备可以是路由器或者网关。其中,客户端可以为任何能够接入网络的设备,服务器是连接在公网上并且提供网络服务的计算设备,例如存储或其他信息服务。
本发明的方案结合多种NAT穿透方式的优点,可以穿透所有NAT类型,既保证了穿透效率,还提高了系统性能。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对上述特性、技术特征、优点及其实现方式予以进一步说明。
图1示出客户端设备通过网关与服务器的网络连接。
图2示出按照本发明的通信装置的实施例的示意图。
附图标号说明:
10移动设备 20网关 30服务器 40计算机 50路由器60网关
100第一比较单元 200第二比较单元 300第一通信单元 400第二通信单元 500信息获取单元
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
如前所述,NAT是将私网内的设备的地址转换为公网上的地址。例如,当客户端处于NAT设备的内网时,连接到服务器上的地址实际上是NAT设备映射的地址,而不是客户端从内网的DHCP服务器获取的地址作为客户端本身的地址。当客户端与服务器通信时,NAT设备会将客户端本身的地址映射为公网上的地址(映射地址),例如,可以是NAT设备在公网上分配到的地址。客户端发出报文时,其报头的源地址是客户端本身的地址。当到达NAT设备时,报头中的源地址就被修改为前述映射后的地址。服务器接收到的报文的报头中的源地址就是该映射地址。也就是,在服务器接收到的数据报文的报头中的源地址实际上是NAT设备在建立连接时分配给客户端的映射地址,而不是客户端发出上述数据报文时写入报头的地址。
在本说明书中,术语“私网”与“内网”的含义相同,而术语“公网”与“外网”的含义相同,均为本领域公知的术语。
在图1示出的网络拓扑结构中,移动设备10通过网关20与服务器30连接。网关20是NAT设备,此时,移动设备10实际上处于网关20的私网中。
同时,如图1所示,计算机40通过路由器50、网关60连接到服务器30。路由器50为NAT设备,此时计算机40处于路由器50的内网中。同时,当网关60也是NAT设备时,则路由器50的整个内网实际上也是处于网关60的内网中。这就形成了两级串联的NAT拓扑结构。
在这种情况下,移动设备10的地址是所处的网关20的内网中的DHCP服务器分配给移动设备10的地址。DHCP服务器可以是集成在网关20上的模块,也可以是单独的服务器。
当移动设备10与服务器30通信时,服务器30接收到的数据报文的报头中的源地址实际上是网关20的分配给移动设备10的地址,而不是移动设备10本身的地址。
类似地,计算机40从路由器50的内网上的DHCP服务器分配到IP地址作为计算机40本身的地址。通常,路由器50本身会具有DHCP服务端的功能。也就是,路由器50会将一个IP地址分配给计算机40作为其本身的地址。而路由器50本身的地址是网关60的内网上的DHCP服务器分配给路由器50的地址。
当计算机40与服务器30通信时,计算机40发出数据报文时,报头的源地址是计算机40本身的地址。当数据报文经过路由器50时,路由器50将报头中的源地址映射为路由器50在网关60的内网上的地址。而当数据报文经过网关60时,网关60将报头中的源地址映射为网关60在公网上的地址。当服务器30收到报文时,报头中的源地址就不是计算机40本身的地址,也不是路由器50本身的地址,而是网关60在公网上的地址。
在上述拓扑结构中,按照本发明的通信方法,在移动设备10与服务器30之间经过网关20建立连接。为了方便描述,移动设备10本身的地址为第一地址,而服务器30收到的报文的报头中的源地址为第二地址,也就是服务器保存的移动设备10的地址。则比较第一地址与第二地址。如前所述,网关20为NAT设备时,移动设备10本身的地址(第一地址)与服务器接收到的报文中的源地址(第二地址)是不同的。反之,当第一地址与第二地址不同时,可以确定在移动设备10与服务器30的链路上存在NAT设备。
在一个例子中,可以由移动设备10向服务器30发出请求,获取服务器上的报文的源地址,而后在移动设备10端进行所述的比较。或者,在另外的例子中,可以是服务器30向移动设备10发出请求以获取移动设备10的第一地址,并在服务器10端进行所述比较。
类似地,在计算机40与服务器30建立连接。比较计算机40本身的地址(第一地址)与服务器30收到的报文的源地址(第二地址)。如前所述,当路由器50或者网关60为NAT设备时,所述第一地址与所述第二地址是不同的。反之,当第一地址与第二地址不同时,也可以确定在链路上存在NAT设备。
对于客户端10与服务器30的连接,当第一地址与第二地址不同时,进一步比较网关20的地址与服务器30上的得到的第二地址。如前所述,通常情况下,NAT设备所映射的公网地址实际上就是NAT设备本身在公网上的地址。因此,当网关20的地址与服务器30上的第二地址相同时,则确定网关20与服务器30之间没有更多的NAT设备。这样,客户端10与服务器30之间可以基于UPnP协议进行通信。
对于计算机40与服务器30的通信。当第一地址与第二地址不同时,比较路由器50的地址与服务器上的第二地址。路由器50实际上在网关60的内网,其地址是网关60的内网上的地址。路由器上的第二地址实际上是网关60在公网上的地址。因此,路由器50的地址与第二地址是不同的。反之,就可以确定,在路由器与服务器之间还存在其他NAT设备。在这个例子中,就是网关60。
此时,计算机40与服务器30之间通过UPnP协议进行通信也不能穿透NAT设备。计算机40与服务器30之间可以通过长连接的方式进行通信。
在一个例子中,可以是服务器将第二地址发送到计算机40,并且计算机40向路由器50请求获取路由器的地址,并且在计算机40进行比较。或者,计算机40向路由器50请求获取路由器的地址并发送给服务器30,在服务器30处比较路由器的地址与第二地址。
在上面的描述中,本领域技术人员能够了解基于UPnP协议通信以及通过长连接的方式进行通信可以采用任何适当的方案。
如上所述,上述的方法可适于不同的网络拓扑中完成NAT穿透。
由此,在另一实施例中,一种通信装置,包括:第一判断单元100,其判断前述的第一地址与所述服务器上存储的第二地址是否相同;以及,第二判断单元200,其判断所述第二地址与路由器或网关的地址是否相同。
当该第一地址与该第二地址不同时,则第一判断单元100向该第二判断单元传输指令,判断第二地址与路由器或网关的地址是否相同。
当该第二地址与路由器或网关的地址相同时,则第二判断单元将指令发送给第一通信单元300,其构造为基于UPnP协议在移动设备或计算机与服务器之间进行通信。
当该第二地址与路由器或网关的地址不同时,则该第二判断单元将指令发送给第二通信单元400,其构造为基于长连接方式在所述移动设备或计算机与所述服务器之间进行通信。
进一步,该装置还包括信息获取单元500,其获取所述第一地址、第二地址和路由器或网关的地址,并将所述第一地址和第二地址发送至所述第一判断单元,以及将所述第二地址和路由器或网关的地址发送至所述第二判断单元。
在一个例子中,该信息获取单元设在移动设备或计算机上,其通过网络协议向服务器发出请求获取第二地址,以及通过网络协议向路由器/网关发出请求获取路由器/网关的地址。该第一和第二判断单元设在移动设备或计算机上。该第一和第二通信单元可以由设在移动设备/计算机、路由器/网关以及服务器上的网络通信模块组成。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (7)

1.一种通信方法,用于在客户端与服务器之间的通信,其特征在于,该方法包括如下步骤:
S10,在所述客户端与所述服务器之间建立连接;
S20,判断所述客户端的第一地址是否与所述服务器上存储的所述客户端的第二地址相同;
S30,如果所述第一地址与所述第二地址不同,则,判断所述客户端连接的网络设备的地址与所述第二地址是否相同;
S40,如果所述第二地址与所述网络设备的地址相同,则在所述客户端与所述服务器之间基于UPnP协议进行通信;
S50,如果所述第二地址与所述网络设备的地址不同,则在所述客户端与所述服务器之间基于长连接方式进行通信。
2.根据权利要求1所述的通信方法,其特征在于,还包括:将所述第二地址从所述服务器传输到所述客户端,以及在所述客户端完成步骤S20。
3.根据权利要求1所述的通信方法,其特征在于,还包括:将所述第一地址从所述客户端发送到所述服务器,以及在所述服务器完成步骤S20。
4.根据权利要求1所述的通信方法,其特征在于,还包括:将所述网络设备的地址发送到所述客户端,以及在所述客户端完成所述步骤S30。
5.根据权利要求1所述的通信方法,其特征在于,还包括:将所述网络设备的地址发送到所述服务器,以及在所述服务器完成所述步骤S30。
6.一种通信装置,其用于在客户端与服务器之间的通信,其特征在于,包括:
第一判断单元,其判断所述客户端的第一地址与所述服务器上存储的所述客户端的第二地址是否相同;
第二判断单元,其判断所述第二地址与所述客户端连接的网络设备的地址是否相同;
第一通信单元,其构造为基于UPnP协议在所述客户端与所述服务器之间进行通信;
第二通信单元,其构造为基于长连接方式在所述客户端与所述服务器之间进行通信;
其中,当所述第二地址与所述网络设备的地址相同时,所述第一通信单元运行,当所述第二地址与所述网络设备的地址不同时,所述第二通信单元运行。
7.根据权利要求6所述的通信装置,其特征在于,还包括信息获取单元,其获取所述第一地址、第二地址和所述网络设备的地址,并将所述第一地址和第二地址发送至所述第一判断单元,以及将所述第二地址和所述网络设备的地址发送至所述第二判断单元。
CN201610283819.2A 2016-04-29 2016-04-29 一种通信方法和通信装置 Active CN106027689B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610283819.2A CN106027689B (zh) 2016-04-29 2016-04-29 一种通信方法和通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610283819.2A CN106027689B (zh) 2016-04-29 2016-04-29 一种通信方法和通信装置

Publications (2)

Publication Number Publication Date
CN106027689A CN106027689A (zh) 2016-10-12
CN106027689B true CN106027689B (zh) 2020-04-10

Family

ID=57081155

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610283819.2A Active CN106027689B (zh) 2016-04-29 2016-04-29 一种通信方法和通信装置

Country Status (1)

Country Link
CN (1) CN106027689B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825828A (zh) * 2005-02-24 2006-08-30 北京风行在线技术有限公司 一种两端均处于不同nat下直接穿透通信的控制方法和设备
CN102340520A (zh) * 2010-07-20 2012-02-01 上海未来宽带技术及应用工程研究中心有限公司 一种p2p网络应用系统中私网检测与穿越的复合方法
CN102685262A (zh) * 2012-04-16 2012-09-19 中兴通讯股份有限公司 一种探测网络地址转换信息的方法、装置及系统
CN104243283A (zh) * 2014-09-16 2014-12-24 合肥协知行信息系统工程有限公司 一种基于nat的即时通讯方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1825828A (zh) * 2005-02-24 2006-08-30 北京风行在线技术有限公司 一种两端均处于不同nat下直接穿透通信的控制方法和设备
CN102340520A (zh) * 2010-07-20 2012-02-01 上海未来宽带技术及应用工程研究中心有限公司 一种p2p网络应用系统中私网检测与穿越的复合方法
CN102685262A (zh) * 2012-04-16 2012-09-19 中兴通讯股份有限公司 一种探测网络地址转换信息的方法、装置及系统
CN104243283A (zh) * 2014-09-16 2014-12-24 合肥协知行信息系统工程有限公司 一种基于nat的即时通讯方法

Also Published As

Publication number Publication date
CN106027689A (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
US8805977B2 (en) Method and system for address conflict resolution
US20050066035A1 (en) Method and apparatus for connecting privately addressed networks
US7411967B2 (en) Private network gateways interconnecting private networks via an access network
US20160226815A1 (en) System and method for communicating in an ssl vpn
US9769291B2 (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
US8458303B2 (en) Utilizing a gateway for the assignment of internet protocol addresses to client devices in a shared subset
EP1486050A2 (en) A ddns server, a ddns client terminal and a ddns system, and a web server terminal, its network system and an access control method
US20130074173A1 (en) Control of Security Application in a LAN from Outside the LAN
US20110141944A1 (en) Topology discovery of a private network
CN101257523A (zh) 一种用于支持虚拟环境中的分区之间的ip网络互连的方法
CN107094110B (zh) 一种dhcp报文转发方法及装置
CN114556868B (zh) 虚拟专用网络vpn客户端的专用子网络
CN107071079B (zh) 一种私网终端获取公网ip的方法及系统
BRPI0616599A2 (pt) método e sistema para estabelecer uma conexão ponto a ponto
KR20080078802A (ko) 자동적으로 네트워크 어드레스 변환을 수행하기 위해 로컬네트워크상에서 실행되는 어플리케이션을 검출하기 위한디바이스 및 방법
US20090292796A1 (en) Method and device for providing routing policies to user terminals according to applications executed on user terminals
CN113014680A (zh) 一种宽带接入的方法、装置、设备和存储介质
CN106027689B (zh) 一种通信方法和通信装置
CN103516820A (zh) 基于mac地址的端口映射方法和装置
CN110691113A (zh) 一种双方为非对称型的nat的穿透方法
JP5054666B2 (ja) Vpn接続装置、パケット制御方法、及びプログラム
JP2008079059A (ja) IPsecの複数セッションを処理する通信装置及びその処理方法
US10693673B2 (en) Method and apparatus for routing data to cellular network
CN112615946B (zh) 一种终端监控方法、装置和存储介质
CN113067911B (zh) 一种nat穿越方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
C06 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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20201112

Address after: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee after: Hangzhou Jiji Intellectual Property Operation Co.,Ltd.

Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666

Patentee before: Phicomm (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221230

Address after: 313000 room 1019, Xintiandi commercial office, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee after: Huzhou YingLie Intellectual Property Operation Co.,Ltd.

Address before: Room 10242, No. 260, Jiangshu Road, Xixing street, Binjiang District, Hangzhou City, Zhejiang Province

Patentee before: Hangzhou Jiji Intellectual Property Operation Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231215

Address after: 518000, 520 Xingyue Building, Shichang Road, Taoyuan Community, Dalang Street, Longhua District, Shenzhen City, Guangdong Province

Patentee after: Shenzhen Depu Optical Technology Co.,Ltd.

Address before: 313000 room 1019, Xintiandi commercial office, Yishan street, Wuxing District, Huzhou, Zhejiang, China

Patentee before: Huzhou YingLie Intellectual Property Operation Co.,Ltd.