Ice服務(wù)方法、ice服務(wù)器及ice客戶端的制作方法
【專利摘要】本發(fā)明提供一種ICE服務(wù)方法,其中,ICE服務(wù)器與ICE客戶端的數(shù)據(jù)傳輸,采用UDT數(shù)據(jù)傳輸方法傳輸UDT協(xié)議包,并可采用UDP數(shù)據(jù)傳輸方法傳輸stun協(xié)議包。ICE服務(wù)器通過UDT代理單元進行UDT協(xié)議與stun協(xié)議包的轉(zhuǎn)換。還提供與上述方法相應(yīng)的ICE服務(wù)器和ICE客戶端。本發(fā)明中ICE服務(wù)器與客戶端的數(shù)據(jù)傳輸采用UDT數(shù)據(jù)傳輸方法,由于UDT數(shù)據(jù)傳輸方法在數(shù)據(jù)傳輸?shù)倪^程中具有擁塞控制和數(shù)據(jù)可靠性控制機制,因而能最大的保障數(shù)據(jù)的可靠性,以及數(shù)據(jù)流量最優(yōu)化。ICE服務(wù)器同時接受UDT協(xié)議包、stun協(xié)議包,具有很好的兼容性。
【專利說明】
I CE服務(wù)方法、I CE服務(wù)器及I CE客戶端
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及ICE服務(wù)技術(shù)。
【背景技術(shù)】
[0002]ICE應(yīng)用是基于stun協(xié)議,使用UDP進行傳輸?shù)姆?wù)。
[0003]UDP是一種無連接的傳輸。UDP不提供數(shù)據(jù)包分組、組裝和不能對數(shù)據(jù)包進行排序的缺點,也就是說,當報文發(fā)送之后,是無法得知其是否安全完整到達的。
[0004]對此,現(xiàn)有技術(shù)的一種解決方案是,在ICE的通訊層加ACK確認機制,即在發(fā)送數(shù)據(jù)包之時,將發(fā)送數(shù)據(jù)的摘要做一次緩存,當收到ACK確認之時將數(shù)據(jù)摘要移除,從而保證數(shù)據(jù)是否到達。這樣的ACK機制存在很明顯的缺陷:ACK丟失的情況下缺少處理方案;并且其沒有擁塞控制,可能會導致UDP包大量發(fā)送,從而造成數(shù)據(jù)流量增長。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種ICE服務(wù)方法、ICE服務(wù)器及ICE客戶端,其能在數(shù)據(jù)傳輸?shù)倪^程中保障數(shù)據(jù)的可靠性。
[0006]本發(fā)明的ICE服務(wù)方法,其中,ICE服務(wù)器采用UDT數(shù)據(jù)傳輸方法進行與ICE客戶端的數(shù)據(jù)傳輸。
[0007]其中,ICE服務(wù)器采用UDT數(shù)據(jù)傳輸方法所傳輸?shù)臄?shù)據(jù)為UDT協(xié)議包,ICE服務(wù)器向ICE客戶端發(fā)送數(shù)據(jù)前進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換,ICE服務(wù)器從ICE客戶端接收數(shù)據(jù)后進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換。
[0008]優(yōu)選地,ICE服務(wù)器采用UDT數(shù)據(jù)傳輸方法傳輸UDT協(xié)議包,并可采用UDP數(shù)據(jù)傳輸方法傳輸stun協(xié)議包,對于UDT協(xié)議包,ICE服務(wù)器向ICE客戶端發(fā)送數(shù)據(jù)前進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換,ICE服務(wù)器從ICE客戶端接收數(shù)據(jù)后進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換。
[0009]其中,ICE服務(wù)器接收數(shù)據(jù)后,判斷是否為UDT協(xié)議包:若是,則進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換;ICE服務(wù)器發(fā)送數(shù)據(jù)前,判斷是否以UDT協(xié)議包進行發(fā)送:若是,則進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換。
[0010]其中,ICE服務(wù)器通過stun服務(wù)器進行數(shù)據(jù)處理,優(yōu)選地,所述的ICE服務(wù)方法為每一ICE客戶端指定stun服務(wù)器的一個stun端口,并且當ICE服務(wù)器收到ICE客戶端發(fā)送過來的UDT協(xié)議包時,會為該客戶端生成一個UDT代理單元與指定的stun端口通信連接,UDT代理單元進行UDT協(xié)議包與stun協(xié)議包的轉(zhuǎn)換,并與stun端口之間進行stun協(xié)議包的傳輸,以及與I CE客戶端之間進行UDT協(xié)議包的傳輸。
[0011]本發(fā)明的ICE服務(wù)器,包括stun服務(wù)器和進行UDT協(xié)議包與stun協(xié)議包的轉(zhuǎn)換的UDT代理單元,其中,stun服務(wù)器具有stun端口,UDT代理單元具有:UDT端口,與ICE客戶端通信連接,以UDT數(shù)據(jù)傳輸方法傳輸UDT協(xié)議包;連接端口,與stun端口通信連接,傳輸stun協(xié)議包。
[0012]優(yōu)選地,ICE服務(wù)器具有:UDT端口,與ICE客戶端以UDT數(shù)據(jù)傳輸方法傳輸UDT協(xié)議包,UDT端口為UDT代理單元的UDT端口 ; stun端口,與ICE客戶端以UDP數(shù)據(jù)傳輸方法傳輸stun協(xié)議包,stun端口為stun服務(wù)器的stun端口。
[0013]優(yōu)選地,每一個ICE客戶端對應(yīng)一個指定的stun端口和數(shù)據(jù)傳輸路徑,UDT代理單元連接于指定的s tun端口和發(fā)送UDT協(xié)議包的該I CE客戶端之間、指定的數(shù)據(jù)傳輸路徑之上。
[0014]其中,ICE服務(wù)器設(shè)有判斷單元,進行如下判斷:接收數(shù)據(jù)后,判斷是否為UDT協(xié)議包:若是,則通過UDT代理單元進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換,并將stun協(xié)議包傳輸給stun端口 ;若否,則將stun協(xié)議包傳輸給stun端口,發(fā)送數(shù)據(jù)前,判斷是否以UDT協(xié)議包進行發(fā)送:若是,則通過UDT代理單元進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換后從UDT端口發(fā)送;若否,則將stun協(xié)議包從stun端口發(fā)送。
[0015]本發(fā)明的ICE客戶端,具有UDT端口,UDT端口與ICE服務(wù)器之間以UDT數(shù)據(jù)傳輸方法進行UDT協(xié)議包的傳輸。
[0016]本發(fā)明的有益效果在于,本發(fā)明的ICE服務(wù)方法、ICE服務(wù)器及ICE客戶端,其中ICE服務(wù)器與客戶端的數(shù)據(jù)傳輸采用UDT協(xié)議,由于UDT協(xié)議在數(shù)據(jù)傳輸?shù)倪^程中具有擁塞控制和數(shù)據(jù)可靠性控制機制,因而能最大的保障數(shù)據(jù)的可靠性,以及數(shù)據(jù)流量最優(yōu)化。
[0017]本發(fā)明中,ICE服務(wù)器與新版ICE客戶端之間采用UDT數(shù)據(jù)傳輸方法傳輸UDT協(xié)議包,并可與舊版ICE客戶端之間采用UDP數(shù)據(jù)傳輸方法傳輸stun協(xié)議包。ICE服務(wù)器可以同時接受UDT協(xié)議包、stun協(xié)議包這兩種數(shù)據(jù),不僅支持更優(yōu)性能的UDT協(xié)議包傳輸,也支持原有stun協(xié)議包傳輸,具有很好的兼容性。ICE服務(wù)器分別通過stun端口和UDT端口收發(fā)stun協(xié)議包和UDT協(xié)議包。
[0018]ICE服務(wù)器通過UDT代理單元進行UDT協(xié)議包與stun協(xié)議包的轉(zhuǎn)換并與stun服務(wù)器進行stun協(xié)議包的交互:向客戶端發(fā)送數(shù)據(jù)前進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換,從客戶端接收數(shù)據(jù)后進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換。由此實現(xiàn)了對UDT協(xié)議包的支持。
【附圖說明】
[0019]圖1是本發(fā)明的ICE服務(wù)系統(tǒng)架構(gòu)圖。
【具體實施方式】
[0020]下面參照附圖描述本發(fā)明的實施方式,其中相同的部件用相同的附圖標記表示。[0021 ] UDT全稱是基于UDP的數(shù)據(jù)傳輸協(xié)議(UDP-based Data Transfer Protocol) oUDT的主要目的是支持高速廣域網(wǎng)上的海量數(shù)據(jù)傳輸。顧名思義,UDT建于UDP之上,并引入新的擁塞控制和數(shù)據(jù)可靠性控制機制。UDT是面向連接的雙向的應(yīng)用層協(xié)議。它同時支持可靠的數(shù)據(jù)流傳輸和部分可靠的數(shù)據(jù)報傳輸。由于UDT完全在UDP上實現(xiàn),它也可以應(yīng)用在除了高速數(shù)據(jù)傳輸之外的其它應(yīng)用領(lǐng)域。
[0022 ]為了提高I CE應(yīng)用數(shù)據(jù)的可靠性,本發(fā)明考慮在UDT的基礎(chǔ)上實現(xiàn)ICE服務(wù)方法,構(gòu)建ICE服務(wù)器及ICE客戶端。
[0023]現(xiàn)有ICE客戶端(舊版)和ICE服務(wù)器建立直連通道之前,需要通過stun協(xié)議包與ICE服務(wù)器進行相關(guān)交互,從而獲取客戶端自身的會話描述協(xié)議(SDP信息)。
[0024]本發(fā)明中,ICE服務(wù)器中包括stun服務(wù)器,stun服務(wù)器通過stun端口收發(fā)并進一步處理stun協(xié)議包。stun服務(wù)器是ICE服務(wù)器的核心。
[0025]本發(fā)明采用UDT協(xié)議(S卩UDT數(shù)據(jù)傳輸方法),來實現(xiàn)ICE服務(wù)器和新版ICE客戶端之間數(shù)據(jù)的傳輸,即采用UDT協(xié)議傳輸二者之間的數(shù)據(jù)UDT協(xié)議包。
[0026]對于舊版的ICE客戶端,ICE服務(wù)器發(fā)送和接收stun協(xié)議包,stun協(xié)議包通過UDP協(xié)議傳輸。
[0027]在ICE服務(wù)器,為原有的stun服務(wù)器配置了 UDT代理單元。UDT代理單元具有連接端口,與stun服務(wù)器的stun端口通信連接,進行stun協(xié)議包的傳輸。UDT代理單元還具有UDT端口,與ICE客戶端(新版)通信連接,收發(fā)UDT協(xié)議包。
[0028]Stun服務(wù)器通過Stun端口收發(fā)Stun協(xié)議包。實際上,可以為每一ICE客戶端指定一個stun端口 C3Stun端口可以直接連接ICE客戶端,進行stun協(xié)議包的收發(fā)。stun端口也可以連接UDT代理單元,協(xié)同UDT代理單元進行UDT協(xié)議包的收發(fā)。
[0029]UDT代理單元,實現(xiàn)UDT協(xié)議包與stun協(xié)議包的轉(zhuǎn)換。具體的,所述數(shù)據(jù)轉(zhuǎn)換為:對UDT協(xié)議包,進行解包,剝離外層的UDT協(xié)議,得到原始的stun協(xié)議包;對stun協(xié)議包,進行封包,成為UDT協(xié)議包。
[0030]由此,ICE服務(wù)器具有兩種數(shù)據(jù)端口:stun端口和UDT端口,分別用于收發(fā)來自客戶端的stun協(xié)議包和UDT協(xié)議包。
[0031]綜上,本發(fā)明提供了一種ICE服務(wù)方法,其中,ICE服務(wù)器與新版客戶端的數(shù)據(jù)傳輸采用UDT協(xié)議,傳輸UDT協(xié)議包,實現(xiàn)了數(shù)據(jù)的可靠性,并且數(shù)據(jù)流量最小。
[0032]優(yōu)選地,ICE服務(wù)器仍可與舊版客戶端采用UDP協(xié)議進行數(shù)據(jù)傳輸,傳輸stun協(xié)議包。ICE服務(wù)器可同時與新版客戶端、舊版客戶端進行不同模式的數(shù)據(jù)傳輸,實現(xiàn)了兼容。ICE服務(wù)器當然也可以只接受UDT協(xié)議包,此為不兼容的情況。
[0033]對于UDT協(xié)議包,由于Stun服務(wù)器中處理的是Stun協(xié)議包,因而需要進行Stun協(xié)議包與UDT協(xié)議包的轉(zhuǎn)換。也就是,ICE服務(wù)器向客戶端發(fā)送數(shù)據(jù)前進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換,ICE服務(wù)器從客戶端接收數(shù)據(jù)后進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換。
[0034]對于ICE服務(wù)器既接受UDT協(xié)議包也接受stun協(xié)議包的情況,在接收數(shù)據(jù)后需要判斷是否為UDT協(xié)議包:若是,則進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換,而后將轉(zhuǎn)換所得的stun協(xié)議包提供給stun服務(wù)器;若否,則將stun協(xié)議包直接提供給stun服務(wù)器。
[0035]對于發(fā)送UDT協(xié)議包給ICE服務(wù)器的客戶端,需要向其返回UDT協(xié)議包。而對于發(fā)送stun協(xié)議包給ICE服務(wù)器的客戶端,需要向其返回stun協(xié)議包。因而,ICE服務(wù)器發(fā)送數(shù)據(jù)前,會據(jù)此判斷是否以UDT協(xié)議包進行發(fā)送:若是,則進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換;若否,則將stun協(xié)議包直接發(fā)送。UDT協(xié)議包的發(fā)送采用UDT協(xié)議,stun協(xié)議包的發(fā)送采用UDP協(xié)議。
[0036]實際上,優(yōu)選地,本發(fā)明為ICE服務(wù)器的數(shù)據(jù)收發(fā)提供了以下方式,其中,每個ICE客戶端(新版)對應(yīng)于一個指定的UDT代理單元以及與之通信連接的stun服務(wù)器的一個指定的stun端口。具體的,當ICE服務(wù)器收到客戶端發(fā)送過來的數(shù)據(jù),并判斷為UDT協(xié)議包時,會為該客戶端生成一個UDT代理單元,并且為該UDT代理單元指定stun服務(wù)器的一個stun端口與之通信連接,以將轉(zhuǎn)換后的stun協(xié)議包發(fā)送給stun服務(wù)器。在stun服務(wù)器處理完該客戶端的數(shù)據(jù)后,生成stun協(xié)議包,并將stun協(xié)議包返回傳輸數(shù)據(jù)過來的所述stun端口。通過所述指定的stun端口發(fā)送到與之通信連接的所述指定的UDT代理單元,以將轉(zhuǎn)換后的UDT協(xié)議包返回給所述ICE客戶端(新版)。而每個ICE客戶端(舊版)對應(yīng)于stun服務(wù)器的一個指定的s tun端口 ο
[0037]與上述方法相應(yīng)地,本發(fā)明的ICE服務(wù)系統(tǒng)架構(gòu)如圖1所示。
[0038]本發(fā)明提供了一種ICE服務(wù)器,包括s tun服務(wù)器和UDT代理單元,二者通信連接。
[0039]Stun服務(wù)器具有Stun端口,收發(fā)、處理stun協(xié)議包。stun服務(wù)器監(jiān)聽stun端口。
[0040]UDT代理單元具有:UDT端口,與ICE客戶端(新版)通信連接,傳輸UDT協(xié)議包;連接端口,與stun服務(wù)器的stun端口通信連接,傳輸stun協(xié)議包。
[0041 ] UDT代理單元進行UDT協(xié)議包與stun協(xié)議包的轉(zhuǎn)換。通過UDT代理單元,實現(xiàn)了 ICE服務(wù)器對UDT協(xié)議包的收發(fā)。UDT代理單元監(jiān)聽UDT端口。
[0042]由此,ICE服務(wù)器提供了兩種數(shù)據(jù)端口:UDT端口和stun端口。
[0043 ]與之相對應(yīng)的是兩種數(shù)據(jù)傳輸路徑。UDT路徑:I CE客戶端(新版)-UDT端口 -UDT代理單元-連接端口-stun端口-stun服務(wù)器。其中,優(yōu)選地,UDT端口、UDT代理單元和stun端口是為該ICE客戶端(新版)指定的,也就是說每一個ICE客戶端(新版)具有一個指定的數(shù)據(jù)傳輸路徑。stun路徑:ICE客戶端(舊版)_stun端口-stun服務(wù)器。
[0044]當然,上述是考慮兼容性的情況,實際也可以不兼容,而只提供UDT端口和UDT路徑。
[0045]對于ICE服務(wù)器既接受UDT協(xié)議包也接受stun協(xié)議包的情況,ICE服務(wù)器設(shè)有判斷單元,進行如下判斷:
[0046]接收數(shù)據(jù)后,判斷是否為UDT協(xié)議包:若是,則通過UDT代理單元進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換,并將stun協(xié)議包傳輸給UDT端口 ;若否,則將stun協(xié)議包傳輸給stun端P,
[0047]發(fā)送數(shù)據(jù)前,判斷是否以UDT協(xié)議包進行發(fā)送:若是,則通過UDT代理單元進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換后從UDT端口以UDT協(xié)議發(fā)送;若否,則將stun協(xié)議包從stun端口以UDP協(xié)議發(fā)送。
[0048]本發(fā)明還提供了一種ICE客戶端,具有UDT端口,以發(fā)送、接收UDT協(xié)議包。
[0049]以上所述的實施例,只是本發(fā)明較優(yōu)選的【具體實施方式】,本領(lǐng)域的技術(shù)人員在本發(fā)明技術(shù)方案范圍內(nèi)進行的通常變化和替換都應(yīng)包含在本發(fā)明的保護范圍內(nèi)。
【主權(quán)項】
1.一種ICE服務(wù)方法,其特征在于,ICE服務(wù)器采用UDT數(shù)據(jù)傳輸方法進行與ICE客戶端的數(shù)據(jù)傳輸。2.根據(jù)權(quán)利要求1所述的ICE服務(wù)方法,其特征在于,ICE服務(wù)器采用UDT數(shù)據(jù)傳輸方法所傳輸?shù)臄?shù)據(jù)為UDT協(xié)議包,ICE服務(wù)器向ICE客戶端發(fā)送數(shù)據(jù)前進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換,ICE服務(wù)器從ICE客戶端接收數(shù)據(jù)后進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換。3.根據(jù)權(quán)利要求1所述的ICE服務(wù)方法,其特征在于,ICE服務(wù)器采用UDT數(shù)據(jù)傳輸方法傳輸UDT協(xié)議包,并采用UDP數(shù)據(jù)傳輸方法傳輸stun協(xié)議包,對于UDT協(xié)議包,ICE服務(wù)器向ICE客戶端發(fā)送數(shù)據(jù)前進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換,ICE服務(wù)器從ICE客戶端接收數(shù)據(jù)后進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換。4.根據(jù)權(quán)利要求3所述的ICE服務(wù)方法,其特征在于, ICE服務(wù)器接收數(shù)據(jù)后,判斷是否為UDT協(xié)議包:若是,則進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換; ICE服務(wù)器發(fā)送數(shù)據(jù)前,判斷是否以UDT協(xié)議包進行發(fā)送:若是,則進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換。5.根據(jù)權(quán)利要求2或3所述的ICE服務(wù)方法,其特征在于,ICE服務(wù)器通過stun服務(wù)器進行數(shù)據(jù)處理,所述的ICE服務(wù)方法為每一ICE客戶端指定stun服務(wù)器的一個stun端口,并且當ICE服務(wù)器收到ICE客戶端發(fā)送過來的UDT協(xié)議包時,會為該客戶端生成一個UDT代理單元與指定的stun端口通信連接,UDT代理單元進行UDT協(xié)議包與stun協(xié)議包的轉(zhuǎn)換,并與stun端口之間進行stun協(xié)議包的傳輸,以及與ICE客戶端之間進行UDT協(xié)議包的傳輸。6.—種ICE服務(wù)器,其特征在于,包括stun服務(wù)器和進行UDT協(xié)議包與stun協(xié)議包的轉(zhuǎn)換的UDT代理單元,其中, stun服務(wù)器具有stun端口, UDT代理單元具有:UDT端口,與ICE客戶端通信連接,以UDT數(shù)據(jù)傳輸方法傳輸UDT協(xié)議包;連接端口,與stun端口通信連接,傳輸stun協(xié)議包。7.根據(jù)權(quán)利要求6所述的ICE服務(wù)器,其特征在于,ICE服務(wù)器具有: UDT端口,與ICE客戶端以UDT數(shù)據(jù)傳輸方法傳輸UDT協(xié)議包,UDT端口為UDT代理單元的UDT端 口 ; stun端口,與ICE客戶端以UDP數(shù)據(jù)傳輸方法傳輸stun協(xié)議包,stun端口為stun服務(wù)器的s tun端口。8.根據(jù)權(quán)利要求6或7所述的ICE服務(wù)器,其特征在于,每一個ICE客戶端對應(yīng)一個指定的stun端口和數(shù)據(jù)傳輸路徑,UDT代理單元連接于指定的stun端口和發(fā)送UDT協(xié)議包的該ICE客戶端之間、指定的數(shù)據(jù)傳輸路徑之上。9.根據(jù)權(quán)利要求7所述的ICE服務(wù)器,其特征在于,ICE服務(wù)器設(shè)有判斷單元,進行如下判斷: 接收數(shù)據(jù)后,判斷是否為UDT協(xié)議包:若是,則通過UDT代理單元進行UDT協(xié)議包到stun協(xié)議包的轉(zhuǎn)換,并將stun協(xié)議包傳輸給stun端口 ;若否,則將stun協(xié)議包傳輸給stun端口, 發(fā)送數(shù)據(jù)前,判斷是否以UDT協(xié)議包進行發(fā)送:若是,則通過UDT代理單元進行stun協(xié)議包到UDT協(xié)議包的轉(zhuǎn)換后從UDT端口發(fā)送;若否,則將stun協(xié)議包從stun端口發(fā)送。10.一種ICE客戶端,其特征在于,具有UDT端口口與ICE服務(wù)器之間以UDT數(shù)據(jù)傳 輸方法進行UDT協(xié)議包的傳輸。
【文檔編號】H04L29/06GK105897761SQ201610424443
【公開日】2016年8月24日
【申請日】2016年6月15日
【發(fā)明人】劉榴, 盧小明, 陳姝
【申請人】北京眾享比特科技有限公司