1 / 7
文档名称:

HASH 技术在SIP 服务器中的应用.doc

格式:doc   页数:7
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

HASH 技术在SIP 服务器中的应用.doc

上传人:你是我的全部 2013/9/22 文件大小:0 KB

下载得到文件列表

HASH 技术在SIP 服务器中的应用.doc

文档介绍

文档介绍:HASH技术在SIP服务器中的应用
曹晨
(重庆邮电大学通信与信息工程学院重庆 400065)
摘要:本文简要介绍了SIP产生的背景以及SIP网络服务器的功能,引出了服务器需要快速查找用户信息的需求,提出了引进HASH技术来解决的两种方案,除留余数法构造HASH函数和二维数组构造HASH函数,通过性能的比较,二维数组构造HASH函数通过空间换时间的方法更能提高服务器的性能。
关键词:SIP,HASH, 除留余数法,二维数组
引言
在目前固网运营商的众多业务中,语音业务毫无疑问是“最大的一块蛋糕”,sip协议作为下一代网络(NGN)的重要协议,基于sip的Voip必定成为新兴运营商抢占语音市场的利器,随着voip技术的普及,sip用户的增加,提高sip网络服务器在大量的数据中查找所需用户信息的速度成为了亟待解决的问题。
网络服务器
为了保证代理服务器能够找到用户位置,SIP用户代理(UA)必须注册到注册服务器(Register Server)上,注册服务器接受来自UA的注册消息,取出其中的位置信息(IP地址、端口和用户名),存储到定位服务器(Location Server)。定位服务器的目的是映射电话号码到IP地址。定位服务器供代理服务器(Proxy Server)使用。当代理服务器接收一个邀请,它将查询定位数据库,找到被叫的IP地址和端口,发送给主叫方,流程如图2-1所示。
图2-1 网络服务器功能模型
REGISTER消息发送到注册服务器,注册成功以后,将发送200 OK应答给电话,表明注册已经成功。每个注册都有一个生命期,超时头字段expire决定注册消息的有效时间。用户代理必须定期刷新注册信息,否则超时以后,注册记录将不可用。
HASH技术的引入
注册服务器各进程在处理REGISTER消息时,要在定位服务器中申请注册用户数据区,将用户数据存储在数据库中,并按索引值id从小到大的顺序依次排列。由于各进程对用户数据的处理是异步过程,就需要根据用户逻辑账号快速查找到该注册用户数据区的索引值,从而定位此注册用户的数据区。
查找的效率直接影响服务器的性能。现有的方法是,对收到的REGISTER消息的后续相关消息进行解码后,以用户逻辑账号为关键字对全部用户数据区进行逐个匹配,即通过将关键字与数据区的各项进行直接比较而达到查找目的,这种处理方法在实时性要求很高的通信系统中显得效率低下。
本文引入HASH技术进行查找,通过对关键字做某种运算后直接确定所要查找的数据区索引值,即以用户的逻辑账号作为关键字,通过HASH函数的运算得到HASH表地址,然后找到对应的注册用户数据区索引值。
HASH方案的设计与实现
HASH函数的构造方法有很多种,但针对具体应用构造HASH函数时,要考虑三个方面的因素:HASH函数的计算要简单,各关键字尽可能均匀地分布在HASH表中,解决不可避免的HASH冲突。
除留余数法构造HASH函数
本文以1000个数据区为例,用户的逻辑账号是一个十进制的电话号码,采用除留余数法来构造HASH函数,由于注册用户数据区的最大个数是1000,因此需要设定HASH表长m为1000,关键字key对某个不大于m的数p取余后即为HASH地址,为了减少HASH冲突,这里的p也取1000,只有当账号的后3位相同时,才会