针对TCP的NAT穿越方法、系统、第三方服务器X、以及客户端技术方案

技术编号:11152466 阅读:91 留言:0更新日期:2015-03-18 09:08
本发明专利技术公开一种针对TCP的NAT穿越方法,该方法包括:源客户端向第三方服务器X发送连接请求消息;第三方服务器X在接收到所述连接请求消息之后,将源客户端对应的源NAT设备的端点信息发送给目标客户端,并通知目标客户端向源客户端对应的源NAT设备发起TCP连接;目标客户端向源NAT设备发起TCP连接;第三方服务器X向源客户端发送目标NAT设备的端点信息;源客户端在收到所述端点信息之后,向目标NAT设备发起TCP连接;目标NAT设备将来自源NAT设备的分组发送给目标客户端。通过该方法,能够为不同NAT网络中的客户端建立TCP连接,相比针对UDP的NAT穿越方法,提高了数据通信可靠性,并能够针对网络拥塞状况进行自适应调整。

【技术实现步骤摘要】

本专利技术涉及通信领域,特别涉及一种针对TCP的NAT穿越方法、系统、第三方服务器X、以及客户端
技术介绍
目前NAT设备的广泛存在,给处于不同内网中的主机之间的通信带来了很多障碍,其中的主要原因是NAT不允许公网主机主动访问内网主机,这就使得公网IP地址不能主动访问NAT之后的主机,而处于不同NAT之后的主机间的互相访问更是困难重重。因此,要在不同的NAT之间进行有效的P2P通信,就必须要有一种方法来穿越NAT。目前比较成熟并且使用较多的是针对UDP的NAT穿越方法。然而,针对UDP的NAT穿越方法在使用中存在如下问题:其一、防火墙一般仅允许通过事先打开的特定协议和端口,从而使得数据可靠性不能得到直接保证,必须在应用层加入额外处理;其二;有些防火墙还关闭了UDP端口,这就造成了连接服务在这些情况下得不到保证,导致通信的无法进行,其三;在网络本已拥塞的情况下,UDP连接方法将继续向网络发送大量的数据包,因此会加重拥塞,甚至造成整个通信网络的瘫痪。因此,对于NAT设备的通信,需要一种针对TCP的NAT穿越方法,从而解决上述问题。
技术实现思路
本专利技术提供一种针对TCP的NAT穿越方法、系统、第三方服务器X、以及客户端,用于解决现有技术中NAT设备的通信时采用UDP连接方法会加重网络拥塞问题。为实现上述目的,本专利技术提供了一种针对TCP的NAT穿越方法,所述方法包括:>源客户端向第三方服务器X发送连接请求消息,所述连接请求消息用于请求与目标客户端进行连接;第三方服务器X在接收到所述连接请求消息之后,将源客户端对应的源NAT设备的端点信息发送给目标客户端,并通知目标客户端向源客户端对应的源NAT设备发起TCP连接;目标客户端向源NAT设备发起TCP连接;第三方服务器X向源客户端发送目标客户端对应的目标NAT设备的端点信息;源客户端在收到目标NAT设备的端点信息之后,向目标NAT设备发起TCP连接;目标NAT设备对源客户端发起的TCP连接进行检查,并在检查通过后允许之后将来自源NAT设备的分组发送给目标客户端;其中,源客户端向目标NAT设备发起TCP连接时的入站分组的源端点信息与目标客户端向源NAT设备发起TCP连接时的出站分组的目标端点信息相同;源客户端向目标NAT设备发起TCP连接时的入站分组的目标端点信息与目标客户端向源NAT设备发起TCP连接时的出站分组的源端点信息相同。优选地,源客户端和目标客户端均为在线的客户端,源客户端和目标客户端在上线时,分别与第三方服务器X建立第一条TCP连接,其中,源客户端通过源NAT设备与第三方服务器X连接,目标客户端通过目标NAT设备与第三方服务器X连接,以使得所述第三方服务器X分别记录源客户端和目标客户端的注册信息。优选地,所述目标客户端向源NAT设备发起TCP连接的步骤包括;目标客户端与第三方服务器X建立第二条TCP连接;目标客户端关闭与第三方服务器X建立的所述第二条TCP连接,并通过与第三方服务器X之间的第一条TCP连接发送关闭消息;第三方服务器X接收到目标客户端发送的关闭消息之后,记录关闭的第二条TCP连接对应的端点信息;目标客户端采用端口重用技术重用所述目标客户端与第三方服务器之间的所述第二条TCP连接的端口号,并采用该端口号向源NAT设备发起TCP连接;在目标客户端向源NAT设备发起TCP连接之后,目标客户端向第三方服务器X发送就绪消息。优选地,所述源客户端向第三方服务器X发送连接请求消息之前,还包括:源客户端与第三方服务器X建立第二条TCP连接;所述源客户端对应的源NAT设备的端点信息为源客户端与第三方服务器X之间的所述第二条TCP连接对应的端点信息;所述源客户端在收到目标NAT设备的端点信息之后,向目标NAT设备发起TCP连接的步骤包括;源客户端关闭与第三方服务器X之间的所述第二条TCP连接;源客户端采用端口重用技术重用上述第二条TCP连接的端口号,并向目标NAT设备发起TCP连接。为实现上述目的,本专利技术还提供了一种针对TCP的NAT穿越方法,所述方法包括:接收源客户端所发送的连接请求消息,所述连接请求消息用于请求与所述目标客户端进行连接;在接收到所述连接请求消息之后,将源客户端对应的源NAT设备的端点信息发送给目标客户端,并通知目标客户端向源NAT设备发起TCP连接;协助目标客户端向源NAT设备发起TCP连接;在目标客户端向源NAT设备发起TCP连接之后,向源客户端发送目标NAT设备的端点信息,以使得所述源客户端在获取目标NAT设备的端点信息之后,与目标客户端建立TCP连接,且在所述源客户端与目标客户端建立TCP连接的过程中,所述源客户端向目标NAT设备发起TCP连接时入站分组的源端点信息与之前目标客户端向源NAT设备发起TCP连接时的出站分组的目标端点信息相同,且源客户端向目标NAT设备发起TCP连接时的入站分组的目标端点信息与之前目标客户端向源NAT设备发起TCP连接时的出站分组的源端点信息相同。优选地,在客户端上线时,允许目标客户端与其建立第一条TCP连接;并记录所述客户端的注册信息,所述注册信息包括所述第一条TCP连接对应的端点信息。优选地,所述协助目标客户端向源NAT设备发起TCP连接的步骤包括:允许目标客户端与其建立第二条TCP连接;接收目标客户端发送的关闭消息,并记录所述目标客户端关闭的第二条TCP连接对应的端点信息;其中,所述关闭消息用于通知所述第二条TCP连接的关闭;接收目标客户端发送的就绪消息。为实现上述目的,本专利技术还提供了一种针对TCP的NAT穿越方法,所述方法包括:通过TCP连接向第三方服务器X发送连接请求消息,所述连接请求消息用于请求与目标客户端进行连接;接收第三方服务器X发送的与目标客户端对应的NAT设备的端点信息;在接收与目标客户端对应的NAT设备的端点信息之后,根据所述端点信息向目标客户端对应的NAT设备发起TCP连接,以通过所述NAT设备与所述目标客户端建立TCP连接。优选地,在所述通过TCP连接向第三方服务器X发送连接请求消息之前还包括:与第三方服务器X建立第一条TCP连接;与第三方服务器X建立第二条TCP连接;其中,所述通过TCP连接向第三方服务器X发送连接请求消息是通过所述第本文档来自技高网...

【技术保护点】
一种针对TCP的NAT穿越方法,其特征在于,所述方法包括:源客户端向第三方服务器X发送连接请求消息,所述连接请求消息用于请求与目标客户端进行连接;第三方服务器X在接收到所述连接请求消息之后,将源客户端对应的源NAT设备的端点信息发送给目标客户端,并通知目标客户端向源客户端对应的源NAT设备发起TCP连接;目标客户端向源NAT设备发起TCP连接;第三方服务器X向源客户端发送目标客户端对应的目标NAT设备的端点信息;源客户端在收到目标NAT设备的端点信息之后,向目标NAT设备发起TCP连接;目标NAT设备对源客户端发起的TCP连接进行检查,并在检查通过后允许之后将来自源NAT设备的分组发送给目标客户端;其中,源客户端向目标NAT设备发起TCP连接时的入站分组的源端点信息与目标客户端向源NAT设备发起TCP连接时的出站分组的目标端点信息相同;源客户端向目标NAT设备发起TCP连接时的入站分组的目标端点信息与目标客户端向源NAT设备发起TCP连接时的出站分组的源端点信息相同。

【技术特征摘要】
1.一种针对TCP的NAT穿越方法,其特征在于,所述方法包括:
源客户端向第三方服务器X发送连接请求消息,所述连接请求消息
用于请求与目标客户端进行连接;
第三方服务器X在接收到所述连接请求消息之后,将源客户端对应
的源NAT设备的端点信息发送给目标客户端,并通知目标客户端向源客户
端对应的源NAT设备发起TCP连接;
目标客户端向源NAT设备发起TCP连接;
第三方服务器X向源客户端发送目标客户端对应的目标NAT设备的
端点信息;
源客户端在收到目标NAT设备的端点信息之后,向目标NAT设备发
起TCP连接;
目标NAT设备对源客户端发起的TCP连接进行检查,并在检查通过
后允许之后将来自源NAT设备的分组发送给目标客户端;
其中,源客户端向目标NAT设备发起TCP连接时的入站分组的源端
点信息与目标客户端向源NAT设备发起TCP连接时的出站分组的目标端点
信息相同;源客户端向目标NAT设备发起TCP连接时的入站分组的目标端
点信息与目标客户端向源NAT设备发起TCP连接时的出站分组的源端点信
息相同。
2.根据权利要求1所述的方法,其特征在于,源客户端和目标客户
端均为在线的客户端,源客户端和目标客户端在上线时,分别与第三方服
务器X建立第一条TCP连接,其中,源客户端通过源NAT设备与第三方服
务器X连接,目标客户端通过目标NAT设备与第三方服务器X连接,以使
得所述第三方服务器X分别记录源客户端和目标客户端的注册信息。
3.根据权利要求2所述的方法,其特征在于,所述目标客户端向源
NAT设备发起TCP连接的步骤包括;
目标客户端与第三方服务器X建立第二条TCP连接;
目标客户端关闭与第三方服务器X建立的所述第二条TCP连接,并

\t通过与第三方服务器X之间的第一条TCP连接发送关闭消息;
第三方服务器X接收到目标客户端发送的关闭消息之后,记录关闭
的第二条TCP连接对应的端点信息;
目标客户端采用端口重用技术重用所述目标客户端与第三方服务器
之间的所述第二条TCP连接的端口号,并采用该端口号向源NAT设备发起
TCP连接;
在目标客户端向源NAT设备发起TCP连接之后,目标客户端向第三
方服务器X发送就绪消息。
4.根据权利要求3所述的方法,其特征在于,
所述源客户端向第三方服务器X发送连接请求消息之前,还包括:
源客户端与第三方服务器X建立第二条TCP连接;
所述源客户端对应的源NAT设备的端点信息为源客户端与第三方服
务器X之间的所述第二条TCP连接对应的端点信息;
所述源客户端在收到目标NAT设备的端点信息之后,向目标NAT设
备发起TCP连接的步骤包括;源客户端关闭与第三方服务器X之间的所述
第二条TCP连接;源客户端采用端口重用技术重用上述第二条TCP连接的
端口号,并向目标NAT设备发起TCP连接。
5.一种针对TCP的NAT穿越方法,其特征在于,所述方法包括:
接收源客户端所发送的连接请求消息,所述连接请求消息用于请求
与所述目标客户端进行连接;
在接收到所述连接请求消息之后,将源客户端对应的源NAT设备的
端点信息发送给目标客户端,并通知目标客户端向源NAT设备发起TCP连
接;
协助目标客户端向源NAT设备发起TCP连接;
在目标客户端向源NAT设备发起TCP连接之后,向源客户端发送目
标NAT设备的端点信息,以使得所述源客户端在获取目标NAT设备的端点
信息之后,与目标客户端建立TCP连接,且在所述源客户端与目标客户端
建立TCP连接的过程中,所述源客户端向目标NAT设备发起TCP连接时入

\t站分组的源端点信息与之前目标客户端向源NAT设备发起TCP连接时的出
站分组的目标端点信息相同,且源客户端向目标NAT设备发起TCP连接时
的入站分组的目标端点信息与之前目标客户端向源NAT设备发起TCP连接
时的出站分组的源端点信息相同。
6.根据权利要求5所述的方法,其特征在于,在客户端上线时,允
许目标客户端与其建立第一条TCP连接;并记录所述客户端的注册信息,
所述注册信息包括所述第一条TCP连接对应的端点信息。
7.根据权利要求5所述的方法,其特征在于,所述协助目标客户端
向源NAT设备发起TCP连接的步骤包括:
允许目标客户端与其建立第二条TCP连接;
接收目标客户端发送的关闭消息,并记录所述目标客户端关闭的第
二条TCP连接对应的端点信息;其中,所述关闭消息用于通知所述第二条
TCP连接的关闭;
接收目标客户端发送的就绪消息。
8.一种针对TCP的NAT穿越方法,所述方法包括:
通过TCP连接向第三方服务器X发送连接请求消息,所述连接请求
消息用于请求与目标客户端进行连接;
接收第三方服务器X发送的与目标客户端对应的NAT设备的端点信
息;
在接收与目标客户端对应的NAT设备的端点信息之后,根据所述端
点信息向目标客户端对应的NAT设备发起TCP连接,以通过所述NAT设备
与所述目标客户端建立TCP连接。
9.根据权利要求8所述的方法,其特征在于,
在所述通过TCP连接向第三方服务器X发送连接请求消息之前还包
括:
与第三方服务器X建立第一条TCP连接;
与第三方服务器X建立第二条TCP连接;
其中,所述通过TCP连接向第三方服务器X发送连接请求消息是通
过所述第一条TCP连接完成的;
所述向目标客户端对应的NAT设备发起TCP连接包括:
关闭与第三方服务器X之间的第二条TCP连接;
采用端口重用技术重用所述第二条TCP连接的端口号,并向目标客
户端对应的NAT设备发起TCP连接,以通过所述NAT设备与所述目标客户
端建立TCP连接。
10.一种针对TCP的NAT穿越方法,其特征在于,所述方法包括:
接收第三方服务器X发送的源客户端对应的NAT设备的端点信息,
并接收向源客户端对应的NAT设备发起TCP连接的通知;
在接收向源客户端对应的NAT设备发起TCP连接的通知之后,向源
客户端对应的NAT设备发起TCP连接;
接收来自所述源客户端的TCP连接,所述TCP连接分组由NAT设备
转发。
11.根据权利要求10所述的方法,其特征在于,
在所述接收第三方服务器X发送的源客户端对应的NAT设备的端点
信息之前还包...

【专利技术属性】
技术研发人员:初鹏飞谭磊
申请(专利权)人:北大方正集团有限公司方正信息产业控股有限公司北京北大方正电子有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1