业务的性能分析王磊北京邮电大学网络与交换国家重点实验室,北京(100876)E-mail:wanglei8208@sohu.com摘要:PoC(PushtoTalkOverCellular)业务是一种新型的半双工通信业务,这种业务为移动用户提供了一种新的用户体验,并因为它的建立会话方便和节省资源等诸多优点而逐渐流行。本文介绍了基于IMS的PoC业务的体系结构和信令流程,并通过仿真工具NS2对PoC业务的性能进行了分析。关键词:IP多媒体子系统,PoC性能,网络模拟器版本21.引言PoC(PushtoTalkOverCellular)业务,即俗称的“一键通”业务,是在公众移动网络上实现的一种具有对讲功能的移动数据业务。随着美国和欧洲一些移动运营商在公众移动网上推出PoC业务,PoC一时间成为业界关注的热门移动数据业务。PoC采用半双工通信方式,可以进行“一对一”、“一对多”通话,借助“始终在线”连接,用户只要按动话机上的一个键,就可以启动个人和群组呼叫,呼叫连接几乎是即刻接通。PoC是基于移动通信网络和VoIP技术实现的,其网络覆盖面广,能够异地漫游,而且使无线资源得到充分利用。在3G时代,PoC业务作为一个数据网上的语音业务极具亮点。PoC改变了人们使用移动电话“一对一”的传统通话方式,用户能够与任何地方的多个用户进行“一对多”的即时通话。这种通信方式解决了商务客户的需求,例如建筑施工队、现场销售队伍、快递人员和物流服务队伍进行即时的集群通信,还能进行语音短信、家庭会议等复杂业务。虽然PoC业务有以上诸多优点,但是这项业务最终能否被用户接受,很重要一点取决于其性能是否能满足用户的需要。在本文中,我们对基于IMS(IPMultimediaSubsystem,IP多媒体子系统)的PoC业务的性能进行了研究。2.基于IMS的PoC业务的体系结构在本节首先简单介绍了IMS网络的体系结构,然后介绍了架构在IMS上的PoC业务的体系结构。2.1IMS体系结构简介IMS体系结构[1][2]是基于全IP核心网络架构的,3GPP使用分层的方法设计IMS体系结构,实现了业务与控制相分离、呼叫控制与媒体传输相分离,承载由底层的传输层提供,业务逻辑由应用层实现,而IMS核心系统是中间的控制层,它为业务提供会话控制能力。IMS的核心控制实体是CSCF,其主要功能包括入呼叫网关功能、呼叫业务触发功能和路由选择功能等。CSCF分为三种功能角色。P-CSCF(Proxy-CSCF)作为一个出入界的SIP代理服务器,所有SIP信令流,无论是来自UE或者发给UE,都必须经过P-CSCF。I-CSCF(Interrogating-CSCF)是运营商归属网络中的一个激活点,为到达此运营商网络中的用户的所有连接服务,或者为位于此运营商网络服务域中的漫游用户服务。S-CSCF(Serving-CSCF)是IMS的核心所在,为UE完成会话控制和注册服务,即能够为会话控制服务维持会话状态,并且与服务平台和计费功能进行交互。所示:123456789*8#图1IMS的体系结构Fig1ArchitectureofIMS2.2PoC业务的体系结构OMA定义了基于IMS的PoC业务的规范,根据此规范,PoC业务的体系结构[3]如图2所示。基于IMS的PoC的体系结构主要包含PoC客户端、PoC服务器、群组列表管理器(XDMS)、SIP/IP核心网等部分。其中,PoC客户端位于移动终端上,用以接入和使用PoC业务。PoC服务器提供PoC会话处理,提供媒体的分发,呼叫权控制等功能,是PoC业务实现的最重要的功能实体。PoC服务器根据其在会话中所起的作用,分为两种角色:ControllingPoCFunction和ParticipatingPoCFunction。ControllingPoCFunction是最核心的服务器,用于所有需要集中控制的功能;ParticipatingPoCFunction为其所负责的客户端提供不需要集中控制的功能和附加功能。群组列表管理器用于管理群组和列表信息。SIP/IP核心网基于IMS能力,主要包括一些SIP代理和SIP注册服务器,负责SIP信令路由,提供地址解析与寻址,支持SIP压缩等功能。POC-2POC-1XDMPOC-3XDMSControllingPoCFunctionUEXDMCPoCClientParticipatingPoCFunctionParticipatingPoCFunctionUEXDMCPoCClientSIP信令流媒体流XCAPPOC-8SIPCoreSIPCore图2PoC业务的体系结构Fig2ArchitectureofPoCservice之间要传送媒体流,采用RTP协议进行传送。3.PoC业务的流程在OMA的PoC业务的技术规范中,定义了PoC客户端注册以及建立会话的SIP信令流程,同时也定义了说话权(即客户端某一时间是否有权发送媒体)控制的流程。3.1SIP信令流程3.1.1注册流程PoC的注册流程[4]和IMS中普通的注册流程是一致的。客户端向P-CSCF发送携带相关注册信息(公共用户标识、私有用户标识、归属网络域名、UEIP地址等)的REGISTER请求[5]。接收到注册请求之后,P-CSCF检查发起方的归属域名来发现到其归属网络的入口点I-CSCF,并将REGISTER请求消息转发给此I-CSCF。I-CSCF向HSS查询此用户是否允许注册,如果允许的话,HSS将向I-CSCF返回选中的S-CSCF。I-CSCF将注册消息转发给S-CSCF,经过鉴权的步骤后,S-CSCF将从HSS下载用户的相关信息,然后返回200OK,至此IMS的注册过程结束。随后,PoC客户端将向PoC服务器发送一个Publish请求,将自己有关PoC服务的设置信息告知PoC服务器。整个的流程如图3所示。图3PoC客户端的注册流程Fig3PoCRegistrationSignalingFlow3.1.2PoC会话建立流程在注册之后,PoC客户端就可以发起PoC会话,会话的建立流程[4]如图4所示。首先PoC客户端发起一个Invite请求[5],经过P-CSCF,S-CSCF接收到请求,然后根据过滤规则服务器。PoC服务器根据Invite消息的头域和消息体来决定,呼叫的类型和被叫的地址,然后向一个或多个被叫用户发起Invite请求。被叫终端向被叫提示有呼叫到达并返回180Ringing。被叫接受呼叫请求后,返回200OK。PoC服务器在接收到第一个返回的200OK后即向主叫用户返回200OK,表明PoC会话已经成功建立。图4PoC会话建立流程Fig4PoCsessionsetupSignalingFlow3.2说话权控制流程在OMA的PoC业务技术规范中,定义了一个TBCP(TalkBurstControlProtocol)协议[6]来专门进行说话权的控制。TBCP协议封装在RTCP包的APP包中,所以PoC客户端和服务器通过RTCP端口进行说话权控制。TBCP协议定义了以下几种消息类型:1、TBCPTalkBurstRequest–用于PoC客户端向PoC服务器请求发言权。2、TBCPTalkBurstGranted–用于PoC服务器通知PoC客户端,它获得了发言权,此消息中可能包含服务器赋予客户端的讲话时长和此时会话中参与者的数目。3、TBCPTalkBurstDeny–用于PoC服务器通知PoC客户端,它的请求被拒绝。4、TBCPTalkBurstRelease–用于PoC客户端通知PoC服务器,它讲话结束。5、TBCPTalkBurstIdle–用于PoC服务器通知所有的PoC客户端,现在没有人拥有发言权,可以接收发言请求。6、TBCPTalkBurstTaken–用于PoC服务器通知所有的PoC客户端(被赋予发言权的客户端除外),发言权被赋予了另一个客户端,在此消息中会携带被授权用户的标识。7、TBCPTalkBurstRevoke–用于PoC服务器从客户端收回发言权,可用于实现抢占式优先级也可用于防止某人说话时间过长。8、TBCPTalkBurstAcknowledgement–如果某个TBCP消息需要确认,则客户端要向服务器发送此消息。9、TBCPTalkBurstRequestQueueStatusRequest–用于PoC客户端向服务器查询其请求现在在队列中的位置。、TBCPTalkBurstRequestQueueStatusResponse–用于PoC服务器通知客户端,其请求已经被列入队列;也用于对TBCPTalkBurstRequestQueueStatusRequest消息的回应。在一个PoC会话中,请求说话权的流程[6]如图5所示。图5请求说话权的流程Fig5PoCTalkerArbitrationFlow当用户按下PoC键,请求说话时,将发送一个TBRequest请求。如果PoC服务器决定授予其说话权,则返回TBGranted请求;如果不授予其说话权,则返回TBDeny请求。4.使用NS2分析PoC业务性能PoC业务中影响用户体验最严重的性能指标就是PoC会话建立时间,本节中使用NS2[7]对PoC的此项性能进行了仿真研究。为了方便对IMS本身以及其上的业务进行研究,本实验室实现了一个基于NS2的IMS仿真系统,本节的研究就是基于此仿真系统。4.1仿真模型在仿真中,建立了一个IMS域,包含一个S-CSCF,一个I-CSCF和两个P-CSCF。建立一个PoCServer,然后建立若干UE。仿真场景如图6所示。仿真参数配置(1)PCSCF的参数需要为PCSCF设置其相应的ICSCF的地址,通过PCSCF的命令set-icscf完成。设置PCSCF处理SIP消息的时延为30ms,语句为$imspcscf1setsipdelay_0.030。(2)ICSCF的参数需要为ICSCF设置SCSCF的地址(在现在的实现中一个域里只有一个SCSCF),通过ICSCF的命令set-scscf完成。(3)SCSCF的参数需要设置域里的PoCServer的地址,通过SCSCF的set-pocsvr命令完成。设置SCSCF处理SIP消息的时延为150ms,语句为$imsscscfsetsipdelay_0.150;设置SCSCF支持RecordRoute,$imsscscfsetrecordRoute_1。(4)PoCServer的参数设置域内的SCSCF的地址,通过PoCServer的set-scscf命令完成。设置PoCServer处理SIP消息的时延为150ms,$imspocsetsipdelay_0.150。可以设置PoCServer为手动应答模式和自动应答模式,通过$imspocsetautoAnswer_1设置为自动应答模式,为0则表示手动应答模式。(5)UE的相关参数通过SIPUA的set-proxy命令为其设置PCSCF的地址。设置参数minAnsDel_和maxAnsDel_表示收到invite请求时经过多长时间产生应答,如$sipuasetminAnsDel_0.0$sipuasetmaxAnsDel_0.0表示立即应答。所有的服务器结点之间以10Gb的有线链路相连,UE和P-CSCF之间以10