论文部分内容阅读
随着互联网的迅速发展,越来越多的用户连入网络,使得原有的IPv4地址资源日渐匮乏,为了解决这个问题,人们提出了多种解决方案。其中长期有效的根本解决方案是扩充IP地址资源,IPv4的资源地址向IPv6转换,而短期有效的解决方案是利用网络地址转换技术(NAT),它很好地缓解了地址短缺问题。目前实际网络中已经大量部署了NAT的设备。NAT技术的出现一方面解决了地址紧缺问题,同时也隐藏了内部网络拓扑,带来了一定的安全性。然而它也带来了一定的负面问题:NAT技术的引入破坏了IP网络互联模型,阻止了外网主机发起主动对内网主机的连接。近几年来,基于P2P网络技术的应用迅速发展起来。以BT、Emule为代表的P2P网络下载软件,以QQ、GTalk为代表的网络聊天软件,以PPLive、Skypy为代表的音、视频流软件给Internet用户带来了巨大的便利和效益,它们充分利用了网络带宽,大大提高了带宽的利用率。P2P技术要求点到点的对等的连接与通信。然而NAT技术却严重阻碍了P2P应用的发展,因为NAT技术改变了网络数据包的地址信息,使得对等连接无法成功建立,因此许多P2P应用无法运行在NAT网关设备存在的私有网络环境中。为了解决这个问题,业界提出了一些相应的解决方案,这些方案可以大致分为用户端进行干预的解决方案和对网络NAT设备进行功能升级的解决方案。前者的代表性解决方案有STUN方法和TURN方法等,而后者的代表性解决方案则包括UPnP穿越NAT解决方案,ALG方式等。这些解决方案有各自的优点和不足,在实际应用的时候应该从升级要求、网络业务量、网络质量、投资状况等角度进行综合考虑,选择适当的解决方案。本文首先讨论了NAT技术原理和工作流程,并且根据NAT的行为特性,对它们进行了STUNT分类,本文对于这些不同类型的NAT进行了比较深入的分析和研究。然后,本文讨论了目前几种比较流行的NAT穿越技术、不同NAT穿越解决方案的差别,接着选择了其中的STUN方案进行进一步的研究和改进。作为一种在用户端进行干预的NAT穿越解决方案,STUN方法具有系统负担小、易实现、可以实现多级NAT管理等优点。但是,STUN方法无法实现对称型NAT的穿越,而在多数对安全性要求较高的企业网中,使用的通常是对称型NAT。为了解决这个问题,我们提出了一种基于STUNT方法的NAT穿越解决方案:端口预测STUNT方案。此方法采用端口预测技术和端口遍历技术,通过获取足够的信息来预测建立连接时所使用的外部IP地址和端口,从而完成STUNT方法无法完成的对称型NAT穿越。在此改进方案中,预测的成功率受到多方面因素的影响,我们对其中的主要因素进行了分析,并提出了相应的解决方案来确保预测的高成功率,如缩短临界时间长度,失败重试以及多端口预测等。本文最后对改进的STUNT方案进行了系统及模块的详细设计,进一步说明此方案的可行性。由于本文提供的设计是基于模块的,所以它更容易扩展。对于每一个具体的功能模块给出了详细的设计方案和建议。本文还给出了测试的结果与分析。