CN103002041A - 一种处于nat环境下的设备的通信方法 - Google Patents
一种处于nat环境下的设备的通信方法 Download PDFInfo
- Publication number
- CN103002041A CN103002041A CN2012105447633A CN201210544763A CN103002041A CN 103002041 A CN103002041 A CN 103002041A CN 2012105447633 A CN2012105447633 A CN 2012105447633A CN 201210544763 A CN201210544763 A CN 201210544763A CN 103002041 A CN103002041 A CN 103002041A
- Authority
- CN
- China
- Prior art keywords
- terminal
- communication
- link
- server
- sdp information
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种处于NAT环境下的设备的通信方法,包括服务器和通信终端对,通信终端对包括主终端和从终端,该方法包括两个步骤:SDP信息的生成与交换和通信链路的测试与选择。前者是终端登录服务器后,服务器生成的SDP信息发送至通信双方的过程。后者是主终端根据获得的双方的SDP信息确定链路优先级,根据优先级建立链路并测试链路,根据测试结果确定通信链路。本发明综合了三种通信技术,连接建立的成功率高,并通过优先级的设定和选择,使得本发明通信效率高,能够有效减低服务器负载。
Description
技术领域
本发明涉及P2P通信技术。
背景技术
由于IPV4地址的数目有限,不能满足给每台主机分配一个全球唯一IP地址,以用于相互之间的通信,而NAT技术的出现,解决了该问题,它使得多台主机可以共享一个IP地址。P2P技术在Internet中的应用,使得用户之间的沟通和交互变的更直接和便捷,但NAT技术的存在,给P2P的发展带来了障碍,于是出现了一些穿越NAT的技术。
NAT技术的原理:NAT,Network Address Translation,即网络地址转换,它通过端口映射技术,将私有网络中的IP地址,临时绑定一个合法的公网IP地址,私网IP地址可以通过该公网IP地址与外网通信。NAT技术的出现减轻了IPV4地址匮乏的压力,同时也保护了内部网络,使得外网无法直接访问内部网络。
P2P技术原理:P2P,Peer To Peer,即点对点或者对等联网,每个结点既是客户机又是服务器,结点直接通过直接通信实现文件信息共享、数据处理等。
由于NAT不允许外网主机主动访问内网主机的特性,使得公网上的主机不能主动访问NAT后面的主机,而在不同NAT后面的主机更是因为无法识别而不能相互P2P通信。现有的解决该问题的穿越NAT技术有反向连接技术、UDP打洞技术(UDP Hole Punching)、中转(Relaying)技术等。
反向连接技术:该技术只用在只有一方位于NAT后面的情形,所以该技术的缺点很明显,当通信双方都位于各自的NAT后面时,该技术行不通。
中转技术:它的原理是使用第三方服务器,为通信双方的通信做转发,只要双方都跟服务器相连,那么通信总是成功的,但是该技术的有点是可靠性高,缺点是效率低,而且数据量大时,会造成服务器的负荷过载。
UDP打洞技术:它的原理是借助第三方服务器,使得通信双方都主动向对方发送消息,从而在各自的NAT设备上都留了一个“洞”,对方消息通过该洞,进入NAT内部,实现了通信。当双方都能够P2P通信后,就不需要服务器了。该技术的有点是速度快、效率高,缺点是可靠性和成功率受NAT设备类型的影响。
发明内容
本发明所要解决的问题是:
1、NAT环境下设备P2P的通信;
2、提高连接建立的成功率;
3、提高通信效率,减少服务器负载。
为解决上述问题,本发明采用的方案是:
一种处于NAT环境下的设备的通信方法,包括服务器和通信终端对。通信终端对是在服务器中事先指定的两个通信终端,其中一个终端事先设置为主终端,另一个终端为从终端。该方法包括以下步骤:
S100:SDP信息的生成与交换。SDP是指Session Description Protocol,即会话描述协议。SDP信息包括:私有地址和端口、公网地址和端口、服务器中转地址和端口。主终端和从终端分别登录服务器后,服务器生成相应的SDP信息。服务器将主终端的SDP信息和从终端的SDP信息发送给主终端和从终端,主终端和从终端获得通信终端对双方的SDP信息。
S200:通信链路的测试与选择。主终端根据获得的自身的SDP信息和从终端的SDP信息设定链路优先级,根据优先级建立链路并测试链路,根据测试结果确定通信链路。如果高优先级的链路测试失败,则建立低优先级的链路并测试,直到所有的链路测试都失败;如果链路测试成功,则使用该链路进行通信。
本发明的技术效果包括:
1)效率高。如果通信终端对处于同一NAT环境下,则通信终端对直接通信;如果不处于同一NAT环境下,则优先走公网IP进行直接通信,这种P2P通信方式速度快,效率高。
2)成功率高。当因NAT设备类型或者防火墙等原因导致穿越NAT不能走P2P方式时,可以通过服务器转发方式,辅助设备进行通信,从而提高了穿越的成功率。
3)时延小。在选择连接通路时,根据网络环境按优先级、定时器等选择通路,从而确保了选择的通路效率高、时延小。
4)降低了服务器的负载。优先使用P2P方式,服务器只是辅助连接,并且当通信双方P2P连接建立起来以后,不需要服务器的辅助,从而降低了服务器的负载。
附图说明
无。
具体实施方式
下面对本发明做进一步详细说明。
1、通信终端对的指定
通信终端对的指定有很多种方法,比如,通过用户或标识的方式指定。例如,在智能家居领域,用户通过远程操作终端操作家居控制主机,用户所管辖下的家居控制主机是确定的。该用户管辖下的家居控制主机的信息保存在服务器中,当用户通过远程操作终端登录服务器时,服务器根据该用户管辖下的家居控制主机信息确定通信终端对。假如该用户下有多个家居控制主机,用户通过远程操作终端登录服务器后,服务器提供家居控制主机列表给远程操作终端,用户可以在远程操作终端上选择需要操控的家居控制主机。同一用户下不同的家居控制主机用标识区分。主从终端的指定可以通过程序设定完成。主终端与从终端的区别在于,在通信终端对建立通信链路通信时,主终端作为选择链路的决定方,从终端根据主终端的选择和主终端建立连接。例如,在上述智能家居领域的案例中,用户通过远程操作终端作家居控制主机时,可以事先通过程序设定远程操作终端为主终端,家居控制主机为从终端,这种情况下由远程操作终端作为链路选择的决定方;也可以事先设定家居控制主机为主终端,远程操作终端为从终端,这种情况下由家居控制主机作为链路选择的决定方。在上述智能家居领域的案例中,通常由远程操作终端作为主终端,因为家居控制主机与服务器之间的连接相对比较固定,而远程操作终端可能是办公室电脑,也可能是移动终端,比如智能手机,平板电脑等等。
2、SDP信息的生成与交换
主终端和从终端分别登录服务器后,服务器生成相应的SDP信息。即,主终端登录服务器后,服务器生成主终端的SDP信息;从终端登录服务器后,服务器生成从终端的SDP信息。这个过程是主终端和从终端分别各自独立与服务器的交互过程,相互之间不存在先后关系。
终端登录服务器的过程包括用户名和密码的验证过程。这里的终端包括了主终端和从终端,下文中如未特别指定主终端和从终端的终端,是指主终端和/或从终端。为了保证终端与服务器之间的交互安全性,终端向服务器提交用户名和密码验证时,可以对用户名和密码进行加密,比如采用RSA算法对用户名和密码加密。更为通用的方法是,终端与服务器建立连接后,通过密钥交互协议比如DH算法确定通信密码,然后,终端与服务器之间的所有的通信都采用该通信密码加密。本领域技术人员了解,终端与服务器之间通信的安全和加密算法不构成对本发明权利要求的保护范围的限制。
主终端和从终端分别登录服务器后,服务器生成相应的SDP信息。这里的SDP信息主要包括三个地址和端口:私有地址和端口、公网地址和端口、服务器中转地址和端口。这三个地址和端口分别代表了三种不同的链路。私有地址和端口,是由终端创建的通信地址和端口,适用于相同NAT环境下的通信链路。公网地址和端口是由NAT设备创建的通信地址和端口,适用于采用UDP打洞技术的链路。服务器中转地址和端口是由服务器创建的通信地址和端口,适用于服务器中转技术的通信链路。服务器生成相应的SDP信息前,需要创建相应的通信端口。终端、NAT设备、服务器创建通信端口可以在终端登录服务器之前或之后。终端登录服务器后,终端将其创建的通信地址和端口以及NAT设备创建的通信地址和端口,即私有地址和端口以及公网地址和端口发送至服务器,服务器再根据自身创建的中转地址和端口组成SDP信息。
服务器生成主终端和从终端的SDP信息后,需要将主终端的SDP信息和从终端的SDP信息发送给主终端和从终端,使得主终端和从终端都能获得通信终端对双方的SDP信息。本发明中终端之间的通信优先采用面向非连接的UDP通信技术,因而通信双方需要得到对方的地址和端口,服务器起到中转通信地址和端口的作用。服务器向通信双方发送双方的SDP信息时,有两种方式:第一种是,等到通信双方都登录服务器后,服务器生成SDP信息后,同时向双方发送一个包括双方SDP信息的数据包;另外一种方式是,终端登录服务器后,服务器生成其SDP信息后,对其发送自身的SDP信息;等到双方都登录服务器后,服务器向双方发送对方的SDP信息,即向主终端发送从终端的SDP信息,向从终端发送主终端的SDP信息。在前述的在智能家居领域,家居控制主机与服务器之间连接通常是持续性的,即家居控制主机一次登录服务器后,其SDP信息基本固定不变。远程操作终端则根据用户情形经常变化,比如在办公室采用办公室电脑,或者出差在外或路途上,采用移动终端。这种情形下,服务器可以持续保存家居控制主机的SDP信息,比如保存在内存或数据库中。用户通过远程操作终端登录服务器后,服务器可以从内存或者数据库中调取家居控制主机的SDP信息发送给远程操作终端。
3、通信链路的测试与选择
经SDP信息的生成与交换步骤后,通信双方都可以获得双方的SDP信息。SDP信息中包含代表了三种通信方式的三个地址和端口。主终端需要在这三种通信方式中选择一种方式进行双方通信。在选择前,主终端需要发起通信链路的测试,根据通信链路是否可用确定通信方式。
首先,主终端根据双方的SDP信息对比,设定优先级,为三种通信方式设置优先顺序。确定优先级的方法如下:主终端比较双方的公网地址,如果公网地址相同,则主终端确定通信双方位于相同的NAT环境下,因而设置优先顺序如下:私有地址之间的通路优先级最高,公网地址之间的通路的优先级次之,服务器中转地址之间的通路优先级最低。如果双方的公网地址不同,则设置优先顺序如下:公网地址之间的通路优先级最高,服务器中转地址之间的通路的优先级次之,私有地址之间的通路优先级最低。
主终端确定通信方式的优先顺序后,根据优先级的高低,测试通信链路。首先测试优先级最高的通信链路,如果该链路可用则主终端选择该链路作为最终的通信方式。如果该链路不可用,则选择优先级次一级的通信链路并测试。假如次一级的链路可用,则选择次一级的链路作为最终的通信方式。如果次一级的链路不可用,则选择优先级最低的通信链路并测试。如果最低级的链路可用,则选择最低级的链路作为最终的通信方式,否则链路建立失败。
通信链路的测试步骤如下:
S201:主终端向从终端发送测试数据报文;
S202:从终端接收到该测试数据报文后返回回应数据报文;
S203:主终端在回应超时时间内接收到回应数据报文后,确定该通信链路可用,并向从终端发送链路确定数据报文;主终端在回应超时时间内没有得到收到回应数据报文,则认为该链路不可用,则主终端选择优先级低一级的链路,回到步骤S201发送测试数据报文;假如已经优先级最低一级的链路,则确定连接失败;
S204:从终端接收到确定链路数据报文后,确定采用该通信链路通信。
测试数据报文、回应数据报文以及链路确定数据报文的内容事先由双方约定,或者由程序事先确定。步骤S203中的回应超时时间可以事先设定,比如3秒-10秒。
4、扩展性说明
上述的说明是建立在通信终端对,即主终端和从终端都位于NAT设备后的情形。本领域技术人员了解,本发明的技术方案还可以应用于主终端和从终端位于公网时的情形。这种情形分为三种:一、主终端位于公网,从终端位于NAT设备后;二、从终端位于公网,主终端位于NAT设备后;三、主终端和从终端都位于公网。终端位于公网时,SDP信息依然包括三个通信地址和端口,不同的是,用公网地址和私有地址相同标识终端位于公网。
本领域技术人员了解,本发明的技术方案用来解决通信终端对之间连接的建立,连接建立后的通信以及安全性问题不构成对本发明权利要求保护范围的限制。
Claims (4)
1.一种处于NAT环境下的设备的通信方法,包括服务器和通信终端对,通信终端对包括主终端和从终端,其特征在于,该方法包括以下步骤:
S100:SDP信息的生成与交换;主终端和从终端分别登录服务器后,服务器生成相应的SDP信息;服务器将主终端的SDP信息和从终端的SDP信息发送给主终端和从终端;
S200:通信链路的测试与选择;主终端根据获得的自身的SDP信息和从终端的SDP信息设定链路优先级,根据优先级建立链路并测试链路,根据测试结果确定通信链路。
2.如权利要求1所述的处于NAT环境下的设备的通信方法,其特征在于,所述步骤S200中测试链路的步骤包括:
S201:主终端向从终端发送测试数据报文;
S202:从终端接收到该测试数据报文后返回回应数据报文;
S203:主终端在回应超时时间内接收到回应数据报文后,确定该通信链路可用,并向从终端发送链路确定数据报文;主终端在回应超时时间内没有得到收到回应数据报文,则认为该链路不可用,则主终端选择优先级低一级的链路,回到步骤S201发送测试数据报文;假如已经优先级最低一级的链路,则确定连接失败;
S204:从终端接收到确定链路数据报文后,确定采用该通信链路通信。
3.如权利要求1所述的处于NAT环境下的设备的通信方法,其特征在于,所述步骤S100中主终端和从终端登录服务器过程包括用户名和密码的验证过程。
4.如权利要求3所述的处于NAT环境下的设备的通信方法,其特征在于,所述的用户名和密码的验证过程中,采用RSA算法对用户名和密码加密。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210544763.3A CN103002041B (zh) | 2012-12-17 | 2012-12-17 | 一种处于nat环境下的设备的通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210544763.3A CN103002041B (zh) | 2012-12-17 | 2012-12-17 | 一种处于nat环境下的设备的通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103002041A true CN103002041A (zh) | 2013-03-27 |
CN103002041B CN103002041B (zh) | 2015-06-17 |
Family
ID=47930174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210544763.3A Active CN103002041B (zh) | 2012-12-17 | 2012-12-17 | 一种处于nat环境下的设备的通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103002041B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681445A (zh) * | 2016-02-04 | 2016-06-15 | 福建星网锐捷通讯股份有限公司 | 数据的点对点传输路径选择方法及装置 |
CN107026903A (zh) * | 2017-03-22 | 2017-08-08 | 阔地教育科技有限公司 | 一种安全通信方法及系统 |
CN108924008A (zh) * | 2018-07-10 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种双控制器数据通信方法、装置、设备及可读存储介质 |
CN109039915A (zh) * | 2018-08-24 | 2018-12-18 | 珠海迈越信息技术有限公司 | 一种建立数据连接通道的方法及系统 |
CN110086884A (zh) * | 2019-05-09 | 2019-08-02 | 俞力奇 | 一种主机连接通讯系统及连接方法 |
CN110677471A (zh) * | 2019-09-24 | 2020-01-10 | 日立楼宇技术(广州)有限公司 | 门禁系统的数据链路构建方法、装置、设备和存储介质 |
CN111880845A (zh) * | 2020-07-24 | 2020-11-03 | 西安万像电子科技有限公司 | 控制目标应用的方法、系统及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863157A (zh) * | 2005-10-28 | 2006-11-15 | 华为技术有限公司 | 穿越nat实现网络通信的方法及装置 |
CN101465784A (zh) * | 2007-12-18 | 2009-06-24 | 友讯科技股份有限公司 | 便携式的ice中继服务器及其方法 |
CN101834874A (zh) * | 2010-05-21 | 2010-09-15 | 四川长虹电器股份有限公司 | 一种能穿透防火墙的多媒体网络通信方法 |
-
2012
- 2012-12-17 CN CN201210544763.3A patent/CN103002041B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863157A (zh) * | 2005-10-28 | 2006-11-15 | 华为技术有限公司 | 穿越nat实现网络通信的方法及装置 |
CN101465784A (zh) * | 2007-12-18 | 2009-06-24 | 友讯科技股份有限公司 | 便携式的ice中继服务器及其方法 |
CN101834874A (zh) * | 2010-05-21 | 2010-09-15 | 四川长虹电器股份有限公司 | 一种能穿透防火墙的多媒体网络通信方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105681445A (zh) * | 2016-02-04 | 2016-06-15 | 福建星网锐捷通讯股份有限公司 | 数据的点对点传输路径选择方法及装置 |
CN105681445B (zh) * | 2016-02-04 | 2019-01-29 | 福建星网锐捷通讯股份有限公司 | 数据的点对点传输路径选择方法及装置 |
CN107026903A (zh) * | 2017-03-22 | 2017-08-08 | 阔地教育科技有限公司 | 一种安全通信方法及系统 |
CN108924008A (zh) * | 2018-07-10 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种双控制器数据通信方法、装置、设备及可读存储介质 |
CN109039915A (zh) * | 2018-08-24 | 2018-12-18 | 珠海迈越信息技术有限公司 | 一种建立数据连接通道的方法及系统 |
CN109039915B (zh) * | 2018-08-24 | 2021-07-23 | 珠海迈越信息技术有限公司 | 一种建立数据连接通道的方法及系统 |
CN110086884A (zh) * | 2019-05-09 | 2019-08-02 | 俞力奇 | 一种主机连接通讯系统及连接方法 |
CN110677471A (zh) * | 2019-09-24 | 2020-01-10 | 日立楼宇技术(广州)有限公司 | 门禁系统的数据链路构建方法、装置、设备和存储介质 |
CN110677471B (zh) * | 2019-09-24 | 2021-10-01 | 日立楼宇技术(广州)有限公司 | 门禁系统的数据链路构建方法、装置、设备和存储介质 |
CN111880845A (zh) * | 2020-07-24 | 2020-11-03 | 西安万像电子科技有限公司 | 控制目标应用的方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103002041B (zh) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11909712B2 (en) | Network address translation for virtual machines | |
CN103002041B (zh) | 一种处于nat环境下的设备的通信方法 | |
US9203807B2 (en) | Private cloud server and client architecture without utilizing a routing server | |
TWI474667B (zh) | 生成和分佈網路安全參數之系統及方法 | |
CN101478493B (zh) | 一种穿越nat的通信方法及设备 | |
CN101572643B (zh) | 实现私网之间转发数据的方法和系统 | |
CN101582856B (zh) | 一种门户服务器与宽带接入设备的会话建立方法及其系统 | |
CN112997463A (zh) | 用于跨公用互联网的服务器集群网络通信的系统和方法 | |
EP3364609B1 (en) | Communication system, address notification device, communication control device, terminal, communication method, and program | |
CN102739684B (zh) | 一种基于虚拟IP地址的Portal认证方法及服务器 | |
CN102882828A (zh) | 一种内网与外网间的信息安全传输控制方法及其网关 | |
US20090049164A1 (en) | Peer-to-peer communication method and system enabling call and arrival | |
CN101515896B (zh) | 安全套接字层协议报文转发方法、装置、系统及交换机 | |
CN111245699B (zh) | 远程通信服务控制方法、服务器及客户端 | |
RU2014131719A (ru) | Устройство и способ реализации сети передачи данных, используемой для удаленного управления жилищем | |
CN105530681A (zh) | 业务处理方法及装置 | |
US9419921B1 (en) | Network address translation for virtual machines | |
CN106537885A (zh) | 接入节点 | |
US10171418B2 (en) | Method and apparatus for accessing demilitarized zone host on local area network | |
CN109743316B (zh) | 数据传输方法、出口路由器、防火墙及双台防火墙系统 | |
CN102185867A (zh) | 一种实现网络安全的方法和一种星形网络 | |
US10819755B1 (en) | Communications apparatus, systems, and methods for preventing and/or minimizing session data clipping | |
CN113067910A (zh) | 一种nat穿越方法、装置、电子设备和存储介质 | |
KR101144912B1 (ko) | 트래픽 기반 통신 시스템 및 방법 | |
CN108810189A (zh) | 一种基于nat环境下的设备的新型通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: 210012 3 of Tian Shu Science Park, 170-1 software Avenue, Yuhuatai District, Nanjing, Jiangsu. Patentee after: NANJING TIANSU AUTOMATION CONTROL SYSTEM Co.,Ltd. Address before: The Olympic Avenue in Jianye District of Nanjing city of Jiangsu Province, No. 69 210019 Patentee before: NANJING TIANSU AUTOMATION CONTROL SYSTEM Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |