一种获取NAT上端口映射的方法及系统技术方案

技术编号:21719435 阅读:29 留言:0更新日期:2019-07-27 21:55
本发明专利技术公开一种获取NAT上端口映射的方法及系统,接收第一主机向第二主机发起连接失败后发送的第一地址信息,所述第一地址信息包括第一主机和第二主机的地址信息,所述第一主机和第二主机分别位于不同的NAT之后;触发或通知第三主机根据所述第一地址信息伪装成所述第二主机,枚举并获取所述第一主机在对应的NAT上的映射端口,第三主机发送的信息被路由时,其IP头中的源地址IP不变;不仅保证了所获取的NAT上的映射端口的准确性,而且能够适用各种类型的NAT,包括对称型NAT,能够屏蔽对称型NAT前后两次的端口不同引起的连接问题,提高了不同NAT类型组合的连接成功率,通用性好,能够实现P2P通信在各种类型的NAT中的穿越,从而保证P2P通信在NAT网络中的顺畅进行。

A Method and System for Obtaining Port Mapping on NAT

【技术实现步骤摘要】
一种获取NAT上端口映射的方法及系统
本专利技术涉及网络地址转换领域,尤其涉及一种获取NAT上端口映射的方法及系统。
技术介绍
NAT(NetworkAddressTranslation,网络地址转换)是将私网转换为公网的装置,其作为一网关,设置在私网到公网的路由出口位置,双向流量都必须经过NAT网关。NAT网关在两个访问方向上完成两次地址的转换或翻译,出方向做源信息替换,入方向做目的信息替换。NAT的使用不仅解决了IP地址不足的问题,而且还能有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。但是,NAT最大的一个弊端在于破坏了IP协议架构中所有节点在通讯中的对等地位,NAT网络环境中网络访问只能先由私网侧发起,公网主机无法主动访问私网主机。但是,在P2P通信中,P2P主机位于网关后面的情况屡见不鲜,而P2P通信又要求通信双方都能够主动发起访问,所以NAT的上述弊端阻碍了P2P通信在NAT网络环境中的有效进行,为了解决IP问题,其端到端的应用在NAT环境下遇到了上述问题,现有技术中出现了各种各样的NAT穿越技术,比如STUN和TURN技术。对于一对多的NAT模型,按照端口转换的工作方式的不同,可以进一步划分成如下四种类型:全锥形(FullCone)NAT:这种NAT内部的主机A连接过外网主机C后,NAT会打开一个端口,则外网的任何发到这个打开的端口的UDP数据都可以到达A,而不管是不是C发过来;地址限制锥形(Restricted)NAT:这种NAT内部的主机A连接过外网的主机C后,NAT打开一个端口,则C可以用任何端口和A进行通信,其他的外网主机则不行;端口限制锥形(PortRestricted)NAT:这种NAT内部的主机A连接过外网的主机C后,NAT打开一个端口(Port),则C可以使用这个端口与A通信,其他的外网主机则不行;对称型(Symmetric)NAT:这种NAT连接不同的外部目标,原来NAT打开的端口会变化,即使内部主机使用之前用过的地址端口对去连接不同外部主机时,NAT网关也会建立新的映射关系,也就是说,如果任何外网主机想要发送数据给内网主机,则它首先应该收到内网主机发给它的数据,然后才能往回发送,否则,即使它知道内网主机的一个地址端口对,也不能发送数据给内网主机。针对上述四种不同类型的NAT各自的工作机制,前三种NAT统称为锥形(Cone)NAT,这种类型的NAT在映射过程中,对于内网主机的同一个地址端口对,访问不同的外网(IP:Port)时,锥形(Cone)NAT为其映射的端口不会变化,所以对于这种NAT可以进行UDP打洞实现对NAT的穿越。但是,对于对称型(Symmetric)的NAT,连接不同的外部主机,原来NAT打开的端口会变化,所以这种类型的NAT无法实现UDP-P2P通信。现有的NAT穿越技术无法保证在各种类型的NAT中均能够实现各个主机之间的互联互通,实现顺畅的P2P通信。
技术实现思路
本专利技术所要解决的技术问题是:提供一种获取NAT上端口映射的方法及系统,能够实现P2P通信在各种类型的NAT中的穿越,通用性好。为了解决上述技术问题,本专利技术采用的一种技术方案为:一种获取NAT上端口映射的方法,包括步骤:S1、接收第一主机向第二主机发起连接失败后发送的第一地址信息,所述第一地址信息包括第一主机和第二主机的地址信息,所述第一主机和第二主机分别位于不同的NAT之后;S2、触发或通知第三主机根据所述第一地址信息伪装成所述第二主机,枚举并获取所述第一主机在对应的NAT上的映射端口,所述第三主机发送的信息被路由时,其IP头中的源地址IP不变。为了解决上述技术问题,本专利技术采用的另一种技术方案为:一种获取NAT上端口映射的系统,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:S1、接收第一主机向第二主机发起连接失败后发送的第一地址信息,所述第一地址信息包括第一主机和第二主机的地址信息,所述第一主机和第二主机分别位于不同的NAT之后;S2、触发或通知第三主机根据所述第一地址信息伪装成所述第二主机,枚举并获取所述第一主机在对应的NAT上的映射端口,所述第三主机发送的信息被路由时,其IP头中的源地址IP不变。本专利技术的有益效果在于:在第一主机向第二主机发起连接失败时,通过第三主机伪装成第二主机,枚举所述第一主机在对应的NAT上的映射端口,从而获取所述第一主机在对应的NAT上的映射端口,通过伪装接收方并用枚举的方式获取发送方在其对应的NAT上的映射端口,由于所述第三主机发送的信息被路由时,其IP头中的源地址IP不变,所以其伪装成第二主机通过第一主机对应的NAT后,所述信息的源地址IP仍然为第二主机的,所以其能够被第一主机正确识别到,从而顺利获取所述第一主机在对应的NAT上的映射端口,不仅保证了所获取的NAT上的映射端口的准确性,而且能够适用各种类型的NAT,包括对称型(Symmetric)NAT,能够屏蔽对称型(Symmetric)NAT前后两次的端口不同引起的连接问题,提高了不同NAT类型组合的连接成功率,通用性好,能够实现P2P通信在各种类型的NAT中的穿越,从而保证P2P通信在NAT网络中的顺畅的进行。附图说明图1为本专利技术实施例的一种获取NAT上端口映射的方法的步骤流程图;图2为本专利技术实施例的一种获取NAT上端口映射的系统的结构示意图;图3为本专利技术实施例的信息的IP头的结构示意图;图4为本专利技术实施例的一种获取NAT上端口映射的方法的实现流程图;标号说明:1、一种获取NAT上端口映射的系统;2、存储器;3、处理器。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。请参照图1,一种获取NAT上端口映射的方法,包括步骤:S1、接收第一主机向第二主机发起连接失败后发送的第一地址信息,所述第一地址信息包括第一主机和第二主机的地址信息,所述第一主机和第二主机分别位于不同的NAT之后;S2、触发或通知第三主机根据所述第一地址信息伪装成所述第二主机,枚举并获取所述第一主机在对应的NAT上的映射端口,所述第三主机发送的信息被路由时,其IP头中的源地址IP不变。从上述描述可知,本专利技术的有益效果在于:在第一主机向第二主机发起连接失败时,通过第三主机伪装成第二主机,枚举所述第一主机在对应的NAT上的映射端口,从而获取所述第一主机在对应的NAT上的映射端口,通过伪装接收方并用枚举的方式获取发送方在其对应的NAT上的映射端口,由于所述第三主机发送的信息被路由时,其IP头中的源地址IP不变,所以其伪装成第二主机通过第一主机对应的NAT后,所述信息的源地址IP仍然为第二主机的,所以其能够被第一主机正确识别到,从而顺利获取所述第一主机在对应的NAT上的映射端口,不仅保证了所获取的NAT上的映射端口的准确性,而且能够适用各种类型的NAT,包括对称型NAT,能够屏蔽对称型NAT前后两次的端口不同引起的连接问题,提高了不同NAT类型组合的连接成功率,通用性好,能够实现P2P通信在各种类型的NAT中的穿越,从而保证P2P通信在NAT网络中的顺畅进行。进一步的,所述步骤S2包括:触发或通知第三主机向第一主本文档来自技高网
...

【技术保护点】
1.一种获取NAT上端口映射的方法,其特征在于,包括步骤:S1、接收第一主机向第二主机发起连接失败后发送的第一地址信息,所述第一地址信息包括第一主机和第二主机的地址信息,所述第一主机和第二主机分别位于不同的NAT之后;S2、触发或通知第三主机根据所述第一地址信息伪装成所述第二主机,枚举并获取所述第一主机在对应的NAT上的映射端口,所述第三主机发送的信息被路由时,其IP头中的源地址IP不变。

【技术特征摘要】
1.一种获取NAT上端口映射的方法,其特征在于,包括步骤:S1、接收第一主机向第二主机发起连接失败后发送的第一地址信息,所述第一地址信息包括第一主机和第二主机的地址信息,所述第一主机和第二主机分别位于不同的NAT之后;S2、触发或通知第三主机根据所述第一地址信息伪装成所述第二主机,枚举并获取所述第一主机在对应的NAT上的映射端口,所述第三主机发送的信息被路由时,其IP头中的源地址IP不变。2.根据权利要求1所述的一种获取NAT上端口映射的方法,其特征在于,所述步骤S2包括:触发或通知第三主机向第一主机发送信息,所述信息的IP头的源地址根据所述第一地址信息伪装为第二主机的IP地址和端口,对所述信息的目标端口的所有可能端口进行枚举,获取所述第一主机在对应的NAT上的映射端口。3.根据权利要求2所述的一种获取NAT上端口映射的方法,其特征在于,对所述信息的目标端口的所有可能端口进行枚举,获取所述第一主机在对应的NAT上的映射端口包括:对所述信息的目标端口的所有可能端口进行枚举,判断所述信息是否到达所述第一主机的应用程序,若是,则所述信息对应的目标端口为所述第一主机向第二主机发起连接时在其对应的NAT上的映射端口。4.根据权利要求2所述的一种获取NAT上端口映射的方法,其特征在于,所述触发或通知第三主机向第一主机发送信息,对所述信息的目标端口的所有可能端口进行枚举包括:将所述信息的目标端口的所有可能端口分成预设段,触发或通知与所述预设段数目相同的第三主机分别向第一主机发送信息,每一第三主机分别对应枚举目标端口的一段端口,不同第三主机枚举的端口段不同。5.根据权利要求1至4中任一项所述的一种获取NAT上端口映射的方法,其特征在于,还包括步骤:S3、触发或通知所述第一主机将所述映射端口通过信令发送给所述第二主机,以使得所述第二主机根据所述映射端口向第一主机发起连接。6.一种获取NAT上端口映射的系统,包括存储器、处理器以及存储在所述存储器上并...

【专利技术属性】
技术研发人员:吴必磊庄奇东
申请(专利权)人:深圳梨享计算有限公司
类型:发明
国别省市:广东,44

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

1