專利名稱:互聯(lián)網(wǎng)協(xié)議多媒體子系統(tǒng)網(wǎng)絡(luò)、數(shù)據(jù)傳輸方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種互聯(lián)網(wǎng)協(xié)議多媒體子系統(tǒng)網(wǎng)絡(luò)、數(shù)據(jù)傳 輸方法和裝置。
背景技術(shù):
IMSdnternet Protocol Media Subsystem, IP (Internet Protocol,互聯(lián)網(wǎng) 協(xié)議)多媒體子系統(tǒng))是一種全新的多媒體業(yè)務(wù)形式,已被公認(rèn)為是下一代網(wǎng)絡(luò)(Next Generation Network, NGN)的核心技術(shù)。IMS 基于 SIP (Session InitiationProtocol, 會話初始化協(xié)議)協(xié)議支持各種固定接入和移動接入,基于ALL-IP實(shí)現(xiàn)移動與固網(wǎng)融 合,是實(shí)現(xiàn)語音、數(shù)據(jù)和視頻等多媒體全業(yè)務(wù)融合的重要方式。IMS支持豐富的接入終端 和接入網(wǎng)絡(luò),IMS終端與IMS核心網(wǎng)之間可能會歷經(jīng)非常復(fù)雜的接入路徑,中間網(wǎng)元如防 火墻(Firewall,F(xiàn)W)、網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation, NAT)設(shè)備、應(yīng)用代 理Proxy)服務(wù)器和業(yè)務(wù)監(jiān)控網(wǎng)關(guān)等設(shè)備會對承載IMS業(yè)務(wù)的報(bào)文(SIP/RTP(Real-time TransportProtocol,實(shí)時傳輸協(xié)議)報(bào)文)進(jìn)行處理和控制,可能導(dǎo)致IMS終端無法正常 接入或通信。目前,主要采用基于隧道封裝的機(jī)制,實(shí)現(xiàn)IMS業(yè)務(wù)的安全接入。如圖1所示,在 IMS核心網(wǎng)的入口處部署STGGecurity Tunnel Gateway,安全隧道網(wǎng)關(guān)),在IMS終端集 成SSL隧道客戶端。IMS終端啟動時,通過SSL隧道客戶端與STG建立SSL隧道,將SIP/ RTP報(bào)文按照圖2所示的過程進(jìn)行SSL隧道封裝后,將封裝結(jié)果(可稱為SSL隧道報(bào)文)通 過SSL隧道傳輸?shù)絊TG。上述SSL隧道報(bào)文通過網(wǎng)絡(luò)發(fā)送到STG后,STG按照圖2的逆過程 (即隧道解封裝)從SSL隧道報(bào)文中還原出SIP/RTP報(bào)文,并轉(zhuǎn)發(fā)給媒體服務(wù)器。反過來, 媒體服務(wù)器返回的報(bào)文也經(jīng)過同樣的過程發(fā)送給IMS終端,由IMS終端進(jìn)行還原。從而,通 過SSL隧道封裝將IMS業(yè)務(wù)的上萬個端口統(tǒng)一聚合到一個標(biāo)準(zhǔn)的HTTPS (443)端口,輕松穿 越FW、NAT及Proxy等中間網(wǎng)元設(shè)備,并支持SIP/RTP報(bào)文的加密,實(shí)現(xiàn)通信數(shù)據(jù)的端口聚 合、數(shù)據(jù)加密、信息完整性保護(hù)等功能。SIP/RTP報(bào)文除了可基于SSL隧道封裝外,也可基 于 HTTP (Hyper Text Transfer Protocol,超文本傳輸協(xié)議)隧道或 UDP (User Datagram I^otocol,用戶數(shù)據(jù)報(bào)協(xié)議)隧道封裝。具體地,如圖2所示,對RTP報(bào)文進(jìn)行SSL隧道封裝的過程如下步驟S202 以20ms的采樣周期(即每秒50個的采樣速率)對IMS業(yè)務(wù)的媒體數(shù) 據(jù)(如語音、視頻等數(shù)據(jù))進(jìn)行采集、編碼;步驟S204 將媒體數(shù)據(jù)通過虛擬協(xié)議棧封裝為RTP報(bào)文;步驟S206 在RTP報(bào)文的頭部加入隧道協(xié)議頭(Encapsulate Header,圖2中縮寫 為Enc Hdr,還可縮寫為Enc Header);步驟S208 添加摘要信息和分組長度補(bǔ)齊信息(摘要信息和分組長度補(bǔ)齊信息在 圖2中用HMAC-Tail表示),并對整個報(bào)文進(jìn)行SSL加密,然后,在加密后的報(bào)文的頭部增加 SSL協(xié)議頭(SSL Header,圖2中縮寫為SSL Hdr),形成一個SSL Record (SSL記錄或SSL記錄單元);步驟S210 為了在網(wǎng)絡(luò)中傳輸,最終還需要將SSL Record封裝成TCP (Transfer Control Protocol,傳輸控制協(xié)議)報(bào)文(即上述的SSL隧道報(bào)文),通過網(wǎng)絡(luò)傳輸?shù)絊TG。在上述的SSL隧道封裝過程中,由于每個RTP報(bào)文形成一個SSL Record,在每個 RTP報(bào)文之外增加了大量附加信息,導(dǎo)致最終發(fā)送的SSL隧道報(bào)文的長度比RTP報(bào)文的長度 大得多,從而使得單包的帶寬急劇增加。以媒體數(shù)據(jù)的音頻編碼格式為G. 7 為例,RTP報(bào)文長度的計(jì)算公式是IPOOHU DP (8) +RTP (12) +Payload(20) = 60 個字節(jié),其中,IP 表示 IP 頭,UDP 表示 UDP 頭,RTP 表示 RTP頭,Payload表示負(fù)載(即IMS業(yè)務(wù)的媒體數(shù)據(jù))。從而,在每秒50個報(bào)文(即RTP報(bào) 文的打包時長為20ms)時,計(jì)算得到帶寬為60*8*(lS//20mS) = Mlibps。經(jīng)過SSL隧道封裝之后,最終發(fā)送的SSL隧道報(bào)文的長度計(jì)算公式是 IP (20)+TCP (20)+SSL Header (5) +Enc Header (16)+RTP 報(bào)文(60)+HMAC-Tail Q8) = 149 個 字節(jié),其中,IP表示IP頭,TCP表示TCP頭,SSL Header表示SSL協(xié)議頭,Enc Header表示 隧道協(xié)議頭,HMAC-Tail表示摘要信息(HMAC)和分組長度補(bǔ)齊信息(Tail)的組合。從而, 在每秒50個報(bào)文時,計(jì)算得到帶寬為149*8* (ls/20ms) = 59. 61ibps。通過比較SSL隧道封裝前后的報(bào)文長度,可推算出單包的帶寬增加了 35. 61cbpS(即附加帶寬為35. 61cbpS),相當(dāng)于增加了 148%的帶寬。帶寬的急劇增加,對用戶 接入的帶寬提出了更高的要求,在一定程度上降低了用戶的使用體驗(yàn)和業(yè)務(wù)接入能力。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種互聯(lián)網(wǎng)協(xié)議多媒體子系統(tǒng)網(wǎng)絡(luò)、數(shù)據(jù)傳輸方法和裝置, 可至少解決上述現(xiàn)有技術(shù)降低了用戶的使用體驗(yàn)和業(yè)務(wù)接入能力的問題。一方面,提供了一種數(shù)據(jù)傳輸方法,用于IMS,包括對RTP報(bào)文進(jìn)行隧道封裝,得 到隧道報(bào)文,其中,隧道報(bào)文中包括記錄單元,每個記錄單元中封裝有多個RTP報(bào)文;將隧 道報(bào)文通過與對端之間的隧道發(fā)送到對端,其中,對端為STG或者IMS終端。另一方面,提供了一種數(shù)據(jù)傳輸裝置,用于IMS,包括封裝模塊,用于對RTP報(bào)文 進(jìn)行隧道封裝,得到隧道報(bào)文,其中,隧道報(bào)文中包括記錄單元,每個記錄單元中封裝有多 個RTP報(bào)文;發(fā)送模塊,用于將隧道報(bào)文通過與對端之間的隧道發(fā)送到對端,其中,對端為 STG或者IMS終端。又一方面,提供了一種IMS網(wǎng)絡(luò),包括IMS終端和STG,其中,IMS終端和STG為上 述的數(shù)據(jù)傳輸裝置。本發(fā)明實(shí)施例根據(jù)RTP報(bào)文的小包定時發(fā)送的特點(diǎn),將多個RTP報(bào)文形成一個 Record, S卩,多個RTP報(bào)文共享一個Record的附加信息,從而通過犧牲較小的實(shí)時性,將IMS 業(yè)務(wù)的隧道封裝過程中多個RTP報(bào)文的附加信息進(jìn)行整合,減少了隧道封裝帶來的附加帶 寬,進(jìn)而降低了單包的帶寬,避免了現(xiàn)有技術(shù)由于單包的附加帶寬較大,對用戶接入的帶寬 提出了更高的要求,在一定程度上降低了用戶的使用體驗(yàn)和業(yè)務(wù)接入能力的問題。
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明一部分 實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些 附圖獲得其他的附圖。圖1是根據(jù)現(xiàn)有技術(shù)的IMS系統(tǒng)的架構(gòu)示意圖;圖2是根據(jù)現(xiàn)有技術(shù)的IMS業(yè)務(wù)報(bào)文的SSL隧道封裝過程的示意圖;圖3是根據(jù)本發(fā)明實(shí)施例一的IMS系統(tǒng)的數(shù)據(jù)傳輸方法的流程圖;圖4是根據(jù)本發(fā)明實(shí)施例二的IMS終端的數(shù)據(jù)傳輸方法的流程圖;圖5是根據(jù)本發(fā)明實(shí)施例二的IMS業(yè)務(wù)報(bào)文的SSL隧道封裝過程的示意圖;圖6是根據(jù)本發(fā)明是實(shí)例二的SSL Record的幀結(jié)構(gòu)示意圖;圖7是根據(jù)本發(fā)明實(shí)施例一的IMS中的數(shù)據(jù)傳輸裝置的結(jié)構(gòu)示意圖;圖8是根據(jù)本發(fā)明實(shí)施例二的IMS中的數(shù)據(jù)傳輸裝置的結(jié)構(gòu)示意圖;圖9是根據(jù)本發(fā)明實(shí)施例三的IMS中的數(shù)據(jù)傳輸裝置的結(jié)構(gòu)示意圖;圖10是根據(jù)本發(fā)明實(shí)施例四的IMS中的數(shù)據(jù)傳輸裝置的結(jié)構(gòu)示意圖;圖11是根據(jù)本發(fā)明實(shí)施例五的IMS中的IMS終端、STG和SIP/媒體服務(wù)器的層 次結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施方式, 對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施方式
僅僅用于解釋本發(fā) 明,并不用于限定本發(fā)明。在如圖1所示的IMS系統(tǒng)中,IMS終端與IMS核心網(wǎng)入口處的STG之間建立隧道, 例如SSL隧道、HTTP隧道或UDP隧道,兩者之間通過該隧道進(jìn)行數(shù)據(jù)傳輸,以實(shí)現(xiàn)IMS業(yè)務(wù) 的安全接入和傳輸。實(shí)施例一在上述的IMS系統(tǒng)中,根據(jù)本發(fā)明實(shí)施例一的IMS終端或STG的數(shù)據(jù)傳輸方法如 圖3所示,包括以下步驟步驟S302,對RTP報(bào)文進(jìn)行隧道封裝,得到隧道報(bào)文,其中,隧道報(bào)文中包括記錄 單元,每個記錄單元中封裝有多個RTP報(bào)文;例如,當(dāng)IMS終端和STG之間建立的是SSL隧道時,IMS終端或STG對RTP報(bào)文進(jìn) 行隧道封裝,即,將多個RTP報(bào)文進(jìn)行SSL隧道封裝,形成一個SSL Record,然后再將SSL Record封裝成隧道報(bào)文。此處將多個RTP報(bào)文進(jìn)行SSL隧道封裝形成一個SSL Record的 具體處理過程,將在下面的如圖4-5所示的實(shí)施例二中進(jìn)行詳細(xì)描述,這里不再贅述。步驟S304,將步驟S302中得到的隧道報(bào)文通過與對端之間的隧道發(fā)送到對端,其 中,對端為STG或者IMS終端。顯然,當(dāng)執(zhí)行步驟S302-步驟S304的是IMS終端時,對端即為STG ;當(dāng)執(zhí)行步驟 S302-步驟S304的是STG時,對端即為IMS終端。IMS終端和STG可以通過兩者之間建立 的隧道進(jìn)行數(shù)據(jù)傳輸。在IMS業(yè)務(wù)中,最主要的網(wǎng)絡(luò)流量來自RTP報(bào)文,而RTP報(bào)文存在定時發(fā)送大量小 包的特點(diǎn),發(fā)包時間間隔一般在IOms IOOms之間,每個RTP報(bào)文的字節(jié)長度一般都不會超過200字節(jié)。本發(fā)明實(shí)施例根據(jù)RTP報(bào)文的小包定時發(fā)送的特點(diǎn),將多個RTP報(bào)文形成 一個Record,即,多個RTP報(bào)文共享一個Record的附加信息,從而通過犧牲較小的實(shí)時性, 將隧道封裝過程中多個RTP報(bào)文的附加信息進(jìn)行整合,減少了隧道封裝帶來的附加帶寬, 進(jìn)而降低了單包的帶寬,避免了現(xiàn)有技術(shù)由于單包的附加帶寬較大,對用戶接入的帶寬提 出了更高的要求,在一定程度上降低了用戶的使用體驗(yàn)和業(yè)務(wù)接入能力的問題。在上述實(shí)施例一中,隧道可以是SSL隧道,也可以是HTTP隧道或UDP隧道等。實(shí)施例二以IMS終端向STG發(fā)送隧道報(bào)文為例,進(jìn)行說明。如圖4所示,根據(jù)本發(fā)明實(shí)施例 二的IMS終端的數(shù)據(jù)傳輸方法包括以下步驟步驟S402,在預(yù)先創(chuàng)建的鏈表中,生成(具體生成步驟同圖1中的步驟 S202-S204)并緩存RTP報(bào)文;例如,該鏈表可以為一個FIF0(First In First Out,先入先出)鏈表,可以預(yù)先創(chuàng) 建一個FIFO鏈表,不斷地將IMS業(yè)務(wù)的媒體數(shù)據(jù)寫入該FIFO鏈表所在的內(nèi)存空間中,將媒 體數(shù)據(jù)封裝成一個個的RTP報(bào)文,并緩存生成(即封裝得到)的RTP報(bào)文。步驟S404,判斷是否達(dá)到預(yù)定封裝時間間隔T,若是,則進(jìn)入步驟S406,若否,則返 回步驟S404 ;例如,可以通過設(shè)置定時器,該定時器的周期為T。為了確保IMS業(yè)務(wù)的服務(wù)質(zhì)量, 上述預(yù)定封裝時間間隔T的具體取值應(yīng)該在語音時延允許的范圍內(nèi),即T ^ 200ms,例如,T =100ms。步驟S406,對鏈表中的在T內(nèi)收集到的多個RTP報(bào)文(RTP報(bào)文的個數(shù) N = [r/RTP報(bào)文打包時長」)進(jìn)行隧道封裝,使得這多個RTP報(bào)文形成一個Record,并將該 Record封裝成最終的隧道報(bào)文;如圖5所示,以SSL隧道為例,對T內(nèi)收集到的多個RTP報(bào)文(記為N個)進(jìn)行 SSL隧道封裝的過程,包括以下步驟步驟S502-S504,同圖2中的步驟S202-S204 ;這兩個步驟是將媒體數(shù)據(jù)生成RTP 報(bào)文的步驟;步驟S506,將鏈表中的N個RTP報(bào)文(即在T內(nèi)收集的N個RTP報(bào)文,其中的每個 RTP報(bào)文均按照圖5中的步驟S502-S504生成)取出,并拷貝到一段連續(xù)的內(nèi)存空間中,在 這段內(nèi)存空間的頭部加入隧道協(xié)議頭(Enc Header);步驟S508 按照一定的摘要算法對加入了 Enc Header后的內(nèi)存空間的內(nèi)容(或數(shù) 據(jù))進(jìn)行摘要計(jì)算,得到摘要信息(HMAC),并將該摘要信息附加在內(nèi)存空間的尾部,然后再 在該摘要信息的后面添加分組長度補(bǔ)齊信息(Tail)(摘要信息和分組長度補(bǔ)齊信息在圖5 中用HMAC-Tail表示),之后,對整個報(bào)文進(jìn)行SSL加密,然后,在加密后的報(bào)文的頭部添加 SSL 協(xié)議頭(SSL Header),形成一個 SSL Record ;添加了 Tail之后,此時,整個報(bào)文的數(shù)據(jù)長度可以為16byteS、32byteS、64byteS、 128bytes等的整數(shù)倍,在實(shí)際應(yīng)用中,一般是16bytes的整數(shù)倍。SSL Record的幀結(jié)構(gòu)示意圖如圖6所示,主要由兩大部分構(gòu)成頭部和加密數(shù)據(jù), 其中,頭部包括內(nèi)容類型、版本號和數(shù)據(jù)長度,頭部即為圖5中的SSLHeader ;加密數(shù)據(jù)包括 Enc Header,N個RTP報(bào)文(圖6中僅示出了 2個RTP報(bào)文的情況)以及HMAC (摘要信息)和Tail (分組長度補(bǔ)齊信息)。步驟S510,同圖2中的步驟S210。將SSL Record作為內(nèi)容,在頭部添加TCP頭和 IP頭,以完成TCP封裝。在該步驟中值得注意的是在對SSL Record進(jìn)行TCP封裝時,為了 進(jìn)一步減少附加帶寬,也可以將多個SSL Record封裝到一個TCP報(bào)文(即SSL隧道報(bào)文) 中,從而,在最終發(fā)送的SSL隧道報(bào)文中可以包括一個或多個SSL Record,每個SSL Record 中封裝有多個RTP報(bào)文。通過上述的過程,可以將原本需要多個Record封裝的RTP報(bào)文變?yōu)橹恍枰粋€ Record封裝即可。同樣以媒體數(shù)據(jù)的音頻編碼格式為G. 7 為例,假設(shè)T= 100ms, RTP報(bào)文的 打包時長為20ms,此時SSL隧道報(bào)文的帶寬計(jì)算公式變更為{IP (20) +TCP (20) +SSL Header (5) +Enc Header (16)+RTP 報(bào)文((100/20) *60)+HMAC-Tail Q8)} *8* (ls/lOOms)= 389*8*10 = 31. 12kbps。與 RTP報(bào)文的帶寬 Mkbps 相比,附加帶寬為 31. 12-24 = 7. 12kbps。從上述實(shí)際數(shù)據(jù)中可以看出,當(dāng)預(yù)定封裝時間間隔T = 100ms時,采用本發(fā)明實(shí)施 例后的SSL隧道報(bào)文的帶寬31. 12kbps與現(xiàn)有技術(shù)中SSL隧道報(bào)文的帶寬59. 6kbps相比, 帶寬減少了 28. 48kbps,附加帶寬也從35. 6kbps減少到了 7. 121ibps,減少了 5倍。假設(shè)T = 200ms, RTP報(bào)文的打包時長為20ms,此時SSL隧道報(bào)文的帶寬計(jì)算公式 變更為{IP 00)+TCP QO)+SSL Header (5) +Enc Header (16)+RTP 報(bào)文(Q00/20) *60)+HMA C-Tail (28)} (ls/200ms) = 689*8*5 = 27.56kbps。與 RTP 報(bào)文的帶寬 24kbps 相比,附 加帶寬為 27. 56-24 = 3. 56kbps 可以看出,當(dāng)預(yù)定封裝時間間隔T = 200ms時,采用本發(fā)明實(shí)施例后的SSL隧道 報(bào)文的帶寬27. 56kbps與現(xiàn)有技術(shù)中SSL隧道報(bào)文的帶寬59. 6kbps相比,帶寬減少了 32. 04kbps,附加帶寬也從35. 6kbps減少到了 3. 561ibps,減少了 10倍。從上述兩組實(shí)例中可以得出預(yù)定封裝時間間隔T越長,最終發(fā)送的隧道報(bào)文與 RTP報(bào)文相比的附加帶寬減少得越多,從而隧道報(bào)文的單包帶寬也就越小。對于特定的媒 體編碼類型,根據(jù)本發(fā)明實(shí)施例的隧道報(bào)文與未封裝的RTP報(bào)文相比的發(fā)包特征發(fā)生了變 化,表現(xiàn)為發(fā)包間隔加長了整數(shù)倍(發(fā)包間隔即為T),報(bào)文長度也基本按等比例增加,但是 附加帶寬卻也得到了相同比例的減少,隧道報(bào)文的帶寬得到了顯著的節(jié)約。媒體數(shù)據(jù)的音 頻編碼格式不同,RTP報(bào)文的長度會發(fā)生變化,但是,不會影響最終的隧道報(bào)文的附加帶寬 的減少。步驟S408,將得到的隧道報(bào)文通過與STG之間的隧道發(fā)送到STG。STG接收到隧道報(bào)文之后,就可以按照如圖5所示的逆過程對隧道報(bào)文進(jìn)行隧道 解封裝,還原得到其中的多個RTP報(bào)文。同樣,STG向IMS終端發(fā)送隧道報(bào)文的流程同上述步驟S402-S408,這里不再贅述。 此時,IMS終端在接收STG通過隧道發(fā)來的隧道報(bào)文之后,會對接收的隧道報(bào)文進(jìn)行隧道解 封裝,得到RTP報(bào)文,其中,隧道報(bào)文包括記錄單元,每個記錄單元中封裝有多個RTP報(bào)文。此外,當(dāng)隧道為HTTP隧道時,IMS終端或STG進(jìn)行HTTP隧道封裝的具體處理流程 與圖4-5類似,只是在步驟S508中添加了分組長度補(bǔ)齊信息后不進(jìn)行加密,而直接在報(bào)文 的頭部添加HTTP協(xié)議頭(HTTP Header),形成一個HTTP消息體;當(dāng)隧道為UDP隧道時,IMS 終端或STG進(jìn)行UDP隧道封裝的具體處理流程也與圖4-5類似,只是在步驟S508中在加密(加密不一定是SSL加密)后的報(bào)文的頭部添加UDP協(xié)議頭(UDP Header),形成一個UDP 報(bào)文體。圖7是根據(jù)本發(fā)明實(shí)施例一的IMS中的數(shù)據(jù)傳輸裝置的結(jié)構(gòu)示意圖,該數(shù)據(jù)傳輸 裝置可以為IMS終端或STG。如圖7所示,該裝置包括封裝模塊10,用于對RTP報(bào)文進(jìn)行 隧道封裝,得到隧道報(bào)文,其中,隧道報(bào)文中包括記錄單元,每個記錄單元中封裝有多個RTP 報(bào)文;發(fā)送模塊20,用于將封裝模塊10得到的隧道報(bào)文通過與對端之間的隧道發(fā)送到對 端,其中,對端為STG或者IMS終端。本發(fā)明實(shí)施例根據(jù)RTP報(bào)文的小包定時發(fā)送的特點(diǎn),將多個RTP報(bào)文形成一個 Record, S卩,多個RTP報(bào)文共享一個Record的附加信息,從而通過犧牲較小的實(shí)時性,將隧 道封裝過程中多個RTP報(bào)文的附加信息進(jìn)行整合,減少了隧道封裝帶來的附加帶寬,進(jìn)而 降低了單包的帶寬,避免了現(xiàn)有技術(shù)由于單包的附加帶寬較大,對用戶接入的帶寬提出了 更高的要求,在一定程度上降低了用戶的使用體驗(yàn)和業(yè)務(wù)接入能力的問題。從而使隧道報(bào) 文既能滿足實(shí)時性的要求,又能夠滿足帶寬要求。在實(shí)際應(yīng)用中,上述的隧道可以是SSL隧道,也可以是HTTP隧道或UDP隧道。如圖8所示,封裝模塊10包括封裝緩存模塊102,用于在預(yù)先創(chuàng)建的鏈表中, 生成并緩存RTP報(bào)文;定時器104,用于進(jìn)行計(jì)時;判斷模塊106,用于判斷定時器104是 否到達(dá)預(yù)定封裝時間間隔T,其中,預(yù)定封裝時間間隔T的值應(yīng)該小于或等于200ms (在 IMS的語音時延允許的范圍內(nèi));處理模塊108,用于在判斷模塊106的判斷結(jié)果為到達(dá) 時,對上述鏈表中的在這預(yù)定封裝時間間隔T內(nèi)生成的多個RTP報(bào)文(RTP報(bào)文的個數(shù) N = [r/RTP報(bào)文打包時長」)進(jìn)行隧道封裝,得到隧道報(bào)文。如圖9所示,為了對鏈表中的多個RTP報(bào)文進(jìn)行隧道封裝,處理模塊108可以包括 以下幾個模塊,分別如下拷貝模塊1081,用于從鏈表中取出多個RTP報(bào)文,并拷貝到一段連續(xù)的內(nèi)存空間 中;隧道協(xié)議頭添加模塊1082,用于在該內(nèi)存空間的頭部加入隧道協(xié)議頭(Enc Header);摘要信息計(jì)算添加模塊1083,用于對經(jīng)隧道協(xié)議頭添加模塊1082加入了 Enc Header后的內(nèi)存空間中的數(shù)據(jù)進(jìn)行摘要計(jì)算,并將計(jì)算得到的摘要信息(HMAC)附加在加 入了 Enc Header后的內(nèi)存空間的尾部;補(bǔ)齊信息添加模塊1084,用于在摘要信息計(jì)算添加模塊1083附加的HMAC的后面 附加分組長度補(bǔ)齊信息(Tail);加密模塊1085,用于當(dāng)隧道為SSL隧道或UDP隧道時,對經(jīng)補(bǔ)齊信息添加模塊 1084附加了 Tail后的內(nèi)存空間中的數(shù)據(jù)進(jìn)行加密;協(xié)議頭添加模塊1086,用于當(dāng)隧道為SSL隧道時,在經(jīng)加密模塊1085加密后的 內(nèi)存空間的頭部添加SSL協(xié)議頭,形成SSL記錄單元;當(dāng)隧道為UDP隧道時,在經(jīng)加密模塊 1085加密后的內(nèi)存空間的頭部添加UDP協(xié)議頭,形成UDP報(bào)文體;當(dāng)隧道為HTTP隧道時,在 將經(jīng)補(bǔ)齊信息添加模塊1084附加了 Tail后的內(nèi)存空間的頭部添加HTTP協(xié)議頭,形成HTTP 消息體;TCP封裝模塊1087,用于對協(xié)議頭添加模塊1086形成的記錄單元進(jìn)行TCP封裝,得到隧道報(bào)文,其中,記錄單元為以下之一 SSL記錄單元、UDP報(bào)文體、HTTP消息體。S卩,當(dāng) 隧道為SSL隧道時,對SSL記錄單元進(jìn)行TCP封裝,得到SSL隧道報(bào)文,當(dāng)隧道是UDP隧道 時,對UDP報(bào)文體進(jìn)行TCP封裝,得到UDP隧道報(bào)文,當(dāng)隧道是HTTP隧道時,對HTTP消息體 進(jìn)行TCP封裝,得到HTTP隧道報(bào)文。如圖10所示,該裝置還可以包括接收模塊30,用于接收對端通過隧道發(fā)來的隧 道報(bào)文;卸載模塊40,用于對接收模塊30接收的隧道報(bào)文進(jìn)行隧道解封裝,得到RTP報(bào)文, 其中,隧道報(bào)文包括記錄單元,每個記錄單元中封裝有多個RTP報(bào)文。顯然,上述的卸載模 塊40在對隧道報(bào)文進(jìn)行隧道解封裝時的具體處理過程是上述圖5所示的逆過程,這里不再 贅述。在實(shí)際應(yīng)用中,隧道為SSL隧道時,如圖11所示,IMS終端中集成有SSL隧道客戶 端,IMS終端通過SSL隧道客戶端與STG建立SSL隧道。IMS終端和SIP/媒體服務(wù)器承擔(dān) 業(yè)務(wù)/媒體層處理和SIP/RTP報(bào)文的處理。SIP/媒體服務(wù)器具備TCP/IP協(xié)議棧,用于與 SSL隧道客戶端的TCP/IP虛擬協(xié)議棧通信。其中,SSL隧道客戶端包括TCP/IP虛擬協(xié)議 棧、隧道封裝/卸載模塊、SSL協(xié)議棧和TCP/IP協(xié)議棧模塊。STG包括隧道封裝/卸載模 塊、SSL協(xié)議棧和TCP/IP協(xié)議棧模塊。在實(shí)際應(yīng)用中,在IMS客戶端中,可以由SSL隧道客 戶端中的TCP/IP虛擬協(xié)議棧、隧道封裝/卸載模塊、SSL協(xié)議棧和TCP/IP協(xié)議棧來實(shí)現(xiàn)如 圖10中的封裝模塊10和卸載模塊40的功能。在STG中,可以由隧道封裝/卸載模塊、SSL 協(xié)議棧和TCP/IP協(xié)議棧來實(shí)現(xiàn)如圖10中的封裝模塊10和卸載模塊40的功能。具體地,在SSL隧道客戶端中,TCP/IP虛擬協(xié)議棧用于SIP/RTP報(bào)文構(gòu)造IP層信 息(對應(yīng)于圖5中的步驟S504)。隧道封裝/卸載模塊用于RTP報(bào)文的隧道封裝和卸載,發(fā) 送時,將隧道協(xié)議頭(Enc Header)加入到報(bào)文中,用于標(biāo)識隧道承載格式和類型(對應(yīng)于 圖5中的步驟S506),接收時,識別隧道內(nèi)容類型并將隧道協(xié)議頭進(jìn)行卸載,提取RTP報(bào)文。 SSL協(xié)議棧用于SSL封裝、加密和數(shù)據(jù)收發(fā),得到SSL Record (對應(yīng)于圖5中的步驟S508)。 TCP/IP協(xié)議棧用于將SSL Record進(jìn)行傳輸層和網(wǎng)絡(luò)層的封裝和卸載,得到SSL隧道報(bào)文 (對應(yīng)于圖5中的步驟S510)。同樣,STG中的隧道封裝/卸載模塊、SSL協(xié)議棧和TCP/IP協(xié)議棧的功能分別與 SSL隧道客戶端中的隧道封裝/卸載模塊、SSL協(xié)議棧和TCP/IP協(xié)議棧的功能相同,這里不 再贅述。當(dāng)IMS終端通過SSL隧道客戶端向STG發(fā)送數(shù)據(jù)時,具體處理流程如下步驟1,TCP/IP協(xié)議棧將IMS終端所要發(fā)送的媒體數(shù)據(jù)封裝為RTP報(bào)文;步驟2,在隧道封裝/卸載模塊中設(shè)置一個定時器,該定時器的周期(即上述的預(yù) 定封裝時間間隔)為T,并設(shè)置T的值在語音時延允許的范圍內(nèi)(T彡200ms,如T= 100ms)。 隧道封裝/卸載模塊在T內(nèi)收集多個RTP報(bào)文(個數(shù)為T除以RTP報(bào)文的打包時長后取 整),當(dāng)定時器到期時,才進(jìn)行隧道頭封裝(具體處理如圖5中的步驟S506);然后,輸出給 SSL協(xié)議棧;步驟3,SSL協(xié)議棧繼續(xù)對報(bào)文進(jìn)行SSL加密、封裝和發(fā)送(具體處理如圖5中的 步驟S508)。從而,使得在步驟2中的多個RTP報(bào)文形成一個SSL Record,即,將原本需要 多個SSL Record封裝的RTP報(bào)文變?yōu)橹恍枰粋€SSL Record封裝即可;步驟4,TCP/IP協(xié)議棧將步驟3中形成的SSL Record進(jìn)行TCP封裝,得到最終發(fā)送的SSL隧道報(bào)文,并發(fā)送給STG。STG接收到IMS終端發(fā)送來的SSL隧道報(bào)文之后,其具體的處理流程如下步驟1,TCP/IP協(xié)議棧從SSL隧道報(bào)文中解析出SSL Record ;步驟2,SSL協(xié)議棧對SSL Record進(jìn)行SSL卸載;步驟3,隧道封裝/卸載模塊進(jìn)行RTP報(bào)文的還原,并以較短的時間間隔或按RTP 報(bào)文的打包時長發(fā)送到媒體服務(wù)器上。具體地,可以發(fā)送給SIP/媒體服務(wù)器中的TCP/IP 協(xié)議棧進(jìn)行解封裝,得到其中的媒體數(shù)據(jù)。同樣,STG接收到媒體服務(wù)器返回的報(bào)文并向IMS終端發(fā)送數(shù)據(jù)時的具體處理流 程,以及IMS終端接收到STG發(fā)送來的SSL隧道報(bào)文時的具體處理流程,與上述步驟相同, 這里不再贅述。在IMS網(wǎng)絡(luò)中,包括IMS終端和STG,其中,IMS終端和STG為如圖7_10所示的裝 置。IMS終端和STG可以采用如圖3-5所示的數(shù)據(jù)傳輸方法向?qū)Χ税l(fā)送數(shù)據(jù)并接收處理對 端發(fā)來的數(shù)據(jù)。與現(xiàn)有技術(shù)相比,本發(fā)明以上實(shí)施例在使用隧道承載IMS業(yè)務(wù)報(bào)文時,通過將多 個RTP報(bào)文封裝在一個Record中,使得承載的多個RTP報(bào)文可共享一個Record的附加信 息,從而使得附加帶寬得到了極大的節(jié)約,也有效地減小了最終傳輸?shù)乃淼缊?bào)文的單包帶 寬,降低了對用戶接入的帶寬的要求,并在一定程度上提升了用戶的使用體驗(yàn)和業(yè)務(wù)接入 能力。以預(yù)定封裝時間間隔為IOOms為例,對于部分RTP報(bào)文產(chǎn)生了最大為80ms的時延, 但是附加帶寬卻減少了 5倍。由于附加帶寬得到了有效地減少,從而能夠滿足代理環(huán)境下(即IMS終端通過 代理服務(wù)器進(jìn)行上網(wǎng))進(jìn)行IMS業(yè)務(wù)安全穿越的帶寬性能,使SSL VPN(Virtual Private Network,虛擬專用網(wǎng))解決方案在IMS安全穿越領(lǐng)域中更具競爭力。顯然,本發(fā)明上述實(shí)施例還可以應(yīng)用于其他的實(shí)時通信業(yè)務(wù)領(lǐng)域中。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一計(jì)算機(jī)可讀取存儲介質(zhì) 中,該程序在執(zhí)行時,可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介質(zhì)可為磁 碟、光盤、只讀存儲記憶體(Read-Only Memory, ROM)或隨機(jī)存儲記憶體(Random Access Memory, RAM)等。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此, 任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換, 都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍 為準(zhǔn)。
權(quán)利要求
1.一種數(shù)據(jù)傳輸方法,用于互聯(lián)網(wǎng)協(xié)議多媒體子系統(tǒng)IMS,其特征在于,包括對實(shí)時傳輸協(xié)議RTP報(bào)文進(jìn)行隧道封裝,得到隧道報(bào)文,其中,所述隧道報(bào)文中包括記 錄單元,每個記錄單元中封裝有多個RTP報(bào)文;將所述隧道報(bào)文通過與對端之間的隧道發(fā)送到所述對端,其中,所述對端為安全隧道 網(wǎng)關(guān)STG或者IMS終端。
2.如權(quán)利要求1所述的方法,其特征在于,對實(shí)時傳輸協(xié)議RTP報(bào)文進(jìn)行隧道封裝,得 到隧道報(bào)文包括在預(yù)先創(chuàng)建的鏈表中,生成并緩存RTP報(bào)文;判斷是否到達(dá)預(yù)定封裝時間間隔,其中,所述預(yù)定封裝時間間隔的值小于或等于 200ms ;若到達(dá),則對所述鏈表中的在所述預(yù)定封裝時間間隔內(nèi)生成的多個RTP報(bào)文進(jìn)行隧道 封裝,得到隧道報(bào)文。
3.如權(quán)利要求2所述的方法,其特征在于,所述隧道為安全套接字層SSL隧道,對所述 鏈表中的在所述預(yù)定封裝時間間隔內(nèi)生成的多個RTP報(bào)文進(jìn)行隧道封裝,得到隧道報(bào)文包 括從所述鏈表中取出所述多個RTP報(bào)文,并拷貝到一段連續(xù)的內(nèi)存空間中; 在所述內(nèi)存空間的頭部加入隧道協(xié)議頭Enc Header ;對加入了 Enc Header后的內(nèi)存空間中的數(shù)據(jù)進(jìn)行摘要計(jì)算,并將計(jì)算得到的摘要信息 HMAC附加在所述加入了 Enc Header后的內(nèi)存空間的尾部; 在所述HMAC的后面附加分組長度補(bǔ)齊信息Tail ; 對所述附加了 Tail后的內(nèi)存空間中的數(shù)據(jù)進(jìn)行加密; 在加密后的內(nèi)存空間的頭部添加SSL協(xié)議頭,形成SSL記錄單元; 對形成的SSL記錄單元進(jìn)行TCP封裝,得到SSL隧道報(bào)文。
4.如權(quán)利要求1所述的方法,其特征在于,還包括 接收所述對端通過所述隧道發(fā)來的隧道報(bào)文;對接收的隧道報(bào)文進(jìn)行隧道解封裝,得到RTP報(bào)文,其中,所述隧道報(bào)文包括記錄單 元,每個記錄單元中封裝有多個RTP報(bào)文。
5.如權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述隧道為以下之一SSL隧 道、超文本傳輸協(xié)議HTTP隧道、用戶數(shù)據(jù)報(bào)協(xié)議UDP隧道。
6.一種數(shù)據(jù)傳輸裝置,用于互聯(lián)網(wǎng)協(xié)議多媒體子系統(tǒng)IMS,其特征在于,包括封裝模塊,用于對實(shí)時傳輸協(xié)議RTP報(bào)文進(jìn)行隧道封裝,得到隧道報(bào)文,其中,所述隧 道報(bào)文中包括記錄單元,每個記錄單元中封裝有多個RTP報(bào)文;發(fā)送模塊,用于將所述隧道報(bào)文通過與對端之間的隧道發(fā)送到所述對端,其中,所述對 端為安全隧道網(wǎng)關(guān)STG或者IMS終端。
7.如權(quán)利要求6所述的裝置,其特征在于,所述封裝模塊包括 封裝緩存模塊,用于在預(yù)先創(chuàng)建的鏈表中,生成并緩存RTP報(bào)文; 定時器,用于進(jìn)行計(jì)時;判斷模塊,用于判斷所述定時器是否到達(dá)預(yù)定封裝時間間隔,其中,所述預(yù)定封裝時間 間隔的值小于或等于200ms ;處理模塊,用于在所述判斷模塊的判斷結(jié)果為到達(dá)時,對所述鏈表中的在所述預(yù)定封 裝時間間隔內(nèi)生成的多個RTP報(bào)文進(jìn)行隧道封裝,得到隧道報(bào)文。
8.如權(quán)利要求7所述的裝置,其特征在于,所述處理模塊包括拷貝模塊,用于從所述鏈表中取出所述多個RTP報(bào)文,并拷貝到一段連續(xù)的內(nèi)存空間中;隧道協(xié)議頭添加模塊,用于在所述內(nèi)存空間的頭部加入隧道協(xié)議頭^icHeader ;摘要信息計(jì)算添加模塊,用于對經(jīng)所述隧道協(xié)議頭添加模塊加入了 EncHeader后的 內(nèi)存空間中的數(shù)據(jù)進(jìn)行摘要計(jì)算,并將計(jì)算得到的摘要信息HMAC附加在所述加入了 Enc Header后的內(nèi)存空間的尾部;補(bǔ)齊信息添加模塊,用于在所述摘要信息計(jì)算添加模塊附加的HMAC的后面附加分組 長度補(bǔ)齊信息Tail ;加密單元,用于當(dāng)所述隧道為安全套接字層SSL隧道或用戶數(shù)據(jù)報(bào)協(xié)議UDP隧道時,對 經(jīng)所述補(bǔ)齊信息添加模塊附加了 Tail后的內(nèi)存空間中的數(shù)據(jù)進(jìn)行加密;協(xié)議頭添加模塊,用于當(dāng)所述隧道為SSL隧道時,在經(jīng)所述加密模塊加密后的內(nèi)存空 間的頭部添加SSL協(xié)議頭,形成SSL記錄單元;當(dāng)所述隧道為UDP隧道時,在經(jīng)所述加密模 塊加密后的內(nèi)存空間的頭部添加UDP協(xié)議頭,形成UDP報(bào)文體;當(dāng)所述隧道為超文本傳輸協(xié) 議HTTP隧道時,在將經(jīng)所述補(bǔ)齊信息添加模塊附加了 Tail后的內(nèi)存空間的頭部添加HTTP 協(xié)議頭,形成HTTP消息體;TCP封裝模塊,用于對所述協(xié)議頭添加模塊形成的記錄單元進(jìn)行TCP封裝,得到隧道報(bào) 文,其中,所述記錄單元為以下之一 SSL記錄單元、UDP報(bào)文體、HTTP消息體。
9.如權(quán)利要求6所述的裝置,其特征在于,還包括接收模塊,用于接收所述對端通過所述隧道發(fā)來的隧道報(bào)文;卸載模塊,用于對所述接收模塊接收的隧道報(bào)文進(jìn)行隧道解封裝,得到RTP報(bào)文,其 中,所述隧道報(bào)文包括記錄單元,每個記錄單元中封裝有多個RTP報(bào)文。
10.一種互聯(lián)網(wǎng)協(xié)議多媒體子系統(tǒng)IMS網(wǎng)絡(luò),其特征在于,包括IMS終端和安全隧道網(wǎng) 關(guān)STG,其中,所述IMS終端和STG為如權(quán)利要求6至9中任一項(xiàng)所述的裝置。
全文摘要
本發(fā)明實(shí)施例提供一種互聯(lián)網(wǎng)協(xié)議多媒體子系統(tǒng)網(wǎng)絡(luò)、數(shù)據(jù)傳輸方法和裝置,用于通信技術(shù)領(lǐng)域。其中,用于IMS的數(shù)據(jù)傳輸方法包括對RTP報(bào)文進(jìn)行隧道封裝,得到隧道報(bào)文,其中,隧道報(bào)文中包括記錄單元,每個記錄單元中封裝有多個RTP報(bào)文;將隧道報(bào)文通過與對端之間的隧道發(fā)送到對端,其中,對端為STG或者IMS終端。本發(fā)明實(shí)施例減少了隧道封裝帶來的附加帶寬,進(jìn)而降低了單包的帶寬,避免了現(xiàn)有技術(shù)由于單包的附加帶寬較大,對用戶接入的帶寬提出了更高的要求,在一定程度上降低了用戶的使用體驗(yàn)和業(yè)務(wù)接入能力的問題。
文檔編號H04L29/06GK102118292SQ201110047670
公開日2011年7月6日 申請日期2011年2月28日 優(yōu)先權(quán)日2011年2月28日
發(fā)明者張戰(zhàn)兵, 陳愛平 申請人:成都市華為賽門鐵克科技有限公司