论文部分内容阅读
在IPv6短期内难以在全球广泛使用的今天,NAT仍是解决IP地址资源匮乏问题的重要途径。然而,由于它改变了私网数据包的包头IP地址信息,造成端到端的连接难以建立,使得NAT技术反而成为VoIP应用的障碍。如何使拥有私网IP地址的用户能够正常通信,成为VoIP应用中亟待解决的棘手难题。因此,NAT环境下私网用户的互通性研究,对于VoIP系统的大规模应用,无疑具有十分重大的意义。
本文首先通过对NAT技术的分析,综合比较目前主流的NAT穿越解决方案,主要借鉴STUN和TURN协议的设计思想,提出了一种基于UDP的NAT穿越方法UTN。它通过NAT类型探测技术收集到足够的信息,以获取建立连接时所需要的NAT外部映射IP地址和端口;采用信令语音全代理技术,专注于对称型NAT的穿越处理,从而完成任何情况下的NAT穿越和端到端连接的建立。接着,本文在UTN方法的基础上,设计了一个多线程多路代理的框架结构,详细分析了其设计方案。并且,通过线程调度机制,在维持较高成功率的同时,将框架的性能负担维持在一个较低的水平。然后,将设计的框架应用到项目实践之中,采用模块化技术,实现了一个代理服务器系统,并自动完成对不同NAT类型的识别和穿越,建立相应的端到端连接。最后,对代理服务器进行了一系列测试,包括基本呼叫功能测试、语音质量测试、性能测试及异常情况测试。测试的结果表明:UTN方法确实能够实现对任何NAT类型下信令及语音流的穿越。
目前,该代理服务器配合客户端和中心服务器已经在Linux2.4.9-e.3平台上测试并成功运行,效果良好。文中提出的观点和具体方案可以指导企业有效地开发出具有可扩展性、可移植性、可重用性的NAT穿越系统。
文章最后对所做的研究工作进行了总结,同时也指出了研究中有待完善的地方,不足之处将是下一步的研究方向。