[发明专利]穿越网络地址转换设备/防火墙的方法、系统及客户端有效
申请号: | 200710306339.4 | 申请日: | 2007-12-28 |
公开(公告)号: | CN101217536A | 公开(公告)日: | 2008-07-09 |
发明(设计)人: | 王志华 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06 |
代理公司: | 北京集佳知识产权代理有限公司 | 代理人: | 逯长明 |
地址: | 518044广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 穿越 网络地址 转换 设备 防火墙 方法 系统 客户端 | ||
技术领域
本发明涉及网络技术领域,尤其涉及一种穿越网络地址转换设备/防火墙的方法、系统及客户端。
背景技术
目前,互联网中存在大量的网络地址转换(Network Address Translation,NAT)设备。网络地址转换设备解决了IPV4地址不足的问题,但同时也给P2P(Peer to Peer)网络中客户端的直接连接设置了障碍。因此,在P2P网络中,需要克服网络地址转换设备产生的障碍,建立通信连接,。
为实现上述目的,现有技术提出了一种TCP穿越网络地址转换设备的方法。请参见图1,两个私网分别通过NAT-A设备101和NAT-B设备102连接到公网,NAT-A设备101后面有一台客户端A103,NAT-B设备102后面有一台客户端B104,打洞辅助服务器105用于协助客户端A和客户端B建立直接的TCP连接,即由客户端B向客户端A打一个洞,让客户端A可以沿这个洞直接连接到客户端B,如同NAT-B设备不存在。现有的TCP穿越NAT设备的过程如下:
1)打洞辅助服务器启动两个端口侦听,一个为主连接侦听,一个为协助打洞侦听;
2)客户端A和客户端B分别与打洞辅助服务器的主连接保持联系;
3)当客户端A需要和客户端B建立直接的TCP连接时,客户端A首先连接打洞辅助服务器的协助打洞端口,并发送协助连接请求,同时在该端口启动侦听;
4)打洞辅助服务器收到客户端A的协助连接请求后,通过主连接向客户端B发送连接通知,并将客户端A经过NAT-A设备转换后的公网IP地址和端口号发送客户端B;
5)客户端B收到连接通知后,首先与打洞辅助服务器的协助打洞端口连接,随便发送一些数据后立即断开,这样做的目的是让打洞辅助服务器记录客户端B经过NAT-B设备转换后的公网IP地址和端口号;
6)客户端B尝试与客户端A的公网IP地址和端口进行连接,目的是为了NAT-B设备记录客户端A的公网IP地址和端口号,为接下来真正的连接做准备,这就是所谓的打洞,即客户端B为客户端A在NAT-B设备上打了一个洞;
7)客户端B在一切准备就绪以后通过主连接向打洞辅助服务器回复“已经准备好消息”;
8)打洞辅助服务器在收到上述回复消息后,将客户端B的公网IP地址和端口号发送给客户端A;
9)客户端A在收到客户端B的公网IP地址和端口号等信息后,开始连接客户端B的公网IP地址和端口号,由于在步骤6中客户端B曾经尝试连接过客户端A的公网IP地址和端口号,因此,NAT-B设备记录了此次连接的信息,所以当客户端A主动连接客户端B时,NAT-B设备会认为客户端A发送来的同步数据包(synchronize,SYN)是合法数据,允许通过,从而建立直接的TCP连接。
在对现有技术的研究和实践过程中,发明人发现现有技术的缺点是:穿越NAT设备的成功率很低,只有在特定的环境下才能成功。这是因为步骤6客户端B尝试与客户端A的公网IP地址和端口号进行连接时,有些NAT设备会认为这是一个非法的连接请求,此时,NAT-A设备会向客户端B发送一个复位消息(Reset the connection,RST),要求客户端B和NAT-B设备复位,这会导致NAT-B设备清除其记录的客户端A的公网IP地址和端口号,当步骤9客户端A主动连接客户端B时,由于NAT-B设备上没有客户端A的记录,因此,NAT-B设备认为客户端A的连接请求是非法的,从而拒绝客户端A的连接请求,TCP直接连接失败。
发明内容
本发明实施例要解决的技术问题是提供一种穿越网络地址转换设备/防火墙的方法、系统及客户端,能够保证很高的穿越网络转换设备的成功率。
为解决上述技术问题,本发明所提供的实施例是通过以下技术方案实现的:
本发明实施例提供了一种穿越网络地址转换设备/防火墙的方法,包括:
第一客户端通过打洞辅助服务器向第二客户端发起传输控制协议直接连接请求;
打洞辅助服务器将第一客户端的公网IP地址及端口号发送给第二客户端,并将第二客户端的公网IP地址及端口号发送给第一客户端;
第一客户端获取已测试得到的打洞可采用的传输控制协议数据包序列;
第一客户端和第二客户端在打洞辅助服务器的协助下,按照所述打洞可采用的传输控制协议包序列,向对方的公网IP地址和端口号发送数据包,直到成功建立传输控制协议直接连接。
本发明实施例还提供了一种第一客户端,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710306339.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:陶瓷产品的烧成装窑方法
- 下一篇:新会陈皮普洱紧压茶及其制作方法