專利名稱:無線側(cè)tcp數(shù)據(jù)重傳的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種無線側(cè)TCP數(shù)據(jù)重傳的方法和設(shè)備。
背景技術(shù):
TCP (Transmission Control Protocol,傳輸控制協(xié)議)是一種面向連接(連接導(dǎo)向)的、可靠的、基于字節(jié)流的運(yùn)輸層(Transport Layer)通信協(xié)議。在具有TCP代理功能的RNC (Radio Network Controller,無線網(wǎng)絡(luò)控制器)或者有TCP實(shí)體的3G (3rd Generation,第三代移動(dòng)通信技術(shù))終端的無線側(cè),由于空口丟包和非按序遞交,會(huì)導(dǎo)致終端收到大量的亂序包,終端的TCP實(shí)體在收到亂序包后會(huì)發(fā)送DupACK (重復(fù)確認(rèn))或者SACK (選擇性確認(rèn)),表示丟失某個(gè)數(shù)據(jù)包。 其實(shí),這些包在空口被分成很多小包進(jìn)行傳輸,由于某個(gè)小包的丟棄,導(dǎo)致整個(gè)大包不能遞交給終端的TCP實(shí)體,這時(shí)候終端的TCP實(shí)體就會(huì)發(fā)送Dup ACK或者SACK,要求RNC側(cè)的TCP代理重傳這包數(shù)據(jù)。而小包丟失后會(huì)在RLC (Radio Link Control,無線鏈路控制)層重傳,當(dāng)重傳的小包被終端正確接收后,整個(gè)大包就交給終端的TCP層。但是,如果這時(shí)候RNC的TCP層也重傳了這包數(shù)據(jù),就會(huì)導(dǎo)致這包在空口中重復(fù)傳輸,導(dǎo)致空口資源和帶寬的浪費(fèi)。Dup ACK或者SACK是TCP協(xié)議告知發(fā)送端數(shù)據(jù)丟失的兩種方式
連續(xù)收到3個(gè)Dup ACK (一共4個(gè)ACK具有相同的確認(rèn)號),表示確認(rèn)號開始的數(shù)據(jù)包接收端沒有收到。SACK是直接告訴發(fā)送端哪些數(shù)據(jù)收到了,哪些數(shù)據(jù)沒有收到。目前TCP代理對重傳的處理大多是按照TCP協(xié)議的重傳機(jī)制或者對TCP協(xié)議重傳機(jī)制的改進(jìn)。( I) TCP協(xié)議快速重傳算法
如果發(fā)送方在重傳計(jì)時(shí)器超時(shí)之前連續(xù)收到3個(gè)Dup ACK (一共4個(gè)ACK具有相同的確認(rèn)號),則說明極有可能某一包數(shù)據(jù)已經(jīng)丟失,此時(shí)立即啟動(dòng)快速重傳算法,也就是立即重傳這一包數(shù)據(jù)。(2)重傳定時(shí)器
當(dāng)TCP發(fā)送一個(gè)報(bào)文段時(shí),會(huì)根據(jù)RTT (Round-Trip Time,往返時(shí)間)創(chuàng)建一個(gè)針對特定報(bào)文段的重傳計(jì)時(shí)器。如果在計(jì)時(shí)器截止時(shí)間之前收到對這個(gè)報(bào)文段的確認(rèn),則撤銷這個(gè)定時(shí)器;如果在計(jì)時(shí)器截止時(shí)間之前沒有收到對這個(gè)報(bào)文段的確認(rèn),則重傳這個(gè)報(bào)文段,并清除定時(shí)器。(3)次冪重傳算法
這個(gè)算法是在快速重傳算法上的改進(jìn),如果重傳計(jì)時(shí)器超時(shí)之前收到3個(gè)Dup ACKC-共4個(gè)ACK具有相同的確認(rèn)號),則立即重傳這一包,后續(xù)繼續(xù)收到3個(gè)Dup ACK,不再重傳,直到收到8個(gè)ACK具有相同的確認(rèn)號,才重傳這一包,后續(xù)收到16個(gè)ACK具有相同的確認(rèn)號,才重傳這一包......從而,避免后續(xù)不必要的多次重傳。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在以下問題
以上三種方法,TCP協(xié)議快速重傳算法和重傳定時(shí)器是TCP協(xié)議的一部分,次冪重傳算法是基于快速重傳算法的一種改進(jìn)。這些方法在解決無線側(cè)是否需要重傳數(shù)據(jù)包的問題上有很大的局限性,具體分析如下
(I)TCP協(xié)議快速重傳算法,這個(gè)是TCP協(xié)議規(guī)定的實(shí)現(xiàn)方式,這種方式的弊端很明顯,在無線環(huán)境較差的情況下,TCP實(shí)體發(fā)送的數(shù)據(jù)包在RLC被分割成多個(gè)小包,如果丟失其中的部分小包,而重傳這些小包的過程需要一定的時(shí)間或者這些小包在空口反復(fù)的丟棄,都會(huì)導(dǎo)致終端發(fā)送大量的Dup ACK,如果按照快速重傳算法,整個(gè)數(shù)據(jù)包被不停的發(fā)送,浪費(fèi)帶寬和空口的資源。(2)重傳定時(shí)器的方法在無線環(huán)境中具有局限性,主要是RTT在空口是一個(gè)變化很大的值,根據(jù)以前的值預(yù)測往往不準(zhǔn)。如果RTT時(shí)間預(yù)測短了,會(huì)導(dǎo)致沒必要的重傳,浪費(fèi)帶寬和空口資源;如果RTT時(shí)間預(yù)測長了,首先實(shí)時(shí)性較差,其次發(fā)送窗滿,也會(huì)導(dǎo)致空口空閑,導(dǎo)致空口資源不必要的浪費(fèi)。(3)次冪重傳算法是對TCP協(xié)議快速重傳算法的改進(jìn),雖然可以減少TCP實(shí)體發(fā)送重復(fù)數(shù)據(jù)包的次數(shù),但是不能避免,而且,如果數(shù)據(jù)包再次丟失了,再次重傳數(shù)據(jù)包的實(shí)時(shí)性較差。綜上所述,這些方法都不可避免的帶來的空口帶寬資源浪費(fèi),而且還有可能引入實(shí)時(shí)性差等其他問題。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種無線側(cè)TCP數(shù)據(jù)重傳的方法和設(shè)備,解決現(xiàn)有的技術(shù)方案中在存在跨無線網(wǎng)絡(luò)TCP連接的系統(tǒng)中,無法合理解決無線側(cè)重傳處理,造成系統(tǒng)資源浪費(fèi)的問題。為達(dá)到上述目的,本發(fā)明實(shí)施例一方面提供了一種無線側(cè)TCP數(shù)據(jù)重傳的方法,至少包括以下步驟
當(dāng)TCP實(shí)體接收到終端設(shè)備發(fā)送的上行消息時(shí),所述TCP實(shí)體判斷所述上行消息中是否包含Dup ACK消息;
如果包含,所述TCP實(shí)體判斷RLC層是否已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息;
如果判斷結(jié)果為是,所述TCP實(shí)體對所述Dup ACK消息進(jìn)行計(jì)數(shù)累加;
所述TCP實(shí)體判斷所述Dup ACK消息當(dāng)前的計(jì)數(shù)值是否達(dá)到2 ;
如果達(dá)到,所述TCP實(shí)體重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包,并將所述Dup ACK消息的計(jì)數(shù)值置零。另一方面,本發(fā)明實(shí)施例還提供了一種網(wǎng)絡(luò)設(shè)備,作為TCP實(shí)體應(yīng)用于存在跨無線網(wǎng)絡(luò)的TCP連接的網(wǎng)絡(luò)系統(tǒng)中,至少包括
接收模塊,用于接收終端設(shè)備發(fā)送的上行消息;
第一判斷模塊,用于判斷所述接收模塊所接收到的上行消息中是否包含Dup ACK消
息;
第二判斷模塊,用于在所述第一判斷模塊的判斷結(jié)果為包含時(shí),判斷RLC層是否已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息;
計(jì)數(shù)模塊,用于在所述第二判斷模塊的判斷結(jié)果為是時(shí),對所述接收模塊所接收到的Dup ACK消息進(jìn)行計(jì)數(shù)累加;
第三判斷模塊,用于判斷所述計(jì)數(shù)模塊所計(jì)數(shù)的Dup ACK消息當(dāng)前的計(jì)數(shù)值是否達(dá)到
2 ;
處理模塊,用于在所述第三判斷模塊的判斷結(jié)果為達(dá)到時(shí),重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包,并通知所述計(jì)數(shù)模塊將所述Dup ACK消息的計(jì)數(shù)值置零。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例所提出的技術(shù)方案具有以下優(yōu)點(diǎn)
通過應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,在TCP實(shí)體接收到終端設(shè)備發(fā)送的包含Dup ACK消息的上行消息的情況下,如果TCP實(shí)體判斷RLC層已經(jīng)將該Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給終端設(shè)備,并接收到了終端設(shè)備返回的確認(rèn)消息,則對該Dup ACK消息進(jìn)行計(jì)數(shù)累加,并在計(jì)數(shù)值達(dá)到2時(shí),重傳該Dup ACK消息所對應(yīng)的數(shù)據(jù)包,從而,可以靈活運(yùn)用TCP實(shí)體數(shù)據(jù)本地緩沖及重傳的特點(diǎn),并結(jié)合RLC可靠傳輸?shù)奶匦?,對終端設(shè)備的DupACK進(jìn)行甄別,實(shí)現(xiàn)TCP層數(shù)據(jù)的快速重傳,在TCP代理的無線側(cè)準(zhǔn)確確定數(shù)據(jù)包是否需要TCP層的重傳,提高了 TCP的性能和空口資源利用率,避免了非必要的數(shù)據(jù)重傳所帶來的系統(tǒng)資源浪費(fèi)。
圖I為本發(fā)明實(shí)施例所提出的一種無線側(cè)TCP數(shù)據(jù)重傳的方法的流程示意 圖2為本發(fā)明實(shí)施例所提出的一種無線側(cè)TCP數(shù)據(jù)重傳的方法中的根據(jù)SACK消息進(jìn)行數(shù)據(jù)包重傳處理的流程示意 圖3為本發(fā)明實(shí)施例所提出的一種具體場景中的無線側(cè)TCP數(shù)據(jù)重傳的方法的流程示意 圖4為本發(fā)明實(shí)施例提出的一種網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施例方式如背景技術(shù)所述,TCP是為有線網(wǎng)絡(luò)Internet而研究、開發(fā)出來的可靠的傳輸協(xié)議。有線網(wǎng)絡(luò)的傳輸特性是低誤碼率、易擁塞性,因此,它的傳輸控制算法主要是基于網(wǎng)絡(luò) 的擁塞模型而設(shè)計(jì)的。但是,當(dāng)一個(gè)TCP連接跨越了有線和無線兩個(gè)網(wǎng)絡(luò)時(shí),TCP將不能適應(yīng)無線傳輸信道的高誤碼率、高時(shí)延抖動(dòng)、小區(qū)切換、亂序等特性,弓I起錯(cuò)誤的慢啟動(dòng)、擁塞避免和重傳,當(dāng)空口質(zhì)量迅速恢復(fù)的時(shí)候,TCP數(shù)據(jù)不能及時(shí)傳輸,造成帶寬資源利用率降低、有效帶寬下降和吞吐波動(dòng)等現(xiàn)象。為了提升上述跨越無線網(wǎng)絡(luò)TCP連接的傳輸性能,現(xiàn)有技術(shù)中比較通用的做法是在RNC側(cè)設(shè)置TCP代理,通過本地緩存、排序、流量控制、本地重傳、抑制Dup ACK等機(jī)制來增強(qiáng)無線側(cè)傳輸?shù)男阅?。但是,在無線環(huán)境中,由于空口環(huán)境變化大,會(huì)導(dǎo)致很多的亂序包,這些包的重傳可以在RLC解決,如果在TCP層重傳,會(huì)導(dǎo)致空口資源不必要的浪費(fèi)。
為了克服這樣的缺陷,本發(fā)明實(shí)施例提出了一種無線側(cè)TCP數(shù)據(jù)重傳的方法,主要解決在TCP代理的無線側(cè)如何確定數(shù)據(jù)包是否需要TCP層的重傳,以提高TCP的性能和空口資源利用率的問題。如圖I所示,為本發(fā)明實(shí)施例所提出的一種無線側(cè)TCP數(shù)據(jù)重傳的方法的流程示意圖,該方法具體包括以下步驟
步驟SlOl、當(dāng)TCP實(shí)體接收到終端設(shè)備發(fā)送的上行消息時(shí),所述TCP實(shí)體判斷所述上行消息中是否包含Dup ACK消息。如果包含,則執(zhí)行步驟S102 ;
如果不包含,則按照預(yù)設(shè)規(guī)則采用其它方式(例如,根據(jù)SACK消息或者其他信息進(jìn)行處理)進(jìn)行相應(yīng)的處理,具體的處理方式在后續(xù)說明中進(jìn)行描述,在此不再贅述。
步驟S102、所述TCP實(shí)體判斷RLC層是否已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。如果判斷結(jié)果為是,則表示相應(yīng)的數(shù)據(jù)包已經(jīng)在RLC層發(fā)送完畢,但是終端設(shè)備側(cè)并沒有正確接收,可能需要進(jìn)行相應(yīng)的重傳處理,需要通過后續(xù)過程進(jìn)行判斷,因此,執(zhí)行步驟S103 ;
如果判斷結(jié)果為否,則表示相應(yīng)的數(shù)據(jù)包在RLC層中還沒有發(fā)送完畢,或者,雖然RLC已經(jīng)發(fā)送,但是暫時(shí)還沒有收到終端設(shè)備側(cè)返回的正確接收的確認(rèn)消息,相應(yīng)的Dup ACK消息所提出的重傳請求有可能隨著數(shù)據(jù)包完成發(fā)送并接收到終端設(shè)備的確認(rèn)而解決,因此,可以暫時(shí)進(jìn)行相應(yīng)的重傳處理,在本實(shí)施例中,TCP實(shí)體進(jìn)一步執(zhí)行步驟S106。在實(shí)際的應(yīng)用場景中,本步驟的處理具體包括
(I)所述TCP實(shí)體確定所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的各分片包中,已經(jīng)由所述終端設(shè)備確認(rèn)的分片包的序列號。(2)所述TCP實(shí)體判斷所述序列號的最大值是否達(dá)到所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包在RLC層的終止序列號。如果達(dá)到,所述TCP實(shí)體確認(rèn)RLC層已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。相反,如果沒有達(dá)到,則表示相應(yīng)的數(shù)據(jù)包在RLC層中還沒有發(fā)送完畢,或者,雖然RLC已經(jīng)發(fā)送,但是暫時(shí)還沒有收到終端設(shè)備側(cè)返回的正確接收的確認(rèn)消息。步驟S103、所述TCP實(shí)體對所述Dup ACK消息進(jìn)行計(jì)數(shù)累加。步驟S104、所述TCP實(shí)體判斷所述Dup ACK消息當(dāng)前的計(jì)數(shù)值是否達(dá)到2。如果達(dá)到,則執(zhí)行步驟S105 ;
如果沒有達(dá)到,則表示TCP實(shí)體對于該Dup ACK消息所對應(yīng)的數(shù)據(jù)包暫時(shí)不需要進(jìn)行重傳處理,返回步驟SlOl。需要說明的是,在本實(shí)施例中,采用Dup ACK消息的計(jì)數(shù)值等于2的依據(jù)作為數(shù)據(jù)包重傳的觸發(fā)條件的思想在于
在上行數(shù)據(jù)中,ACK消息(包括Dup ACK消息)和RLC層確認(rèn)數(shù)據(jù)(包括終端設(shè)備側(cè)接收到數(shù)據(jù)包中的分片包后所發(fā)送的正確接收的確認(rèn)消息)經(jīng)常會(huì)在同一個(gè)FP (FrameProtocol,幀協(xié)議)幀中,基于這樣的原因,如果設(shè)置Dup ACK消息的計(jì)數(shù)值等于I即觸發(fā)數(shù)據(jù)包重傳,則會(huì)出現(xiàn)很大概率的重復(fù)多發(fā)。但是,如果Dup ACK消息的計(jì)數(shù)值等于2才觸發(fā)數(shù)據(jù)包重傳,則說明在上次收到到Dup ACK消息時(shí),RLC層已經(jīng)將該數(shù)據(jù)包全部發(fā)送給終端設(shè)備側(cè),并收到終端設(shè)備側(cè)的確認(rèn)。步驟S105、所述TCP實(shí)體重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包,并將所述DupACK消息的計(jì)數(shù)值置零。在實(shí)際的應(yīng)用場景中,所述TCP實(shí)體在進(jìn)行數(shù)據(jù)包重傳的過程中,還需要記錄進(jìn)行重傳的所述數(shù)據(jù)包在RLC層的終止序列號,以便將該終止序列號作為在后續(xù)處理過程中判斷是否對該數(shù)據(jù)包是否進(jìn)行重傳處理的依據(jù)。通過這樣的處理,完成了對該Dup ACK消息所對應(yīng)的數(shù)據(jù)包的重傳處理,本步驟執(zhí)行完成后,繼續(xù)執(zhí)行步驟S106。步驟S106、所述TCP實(shí)體將所述Dup ACK消息的計(jì)數(shù)值置零。
將Dup ACK消息的計(jì)數(shù)值置零后,可以對該Dup ACK消息開始新的計(jì)數(shù)過程,以便確定執(zhí)行新的重傳處理過程。需要進(jìn)一步說明的是,TCP實(shí)體完成根據(jù)Dup ACK消息進(jìn)行數(shù)據(jù)包重傳的處理過程,在此基礎(chǔ)上,TCP實(shí)體還可以按照預(yù)設(shè)規(guī)則采用其它方式(例如,根據(jù)SACK消息或者其他信息進(jìn)行處理)繼續(xù)進(jìn)行后續(xù)的處理,具體的處理方式在后續(xù)說明中進(jìn)行描述,在此不再贅述。需要說明的是,在步驟SlOl判斷結(jié)果為否,以及步驟S106完成之后,均提到了 TCP實(shí)體按照預(yù)設(shè)規(guī)則采用其它方式進(jìn)行處理的過程,在實(shí)際應(yīng)用中,這樣的預(yù)設(shè)規(guī)則所對應(yīng)的處理過程可以包括多種類型,其中,為了提高數(shù)據(jù)包重傳過程的全面性和準(zhǔn)確性,可以根據(jù)SACK消息進(jìn)行這樣的處理。具體的,當(dāng)所述TCP實(shí)體在步驟SlOl中判斷所述上行消息中不包含Dup ACK消息,或所述TCP實(shí)體在步驟S105中重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包之后,還包括以下的根據(jù)SACK消息進(jìn)行數(shù)據(jù)包重傳處理的過程,該過程的流程示意圖如圖2所示,具體包括以下步驟
步驟S201、所述TCP實(shí)體判斷自身所接收到的上行消息中是否包含SACK消息。如果包含,則執(zhí)行步驟S202 ;
如果不包含,則進(jìn)行其他處理或者直接停止當(dāng)前的數(shù)據(jù)包重傳處理。步驟S202、所述TCP實(shí)體按照所述SACK消息所對應(yīng)的各數(shù)據(jù)包的發(fā)送順序,選擇相應(yīng)的數(shù)據(jù)包。步驟S203、所述TCP實(shí)體判斷RLC層是否已經(jīng)將當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。如果判斷結(jié)果為是,則執(zhí)行步驟S204 ;
如果判斷結(jié)果為否,則執(zhí)行步驟S205。與前述的步驟S102相類似,本步驟中進(jìn)行判斷的過程具體如下
所述TCP實(shí)體確定所述當(dāng)前所選擇的數(shù)據(jù)包的各分片包中,已經(jīng)由所述終端設(shè)備確認(rèn)的分片包的序列號。所述TCP實(shí)體判斷所述序列號的最大值是否達(dá)到所述當(dāng)前所選擇的數(shù)據(jù)包在RLC層的終止序列號。如果達(dá)到,所述TCP實(shí)體確認(rèn)RLC層已經(jīng)將所述當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。步驟S204、所述TCP實(shí)體重傳所述當(dāng)前所選擇的數(shù)據(jù)包。在實(shí)際的應(yīng)用場景中,所述TCP實(shí)體在進(jìn)行數(shù)據(jù)包重傳的過程中,還需要記錄進(jìn)行重傳的所述數(shù)據(jù)包在RLC層的終止序列號,以便將該終止序列號作為在后續(xù)處理過程中判斷是否對該數(shù)據(jù)包是否進(jìn)行重傳處理的依據(jù)。步驟S205、所述TCP實(shí)體確認(rèn)當(dāng)前所選擇的數(shù)據(jù)包之后的所述SACK消息所對應(yīng)的各數(shù)據(jù)包均沒有發(fā)送完畢。
通過本步驟,可以快速的確定后續(xù)數(shù)據(jù)包的發(fā)送狀態(tài),避免分別對SACK消息所對應(yīng)的每個(gè)數(shù)據(jù)包進(jìn)行分別判斷所帶來的系統(tǒng)資源和處理時(shí)間的消耗,提高相應(yīng)的處理效率。需要說明的是,上述的根據(jù)SACK消息進(jìn)行處理的過程可以在前述的根據(jù)Dup ACK消息進(jìn)行重傳處理的基礎(chǔ)上,對終端設(shè)備側(cè)返回的信息進(jìn)行更加全面的處理,從而,更加準(zhǔn)確的確定是否對相應(yīng)的數(shù)據(jù)包進(jìn)行重傳處理。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例所提出的技術(shù)方案具有以下優(yōu)點(diǎn)
通過應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,在TCP實(shí)體接收到終端設(shè)備發(fā)送的包含Dup ACK消息的上行消息的情況下,如果TCP實(shí)體判斷RLC層已經(jīng)將該Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給終端設(shè)備,并接收到了終端設(shè)備返回的確認(rèn)消息,則對該Dup ACK消息進(jìn)行計(jì)數(shù)累加,并在計(jì)數(shù)值達(dá)到2時(shí),重傳該Dup ACK消息所對應(yīng)的數(shù)據(jù)包,從而,可以靈活運(yùn)用TCP實(shí)體數(shù)據(jù)本地緩沖及重傳的特點(diǎn),并結(jié)合RLC可靠傳輸?shù)奶匦裕瑢K端設(shè)備的DupACK進(jìn)行甄別,實(shí)現(xiàn)TCP層數(shù)據(jù)的快速重傳,在TCP代理的無線側(cè)準(zhǔn)確確定數(shù)據(jù)包是否需要TCP層的重傳,提高了 TCP的性能和空口資源利用率,避免了非必要的數(shù)據(jù)重傳所帶來的系統(tǒng)資源浪費(fèi)。下面,結(jié)合具體的應(yīng)用場景,對本發(fā)明實(shí)施例所提出的技術(shù)方案進(jìn)行說明。本發(fā)明實(shí)施例所提出的技術(shù)方案是一種靈活運(yùn)用TCP實(shí)體數(shù)據(jù)本地緩沖及重傳的特點(diǎn),并結(jié)合RLC (無線鏈路層)可靠傳輸?shù)奶匦裕瑢K端設(shè)備側(cè)發(fā)送的Dup ACK消息進(jìn)行甄別,以實(shí)現(xiàn)快速重傳TCP層數(shù)據(jù)的方法。如圖3所示,為本發(fā)明實(shí)施例所提出的一種具體應(yīng)用場景下的無線側(cè)TCP數(shù)據(jù)重傳的方法的流程示意圖,該方法具體包括以下步驟
步驟S301、TCP實(shí)體在RLC層進(jìn)行正常的數(shù)據(jù)包發(fā)送。在此過程中,TCP實(shí)體記錄下每個(gè)數(shù)據(jù)包在RLC層最后一個(gè)分片包的序列號,即前述的終止序列號。在實(shí)際的應(yīng)用場景中,本步驟的處理過程實(shí)際為
TCP層將數(shù)據(jù)包發(fā)送給RLC層,RLC將數(shù)據(jù)包分段形成多個(gè)分片包,并將最后一個(gè)分片包的序列號(EndSn,即前述的終止序列號)在TCP層記錄下來。步驟S302、TCP實(shí)體接收到終端設(shè)備發(fā)送的ACK消息,判斷是否是Dup ACK消息。如果判斷結(jié)果為是,則執(zhí)彳丁步驟S303 ;
如果判斷結(jié)果為否,則執(zhí)行步驟S308。步驟S303、TCP實(shí)體確定該Dup ACK消息所對應(yīng)的需要重傳的數(shù)據(jù)包的EndSn,以及RLC層收到的終端設(shè)備已經(jīng)確認(rèn)的該數(shù)據(jù)包的分片包序列號AckSn。
步驟S304、TCP實(shí)體將所確定的最大的AckSn和EndSn進(jìn)行比較。如果該AckSn大于等于EndSn,則執(zhí)行步驟S305 ;
如果該AckSn小于EndSn,則表示TCP實(shí)體對于該Dup ACK消息所對應(yīng)的數(shù)據(jù)包暫時(shí)不需要進(jìn)行重傳處理,對本次所接收到的ACK消息中的Dup ACK消息的處理過程結(jié)束,可以執(zhí)行步驟S308進(jìn)行SACK處理,或者進(jìn)行其他處理,在圖3中,表示為進(jìn)行其他處理。步驟S305、TCP實(shí)體將該Dup Ack消息所對應(yīng)的Dup Ack變量加I。步驟S306、TCP實(shí)體判斷該Dup Ack變量是否等于2。如果是,則執(zhí)行步驟S307 ; 如果否,則表示TCP實(shí)體對于該Dup ACK消息所對應(yīng)的數(shù)據(jù)包暫時(shí)不需要進(jìn)行重傳處理,對本次所接收到的ACK消息中的Dup ACK消息的處理過程結(jié)束,可以執(zhí)行步驟S308進(jìn)行SACK處理,或者進(jìn)行其他處理,在圖3中,表示為進(jìn)行其他處理。步驟S307、TCP實(shí)體重發(fā)該數(shù)據(jù)包給RLC層,并記錄新發(fā)送數(shù)據(jù)包的最后一個(gè)分片包的Sn,以更新該數(shù)據(jù)包的EndSn,同時(shí),將該Dup Ack變量清零。本步驟執(zhí)行完成后,為了實(shí)現(xiàn)更加準(zhǔn)確和全面的數(shù)據(jù)重傳處理,可以進(jìn)一步執(zhí)行步驟S308。步驟S308、TCP實(shí)體判斷當(dāng)前是否接收到SACK消息。如果有,則執(zhí)行步驟S309,進(jìn)行相應(yīng)的轉(zhuǎn)SACK處理流程;
如果沒有,則表示TCP實(shí)體不需要根據(jù)SACK消息對相應(yīng)的數(shù)據(jù)包進(jìn)行重傳處理,在實(shí)際的應(yīng)用場景中,此種情況下,可以進(jìn)行其他處理。步驟S309、TCP實(shí)體按照所述SACK消息所對應(yīng)的各數(shù)據(jù)包的發(fā)送順序,選擇相應(yīng)的數(shù)據(jù)包。步驟S310、TCP實(shí)體確定該數(shù)據(jù)包的EndSn,以及RLC層收到的終端設(shè)備已經(jīng)確認(rèn)的該數(shù)據(jù)包的分片包序列號AckSn。步驟S311、TCP實(shí)體將所確定的最大的AckSn和該數(shù)據(jù)包的EndSn進(jìn)行比較。如果該AckSn大于等于EndSn,則執(zhí)行步驟S312 ;
如果該AckSn小于EndSn,則執(zhí)行步驟S314。步驟S312、TCP實(shí)體重傳該數(shù)據(jù)包。在實(shí)際的應(yīng)用場景中,所述TCP實(shí)體在進(jìn)行數(shù)據(jù)包重傳的過程中,還需要記錄進(jìn)行重傳的所述數(shù)據(jù)包在RLC層的終止序列號,以便將該終止序列號作為在后續(xù)處理過程中判斷是否對該數(shù)據(jù)包是否進(jìn)行重傳處理的依據(jù)。本步驟執(zhí)行完成后,繼續(xù)執(zhí)行步驟S313。步驟S313、TCP實(shí)體判斷SACK消息對應(yīng)的需要重傳的數(shù)據(jù)包是否全部選擇完畢。如果判斷結(jié)果為否,則返回步驟S309 ;
如果判斷結(jié)果為是,則執(zhí)行其他處理。步驟S314、TCP實(shí)體確認(rèn)當(dāng)前所選擇的數(shù)據(jù)包之后的SACK消息所對應(yīng)的各數(shù)據(jù)包均沒有發(fā)送完畢。
本步驟完成后,直接執(zhí)行其他處理。
通過本步驟,可以快速的確定后續(xù)數(shù)據(jù)包的發(fā)送狀態(tài),避免分別對SACK消息所對應(yīng)的每個(gè)數(shù)據(jù)包進(jìn)行分別判斷所帶來的系統(tǒng)資源和處理時(shí)間的消耗,提高相應(yīng)的處理效率。需要說明的是,在實(shí)際的應(yīng)用場景中,上述的各步驟中所提及的其他處理,可以包括
返回步驟S302繼續(xù)等待后續(xù)的ACK消息,或者按照預(yù)設(shè)的處理規(guī)則進(jìn)行其他處理操作,該其他處理具體內(nèi)容的變化并不會(huì)影響本發(fā)明的保護(hù)范圍。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例所提出的技術(shù)方案具有以下優(yōu)點(diǎn)
通過應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,在TCP實(shí)體接收到終端設(shè)備發(fā)送的包含Dup ACK消息的上行消息的情況下,如果TCP實(shí)體判斷RLC層 已經(jīng)將該Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給終端設(shè)備,并接收到了終端設(shè)備返回的確認(rèn)消息,則對該Dup ACK消息進(jìn)行計(jì)數(shù)累加,并在計(jì)數(shù)值達(dá)到2時(shí),重傳該Dup ACK消息所對應(yīng)的數(shù)據(jù)包,從而,可以靈活運(yùn)用TCP實(shí)體數(shù)據(jù)本地緩沖及重傳的特點(diǎn),并結(jié)合RLC可靠傳輸?shù)奶匦裕瑢K端設(shè)備的DupACK進(jìn)行甄別,實(shí)現(xiàn)TCP層數(shù)據(jù)的快速重傳,在TCP代理的無線側(cè)準(zhǔn)確確定數(shù)據(jù)包是否需要TCP層的重傳,提高了 TCP的性能和空口資源利用率,避免了非必要的數(shù)據(jù)重傳所帶來的系統(tǒng)資源浪費(fèi)。為了實(shí)現(xiàn)本發(fā)明實(shí)施例的技術(shù)方案,本發(fā)明實(shí)施例還提供了一種網(wǎng)絡(luò)設(shè)備,作為TCP實(shí)體應(yīng)用于存在跨無線網(wǎng)絡(luò)的TCP連接的網(wǎng)絡(luò)系統(tǒng)中,其結(jié)構(gòu)示意圖如圖4所示,至少包括
接收模塊41,用于接收終端設(shè)備發(fā)送的上行消息;
第一判斷模塊42,用于判斷所述接收模塊41所接收到的上行消息中是否包含Dup ACK消息;
第二判斷模塊43,用于在所述第一判斷模塊42的判斷結(jié)果為包含時(shí),判斷RLC層是否已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息;
計(jì)數(shù)模塊44,用于在所述第二判斷模塊43的判斷結(jié)果為是時(shí),對所述接收模塊41所接收到的Dup ACK消息進(jìn)行計(jì)數(shù)累加;
第三判斷模塊45,用于判斷所述計(jì)數(shù)模塊44所計(jì)數(shù)的Dup ACK消息當(dāng)前的計(jì)數(shù)值是否達(dá)到2 ;
處理模塊46,用于在所述第三判斷模塊45的判斷結(jié)果為達(dá)到時(shí),重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包,并通知所述計(jì)數(shù)模塊44將所述Dup ACK消息的計(jì)數(shù)值置零。其中,所述第二判斷模塊43,具體用于
確定所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的各分片包中,已經(jīng)由所述終端設(shè)備確認(rèn)的分片包的序列號;
判斷所述序列號的最大值是否達(dá)到所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包在RLC層的終止序列號;
如果達(dá)到,確認(rèn)RLC層已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。進(jìn)一步的,所述計(jì)數(shù)模塊44,還用于在所述第二判斷模塊43的判斷結(jié)果為否時(shí),將所述Dup ACK消息的計(jì)數(shù)值置零。需要說明的是,所述處理模塊46,還用于在重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的過程中,記錄進(jìn)行重傳的所述數(shù)據(jù)包在RLC層的終止序列號。另一方面,該網(wǎng)絡(luò)設(shè)備還包括第四判斷模塊47、選擇模塊48和第五判斷模塊49 所述第四判斷模塊47,用于在所述第一判斷模塊42判斷所述上行消息中不包含Dup
ACK消息,或所述處理模塊46重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包之后,判斷所述上行消息中是否包含SACK消息;
所述選擇模塊48,用于在所述第四判斷模塊47的判斷結(jié)果為包含時(shí),按照所述SACK消息所對應(yīng)的各數(shù)據(jù)包的發(fā)送順序,選擇相應(yīng)的數(shù)據(jù)包;
所述第五判斷模塊49,用于判斷RLC層是否已經(jīng)將所述選擇模塊48當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息;
所述處理模塊46,還用于在所述第五判斷模塊49的判斷結(jié)果為是時(shí),重傳所述當(dāng)前所 選擇的數(shù)據(jù)包。其中,所述第五判斷模塊49,具體用于
確定所述選擇模塊48當(dāng)前所選擇的數(shù)據(jù)包的各分片包中,已經(jīng)由所述終端設(shè)備確認(rèn)的分片包的序列號;
判斷所述序列號的最大值是否達(dá)到所述當(dāng)前所選擇的數(shù)據(jù)包在RLC層的終止序列號;如果達(dá)到,確認(rèn)RLC層已經(jīng)將所述當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。進(jìn)一步的,所述處理模塊46,還用于在所述第五判斷模塊49的判斷結(jié)果為否時(shí),確認(rèn)所述選擇模塊48當(dāng)前所選擇的數(shù)據(jù)包之后的所述SACK消息所對應(yīng)的各數(shù)據(jù)包均沒有發(fā)送完畢。在實(shí)際的應(yīng)用場景中,所述處理模塊46,還用于在重傳所述選擇模塊48當(dāng)前所選擇的數(shù)據(jù)包的過程中,記錄進(jìn)行重傳的所述數(shù)據(jù)包在RLC層的終止序列號。與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例所提出的技術(shù)方案具有以下優(yōu)點(diǎn)
通過應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,在TCP實(shí)體接收到終端設(shè)備發(fā)送的包含Dup ACK消息的上行消息的情況下,如果TCP實(shí)體判斷RLC層已經(jīng)將該Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給終端設(shè)備,并接收到了終端設(shè)備返回的確認(rèn)消息,則對該Dup ACK消息進(jìn)行計(jì)數(shù)累加,并在計(jì)數(shù)值達(dá)到2時(shí),重傳該Dup ACK消息所對應(yīng)的數(shù)據(jù)包,從而,可以靈活運(yùn)用TCP實(shí)體數(shù)據(jù)本地緩沖及重傳的特點(diǎn),并結(jié)合RLC可靠傳輸?shù)奶匦?,對終端設(shè)備的DupACK進(jìn)行甄別,實(shí)現(xiàn)TCP層數(shù)據(jù)的快速重傳,在TCP代理的無線側(cè)準(zhǔn)確確定數(shù)據(jù)包是否需要TCP層的重傳,提高了 TCP的性能和空口資源利用率,避免了非必要的數(shù)據(jù)重傳所帶來的系統(tǒng)資源浪費(fèi)。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明實(shí)施例的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是⑶-ROM,U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或網(wǎng)絡(luò)側(cè)設(shè)備等)執(zhí)行本發(fā)明實(shí)施例各個(gè)實(shí)施場景所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施場景的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明實(shí)施例所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施場景中的裝置中的模塊可以按照實(shí)施場景描述進(jìn)行分布于實(shí)施場景的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施場景的一個(gè)或多個(gè)裝置中。上述實(shí)施場景的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。上述本發(fā)明實(shí)施例序號僅僅為了描述,不代表實(shí)施場景的優(yōu)劣。以上公開的僅為本發(fā)明實(shí)施例的幾個(gè)具體實(shí)施場景,但是,本發(fā)明實(shí)施例并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng) 落入本發(fā)明實(shí)施例的業(yè)務(wù)限制范圍。
權(quán)利要求
1.一種無線側(cè)TCP數(shù)據(jù)重傳的方法,其特征在于,至少包括以下步驟 當(dāng)TCP實(shí)體接收到終端設(shè)備發(fā)送的上行消息時(shí),所述TCP實(shí)體判斷所述上行消息中是否包含Dup ACK消息; 如果包含,所述TCP實(shí)體判斷RLC層是否已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息; 如果判斷結(jié)果為是,所述TCP實(shí)體對所述Dup ACK消息進(jìn)行計(jì)數(shù)累加; 所述TCP實(shí)體判斷所述Dup ACK消息當(dāng)前的計(jì)數(shù)值是否達(dá)到2 ; 如果達(dá)到,所述TCP實(shí)體重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包,并將所述Dup ACK消息的計(jì)數(shù)值置零。
2.如權(quán)利要求I所述的方法,其特征在于,所述TCP實(shí)體判斷RLC層是否已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息,具體包括 所述TCP實(shí)體確定所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的各分片包中,已經(jīng)由所述終端設(shè)備確認(rèn)的分片包的序列號; 所述TCP實(shí)體判斷所述序列號的最大值是否達(dá)到所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包在RLC層的終止序列號; 如果達(dá)到,所述TCP實(shí)體確認(rèn)RLC層已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。
3.如權(quán)利要求I所述的方法,其特征在于,所述TCP實(shí)體判斷RLC層是否已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息之后,還包括 如果判斷結(jié)果為否,所述TCP實(shí)體將所述Dup ACK消息的計(jì)數(shù)值置零。
4.如權(quán)利要求I所述的方法,其特征在于,所述TCP實(shí)體重傳所述DupACK消息所對應(yīng)的數(shù)據(jù)包的過程中,還包括 所述TCP實(shí)體記錄進(jìn)行重傳的所述數(shù)據(jù)包在RLC層的終止序列號。
5.如權(quán)利要求I所述的方法,其特征在于,當(dāng)所述TCP實(shí)體判斷所述上行消息中不包含Dup ACK消息,或所述TCP實(shí)體重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包之后,還包括 所述TCP實(shí)體判斷所述上行消息中是否包含SACK消息; 如果包含,所述TCP實(shí)體按照所述SACK消息所對應(yīng)的各數(shù)據(jù)包的發(fā)送順序,選擇相應(yīng)的數(shù)據(jù)包; 所述TCP實(shí)體判斷RLC層是否已經(jīng)將當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息; 如果判斷結(jié)果為是,所述TCP實(shí)體重傳所述當(dāng)前所選擇的數(shù)據(jù)包。
6.如權(quán)利要求5所述的方法,其特征在于,所述TCP實(shí)體判斷RLC層是否已經(jīng)將當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息,具體包括 所述TCP實(shí)體確定所述當(dāng)前所選擇的數(shù)據(jù)包的各分片包中,已經(jīng)由所述終端設(shè)備確認(rèn)的分片包的序列號; 所述TCP實(shí)體判斷所述序列號的最大值是否達(dá)到所述當(dāng)前所選擇的數(shù)據(jù)包在RLC層的終止序列號; 如果達(dá)到,所述TCP實(shí)體確認(rèn)RLC層已經(jīng)將所述當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。
7.如權(quán)利要求5所述的方法,其特征在于,所述TCP實(shí)體判斷RLC層是否已經(jīng)將當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息之后,還包括 如果判斷結(jié)果為否,所述TCP實(shí)體確認(rèn)當(dāng)前所選擇的數(shù)據(jù)包之后的所述SACK消息所對應(yīng)的各數(shù)據(jù)包均沒有發(fā)送完畢。
8.如權(quán)利要求5所述的方法,其特征在于,所述TCP實(shí)體重傳所述當(dāng)前所選擇的數(shù)據(jù)包的過程中,還包括 所述TCP實(shí)體記錄進(jìn)行重傳的所述數(shù)據(jù)包在RLC層的終止序列號。
9.一種網(wǎng)絡(luò)設(shè)備,作為TCP實(shí)體應(yīng)用于存在跨無線網(wǎng)絡(luò)的TCP連接的網(wǎng)絡(luò)系統(tǒng)中,其特征在于,包括 接收模塊,用于接收終端設(shè)備發(fā)送的上行消息; 第一判斷模塊,用于判斷所述接收模塊所接收到的上行消息中是否包含Dup ACK消息; 第二判斷模塊,用于在所述第一判斷模塊的判斷結(jié)果為包含時(shí),判斷RLC層是否已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息; 計(jì)數(shù)模塊,用于在所述第二判斷模塊的判斷結(jié)果為是時(shí),對所述接收模塊所接收到的Dup ACK消息進(jìn)行計(jì)數(shù)累加; 第三判斷模塊,用于判斷所述計(jì)數(shù)模塊所計(jì)數(shù)的Dup ACK消息當(dāng)前的計(jì)數(shù)值是否達(dá)到2 ; 處理模塊,用于在所述第三判斷模塊的判斷結(jié)果為達(dá)到時(shí),重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包,并通知所述計(jì)數(shù)模塊將所述Dup ACK消息的計(jì)數(shù)值置零。
10.如權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述第二判斷模塊,具體用于 確定所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的各分片包中,已經(jīng)由所述終端設(shè)備確認(rèn)的分片包的序列號; 判斷所述序列號的最大值是否達(dá)到所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包在RLC層的終止序列號; 如果達(dá)到,確認(rèn)RLC層已經(jīng)將所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。
11.如權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述計(jì)數(shù)模塊,還用于在所述第二判斷模塊的判斷結(jié)果為否時(shí),將所述Dup ACK消息的計(jì)數(shù)值置零。
12.如權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理模塊,還用于 在重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包的過程中,記錄進(jìn)行重傳的所述數(shù)據(jù)包在RLC層的終止序列號。
13.如權(quán)利要求9所述的網(wǎng)絡(luò)設(shè)備,其特征在于,還包括第四判斷模塊、選擇模塊和第五判斷模塊 所述第四判斷模塊,用于在所述第一判斷模塊判斷所述上行消息中不包含Dup ACK消息,或所述處理模塊重傳所述Dup ACK消息所對應(yīng)的數(shù)據(jù)包之后,判斷所述上行消息中是否包含SACK消息; 所述選擇模塊,用于在所述第四判斷模塊的判斷結(jié)果為包含時(shí),按照所述SACK消息所對應(yīng)的各數(shù)據(jù)包的發(fā)送順序,選擇相應(yīng)的數(shù)據(jù)包; 所述第五判斷模塊,用于判斷RLC層是否已經(jīng)將所述選擇模塊當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息; 所述處理模塊,還用于在所述第五判斷模塊的判斷結(jié)果為是時(shí),重傳所述當(dāng)前所選擇的數(shù)據(jù)包。
14.如權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述第五判斷模塊,具體用于 確定所述選擇模塊當(dāng)前所選擇的數(shù)據(jù)包的各分片包中,已經(jīng)由所述終端設(shè)備確認(rèn)的分片包的序列號; 判斷所述序列號的最大值是否達(dá)到所述當(dāng)前所選擇的數(shù)據(jù)包在RLC層的終止序列號;如果達(dá)到,確認(rèn)RLC層已經(jīng)將所述當(dāng)前所選擇的數(shù)據(jù)包的所有分片包發(fā)送給所述終端設(shè)備,并接收到了所述終端設(shè)備返回的確認(rèn)消息。
15.如權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理模塊,還用于 在所述第五判斷模塊的判斷結(jié)果為否時(shí),確認(rèn)所述選擇模塊當(dāng)前所選擇的數(shù)據(jù)包之后的所述SACK消息所對應(yīng)的各數(shù)據(jù)包均沒有發(fā)送完畢。
16.如權(quán)利要求13所述的網(wǎng)絡(luò)設(shè)備,其特征在于,所述處理模塊,還用于 在重傳所述選擇模塊當(dāng)前所選擇的數(shù)據(jù)包的過程中,記錄進(jìn)行重傳的所述數(shù)據(jù)包在RLC層的終止序列號。
全文摘要
本發(fā)明實(shí)施例公開了一種無線側(cè)TCP數(shù)據(jù)重傳的方法和設(shè)備,通過應(yīng)用本發(fā)明實(shí)施例的技術(shù)方案,在TCP實(shí)體接收到終端設(shè)備發(fā)送的包含DupACK消息的上行消息的情況下,如果TCP實(shí)體判斷RLC層已經(jīng)將該DupACK消息所對應(yīng)的數(shù)據(jù)包的所有分片包發(fā)送給終端設(shè)備,并接收到了終端設(shè)備返回的確認(rèn)消息,則對該DupACK消息進(jìn)行計(jì)數(shù)累加,并在計(jì)數(shù)值達(dá)到2時(shí),重傳該DupACK消息所對應(yīng)的數(shù)據(jù)包,從而,可以靈活運(yùn)用TCP實(shí)體數(shù)據(jù)本地緩沖及重傳的特點(diǎn),并結(jié)合RLC可靠傳輸?shù)奶匦?,對終端設(shè)備的DupACK進(jìn)行甄別,實(shí)現(xiàn)TCP層數(shù)據(jù)的快速重傳,在TCP代理的無線側(cè)準(zhǔn)確確定數(shù)據(jù)包是否需要TCP層的重傳,提高了TCP的性能和空口資源利用率,避免了非必要的數(shù)據(jù)重傳所帶來的系統(tǒng)資源浪費(fèi)。
文檔編號H04L1/16GK102664718SQ20121012985
公開日2012年9月12日 申請日期2012年4月28日 優(yōu)先權(quán)日2012年4月28日
發(fā)明者柴新旺 申請人:大唐移動(dòng)通信設(shè)備有限公司