專(zhuān)利名稱(chēng):一種用于流量分配的動(dòng)態(tài)多代理前向差錯(cuò)控制方法
技術(shù)領(lǐng)域:
本發(fā)明屬于信息傳播技術(shù)領(lǐng)域,特別涉及子網(wǎng)內(nèi)部的流量分配方法。
背景技術(shù):
當(dāng)對(duì)一個(gè)巨大的網(wǎng)絡(luò)進(jìn)行流媒體服務(wù)的時(shí)候,數(shù)據(jù)傳輸和服務(wù)調(diào)度存在著相當(dāng)大的冗余,將一個(gè)巨大網(wǎng)絡(luò)分割成一個(gè)個(gè)的子網(wǎng)有利于調(diào)度和數(shù)據(jù)傳輸。當(dāng)一個(gè)子網(wǎng)的規(guī)模比較大的時(shí)候,傳統(tǒng)的反饋方式,不但無(wú)法進(jìn)行有效的差錯(cuò)控制,而且也無(wú)法提供一個(gè)有效的流量分配方法,造成帶寬的浪費(fèi),而且還會(huì)因后向反饋使子網(wǎng)系統(tǒng)陷于重傳請(qǐng)求處理而無(wú)法正常運(yùn)行。
發(fā)明內(nèi)容
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出一種用于流量分配的動(dòng)態(tài)多代理前向差錯(cuò)控制方法。該方法通過(guò)子網(wǎng)中參與組播的多播客戶端節(jié)點(diǎn)的互相協(xié)作和互相補(bǔ)充的方式進(jìn)行流數(shù)據(jù)的傳輸,不但解決子網(wǎng)內(nèi)部的流量分配問(wèn)題,同時(shí)也提供有效的前向差錯(cuò)控制。
本發(fā)明提出的一種用于流量分配的動(dòng)態(tài)多代理前向差錯(cuò)控制方法,包括組網(wǎng)方法和調(diào)度方法,其中所述的組網(wǎng)方法包括以下步驟1)流媒體數(shù)據(jù)源位于子網(wǎng)外部,為子網(wǎng)提供流媒體數(shù)據(jù);2)位于子網(wǎng)內(nèi)部的客戶端節(jié)點(diǎn)接收來(lái)自流媒體數(shù)據(jù)源或其他客戶端節(jié)點(diǎn)的媒體流,并緩存媒體流,在該客戶端節(jié)點(diǎn)播放媒體流數(shù)據(jù);3)步驟2)中的客戶端節(jié)點(diǎn),若向子網(wǎng)內(nèi)其他客戶端節(jié)點(diǎn)組播流媒體數(shù)據(jù)的客戶端節(jié)點(diǎn)稱(chēng)為多播客戶端節(jié)點(diǎn);4)步驟2)中的客戶端節(jié)點(diǎn),若只接收來(lái)自同一子網(wǎng)內(nèi)其他多播客戶端節(jié)點(diǎn)的媒體流的客戶端節(jié)點(diǎn)稱(chēng)為多播接收客戶端節(jié)點(diǎn);所述的調(diào)度方法,包括以下步驟5)當(dāng)多播客戶端節(jié)點(diǎn)接收到來(lái)自流媒體數(shù)據(jù)源發(fā)出的RTP數(shù)據(jù)包,并放入本地?cái)?shù)據(jù)緩存等待流媒體播放的同時(shí),判斷該RTP數(shù)據(jù)包是否存在于已發(fā)送的RTP數(shù)據(jù)包列表中,如果是,則等待下一個(gè)RTP數(shù)據(jù)包;否則,將RTP數(shù)據(jù)包放入已發(fā)送的RTP數(shù)據(jù)包列表中,同時(shí)將此RTP數(shù)據(jù)包對(duì)子網(wǎng)內(nèi)部的其他所有的客戶端節(jié)點(diǎn)(除自己以外的多播客戶端節(jié)點(diǎn)和所有多播接收客戶端節(jié)點(diǎn))進(jìn)行組播;6)當(dāng)多播客戶端節(jié)點(diǎn)接收到來(lái)自其他多播客戶端節(jié)點(diǎn)發(fā)出的RTP數(shù)據(jù)包時(shí),判斷該RTP包是否存在于已發(fā)送的RTP數(shù)據(jù)包列表中,如果是,則將RTP數(shù)據(jù)包放入已發(fā)送的RTP數(shù)據(jù)包列表中;否則,將RTP數(shù)據(jù)包放入本地?cái)?shù)據(jù)緩存等待流媒體播放。
本發(fā)明的特點(diǎn)及技術(shù)效果本發(fā)明方法通過(guò)子網(wǎng)中參與組播的多播客戶端節(jié)點(diǎn)的互相協(xié)作和互相補(bǔ)充的方式進(jìn)行流數(shù)據(jù)的傳輸,引入了動(dòng)態(tài)多代理流媒體數(shù)據(jù)源以及在數(shù)據(jù)發(fā)送前的前向差錯(cuò)控制方法,不但有效解決子網(wǎng)內(nèi)部的流量分配問(wèn)題,同時(shí)也在流媒體數(shù)據(jù)源的發(fā)送端進(jìn)行有效的差錯(cuò)控制,效果明顯優(yōu)于客戶端收到流媒體數(shù)據(jù)后的反饋控制。
圖1是本發(fā)明方法的實(shí)施例流程圖。
具體實(shí)施例方式
本發(fā)明的用于流量分配的動(dòng)態(tài)多代理前向差錯(cuò)控制方法實(shí)施例,包括組網(wǎng)方法和調(diào)度方法,其中組網(wǎng)方法包括以下步驟(1)流媒體數(shù)據(jù)源位于子網(wǎng)外部,為子網(wǎng)提供流媒體數(shù)據(jù);(2)位于子網(wǎng)內(nèi)部的客戶端節(jié)點(diǎn)接收來(lái)自流媒體數(shù)據(jù)源或其他客戶端節(jié)點(diǎn)的媒體流,并緩存媒體流,在該客戶端節(jié)點(diǎn)播放媒體流數(shù)據(jù);(3)步驟(2)中的客戶端節(jié)點(diǎn),若向子網(wǎng)內(nèi)其他客戶端節(jié)點(diǎn)組播流媒體數(shù)據(jù)的客戶端節(jié)點(diǎn)稱(chēng)為多播客戶端節(jié)點(diǎn);(4)步驟(2)中的客戶端節(jié)點(diǎn),若只接收來(lái)自同一子網(wǎng)內(nèi)其他多播客戶端節(jié)點(diǎn)的媒體流的客戶端節(jié)點(diǎn)稱(chēng)為多播接收客戶端節(jié)點(diǎn);所述調(diào)度方法如圖1所示,包括如下步驟(5)客戶端節(jié)點(diǎn)從網(wǎng)絡(luò)中接收到RTP數(shù)據(jù)包;(6)判斷RTP數(shù)據(jù)包是否來(lái)自流媒體數(shù)據(jù)源,如果是,執(zhí)行步驟(7)-(10),否則執(zhí)行步驟(11)-(14);(7)將RTP數(shù)據(jù)包放入本地緩存,等待流媒體播放;(8)判斷RTP包序列號(hào)是否在已發(fā)送RTP數(shù)據(jù)包列表中,如果是,返回步驟(5),否則執(zhí)行步驟(9)-(10);(9)將RTP包序列號(hào)放入已發(fā)送RTP數(shù)據(jù)包列表中;(10)將RTP包對(duì)子網(wǎng)內(nèi)部的所有客戶端節(jié)點(diǎn)(除自己以外的多播客戶端節(jié)點(diǎn)和所有多播接收客戶端節(jié)點(diǎn))進(jìn)行組播RTP數(shù)據(jù)包,返回步驟(5);(11)判斷RTP數(shù)據(jù)包是否來(lái)自同一子網(wǎng)內(nèi)部的其他多播客戶端節(jié)點(diǎn),如果是,執(zhí)行步驟(12)-(14),否則返回步驟(5);(12)判斷RTP數(shù)據(jù)包是否在本地緩存中,如果是,執(zhí)行步驟(13),否則執(zhí)行步驟(14);(13)將RTP包序列號(hào)放入已發(fā)送RTP數(shù)據(jù)包列表中,返回步驟(5);(14)將RTP數(shù)據(jù)包放入本地緩存,等待流媒體播放,返回步驟(5)。
本發(fā)明方法中的動(dòng)態(tài)多代理,體現(xiàn)在子網(wǎng)內(nèi)部的多個(gè)多播客戶端節(jié)點(diǎn)向子網(wǎng)內(nèi)部的其他客戶端節(jié)點(diǎn)組播流媒體數(shù)據(jù)。多個(gè)多播客戶端節(jié)點(diǎn)同時(shí)未接收到某一個(gè)RTP數(shù)據(jù)包的概率遠(yuǎn)遠(yuǎn)小于一個(gè)多播客戶端節(jié)點(diǎn)未收到該RTP數(shù)據(jù)包的概率,因此引入動(dòng)態(tài)多代理可以有效地解決一個(gè)多播客戶端節(jié)點(diǎn)未收到某個(gè)RTP數(shù)據(jù)包而導(dǎo)致整個(gè)子網(wǎng)無(wú)法收到該RTP數(shù)據(jù)包的問(wèn)題。通過(guò)動(dòng)態(tài)多代理的方法,也有效地對(duì)可預(yù)測(cè)的差錯(cuò)進(jìn)行了控制,即前向差錯(cuò)控制。
權(quán)利要求
1.一種用于流量分配的動(dòng)態(tài)多代理前向差錯(cuò)控制方法,包括組網(wǎng)方法和調(diào)度方法,其中所述的組網(wǎng)方法包括以下步驟1)流媒體數(shù)據(jù)源位于子網(wǎng)外部,為子網(wǎng)提供流媒體數(shù)據(jù);2)位于子網(wǎng)內(nèi)部的客戶端節(jié)點(diǎn)接收來(lái)自流媒體數(shù)據(jù)源或其他客戶端節(jié)點(diǎn)的媒體流,并緩存媒體流,在該客戶端節(jié)點(diǎn)播放媒體流數(shù)據(jù);3)步驟2)中的客戶端節(jié)點(diǎn),若向子網(wǎng)內(nèi)其他客戶端節(jié)點(diǎn)組播流媒體數(shù)據(jù)的客戶端節(jié)點(diǎn)稱(chēng)為多播客戶端節(jié)點(diǎn);4)步驟2)中的客戶端節(jié)點(diǎn),若只接收來(lái)自同一子網(wǎng)內(nèi)其他多播客戶端節(jié)點(diǎn)的媒體流的客戶端節(jié)點(diǎn)稱(chēng)為多播接收客戶端節(jié)點(diǎn);所述的調(diào)度方法,包括以下步驟5)當(dāng)多播客戶端節(jié)點(diǎn)接收到來(lái)自流媒體數(shù)據(jù)源發(fā)出的RTP數(shù)據(jù)包,并放入本地?cái)?shù)據(jù)緩存等待流媒體播放的同時(shí),判斷該RTP數(shù)據(jù)包是否存在于已發(fā)送的RTP數(shù)據(jù)包列表中,如果是,則等待下一個(gè)RTP數(shù)據(jù)包;否則,將RTP數(shù)據(jù)包放入已發(fā)送的RTP數(shù)據(jù)包列表中,同時(shí)將此RTP數(shù)據(jù)包對(duì)子網(wǎng)內(nèi)部的其他所有的客戶端節(jié)點(diǎn)進(jìn)行組播;6)當(dāng)多播客戶端節(jié)點(diǎn)接收到來(lái)自其他多播客戶端節(jié)點(diǎn)發(fā)出的RTP數(shù)據(jù)包時(shí),判斷該RTP包是否存在于已發(fā)送的RTP數(shù)據(jù)包列表中,如果是,則將RTP數(shù)據(jù)包放入已發(fā)送的RTP數(shù)據(jù)包列表中;否則,將RTP數(shù)據(jù)包放入本地?cái)?shù)據(jù)緩存等待流媒體播放。
全文摘要
本發(fā)明涉及一種用于流量分配的動(dòng)態(tài)多代理前向差錯(cuò)控制方法,屬于信息傳播技術(shù)領(lǐng)域。本發(fā)明方法通過(guò)子網(wǎng)中參與組播的多播客戶端節(jié)點(diǎn)的互相協(xié)作和互相補(bǔ)充的方式進(jìn)行流數(shù)據(jù)的傳輸。本發(fā)明方法引入動(dòng)態(tài)多代理機(jī)制,多個(gè)多播客戶端節(jié)點(diǎn)同時(shí)向子網(wǎng)內(nèi)部的其他客戶端節(jié)點(diǎn)組播流媒體數(shù)據(jù),有效地降低了因多播客戶端節(jié)點(diǎn)自身數(shù)據(jù)丟包給子網(wǎng)帶來(lái)的影響。本發(fā)明方法不但有效解決子網(wǎng)內(nèi)部的流媒體數(shù)據(jù)流量分配的問(wèn)題,同時(shí)也在流媒體數(shù)據(jù)源的發(fā)送端進(jìn)行有效的前向差錯(cuò)控制,效果明顯優(yōu)于客戶端收到流媒體數(shù)據(jù)后的反饋控制。
文檔編號(hào)H04L12/56GK1604571SQ20041008671
公開(kāi)日2005年4月6日 申請(qǐng)日期2004年10月29日 優(yōu)先權(quán)日2004年10月29日
發(fā)明者趙黎, 張萌, 楊士強(qiáng) 申請(qǐng)人:清華大學(xué)