[发明专利]一种确定NAT类型的方法及装置有效
申请号: | 201010143479.6 | 申请日: | 2010-03-03 |
公开(公告)号: | CN102196057A | 公开(公告)日: | 2011-09-21 |
发明(设计)人: | 王志华;陈谦;鲁小锁;邵颖哲 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | H04L29/12 | 分类号: | H04L29/12;H04L29/06 |
代理公司: | 北京派特恩知识产权代理事务所(普通合伙) 11270 | 代理人: | 张颖玲;蒋雅洁 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 确定 nat 类型 方法 装置 | ||
技术领域
本发明涉及网络地址转换(NAT)技术,尤指一种确定NAT类型的方法及装置。
背景技术
随着接入Internet的计算机数量的不断猛增,因特网协议(IP)地址资源也就愈加显得捉襟见肘,在这种情况下,网络地址转换(NAT)技术便应运而生了。一时间,NAT作为一种解决IPv4地址短缺以避免保留IP地址困难的方案而流行起来。不仅如此,通过使用NAT技术还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。虽然NAT技术在解决IP地址资源短缺以及保护内部计算机方面起到了积极作用,但是,另一方面,NAT技术也无疑与互联网的开放特性背道而驰,使许多应用受到了极大的影响。为此,人们开始研究如何穿越NAT,STUN协议在此起到了积极的作用,通过使用STUN协议,可以检测出位于NAT之后的客户端的NAT类型以及经过转换后所对应的公网IP地址和端口,为后期的打洞以及端到端(P2P)系统中的节点选择起到了至关重要的作用。
常见的NAT类型可分为四种,分别是完全圆锥型NAT(Full Cone NAT)、受限圆锥型NAT(Address Restricted Cone NAT)、端口受限圆锥型NAT(Port-Restricted Cone NAT),以及对称NAT(Symmetric NAT)。下面分别对这四种NAT类型进行简单介绍。
1)完全圆锥型NAT,也就是一对一的NAT。
一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自(iAddr:port1)的包都经由(eAddr:port2)向外发送。任意外部主机都能通过给(eAddr:port2)发包到达(iAddr:port1)。
2)受限圆锥型NAT。
一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自(iAddr:port1)的包都经由(eAddr:port2)向外发送。在内部地址(iAddr:port1)之前发送过包到任意外部主机(hostAddr:any)的情况下,任意外部主机(hostAddr:any)都能通过给(eAddr:port2)发包到达(iAddr:port1),其中,“any”也就是说端口不受限制。
3)端口受限圆锥型NAT。类似受限圆锥型NAT(Restricted cone NAT),还包括端口限制。
一旦一个内部地址(iAddr:port1)映射到外部地址(eAddr:port2),所有发自(iAddr:port1)的包都经由(eAddr:port2)向外发送。在内部地址(iAddr:port1)之前发送过包到外部主机(hostAddr:port3)的情况下,一个外部主机(hostAddr:port3)能够发包到达(iAddr:port1)。
4)对称NAT。
每一个来自相同内部IP与port的请求到一个特定目的地的IP地址和端口,都被映射到一个独特的外部来源的IP地址和端口。同一个内部主机发出一个信息包到不同的目的端,将使用不同的映射。
STUN协议的全称是Simple Traversal of User Datagram Protocol ThroughNetwork Address Translate-ors,主要功能是检测是否位于NAT后面,如果位于NAT后面,经过NAT转换后的地址和端口是什么,另外可以检测NAT的类型。
STUN协议的基本思想是:在私网内部安装一个STUN客户端(STUNClient),在公网上安装两个STUN服务器(STUN Server),STUN协议定义了一些消息格式,大体上分成请求/响应Request/Response,STUN Client向STUNServer发送Request,STUN Server发送Response给STUN Client。在STUN Server收到来自STUN Client的UDP包后,STUN Server将接收到该用户数据报协议(UDP)包的地址和端口,并利用UDP传回给STUN Client,STUN Client将收到的地址和端口与本机的IP地址和端口进行比较,如果不同,说明在NAT后面,否则,说明就位于NAT之前(即没有经过地址转换的IP)。
为了检测出不同类型的NAT,STUN协议定义了一些消息属性,要求STUNServer有不同的动作,比如发送响应时使用不同的IP地址和端口,或者改变端口等等。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010143479.6/2.html,转载请声明来源钻瓜专利网。