一種數(shù)據(jù)重傳的方法、接收端及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)重傳的方法、接收端及系統(tǒng)。該方法包括:接收發(fā)送端發(fā)送的數(shù)據(jù)包;當(dāng)所述數(shù)據(jù)包中有數(shù)據(jù)包丟失時,記錄第一個丟失的數(shù)據(jù)包的序號,將所述第一個丟失的數(shù)據(jù)包的序號作為起始丟包的序號,根據(jù)所述第一個丟失的數(shù)據(jù)包之后的丟包情況生成對應(yīng)的預(yù)設(shè)長度的丟包位圖;根據(jù)所述起始丟包的序號和所述丟包位圖生成選擇性重傳信息,將所述選擇性重傳信息發(fā)送給發(fā)送端,使得發(fā)送端根據(jù)所述選擇性重傳信息進(jìn)行指定數(shù)據(jù)的重傳。本發(fā)明提供的技術(shù)方案能夠解決現(xiàn)有的數(shù)據(jù)重傳方法存在選擇性重傳的數(shù)據(jù)包過大,以及重傳效率低下的問題。
【專利說明】一種數(shù)據(jù)重傳的方法、接收端及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)【技術(shù)領(lǐng)域】,特別是涉及一種數(shù)據(jù)重傳的方法、接收端及系統(tǒng)。
【背景技術(shù)】
[0002]在當(dāng)今的互聯(lián)網(wǎng)時代,數(shù)據(jù)及信息的互通是為關(guān)鍵的一部分內(nèi)容。數(shù)據(jù)在傳輸?shù)倪^程中,需要對丟包的數(shù)據(jù)做數(shù)據(jù)重傳以保證數(shù)據(jù)的完整性。
[0003]對于數(shù)據(jù)的重傳,有兩個關(guān)鍵的因素:
[0004]一個是指定性重傳。即重傳要做到精準(zhǔn),以保證所有的重傳都是有效的重傳,這樣才能保證傳輸數(shù)據(jù)中都是有效數(shù)據(jù)。再一個就是如何進(jìn)行重傳。重傳需要根據(jù)對端的丟包反饋進(jìn)行重傳,反饋的數(shù)據(jù)也跑在用戶的網(wǎng)絡(luò)上,所以反饋的設(shè)計直接決定重傳的效率和重傳交互中帶寬的占耗。
[0005]現(xiàn)有技術(shù)中,在P2P傳輸中,很多NAT后的終端無法直接建立TCP連接,使得UDP打洞成為首選的方案。然而當(dāng)傳輸?shù)臄?shù)據(jù)需要保持完整性時,而UDP本身又是不可靠傳輸。因此,在目前的方案中,通常采用選擇性重傳ARQ作為數(shù)據(jù)重傳的方案。其中,在選擇性重傳中,接收端在發(fā)現(xiàn)一個數(shù)據(jù)包丟失時,向發(fā)送端發(fā)送一個指示該數(shù)據(jù)包丟失的反饋信息,當(dāng)發(fā)送方接收到接收方的反饋信息時,發(fā)送方只發(fā)送該反饋信息中標(biāo)識的數(shù)據(jù)包。即接收端發(fā)現(xiàn)N個數(shù)據(jù)包丟失后,會反饋對應(yīng)N個數(shù)據(jù)包的的N個否定應(yīng)答NACK??梢姡跀?shù)據(jù)出錯較大的情況下,會導(dǎo)致是選擇性重傳的數(shù)據(jù)包大,并且會導(dǎo)致重傳效率低。
[0006]綜上所述,現(xiàn)有的數(shù)據(jù)重傳方法存在選擇性重傳的數(shù)據(jù)包過大,以及重傳效率低下的問題。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供了一種數(shù)據(jù)重傳的方法、接收端及系統(tǒng)。本發(fā)明提供的技術(shù)方案能夠解決現(xiàn)有的數(shù)據(jù)重傳方法存在選擇性重傳的數(shù)據(jù)包過大,以及重傳效率低下的問題。
[0008]本發(fā)明提供了一種數(shù)據(jù)重傳方法,該方法包括:
[0009]接收發(fā)送端發(fā)送的數(shù)據(jù)包;
[0010]當(dāng)所述數(shù)據(jù)包中有數(shù)據(jù)包丟失時,記錄第一個丟失的數(shù)據(jù)包的序號,將所述第一個丟失的數(shù)據(jù)包的序號作為起始丟包的序號,根據(jù)所述第一個丟失的數(shù)據(jù)包之后的丟包情況生成對應(yīng)的預(yù)設(shè)長度的丟包位圖;
[0011]根據(jù)所述起始丟包的序號和所述丟包位圖生成選擇性重傳信息,將所述選擇性重傳信息發(fā)送給發(fā)送端,使得發(fā)送端根據(jù)所述選擇性重傳信息進(jìn)行指定數(shù)據(jù)的重傳。
[0012]在上述方法中,所述根據(jù)所述第一個丟失的數(shù)據(jù)包之后的丟包情況生成對應(yīng)的預(yù)設(shè)長度的丟包位圖之后,所述方法還包括:
[0013]根據(jù)預(yù)設(shè)條件對所述丟包位圖進(jìn)行優(yōu)化。
[0014]在上述方法中,所述根據(jù)預(yù)設(shè)條件對所述丟包位圖進(jìn)行優(yōu)化包括:
[0015]當(dāng)所述丟包位圖中自第m位到最后一位的比特位相同,且自第m位到最后一位對應(yīng)的標(biāo)識為正確接收時,將從第m位到最后一位的比特位刪除,保留第I位至第m-Ι位;其中,m為大于3的自然數(shù)。
[0016]在上述方法中,所述根據(jù)所述起始丟包的序號和所述丟包位圖生成選擇性重傳信息包括:
[0017]將所述起始丟包的序號轉(zhuǎn)換為二進(jìn)制;
[0018]將所述轉(zhuǎn)換后起始丟包的序號和所述丟包位圖生成選擇性重選信息。
[0019]在上述方法中,所述丟包位圖的長度為2n個比特位,對應(yīng)連續(xù)的2n個數(shù)據(jù)包,η為正整數(shù);
[0020]當(dāng)所述丟包位圖中用“O”標(biāo)識對應(yīng)的數(shù)據(jù)包丟失,用“ I”標(biāo)識對應(yīng)的數(shù)據(jù)包沒有丟失,被正確接收時,所述丟包位圖中的第I位用于標(biāo)識所述第一個丟失的數(shù)據(jù)包的前一位已經(jīng)被正常接收的數(shù)據(jù)包的丟包情況;
[0021]或者,
[0022]當(dāng)所述丟包位圖中用“ I ”標(biāo)識對應(yīng)的數(shù)據(jù)包丟失,用“O”標(biāo)識對應(yīng)的數(shù)據(jù)包沒有丟失,被正確接收時,所述丟包位圖中的第I位用于標(biāo)識所述第一個丟失的數(shù)據(jù)包的丟包情況。
[0023]本發(fā)明還公開了一種接收端,所述接收端包括:
[0024]接收模塊,用于接收發(fā)送端發(fā)送的數(shù)據(jù)包;
[0025]處理模塊,用于當(dāng)所述數(shù)據(jù)包中有數(shù)據(jù)包丟失時,記錄第一個丟失的數(shù)據(jù)包的序號,將所述第一個丟失的數(shù)據(jù)包的序號作為起始丟包的序號,根據(jù)所述第一個丟失的數(shù)據(jù)包之后的丟包情況生成對應(yīng)的預(yù)設(shè)長度的丟包位圖;
[0026]發(fā)送模塊,用于根據(jù)所述起始丟包的序號和所述丟包位圖生成選擇性重傳信息,將所述選擇性重傳信息發(fā)送給發(fā)送端,使得發(fā)送端根據(jù)所述選擇性重傳信息進(jìn)行指定數(shù)據(jù)的重傳。
[0027]在上述接收端中,所述接收端還包括:
[0028]優(yōu)化模塊,用于根據(jù)預(yù)設(shè)條件對所述丟包位圖進(jìn)行優(yōu)化。
[0029]在上述接收端中,所述優(yōu)化模塊包括:
[0030]刪除單元,用于當(dāng)所述丟包位圖中自第m位到最后一位的比特位相同,且自第m位到最后一位對應(yīng)的標(biāo)識為正確接收時,將從第m位到最后一位的比特位刪除,保留第I位至第m-Ι位;其中,m為大于3的自然數(shù)。
[0031]在上述接收端中,所述發(fā)送模塊包括:
[0032]轉(zhuǎn)換單元,用于將所述起始丟包的序號轉(zhuǎn)換為二進(jìn)制;
[0033]生成單元,用于將所述轉(zhuǎn)換后起始丟包的序號和所述丟包位圖生成選擇性重選信肩、O
[0034]本發(fā)明還提供了一種數(shù)據(jù)重傳系統(tǒng),所述系統(tǒng)包括發(fā)送端和上述中任意一項(xiàng)所述的接收端;
[0035]所述發(fā)送端,用于向所述接收端發(fā)送數(shù)據(jù)包,根據(jù)所述接收端發(fā)送的選擇性重傳信息進(jìn)行數(shù)據(jù)重傳;
[0036]其中,所述發(fā)送端,還用于接收到所述選擇性重傳信息之后,根據(jù)所述選擇性重傳信息將對應(yīng)的需要重傳的數(shù)據(jù)包放入重傳隊(duì)列中;如果在所述重傳隊(duì)列中存在重傳數(shù)據(jù)包的序號小于所述選擇性重傳信息中的起始丟包序號時,將所述重傳數(shù)據(jù)包退出所述重傳隊(duì)列。
[0037]綜上所述,本發(fā)明提供的技術(shù)方案,接收端在接收發(fā)送端發(fā)送的數(shù)據(jù)包的過程中,當(dāng)接收端發(fā)現(xiàn)有丟包時,將第一個丟包的序號作為起始丟包的序號,并根據(jù)后續(xù)的丟包情況生成對應(yīng)的丟包位圖;再將該選擇性信息反饋給發(fā)送端,使得發(fā)送端根據(jù)該選擇性重傳信息進(jìn)行數(shù)據(jù)重傳。由于本發(fā)明中采用了丟包位圖,并通過起始丟包的序號對后續(xù)的連續(xù)多個數(shù)據(jù)包的接收情況進(jìn)行標(biāo)識。減少了接收端反饋丟包時所需傳輸?shù)男帕畲笮?,進(jìn)而提高了重傳的效率。此外,還可以對丟包位圖進(jìn)行進(jìn)一步的優(yōu)化,使得選擇性重傳信息所占的信令資源更小。
【專利附圖】
【附圖說明】
[0038]圖1是本發(fā)明中一種數(shù)據(jù)重傳方法的流程圖;
[0039]圖2是本發(fā)明中一種接收端的結(jié)構(gòu)示意圖;
[0040]圖3是本發(fā)明中一種接收端的詳細(xì)結(jié)構(gòu)示意圖;
[0041]圖4是本發(fā)明中一種數(shù)據(jù)重傳系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0042]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0043]圖1是本發(fā)明中一種數(shù)據(jù)重傳方法的流程圖;本實(shí)施例中,發(fā)送端和接收端可以在進(jìn)行數(shù)據(jù)傳輸之前,預(yù)先可以約定選擇性重傳信息為如下描述的結(jié)構(gòu)。如圖1所示,該方法包括如下步驟:
[0044]步驟101,接收發(fā)送端發(fā)送的數(shù)據(jù)包。
[0045]步驟102,當(dāng)數(shù)據(jù)包中有數(shù)據(jù)包丟失時,記錄第一個丟失的數(shù)據(jù)包的序號,將第一個丟失的數(shù)據(jù)包的序號作為起始丟包的序號,根據(jù)所述第一個丟失的數(shù)據(jù)包之后的丟包情況生成對應(yīng)的預(yù)設(shè)長度的丟包位圖。
[0046]步驟103,根據(jù)所述起始丟包的序號和所述丟包位圖生成選擇性重傳信息,將所述選擇性重傳信息發(fā)送給發(fā)送端,使得發(fā)送端根據(jù)所述選擇性重傳信息進(jìn)行指定數(shù)據(jù)的重傳。
[0047]在本發(fā)明的一種實(shí)施例中,為了更好的對丟包進(jìn)行記錄,設(shè)定丟包位圖的長度為2"個比特位,對應(yīng)連續(xù)的2n個數(shù)據(jù)包;并記錄第一個丟失的數(shù)據(jù)包的序號,將接收端檢測到的第一丟失的數(shù)據(jù)包的序號作為起始丟包的序號,則在選擇性重傳信息中,丟包位圖可以表示自第一個丟失的數(shù)據(jù)包開始的后續(xù)連續(xù)數(shù)據(jù)包的丟包情況。其中η為正整數(shù)。
[0048]在上述實(shí)施例中,可以根據(jù)數(shù)據(jù)包的總長度設(shè)置η的大小。舉例為可以設(shè)置2η的值小于所要接收的數(shù)據(jù)包的總長度。
[0049]較佳的,在本發(fā)明的一種具體實(shí)施例中,η的值優(yōu)選為5,即丟包位圖為32位的丟包位圖。其優(yōu)點(diǎn)在于,不僅便于接收端能夠快速地將對應(yīng)的丟包在丟包位圖中標(biāo)識,也使得發(fā)送端能夠根據(jù)該丟包位圖較快的識別出對應(yīng)的丟失的數(shù)據(jù)包。間接的加快了發(fā)送端重傳的效率。并且當(dāng)需要接收的數(shù)據(jù)包的個數(shù)大于32時,可以設(shè)置依次發(fā)送多個選擇性重傳信息。其中,相連兩個選擇性重傳信息中的起始丟包的序號之差至少大于32。發(fā)送端根據(jù)接收到的選擇性重傳信息將需要重傳的數(shù)據(jù)包放置到重傳隊(duì)列中。
[0050]在本發(fā)明的一種實(shí)施例中,在丟包位圖中用“O”標(biāo)識對應(yīng)的數(shù)據(jù)包丟失,用“ I ”標(biāo)識對應(yīng)的數(shù)據(jù)包沒有丟失,被正確接收時,丟包位圖中的第I位用于標(biāo)識第一個丟失的數(shù)據(jù)包的前一位已經(jīng)被正常接收的數(shù)據(jù)包的丟包情況。即在比特位圖中的第一位為I。
[0051]在本發(fā)明的另一種實(shí)施例中,在丟包位圖中用“I”標(biāo)識對應(yīng)的數(shù)據(jù)包丟失,用“O”標(biāo)識對應(yīng)的數(shù)據(jù)包沒有丟失,被正確接收時述丟包位圖中的第I位用于標(biāo)識第一個丟失的數(shù)據(jù)包的丟包情況。即在比特位圖中的第一位為I
[0052]實(shí)施例一,在丟包位圖中,用“ I”標(biāo)識對應(yīng)的數(shù)據(jù)包丟失,用“O”標(biāo)識對應(yīng)的數(shù)據(jù)包被正確接收;丟包位圖中的第I位用于標(biāo)識所述第一個丟包。則一個int的32個比特位表示起始丟包的序號之后的31個數(shù)據(jù)包的到達(dá)情況。其中,第k位(k〈32)為O,表示序號為[起始丟包序號+(k-Ι)]這個數(shù)據(jù)包的已經(jīng)收到,如果為1,表示這個數(shù)據(jù)包丟失。當(dāng)依次丟包的序號為14、16、18。所對應(yīng)的丟包位圖為:1010 1000 0000 0000 0000 0000 00000000,起始丟包的序號為:14。
[0053]實(shí)施例二,在丟包位圖中,用“O”標(biāo)識對應(yīng)的數(shù)據(jù)包丟失,用“ I”標(biāo)識對應(yīng)的數(shù)據(jù)包被正確接收。丟包位圖中的第I位用于標(biāo)識第一個丟包之前的已經(jīng)被正確接收的數(shù)據(jù)包。則一個int的32個比特位表示起始丟包的序號之后的31個數(shù)據(jù)包的到達(dá)情況。其中,第k位(k〈32)為1,表示序號為[(起始丟包序號_l) + (k-l)]這個數(shù)據(jù)包的已經(jīng)收到,如果為0,表示這個數(shù)據(jù)包丟失。則依次丟包的序號為14、16、18。所對應(yīng)的丟包位圖為:10101111 1111 1111 1111 1111 1111 1111 1111,起始丟包的序號為:14。
[0054]在本發(fā)明中,為了減少發(fā)送的丟包位圖的總長度,提高信息傳輸?shù)男?。在生成預(yù)設(shè)對應(yīng)長度的丟包位圖之后,還可以根據(jù)預(yù)設(shè)條件對所述丟包位圖進(jìn)行優(yōu)化,以減少丟包位圖的總長度。
[0055]在本發(fā)明的一種較佳實(shí)施例中,根據(jù)預(yù)設(shè)條件對所述丟包位圖進(jìn)行優(yōu)化具體為:當(dāng)丟包位圖中自第m位到最后一位的比特位相同,且自第m位到最后一位對應(yīng)的標(biāo)識為正確接收時,將從第m位到最后一位的比特位刪除,保留第I位至第m-Ι位;其中,m為大于3的自然數(shù)。即可以將標(biāo)識為正確接收的比特位刪除,以實(shí)現(xiàn)對丟包位圖的優(yōu)化。
[0056]對于實(shí)施例一,對應(yīng)的丟包位圖可以優(yōu)化為:10101。發(fā)送端在識別該丟包位圖時,對于沒有識別到的數(shù)據(jù)包的序號,默認(rèn)為該數(shù)據(jù)包被正確接收。
[0057]實(shí)施例二中,對應(yīng)的丟包位圖可以優(yōu)化為:1010。發(fā)送端在識別該丟包位圖時,對于沒有識別到的數(shù)據(jù)包的序號,默認(rèn)為該數(shù)據(jù)包被正確接收。
[0058]由上述可知,在實(shí)施例一、二中,對應(yīng)的丟包位圖都得到了優(yōu)化。優(yōu)化后的丟包位圖比原丟包位圖減少了一定長度的比特位,減少了發(fā)送的選擇性重傳信息的數(shù)據(jù)量。進(jìn)而在一定程度上提高了丟失的數(shù)據(jù)包重傳的效率。
[0059]在本發(fā)明的一種實(shí)施例中,在發(fā)送端接收到選擇性重傳信息之后,根據(jù)選擇性重傳信息將對應(yīng)的需要重傳的數(shù)據(jù)包放入重傳隊(duì)列中;如果在重傳隊(duì)列中存在重傳數(shù)據(jù)包的序號小于選擇性重傳信息中的起始丟包序號時,將重傳數(shù)據(jù)包退出所述重傳隊(duì)列。由于在數(shù)據(jù)包重傳之后,在收到正確接收的反饋之后,認(rèn)為該數(shù)據(jù)包已經(jīng)被正確接收,將給數(shù)據(jù)包從重傳隊(duì)列中移除。沒有收到正確接收反饋的重傳數(shù)據(jù)包仍然保留在重傳隊(duì)列中。并且,在本發(fā)明的具體實(shí)施例中,對于收到正確接收反饋的數(shù)據(jù)包,則認(rèn)為數(shù)據(jù)包序號在此之前的,在重傳隊(duì)列中的數(shù)據(jù)包也已經(jīng)被接收端正確接收。
[0060]舉例為,當(dāng)需要重傳的第14個數(shù)據(jù)包仍然在重傳隊(duì)列中時,新加入的當(dāng)前需要重傳的數(shù)據(jù)包中,起始丟包序號為35時(以32位的丟包位圖為例,第二次重傳時的起始丟包序號大于第一次重傳時的最后一位的數(shù)據(jù)包序號32),在收到該第35個數(shù)據(jù)包的重傳后的正確接收的反饋時,默認(rèn)仍在重傳隊(duì)列中的第14個數(shù)據(jù)包的重傳已經(jīng)被正確接收,將第14個數(shù)據(jù)包退出重傳隊(duì)列。
[0061]下面結(jié)合具體實(shí)施例進(jìn)行詳細(xì)說明,在本實(shí)施例的一種具體實(shí)施例中,發(fā)送端和接收端在進(jìn)行數(shù)據(jù)傳輸之前,預(yù)先約定雙方傳輸?shù)牡倪x擇性重傳信息的結(jié)構(gòu),該選擇性重選信息包括起始丟包的序號和丟包位圖。該起始丟包的序號表示第一個丟失數(shù)據(jù)包對應(yīng)的序號;該丟包位圖優(yōu)選為32個比特位,“O”表示對應(yīng)的數(shù)據(jù)包丟失,“I”表示對應(yīng)的數(shù)據(jù)包正確接收;或者該丟包位圖為按照預(yù)設(shè)條件進(jìn)行優(yōu)化后的丟包位圖,具體詳見下述描述,在此不再贅述。
[0062]發(fā)送端向接收端發(fā)送數(shù)據(jù)包,當(dāng)接收端發(fā)現(xiàn)第15個數(shù)據(jù)包丟失時,將選擇性重傳信息中的起始丟包的序號設(shè)置為當(dāng)前丟包的包序號15,即認(rèn)為第15個數(shù)據(jù)包之前的第I?14個數(shù)據(jù)包都已經(jīng)被正確接收。
[0063]丟包位圖中第I位對應(yīng)發(fā)送方發(fā)送的第14個包,因?yàn)榈?4個包已經(jīng)收到,故丟包位圖中的第I位為“I”;丟包位圖中第2位對應(yīng)發(fā)送的第I個丟包,即序號為15的數(shù)據(jù)包,因?yàn)樵撔蛱枮?5的數(shù)據(jù)包丟包,故丟包位圖中第2位為O。此外接收端根據(jù)第15個數(shù)據(jù)包之后的丟包情況,生成對應(yīng)的丟包位圖。在本發(fā)明的一種實(shí)施例中,第15、19、21、23和24數(shù)據(jù)包丟失,則生成的對應(yīng)的32位的丟包位圖為:1011 1010 1001 1111 1111 1111 11111111。
[0064]優(yōu)選的,在該丟包位圖中從第12位開始至最后一位的比特位相同,且連續(xù)均為I(表示正確接收),可以將從第12位到第32位的比特位刪除,在丟包位圖中只保留第I位至第11位,實(shí)現(xiàn)丟包位圖的優(yōu)化處理,優(yōu)化結(jié)果為:10111010100 (共11位)。
[0065]根據(jù)上述的起始丟包的序號為15以及對應(yīng)的丟包位圖為10111010100生成對應(yīng)的選擇性重傳信息,具體的,先將起始丟包的序號轉(zhuǎn)化成二進(jìn)制后為1111,將轉(zhuǎn)化后的起始丟包的序號和對應(yīng)的丟包位圖生成的選擇性重傳信息。再將生成的選擇性重傳信息反饋給發(fā)送端。
[0066]發(fā)送端根據(jù)接收到的選擇性重傳信息,獲取到二進(jìn)制的起始丟包的序號為1111,以及對應(yīng)的丟包位圖為10111010100,進(jìn)行解析后得知起始的丟包序號為15,后續(xù)數(shù)據(jù)包的序號為19、21、23和24的數(shù)據(jù)包丟失,需要重傳。發(fā)送端將需要重傳的數(shù)據(jù)包序號為15、19、21、23和24的數(shù)據(jù)包放入重傳隊(duì)列中。
[0067]本實(shí)施例中,接收端在接收發(fā)送端發(fā)送的數(shù)據(jù)包的過程中,當(dāng)接收端發(fā)現(xiàn)有丟包時,將第一個丟包的序號作為起始丟包的序號,并根據(jù)后續(xù)的丟包情況生成對應(yīng)的丟包位圖;再將該選擇性信息反饋給發(fā)送端,使得發(fā)送端根據(jù)該選擇性重傳信息進(jìn)行數(shù)據(jù)重傳。由于本發(fā)明中采用了丟包位圖,并通過起始丟包的序號對后續(xù)的連續(xù)多個數(shù)據(jù)包的接收情況進(jìn)行標(biāo)識。減少了接收端反饋丟包時所需傳輸?shù)男帕畲笮?,進(jìn)而提高了重傳的效率。此外,還可以對丟包位圖進(jìn)行進(jìn)一步的優(yōu)化,使得選擇性重傳信息所占的信令資源更小。
[0068]本發(fā)明還提供了一種接收端,該接收端與對應(yīng)的發(fā)送端約定選擇性重傳信息的結(jié)構(gòu);其中,所約定的擇性重傳信息包括:起始丟包的序號,以及表示從起始丟包開始的一定長度數(shù)據(jù)的丟包情況的丟包位圖。
[0069]圖2是本發(fā)明中一種接收端的結(jié)構(gòu)示意圖,如圖2所述,該接收裝置包括:接收模塊201、處理模塊202和發(fā)送模塊203。
[0070]接收模塊201,用于接收發(fā)送端發(fā)送的數(shù)據(jù)包。
[0071]處理模塊202,用于當(dāng)數(shù)據(jù)包中有數(shù)據(jù)包丟失時,記錄第一個丟失的數(shù)據(jù)包的序號,將第一個丟失的數(shù)據(jù)包的序號作為起始丟包的序號,根據(jù)第一個丟失的數(shù)據(jù)包之后的丟包情況生成對應(yīng)的預(yù)設(shè)長度的丟包位圖。
[0072]發(fā)送模塊203,用于根據(jù)起始丟包的序號和丟包位圖生成選擇性重傳信息,將選擇性重傳信息發(fā)送給發(fā)送端,使得發(fā)送端根據(jù)選擇性重傳信息進(jìn)行指定數(shù)據(jù)的重傳。
[0073]圖3是本發(fā)明中一種接收端的詳細(xì)結(jié)構(gòu)示意圖,如圖3所述,在本發(fā)明的一種實(shí)施例中,接收端還包括:優(yōu)化模塊204,用于根據(jù)預(yù)設(shè)條件對丟包位圖進(jìn)行優(yōu)化。減少丟包位圖的總的比特位數(shù),降低發(fā)送選擇性重傳信息的資源消耗。
[0074]在本發(fā)明的一種實(shí)施例中,優(yōu)化模塊204包括:刪除單元2041,用于當(dāng)丟包位圖中自第m位到最后一位的比特位相同,且自第m位到最后一位對應(yīng)的標(biāo)識為正確接收時,將從第m位到最后一位的比特位刪除,保留第I位至第(m-Ι)位;其中,m為大于3的自然數(shù)。
[0075]在本發(fā)明的一種實(shí)施例中,發(fā)送模塊204包括:轉(zhuǎn)換單元2041和生成單元2042。其中,轉(zhuǎn)換單元2041,用于將起始丟包的序號轉(zhuǎn)換為二進(jìn)制;生成單元2042,用于將轉(zhuǎn)換后起始丟包的序號和所述丟包位圖生成選擇性重選信息。
[0076]本實(shí)施例中,接收端在接收發(fā)送端發(fā)送的數(shù)據(jù)包的過程中,當(dāng)接收端發(fā)現(xiàn)有丟包時,將第一個丟包的序號作為起始丟包的序號,并根據(jù)后續(xù)的丟包情況生成對應(yīng)的丟包位圖;再將該選擇性信息反饋給發(fā)送端,使得發(fā)送端根據(jù)該選擇性重傳信息進(jìn)行數(shù)據(jù)重傳。由于本發(fā)明中采用了丟包位圖,并通過起始丟包的序號對后續(xù)的連續(xù)多個數(shù)據(jù)包的接收情況進(jìn)行標(biāo)識。減少了接收端反饋丟包時所需傳輸?shù)男帕畲笮。M(jìn)而提高了重傳的效率。此外,還可以對丟包位圖進(jìn)行進(jìn)一步的優(yōu)化,使得選擇性重傳信息所占的信令資源更小。
[0077]圖4是本發(fā)明中一種數(shù)據(jù)重傳系統(tǒng)的結(jié)構(gòu)示意圖,該數(shù)據(jù)重傳系統(tǒng)包括:發(fā)送端301和接收端302 ;其中,接收端302可以為圖2或圖3中所示的接收端。
[0078]發(fā)送端301,用于向接收端發(fā)送數(shù)據(jù)包,根據(jù)接收端發(fā)送的選擇性重傳信息進(jìn)行數(shù)據(jù)重傳;
[0079]在本發(fā)明的一種實(shí)施例中,發(fā)送端301還用于,接收到選擇性重傳信息之后,根據(jù)選擇性重傳信息將對應(yīng)的需要重傳的數(shù)據(jù)包放入重傳隊(duì)列中;如果在重傳隊(duì)列中存在重傳數(shù)據(jù)包的序號小于選擇性重傳信息中的起始丟包序號時,將重傳數(shù)據(jù)包退出所述重傳隊(duì)列。
[0080]本發(fā)明提供的技術(shù)方案,接收端在接收發(fā)送端發(fā)送的數(shù)據(jù)包的過程中,當(dāng)接收端發(fā)現(xiàn)有丟包時,將第一個丟包的序號作為起始丟包的序號,并根據(jù)后續(xù)的丟包情況生成對應(yīng)的丟包位圖;再將該選擇性信息反饋給發(fā)送端,使得發(fā)送端根據(jù)該選擇性重傳信息進(jìn)行數(shù)據(jù)重傳。由于本發(fā)明中采用了丟包位圖,并通過起始丟包的序號對后續(xù)的連續(xù)多個數(shù)據(jù)包的接收情況進(jìn)行標(biāo)識。減少了接收端反饋丟包時所需傳輸?shù)男帕畲笮?,進(jìn)而提高了重傳的效率。此外,還可以對丟包位圖進(jìn)行進(jìn)一步的優(yōu)化,使得選擇性重傳信息所占的信令資源更小。
[0081]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種數(shù)據(jù)重傳方法,其特征在于,該方法包括: 接收發(fā)送端發(fā)送的數(shù)據(jù)包; 當(dāng)所述數(shù)據(jù)包中有數(shù)據(jù)包丟失時,記錄第一個丟失的數(shù)據(jù)包的序號,將所述第一個丟失的數(shù)據(jù)包的序號作為起始丟包的序號,根據(jù)所述第一個丟失的數(shù)據(jù)包之后的丟包情況生成對應(yīng)的預(yù)設(shè)長度的丟包位圖; 根據(jù)所述起始丟包的序號和所述丟包位圖生成選擇性重傳信息,將所述選擇性重傳信息發(fā)送給發(fā)送端,使得發(fā)送端根據(jù)所述選擇性重傳信息進(jìn)行指定數(shù)據(jù)的重傳。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述第一個丟失的數(shù)據(jù)包之后的丟包情況生成對應(yīng)的預(yù)設(shè)長度的丟包位圖之后,所述方法還包括: 根據(jù)預(yù)設(shè)條件對所述丟包位圖進(jìn)行優(yōu)化。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)預(yù)設(shè)條件對所述丟包位圖進(jìn)行優(yōu)化包括: 當(dāng)所述丟包位圖中自第m位到最后一位的比特位相同,且自第m位到最后一位對應(yīng)的標(biāo)識為正確接收時,將從第m位到最后一位的比特位刪除,保留第I位至第m-Ι位;其中,m為大于3的自然數(shù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述起始丟包的序號和所述丟包位圖生成選擇性重傳信息包括: 將所述起始丟包的序號轉(zhuǎn)換為二進(jìn)制; 將所述轉(zhuǎn)換后起始丟包的序號和所述丟包位圖生成選擇性重選信息。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述丟包位圖的長度為2"個比特位,對應(yīng)連續(xù)的2n個數(shù)據(jù)包,η為正整數(shù); 當(dāng)所述丟包位圖中用“O”標(biāo)識對應(yīng)的數(shù)據(jù)包丟失,用“I”標(biāo)識對應(yīng)的數(shù)據(jù)包沒有丟失,被正確接收時,所述丟包位圖中的第I位用于標(biāo)識所述第一個丟失的數(shù)據(jù)包的前一位已經(jīng)被正常接收的數(shù)據(jù)包的丟包情況; 或者, 當(dāng)所述丟包位圖中用“I”標(biāo)識對應(yīng)的數(shù)據(jù)包丟失,用“O”標(biāo)識對應(yīng)的數(shù)據(jù)包沒有丟失,被正確接收時,所述丟包位圖中的第I位用于標(biāo)識所述第一個丟失的數(shù)據(jù)包的丟包情況。
6.—種接收端,其特征在于,所述接收端包括: 接收模塊,用于接收發(fā)送端發(fā)送的數(shù)據(jù)包; 處理模塊,用于當(dāng)所述數(shù)據(jù)包中有數(shù)據(jù)包丟失時,記錄第一個丟失的數(shù)據(jù)包的序號,將所述第一個丟失的數(shù)據(jù)包的序號作為起始丟包的序號,根據(jù)所述第一個丟失的數(shù)據(jù)包之后的丟包情況生成對應(yīng)的預(yù)設(shè)長度的丟包位圖; 發(fā)送模塊,用于根據(jù)所述起始丟包的序號和所述丟包位圖生成選擇性重傳信息,將所述選擇性重傳信息發(fā)送給發(fā)送端,使得發(fā)送端根據(jù)所述選擇性重傳信息進(jìn)行指定數(shù)據(jù)的重傳。
7.根據(jù)權(quán)利要求6所述的接收端,其特征在于,所述接收端還包括: 優(yōu)化模塊,用于根據(jù)預(yù)設(shè)條件對所述丟包位圖進(jìn)行優(yōu)化。
8.根據(jù)權(quán)利要求7所述的接收端,其特征在于,所述優(yōu)化模塊包括: 刪除單元,用于當(dāng)所述丟包位圖中自第m位到最后一位的比特位相同,且自第m位到最后一位對應(yīng)的標(biāo)識為正確接收時,將從第m位到最后一位的比特位刪除,保留第I位至第m-Ι位;其中,m為大于3的自然數(shù)。
9.根據(jù)權(quán)利要求6所述的接收端,其特征在于,所述發(fā)送模塊包括: 轉(zhuǎn)換單元,用于將所述起始丟包的序號轉(zhuǎn)換為二進(jìn)制; 生成單元,用于將所述轉(zhuǎn)換后起始丟包的序號和所述丟包位圖生成選擇性重選信息。
10.一種數(shù)據(jù)重傳系統(tǒng),其特征在于,所述系統(tǒng)包括發(fā)送端和如權(quán)利要求6?9中任意一項(xiàng)所述的接收端; 所述發(fā)送端,用于向所述接收端發(fā)送數(shù)據(jù)包,根據(jù)所述接收端發(fā)送的選擇性重傳信息進(jìn)行數(shù)據(jù)重傳; 其中,所述發(fā)送端,還用于接收到所述選擇性重傳信息之后,根據(jù)所述選擇性重傳信息將對應(yīng)的需要重傳的數(shù)據(jù)包放入重傳隊(duì)列中;如果在所述重傳隊(duì)列中存在重傳數(shù)據(jù)包的序號小于所述選擇性重傳信息中的起始丟包序號時,將所述重傳數(shù)據(jù)包退出所述重傳隊(duì)列。
【文檔編號】H04L29/08GK104518853SQ201310451059
【公開日】2015年4月15日 申請日期:2013年9月27日 優(yōu)先權(quán)日:2013年9月27日
【發(fā)明者】劉玎 申請人:北京新媒傳信科技有限公司