一种NAT穿透方法及装置制造方法及图纸

技术编号:17037609 阅读:27 留言:0更新日期:2018-01-13 22:18
本申请提供了一种NAT穿透方法,当第一主机和第二主机分别和打洞服务器建立连接后,第一主机通过打洞服务器获取第二主机的IP地址和端口号,通过设置第一打洞请求数据包的生存时间值,使第一主机向第二主机发送第一打洞请求数据包,使第一打洞请求数据包被发送到第一主机的NAT且不能被发送到达第二主机的NAT,有效防止第二主机NAT对第一打洞请求数据包的阻止。第一主机向打洞服务器发送协助打洞请求,使打洞服务器向第二主机发送第一主机的IP地址和端口号;第二主机根据第一主机的IP地址和端口号向第一主机发送第二打洞请求数据包,第一主机再向第二主机发送第三打洞请求数据包,第一主机与第二主机间的P2P连接建立,提高了P2P的打洞成功率。

A NAT penetration method and device

This application provides a NAT penetration method, when the first and second respectively and the host host server connection holes, through holes first host server to obtain the second host IP address and port number, by setting the first hole request packet survival time value, the first host to the second host to send the first hole request packet, the first hole request packet is sent to the host NAT and can't be sent to the second host NAT, effectively prevent the host NAT for the first second holes to prevent request packet. The first host to punch holes to assist the server to send the request, the server host sends first hole to the second host IP address and port number; second according to the first host host IP address and port number to send the first second holes host request packet, and then sent to the first host third host second hole request packet first, the host and host second P2P connection establishment, improve the P2P hole success rate.

【技术实现步骤摘要】
一种NAT穿透方法及装置
本专利技术涉及通信
,更具体的,涉及一种NAT穿透方法及装置。
技术介绍
NAT(NetworkAddressTranslation,网络地址转换),通过将不同的私网地址映射到同一公网地址的不同端口号,实现了内网中多台主机能够使用同一IP地址进行互联网连接的功能。这解决了IP地址不足的问题,却给P2P(PeertoPeer,对等网络)连接引入了新的挑战。NAT类型共有四种:1、全锥形NAT(FullConeNAT),同一私网地址X(包括IP地址和端口号)的连接请求都会被映射到同一公网地址Y(包括IP地址和端口号),与请求的目的地址无关。NAT会将所有外部地址Z(包括IP地址和端口号)发送给Y的请求转发给X。2、限制锥型NAT(RestrictedNAT),同一私网地址X(包括IP地址和端口号)的连接请求都会被映射到同一公网地址Y(包括IP地址和端口号),与请求的目的地址无关。但是只有私网地址X先通过公网地址Y发送请求到地址Z(只包括IP地址,端口号不限),NAT才会将Z发送给Y的请求转发给X,否则Z发送到X的请求会被NAT认为是未经认证的而进行阻止。3、端口限制锥形NAT(PortRestrictedNAT),所有来自同一私网地址X(包括IP地址和端口号)的连接请求都会被映射到同一公网地址Y(包括IP地址和端口号),与请求的目的地址无关。但是只有私网地址X先通过公网地址Y发送请求到地址Z(包括IP地址和端口号),NAT才会将Z发送给Y的请求转发给X,否则Z发送到X的请求会被NAT认为是未经认证的而进行阻止。4、对称型NAT(SymmetricNAT),来自同一私网地址X的连接请求根据目的地址(包括IP地址和端口号)的不同,会被映射到不同的公网地址(端口号不同)。只有私网地址X先通过公网地址Y发送请求到地址Z(包括IP地址和端口号),NAT才会将Z发送给Y的请求转发给X,否则Z发送到X的请求会被NAT认为是未经认证的而进行阻止。对于限制型锥形NAT、端口限制锥形NAT和对称型NAT,只有在NAT内部的地址X向外部地址Z发送过数据请求之后,外部地址Z所发送的数据请求才会被NAT转发给X,否则该请求会被认为是未经认证的而丢弃。从而不能进行有效的打洞,导致无法打洞成功或成功率很低。
技术实现思路
有鉴于此,本专利技术提供了一种NAT穿透方法及装置,通过设置打洞发起方打洞请求数据包的生存时间值,有效防止对方NAT对打洞请求数据包的阻止,提高了P2P打洞的成功率。为了实现上述专利技术目的,本专利技术提供的具体技术方案如下:一种NAT穿透方法,应用于第一主机,所述方法包括:当所述第一主机和第二主机分别和打洞服务器建立连接后,通过所述打洞服务器获取所述第二主机的IP地址和端口号;设置第一打洞请求数据包的生存时间值;根据所述第二主机的IP地址和端口号,向所述第二主机发送所述第一打洞请求数据包,使所述第一打洞请求数据包被发送到所述第一主机的NAT且不能被发送到所述第二主机的NAT;向所述打洞服务器发送协助打洞请求,使所述打洞服务器向所述第二主机发送所述第一主机的IP地址和端口号,以使所述第二主机根据所述第一主机的IP地址和端口号向所述第一主机发送第二打洞请求数据包;当接收到所述第二主机发送的第二打洞请求数据包时,向所述第二主机发送第三打洞请求数据包,所述第一主机与所述第二主机间的P2P连接建立。优选的,所述设置第一打洞请求数据包的生存时间值,包括:获取所述第一主机到目标节点的路由追踪结果,所述目标节点为所述第一主机的NAT网络外部的节点;根据所述路由追踪结果,确定所述第一主机与所述目标节点之间公网地址网络地址前的私网地址网络节点数量M;将所述第一打洞请求数据包的生存时间值设置为M+1。可选的,所述获取所述第一主机到目标节点的路由追踪结果,包括:获取所述第一主机到所述打洞服务器的路由追踪结果。可选的,所述获取所述第一主机到目标节点的路由追踪结果,包括:获取所述第一主机到预设服务器的路由追踪结果。可选的,所述获取所述第一主机到目标节点的路由追踪结果,包括:获取所述第一主机到所述第二主机的路由追踪结果。一种NAT穿透装置,应用于第一主机,所述装置包括:获取单元,用于当所述第一主机和第二主机分别和打洞服务器建立连接后,通过所述打洞服务器获取所述第二主机的IP地址和端口号;设置单元,用于设置第一打洞请求数据包的生存时间值;第一发送单元,用于根据所述第二主机的IP地址和端口号,向所述第二主机发送所述第一打洞请求数据包,使所述第一打洞请求数据包被发送到所述第一主机的NAT且不能被发送到所述第二主机的NAT;第二发送单元,用于向所述打洞服务器发送协助打洞请求,使所述打洞服务器向所述第二主机发送所述第一主机的IP地址和端口号,以使所述第二主机根据所述第一主机的IP地址和端口号向所述第一主机发送第二打洞请求数据包;第三发送单元,用于当接收到所述第二主机发送的第二打洞请求数据包时,向所述第二主机发送第三打洞请求数据包,所述第一主机与所述第二主机间的P2P连接建立。优选的,所述设置单元包括:获取子单元,用于获取所述第一主机到目标节点的路由追踪结果,所述目标节点为所述第一主机的NAT网络外部的节点;确定子单元,用于根据所述路由追踪结果,确定所述第一主机与所述目标节点公网地址网络地址前的私网地址网络节点数量M;设置子单元,用于将所述第一打洞请求数据包的生存时间值设置为M+1。可选的,所述获取子单元具体用于:获取所述第一主机到所述打洞服务器的路由追踪结果。可选的,所述获取子单元具体用于:获取所述第一主机到预设服务器的路由追踪结果。可选的,所述获取子单元具体用于:获取所述第一主机到所述第二主机的路由追踪结果。相对于现有技术,本专利技术的有益效果如下:本专利技术提供了一种NAT穿透方法,和标准的打洞流程相比,通过设置第一主机的打洞请求数据包的生存时间值,使所述第一打洞请求数据包被发送到所述第一主机的NAT且不能被发送到所述第二主机的NAT,有效防止第二主机NAT对第一打洞请求数据包的阻止,提高了P2P的打洞成功率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例公开的一种NAT穿透方法流程图;图2为本专利技术实施例公开的一种打洞流程示意图;图3为本专利技术实施例公开的一种NAT穿透装置结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。以端口限制型NATA网络内部的主机A向端口限制型NATB网络内部的主机B发起打洞为例,标准的打洞流程为:1、主机A和主机B分别和打洞服务器S建立连接,S得到主机A和主机B的IP地址和端口号。2、主机A从打洞服务器S得到主机B的IP地址和端口号。3、主机A向主本文档来自技高网
...
一种NAT穿透方法及装置

【技术保护点】
一种NAT穿透方法,其特征在于,应用于第一主机,所述方法包括:当所述第一主机和第二主机分别和打洞服务器建立连接后,通过所述打洞服务器获取所述第二主机的IP地址和端口号;设置第一打洞请求数据包的生存时间值;根据所述第二主机的IP地址和端口号,向所述第二主机发送所述第一打洞请求数据包,使所述第一打洞请求数据包被发送到所述第一主机的NAT且不能被发送到所述第二主机的NAT;向所述打洞服务器发送协助打洞请求,使所述打洞服务器向所述第二主机发送所述第一主机的IP地址和端口号,以使所述第二主机根据所述第一主机的IP地址和端口号向所述第一主机发送第二打洞请求数据包;当接收到所述第二主机发送的第二打洞请求数据包时,向所述第二主机发送第三打洞请求数据包,所述第一主机与所述第二主机间的P2P连接建立。

【技术特征摘要】
1.一种NAT穿透方法,其特征在于,应用于第一主机,所述方法包括:当所述第一主机和第二主机分别和打洞服务器建立连接后,通过所述打洞服务器获取所述第二主机的IP地址和端口号;设置第一打洞请求数据包的生存时间值;根据所述第二主机的IP地址和端口号,向所述第二主机发送所述第一打洞请求数据包,使所述第一打洞请求数据包被发送到所述第一主机的NAT且不能被发送到所述第二主机的NAT;向所述打洞服务器发送协助打洞请求,使所述打洞服务器向所述第二主机发送所述第一主机的IP地址和端口号,以使所述第二主机根据所述第一主机的IP地址和端口号向所述第一主机发送第二打洞请求数据包;当接收到所述第二主机发送的第二打洞请求数据包时,向所述第二主机发送第三打洞请求数据包,所述第一主机与所述第二主机间的P2P连接建立。2.根据权利要求1所述的方法,其特征在于,所述设置第一打洞请求数据包的生存时间值,包括:获取所述第一主机到目标节点的路由追踪结果,所述目标节点为所述第一主机的NAT网络外部的节点;根据所述路由追踪结果,确定所述第一主机与所述目标节点之间公网地址网络节点前的私网地址网络节点的数量M;将所述第一打洞请求数据包的生存时间值设置为M+1。3.根据权利要求2所述的方法,其特征在于,所述获取所述第一主机到目标节点的路由追踪结果,包括:获取所述第一主机到所述打洞服务器的路由追踪结果。4.根据权利要求2所述的方法,其特征在于,所述获取所述第一主机到目标节点的路由追踪结果,包括:获取所述第一主机到预设服务器的路由追踪结果。5.根据权利要求2所述的方法,其特征在于,所述获取所述第一主机到目标节点的路由追踪结果,包括:获取所述第一主机到所述第二主机的路由追踪结果。6.一...

【专利技术属性】
技术研发人员:王亚楠袁鹏肖剑庹虎
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京,11

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

1