亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        利用ICE實(shí)現(xiàn)VOIP媒體流穿越

        2010-04-12 00:00:00暢巨崢王慶輝
        現(xiàn)代電子技術(shù) 2010年6期

        摘 要:為了解決NAT所帶來(lái)的穿越問(wèn)題,業(yè)界提出多種方案如ALG,STUN,TURN等,但它們?cè)诰W(wǎng)絡(luò)拓?fù)浜蛻?yīng)用可擴(kuò)展性上都具有一定的局限性。在此參考STUN 協(xié)議和TURN協(xié)議,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于ICE方式的綜合性解決方案,擁有ICE模塊的客戶端在發(fā)起和接收呼叫前會(huì)收集所有可能用于媒體流傳輸?shù)牡刂罚缓髲闹羞x擇最優(yōu)傳輸路徑進(jìn)行媒體流傳輸,從而克服了傳統(tǒng)方案的不足,具有很強(qiáng)的適應(yīng)能力,能工作在任何拓?fù)洵h(huán)境中。

        關(guān)鍵詞:NAT穿越;STUN;TURN;ICE

        中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A

        文章編號(hào):1004-373X(2010)06-105-04

        Traversal of VOIP Media Stream Based on ICE

        CHANG Juzheng,WANG Ying,WANG Qinghui

        (Shenyang Institute of Chemical Technology,Shenyang,110142,China)

        Abstract:Numerous solutions including ALG,classic STUN,TURN etc,have been defined for allowing higher level singaling protocol such as the Session Initiation Protocol to work through NAT,but these techniques are limited to work only in certain network toplogies.A new completely solution to the NAT traversal-Interactive Connectivity Establishmentis(ICE) is introduced.ICE is a not a new method but making use of existing protocol such as STUN and TURN.Before initializing or answering a session,ICE-enabled UAs can collect all candidates that may be used for media transfer,and choose one optimal candidate-pair for mediastream.ICE can work in every topologies,overcome the shortcomings of traditional sulotions.

        Keywords:NAT traversal;STUN;TURN;ICE

        目前互聯(lián)網(wǎng)的迅猛發(fā)展使原有的IPv4地址日益面臨耗盡的威脅[1],為了能夠盡量減少地址的消耗,引入NAT[2]的概念。通過(guò)NAT技術(shù)將網(wǎng)絡(luò)劃分為公網(wǎng)和私網(wǎng)兩個(gè)部分,在私網(wǎng)內(nèi)部使用的是私網(wǎng)IP[3]地址,這樣便達(dá)到了減少I(mǎi)P消耗的目的,同時(shí)還有一定程度的安全性,所以NAT技術(shù)得到了廣泛應(yīng)用,但也給一些互聯(lián)網(wǎng)應(yīng)用如基于SIP[4]的通信帶來(lái)了挑戰(zhàn)。在SIP的呼叫建立過(guò)程中,消息接收方始終按照協(xié)議載荷內(nèi)的源地址和端口信息來(lái)回傳響應(yīng)消息和發(fā)送相應(yīng)的媒體流,當(dāng)SIP終端通過(guò)NAT進(jìn)行地址轉(zhuǎn)化時(shí),NAT會(huì)將IP包頭的源IP地址和端口轉(zhuǎn)換為NAT的網(wǎng)絡(luò)出口地址,從而造成載荷內(nèi)的地址和端口號(hào)與IP包頭的源地址和源端口不一致,此時(shí)消息接收方無(wú)法將響應(yīng)消息正確回傳到消息發(fā)送方[1],雙方也無(wú)法建立正常的通信連接,這就是所謂的穿越問(wèn)題。為解決穿越問(wèn)題,已經(jīng)有多種方案,常用的有:ALG,STUN,TURN[7],PROXY等,但這些方案都有自己的適用范圍,只在特定的拓?fù)洵h(huán)境下才能發(fā)揮作用,同時(shí)還會(huì)給系統(tǒng)帶來(lái)許多復(fù)雜性和脆弱性因素[8]。所以需要一種能適用于各種網(wǎng)絡(luò)拓?fù)洵h(huán)境且足夠靈活的方案,使之能在各種情況下都能很好地解決NAT穿越問(wèn)題,而ICE[9]正是符合這樣要求的一種良好的解決方案。

        1 ICE方案原理及其實(shí)現(xiàn)

        1.1 ICE概述

        交互式連接建立(Interactive Connectivity Establishment,ICE)方案是利用STUN和TURN并對(duì)之進(jìn)行適當(dāng)擴(kuò)充后實(shí)現(xiàn)穿越的。ICE對(duì)SDP[10]也進(jìn)行了擴(kuò)展,通信雙方會(huì)在發(fā)出消息前收集所有可能用于通信的地址,并將它們以SDP擴(kuò)展屬性的形式編入SIP消息中發(fā)出,在雙方進(jìn)行一次消息交互后并不立即啟動(dòng)媒體流,而是對(duì)所有這些地址配對(duì)并計(jì)算優(yōu)先級(jí),然后按照優(yōu)先級(jí)順序進(jìn)行連通性測(cè)試,以選擇最佳地址對(duì)進(jìn)行媒體流的傳輸。

        1.2 ICE算法流程

        1.2.1 收集地址并確定其基地址

        通信雙方收集所有可能用于會(huì)話的地址,每個(gè)候選地址都有一個(gè)基地址,當(dāng)使用候選地址發(fā)送消息時(shí)必須由其基地址發(fā)出[9]??蛻舳嗽诎l(fā)送初始化請(qǐng)求前收集三類地址,一類來(lái)自于客戶端直接連接的網(wǎng)絡(luò)接口,稱為主機(jī)候選地址,其基地址就是它本身;一類是經(jīng)NAT映射后的地址,稱為服務(wù)器反身候選地址,其基地址就是相應(yīng)的主機(jī)候選地址;還有一類是TURN服務(wù)器分配的地址,稱為中繼候選地址,其基地址就是它本身。其中主機(jī)候選地址通過(guò)給本地主機(jī)IP地址附加一個(gè)空閑端口號(hào)組成;服務(wù)器反身地址則可以通過(guò)向STUN服務(wù)器發(fā)送綁定請(qǐng)求或向TURN服務(wù)器發(fā)送分配請(qǐng)求獲得;中繼地址則通過(guò)向TURN服務(wù)器發(fā)送分配請(qǐng)求獲得。

        1.2.2 確定候選地址的優(yōu)先級(jí)并確定缺省地址

        收集好地址后就是確定各個(gè)地址的優(yōu)先級(jí),優(yōu)先級(jí)通過(guò)公式Pc=224×Pt+28×Pl+(256-Nc)來(lái)計(jì)算,式中:Pt為類型優(yōu)先參數(shù),為的整數(shù),對(duì)于本地候選地址,其類型優(yōu)先級(jí)為126,服務(wù)器反身地址的類型優(yōu)先級(jí)為100,中繼地址的類型優(yōu)先級(jí)為0;Pl是本地優(yōu)先參數(shù),是的整數(shù),當(dāng)只有一個(gè)IP地址時(shí)設(shè)為65 535;Nc則是候選地址所對(duì)應(yīng)的組件編號(hào),是屬于的整數(shù)[9]。

        缺省候選地址是用來(lái)發(fā)送媒體流的地址,在連通性測(cè)試前,按照中繼地址、服務(wù)器反身地址、主機(jī)地址的順序來(lái)選擇。

        1.2.3 構(gòu)建并發(fā)送初始化請(qǐng)求

        初始化消息由一系列媒體流組成,每個(gè)媒體流都包含候選地址列表和一個(gè)缺省地址,客戶端將每個(gè)媒體流的缺省地址編輯進(jìn)相應(yīng)的SDP的c行和m行,并將候選地址及其相關(guān)信息編輯進(jìn)Candidate屬性,這樣生成初始化請(qǐng)求后由信令信道發(fā)出。

        1.2.4 生成應(yīng)答

        被叫端收到初始化請(qǐng)求后,進(jìn)行以下操作:

        (1) 確定雙方的角色[9]。通信雙方一方為控制端,另一方為受控端,分別由ICE-CONTROLLED屬性和ICE-CONTROLLING屬性表示,主叫端是控制端,被叫端是受控端。

        (2) 收集候選地址,這些地址可以在初始化請(qǐng)求到達(dá)前預(yù)收集,以減少呼叫建立時(shí)延。

        (3) 確定候選地址的優(yōu)先級(jí)并確定缺省地址。

        (4) 生成響應(yīng)消息,并反饋給主叫端。

        1.2.5 生成檢測(cè)列表

        經(jīng)過(guò)地址收集后,客戶端擁有雙方的所有候選地址。在對(duì)這些地址進(jìn)行配對(duì)、計(jì)算地址對(duì)優(yōu)先級(jí)并按照優(yōu)先級(jí)排序后,將地址對(duì)的本地地址由其基地址代替,剔除重復(fù)的地址對(duì),生成檢測(cè)列表。使用公式Pp=232×min(G,D)+2×max(G,D)+(G>D?1:0)來(lái)計(jì)算地址對(duì)的優(yōu)先級(jí)。式中:G和D分別代表地址對(duì)中本地和遠(yuǎn)端地址的優(yōu)先級(jí)[9]。

        1.2.6 狀態(tài)轉(zhuǎn)換

        地址對(duì)一共有五種狀態(tài),分別為等待、運(yùn)行、成功、失敗、凍結(jié)。ICE運(yùn)行期間,地址對(duì)的狀態(tài)將按照?qǐng)D1所示那樣在各狀態(tài)間轉(zhuǎn)換。

        圖1 地址對(duì)狀態(tài)遷移

        1.2.7 連通性測(cè)試

        對(duì)地址對(duì)進(jìn)行測(cè)試時(shí)客戶端將請(qǐng)求從處于等待狀態(tài)的地址對(duì)中的本地地址發(fā)往其遠(yuǎn)端地址,對(duì)端收到后產(chǎn)生響應(yīng),并觸發(fā)對(duì)同一地址對(duì)的測(cè)試過(guò)程。測(cè)試成功的地址對(duì)被加入有效列表中,測(cè)試過(guò)程結(jié)束后,有效列表中優(yōu)先級(jí)最高的地址對(duì)就是ICE所選中的用來(lái)傳輸媒體流的地址對(duì)。

        測(cè)試使用STUN綁定請(qǐng)求,如果測(cè)試的地址對(duì)其本地地址是服務(wù)器反身地址或主機(jī)候選地址,則直接由其基地址將請(qǐng)求發(fā)出;如果測(cè)試的地址對(duì)其本地地址為中繼地址,則必須先為對(duì)端地址在中繼服務(wù)器上建立許可方可使用TURN協(xié)議的Send命令和Data命令通過(guò)中繼服務(wù)器進(jìn)行連通性測(cè)試。包含中繼地址的連通性測(cè)試流程如圖2所示。

        圖2 利用中繼進(jìn)行連通性測(cè)試

        1.2.8 更新缺省候選地址

        如果連通性測(cè)試所選中的地址跟先前設(shè)置的缺省地址不同,則需要再次進(jìn)行一次信息交互,以便雙方就用于媒體流傳送的地址對(duì)達(dá)成共識(shí)。如果連通性測(cè)試所選中的地址對(duì)恰巧跟缺省地址對(duì)相同,則省去這一步,可直接進(jìn)入媒體流的傳輸。

        1.3 ICE算法實(shí)現(xiàn)

        1.3.1 ICE協(xié)議棧架構(gòu)

        實(shí)現(xiàn)后的ICE協(xié)議棧架構(gòu)及類與主要方法如圖3所示。

        圖3 ICE協(xié)議架構(gòu)及類與方法總圖

        由圖3可知,ICE協(xié)議??煞譃樗膶?。其中STUN功能分布于各層,最低層的STUN消息層主要實(shí)現(xiàn)STUN消息的表示與解析,這是ICE得以實(shí)現(xiàn)的基礎(chǔ);在事務(wù)層STUN則主要進(jìn)行STUN請(qǐng)求消息的重發(fā)和對(duì)STUN消息進(jìn)行認(rèn)證;在會(huì)話層,STUN的主要功能是管理STUN 客戶端和服務(wù)器之間的消息交互;在傳輸對(duì)象層,STUN提供異步UDP傳輸、獲取NAT映射地址并定時(shí)刷新NAT綁定。TURN和ICE這兩種協(xié)議分布在會(huì)話層和傳輸對(duì)象層。在會(huì)話層,TURN主要借助STUN會(huì)話功能實(shí)現(xiàn)其協(xié)議邏輯;在傳輸對(duì)象層,TURN提供基于中繼服務(wù)器的數(shù)據(jù)收發(fā)。

        ICE在會(huì)話層管理和執(zhí)行連通性測(cè)試,并將測(cè)試結(jié)果提供給ICE傳輸對(duì)象層建立通信接口,以便為應(yīng)用層提供服務(wù)。

        1.3.2 加入ICE后的SIP呼叫流程

        當(dāng)將ICE算法集成到SIP呼叫過(guò)程后,流程應(yīng)該是:

        (1) SIP終端注冊(cè),ICE初始化,開(kāi)始收集候選地址并計(jì)算優(yōu)先級(jí),選擇缺省候選地址;

        (2) 主叫端生成初始化請(qǐng)求,并通過(guò)信令信道發(fā)送給被叫;

        (3) 被叫在收到請(qǐng)求消息后,用事先收集的地址生成1XX響應(yīng)并發(fā)送給主叫端;

        (4) 雙方先后生成檢測(cè)隊(duì)列并進(jìn)行連通性檢查;

        (5) 為每一個(gè)組件都找到一對(duì)測(cè)試成功的地址對(duì);

        (6) 若選出的傳輸?shù)刂穼?duì)與事先選擇的缺省候選地址對(duì)不匹配,則發(fā)送一個(gè)更新請(qǐng)求,否則進(jìn)入下一步;

        (7) 發(fā)送180響應(yīng)并以響鈴提示用戶;

        (8) 用戶確認(rèn)接收后,發(fā)送200 OK響應(yīng);

        (9) 主叫端發(fā)送ACK進(jìn)行確認(rèn);

        (10) 開(kāi)始媒體流的傳輸;

        (11) 媒體流傳輸完畢后,結(jié)束ICE,釋放相關(guān)資源。

        在實(shí)現(xiàn)時(shí)為了減少接聽(tīng)延遲和撥號(hào)延遲[4],SIP客戶端在登陸后即開(kāi)始收集候選地址,在需要時(shí)直接使用。

        2 實(shí)驗(yàn)驗(yàn)證

        所有測(cè)試都在實(shí)驗(yàn)室進(jìn)行,使用Windows 2003 Server的路由與遠(yuǎn)程管理工具和Linux下的iptables來(lái)模擬NAT的行為,SIP服務(wù)器和TURN服務(wù)器分別采用開(kāi)源的OPENSIPS軟件和turnserver軟件,客戶端則都采用嵌入ICE模塊的軟電話,對(duì)通信一方處于NAT之后,雙方處于同一NAT之后,雙方處于不同NAT之后等多種拓?fù)洵h(huán)境進(jìn)行雙方通話測(cè)試,通過(guò)抓包軟件分析可知,該算法在各種環(huán)境均能順利完成媒體流的穿越,呼叫建立時(shí)延采用多次取平均值的方法,其結(jié)果參見(jiàn)表1。

        表1 ICE穿越測(cè)試結(jié)果

        拓?fù)洵h(huán)境測(cè)試結(jié)果呼叫建立時(shí)延 /ms

        雙方都位于公網(wǎng)成功363

        一方為公網(wǎng)一方為私網(wǎng)成功407

        雙方都位于同一私網(wǎng)成功512

        雙方位于不同私網(wǎng)成功517

        從測(cè)試結(jié)果可知,在有NAT存在的環(huán)境中,使用ICE方案時(shí)呼叫建立時(shí)延會(huì)相應(yīng)增大,但其時(shí)延也是完全可接受的,實(shí)驗(yàn)證實(shí)了該方案都可行性。

        3 結(jié) 語(yǔ)

        ICE綜合利用STUN和TURN,在通信雙方之間尋找最佳傳輸路徑,其優(yōu)勢(shì)是顯而易見(jiàn)的,通過(guò)在SIP終端中嵌入ICE模塊,使得媒體流可以穿越任何類型的NAT設(shè)備,且不需對(duì)NAT進(jìn)行任何的改變,這是它最大的優(yōu)點(diǎn)。

        傳統(tǒng)的穿越方式都有其致命弱點(diǎn),如STUN需要客戶端自己去判斷所處網(wǎng)絡(luò)環(huán)境及NAT類型,這實(shí)際上是不必要的,而它最大的缺點(diǎn)在于無(wú)法在所有網(wǎng)絡(luò)拓?fù)洵h(huán)境中都正常工作;對(duì)于TURN方案,由于使用服務(wù)器進(jìn)行中繼,很容易出現(xiàn)丟包或者時(shí)延增加等現(xiàn)象,并且隨著業(yè)務(wù)量的增大,TURN服務(wù)器必將成為整個(gè)系統(tǒng)的瓶頸,而ICE方式正好彌補(bǔ)了單獨(dú)采用STUN或TURN所帶來(lái)的不足,它將中繼轉(zhuǎn)發(fā)服務(wù)作為優(yōu)先級(jí)最低的服務(wù),從而在最大程度上保證了服務(wù)的可靠性和靈活性[8]。此外,ICE方式還支持IPv6協(xié)議。綜合所有這些特點(diǎn),ICE作為一種綜合性解決方案必將有著非常廣闊的應(yīng)用前景。

        參考文獻(xiàn)

        [1]周海華,邊恩炯.SIP原理與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2007.

        [2]Egevang K,F(xiàn)rancis P.The IP Network Address Translator (NAT).http://www.ietf.org/rfc/rfc1631.txt,1994.

        [3]Rekhter Y,Moskowitz B,Karrenberg D.Address Allocation for Private Internets[EB/OL].http://www.ietf.org/rfc/rfc1918.txt,1996.

        [4]Rosenberg J,Schulzrinne H,Camarillo G.SIP:Session Initiation Protocol.http://www.ietf.org/rfc/rfc3261.txt,2002.

        [5]Rosenberg J,Weinberger J,Huitema C.Stun-Simple Tra-versal of User Datagram Protocol (UDP) Through Network Address Translators (NATs).http://www.ietf.org/rfc/rfc3489.txt,2003.

        [6]Rosenberg J,Mahy R,Matthews P.Session Traversal Utilities for NAT(STUN).http://www.ietf.org/rfc/rfc5389.txt,2008.

        [7]Session Traversal Utilities for NAT(STUN)draft-ietf-behave-turn-15.http://www.ietf.org/internet-drafts/draft-ietf-behave-turn-15.txt,2009.

        [8]曾立,吳平,高萬(wàn)林,等.基于ICE方式SIP穿透Symmetric NAT技術(shù)研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(11):3 017-3 020.

        [9]Rosenberg J.Interactive Connectivity Establishment (ICE):A Protocol for Network Address Translator (NAT) Traversal for Offer/Answer Protocols draft-ietf-mmusic-ice-19.http://www.ietf.org/internet-drafts/draft-ietf-mmusic-ice-19,2007.

        [10]Handley M,Jacobson V,Perkins C.SDP:Session Description Protocol.http://www.ietf.org/rfc/rfc3264.txt,2006.

        亚洲日本天堂| 久久久久久自慰出白浆| 人妻夜夜爽天天爽三区| 后入内射欧美99二区视频| 日韩av一区二区三区四区av| 手机在线中文字幕av| 精品国产一区二区三区色搞| 亚洲综合欧美在线一区在线播放| 99热精品成人免费观看| 九九日本黄色精品视频| 国产成人精品日本亚洲i8| 国产精品兄妹在线观看麻豆 | 北条麻妃毛片在线视频| 久久亚洲一级av一片| 中文字幕亚洲精品在线免费| 亚洲熟女www一区二区三区| 公和我做好爽添厨房| 国产精选污视频在线观看 | 视频女同久久久一区二区三区| 区一区二区三区四视频在线观看| 成年女人vr免费视频| 中文字幕高清在线一区二区三区 | 欧美va亚洲va在线观看| 国产亚洲av人片在线播放| 国产亚洲成人精品久久久| 天天爽夜夜爱| 亚洲a∨天堂男人无码| 一区二区三区日本在线| 国99精品无码一区二区三区| 日韩精品一区二区三区免费视频| 日韩在线视精品在亚洲| 国产午夜精品久久精品| av色综合久久天堂av色综合在| 综合久久给合久久狠狠狠97色| 国产精品日韩中文字幕| 亚洲三级视频一区二区三区| 亚洲精品suv精品一区二区 | 午夜亚洲av永久无码精品| 午夜精品久视频在线观看| 日本免费精品一区二区| 韩国三级中文字幕hd|