Vol.16,No.2©2005JournalofSoftware软件学报1000-9825/2005/16(02)0239SIP标准中的核心技术与研究进展∗司端锋+,韩心慧,龙勤,潘爱民(北京大学计算机科学技术研究所,北京100871)ASurveyontheCoreTechniqueandResearchDevelopmentinSIPStandardSIDuan-Feng+,HANXin-Hui,LONGQin,PANAi-Min(InstituteofComputerScienceandTechnology,PekingUniversity,Beijing100871,China)+Correspondingauthor:E-mail:siduanfeng@icst.pku.edu.cn,(2):239−250.:Althoughonlymorethanoneyearsincesessioninitiationprotocol(SIP)hadbeendelivered,SIPhasalreadybecometheresearchhotspotintelecommunicationandnetworkfields.Morethan30RFCsanddraftsweredeliveredbySIPWG,includingcoreprotocol,QoS,security,messageheaderandmethodextension,interconnectionwithPSTN,firewallandNATtraversal,application,multi-messagebody,instantmessenger,etc.ThispaperintroducestheSIPstandardandthenewestresearchtrendsinitsrelatedfields,andpointsoutthefutureresearchdirectionandthepromisingforegroundapplication.Keywords:SIPWG;sessioninitiationprotocol;SIPextend;security;QoS;interconnection;3GPP;networkcontrol;SIPapplication摘要:由IETF最年轻的工作组之一的SIP(sessioninitiationprotocol)工作组发布的SIP相关标准已经成为通信和网络界的研究热点.目前SIP工作组发表的协议和草案超过30个,除了核心协议以外,其他协议涵盖QoS、安全、消息头和方法扩展、与PSTN等其他协议的互操作性、穿透防火墙和NAT、应用、多消息体、即时消息等诸多话题,其最终目标是为所有Internet成功的应用提供无所不在的接入,成为联系Internet和电信、多媒体的媒介.对SIP标准中的核心技术和研究进展进行了综述.着重介绍了以上SIP相关标准及应用中的核心技术和相关领域最新的研究动态,并指出了进一步的研究方向和应用前景.关键词:SIP工作组;SIP标准;SIP扩展;安全性;QoS;协议互操作性;3GPP;网络控制;SIP应用中图法分类号:TP393文献标识码:A∗SupportedbytheNationalHigh-TechResearchandDevelopmentPlanofChinaunderGrantNo.2002AA119020(国家高技术研究发展计划(863));theNationalResearchFoundationfortheDoctoralProgramofMinistryofEducationofChinaunderGrantNo.20040001050(国家教育部博士点基金)作者简介:司端锋(1976-),男,江苏徐州人,博士生,工程师,主要研究领域为网络与信息安全,多媒体通信;韩心慧(1969-),男,博士生,助理研究员,主要研究领域为网络与信息安全,多媒体通信;龙勤(1977-),男,博士生,主要研究领域为网络与信息安全;潘爱民(1970-),男,博士,副研究员,主要研究领域为网络与信息安全.240JournalofSoftware软件学报2005,16(2)会话初始化协议(sessioninitiationprotocol,简称SIP)近年来在通信和网络研究领域受到极大关注,是下一代网络(NGN)中的核心协议之一.它最初是由IETF的MMUSIC(multipartymultimediasessioncontrol)工作组提出的一个标准,用来解决IP网上的信令控制.在IP网络分层模型上,SIP是工作在应用层上的一个信令协议,可以用来建立、修改和终止有多方参与的多媒体会话进程[1].图1是一个Internet多媒体体系结构模型,表明了SIP在Internet协议栈中的位置.最初提出的应用场景包括IP电话呼叫、多媒体分发、多媒体会议等,但目前SIP的应用领域已远远不限于这些场景.SIP协议是基于Internet两个最成功的服务Web和Email进行设计的,设计思想成熟,面世时间不长即获得广泛应用.SIP协议的优势还表现在:可扩展性、灵活性、互操作性、可重用性以及提供了一种可以将简单的应用结合到复杂的服务中去的方法[2].现在,SIP已经被3GPP工作组定义为第三代移动通信系统的信令协议以提供IP多媒体服务[3].它能将蜂窝系统和Internet应用领域融合在一起,为人们提供了一条使得成功的Internet服务无所不在的途径.利用SIP,用户将能够把传统的Internet服务,比如Email、Web以及多媒体和即时消息等新服务结合起来.SIP的出现是在通信网络界以外毫无所知的情况下发生的一场革命,它将人们从电信服务的高投入、低增值中解放出来,并带入低投入、高增值的服务中去(这正是Internet的准则).这场革命将使用Internet技术重新定义通信网络的体系结构,其领导者就是会话初始化协议(SIP).ApplicationlayerTransportlayerInternetlayerNetworkAccesslayerFig.1SIPpositioninInternetarchitecture图1SIP在Internet网络体系结构中的位置1999年,MMUSIC工作组最初提出SIP想法,当时,多媒体系统体系结构取得了一定的成功,但是这个体系结构中有一个不能令人满意的地方:它没有办法明确地邀请用户加入一个特定的会话.邀请用户加入多播会话是IETF提交SIP的初衷,从那时起,SIP协议稳定向前发展.目前,SIP可以用于邀请用户加入所有类型的会话,包括多播和点到点会话.1999年2月,MMUSIC工作组发布SIP的提议标准RFC2543.此时,SIP已经在IETF中获得足够的重视,于1999年9月成为一个独立的SIP工作组,JonathanRosenberg,JoergOtt,DeanWillis担任第一任主席.2001年3月,IETF第50次会议决定将SIP工作组分成两部分:SIP工作组和SIPPING工作组.新的SIP工作组的主要任务是讨论SIP规范及其基本扩展;SIPPING工作组的任务是讨论关于使用SIP协议进行具体的应用.SIP工作组于2002年6月发表了新的RFC3261,此时,SIP的RFC已进入草案标准的状态[1].现在,有3GPP、SIMPLE、网络控制等工作组决定采用SIP作为工作协议,这些都是对SIP协议的极大肯定,促进了SIP协议的进一步发展.作为一个新的、具有广阔前景和许多研究机构关注的一个热点协议,SIP吸引了众多的研究者投入这方面的工作,同时,由于SIP出现的时间不长,加上各种SIP相关的协议和应用发展很快,目前国内和国际上还没有将这些重要的发展情况、核心技术和目前的研究成果作一个整体上的介绍.鉴于SIP在网络和通信领域所占的重要地位和目前表现出来的广阔前景,为了捕捉SIP发展的动态,对SIP研究有一个总体上的把握,促进国内迅速跟上国际研究的步伐,综述这方面的工作十分有意义.本文详细介绍了SIP核心协议的体系结构、SIP工作组已经发表和尚未发表的其他RFC和Drafts中的核心技术、以SIP作为工作协议的工作组的主要相关工作、国内外在SIP领域取得的主要成果和SIP的发展动态,并指出了进一步的研究方向和应用前景.1SIP的系统组织结构本节介绍SIP核心协议中定义的基本功能和系统构成,并给出了一个基于SIP的通信系统的研究模型.1.1SIP基本功能IETF坚持采用分层的方法来创建服务,SIP作为应用层上的一个控制(信令)协议,用来建立、修改和终止有司端锋等:SIP标准中的核心技术与研究进展241多个参与者参加的多媒体会话进程,参与会话的成员可以通过组播(multicast)、单播(unicast)或者两者结合的方式进行通信.SIP可以用于邀请新的成员加入一个已经存在的会话,也可以用于创建一个全新的会话.作为SIP的核心思想之一,它可以用于明确地邀请某一个成员加入或者创建会话,这一点相对多播、SAP(会议通告协议)等是一个很大的进步.通信双方可以共同协商使用的媒体参数(比如是否支持视频).SIP独立于它所处理的多媒体会话类型和描述会话所使用的机制,能够用一个可扩展的体系结构应用于视频会议、语音通话、共享白板、游戏会话、应用共享、桌面共享、文件传输等各种情况.一般情况下,SIP协议使用RTP协议传送音频和视频流,使用SDP协议进行媒体描述[4].SIP通过这样的机制来实现其扩展性:通信双方或多方使用SDP进行音、视频的会议描述,如果通信的几方希望在建立的SIP框架上进行一个游戏会话,那么只需要使用一个适用于描述游戏会话的协议来取代SDP协议.使用SIP协议可以进行会话的管理,包括发起和终止会话、修改会话参数、调用服务、引入其他用户、设置转移呼叫、呼叫保持等.SIP的可扩展性还表现在它可以通过定义新的消息头(header)和方法(method)来增加新的功能,这一点应用在大部分增加新功能的SIP扩展RFC中[5−20].SIP另一个重要的功能是支持用户移动性,通过SIP定义的代理(proxy)服务器和重定向(redirection)服务器来实现.由于SIP实现了通信用户终端的定位,保证了无论被呼叫方在网络的任何位置上都可以确保呼叫达到被呼叫方.它通过SIPURL(uniformresourceindicator,统一资源标识符)进行标识,其格式和Email地址很相似,通常采用user@domain的形式,如SIP:sidf@icst.pku.edu.cn,完整的SIPURI的格式是:sip:user:password@host:port;uri-parameters?headers.详细描述参见文献[1].用户必须首先向一个服务器登记他当前的位置,才能被呼叫者找到,如果用户的位置发生变化,必须将新位置向服务器重新注册.服务器支持一个用户同时拥有多个地址记录,存到数据库中,当服务器需要联系这个用户时,它会按顺序依次联系记录里的位置信息,直到从一个位置里得到反馈信息或者没找到.SIP提供了重定向和代理两种操作模式来完成对用户的定向.另外,SIP可以用于其他的IETF协议以建立一个完整的多媒体体系结构,如传输实时数据、提供QoS反馈的RTP协议[21]、控制流媒体发送的实时流传输协议RTSP[22