亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種VoIP中基于TCP傳輸語(yǔ)音的方法及系統(tǒng)的制作方法

文檔序號(hào):9923850閱讀:911來(lái)源:國(guó)知局
一種VoIP中基于TCP傳輸語(yǔ)音的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種VoIP中基于TCP傳輸語(yǔ)音的方法及系統(tǒng)。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)地址轉(zhuǎn)換/ 防火墻穿越(NAT/FT ,Network Address Trans I at i on/Fir ewal ITraversal),是一種保證位于NAT設(shè)備后的主機(jī)與外部的主機(jī)之間能夠正常通信的技術(shù)。
[0003]由于IPv4地址緊缺及網(wǎng)絡(luò)安全問(wèn)題,多數(shù)企業(yè)用戶在網(wǎng)絡(luò)出口處設(shè)置了NAT/NAPT設(shè)備建立一個(gè)私有IP地址、私有端口與公網(wǎng)IP、公網(wǎng)端口之間的綁定,為內(nèi)網(wǎng)主機(jī)分配公網(wǎng)地址和端口與外部主機(jī)進(jìn)行通信。會(huì)話發(fā)起協(xié)議(SIP,Sess1n Initiat1n Protocol)是一個(gè)基于文本的應(yīng)用層協(xié)議,會(huì)話建立的有關(guān)IP地址信息在數(shù)據(jù)包中傳輸,但是NAT是對(duì)TCP/IP以下協(xié)議層進(jìn)行處理,無(wú)法解析應(yīng)用層的SIP數(shù)據(jù)包,無(wú)法完成正常的SIP會(huì)話建立過(guò)程。從安全方面考慮,多數(shù)企業(yè)在網(wǎng)絡(luò)出口處設(shè)置了防火墻,對(duì)通過(guò)設(shè)置的防火墻的IP數(shù)據(jù)包按照相關(guān)策略進(jìn)行過(guò)濾。防火墻在訪問(wèn)列表配置時(shí),除打開網(wǎng)內(nèi)業(yè)務(wù)需要的知名端口夕卜(如http的80端口),其它端口一般都配置為拒絕。對(duì)于基于SIP的多媒體通信應(yīng)用而言,需要在控制信令中動(dòng)態(tài)地協(xié)商媒體流端口,并維護(hù)多個(gè)UDP流實(shí)現(xiàn)媒體流的發(fā)送和接收。動(dòng)態(tài)分配的端口為在防火墻上配置固定的包過(guò)濾策略帶來(lái)了困難,對(duì)于不支持SIP應(yīng)用網(wǎng)關(guān)(SIP ALG)的防火墻,無(wú)法獲取動(dòng)態(tài)端口信息,導(dǎo)致媒體報(bào)文不能通過(guò)。
[0004]隨著VoIP(Voice over Internet Protocol,網(wǎng)絡(luò)電話)和軟交換技術(shù)的成熟和廣泛應(yīng)用,越來(lái)越多的企業(yè)和個(gè)人采用了VoIP和軟交換技術(shù)進(jìn)行企業(yè)內(nèi)部數(shù)據(jù)網(wǎng)絡(luò)和語(yǔ)音網(wǎng)絡(luò)的整合。但是,出于安全的考慮,在企業(yè)內(nèi)部網(wǎng)絡(luò)中存在大量的防火墻;同時(shí),為了節(jié)省IPv4的地址,目前很多企業(yè)采用NAT(Network Address Translat1n,網(wǎng)絡(luò)地址轉(zhuǎn)換)技術(shù),也就是私網(wǎng),使內(nèi)網(wǎng)中大量的主機(jī)通過(guò)少數(shù)幾個(gè)IP訪問(wèn)Internet。這些技術(shù)在早期的Internet網(wǎng)絡(luò)中起到了很大的作用,能夠用來(lái)阻擋來(lái)自企業(yè)外部網(wǎng)絡(luò)攻擊、節(jié)省IP地址、保護(hù)企業(yè)內(nèi)部的數(shù)據(jù)安全。然而在VoIP的應(yīng)用中,各種各樣的業(yè)務(wù)要求和底層協(xié)議的特點(diǎn),使得企業(yè)遺留的防火墻和NAT嚴(yán)重阻礙了VoIP的應(yīng)用,使得語(yǔ)音數(shù)據(jù)無(wú)法有效的傳輸。于是,如何使VoIP穿越企業(yè)遺留的防火墻就成了一個(gè)亟待解決的問(wèn)題。
[0005]目前在語(yǔ)音通訊領(lǐng)域,主要采用TCP作為語(yǔ)音傳輸?shù)膮f(xié)議,利用TCP實(shí)現(xiàn)防火墻/私網(wǎng)穿越的目的。傳統(tǒng)的TCP協(xié)議在發(fā)送數(shù)據(jù)時(shí),需要嚴(yán)格保證數(shù)據(jù)的有序,協(xié)議棧中有兩個(gè)緩存隊(duì)列:順序隊(duì)列和亂序隊(duì)列。當(dāng)TCP傳輸數(shù)據(jù)的時(shí)候,如果當(dāng)前到達(dá)的數(shù)據(jù)是有序的,則數(shù)據(jù)進(jìn)入到有序隊(duì)列中;如果是亂序的,則數(shù)據(jù)會(huì)緩存到亂序隊(duì)列中,等待之前的數(shù)據(jù)到來(lái)之后,再一起把連續(xù)的數(shù)據(jù)拷貝到順序隊(duì)列中。當(dāng)應(yīng)用層調(diào)用readO讀取數(shù)據(jù)的時(shí)候,如果順序隊(duì)列中有數(shù)據(jù),則把順序隊(duì)列中的數(shù)據(jù)返回給應(yīng)用層;如果順序隊(duì)列中沒(méi)有數(shù)據(jù)而亂序隊(duì)中有數(shù)據(jù),則需要等待之前空缺的數(shù)據(jù)到達(dá)之后,把亂序數(shù)據(jù)中的數(shù)據(jù)拷貝到順序隊(duì)列中,再返回給應(yīng)用層。這個(gè)傳輸特性,在使用TCP傳輸語(yǔ)音的時(shí)候,就會(huì)增加語(yǔ)音數(shù)據(jù)端到端的時(shí)延,造成語(yǔ)音的延遲、抖動(dòng)和停頓,無(wú)法達(dá)到令人滿意的通話效果。
[0006]而且,TCP傳輸過(guò)程中是面相字節(jié)流的,不保留任何數(shù)據(jù)的邊界信息,一旦發(fā)生了丟包,除非等待數(shù)據(jù)重傳成功,否則應(yīng)用層將無(wú)法識(shí)別出數(shù)據(jù)的邊界,會(huì)導(dǎo)致應(yīng)用層無(wú)法解析出語(yǔ)音數(shù)據(jù)包,導(dǎo)致整個(gè)通話都將無(wú)法聽到有效的聲音。
[0007]為了解決TCP傳輸語(yǔ)音過(guò)程中,其重傳機(jī)制和擁塞控制機(jī)制導(dǎo)致的高延遲問(wèn)題,目前主要有以下解決方案:
[0008]I,代理思路
[0009]代理使終端到終端的呼叫看起來(lái)像兩個(gè)分離的呼叫:一個(gè)是從私有網(wǎng)上的終端到代理,另一個(gè)是從代理到公眾網(wǎng)上的終端,代理通過(guò)對(duì)這個(gè)呼叫進(jìn)行中轉(zhuǎn)解決了 NAT問(wèn)題。
[0010]但是,該方法的缺點(diǎn)是:這種解決方案典型應(yīng)用是在防火墻后放一個(gè)代理,代理需要被分配公有IP地址。防火墻被配置允許代理和外部進(jìn)行多媒體通訊。有時(shí)候沿著網(wǎng)絡(luò)路徑在許多位置都應(yīng)用了 NAT設(shè)備,這時(shí)就需要在每一個(gè)使用NAT的地方放置代理。
[0011]2,隧道穿越方案
[0012]一般企業(yè)網(wǎng)都不想升級(jí)或者改動(dòng)他們的防火墻和NAT設(shè)備的配置,也不想讓內(nèi)外的交互通訊繞過(guò)這些設(shè)備,采用允許IP語(yǔ)音穿越防火墻和NAT的隧道穿透方案也許是最合適的,隧道穿透解決方案由兩個(gè)組件構(gòu)成,Server軟件和Client軟件。Client放在防火墻內(nèi)的私有網(wǎng),它同時(shí)具有網(wǎng)守功能和代理功能,私有網(wǎng)內(nèi)的終端注冊(cè)到Client上,它和防火墻外的Server創(chuàng)建一個(gè)信令和控制通道,可以把所有的注冊(cè)和呼叫控制信令轉(zhuǎn)發(fā)到Server,也把語(yǔ)音數(shù)據(jù)轉(zhuǎn)發(fā)到Server,在轉(zhuǎn)發(fā)時(shí)它把內(nèi)部終端發(fā)送的和外部發(fā)往終端的數(shù)據(jù)包的地址和端口號(hào)替換為自己的。Server放在防火墻外的公眾空間內(nèi)。
[0013]這個(gè)方法最大的缺點(diǎn)是所有經(jīng)過(guò)防火墻的通訊都必須經(jīng)由Server來(lái)進(jìn)行中轉(zhuǎn),這會(huì)引起潛在的瓶頸,這個(gè)經(jīng)由Client和Server的過(guò)程會(huì)增加少于5ms的延遲。但是這又是必須的,因?yàn)镾erver是防火墻唯一信任的設(shè)備。
[0014]在一般包含有NAT實(shí)際網(wǎng)絡(luò)場(chǎng)景中,防火墻總是伴隨出現(xiàn),在該情況下,前述的技術(shù)都無(wú)法在兼顧效率的同時(shí)有效對(duì)NAT和防火墻兩者同時(shí)進(jìn)行穿越,在考慮穿越效率的前提下,各現(xiàn)有技術(shù)針對(duì)的網(wǎng)絡(luò)環(huán)境都比較單一,不能解決VoIP中最常見(jiàn)網(wǎng)絡(luò)環(huán)境中NAT與防火墻穿越問(wèn)題。

【發(fā)明內(nèi)容】

[0015]本發(fā)明的特征和優(yōu)點(diǎn)在下文的描述中部分地陳述,或者可從該描述顯而易見(jiàn),或者可通過(guò)實(shí)踐本發(fā)明而學(xué)習(xí)。
[0016]為克服現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明提供一種VoIP中基于TCP傳輸語(yǔ)音的方法及系統(tǒng),在通信過(guò)程中,SIP軟終端通過(guò)采用中間件單元完成數(shù)據(jù)的發(fā)送和接收,同時(shí)該中間件單元通過(guò)對(duì)數(shù)據(jù)的編碼,實(shí)現(xiàn)亂序數(shù)據(jù)報(bào)發(fā)送的功能,從而保證通話的質(zhì)量,共同完成SIP軟終端會(huì)話的交互過(guò)程。
[0017]本發(fā)明解決上述技術(shù)問(wèn)題所采用的技術(shù)方案如下:
[0018]根據(jù)本發(fā)明的一個(gè)方面,提供一種VoIP中基于TCP傳輸語(yǔ)音的方法,其特征在于,SIP終端使用中間件單元進(jìn)行數(shù)據(jù)的發(fā)送和接收,其中:
[0019]在進(jìn)行該數(shù)據(jù)的發(fā)送時(shí)包括步驟:該中間件單元對(duì)該數(shù)據(jù)進(jìn)行自識(shí)別邊界的編碼,并將編碼后的該數(shù)據(jù)通過(guò)TCP傳輸?shù)綄?duì)端SIP終端;
[0020]在進(jìn)行該數(shù)據(jù)的接收時(shí)包括步驟:該中間件單元對(duì)從該TCP接收到的數(shù)據(jù)進(jìn)行自識(shí)別邊界的解碼,把解碼后的數(shù)據(jù)傳遞給該SIP終端。
[0021 ]根據(jù)本發(fā)明的一個(gè)實(shí)施例,該中間件單元對(duì)該數(shù)據(jù)進(jìn)行自識(shí)別邊界的編碼時(shí),包括步驟:
[0022]Al、查詢?cè)摂?shù)據(jù)中0x00字節(jié)出現(xiàn)的位置,以字節(jié)0x00為標(biāo)識(shí),把該數(shù)據(jù)分為若干個(gè)以0x00結(jié)尾的數(shù)據(jù)塊,然后分別把每個(gè)該數(shù)據(jù)塊作為一個(gè)輸入數(shù)據(jù);如果該數(shù)據(jù)中沒(méi)有0x00字節(jié),則把整個(gè)該數(shù)據(jù)作為一個(gè)輸入數(shù)據(jù);
[0023]A2、使用一致開銷字節(jié)填充算法,對(duì)該輸入數(shù)據(jù)進(jìn)行編碼,把所有該輸入數(shù)據(jù)的編碼的結(jié)果進(jìn)行拼接,獲取最終的編碼數(shù)據(jù);
[0024]A3、在該編碼數(shù)據(jù)的首尾分別加上0x00字節(jié),作為數(shù)據(jù)邊
當(dāng)前第1頁(yè)1 2 3 4 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1