基于UDP协议的NAT穿透技术研究与仿真

基于UDP协议的NAT穿透技术研究与仿真

ID:46419992

大小:69.00 KB

页数:5页

时间:2019-11-23

基于UDP协议的NAT穿透技术研究与仿真_第1页
基于UDP协议的NAT穿透技术研究与仿真_第2页
基于UDP协议的NAT穿透技术研究与仿真_第3页
基于UDP协议的NAT穿透技术研究与仿真_第4页
基于UDP协议的NAT穿透技术研究与仿真_第5页
资源描述:

《基于UDP协议的NAT穿透技术研究与仿真》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于UDP协议的NAT穿透技术研究与仿真基于UDP协议的NAT穿透技术研究与仿真摘要:NAT穿透技术能够有效解决由于IP地址短缺和路由表增大造成的用户接入困难的问题,可缓解因网络地址的严重消耗造成的IPv4资源稀缺的情况。针对这种情况进行了基于UDP协议的NAT穿透技术研究与仿真。首先分析NAT穿透的类型及各自的原理,提出对于NAT穿透相对有效的UDP打洞方案,然后通过穿透原理得出算法结构流程,最后在VC++环境下进行仿真实验。实验结果表明,该算法结构能够有效地实现NAT穿透目的,而且具有可拓展性,可在较多情况下适用。关键词:网络地址;NAT穿透;NAT类型;UD

2、P打洞中图分类号:TP393.02文献标志码:A文章编号:1006-88228(2014)06-12-030引言NAT又名网络地址转换,在如今IP地址越来越稀缺的情况下产生,主耍为了解决地址重用的问题。众所周知,在TCP/IP协议中,有三个IP地址区域作为私有地址而被专门保留。1NAT分类1.1基本的NAT由于内网的IP地址不允许在网络上出现,内部数据包的IP地址需转换后才能对外发送,所以在同一时间内,全子网内只有小部分IP地址能够对应到外部全球惟一的IP地址[2]o基本的NAT设备将会改变数据包屮的原IP地址,但是不会改变数据包中相应的端口数据。1.2NAPTN

3、APT全名为网络地址/端口转换器,由其名称可以看出凡是经过此设备的IP数据包,不仅数据包内的IP地址会被修改,而且数据包内的TCP/UDP端口数据也会被修改。它可允许内网多个计算机对应一个全球惟一的IP地址[3]。由于端口修改的方法不同,因而又可分为圆锥型和对称型两种。⑴ConeNAT(圆锥型)在一个客户机(拥有私有地址与端口号)与另一个客户机(拥有公有地址与端口号)建立端口映射之后,只耍是当前仍然存在会话在利用此端口映射,那么它就可以用这个端口映射继续处理后续的会话。然而,当位于NAT后的主机与外网的主机建立连接之后,NAT接受外部连接的自由程度是不同的,由此可

4、以把此类型进一步分类。但是耍注意这个分类一般只适用于UDP传输,因为对于TCP连接,只有在有专门的配置情况下才会建立。ConeNAT分类之后为下面三种情况。①FullConeNAT(完全圆锥型)2NAT穿透原理分析若想用软件实现NAT技术,一种方法是通过扩展应用层协议,使其具有NAT路由的功能;另一种方法则是把应用层协议中的私有地址直接修改为公网地址。但是,由于NAT类型的不同,通过修改应用层协议地址[4]的方法并不能通用,尤其当是SymmetricNAT类型的吋候,其预先获得的公网地址与实际转换后的公网地址有可能不相同[5]。NAT穿透需要分析下面三种情况。首先

5、,双方都是SymmetricNAPT。此情况由于端口号分配的不同,不支持穿透。其次,双方都是ConeNAPTo这种情况是我们所期望的,可以进行穿透。最后,两方分别是SymmetricNAPT和ConeMAPT。这种情况稍复杂些,假设A是SymmetricNAT,B是ConeNAT,由文献分析[6]可知,不管是A先连接B还是B先连接A,在一方的NAT接收到数据包后,由于查询口己的映射表无法找到相对应映射项而会将包丢弃,从而导致连接失败。因此,根据上述分析可以得出,只有当连接两端的设备都为ConeNAT的情况下,才能实现基于UDP协议的内网穿透。3UDP打洞技术当前发

6、展较快的穿透技术是一种借助于公网服务器来完成NAT穿透的技术,称为HolePunching技术[7]。此技术属于一种中继方案,主要用來解决通信两端都在NAT设备之后的情况,如今这类情况比较常见。与其他解决方案和比,此技术比较简单通用,穿透原理如图5所示。从图5可以看出,客户机A和客户机B(下面简称A和B)分别向服务器S注册,因此服务器知道了它们的私网地址和转换后的公网地址。在A希望与B建立连接吋,A会先向服务器S发送连接请求,服务器S会把B的公网、私网的地址都返回给A,同时还会把A的连接请求和A的公网与私网地址发给至此A和B都能知道彼此的公、私网地址。可知A、B与

7、服务器Z间的通讯仅仅是为了打开通往服务器的通道,并通过不断发送消息保持通道的存在。接下来,当A得知B的公网、私网地址后,A会同时向这两个地址发起连接。如果A和B同在一个NATZ后,B会先在私网地址上收到A的连接请求,这样A与BZ间的通讯就不会有NAT的介入;而如果A和B处在不同NAT之后,那么A发往B私网地址的连接将会无法路由或者被错误路由到不相关的终端,从而被丢弃,而A发往B公网地址的连接会顺利到达B所在的NAT。同样,在B得知A的公网、私网地址Z后也会发起连接,情况与A和同。此时,A和B前的NAT设备已经记住了对方的IP地址和端口信息,对彼此处于敞开状态,即被

8、在内部打洞

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。