專利名稱:基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒?br>
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)傳輸技術(shù),特別是涉及一種基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒ā?br>
背景技術(shù):
在數(shù)據(jù)傳輸?shù)倪^程中,經(jīng)常會遇到傳輸數(shù)據(jù)錯(cuò)或未收到所傳數(shù)據(jù)的現(xiàn)象,如此就會影響整個(gè)系統(tǒng)的正常工作,為了保證系統(tǒng)的正常工作,一些支持重傳機(jī)制的系統(tǒng)就采取不斷重傳同一數(shù)據(jù)直至收到對端接收數(shù)據(jù)正確的確認(rèn)為止。通常在數(shù)據(jù)傳輸中,會存在以下幾種機(jī)制窗機(jī)制、確認(rèn)機(jī)制和重傳機(jī)制。其中,所述窗機(jī)制,即滑窗機(jī)制,其實(shí)現(xiàn)原理就是將接收端和發(fā)送端的窗口大小要保持一致。比如,如果發(fā)送窗和接受窗配置設(shè)置為5,在數(shù)據(jù)傳輸過程中,允許發(fā)送端發(fā)送的數(shù)據(jù)端最大為5個(gè)數(shù)據(jù)分段,當(dāng)窗口已發(fā)送5個(gè)數(shù)據(jù)分段時(shí),則不允許再發(fā)送新的數(shù)據(jù)分段;而對于接收端來說,最大只能接收5個(gè)數(shù)據(jù)分段。當(dāng)接收端已接收5個(gè)數(shù)據(jù)段時(shí),則不允許再接收其它的數(shù)據(jù)段。所述確認(rèn)機(jī)制,就是接收端將得到的確認(rèn)信息,告知發(fā)送端數(shù)據(jù)報(bào)文的接收狀態(tài)。所述重傳機(jī)制,發(fā)送端通過解析確認(rèn)信息得到需要重傳的數(shù)據(jù)分段,并對這些數(shù)據(jù)分段進(jìn)行重新發(fā)送。
由此可知,在數(shù)據(jù)傳輸過程中,所述窗機(jī)制主要是為了避免循環(huán)編號的序列混淆、并限制進(jìn)入網(wǎng)絡(luò)的數(shù)據(jù)量以及告知預(yù)留資源量;確認(rèn)機(jī)制主要是為了讓發(fā)送端得到數(shù)據(jù)接收的正確錯(cuò)誤情況指示;重傳機(jī)制主要是發(fā)送端對未正確接收數(shù)據(jù)進(jìn)行重新發(fā)送的處理。對于具有以上機(jī)制特性的數(shù)據(jù)傳輸過程,比如,WCDMA系統(tǒng)中的RLC AM模式,有線傳輸網(wǎng)中的TCP協(xié)議等這些模式中,當(dāng)窗機(jī)制起作用時(shí),對于如何判斷窗滿的問題,發(fā)送端是會紀(jì)錄發(fā)送了多少數(shù)據(jù)分段,故此,判斷發(fā)送窗口是否滿,只需要根據(jù)發(fā)送的數(shù)據(jù)量與窗口設(shè)定值比較便可知曉,如果當(dāng)前發(fā)送窗口的數(shù)據(jù)量等于窗口設(shè)定值,則不允許發(fā)送新的數(shù)據(jù);否則,允許發(fā)送端發(fā)送新數(shù)據(jù)。在發(fā)送新數(shù)據(jù)后,發(fā)送端只有接收到接收端該數(shù)據(jù)的確認(rèn)信息后才能發(fā)送下一個(gè)新數(shù)據(jù);由此可見有效的降低了數(shù)據(jù)的傳輸數(shù)率。
因此,現(xiàn)有技術(shù)的缺點(diǎn)為當(dāng)發(fā)送窗滿時(shí),存在一段時(shí)間不允許發(fā)送端進(jìn)行數(shù)據(jù)發(fā)送,這樣便降低發(fā)送端的數(shù)據(jù)傳輸效率。
發(fā)明內(nèi)容
本發(fā)明解決的技術(shù)問題是為了解決窗機(jī)制作用下帶寬的浪費(fèi),在發(fā)送窗的數(shù)據(jù)滿或數(shù)據(jù)較少時(shí),主動(dòng)對未確認(rèn)的數(shù)據(jù)進(jìn)行選擇性發(fā)送,而提供一種基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒?,以提高在?shù)據(jù)傳輸過程中發(fā)送端的發(fā)送效率,并通過重傳來提高接收端的接收正確率,從而有效的降低了傳輸時(shí)延。
為解決上述問題,本發(fā)明提供一種基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒?,包括步驟設(shè)置發(fā)送窗占用門限值,并監(jiān)測發(fā)送窗大小和待發(fā)送數(shù)據(jù);判斷發(fā)送窗大小是否小于發(fā)送窗占用門限值,若否,從發(fā)送窗大小中選取未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送,結(jié)束;若是,則執(zhí)行如下步驟;判斷發(fā)送窗大小是否小于待發(fā)送數(shù)據(jù),若否,從待發(fā)送數(shù)據(jù)中選取未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送(步驟S15),若是,則返回到上述第一個(gè)步驟。
所述設(shè)置發(fā)送窗占用門限值是根據(jù)業(yè)務(wù)的傳速速率來確定的。
監(jiān)測發(fā)送窗大小的過程具體為統(tǒng)計(jì)發(fā)送端未發(fā)送的數(shù)據(jù)量,剔除發(fā)送序列中最前面的數(shù)據(jù),其統(tǒng)計(jì)公式為TxWin=(2n+VT(S)-VT(A))mod 2n其中,TxWin表示發(fā)送窗大小,VT(S)表示下一個(gè)允許發(fā)送的數(shù)據(jù)序號,VT(A)表示下一個(gè)需要確認(rèn)的數(shù)據(jù)序號,所述數(shù)據(jù)序號是按照2n進(jìn)行循環(huán)預(yù)留編號,n預(yù)留的數(shù)據(jù)位,mod是取模。
所述待發(fā)送數(shù)據(jù)包括發(fā)送緩沖區(qū)和重傳緩沖區(qū)中未確認(rèn)的數(shù)據(jù)。
所述從發(fā)送窗大小中選取未確認(rèn)的數(shù)據(jù)是按照循環(huán)調(diào)度算法對未確認(rèn)的數(shù)據(jù)進(jìn)行選取的。
所述循環(huán)發(fā)送調(diào)度算法包括步驟確定未確認(rèn)的數(shù)據(jù),并對未確認(rèn)的數(shù)據(jù)進(jìn)行排序以及為其分配調(diào)度序號;根據(jù)調(diào)度序號選取當(dāng)前未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送。
所述對未確認(rèn)的數(shù)據(jù)進(jìn)行排序是按照先進(jìn)先出進(jìn)行排序的。
所述從待發(fā)送的數(shù)據(jù)中選取未確認(rèn)的數(shù)據(jù)是根據(jù)交叉選擇算法進(jìn)行選取的。
所述交叉選擇算法包括步驟判斷發(fā)送緩沖區(qū)和重傳緩沖區(qū)是否小于允許發(fā)送的數(shù)據(jù)量,若是,則將所述發(fā)送緩沖區(qū)和重傳緩沖區(qū)中的數(shù)據(jù)全部發(fā)送,并跳出選擇過程;否則,執(zhí)行判斷發(fā)送緩沖區(qū)或重傳緩沖區(qū)的數(shù)據(jù)是否小于允許發(fā)送的數(shù)據(jù)量/2,若是,則將所述發(fā)送緩沖區(qū)或重傳緩沖區(qū)中的數(shù)據(jù)全部發(fā)送,且將剩余的發(fā)送空間分配給重傳緩沖區(qū)或發(fā)送緩沖區(qū),否則,再執(zhí)行判斷允許發(fā)送的數(shù)據(jù)量為偶數(shù)或奇數(shù),若為偶數(shù),則分別從發(fā)送緩沖區(qū)或重傳緩沖區(qū)的序列中選取允許發(fā)送的數(shù)據(jù)量/2個(gè)數(shù)據(jù)發(fā)送;若為奇數(shù),則從發(fā)送緩沖區(qū)或重傳緩沖區(qū)的序列中選取的數(shù)據(jù)個(gè)數(shù)分別為A=(允許發(fā)送的數(shù)據(jù)量-1)/2或B=(允許發(fā)送的數(shù)據(jù)量+1)/2,且選取A和B的數(shù)據(jù)個(gè)數(shù)依次輪換。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果本發(fā)明在發(fā)送窗滿或快滿時(shí),主動(dòng)對未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送,從而解決了現(xiàn)有技術(shù)中發(fā)送端只有接收到接收端的確認(rèn)消息后,才能知道需要重傳那個(gè)數(shù)據(jù)段,影響了數(shù)據(jù)的傳輸,本發(fā)明在現(xiàn)有技術(shù)的基礎(chǔ)上,通過設(shè)置發(fā)送窗占用門限來提高在數(shù)據(jù)傳輸過程中發(fā)送端的發(fā)送效率,并通過重傳來提高接收端的接收正確率,從而有效的降低了傳輸時(shí)延。
圖1是現(xiàn)有技術(shù)基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒ǖ脑韴D;圖2是本發(fā)明基于窗機(jī)制作用下對帶寬利用改進(jìn)地原理圖。
圖3是圖2基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D。
圖4是本發(fā)明中所述交叉選擇算法的流程圖。
具體實(shí)施例方式
請參閱圖2,為本發(fā)明在窗機(jī)制作用下對帶寬利用改進(jìn)的原理圖。本發(fā)明為了解決窗機(jī)制造成帶寬的浪費(fèi),在數(shù)據(jù)從發(fā)端到收端的傳輸過程中,通過判斷發(fā)送窗中的數(shù)據(jù)是滿或者是數(shù)據(jù)在較少時(shí),對未確認(rèn)的數(shù)據(jù)進(jìn)行選擇發(fā)送,其中,所述尚未確認(rèn)的數(shù)據(jù)包括新數(shù)據(jù)和需進(jìn)行重傳的數(shù)據(jù)。也就是通過比較發(fā)送窗大小與預(yù)先配置的發(fā)送窗占用門限的大小,確定是否對發(fā)送窗中尚未確認(rèn)的數(shù)據(jù)盡可能多地發(fā)送,來提高接收端的接收正確率,從而獲得更小地傳輸時(shí)延。
請參考圖3,為本發(fā)明基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D,所述方法包括下列步驟步驟S11設(shè)置發(fā)送窗占用門限值,并確定發(fā)送窗大小和待發(fā)送的數(shù)據(jù);步驟S12判斷發(fā)送窗大小是否小于發(fā)送窗占用門限值,若否,從發(fā)送窗中選取尚未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送(步驟S13),結(jié)束;若是,則執(zhí)行步驟14;步驟S14判斷發(fā)送窗大小是否小于待發(fā)送的數(shù)據(jù),若否,從待發(fā)送的數(shù)據(jù)中選取未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送(步驟S15),若是,返回步驟S11。
在步驟S11中,首先預(yù)設(shè)發(fā)送窗占用門限,通常情況下設(shè)置為配置的發(fā)送窗大小。不同的業(yè)務(wù)速率窗口設(shè)置不同,基本關(guān)系是速率越大窗口也越大。在進(jìn)行窗口設(shè)置時(shí)同時(shí)還需要考慮對等層的時(shí)延,資源預(yù)留等問題。
對于發(fā)送窗口的設(shè)置,我們可以采用仿真或是通過外場測試來獲得窗口的設(shè)置。目前,由仿真結(jié)果表明,發(fā)送窗平均占有率大于一定比例將影響端到端的數(shù)據(jù)傳速(比如,當(dāng)發(fā)送窗平均占有率大于40%時(shí),將影響到端到端的數(shù)據(jù)傳輸)。當(dāng)發(fā)送窗設(shè)置大到一定程度時(shí),發(fā)送窗對數(shù)據(jù)傳速將不產(chǎn)生影響。
通過外場測試可參考的經(jīng)驗(yàn)公式為 其中ηtx_win_thresh為平均的發(fā)送窗口占有率的上門限,α為與底層的BLER(誤塊率)相關(guān)的系數(shù)。
在數(shù)據(jù)傳輸過程中,發(fā)送端實(shí)時(shí)監(jiān)測發(fā)送窗大小TxWin中未確認(rèn)的數(shù)據(jù)量,其中,不同的實(shí)現(xiàn)機(jī)制有不同的監(jiān)測過程,一種監(jiān)測發(fā)送窗大小的過程為發(fā)送端統(tǒng)計(jì)未發(fā)送的數(shù)據(jù)量,剔除發(fā)送序列中最前面的數(shù)據(jù)(這只是統(tǒng)計(jì)監(jiān)測發(fā)送窗大小有很多方案,這只是其中的一種方案),其統(tǒng)計(jì)公式為TxWin=(2n+VT(S)-VT(A))mod 2n其中,TxWin表示發(fā)送窗大小,VT(S)表示下一個(gè)允許發(fā)送的數(shù)據(jù)序號,VT(A)表示下一個(gè)需要確認(rèn)的數(shù)據(jù)序號,所述數(shù)據(jù)序號是按照2n進(jìn)行循環(huán)預(yù)留編號,n預(yù)留的數(shù)據(jù)位,(比如2n為4096時(shí)為優(yōu)選實(shí)施例),mod是取模。該發(fā)送窗大小的設(shè)定,其影響因素比較多,特別是在進(jìn)行該發(fā)送窗大小參數(shù)的設(shè)置時(shí),需要考慮物理層的突發(fā)誤碼率情況以及端到端的時(shí)延,而在發(fā)送端設(shè)置發(fā)送窗占用門限的目的就是當(dāng)發(fā)送窗占用門限滿或者數(shù)據(jù)較少時(shí),對于所要發(fā)送的數(shù)據(jù)進(jìn)行選擇性發(fā)送,以提高發(fā)送端的發(fā)送速率以及接收端的接收正確率,從而減少了端到端的傳輸時(shí)延。所述監(jiān)測發(fā)送端待發(fā)送數(shù)據(jù)量DATAin是統(tǒng)計(jì)到達(dá)發(fā)送緩沖區(qū)和重傳緩沖區(qū)的未確認(rèn)的數(shù)據(jù)量。
步驟S12中判斷發(fā)送窗大小是否小于發(fā)送窗占用門限,若不小于,則系統(tǒng)按照一定的策略從發(fā)送窗中的選取未確認(rèn)的數(shù)據(jù)(對已經(jīng)確認(rèn)的數(shù)據(jù)不在選取之列),并對其進(jìn)行發(fā)送(步驟S13)。其中,所述一定的策略可以是循環(huán)調(diào)度(RR,Round Robin)算法或加權(quán)循環(huán)調(diào)度算法,所述選擇加權(quán)循環(huán)調(diào)度算法,是因?yàn)樵谕ǔG闆r下,發(fā)送窗占滿是因?yàn)榇耙苿?dòng)慢,故此,本發(fā)明也可以從不同的權(quán)重來選擇?,F(xiàn)已循環(huán)調(diào)度算法來說明本發(fā)明。
所述循環(huán)調(diào)度算法是所有調(diào)度算法中最簡單也最容易實(shí)現(xiàn)的一種方法。在一個(gè)任務(wù)隊(duì)列里,隊(duì)列的每個(gè)成員(節(jié)點(diǎn))都具有相同的地位,循環(huán)調(diào)度算法簡單的在這組成員中順序循環(huán)選擇。將新的重傳請求輪流發(fā)給隊(duì)列中的每一個(gè)成員,如此連續(xù)、周而復(fù)始,每個(gè)隊(duì)列中的成員都在相等的地位下被輪流選擇。循環(huán)調(diào)度算法的活動(dòng)是可預(yù)知的,每個(gè)成員被選擇的機(jī)會都是1/N,因此很容易計(jì)算出成員的分布情況。循環(huán)調(diào)度算法適用于數(shù)據(jù)傳輸中所有隊(duì)列成員的處理能力和性能均相同的情況。在實(shí)際應(yīng)用中,該方法的實(shí)現(xiàn)簡單有效。其實(shí)現(xiàn)過程為先確定未確認(rèn)的數(shù)據(jù),并將其按照先進(jìn)先出進(jìn)行排序以及為其分配調(diào)度序號;其次,根據(jù)調(diào)度序號選取當(dāng)前未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送。為了便于理解現(xiàn)舉例說明。比如,如果某個(gè)對象一共有N個(gè)隊(duì)列成員,它們按照先進(jìn)先出的方式進(jìn)行排序,并分別賦予了一個(gè)調(diào)度序號,記作0,1,2,...,(n-2),(n-1);假設(shè)當(dāng)前選取的對象為cur_index,則下將要被選取一個(gè)對象為next_index,其計(jì)算公式為next_index=mod(cur_index+1,N);(mod表示取模的含義,本例中,即(cur_inde+1)除于N,取余數(shù))。
若小于,即當(dāng)發(fā)送窗大小小于發(fā)送窗占用門限時(shí),則執(zhí)行步驟S14,即判斷發(fā)送窗大小是否小于待發(fā)送的數(shù)據(jù),若否,按照一定的策略從發(fā)送緩沖區(qū)和發(fā)送重傳緩沖區(qū)中選取未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送(步驟S15),其中,所述選取未確認(rèn)的數(shù)據(jù)是按照交叉選擇算法來選取的,所述交叉選擇算法的流程圖詳見圖4。所述交叉選擇算法包括步驟步驟M11判斷發(fā)送緩沖區(qū)和重傳緩沖區(qū)的總數(shù)據(jù)是否小于允許發(fā)送的數(shù)據(jù)量,若是,則將所有的數(shù)據(jù)全部發(fā)送,并跳出選擇過程(步驟M12);否則,執(zhí)行步驟M13;步驟M13判斷發(fā)送緩沖區(qū)或重傳緩沖區(qū)的數(shù)據(jù)是否小于允許發(fā)送的數(shù)據(jù)量/2,若是,則將所述發(fā)送緩沖區(qū)或重傳緩沖區(qū)中的數(shù)據(jù)全部發(fā)送步驟,且將剩余的發(fā)送空間分配給重傳緩沖區(qū)或發(fā)送緩沖區(qū)(步驟M14),否則,執(zhí)行步驟(M15);步驟M15判斷允許發(fā)送的數(shù)據(jù)量為偶數(shù)或奇數(shù)時(shí),若為偶數(shù),則分別從發(fā)送緩沖區(qū)或重傳緩沖區(qū)的序列中選取允許發(fā)送的數(shù)據(jù)量/2個(gè)數(shù)據(jù)發(fā)送(步驟M17);若為奇數(shù),則從發(fā)送緩沖區(qū)或重傳緩沖區(qū)的序列中選取的數(shù)據(jù)個(gè)數(shù)分別為A=(允許發(fā)送的數(shù)據(jù)量-1)/2或B=(允許發(fā)送的數(shù)據(jù)量+1)/2,且A和B個(gè)數(shù)據(jù)依次輪換選取(步驟M16)。
其實(shí)現(xiàn)過程具體為首先,將發(fā)送緩沖區(qū)(標(biāo)記為txbuf)和重傳緩沖區(qū)(標(biāo)記為retxbuf)的數(shù)據(jù)按序號順序或時(shí)間先后順序排序;其次,設(shè)置某個(gè)時(shí)刻發(fā)送緩沖區(qū)大小(即需要發(fā)送的數(shù)據(jù)總量為Ntx_num個(gè)數(shù)據(jù));因?yàn)椋煌臅r(shí)刻允許發(fā)送的數(shù)據(jù)量tx_num可能不同;再次,判斷txbuf和retxbuf的數(shù)據(jù)總量是否小于發(fā)送緩沖區(qū)需要發(fā)送的數(shù)據(jù)量tx_num,若是,則將選擇所有的數(shù)據(jù)進(jìn)行發(fā)送,并跳出該選擇過程;否則,再判斷txbuf或retxbuf的數(shù)據(jù)量是否小于(tx_num/2)(向下取整),若是,則將txbuf或retxbuf中所有的數(shù)據(jù)進(jìn)行發(fā)送,且將剩余的發(fā)送空間分配給retxbuf或txbuf;否則,再判斷允許發(fā)送的數(shù)據(jù)量tx_num為偶數(shù)或者奇數(shù),若tx_num為偶數(shù)時(shí),則分別從txbuf和retxbuf序列中選取tx_num/2個(gè)數(shù)據(jù)發(fā)送;若tx_num為奇數(shù)時(shí),則選取的個(gè)數(shù)分別為A=(tx_num-1)/2和B=(tx_num+1)/2,如果上一次從txbuf選取的個(gè)數(shù)為A,retxbuf選取的個(gè)數(shù)為B,則本次將從txbuf選取B個(gè),從retxbuf選取A個(gè)。依次輪換。所述上一次,是指上一次發(fā)送奇數(shù)個(gè)數(shù)據(jù)的發(fā)送情況。此外,由于新發(fā)數(shù)據(jù)會使得發(fā)送窗大小變大,此時(shí)在進(jìn)行選擇時(shí),如果發(fā)生發(fā)送窗大小到達(dá)配置的發(fā)送窗,此時(shí),則不再允許發(fā)送新的數(shù)據(jù),則僅僅發(fā)送窗中為得到確認(rèn)的數(shù)據(jù)。
若是,即發(fā)送窗大小小于待發(fā)送的數(shù)據(jù),則返回步驟A。
本發(fā)明中引入發(fā)送窗占用門限WINth的作用主要是使重傳算法啟動(dòng)控制更加靈活;在實(shí)施過程中不受發(fā)送窗口配置不合理的影響;該發(fā)送窗占用門限的引入并不是為了期望在窗不滿的時(shí)候進(jìn)行該重發(fā)策略,而是期望通過該設(shè)置該發(fā)送窗占用門限參數(shù),更早地對數(shù)據(jù)進(jìn)行控制,而不是等到發(fā)送窗滿時(shí)才進(jìn)行選擇發(fā)送操作,從而達(dá)到了靈活控制該傳輸算法。
為了避免這種因?yàn)閰?shù)設(shè)置不合理帶來的影響,可以考慮將該流程進(jìn)一步補(bǔ)充。如果發(fā)送窗大小TxWin大于等于發(fā)送窗占用門限WINth,同時(shí)有待發(fā)送的新數(shù)據(jù),則綜合考慮已發(fā)數(shù)據(jù)和待發(fā)數(shù)據(jù)的發(fā)送,按一定的策略選擇發(fā)送。比如,將需重新發(fā)送數(shù)據(jù)和待發(fā)送的新數(shù)據(jù)交替選擇發(fā)送。從而達(dá)到本發(fā)明的目的,即提高發(fā)送端的發(fā)送速率,對未確認(rèn)的數(shù)據(jù)通過重傳來提高接收端的接收正確率,從而減小了端到端的時(shí)延。
在本發(fā)明的實(shí)現(xiàn)過程中,由于對未確認(rèn)的數(shù)據(jù)進(jìn)行重新發(fā)送會帶來明顯的增益,因此,在發(fā)送端和接收端的數(shù)據(jù)遞交時(shí)延明顯較快,因?yàn)?,在現(xiàn)有技術(shù)中只有等到接收到確認(rèn)消息后,才能知道需要重新發(fā)送哪個(gè)數(shù)據(jù)分段的數(shù)據(jù),而本發(fā)明在實(shí)施過程中,通過判斷發(fā)送窗中的數(shù)據(jù)是滿或者是數(shù)據(jù)在較少時(shí),對未確認(rèn)的數(shù)據(jù)進(jìn)行選擇發(fā)送,從而解決了現(xiàn)有技術(shù)中當(dāng)窗滿時(shí),存在一段時(shí)間不允許發(fā)送端進(jìn)行數(shù)據(jù)發(fā)送問題。
下面舉一應(yīng)用實(shí)例來說明本發(fā)明。為了描述的方便,此處僅提供單重傳緩沖區(qū)有數(shù)據(jù)的情況。詳見表1和表2,分別為本技術(shù)的時(shí)序圖和現(xiàn)有技術(shù)的時(shí)序圖,為了便于說明,假設(shè)發(fā)送窗大小為2,接收狀態(tài)序列相同,并假設(shè)數(shù)據(jù)從發(fā)送端發(fā)出,到達(dá)接收端需要經(jīng)歷4個(gè)發(fā)送時(shí)序。當(dāng)發(fā)送時(shí)序(1)發(fā)送的數(shù)據(jù)序號為3,在發(fā)送時(shí)序(5)到達(dá)接收端時(shí),詳見現(xiàn)表所示表1,本技術(shù)方案時(shí)序圖
表2,現(xiàn)有技術(shù)方案時(shí)序圖
其中,表1和表2中所述注1至注5所表示的意思分別為注1表示接收端檢測到數(shù)據(jù)報(bào)文段丟失,觸發(fā)狀態(tài)報(bào)告(數(shù)據(jù)序號3丟失,4正確接收);注2表示接收端正確接收到數(shù)據(jù)序號為3和4的數(shù)據(jù);觸發(fā)狀態(tài)報(bào)告,通知發(fā)端所有數(shù)據(jù)報(bào)文已經(jīng)正確接收;注3表示發(fā)送端接收到狀態(tài)報(bào)告,得知需要重傳序號為3的數(shù)據(jù);注4數(shù)據(jù)傳輸完畢;注5表示發(fā)送端接收到狀態(tài)報(bào)告,得知需要重傳序號為3的數(shù)據(jù)。
從上述的具體應(yīng)用實(shí)施例的對比中,我們可以看到采用本發(fā)明可以有效地縮短數(shù)據(jù)遞交時(shí)延。其時(shí)間耗時(shí)對比表,詳見表3表3,時(shí)間耗時(shí)對比表
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,包括A、設(shè)置發(fā)送窗占用門限值,并監(jiān)測發(fā)送窗大小和待發(fā)送數(shù)據(jù);B、判斷發(fā)送窗大小是否小于發(fā)送窗占用門限值,若否,從發(fā)送窗大小中選取未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送,結(jié)束;若是,則執(zhí)行步驟C;C、判斷發(fā)送窗大小是否小于待發(fā)送數(shù)據(jù),若否,從待發(fā)送數(shù)據(jù)中選取未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送,若是,則返回步驟A。
2.根據(jù)權(quán)利要求1所述基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,步驟A中所述設(shè)置發(fā)送窗占用門限值是根據(jù)業(yè)務(wù)的傳速速率來確定的。
3.根據(jù)權(quán)利要求1所述基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,步驟A中監(jiān)測發(fā)送窗大小的過程具體為統(tǒng)計(jì)發(fā)送端未發(fā)送的數(shù)據(jù)量,剔除發(fā)送序列中最前面的數(shù)據(jù),其統(tǒng)計(jì)公式為TxWin=(2n+VT(S)-VT(A))mod 2n其中,TxWin表示發(fā)送窗大小,VT(S)表示下一個(gè)允許發(fā)送的數(shù)據(jù)序號,VT(A)表示下一個(gè)需要確認(rèn)的數(shù)據(jù)序號,所述數(shù)據(jù)序號是按照2n進(jìn)行循環(huán)預(yù)留編號,n預(yù)留的數(shù)據(jù)位,mod是取模。
4.根據(jù)權(quán)利要求3所述基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,步驟A中所述待發(fā)送數(shù)據(jù)包括發(fā)送緩沖區(qū)和重傳緩沖區(qū)中未確認(rèn)的數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,步驟B中所述從發(fā)送窗大小中選取未確認(rèn)的數(shù)據(jù)是按照循環(huán)調(diào)度算法對未確認(rèn)的數(shù)據(jù)進(jìn)行選取的。
6.根據(jù)權(quán)利要求5所述基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,所述循環(huán)發(fā)送調(diào)度算法包括61)確定未確認(rèn)的數(shù)據(jù),并對未確認(rèn)的數(shù)據(jù)進(jìn)行排序以及為其分配調(diào)度序號;62)根據(jù)調(diào)度序號選取當(dāng)前未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送。
7.根據(jù)權(quán)利要求6所述基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,步驟61)所述對未確認(rèn)的數(shù)據(jù)進(jìn)行排序是按照先進(jìn)先出進(jìn)行排序的。
8.根據(jù)權(quán)利要求1所述基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,步驟C中所述從待發(fā)送的數(shù)據(jù)中選取未確認(rèn)的數(shù)據(jù)是根據(jù)交叉選擇算法進(jìn)行選取的。
9.根據(jù)權(quán)利要求8所述基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,所述交叉選擇算法包括91)判斷發(fā)送緩沖區(qū)和重傳緩沖區(qū)的數(shù)據(jù)是否小于允許發(fā)送的數(shù)據(jù)量,若是,則將所述發(fā)送緩沖區(qū)和重傳緩沖區(qū)中的數(shù)據(jù)全部發(fā)送,并跳出選擇過程;否則,執(zhí)行步驟92;92)判斷發(fā)送緩沖區(qū)或重傳緩沖區(qū)的數(shù)據(jù)是否小于允許發(fā)送數(shù)的據(jù)量/2,若是,則將所述發(fā)送緩沖區(qū)或重傳緩沖區(qū)中的數(shù)據(jù)全部發(fā)送,且將剩余的發(fā)送空間分配給重傳緩沖區(qū)或發(fā)送緩沖區(qū),否則,執(zhí)行步驟93;93)判斷允許發(fā)送數(shù)的數(shù)據(jù)量為偶數(shù)或奇數(shù),若為偶數(shù),則分別從發(fā)送緩沖區(qū)或重傳緩沖區(qū)的序列中選取允許發(fā)送的數(shù)據(jù)量/2個(gè)數(shù)據(jù)發(fā)送;若為奇數(shù),則從發(fā)送緩沖區(qū)或重傳緩沖區(qū)的序列中選取的數(shù)據(jù)個(gè)數(shù)分別為A=(允許發(fā)送數(shù)的據(jù)量-1)/2或B=(允許發(fā)送的數(shù)據(jù)量+1)/2,且選取A和B的數(shù)據(jù)個(gè)數(shù)依次輪換。
全文摘要
本發(fā)明涉及一種基于窗機(jī)制作用下數(shù)據(jù)傳輸?shù)姆椒?,包括A、設(shè)置發(fā)送窗占用門限值,并實(shí)時(shí)監(jiān)測發(fā)送窗大小和待發(fā)送數(shù)據(jù);B、判斷發(fā)送窗大小是否小于發(fā)送窗占用門限值,若否,從發(fā)送窗大小中選取未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送,結(jié)束;若是,則執(zhí)行步驟C;C、判斷發(fā)送窗大小是否小于待發(fā)送數(shù)據(jù),若否,從待發(fā)送數(shù)據(jù)中選取未確認(rèn)的數(shù)據(jù)進(jìn)行發(fā)送,若是,返回步驟A。本發(fā)明以解決窗機(jī)制作用下帶寬的浪費(fèi),而提出在發(fā)送窗的數(shù)據(jù)滿或數(shù)據(jù)較少時(shí),主動(dòng)對數(shù)據(jù)進(jìn)行選擇性發(fā)送,以提高在數(shù)據(jù)傳輸過程中發(fā)送端的發(fā)送效率,并通過重傳來提高接收端的接收正確率,從而有效地降低了端到端的時(shí)延。
文檔編號H04L1/18GK1815942SQ200510005209
公開日2006年8月9日 申請日期2005年2月1日 優(yōu)先權(quán)日2005年2月1日
發(fā)明者吳玉忠, 張勁林 申請人:華為技術(shù)有限公司