浅析CSCF集群的实现方法
2013-10-27张毅
张 毅
(中国电子科技集团公司第三十研究所,四川 成都 610041)
0 引言
近年来,随着 IMS技术的日益成熟与完善而被越来越广泛的应用到通信领域中。其中CSCF是IMS系统中最核心的呼叫控制网元,主要负责各种会话的创建、维持和拆除等功能,所以人们对其稳定性、扩容性、抗毁性等提出了越来越高的要求,可以通过将集群技术与CSCF相结合的方法来满足这些需求。而SIP协议作为CSCF最为重要的协议,所以在CSCF集群技术的研究中也是必须突破的一个重点。
1 IMS核心的呼叫控制网元
IMS系统中最核心的呼叫控制网元[1]CSCF可以细分为代理CSCF(P-CSCF,Proxy CSCF)、问询CSCF(I-CSCF,Interrogating CSCF)和服务CSCF(S-CSCF,Serving CSCF)三类。
P-CSCF主要提供转发从用户来的SIP消息到相应的 I-CSCF或者 S-CSCF;转发从 I-CSCF或者S-CSCF来的SIP消息到用户等功能。
I-CSCF主要提供从归属用户服务器(HSS,Home Subscriber Server)处得到S-CSCF的地址;在用户注册时为其分配 S-CSCF;转发 SIP消息到S-CSCF等功能。
S-CSCF是IMS呼叫控制中最重要的一类网元,主要提供注册注销、会话的管理控制和路由功能,并且能够根据从HSS处下发的过滤规则进行相应的业务触发[2],实现与应用服务器(AS,Application Server)之间的交互,从而为用户提供更为丰富的业务。
2 服务器集群
服务器集群系统通俗的讲就是把多台服务器通过快速通信链路连接起来,从外部看来这些服务器就像一台服务器在工作,而从内来说外面来的负载通过一定的机制动态的分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。
集群系统具有高可伸缩性[3]、高可靠性、高性能和高可管理性[4]等优点。其中高可伸缩性是指可以根据用户的实际需求通过增加或者删除集群中的服务器节点从而达到扩容或者降低成本等目的;高可靠性是指当集群中的某台服务器工作失效时,集群中另一台服务器可以快速的接替其工作,从而避免因单点失效而无法为用户服务的情况;高性能是指可以通过负载均衡技术把工作负载合理的分配到集群的各个服务器上,从而提高整体的运行效率;高可管理性是指在运维管理上可以把整个集群作为一个单一的系统来进行管理[4]。
3 SIP协议
SIP协议[1]是 IMS系统中用于呼叫控制的最核心的协议,此协议用于用户与 P-CSCF以及三种CSCF之间的会话控制过程,可提供会话管理、确定被叫是否可用、主被叫双方会话参数的建立、确定会话所使用的媒体等功能[5]。
SIP定义了两种类型的消息:请求,从客户机发到服务器的消息,如 INVITE、ACK、BYE、REGISTER等;响应,从服务器返回客户机的消息,如成功响应2XX、临时响应1XX等。
SIP消息由起始行、头域和消息体三部分组成。
1)起始行:位于每个SIP消息的开头,起始行包含的内容有消息类型和协议版本。
2)头域:SIP头在语法和语义上与超文本传输协议(HTTP,Hypertext Transfer Protocol)的头域相同,其格式为<名字>:<值>。SIP的头域类型很多,如Via头域、Route头域、From头域、To头域等,其作用都是用来传递消息属性。
3)消息体:消息体部分为可选项,用于描述被初始化的会话。
4 CSCF集群的实现方法
后续介绍中未单独提及 P-CSCF、I-CSCF、S-CSCF的描述则表示其规则适用于所有类型的CSCF。
4.1 实现原理
CSCF集群的两种实现方法分别如图 1和图 2所示。
在这两种实现方法中CSCF集群均由集群控制器和多个CSCF服务器组成,其中P-CSCF集群和S-CSCF集群中的CSCF服务器之间可以根据相应的策略组成两两互备。集群内部设备之间可以采用以太网进行连接组成一个小型的内部局域网,并且采用内部私有地址进行通信。集群对外则采用外部公有地址进行通信。
图1 CSCF 集群实现方法一
图2 CSCF集群实现方法二
其中集群控制器提供如下功能:
1)收集CSCF服务器上的工作负载情况。
2)收集CSCF服务器的工作状态。
3)对收到的SIP等协议根据负载均衡策略发送到集群中某个CSCF服务器上进行处理,但是在某次通信过程中一旦选择了某个CSCF服务器为此次通信服务则必须采用此CSCF服务器为其服务直至此次通信结束。
集群中的CSCF服务器提供如下功能:
1)负责提供相应的会话控制功能。
2)P-CSCF集群和S-CSCF集群中的某个CSCF服务器上所记录的一些信息(如 S-CSCF上的用户属性)要实时的同步到它的备用CSCF服务器上。
4.2 负载均衡策略
由于P-CSCF和S-CSCF在用户注册成功后分别会记录一些信息为后续的用户呼叫通信进行服务,所以对于P-CSCF集群和S-CSCF集群所采取的负载均衡策略是用户数最小权值策略,即当用户进行注册时,集群控制器从集群中选择一个用户数最小的CSCF服务器为其进行注册服务。用户注册成功后发起后续的通信时,集群控制器也会选择此用户注册时所选定的CSCF服务器为其进行呼叫通信的服务。
对于 I-CSCF集群所采取的负载均衡策略则可以采用负载最小权值策略,即集群控制器为某次通信从集群中选择当前工作负载最小的 I-CSCF服务器为其进行服务。
4.3 SIP协议流程
在CSCF集群实现方法一中,SIP协议流程如图3所示。外部设备与此CSCF服务器集群通信时,外部设备将SIP消息发送到此集群的集群控制器上(步骤①),再由集群控制器根据相应的负载均衡策略将消息发送到某个CSCF服务器上进行处理(步骤②);当CSCF服务器需要往外发送SIP消息时,先将消息发送到集群控制器上(步骤③),再由集群控制器将此SIP消息发送出去(步骤④)。其中往外发送的SIP请求中与本集群相关的路由信息中的地址为本集群对外采用的外部公有地址。
图3 SIP协议流程一
在CSCF集群实现方法二中,SIP协议流程如图4所示。当外部设备发送 SIP请求消息到此 CSCF服务器集群时,请求消息的目的地址为此集群控制器的外部公有地址(步骤①),集群控制器根据相应的负载均衡策略将 SIP请求消息发送到某个 CSCF服务器上进行处理(步骤②);当CSCF服务器需要往外发送SIP请求时,直接从此CSCF服务器上往外发送,其中SIP请求中与本集群相关的路由信息(如Via头)中的地址为此CSCF服务器对外的公有地址(步骤③)。外部设备收到请求消息并进行处理后要发送SIP应答消息到CSCF服务器集群时,应答消息的路径沿先前的请求消息的路径返回(步骤④、⑤、⑥)。
图4 SIP协议流程二
CSCF集群所涉及的其它协议(如Diameter)的处理原理类似于SIP协议,在此就不做进一步的阐述了。
4.4 CSCF互备原理
在P-CSCF集群和S-CSCF集群中CSCF服务器之间可以通过两两互备的方式来提高其可用性。互备的两个服务器之间采用心跳线来监控对方是否正常工作,并且要进行实时的信息同步,同步的信息内容主要为与通信相关的一些记录信息。在集群控制器处要记录CSCF的互备组合和监控CSCF服务器的工作状态。当集群中某个CSCF服务器出现故障时,其备份的CSCF服务器可以快速的接管其工作,从而以最快的速度恢复通信。其中信息同步和心跳线均可以采用以太网的方式来实现。
如图5所示,假设CSCF1为用户群1服务,CSCF2为用户群2服务,CSCF1与CSCF2互为备份,并且这些信息在集群控制器处都有记录。在正常情况下集群控制器会将用户群1的通信交由CSCF1处理,将用户群2的通信交由CSCF2处理,并且CSCF1会将用户群1的一些与通信相关的信息实时的同步到CSCF2上,CSCF2也会将用户群2的一些与通信相关的信息实时的同步到CSCF1上。如果CSCF1工作异常,不仅集群控制器会得知其工作状态,而且CSCF2会通过心跳线立即检测出来,此时CSCF2会做好为用户群1服务的准备。一旦与用户群1相关的通信到达此集群,则集群控制器会将其发送到 CSCF2上进行处理。当CSCF1恢复正常后,CSCF2会将用户群1的一些与通信相关的信息传给CSCF1,然后由CSCF1继续为用户群1的通信服务。
图5 CSCF互备
5 结语
通过对两种CSCF集群实现方法的介绍和分析,实现了CSCF与集群技术的结合,增强了CSCF应用的可靠性和可伸缩性,从而实现了一种更优的CSCF的使用方式。
[1]强磊,饶少阳,陈卉,等.IMS核心原理与应用[M].北京:人民邮电出版社,2008,11(01):8-9,20-23.
[2]赵飞,赵化明.IMS网络中多媒体彩铃业务的研究与实现[J].通信技术,2011,44(07):111.
[3]李莉,卢春,杨柯.LVS:优秀的服务器集群解决方案[J].信息安全与通信保密,2011(09):75.
[4]赖建峰,林永怡.浅谈服务器集群技术在数字化校园中的应用[J].硅谷,2011(09):136.
[5]曾井泉,刘镇.IPv4/IPv6混合网络中的SIP通信解决方案[J].通信技术,2009,42(03):132.