本發(fā)明涉及即時(shí)數(shù)據(jù)廣播方法,具體涉及一種基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法。
背景技術(shù):
1、隨著無(wú)線網(wǎng)絡(luò)的普及和應(yīng)用,即時(shí)數(shù)據(jù)廣播在無(wú)線環(huán)境中變得越來(lái)越重要。即時(shí)數(shù)據(jù)廣播是指在實(shí)時(shí)性要求高的場(chǎng)景下,將數(shù)據(jù)快速傳輸給多個(gè)接收端的過(guò)程。例如,實(shí)時(shí)共享桌面演示、多媒體直播和實(shí)時(shí)數(shù)據(jù)同步等應(yīng)用場(chǎng)景都需要高效的即時(shí)數(shù)據(jù)廣播方法。
2、傳統(tǒng)的文件分發(fā)方法包括通過(guò)tcp單播發(fā)送和通過(guò)udp組播發(fā)送。在tcp單播發(fā)送方法中,發(fā)送主機(jī)將文件循環(huán)通過(guò)tcp協(xié)議發(fā)送給每個(gè)接收主機(jī)。這種方法的優(yōu)點(diǎn)是簡(jiǎn)單易實(shí)現(xiàn),但它的缺點(diǎn)也很明顯。首先,由于需要多次發(fā)送,增加了傳輸時(shí)間。其次,當(dāng)接收主機(jī)數(shù)量較多時(shí),發(fā)送主機(jī)的帶寬和處理能力可能成為瓶頸,導(dǎo)致傳輸效率下降。此外,tcp協(xié)議本身對(duì)可靠性的要求較高,可能會(huì)導(dǎo)致傳輸失敗或需要進(jìn)行重傳,進(jìn)一步增加了傳輸時(shí)間和帶寬消耗。在udp組播發(fā)送方法中,發(fā)送主機(jī)使用udp協(xié)議將文件一次性發(fā)送給多個(gè)接收主機(jī)。相比于tcp單播發(fā)送,udp組播發(fā)送具有較低的傳輸時(shí)間和帶寬消耗。然而,udp組播發(fā)送也存在一些缺點(diǎn)。首先,udp協(xié)議本身不提供可靠性保證,無(wú)法保證數(shù)據(jù)的完整性和可靠性。其次,組播傳輸帶寬有限,特別是在無(wú)線網(wǎng)絡(luò)環(huán)境下,組播傳輸帶寬更加有限,無(wú)法滿足高速率數(shù)據(jù)傳輸?shù)男枨蟆?/p>
3、綜上所述,傳統(tǒng)的文件分發(fā)方法依舊存在傳輸效率低下、可靠性差等問(wèn)題。
4、基于此,本發(fā)明設(shè)計(jì)了一種基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法以解決上述問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、針對(duì)現(xiàn)有技術(shù)所存在的上述缺點(diǎn),本發(fā)明提供了一種基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法。
2、為實(shí)現(xiàn)以上目的,本發(fā)明通過(guò)以下技術(shù)方案予以實(shí)現(xiàn):
3、一種基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,包括以下步驟:
4、一、數(shù)據(jù)分割:將待傳輸?shù)奈募殖蒶個(gè)傳輸任務(wù)單元ci,定義每個(gè)任務(wù)單元ci的大小為n*b字節(jié);
5、二、里德所羅門編碼:對(duì)于每個(gè)任務(wù)單元ci,使用里德所羅門編碼進(jìn)行編碼;假設(shè)需要實(shí)現(xiàn)r倍冗余度,即每個(gè)任務(wù)單元ci生成r個(gè)冗余編碼塊;因此,每個(gè)任務(wù)單元ci的編碼后的數(shù)據(jù)塊數(shù)量為n+r;
6、三、數(shù)據(jù)發(fā)送:將編碼后的數(shù)據(jù)塊分別通過(guò)單播和組播方式發(fā)送;
7、四、數(shù)據(jù)接收和重組:接收端對(duì)接收到的數(shù)據(jù)塊進(jìn)行重組;
8、五、動(dòng)態(tài)調(diào)整組播及單播數(shù)據(jù)發(fā)送速率:發(fā)送主機(jī)根據(jù)當(dāng)前網(wǎng)絡(luò)環(huán)境的最大組播帶寬bw_multicast、最大單播帶寬bw_unicast和接收端個(gè)數(shù)進(jìn)行動(dòng)態(tài)調(diào)整組播和單播數(shù)據(jù)發(fā)送速率;
9、六、文件分發(fā)完成:當(dāng)所有傳輸任務(wù)單元的數(shù)據(jù)塊都被接收并重組后,文件分發(fā)完成。
10、更進(jìn)一步的,步驟一中,假設(shè)待傳輸?shù)奈募的大小為s字節(jié),將其分成k個(gè)傳輸任務(wù)單元ci;每個(gè)任務(wù)單元ci包含n個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的大小為b字節(jié);因此,每個(gè)任務(wù)單元ci的大小為n*b字節(jié)。
11、更進(jìn)一步的,所述步驟二中,使用里德所羅門編碼進(jìn)行編碼的過(guò)程如下:
12、2.1、生成系數(shù)域:首先,選擇一個(gè)合適的有限域gf(2^m),其中m是整數(shù),用于定義有限域上的運(yùn)算;
13、2.2、構(gòu)造生成多項(xiàng)式:對(duì)于所需的冗余度r,選擇一個(gè)度為r的生成多項(xiàng)式g(x);
14、2.3、將數(shù)據(jù)編碼為多項(xiàng)式:將任務(wù)單元ci看作一個(gè)由k個(gè)系數(shù)表示的多項(xiàng)式f(x),其中k表示任務(wù)單元ci中包含的數(shù)據(jù)元素的個(gè)數(shù);
15、2.4、對(duì)多項(xiàng)式進(jìn)行編碼:使用以下公式計(jì)算編碼后的多項(xiàng)式:c(x)=f(x)*x^r+余數(shù)(f(x)*x^r/g(x));
16、其中,c(x)是編碼后的多項(xiàng)式,包含原始數(shù)據(jù)和r個(gè)冗余系數(shù);
17、2.5、生成編碼塊:將編碼后的多項(xiàng)式c(x)分成n+r個(gè)系數(shù),每個(gè)系數(shù)對(duì)應(yīng)一個(gè)在有限域gf(2^m)上的元素;這n+r元素就是編碼后的數(shù)據(jù)塊。
18、更進(jìn)一步的,所述步驟2.1中,通常選擇m=8,即gf(2^8),這樣一個(gè)有限域包含2^8=256個(gè)元素。
19、更進(jìn)一步的,所述步驟四中,假設(shè)接收端正確接收到了m個(gè)數(shù)據(jù)塊;
20、當(dāng)m>=n時(shí),則可以通過(guò)里德所羅門編碼重建數(shù)據(jù);也就是說(shuō),只要丟失的數(shù)據(jù)塊少于r個(gè),均可以通過(guò)算法糾正,還原出原始數(shù)據(jù)。
21、更進(jìn)一步的,當(dāng)接m<n時(shí),則只需要向發(fā)生端申請(qǐng)重發(fā)n-m個(gè)數(shù)據(jù)塊;重發(fā)的數(shù)據(jù)塊可以是n+r-m個(gè)未接收到的數(shù)據(jù)塊中的任意n-m個(gè)。
22、更進(jìn)一步的,所述步驟五中,動(dòng)態(tài)調(diào)整組播和單播數(shù)據(jù)發(fā)送速率,包括以下步驟:
23、(1)計(jì)算組播發(fā)送速率rm:
24、rm=min(bm/(n+r),bm)
25、其中,bm是當(dāng)前網(wǎng)絡(luò)環(huán)境下的最大組播帶寬;n是發(fā)送任務(wù)的接收端個(gè)數(shù);r是冗余編碼塊的數(shù)量,可以根據(jù)編碼方案確定;rm是組播發(fā)送速率;
26、(2)計(jì)算單播發(fā)送速率ru:
27、ru=min(bu/n,bm/(n+r))
28、其中,bu是當(dāng)前網(wǎng)絡(luò)環(huán)境下的最大單播帶寬;ru是單播發(fā)送速率;
29、(3)動(dòng)態(tài)調(diào)整發(fā)送速率;
30、(4)采用調(diào)整后的發(fā)送速率進(jìn)行數(shù)據(jù)的發(fā)送:使用單播方式將原始數(shù)據(jù)塊發(fā)送給接收端,發(fā)送速率為ru;使用組播方式將冗余編碼塊發(fā)送給所有接收端,發(fā)送速率為rm。
31、更進(jìn)一步的,步驟(3)中,根據(jù)實(shí)時(shí)的網(wǎng)絡(luò)帶寬情況和接收端的處理能力,采用自適應(yīng)算法或反饋控制算法動(dòng)態(tài)調(diào)整組播發(fā)送速率rm和單播發(fā)送速率ru。
32、更進(jìn)一步的,步驟(2)中,單播發(fā)送速率ru不超過(guò)最大單播帶寬bu,同時(shí)也不超過(guò)組播發(fā)送速率rm。
33、有益效果
34、本發(fā)明通過(guò)動(dòng)態(tài)調(diào)整數(shù)據(jù)發(fā)送速率和利用里德所羅門編碼實(shí)現(xiàn),通過(guò)組播和單播相結(jié)合,動(dòng)態(tài)調(diào)整分配組播與單播數(shù)據(jù)發(fā)送速率,并利用里德所羅門編碼,最大程度地利用有限的組播傳輸帶寬,提高數(shù)據(jù)傳輸效率和可靠性。
35、本發(fā)明具有高效利用有限的組播傳輸帶寬、解決實(shí)時(shí)性要求高的問(wèn)題、提高數(shù)據(jù)傳輸?shù)目煽啃缘奶攸c(diǎn),適用于實(shí)時(shí)共享桌面演示、多媒體直播、實(shí)時(shí)數(shù)據(jù)同步等應(yīng)用場(chǎng)景。
1.一種基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,其特征在于:包括以下步驟:
2.根據(jù)權(quán)利要求1所述的基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,其特征在于,步驟一中,假設(shè)待傳輸?shù)奈募的大小為s字節(jié),將其分成k個(gè)傳輸任務(wù)單元ci;每個(gè)任務(wù)單元ci包含n個(gè)數(shù)據(jù)塊,每個(gè)數(shù)據(jù)塊的大小為b字節(jié);因此,每個(gè)任務(wù)單元ci的大小為n*b字節(jié)。
3.根據(jù)權(quán)利要求2所述的基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,其特征在于,所述步驟二中,使用里德所羅門編碼進(jìn)行編碼的過(guò)程如下:
4.根據(jù)權(quán)利要求3所述的基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,其特征在于,所述步驟2.1中,通常選擇m=8,即gf(2^8),這樣一個(gè)有限域包含2^8=256個(gè)元素。
5.根據(jù)權(quán)利要求3所述的基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,其特征在于,所述步驟四中,假設(shè)接收端正確接收到了m個(gè)數(shù)據(jù)塊;
6.根據(jù)權(quán)利要求5所述的基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,其特征在于,當(dāng)接m<n時(shí),則只需要向發(fā)生端申請(qǐng)重發(fā)n-m個(gè)數(shù)據(jù)塊;重發(fā)的數(shù)據(jù)塊可以是n+r-m個(gè)未接收到的數(shù)據(jù)塊中的任意n-m個(gè)。
7.根據(jù)權(quán)利要求6所述的基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,其特征在于,所述步驟五中,動(dòng)態(tài)調(diào)整組播和單播數(shù)據(jù)發(fā)送速率,包括以下步驟:
8.根據(jù)權(quán)利要求7所述的基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,其特征在于,步驟(3)中,根據(jù)實(shí)時(shí)的網(wǎng)絡(luò)帶寬情況和接收端的處理能力,采用自適應(yīng)算法或反饋控制算法動(dòng)態(tài)調(diào)整組播發(fā)送速率rm和單播發(fā)送速率ru。
9.根據(jù)權(quán)利要求7所述的基于動(dòng)態(tài)調(diào)整發(fā)送速率的即時(shí)數(shù)據(jù)廣播方法,其特征在于,步驟(2)中,單播發(fā)送速率ru不超過(guò)最大單播帶寬bu,同時(shí)也不超過(guò)組播發(fā)送速率rm。