亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種采用ice中繼候選地址進行媒體傳輸?shù)姆椒?

文檔序號:7665732閱讀:213來源:國知局
專利名稱:一種采用ice中繼候選地址進行媒體傳輸?shù)姆椒?br> 技術(shù)領(lǐng)域
本發(fā)明涉及一種采用交互式連接建立ICE的中繼候選地址穿越網(wǎng)絡(luò)地址轉(zhuǎn) 換器NAT進行媒體傳輸?shù)姆椒ǎ瑢儆谟嬎銠C網(wǎng)絡(luò)技術(shù)領(lǐng)域。
背景技術(shù)
交互式連接建立ICE (Interactive Connectivity Establishment)是近幾年來 IETF提出的解決NAT (Network Address Translator)穿越的技術(shù)方案。ICE適 用于任何采用offer/answer模型的協(xié)議,集成了 STUN和TURN兩種技術(shù),不 需要對這兩個協(xié)議做任何擴展就可以實現(xiàn)媒體流穿越所有類型的NAT。因此, ICE已經(jīng)成為IETF組織的當前研究熱點之一。
為了解決NAT穿越問題,正TF組織曾經(jīng)提出過應(yīng)用層網(wǎng)關(guān)ALG (Application Layer Gateway )、 中間箱通信 MIDCOM ( Middlebox Communications )、 UDP穿越NAT的簡單方法STUN ( Simple Traversal of UDP Through NAT )和使用中繼方式穿越NAT ( TURN, Traversal Using Relay NAT ) 等多種方案,但是,這些技術(shù)各有利弊,且只有在特定拓樸結(jié)構(gòu)的網(wǎng)絡(luò)中才能 發(fā)揮各自的功能,因此通用性不強。ICE是一種通用的方案,既實現(xiàn)了 STUN 不能解決的對稱型NAT的穿越,又解決了單獨使用TURN所帶來的資源巨額 消耗的問題,能夠綜合利用這兩種協(xié)議的優(yōu)點并加以筒化,是一種有廣闊應(yīng)用 前景的NAT穿越方案。
ICE的主要思想是在建立媒體流信道前搜集多種候選地址,并按照設(shè)定的 算法和規(guī)則給出這些候選地址的優(yōu)先級,再經(jīng)過通信雙方一系列的信息交互與 連通性檢測,選出最佳的候選對地址來完成媒體的通信。
但是,ICE的現(xiàn)有機制中存在以下問題在對稱型NAT環(huán)境中,只有對中 繼候選對地址的連通性檢測是成功的。其結(jié)果是, 一側(cè)的客戶端使用STUN服
務(wù)器(該服務(wù)器同時具有STUN和TURN服務(wù)器的功能)的中繼候選地址接收 和發(fā)送媒體,而另一側(cè)的客戶端使用STUN服務(wù)器的監(jiān)聽地址來收發(fā)媒體包。 由于占用了服務(wù)器的監(jiān)聽地址,導(dǎo)致媒體傳輸?shù)男实?,傳輸時延大,整體性能差。
下面,對使用ICE穿越對稱型NAT的過程作具體介紹和分析。
先簡單介紹NAT的類型,按照NAT處理UDP包的方式,現(xiàn)有的NAT可 以分為四種類型完全圓錐型NAT (Full Cone NAT)、地址受限圓錐型NAT (Address Restricted Cone NAT)、端口受限圓錐型NAT (Port Restricted Cone NAT)和對稱型NAT (Symmetric NAT )。前三種類型的NAT又統(tǒng)稱為圓錐型 NAT, NAT地址映射只與源地址有關(guān),而對稱型NAT的NAT地址映射則與源 地址和目的地址都有關(guān),是最難穿越的一種NAT類型。
由于對稱型NAT的限制最為嚴格,只有內(nèi)網(wǎng)的地址(IP地址+端口 )向外 網(wǎng)的地址(IP地址+端口 )發(fā)送包后才能接受該外網(wǎng)的地址(IP地址+端口 ) 發(fā)來的包,針對每一對源端/目的地址都在NAT上單獨分配一個映射地址。因 此,對稱型NAT對于包的過濾性更強,安全性也更高,能夠更加有效地阻止外 網(wǎng)主機向內(nèi)網(wǎng)主機發(fā)起的攻擊。但是,正是由于這種每個連接都需要在NAT穿 "洞"的機制使得對稱型NAT非常不易穿越。
下面針對對稱型NAT,進一步分析在現(xiàn)有的ICE機制中,采用中繼候選地 址來傳送媒體流所帶來的問題。(先對圖中英文縮寫或標識說明如下"S"和"D" 分別代表請求或應(yīng)答消息的源地址和目的地址,"MAP"和"RELAY"分別代 表服務(wù)器反身候選地址和中繼候選地址,"L/R-PRIV"是代理L或R的主機候 選地址,"L/R-NAT-PUB f ,是代理L或R在NAT上映射的公網(wǎng)地址,序號〖為 自然數(shù)。"L/R-REL-PUB"是代理L或R的中繼候選地址,"STUN-LISTEN" 是STUN服務(wù)器的監(jiān)聽地址。)
首先通過圖1 ~圖6的流程圖來說明ICE的過程々i設(shè)代理L和代理R(這 是根據(jù)流程圖中代理的位置關(guān)系所采用的標識,左、右兩個代理分別以代理L 和代理R表示)都位于對稱型NAT后,共用 一個公網(wǎng)上的STUN服務(wù)器。這個例子中只分析了 RTP情況,RTCP的情況類似,不再列出。在對候選對地址
進行提名時采用常規(guī)提名方式?,F(xiàn)在使用ICE方案穿越對稱型NAT的具體流程 如下
(1 )代理L搜集候選地址(參見圖1 ):使用STUN的擴展方法的Allocate 分配請求來實現(xiàn)該操作,此后向代理R發(fā)送攜帶L候選地址的offer;
STUN服務(wù)器收到Allocate請求后,會為該代理分配一個中繼候選地址 "L-REL-PUB",同時存儲該請求消息的源、目的地址(包括IP地址和端口號) 和傳輸協(xié)議,即TURN機制中的內(nèi)部5元組,并將該內(nèi)部5元組記為"內(nèi)L"。 在圖1的例子中,"內(nèi)L"包括代理L的服務(wù)器反身候選地址L-NAT-PUB1的 IP地址和端口號,STUN服務(wù)器的監(jiān)聽地址STUN-LISTEN的IP地址和端口號, 傳輸協(xié)議。代理L搜集的候選地址包括主機候選地址"L-PRIV"、服務(wù)器反 身候選地址"L-NAT-PUB1"和中繼候選地址"L-REL-PUB"。代理L進行優(yōu)先 級計算后,從高到低的排列結(jié)果是L-PRIV、 L-NAT-PUB1和L-REL-PUB,這 也是ICE中推薦的順序。然后,代理L會將這三個地址填寫在offer中發(fā)送給 代理R。
(2)代理R收到代理L的offer后,觸發(fā)其搜集候選地址的過程,并且將 自身的候選地址列入answer中發(fā)送給代理L (參見圖2 ):
STUN服務(wù)器在收到代理R的Allocate請求后,同樣會分配一個中繼候選 地址"R-REL-PUB"來存儲一個內(nèi)部5元組信息,即該Allocate請求的源、目 的地址和傳輸協(xié)議,并將該5元組記為"內(nèi)R","內(nèi)R"包括代理R的服務(wù)器 反身候選地址R-NAT-PUB1的IP地址和端口號,STUN服務(wù)器的監(jiān)聽地址 STUN-LISTEN的IP地址和端口號,傳輸協(xié)議。代理R搜集的候選地址包括 主機候選地址"R-PRIV"、服務(wù)器反身候選地址"R-NAT-PUBl"和中繼候選地 址"R-REL-PUB"。經(jīng)過優(yōu)先級排序后,從高到低得到的結(jié)果是R-PRIV、 R-NAT-PUBl和R-REL-PUB。同樣,代理R將這些候選地址填寫在answer中 發(fā)送給代理L。
(3 )代理L收到代理R的answer后,通過STUN服務(wù)器的綁定Binding
請求,開始進行候選對地址的連通性檢測(參見圖3):
在檢測候選對地址(代理L的主沖幾候選地址L-PRIV和代理R的主片幾候選 地址R-PRIV )時,由于代理R的主機候選地址R-PRIV為私有地址,該檢測包 在L端的NAT處被丟棄。在纟企測候選對地址(代理L的主機候選地址L-PRIV 和代理R的服務(wù)器反身候選地址R-NAT-PUB 1 )的過程中,雖然檢測包穿過了 L端的NAT,但是到達R端的對稱型NAT時,由于代理R此前只通過服務(wù)器 反身候選地址R-NAT-PUB 1向STUN服務(wù)器的監(jiān)聽地址發(fā)送過包,所以只能從 R-NAT-PUB1地址接收從STUN服務(wù)器的監(jiān)聽地址發(fā)過來的包,對于其他地址 發(fā)送過來的包(例如,圖3中第二次連通性檢測時從代理L的NAT發(fā)送給R 的NAT的包)作丟棄處理。所以,該4企測包在穿越R側(cè)的NAT時會被丟棄。
因此,候選對地址(代理L的主^L候選地址L-PRIV和代理R的中繼候選 地址R-REL-PUB ) ^r測成功。首先檢測包通過L端的NAT到達目的端代理R 的中繼候選地址R-REL-PUB,該R-REL-PUB是STUN服務(wù)器分配給代理R的 中繼候選地址,在這個地址收到包后,形成了和內(nèi)部5元組"內(nèi)R"對應(yīng)的外 部5元組信息,即該Binding請求消息的源、目的地址和傳輸協(xié)議,記為"外R"。 在圖3中,"外R"包括代理L的服務(wù)器反身候選地址L-NAT-PUB3的IP地址 和端口號,代理R的中繼候選地址R-REL-PUB,傳輸協(xié)議。STUN服務(wù)器存儲 該對內(nèi)/外5元組的關(guān)耳關(guān)信息,然后STUN服務(wù)器將^f企測包通過內(nèi)部5元組的映 射關(guān)系從STUN服務(wù)器監(jiān)聽地址STUN-LISTEN發(fā)往代理R在NAT側(cè)映射的 公網(wǎng)地址R-NAT-PUB 1 。最后該檢測請求穿過R端的NAT,正確到達目的端地 址R-PRIV。
(4 )代理L結(jié)束連通性檢測后,觸發(fā)代理R進行連通性檢測(參見圖4 ): 代理L檢測成功后,產(chǎn)生了一個對端候選地址STUN-LISTEN,代理R 發(fā)現(xiàn)這個對端候選地址不在此前代理L的候選地址中,所以將該候選地址添加 到代理L的候選地址中,并觸發(fā)該候選對地址(代理R的主機候選地址R-PRIV 和STUN服務(wù)器監(jiān)聽地址STUN-LISTEN )的連通性4企測。
說明一下該候選對地址的沖全測過程由于ICE集成了 TURN技術(shù),TURN
會為每個連接保存對應(yīng)的內(nèi)部5元組和外部5元組,并且,在代理L 一企測連通
性時也保存了對應(yīng)的"內(nèi)R"和"夕卜R"的關(guān)系,所以STUN服務(wù)器根據(jù)保存 的地址映射關(guān)系,就可以把請求發(fā)送到代理L側(cè)的NAT公網(wǎng)地址L-NAT-PUB3。 檢測成功后返回的應(yīng)答中帶有對端反身候選地址R-REL-PUB。
(5)在代理R側(cè)還有一對候選對地址(代理R的主機候選地址R-PRIV 和代理L的中繼候選地址L-REL-PUB )沒有進行檢測,于是代理R再次發(fā)起 連通性檢測(參見圖5):
代理R再次發(fā)起連通性檢測,Binding請求從R發(fā)送到L的原理和圖3的 第3個Binding請求一樣。代理L側(cè)收到該請求后回送應(yīng)答,并產(chǎn)生對端候選 地址"STUN-LISTEN",代理L檢測該候選地址不在R側(cè)的候選地址中,則將 該地址添加到R的候選地址中。然后,觸發(fā)代理L對候選對地址(代理L的主 機候選地址L-PRIV和STUN服務(wù)器監(jiān)聽地址STUN-LISTEN )的連通性纟企測, 檢測同樣成功。
(6 )代理L和代理R連通性檢測完畢后,假定代理L是主控代理,則由 其進行提名候選對地址(參見圖6):
提名候選對地址也是通過發(fā)送綁定請求來實現(xiàn)的,但在綁定請求中必需包 含"USE-CANDIDATE"屬性,以表明該綁定請求是用于提名候選對地址的。 提名后,代理L將使用該請求的源地址和目的地址對,即代理L的主機候選地 址L-PRIV和代理R的中繼候選地址R-REL-PUB來收發(fā)媒體;代理R將使用 收到的該請求的目的地址和源地址對,即代理R的主才幾候選地址R-PRIV和 STUN服務(wù)器監(jiān)聽地址STUN-LISTEN來收發(fā)媒體。由于使用的不是默認候選 對地址,因此發(fā)起offer/answer請求,以表明使用更新的候選對地址。
從上述分析可知,如果采用中繼候選地址的話,由于Allocate請求形成的 內(nèi)部5元組信息中包含有STUN服務(wù)器的監(jiān)聽地址,在和外部5元組形成映射 關(guān)系時,必將占用STUN服務(wù)器的監(jiān)聽地址來轉(zhuǎn)發(fā)^ 某體包。雖然對于圓錐型NAT 而言,不使用中繼候選地址就足以穿越NAT,但是具體選用何種候選地址畢竟 是取決于未知的應(yīng)用,所以如果采用了中繼候選地址,遵照TURN內(nèi)外5元組
的映射機制,必然導(dǎo)致占用STUN服務(wù)器的監(jiān)聽地址來傳輸媒體的后果。因此,
如果要做到不占用STUN服務(wù)器的監(jiān)聽地址,就不能在內(nèi)部5元組中出現(xiàn)STUN 服務(wù)器的監(jiān)聽地址。如何實現(xiàn)這個目標,就成為業(yè)內(nèi)科技人員關(guān)注的一個熱點。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的是提供一種采用ICE中繼候選地址進行媒體傳輸 的方法,該方法提出一種創(chuàng)新的傳輸機制收發(fā)兩端的客戶端通過替換內(nèi)部5 元組而共用STUN服務(wù)器的一個中繼候選地址來發(fā)送和接收媒體流,媒體流不 再占用STUN服務(wù)器的監(jiān)聽地址進行轉(zhuǎn)發(fā),從而大大提高了 STUN服務(wù)器的轉(zhuǎn) 發(fā)效率,改善了媒體流的傳送效率,降低了媒體的傳輸時延。
為了達到上述目的,本發(fā)明提供了一種采用ICE中繼候選地址進行媒體傳 輸?shù)姆椒?,其特征在于,對代理獲取候選對地址的過程進行改進客戶端代理 在向STUN服務(wù)器發(fā)送了分配Allocate請求并收到攜帶中繼候選地址的Allocate 應(yīng)答后,再向STUN服務(wù)器分配的中繼候選地址發(fā)送一個攜帶自定義的、符合 國際通信標準的CHANGED-TUPLE屬性的綁定Binding請求,以便STUN服 務(wù)器接收到帶有CHANGED-TUPLE屬性的Binding請求后,用該請求的包含 IP地址和端口號的源地址,包含IP地址和端口號的目的地址、即包含IP地址 和端口號的STUN服務(wù)器為其分配的中繼候選地址,以及傳輸協(xié)議的新5元組 替代原先由Allocate請求產(chǎn)生的內(nèi)部5元組,即替換Allocate請求的包含IP地 址和端口號的源地址,包含IP地址和端口號的目的地址、即包含IP地址和端 口號的STUN服務(wù)器的監(jiān)聽地址,以及傳輸協(xié)議。
本發(fā)明是一種采用ICE中繼候選地址進行媒體傳輸?shù)姆椒?,本發(fā)明技術(shù)特 別適用于使用ICE方案穿越對稱型NAT的場景。眾所周知,使用ICE方案穿
NAT,使用中繼方式穿越NAT)功能的STUN ( Simple Traversal of UDP Through Network Address Translators, UDP穿越NAT的簡單方法)服務(wù)器進行中轉(zhuǎn),這 種傳輸方式的一個很大缺陷,是在中轉(zhuǎn)過程中需要占用服務(wù)器的監(jiān)聽地址來轉(zhuǎn)
發(fā)媒體包,由此給STUN服務(wù)器的性能和處理能力都帶來了非常大的影響。本
發(fā)明方法較好地解決了上述問題,通過對ICE方案中代理獲取候選對地址的過
程進行改進,使得在中轉(zhuǎn)包的過程中不再占用服務(wù)器的監(jiān)聽地址,大大提升了 服務(wù)器的處理能力。
本發(fā)明方法的創(chuàng)新之處是通過替換內(nèi)部5元組來消除占用STUN服務(wù)器監(jiān) 聽地址轉(zhuǎn)發(fā)媒體包的問題。也就是在處理對稱型NAT的媒體包轉(zhuǎn)發(fā)過程中,來 自多個主叫用戶代理的多個媒體流不再通過STUN服務(wù)器的監(jiān)聽地址 STUN-LISTEN端口進行集中轉(zhuǎn)發(fā),而是針對不同的目的地,由不同的中繼候 選地址分別進行轉(zhuǎn)發(fā)。這樣,可以大大提高媒體流的轉(zhuǎn)發(fā)實時性能,同時減輕 了 STUN服務(wù)器的處理壓力。
本發(fā)明是個雙贏的技術(shù)方案不論對于客戶端的用戶體驗,還是服務(wù)器的 性能改善方面,都予以了很大的支持和改進,因此具有很好的推廣應(yīng)用前景。


圖1是現(xiàn)有技術(shù)的代理L搜集候選地址的過程示意圖。 圖2是現(xiàn)有技術(shù)的代理R搜集候選地址的過程示意圖。 圖3是現(xiàn)有技術(shù)的代理L進行連通性檢測的過程示意圖。 圖4是現(xiàn)有技術(shù)的代理R進行連通性檢測的過程示意圖。 圖5是現(xiàn)有技術(shù)的代理R再次發(fā)起連通性檢測的過程示意圖。 圖6是現(xiàn)有技術(shù)的代理L提名候選對地址的過程示意圖。 圖7是本發(fā)明采用ICE的中繼候選地址穿越NAT進行媒體傳輸?shù)姆椒ú僮?步驟流程圖。
圖8是本發(fā)明采用的Binding請求的新屬性格式示意圖。
圖9是新屬性CHANGED-TUPLE的屬性值字節(jié)示意圖。
圖10是本發(fā)明中的代理L側(cè)獲取候選地址的流程圖。
圖11是本發(fā)明中的代理R側(cè)獲取候選地址的流程圖。
圖12是本發(fā)明中的代理L側(cè)進行候選對地址連通;^測過程的示意圖。
圖13是本發(fā)明中的代理R側(cè)進行候選對地址連通^r測過程的示意圖。
圖14是本發(fā)明最后形成媒體流傳輸結(jié)果的過程示意圖。
圖15是本發(fā)明搜集候選地址過程中代理側(cè)的處理流程示意圖。
圖16是本發(fā)明搜集候選地址過程中STUN服務(wù)器側(cè)的處理流程示意圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明作 進一步的詳細描述。
先介紹幾個概念或術(shù)語候選地址是媒體傳輸?shù)刂罚↖P地址和端口號, 候選地址是由ICE過程進行測試,以決定其是否適合用于收發(fā)媒體。代理或主 機候選地址是該代理或主機的自身地址,包括IP地址和端口號。服務(wù)器反身候 選地址是由代理或主機從主機候選地址發(fā)送STUN請求到STUN服務(wù)器而得 到,該地址是代理或主機候選地址映射在NAT處的公網(wǎng)地址。中繼候選地址也 是由代理或主機從主機候選地址發(fā)送STUN請求到STUN服務(wù)器而得到的,該 中繼候選地址駐留在STUN服務(wù)器中,以供STUN服務(wù)器藉由該地址中繼轉(zhuǎn)發(fā) 出/入該代理或主機的媒體包。候選對地址是收發(fā)兩側(cè)代理或主機將各自搜集并 經(jīng)過ICE過程測試成功、符合連通性要求的包含IP地址和端口號的兩側(cè)客戶端 代理的候選地址對。
本發(fā)明是一種采用ICE中繼候選地址進行媒體傳輸?shù)姆椒?,其主要?chuàng)新之 處是客戶端代理在向支持中繼功能的STUN服務(wù)器發(fā)送了 Allocate請求并收 到攜帶中繼候選地址的Allocate后,再向STUN服務(wù)器分配的中繼候選地址發(fā) 送一個攜帶自定義的、符合國際通信標準的CHANGED-TUPLE屬性的Binding 請求,以便STUN服務(wù)器接收到帶有CHANGED-TUPLE屬性的Binding請求 后,用該請求的包含IP地址和端口號的源地址,包含IP地址和端口號的目的 地址、即包含IP地址和端口號的STUN服務(wù)器為其分配的中繼候選地址,以及 傳輸協(xié)議的新5元組替代原先由Allocate請求產(chǎn)生的內(nèi)部5元組,即替換 Allocate請求的包含IP地址和端口號的源地址,包含IP地址和端口號的目的地
址、即包含IP地址和端口號的STUN服務(wù)器的監(jiān)聽地址,以及傳輸協(xié)議。
由上述介紹可知,本發(fā)明方法的適用場景是STUN服務(wù)器必須要支持中繼 功能,即客戶端在發(fā)完Allocate請求后,如果收到的應(yīng)答中包含中繼候選地址, 則才發(fā)送一個帶有"CHANGED-TUPLE,,屬性的Binding請求。
參見圖7,介紹本發(fā)明方法的下述五個操作步驟
步驟l,遵循國際通信標準RFC 3489自定義一個新的屬性,該屬性的名字 為CHANGED-TUPLE,用于指示服務(wù)器將客戶端代理的內(nèi)部5元組信息修改 為包含該客戶端代理的中繼候選地址的新5元組信息。
參見圖8,介紹該自定義的CHANGED-TUPLE屬性的格式,它設(shè)有三個字 段2字節(jié)的Type類型字段,用于定義該屬性的類型值0x000c; 2字節(jié)的Length 長度字段,用于定義該屬性的值的長度為32; 32比特的Value屬性值字段,用 于定義該屬性值的每個bit都為0 (參見圖9)。
步驟2,收發(fā)兩側(cè)客戶端代理搜集候選地址并發(fā)送給對方客戶端代理先 獲取自己的網(wǎng)絡(luò)拓樸結(jié)構(gòu)信息,為此后能夠順利地傳輸媒體流做好準備;再將 各自搜集的候選地址分別通過offer/ answer攜帶發(fā)送給對端的客戶端代理。
因該步驟是本發(fā)明方法的創(chuàng)新和改進關(guān)鍵,下面詳細介紹其具體操作步驟 (21 )其中一側(cè)的代理以STUN客戶端的角色向STUN服務(wù)器的監(jiān)聽地址 發(fā)送Allocate分配請求,利用STUN的綁定機制和分配機制獲取服務(wù)器反身候 選地址和中繼候選地址;
(22 ) STUN服務(wù)器對接收到的客戶端代理發(fā)來的Allocate請求進行處理, 在有空閑資源的前提下為該客戶端分配一個中繼候選地址,并通過應(yīng)答消息返 回給該客戶端代理;同時,STUN服務(wù)器保存內(nèi)部五元組信息,即該Allocate 請求的源IP地址和端口號、即該側(cè)代理的服務(wù)器反身候選地址的IP地址和端 口號,Allocate請求的目的端IP地址和端口號、即STUN服務(wù)器的監(jiān)聽地址的 IP地址和端口號,以及傳輸協(xié)議;
(23)該側(cè)的代理收到Allocate應(yīng)答后,檢查服務(wù)器的應(yīng)答內(nèi)容中是否攜 帶中繼候選地址;如果在Allocate應(yīng)答中攜帶中繼候選地址,則該代理向STUN
服務(wù)器為其分配的中繼候選地址發(fā)送一個攜帶CHANGE-TUPLE屬性的 Binding請求,請求以該Binding請求的源IP地址和端口號、即該側(cè)代理的服務(wù) 器反身候選地址的IP地址和端口號,目的IP地址和端口號、即STUN服務(wù)器 為其分配的中繼候選地址的IP地址和端口號,以及傳輸協(xié)議的新5元組替代 STUN服務(wù)器在收到Allocate請求后存儲的該代理側(cè)的原內(nèi)部五元組;如果在 Allocate應(yīng)答中沒有攜帶中繼候選地址,則按照STUN標準設(shè)定的規(guī)范處理流 程處理該應(yīng)答消息;
(24) STUN服務(wù)器從給該側(cè)的代理分配的中繼候選地址收到該代理的請 求消息后,先判斷該請求是否為Binding請求,如果是,則跳轉(zhuǎn)執(zhí)行步驟(26) 的操作;否則,執(zhí)行步驟(25)的操作;
(25 ) STUN服務(wù)器按照STUN標準設(shè)定的規(guī)范處理流程處理該請求消息, 流程結(jié)束;
(26 ) STUN服務(wù)器檢查Binding請求是否攜帶有CHANGE-TUPLE屬性, 如果沒有該屬性,則執(zhí)行步驟(25)的操作;否則,執(zhí)行步驟(27)的操作;
(27) STUN服務(wù)器執(zhí)行替換內(nèi)部5元組的操作,并向代理返回Binding 應(yīng)答用Binding請求的源端的IP地址和端口號,目的端的IP地址和端口號、 即STUN服務(wù)器為其分配的中繼候選地址的IP地址和端口號,以及傳輸協(xié)議的 新5元組替換與該分配的中繼候選地址相對應(yīng)的原來的內(nèi)部五元組,即步驟 (22 )中STUN服務(wù)器存儲的內(nèi)部五元組;
(28 )經(jīng)過上述四條消息的交互后,該側(cè)的代理完成候選地址的搜集過程, 再對候選地址進行排序后,將候選地址攜帶在offer中發(fā)送給另一側(cè)的代理;
(29)另一側(cè)的代理收到offer后,被觸發(fā)進行包括(21) ~ ( 27 )同樣操 作步驟的候選地址的搜集過程;然后,該另一側(cè)的代理用answer攜帶搜集的候 選地址,發(fā)送給對側(cè)代理。
步驟3,收發(fā)兩側(cè)的客戶端代理都獲知對方的候選地址后,進行連通性檢 測雙方代理根據(jù)各個候選地址的優(yōu)先級順序分別進行排序配對,通過Binding 請求進行連通性的檢測;先由一側(cè)的代理執(zhí)行該檢測過程,在該側(cè)代理完成連
通性檢測后,再觸發(fā)另 一側(cè)代理執(zhí)行檢測過程;
步驟4,完成連通性檢測后,由主控方代理提名候選對地址該主控方代
理從符合連通性要求的候選對地址中選出 一個適宜的候選對地址,并通過攜帶
USE-CANDIDATE屬性的Binding請求通知另 一側(cè)代理所選的候選對地址;
步驟5,收發(fā)兩側(cè)的客戶端代理通過再次的offer/ answer交互,確定用于 RTP/RTCP媒體傳輸?shù)暮蜻x對地址,再使用該選定的候選對地址傳輸RTP/RTCP 媒體包。
本發(fā)明主要是對代理獲取候選對地址的過程進行改進,下面結(jié)合附圖,介 紹本發(fā)明方法的實施例試驗情況
參見圖10,代理L向STUN服務(wù)器發(fā)送Allocate請求后,STUN服務(wù)器為 其分配了一個中繼候選地址"L-REL-PUB",同時保存了和這個中繼候選地址 相對應(yīng)的內(nèi)部5元組信息(Allocate請求的源地址和端口號、即代理L的服務(wù) 器反身候選地址"L-NAT-PUB1"的IP地址和端口號,Allocate請求的目的地 址和端口號、即STUN服務(wù)器監(jiān)聽地址"STUN-LISTEN"的IP地址和端口號, 傳輸協(xié)議)??梢钥闯?,這個內(nèi)部5元組中包含了 STUN服務(wù)器的監(jiān)聽地址, 這就是導(dǎo)致中轉(zhuǎn)包占用STUN監(jiān)聽地址的原因。STUN服務(wù)器從代理L的中繼 候選地址"L-REL-PUB"收到帶有"CHANGED-TUPLE"屬性的Binding請求 后,將這個內(nèi)部5元組信息修改為新的五元組(Binding請求的源地址和端口號、 即代理L的新的服務(wù)器反身地址"L-NAT-PUB4"的IP地址和端口號,Binding 請求的目的地址和端口號、即代理L的中繼候選地址"L-REL-PUB"的IP地 址和端口號,傳輸協(xié)議),這樣就替換了原有的內(nèi)部五元組,也就替換了 STUN 服務(wù)器的監(jiān)聽地址。L側(cè)收集的候選地址不變, 一起以offer形式攜帶發(fā)送給客 戶端代理R。
圖9展示的是L側(cè)的過程,R側(cè)同樣需要經(jīng)過這樣的過程,STUN服務(wù)器 將原先R側(cè)的內(nèi)部5元組(代理R的服務(wù)器反身候選地址"R-NAT-PUB1"的 IP地址和端口號、STUN服務(wù)器的監(jiān)聽地址STUN-LISTEN的IP地址和端口號、 傳輸協(xié)議)替換成新的內(nèi)部5元組(代理R的新的服務(wù)器反身候選地址R-NAT-PUB4的IP地址和端口號、代理R的中繼候選地址R-REL-PUB的IP地 址和端口號、傳輸協(xié)議)。同樣代理R收集的候選地址不變,用answer攜帶發(fā) 送給L。其具體過程參見圖11。
接著,進行L側(cè)的連通性檢測時(參見圖12),當L側(cè)的Binding請求到 達STUN服務(wù)器為代理R分配的中繼候選地址"R-REL-PUB"時,產(chǎn)生的外部 5元組(Binding請求的源地址和端口號、即代理L的服務(wù)器反身候選地址 L-NAT-PUB3的IP地址和端口號,Binding請求的目的地址和端口號、即代理R 的中繼候選地址R-REL-PUB的IP地址和端口號,傳輸協(xié)議)將和圖11提到的 新的內(nèi)部5元組(代理R的新的服務(wù)器反身候選地址R-NAT-PUB4的IP地址 和端口號、代理R的中繼候選地址R-REL-PUB的IP地址和端口號、傳輸協(xié)議) 進行配對,然后通過代理R的中繼候選地址"R-REL-PUB"向R的服務(wù)器反身 候選地址"R-NAT-PUB4"發(fā)送Binding請求到達代理R。應(yīng)答消息按照原路返 回。
同樣地,在R側(cè)的連通性^r測過程時(參見圖13 ),當代理R的Binding 請求到達.STUN服務(wù)器為代理L分配的中繼候選地址"L-REL-PUB"時,STUN 服務(wù)器會綁定該外部五元組(Binding請求的源地址和端口號、即代理R的服 務(wù)器反身候選地址"R-NAT-PUB2"的IP地址和端口號,Binding請求的目的地 址和端口號、即代理R的中繼候選地址"L-REL-PUB"的IP地址和端口號, 傳輸協(xié)議)和圖10中內(nèi)部五元組(代理L的服務(wù)器反身候選地址"L-NAT-PUB4" 的IP地址和端口號、代理L的中繼候選地址"L-REL-PUB"的IP地址和端口 號、傳輸協(xié)議)。當代理R收到的Binding應(yīng)答后,發(fā)現(xiàn)對端候選地址L-REL-PUB 已經(jīng)在代理L的候選地址隊列中,所以不需要再次進行類似圖5中對新增的候 選對地址進行4全測的過程。
最后,在進行圖6所示的提名候選對地址的過程中形成的媒體流傳輸?shù)淖?后結(jié)果如圖14所示,從圖14中可以看出,在本發(fā)明方法所形成的結(jié)果中,媒 體流的傳輸將不再占用STUN服務(wù)器的監(jiān)聽地址
上述分析介紹了采用本發(fā)明方法后的整個ICE過程,總結(jié)上述過程,下面再對步驟1中代理搜集候選地址過程中的左右兩側(cè)代理分別與STUN服務(wù)器進
行交互,完成候選地址的搜集過程;并發(fā)給對方代理的細化過程如下(參見圖 15)。
(1 )代理向STUN服務(wù)器的監(jiān)聽地址發(fā)送Allocate請求,請求獲取服務(wù)器 反身候選地址和中繼候選地址;
(2 )代理收到STUN服務(wù)器的Allocate應(yīng)答后,檢查Allocate應(yīng)答的內(nèi)容;
(3) 判斷該應(yīng)答是否攜帶中繼候選地址,如果沒有攜帶,執(zhí)行步驟(4) 的操作;否則,執(zhí)行步驟(5)的操作;
(4) 按照ICE協(xié)議標準規(guī)定的方式進行正常處理應(yīng)答;
(5) 向STUN服務(wù)器分配的中繼候選地址發(fā)送攜帶CHANGE-TUPLE屬 性的Binding請求,請求STUN服務(wù)器用該Binding請求的源IP地址和端口號、 目的IP地址和端口號(即中繼候選地址的IP地址和端口號)、傳輸協(xié)議的新的 5元組替代舊的內(nèi)部五元組(即STUN服務(wù)器在收到Allocate請求后存儲的 Allocate請求的源IP地址和端口號,Allocate請求的目的IP地址和端口號、即 STUN服務(wù)器的監(jiān)聽地址的IP地址和端口號,傳輸協(xié)議)。
下面參見圖16說明STUN服務(wù)器的細化過程 (1 ) STUN服務(wù)器收到代理發(fā)來的Allocate請求后,進行處理,在還有 空閑資源的前提下為客戶端分配一個中繼候選地址,并通過應(yīng)答消息返回給客 戶端。同時STUN服務(wù)器保存內(nèi)部五元組信息,即Allocate請求的源IP地址和 端口號、Allocate請求的目的端IP地址和端口號(即STUN服務(wù)器的監(jiān)聽地址 的IP地址和端口號)、傳輸協(xié)議;
(2) STUN服務(wù)器從給代理分配的中繼候選地址收到請求消息后,判斷該 請求是否為Binding請求;如果是Binding請求,執(zhí)行步驟(4)的操作;否貝寸, 執(zhí)行步驟(3)的操作;
(3 ) STUN服務(wù)器按照STUN協(xié)議標準的規(guī)范流程處理該請求消息,結(jié)束
流程;
(4) STUN服務(wù)器檢查Binding請求的屬性,判斷其中是否存在有
CHANGED-TUPLE屬性,如果存在,則執(zhí)行步驟(5)的操作;否則,返回執(zhí) 行步驟(3)的操作;
(5)STUN服務(wù)器執(zhí)行替換內(nèi)部5元組的搡作用Binding請求的源IP地 址和端口號、目的端的IP地址和端口號(即STUN分配的中繼4美選地址的IP 地址和端口號)以及傳輸協(xié)議替換與該分配的中繼候選地址相對應(yīng)的舊的內(nèi)部 五元組,即步驟(l)中存儲的內(nèi)部五元組。
權(quán)利要求
1、一種采用ICE中繼候選地址進行媒體傳輸?shù)姆椒?,其特征在于,對代理獲取候選對地址的過程進行改進客戶端代理在向STUN服務(wù)器發(fā)送了分配Allocate請求并收到攜帶中繼候選地址的Allocate應(yīng)答后,再向STUN服務(wù)器分配的中繼候選地址發(fā)送一個攜帶自定義的、符合國際通信標準的CHANGED-TUPLE屬性的綁定Binding請求,以便STUN服務(wù)器接收到帶有CHANGED-TUPLE屬性的Binding請求后,用該請求的包含IP地址和端口號的源地址,包含IP地址和端口號的目的地址、即包含IP地址和端口號的STUN服務(wù)器為其分配的中繼候選地址,以及傳輸協(xié)議的新5元組替代原先由Allocate請求產(chǎn)生的內(nèi)部5元組,即替換Allocate請求的包含IP地址和端口號的源地址,包含IP地址和端口號的目的地址、即包含IP地址和端口號的STUN服務(wù)器的監(jiān)聽地址,以及傳輸協(xié)議。
2、 根據(jù)權(quán)利要求1所述的進行媒體傳輸?shù)姆椒?,其特征在于所述方法適 用于支持中繼功能的STUN服務(wù)器,即客戶端在發(fā)完Allocate請求后,如果收 到的應(yīng)答中包含中繼候選地址,則才發(fā)送一個帶有"CHANGED-TUPLE"屬性 的Binding i青求。
3、 根據(jù)權(quán)利要求1所述的進行^ 某體傳輸?shù)姆椒ǎ涮卣髟谟谒龇椒ò?括下列操作步驟(1 )遵循國際通信標準自定義一個新的屬性,該屬性的名字為 CHANGED-TUPLE,用于指示服務(wù)器將客戶端代理的內(nèi)部5元組信息修改為包 含該客戶端代理的中繼候選地址的新5元組信息;(2) 收發(fā)兩側(cè)客戶端代理搜集候選地址并發(fā)送給對方客戶端代理先獲取 自己的網(wǎng)絡(luò)拓樸結(jié)構(gòu)信息,為順利地傳輸媒體流做好準備,并將各自搜集的候 選地址分別通過提議offer/應(yīng)答answer攜帶發(fā)送給對端的客戶端代理;(3) 收發(fā)兩側(cè)的客戶端代理都獲知對方的候選地址后,進行連通性檢測 雙方代理根據(jù)各個候選地址的優(yōu)先級順序分別進行排序配對,通過Binding請求進行連通性的檢測;先由 一側(cè)的代理執(zhí)行該檢測過程,在該側(cè)代理完成連通 性檢測后,再觸發(fā)另 一側(cè)代理執(zhí)行檢測過程;(4) 完成連通性檢測后,由主控方代理提名候選對地址該主控方代理從 符合連通性要求的候選對地址中選出一個適宜的候選對地址,并通過攜帶 USE-CANDIDATE屬性的Binding請求通知另 一側(cè)代理所選的候選對地址;(5) 收發(fā)兩側(cè)的客戶端代理通過再次的offer/ answer交互,確定用于 RTP/RTCP媒體傳輸?shù)暮蜻x對地址,再使用該選定的候選對地址傳輸RTP/RTCP 媒體包。
4、 根據(jù)權(quán)利要求1或3所述的進行媒體傳輸?shù)姆椒ǎ涮卣髟谟谒?自定義的CHANGED-TUPLE屬性格式設(shè)有三個字段2字節(jié)的Type類型字段, 用于定義該屬性的類型值0x000c; 2字節(jié)的Length長度字段,用于定義該屬 性的值的長度為32; 32比特的Value屬性值字段,用于定義該屬性值的每個bit 都為0。
5、 根據(jù)權(quán)利要求3所述的進行媒體傳輸?shù)姆椒ǎ涮卣髟谟谒霾襟E(2 ) 進一步包括下列操作內(nèi)容(21 )其中一側(cè)的代理以STUN客戶端的角色向STUN服務(wù)器的監(jiān)聽地址 發(fā)送Allocate分配請求,利用STUN的綁定機制和分配機制獲取服務(wù)器反身候 選地址和中繼候選地址;(22 ) STUN服務(wù)器對接收到的客戶端代理發(fā)來的Allocate請求進行處理, 在有空閑資源的前提下為該客戶端分配一個中繼候選地址,并通過應(yīng)答消息返 回給該客戶端代理;同時,STUN服務(wù)器保存內(nèi)部五元組信息,即該Allocate 請求的源IP地址和端口號,Allocate請求的目的端IP地址和端口號、即STUN 服務(wù)器的監(jiān)聽地址的IP地址和端口號,以及傳輸協(xié)議;(23)該側(cè)的代理收到Allocate應(yīng)答后,檢查服務(wù)器的應(yīng)答內(nèi)容中是否攜 帶中繼候選地址;如果在Allocate應(yīng)答中攜帶中繼候選地址,則該代理向STUN 服務(wù)器為其分配的中繼候選地址發(fā)送一個攜帶CHANGE-TUPLE屬性的 Binding請求,請求以該Binding請求的源IP地址和端口號,目的IP地址和端口號、即STUN服務(wù)器為其分配的中繼候選地址的IP地址和端口號,以及傳輸協(xié)議的新5元組替代STUN服務(wù)器在收到Allocate請求后存儲的該代理側(cè)的原 內(nèi)部五元組;如果在Allocate應(yīng)答中沒有攜帶中繼候選地址,則按照STUN標 準設(shè)定的規(guī)范處理流程處理該應(yīng)答消息;(24) STUN服務(wù)器從給該側(cè)的代理分配的中繼候選地址收到該代理的請 求消息后,先判斷該請求是否為Binding請求,如果是,則跳轉(zhuǎn)執(zhí)行步驟(26) 的操作;否則,執(zhí)行步驟(25)的操作;(25 )STUN服務(wù)器按照STUN標準設(shè)定的規(guī)范處理流程處理該請求消息, 流程結(jié)束;(26 ) STUN服務(wù)器檢查Binding請求是否攜帶有CHANGE-TUPLE屬性, 如果沒有該屬性,則執(zhí)行步驟(25)的操作;否則,執(zhí)行步驟(27)的操作;(27) STUN服務(wù)器執(zhí)行替換內(nèi)部5元組的操作,并向代理返回Binding 應(yīng)答用Binding請求的源端的IP地址和端口號,目的端的IP地址和端口號、 即STUN服務(wù)器為其分配的中繼候選地址的IP地址和端口號,以及傳輸協(xié)議的 新5元組替換與該分配的中繼候選地址相對應(yīng)的原來的內(nèi)部五元組,即步驟(22)中STUN服務(wù)器存儲的內(nèi)部五元組;(28) 經(jīng)過上述四條消息的交互后,該側(cè)的代理完成候選地址的搜集過程, 再對候選地址進行排序后,將候選地址攜帶在offer中發(fā)送給另 一側(cè)的代理;(29) 另一側(cè)的代理收到offer后,被觸發(fā)進行包括(21) ~ ( 27 )同樣操 作步驟的候選地址的搜集過程;然后,該另一側(cè)的代理用answer攜帶搜集的候 選地址,發(fā)送給對側(cè)代理。
6、 根據(jù)權(quán)利要求3所述的進行媒體傳輸?shù)姆椒?,其特征在于所述步驟(22 ) 中STUN服務(wù)器保存的內(nèi)部五元組信息是該Allocate請求的源IP地址和端口 號、即該側(cè)代理的服務(wù)器反身候選地址的IP地址和端口號,Allocate請求的目 的端IP地址和端口號、即STUN服務(wù)器的監(jiān)聽地址的IP地址和端口號,以及 傳輸協(xié)議。
7、 根據(jù)權(quán)利要求3所述的進行媒體傳輸?shù)姆椒ǎ涮卣髟谟谒霾襟E(23 )中攜帶CHANGE-TUPLE屬性的Binding請求中的五元組信息的源IP地址和端 口號是該側(cè)代理的服務(wù)器反身候選地址的IP地址和端口號,目的IP地址和端 口號是STUN服務(wù)器為該側(cè)代理分配的中繼候選地址的IP地址和端口號,以及傳輸協(xié)議。
8、根據(jù)權(quán)利要求1或3或6所述的進行媒體傳輸?shù)姆椒?,其特征在于?述候選地址是包括IP地址和端口號的媒體傳輸?shù)刂?,該候選地址是由交互式連 接建立ICE過程進行測試,以決定其是否適合用于收發(fā)^ 某體;所述代理或主機 候選地址是該代理或主機的包括IP地址和端口號的自身地址;所述服務(wù)器反身 候選地址是由代理或主機候選地址發(fā)送STUN請求到STUN服務(wù)器而得到,該 地址即為NAT給代理或主機自身地址映射的公網(wǎng)地址;所述中繼候選地址是由 代理或主機候選地址發(fā)送STUN請求到STUN服務(wù)器而得到的,該中繼候選地 址駐留在STUN服務(wù)器中,以供STUN服務(wù)器藉由該地址中繼轉(zhuǎn)發(fā)出/入該代理 或主機的媒體包;所述候選對地址是收發(fā)兩側(cè)代理或主機將各自搜集并經(jīng)過 ICE過程測試成功、符合連通性要求的包含IP地址和端口號的兩側(cè)客戶端代理 的候選地址對。
全文摘要
一種采用ICE中繼候選地址進行媒體傳輸?shù)姆椒ǎ强蛻舳舜碓谙騍TUN服務(wù)器發(fā)送了Allocate請求并收到攜帶中繼候選地址的Allocate應(yīng)答后,再向該服務(wù)器分配的中繼候選地址發(fā)送一個攜帶自定義的、符合國際通信標準的CHANGED-TUPLE屬性的Binding請求,以便STUN服務(wù)器接收到帶有CHANGED-TUPLE屬性的Binding請求后,用該請求的包含IP地址和端口號的源地址,包含IP地址和端口號的目的地址(即包含IP地址和端口號的STUN服務(wù)器為其分配的中繼候選地址),以及傳輸協(xié)議的新5元組替代原先由Allocate請求產(chǎn)生的、包含STUN服務(wù)器的監(jiān)聽地址的內(nèi)部5元組。該方法不占用STUN服務(wù)器的監(jiān)聽地址來轉(zhuǎn)發(fā)媒體流,大大提高了STUN服務(wù)器的轉(zhuǎn)發(fā)效率,改善了媒體流的傳送效率,降低了媒體的傳輸時延。
文檔編號H04L29/06GK101179581SQ20071017944
公開日2008年5月14日 申請日期2007年12月13日 優(yōu)先權(quán)日2007年12月13日
發(fā)明者盧美蓮, 磊 王, 泊 胡, 徐 陶, 韓傳葉, 高雪峰 申請人:北京郵電大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1