论文部分内容阅读
软交换网络使用先进的电话交换和IP网络包来传输语音、数据和多媒体信息,是一个采用标准化协议和应用编程接口(API)的开放体系结构。其重要特性包括应用分离、呼叫控制和承载控制等。随着软交换网络逐步走向实际应用,SIP(Session Initiation Protocol)协议已经成为IP通信网络中的关键性信令传输协议。作为在网络中心提供电话业务的SIP服务器,即要有实时响应的速度,也要有足够的稳定性以满足电信设备高可靠度的要求。
目前常见的开源SIP协议栈,都没能很好地解决性能、稳定性的问题。在国内已经部署的SIP网络中常常能见到协议栈在话务高峰期出现崩溃、内存泄露等严重故障,导致业务中断。本文针对以上问题,开发了一个高效、稳定的新SIP协议栈——NSIP。主要工作包括:
(1)以RFC3261规范为蓝本,分析了SIP协议的层次结构,以分层、模块化的方法设计了一种协议栈的实现方案。
(2)针对SIP协议栈普遍存在的解码效率问题,设计了新的解码引擎,采用部分解码、逐行扫描报文的技术,达到节省CPU时间,提高效率的目的。
(3)为降低等待互斥锁带来的性能瓶颈,设计并实现了新的动态内存管理模式,并对此模式带来的效率提高进行了理论分析,给出了新模式需要的内存池大小计算公式。
(4)对RFC3261规定的事务层状态机进行了改进,统一了呼叫成功、失败时候的状态变迁过程。按照RFC3261的规定,协议栈用户需要具备协议栈的一部分功能,这带来了代码的冗余。NSIP所做的改进消除了冗余,促进了系统的稳定,并且使用了Hash表技术,提高了字符串查找速度。
(5)在开发后期对SIP协议栈进行了性能测试。主要使用了大话呼模拟器工具在短时间内对运行SIP协议栈的服务器发送大量呼叫,使系统的负荷达到最大值,测试SIP服务器在极限状态下处理呼叫的成功率。同时比较了几种常用协议栈在同等测试条件下的性能参数,证实了NSIP协议栈性能的优越性。