论文部分内容阅读
NGN(NextGenerationNetwork,下一代网络)是基于分组技术的网络,能提供多种电信级业务,满足人们对各种新业务的需求。其中,在NGN上提供实时语音和多媒体业务是当前的热点。 与此同时,人们注意到,全球的IP地址资源匮乏。解决IP地址匮乏问题的方案主要有CIDR,NAT和IPv6,其中NAT是一种已经广为使用的技术。当位于内部网络的节点与公众网络的节点进行通信时,在IP分组从源地址到达目的地址的过程中,NAT修改该IP分组中的源、目的地址和端口,通过这种修改将私有IP地址映射到全球唯一的IP地址。而基于SIP协议的多媒体通信需要通过信令消息中的IP地址和端口来实现目的地寻址,因此内网的用户在穿越NAT和外网用户通信时不仅需要对TCP/UDP层的端口信息以及IP层的源地址和目的地址进行转换,还需要对IP分组中的信令消息所涉及的私有地址进行转换,由此产生了SIP协议的NAT穿越问题。随着NGN开始步入商业性的规模应用,SIP协议作为目前通信界最活跃的通信协议之一,研究SIP协议的NAT穿越问题无疑具有十分重要的实用意义。 本文在介绍SIP及其相关协议的基础上,实现了一个基于MSRTC的SIPPhone。随后对NAT的工作机制进行了分析,深入研究SIP穿越NAT的过程,在此基础上分析了三种NAT穿越的解决方案:客户端解决方案,路由边界解决方案和服务器端解决方案。 通过比较各自的优缺点,本文决定使用STUN协议来解决SIP媒体流穿越NAT的问题,设计穿越函数RTCPortManager,使用STUN取到IP地址和端口的映射关系,修改SIP和SDP消息的内容,从而实现穿越。对于对称NAT,本文也分析了其解决方案。