摘要 利用IMS和SIP實(shí)現(xiàn)即時(shí)消息是一種發(fā)展方向。目前利用IMS實(shí)現(xiàn)即時(shí)消息有兩種方法,它們各自的特點(diǎn)決定了它們?cè)趹?yīng)用場(chǎng)合上各有傾向性。本文從實(shí)現(xiàn)機(jī)制入手,對(duì)這兩種技術(shù)進(jìn)行了分析比較,特別是比較了它們?cè)谙⒐芾、消息分發(fā)、消息存儲(chǔ)和隱私保護(hù)實(shí)現(xiàn)方面的差異,從而指出它們?cè)趹?yīng)用上的特點(diǎn)。
1、引言
即時(shí)消息是將接收到的發(fā)送者發(fā)來的信息非存儲(chǔ)地轉(zhuǎn)發(fā)給接收者的一種服務(wù),與電子郵件的消息的不同在于即時(shí)消息是直接在接收端與發(fā)送端之間交互的。
SIP(會(huì)話啟始協(xié)議)的機(jī)制非常適合實(shí)現(xiàn)即時(shí)消息;赟IP的IMS(IP多媒體子系統(tǒng))架構(gòu)為即時(shí)消息構(gòu)建了一種很好的實(shí)現(xiàn)環(huán)境。在IMS環(huán)境中,即時(shí)消息的實(shí)現(xiàn)基本上有兩種方法,一種是基于IMS的Message方法,另一種是基于IMS會(huì)話機(jī)制實(shí)現(xiàn)的方法,它們都是在3GPP TS 22.228定義的IMS能力架構(gòu)下實(shí)現(xiàn)的。
在IMS的Message方法機(jī)制下,接收者可以實(shí)時(shí)或準(zhǔn)實(shí)時(shí)地接收到消息。而在基于會(huì)話的機(jī)制下,用戶接收到的消息一般是準(zhǔn)實(shí)時(shí)的,接收者和發(fā)送者之間首先必須建立會(huì)話連接(這種消息會(huì)話成為聊天室),然后才可以進(jìn)行消息的傳送。
OMA、3GPP、IETF 3大標(biāo)準(zhǔn)組織對(duì)移動(dòng)IMS消息業(yè)務(wù)都做了定義,但各自涉及的面不同,OMA主要關(guān)注于業(yè)務(wù)需求方面,3GPP/3GPP2主要關(guān)注網(wǎng)絡(luò)架構(gòu)實(shí)現(xiàn)方面,而IETF關(guān)注具體實(shí)現(xiàn)的協(xié)議技術(shù)細(xì)節(jié)。
在2007年3月3GPP標(biāo)準(zhǔn)組提交的標(biāo)準(zhǔn)化文檔TS 22.340中,對(duì)上述兩種實(shí)現(xiàn)方法對(duì)網(wǎng)絡(luò)的要求進(jìn)行了明確的規(guī)定。
2、IMS實(shí)現(xiàn)即時(shí)消息的基礎(chǔ)——SIP
SIP是由IETF提出的IP信令協(xié)議,它的主要目的是為了解決IP網(wǎng)中多媒體會(huì)話的信令控制。
SIP用于發(fā)起會(huì)話,它能控制有多個(gè)參與者參加的多媒體會(huì)話的建立、修改和終結(jié),并能動(dòng)態(tài)調(diào)整和修改會(huì)話屬性,如會(huì)話帶寬要求、傳輸?shù)拿襟w類型(如語音、視頻和數(shù)據(jù)等)、媒體的編解碼格式、對(duì)組播和單播的支持等。SIP對(duì)會(huì)話承載的內(nèi)容不做限制,而由SDP(會(huì)話描述協(xié)議)控制。
SIP實(shí)現(xiàn)使用兩類原語(也稱為事務(wù)):請(qǐng)求和應(yīng)答。
請(qǐng)求是指從客戶機(jī)發(fā)到服務(wù)器的消息。SIP核心規(guī)范定義了7種SIP請(qǐng)求方法:
●Invite——邀請(qǐng)用戶加入會(huì)話;
●Bye——終止兩個(gè)用戶之間的會(huì)話;
●Options——用于請(qǐng)求向服務(wù)器查詢對(duì)方能力;
●Ack——確認(rèn)客戶機(jī)已經(jīng)收到對(duì)Invite的最終響應(yīng);
●Register——提供地址解析的映射,讓服務(wù)器知道其他用戶的位置;
●Info——用于在信令鏈路上傳送應(yīng)用層消息;
●Cancel——用于取消客戶端發(fā)送的前一個(gè)請(qǐng)求。
應(yīng)答是指從服務(wù)器發(fā)到客戶機(jī)的應(yīng)答消息。每個(gè)消息都有一個(gè)代表事務(wù)狀態(tài)的狀態(tài)碼(100~699的整數(shù))。下面是6類應(yīng)答狀態(tài)碼:
●1XX:臨時(shí)響應(yīng),表示請(qǐng)求消息正在被處理;
●2XX:成功響應(yīng),表示請(qǐng)求已被成功接受,如OK(200);
●3XX:重定向響應(yīng),表示需轉(zhuǎn)發(fā)請(qǐng)求;
●4XX:客戶機(jī)錯(cuò)誤,表示請(qǐng)求消息中包含語法錯(cuò)誤,
服務(wù)器無法完成客戶機(jī)請(qǐng)求;
●5XX:服務(wù)器錯(cuò)誤,表示由于服務(wù)器原因無法完成請(qǐng)求;
●6XX:全局故障,表示所有服務(wù)器均無法完成請(qǐng)求。
消息請(qǐng)求原語是SIP的一種擴(kuò)展,消息內(nèi)容包含在消息請(qǐng)求中一并發(fā)送。消息請(qǐng)求原語繼承了SIP請(qǐng)求的路由特點(diǎn)和安全特點(diǎn),消息體以多用途互聯(lián)網(wǎng)郵件擴(kuò)展(multipurpose Internet mail extension,MIME)等封裝形式存在。消息請(qǐng)求本身并不創(chuàng)建SIP對(duì)話,而采用類似雙向傳呼的機(jī)制發(fā)送相對(duì)獨(dú)立的即時(shí)消息內(nèi)容。
SIP被應(yīng)用到多媒體消息傳送業(yè)務(wù)環(huán)境的主要原因有:
●SIP以文本形式表示消息,消息的詞法和語法分析比較簡(jiǎn)單;
●SIP消息的請(qǐng)求過程和媒體協(xié)商過程等是一起進(jìn)行的,媒體連接建立時(shí)間短;
●SIP只要對(duì)頭域進(jìn)行簡(jiǎn)單擴(kuò)展就能很方便地支持各種補(bǔ)充業(yè)務(wù)或創(chuàng)新業(yè)務(wù);
●SIP支持許多種地址描述和尋址,很容易與其他協(xié)議適應(yīng)并協(xié)作提供業(yè)務(wù);
●SIP含有向注冊(cè)服務(wù)器注冊(cè)的功能,本身就可以提供眾多與消息相關(guān)的服務(wù)和實(shí)現(xiàn)用戶定位功能,非常適合即時(shí)通信類業(yè)務(wù)能力的提供,例如XDM、在席、即時(shí)消息和PoC(一鍵通)等;
●SIP的動(dòng)態(tài)注冊(cè)機(jī)制、名字映射和重定向服務(wù)很好地支持了用戶端的移動(dòng)性和多方通話,適合FMC業(yè)務(wù)的提供;
●SIP控制模型為分布式服務(wù)模型,具有分布式的組播功能。
3、通過IMS實(shí)現(xiàn)即時(shí)消息
IMS是基于IP網(wǎng)絡(luò),利用SIP實(shí)現(xiàn)來開發(fā)消息服務(wù)能力的。SIP的首要特征是能迅速和高效地建立實(shí)時(shí)會(huì)話,因此可以提供與固網(wǎng)上聊天室和即時(shí)消息服務(wù)同樣的客戶體驗(yàn)。這種業(yè)務(wù)特性體現(xiàn)在消息可以馬上發(fā)送,而且與用戶的位置、在席等呈現(xiàn)信息可以有效地聯(lián)系起來。
3.1 基于會(huì)話的實(shí)現(xiàn)技術(shù)
會(huì)話是有明確的起始點(diǎn)和結(jié)束點(diǎn)的。SIP控制和管理會(huì)話的原語通常是Invite、Cancel、Bye等,在SIP實(shí)現(xiàn)中,即時(shí)消息會(huì)話是一個(gè)由Invite開始,以Bye結(jié)束的會(huì)話。
基于會(huì)話的即時(shí)消息的實(shí)現(xiàn)流程如圖1所示(以點(diǎn)到點(diǎn)消息為例)。
圖1 基于會(huì)話消息發(fā)送流程
從圖1可以看出,基于會(huì)話的即時(shí)消息實(shí)現(xiàn)流程首先是Invite會(huì)話建立的普通流程(這個(gè)流程和通常SIP會(huì)話建立的路程是一致的,所以這里省略了,不詳細(xì)論述),從而建立一個(gè)消息會(huì)話。Invite消息中帶有發(fā)送端可接收消息的最大字節(jié)數(shù),響應(yīng)消息(200 OK)將附帶接收端可接收消息的最大字節(jié)數(shù),在兩端的點(diǎn)到點(diǎn)連接建立以后,消息就在會(huì)話路徑上進(jìn)行傳送。接收端接收消息后,會(huì)給發(fā)送端發(fā)送ACK消息。
會(huì)話方式需要在建立了會(huì)話的路徑上傳送消息。由于即時(shí)消息攜帶的媒體數(shù)據(jù)量是很大的,所以如果傳送路徑上沒有擁塞控制就很容易引起網(wǎng)絡(luò)擁塞;另外,由于消息在已建立的對(duì)話路徑中傳送,消息端點(diǎn)和信令端點(diǎn)是一樣的,大大限制了即時(shí)消息的使用范圍。
在基于會(huì)話的消息實(shí)現(xiàn)中,可以方便地實(shí)現(xiàn)多方消息共享。這時(shí)會(huì)話可以比喻為聊天室,由MRFC/MRFP(多媒體資源功能控制器/多媒體資源功能處理器)或AS(應(yīng)用服務(wù)器)控制媒體資源,并承擔(dān)消息傳送中介的身份。聊天室的建立可以由用戶或服務(wù)提供商發(fā)起。參與聊天的人可以進(jìn)入聊天室,參與討論或離開聊天室。相對(duì)于消息傳送,聊天室顯得更加“永久”,并不因?yàn)槟承┤说碾x開而關(guān)閉;另外,聊天室可以進(jìn)一步被劃分為私有和公開聊天室。通常,參加聊天室的用戶將收到其他參加者傳送的所有信息,當(dāng)然,用戶也可以發(fā)送私有消息給聊天室里的某些人。在這種實(shí)現(xiàn)方式下,群發(fā)一條消息可以很方便地實(shí)現(xiàn),發(fā)送者不需要一一指定接收者。
目前,對(duì)MRFC和MRFP之間的相互操作和業(yè)務(wù)流程還沒有標(biāo)準(zhǔn)化。在由MRFC/MRFP建立連接的場(chǎng)景下,往往需要同時(shí)引入IMS AS協(xié)同工作,以實(shí)現(xiàn)對(duì)會(huì)話群組的各個(gè)客戶的有效管理。
在基于會(huì)話的消息實(shí)現(xiàn)中,由于要先建立會(huì)話,消息傳送有一定的延時(shí),但由于SIP建立會(huì)話的時(shí)間很短,還是可以給用戶提供良好的準(zhǔn)實(shí)時(shí)體驗(yàn)。如果接收者沒有加入到會(huì)話群組(聊天室)中,那么它是無法收到消息的。