專利名稱:一種網(wǎng)絡(luò)通信數(shù)據(jù)處理方法、網(wǎng)絡(luò)通信系統(tǒng)及客戶端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)通信數(shù)據(jù)處理方法、網(wǎng)絡(luò) 通信系統(tǒng)及客戶端。
背景技術(shù):
Internet的高速發(fā)展,給人們的工作和生活帶來了極大的便利,對(duì)Internet 的服務(wù)品質(zhì)和訪問速度的要求越來越高,雖然國家骨干網(wǎng)帶寬不斷增加升級(jí), 但互聯(lián)網(wǎng)用戶數(shù)量也在不斷增加,受Web服務(wù)器的負(fù)荷和傳輸距離等因素的影 響,人們還是經(jīng)常抱怨響應(yīng)速度慢、帶寬明顯不足。
CDN (Content Delivery Network,內(nèi)容分發(fā)網(wǎng)絡(luò))的目的是通過在現(xiàn)有的 Internet中增加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)"邊 緣",使用戶可以就近取得所需的內(nèi)容,緩解Internet骨干網(wǎng)絡(luò)擁塞的現(xiàn)狀,提 高用戶訪問網(wǎng)站的響應(yīng)速度。CDN設(shè)備位于網(wǎng)絡(luò)的邊緣,距用戶僅有"一跳" 之遙,通過用戶就近性和服務(wù)器負(fù)載的判斷,CDN確保內(nèi)容以一種極為高效 的方式為用戶的請(qǐng)求提供服務(wù)。
P2P (Peer To Peer,點(diǎn)對(duì)點(diǎn))技術(shù)是隨著網(wǎng)絡(luò)發(fā)展而興起的另一項(xiàng)重要技 術(shù),它充分利用了大量分布在網(wǎng)絡(luò)邊緣的通信終端的閑置資源和處理能力,改 變了傳統(tǒng)服務(wù)器/客戶機(jī)模式業(yè)務(wù)過渡依賴中心服務(wù)器所導(dǎo)致的部署維護(hù)成本 高、性能不穩(wěn)定、擴(kuò)展性差的缺點(diǎn),實(shí)現(xiàn)了真正意義上的分布式應(yīng)用。
從近幾年網(wǎng)絡(luò)應(yīng)用的發(fā)展來看,多媒體內(nèi)容的需求呈現(xiàn)不斷增加的趨勢(shì), 此類業(yè)務(wù)主要有視頻點(diǎn)播(電影、電視劇)、視頻直播(實(shí)時(shí)直播足球比賽) 等。CDN的相關(guān)技術(shù)也逐漸被運(yùn)用到了視頻內(nèi)容的分發(fā)上來,產(chǎn)生了專門用 來傳輸多々某體內(nèi)容的々某體傳輸網(wǎng)絡(luò)MDN (Media Delivery Network,媒體分發(fā)
網(wǎng)絡(luò))。由于視頻傳輸具有實(shí)時(shí)性、大容量的特點(diǎn),通過將視頻內(nèi)容分布到靠 近用戶的邊緣節(jié)點(diǎn)上,可以為用戶提供更好的播放質(zhì)量,同時(shí)又能大大降低對(duì) 骨干網(wǎng)絡(luò)的沖擊。
將CDN和P2P技術(shù)結(jié)合進(jìn)行網(wǎng)絡(luò)流媒體分發(fā)和播放具有許多優(yōu)點(diǎn),是實(shí) 現(xiàn)大規(guī)模此類業(yè)務(wù)部署的重要技術(shù)手段之一,也是當(dāng)前該領(lǐng)域的技術(shù)發(fā)展趨 勢(shì)。
在現(xiàn)有的P2P直播方案中,啟動(dòng)(或頻道切換)播放延遲,即用戶點(diǎn)擊頻 道節(jié)目到播放視頻畫面的時(shí)間間隔, 一般為20秒左右,較大的啟動(dòng)延遲影響 了用戶的業(yè)務(wù)感受質(zhì)量。發(fā)明人在實(shí)現(xiàn)本發(fā)明時(shí),發(fā)現(xiàn)由于現(xiàn)有的P2P系統(tǒng)中 客戶端是從其父節(jié)點(diǎn)獲得選定頻道的數(shù)據(jù),而由于P2P系統(tǒng)中的各個(gè)客戶端互 為對(duì)等節(jié)點(diǎn),客戶端從其父節(jié)點(diǎn)獲得數(shù)據(jù)的速率都與選定頻道的碼率相同,且 選擇和查找多個(gè)節(jié)點(diǎn)需要耗費(fèi)時(shí)間,無法解決啟動(dòng)(或頻道切換)播放延遲較 大的問題。
另外,P2P流y泉體系統(tǒng)利用IP交換網(wǎng)絡(luò)作為數(shù)據(jù)傳輸?shù)耐ǖ?,IP網(wǎng)絡(luò)的 數(shù)據(jù)傳輸質(zhì)量因擾動(dòng)或帶寬不足等復(fù)雜原因具有較強(qiáng)的不確定性,包含々某體數(shù) 據(jù)分片(Slice)的UDP (User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)報(bào)文在傳 輸過程中可能會(huì)丟失,從而降低用戶的視頻觀看質(zhì)量。使用數(shù)據(jù)分組層(packet level)的FEC (Forward Error Correction,前向糾錯(cuò)碼,本文中又稱其為冗余編 解碼)算法可以改善上述缺陷,其基本原理如圖l所示,為在發(fā)送側(cè)將N個(gè)數(shù)
據(jù)分片編碼成(N + m)個(gè)數(shù)據(jù)分片,其中m為增加的冗余分片的數(shù)目,在圖1 所示的實(shí)例中,N為4, m為2,通過媒體傳輸網(wǎng)絡(luò)傳輸該(N + m)個(gè)數(shù)據(jù)分片, 而當(dāng)接收端發(fā)現(xiàn)該分片組出現(xiàn)分片空洞時(shí),可以根據(jù)這(N + m)個(gè)數(shù)據(jù)包中的任 何N個(gè)通過冗余解碼恢復(fù)出原始的N個(gè)數(shù)據(jù)包。
具體的碼流切片和冗余編碼原理如圖2所示,原始4某體數(shù)據(jù)在分發(fā)側(cè)源頭 被切成等大小的數(shù)據(jù)分片,經(jīng)冗余編碼處理,產(chǎn)生若干等大小的冗余分片,按 組間和組內(nèi)進(jìn)行分片編號(hào),再給原始分片和冗余分片添加分片頭信息,分片頭
中主要包含每個(gè)分片所屬的分片組和在組內(nèi)的編號(hào),以及時(shí)間戳、媒體元數(shù)據(jù) 信息(如是否包含關(guān)^^建幀標(biāo)識(shí)和幀數(shù)據(jù)偏移量)等,最后分發(fā)到終端客戶節(jié)點(diǎn), 客戶端在播放前,先剝?nèi)シ制^,組裝還原成原始媒體數(shù)據(jù)流,發(fā)送給媒體播 放模塊即可實(shí)現(xiàn)直播內(nèi)容的播放。
通過增加冗余分片可以很大程度地避免重傳,代價(jià)是冗余分片的傳輸也需 要占用一些額外的帶寬,這種開銷在網(wǎng)絡(luò)流媒體系統(tǒng)中是值得的。但是,發(fā)明
人在實(shí)現(xiàn)本發(fā)明時(shí),發(fā)現(xiàn)由于采用FEC算法時(shí)要獲得一個(gè)分片組的完整數(shù)據(jù), 接收端起碼需要接收到N個(gè)分片,當(dāng)接收端接收到的一個(gè)分片組中缺失的分片 數(shù)量大于m時(shí),則無法恢復(fù)出完整的數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種網(wǎng)絡(luò)通信數(shù)據(jù)處理方法、網(wǎng)絡(luò)通信系統(tǒng)及客戶端, 用以減少選定頻道的纟番放延遲。
本發(fā)明實(shí)施例提供了一種網(wǎng)絡(luò)通信數(shù)據(jù)處理方法,包括
客戶端根據(jù)用戶選定的頻道確定對(duì)應(yīng)的媒體服務(wù)器及所述客戶端在點(diǎn)對(duì) 點(diǎn)系統(tǒng)中的父節(jié)點(diǎn);
所述客戶端根據(jù)所述父節(jié)點(diǎn)的相關(guān)信息確定本次數(shù)據(jù)處理的起始分片組 標(biāo)識(shí),并向所述媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消息,該消息中攜帶所述起 始分片組標(biāo)識(shí);
所述客戶端接收所述媒體服務(wù)器根據(jù)所述起始分片組標(biāo)識(shí)發(fā)送的該頻道 的數(shù)據(jù),且接收各父節(jié)點(diǎn)發(fā)送的該頻道的數(shù)據(jù)。
本發(fā)明實(shí)施例還提供了一種客戶端,包括
頻道選擇模塊,用于確定用戶選定的頻道并輸出;
拓樸管理模塊,用于根據(jù)用戶選定的頻道確定對(duì)應(yīng)的媒體服務(wù)器及所述客 戶端在點(diǎn)對(duì)點(diǎn)系統(tǒng)中的父節(jié)點(diǎn),并4艮據(jù)所述父節(jié)點(diǎn)的相關(guān)信息確定本次數(shù)據(jù)處 理的起始分片組標(biāo)識(shí),向々某體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消息,該消息中攜帶所述起始分片組標(biāo)識(shí);
緩沖區(qū)模塊,用于接收所述媒體服務(wù)器和所述父節(jié)點(diǎn)向所述客戶端發(fā)送的 數(shù)據(jù)。
本發(fā)明實(shí)施例還提供了 一種網(wǎng)絡(luò)通信系統(tǒng),包括點(diǎn)對(duì)點(diǎn)系統(tǒng)和媒體服務(wù) 器,其中
所述點(diǎn)對(duì)點(diǎn)系統(tǒng)中的客戶端,用于根據(jù)用戶選定的頻道確定對(duì)應(yīng)的媒體服 務(wù)器及所述客戶端在點(diǎn)對(duì)點(diǎn)系統(tǒng)中的父節(jié)點(diǎn),并根據(jù)所述父節(jié)點(diǎn)的相關(guān)信息確 定本次數(shù)據(jù)處理的起始分片組標(biāo)識(shí),向媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消 息,該消息中攜帶所述起始分片組標(biāo)識(shí),且向所述客戶端的孩子節(jié)點(diǎn)發(fā)送相應(yīng) 的數(shù)據(jù);
所述媒體服務(wù)器,用于根據(jù)所述起始分片組標(biāo)識(shí)向所述客戶端發(fā)送該頻道 的數(shù)據(jù)。
采用本發(fā)明實(shí)施例提供的技術(shù)方案,可以利用媒體服務(wù)器來獲得一次數(shù)據(jù) 處理中從起始分片組開始的一段數(shù)據(jù),由于媒體服務(wù)器可以較快的開始向客戶 端傳輸數(shù)據(jù),則客戶端可以較快的開始播放視頻文件,減少選定頻道的播放延 遲,并且,由于本發(fā)明實(shí)施例在P2P系統(tǒng)的基礎(chǔ)上引入媒體服務(wù)器來向客戶端 傳輸視頻文件,因此,采用本發(fā)明實(shí)施例還可以支持高畫質(zhì)視頻文件的傳輸。
圖1為數(shù)據(jù)分組層的FEC算法基本原理圖; 圖2為碼流切片和冗余編碼原理圖3為本發(fā)明實(shí)施例中網(wǎng)絡(luò)通信數(shù)據(jù)處理中的快速緩沖流程圖; 圖4為本發(fā)明實(shí)施例的第一實(shí)例中快速緩沖流程示意圖; 圖5為本發(fā)明實(shí)施例的第二實(shí)例中快速緩沖流程示意圖; 圖6為本發(fā)明實(shí)施例中對(duì)待播放區(qū)域進(jìn)行的處理流程圖; 圖7為本發(fā)明實(shí)施例中的客戶端框圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例中,客戶端根據(jù)用戶選定的頻道確定對(duì)應(yīng)的々某體服務(wù)器及該
客戶端在點(diǎn)對(duì)點(diǎn)系統(tǒng)中的父節(jié)點(diǎn);
該客戶端根據(jù)父節(jié)點(diǎn)的相關(guān)信息確定本次數(shù)據(jù)處理的起始分片組標(biāo)識(shí),并 向該媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消息,該消息中攜帶該起始分片組標(biāo)
識(shí);
該客戶端接收該媒體服務(wù)器根據(jù)該起始分片組標(biāo)識(shí)發(fā)送的該頻道的數(shù)據(jù), 且接收各父節(jié)點(diǎn)發(fā)送的該頻道的數(shù)據(jù)。
可見,采用上述技術(shù)方案,利用々某體服務(wù)器來獲得一次數(shù)據(jù)處理中從起始 分片組開始的一段數(shù)據(jù),由于媒體服務(wù)器可以較快的開始向客戶端傳輸數(shù)據(jù), 避免因查找和選擇多個(gè)父節(jié)點(diǎn)而需要消耗較多時(shí)間的情況,則客戶端可以較快
的開始播放視頻文件,并且,由于本發(fā)明實(shí)施例在P2P系統(tǒng)的基礎(chǔ)上引入媒體 服務(wù)器來向客戶端傳輸視頻文件,因此,采用本發(fā)明實(shí)施例還可以支持高畫質(zhì) 視頻文件的傳輸,另外,由于媒體服務(wù)器可以以大于選定頻道碼率的速率向客 戶端發(fā)送該頻道的數(shù)據(jù),因此,可以在向客戶端發(fā)送該頻道的數(shù)據(jù)時(shí),先確定 媒體服務(wù)器向客戶端發(fā)送該頻道的數(shù)據(jù)的起始速率,且令該起始速率大于該頻 道碼率,則可以使得客戶端在較短的時(shí)間內(nèi)獲得一次數(shù)據(jù)處理中從起始分片組 開始的一段數(shù)據(jù),從而在較短的延遲后開始播放該段數(shù)據(jù),達(dá)到進(jìn)一步減少選 定頻道的播放延遲的目的。
下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例做進(jìn)一步地描述。
本發(fā)明實(shí)施例中網(wǎng)絡(luò)通信數(shù)據(jù)處理中的快速緩沖流程如圖3所示,包括以 下步驟
步驟S101,用戶在客戶端上選定某一頻道;
本步驟可以是直接啟動(dòng)該頻道或者從其他頻道切換到該頻道上。
步驟S102,客戶端的拓樸管理模塊通過與RRS-P (Request Routing System
for P2P,支持P2P的用戶請(qǐng)求路由系統(tǒng))交互獲得該頻道對(duì)應(yīng)的々某體服務(wù)器以 及拓樸樹備選節(jié)點(diǎn)的地址等信息;
步驟S103,拓樸管理模塊隨機(jī)與備選節(jié)點(diǎn)進(jìn)行通信以加入P2P直播拓樸 樹,并將第一個(gè)接納的節(jié)點(diǎn)指定為主干父節(jié)點(diǎn);
步驟S104,拓樸管理模塊在獲得主干父節(jié)點(diǎn)的相關(guān)信息后,根據(jù)該相關(guān)信 息確定本次數(shù)據(jù)處理的起始分片組標(biāo)識(shí);
拓樸管理模塊通常在獲得主干父節(jié)點(diǎn)的相關(guān)信息后觸發(fā)緩沖區(qū)管理模塊 的初始4匕。
在具體實(shí)現(xiàn)時(shí),不限定一定根據(jù)主干父節(jié)點(diǎn)的相關(guān)信息來確定該起始分片 組標(biāo)識(shí),也可以是根據(jù)其它的指定父節(jié)點(diǎn)(第一指定父節(jié)點(diǎn))的相關(guān)信息來確 定,這里以主干父節(jié)點(diǎn)為例進(jìn)行說明。
本步驟地實(shí)現(xiàn)可以為拓樸管理模塊根據(jù)該頻道的碼率和分片大小以及預(yù) 設(shè)的緩沖預(yù)留區(qū)域大小計(jì)算得到該緩沖預(yù)留區(qū)域內(nèi)能夠緩存的分片組的數(shù)量, 另外,拓樸管理模塊在獲得主干父節(jié)點(diǎn)當(dāng)前向該客戶端提供的傳輸點(diǎn)后,根據(jù) 該傳輸點(diǎn)的分片組標(biāo)識(shí)和該緩沖預(yù)留區(qū)域內(nèi)能夠緩存的分片組的數(shù)量確定該 起始分片組標(biāo)識(shí),該起始分片組早于主千父節(jié)點(diǎn)當(dāng)前向該客戶端提供的傳輸點(diǎn) 的分片組,可見,確定該起始分片組標(biāo)識(shí)的具體方式可以為將該傳輸點(diǎn)的分片 組標(biāo)識(shí)向前推該緩沖預(yù)留區(qū)域內(nèi)能夠緩存的分片組的數(shù)量。
步驟S105,拓樸管理模塊向媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消息,該消 息中攜帶該起始分片組標(biāo)識(shí);
步驟S106,媒體服務(wù)器根據(jù)該起始分片組標(biāo)識(shí)以大于該頻道碼率的速率向 該客戶端發(fā)送該頻道的數(shù)據(jù);
在起始階段,媒體服務(wù)器向客戶端發(fā)送的數(shù)據(jù)包括該頻道的全部的數(shù)據(jù)子 流,其中,子流為相同分片ID對(duì)應(yīng)的分片構(gòu)成的連續(xù)分片流。
本實(shí)施例中以起始速率大于該頻道碼率為例進(jìn)行說明,在本步驟中,服務(wù) 器向客戶端發(fā)送數(shù)據(jù)的起始速率是個(gè)可配置參數(shù),確定該起始速率的具體方法
為以下任意一種
媒體服務(wù)器根據(jù)本地配置的碼率倍數(shù)信息和該頻道的碼率確定該速率; 媒體服務(wù)器根據(jù)該頻道的碼率和該客戶端的請(qǐng)求中攜帶的碼率倍數(shù)確定 該速率。
例如,媒體服務(wù)器本地配置發(fā)送數(shù)據(jù)的速率為相應(yīng)頻道碼率的1.8倍,則 媒體服務(wù)器在接收到客戶端的請(qǐng)求時(shí),會(huì)以1.8倍于相應(yīng)頻道碼率的速率向客 戶端發(fā)送數(shù)據(jù)。
在發(fā)送數(shù)據(jù)時(shí),其速率應(yīng)當(dāng)不大于該客戶端的最大帶寬。 步驟S107,該客戶端的各父節(jié)點(diǎn)向該客戶端傳輸協(xié)商確定的子流數(shù)據(jù); 在具體實(shí)現(xiàn)時(shí),步驟S106和步驟S107沒有一定的先后順序。 客戶端利用本地緩沖區(qū)來接收媒體服務(wù)器和各父節(jié)點(diǎn)發(fā)送的數(shù)據(jù),該緩沖 區(qū)通常是一個(gè)回繞結(jié)構(gòu),使用類似循環(huán)隊(duì)列的形式進(jìn)行組織。 步驟S108,緩沖區(qū)管理模塊向媒體播放模塊供流;
在具體實(shí)現(xiàn)時(shí),緩沖區(qū)管理模塊可以在用戶選定該頻道后到達(dá)設(shè)定時(shí)長時(shí) 開始向媒體播放模塊供流;
緩沖區(qū)管理模塊也可以在該客戶端向媒體服務(wù)器請(qǐng)求數(shù)據(jù)后,等待第 一設(shè) 定時(shí)長,并到達(dá)第一設(shè)定時(shí)長時(shí)開始向媒體播放模塊供流;
另外,緩沖區(qū)管理模塊還可以檢測(cè)本地緩沖區(qū)接收到的從起始分片組開始 的連續(xù)完備數(shù)據(jù)是否達(dá)到設(shè)定的第一閾值,并在檢測(cè)出達(dá)到該第 一閾值時(shí)開始 向媒體播放模塊供流。
和現(xiàn)有的處理方式相同,在供流后,緩沖區(qū)管理模塊將相應(yīng)的緩沖區(qū)釋放。
步驟S109,緩沖區(qū)管理模塊在檢測(cè)出緩沖區(qū)中媒體服務(wù)器的最新傳輸點(diǎn)與 第二指定父節(jié)點(diǎn)的最新傳輸點(diǎn)相同時(shí),通知媒體服務(wù)器將發(fā)送數(shù)據(jù)的速率切換 為與該頻道碼率相同;
該第二指定父節(jié)點(diǎn)可以是該客戶端的任意父節(jié)點(diǎn)。
其中,最新傳輸點(diǎn)標(biāo)識(shí)接收到相應(yīng)父節(jié)點(diǎn)或者々某體服務(wù)器的最大分片組的
序號(hào)。該點(diǎn)隨著播放進(jìn)度和分片的接收不斷遞增,每個(gè)子流分別都有一個(gè)最新 傳輸點(diǎn)。
步驟S110,媒體服務(wù)器根據(jù)該通知將發(fā)送數(shù)據(jù)的速率切換為與該頻道碼率相同。
在上述流程中,緩沖區(qū)管理模塊在檢測(cè)出緩沖區(qū)中々某體服務(wù)器的最新傳輸 點(diǎn)與某父節(jié)點(diǎn)的起始傳輸點(diǎn)相同時(shí),即可通知々某體服務(wù)器停止向該客戶端發(fā)送 該父節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)子流,具體可在相應(yīng)的通知消息中攜帶該父節(jié)點(diǎn)傳輸?shù)淖?流號(hào),媒體服務(wù)器則在接收到該通知消息后,停止發(fā)送該子流號(hào)對(duì)應(yīng)的數(shù)據(jù)子 流??梢?,根據(jù)上述流程,媒體服務(wù)器只需要在客戶選定一個(gè)頻道后的媒體緩 沖的初始階段以較大速率發(fā)送相應(yīng)數(shù)據(jù),在后續(xù)的過程中,由于可以在媒體服 務(wù)器的最新傳輸點(diǎn)與某父節(jié)點(diǎn)的起始傳輸點(diǎn)相同時(shí)停止向該客戶端發(fā)送該父 節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)子流,因此,由于媒體服務(wù)器的最新傳輸點(diǎn)不斷"追趕"到各 父節(jié)點(diǎn)的起始傳輸點(diǎn),則媒體服務(wù)器可以逐步停止向各父節(jié)點(diǎn)發(fā)送數(shù)據(jù),客戶 端可以直接從各父節(jié)點(diǎn)獲得其選定的頻道的數(shù)據(jù)。
另外,不限定緩沖區(qū)管理模塊在檢測(cè)出緩沖區(qū)中媒體服務(wù)器的最新傳輸點(diǎn) 與第二指定父節(jié)點(diǎn)的最新傳輸點(diǎn)相同時(shí)通知媒體服務(wù)器將發(fā)送數(shù)據(jù)的速率切
換為與該頻道碼率相同,在具體實(shí)現(xiàn)時(shí),也可以檢測(cè)從媒體服務(wù)器接收到的數(shù) 據(jù)量,并在檢測(cè)出該數(shù)據(jù)量大于設(shè)定的第二閾值時(shí),通知媒體服務(wù)器將發(fā)送數(shù)
據(jù)的速率切換為與該頻道碼率相同;或者,檢測(cè)緩沖區(qū)內(nèi)的空閑空間,并在檢 測(cè)出緩沖區(qū)內(nèi)的空閑空間低于設(shè)定的第三閾值時(shí),通知媒體服務(wù)器將發(fā)送數(shù)據(jù) 的速率切換為與該頻道碼率相同。
由于在具體實(shí)現(xiàn)時(shí),客戶端的下行帶寬有限,在向客戶端傳輸數(shù)據(jù)的并發(fā) 鏈路過多時(shí),可能導(dǎo)致分片空洞較多等傳輸問題,因此,應(yīng)該限制該并發(fā)鏈路 數(shù),而又由于緩沖區(qū)管理模塊在向媒體播放模塊供流時(shí),是從起始分片組開始 的,而媒體服務(wù)器是從起始分片組開始傳輸?shù)?,該客戶端的父?jié)點(diǎn)的有效起始 傳輸點(diǎn)都不早于媒體服務(wù)器的起始傳輸點(diǎn),因此,為了更好地減少選定頻道的
播放延遲并且盡量避免傳輸問題,所以在媒體服務(wù)器將發(fā)送數(shù)據(jù)的速率切換為 與該頻道碼率相同之前,客戶端應(yīng)當(dāng)優(yōu)先保障媒體服務(wù)器的有效下行帶寬。
下面以本發(fā)明實(shí)施例的第一實(shí)例進(jìn)一步進(jìn)行說明,在第一實(shí)例中,如圖4 所示,在該實(shí)例的各父節(jié)點(diǎn)中,主干父節(jié)點(diǎn)P1的起始傳輸點(diǎn)位于其他父節(jié)點(diǎn) 之前(圖中僅示出主干父節(jié)點(diǎn)的起始傳輸點(diǎn)位置),且主干父節(jié)點(diǎn)P1為本次傳 輸?shù)牡谝恢付ǜ腹?jié)點(diǎn)和第二指定父節(jié)點(diǎn),另外,在第一實(shí)例中,在該客戶端向 媒體服務(wù)器請(qǐng)求數(shù)據(jù)后到達(dá)設(shè)定時(shí)長時(shí)開始向媒體播放模塊供流。如圖4所示
1、 tl時(shí)刻,客戶端緩沖區(qū)管理模塊按計(jì)算出的媒體服務(wù)器起始傳輸點(diǎn)向 々某體服務(wù)器請(qǐng)求數(shù)據(jù)傳輸,媒體服務(wù)器以1.8倍于該頻道碼率的速率向該客戶 端發(fā)送數(shù)據(jù),主千父節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)子流也按照父節(jié)點(diǎn)的傳輸點(diǎn)進(jìn)行同步傳 輸,緩沖區(qū)的起始位置(通常設(shè)置緩沖區(qū)的起始位置為々某體服務(wù)器的起始傳輸 點(diǎn))接收從媒體服務(wù)器發(fā)送的(N+m)條子流的分片數(shù)據(jù),緩沖區(qū)中與其起始位 置間隔預(yù)設(shè)的緩沖預(yù)留區(qū)域之后(即主干父節(jié)點(diǎn)Pl的起始傳輸點(diǎn))則接收從 主干父節(jié)點(diǎn)Pl發(fā)送的單個(gè)子流數(shù)據(jù);
2、 t2時(shí)刻,與tl時(shí)刻間隔設(shè)定時(shí)長,在到達(dá)t2時(shí)刻后,緩沖區(qū)管理模塊 啟動(dòng)向媒體播放模塊供流,初始供流點(diǎn)即是媒體服務(wù)器的起始傳輸點(diǎn),隨后緩
沖區(qū)管理模塊將通過某種機(jī)制如設(shè)定定時(shí)器觸發(fā)定期地向媒體播放模塊供流, 其中,供流點(diǎn)是用于標(biāo)識(shí)客戶端緩沖區(qū)管理模塊向媒體播放模塊供流的數(shù)據(jù)位 置指針;
3、 t3時(shí)刻,繼續(xù)進(jìn)行快速緩沖,如圖所示,在向々某體l番放模塊供流后, 緩沖區(qū)管理模塊將相應(yīng)的緩沖區(qū)釋放,得到圖中所示的供流釋放區(qū);
4、 t4時(shí)刻,々某體服務(wù)器的最新傳輸點(diǎn)"追趕"到父節(jié)點(diǎn)P1對(duì)應(yīng)的子流起 始傳輸點(diǎn),客戶端即會(huì)通知媒體服務(wù)器停止與Pl所對(duì)應(yīng)的相同子流號(hào)的子流 傳輸,即i某體服務(wù)器從t4時(shí)刻開始只補(bǔ)償(N+m-l)條子流的分片數(shù)據(jù);
則通知媒體服務(wù)器將剩下子流的數(shù)據(jù)傳輸速率調(diào)整至正常的頻道碼率,即將
1.8倍頻道速率調(diào)整為l倍速率,客戶端的快速緩沖流程結(jié)束。
當(dāng)々某體服務(wù)器的最新傳輸點(diǎn)"追趕"到其他父節(jié)點(diǎn)的起始傳輸點(diǎn)時(shí),同樣 通知媒體服務(wù)器停止與相應(yīng)父節(jié)點(diǎn)所對(duì)應(yīng)的相同子流號(hào)的子流傳輸。
在本發(fā)明實(shí)施例的第二實(shí)例中,如圖5所示,父節(jié)點(diǎn)P3的起始傳輸點(diǎn)位 于主干父節(jié)點(diǎn)Pl之前,且本次P2P傳輸中該客戶端有4個(gè)父節(jié)點(diǎn)(Pl至P4 ), 在該實(shí)例中,令父節(jié)點(diǎn)P2為本次傳輸?shù)牡诙付ǜ腹?jié)點(diǎn),且在該第二實(shí)例中, 為了優(yōu)先保障媒體服務(wù)器與該客戶端間傳輸數(shù)據(jù)的有效帶寬,因此,在總下行 帶寬有限的情況下,并非所有的父節(jié)點(diǎn)都在連接后都需要立即傳輸子流分片數(shù) 據(jù),而可以設(shè)置所有父節(jié)點(diǎn)在連接成功后,都處于傳輸阻塞(Choke)狀態(tài), 所謂Choke狀態(tài)即連接后不傳輸數(shù)據(jù)分片,只是定期通告客戶端其能夠向該客 戶端提供的傳輸點(diǎn)的數(shù)值。也可以設(shè)置指定的父節(jié)點(diǎn)可以傳輸數(shù)據(jù)分片而其他 父節(jié)點(diǎn)處于Choke狀態(tài),例如,在第二實(shí)例中,設(shè)置父節(jié)點(diǎn)P3和主干父節(jié)點(diǎn) Pl可以傳輸數(shù)據(jù)分片而父節(jié)點(diǎn)P2和父節(jié)點(diǎn)P4處于Choke狀態(tài)。在設(shè)置某些 父節(jié)點(diǎn)處于Choke狀態(tài)的情況下,可以在媒體服務(wù)器結(jié)束快速緩沖流程(即, 將傳輸速率調(diào)整為l倍頻道碼率)后,開啟各父節(jié)點(diǎn)的數(shù)據(jù)傳輸,也可以通過 子流傳輸Qos ( Quality of Service,業(yè)務(wù)質(zhì)量)檢測(cè)對(duì)媒體服務(wù)器數(shù)據(jù)傳輸質(zhì)量 進(jìn)行追蹤,若々某體服務(wù)器子流的實(shí)際速率與理論速率基本相同,則逐步開啟處 于Choke狀態(tài)的子流父節(jié)點(diǎn)的數(shù)據(jù)傳輸,并從記錄的最新傳輸點(diǎn)位置開始傳輸 數(shù)據(jù)。
在該第二實(shí)例中,當(dāng)媒體服務(wù)器的最新傳輸點(diǎn)"5l^"到父節(jié)點(diǎn)P3的起 始傳輸點(diǎn)時(shí),客戶端通知媒體服務(wù)器停止與父節(jié)點(diǎn)P3所對(duì)應(yīng)的相同子流號(hào)的 子流傳輸;當(dāng)纟某體服務(wù)器的最新傳輸點(diǎn)"3lit,,到主干父節(jié)點(diǎn)Pl的起始傳輸 點(diǎn)時(shí),客戶端通知々某體服務(wù)器停止與主干父節(jié)點(diǎn)Pl所對(duì)應(yīng)的相同子流號(hào)的子 流傳輸;當(dāng)媒體服務(wù)器的最新傳輸點(diǎn)"追趕"到父節(jié)點(diǎn)P2的起始傳輸點(diǎn)時(shí), 客戶端通知士某體服務(wù)器停止與父節(jié)點(diǎn)P2所對(duì)應(yīng)的相同子流號(hào)的子流傳輸;當(dāng)
媒體服務(wù)器的最新傳輸點(diǎn)"追趕"到父節(jié)點(diǎn)P2的最新傳輸點(diǎn)時(shí),由于父節(jié)點(diǎn) P2為本次傳輸?shù)牡诙付ü?jié)點(diǎn),因此,在此時(shí),應(yīng)當(dāng)通知媒體服務(wù)器將剩下子 流的數(shù)據(jù)傳輸速率調(diào)整至正常的頻道碼率,客戶端節(jié)點(diǎn)的快速々某體服務(wù)器緩沖 流程結(jié)束。
為了保證客戶端視頻播放質(zhì)量和連貫性,應(yīng)當(dāng)確保緩沖區(qū)中時(shí)刻都有足夠 且完整的媒體數(shù)據(jù)源源不斷地供應(yīng)給媒體播放。因此,在本發(fā)明實(shí)施例中,緩 沖區(qū)管理模塊應(yīng)當(dāng)進(jìn)一步確保供流點(diǎn)和完備檢查點(diǎn)之間的待播區(qū)域的數(shù)據(jù)是 完整的媒體數(shù)據(jù)。其中,完備檢查點(diǎn)是用于標(biāo)識(shí)數(shù)據(jù)待播放區(qū)域結(jié)束位置指針, 待播放區(qū)域由供流點(diǎn)和設(shè)定的待播區(qū)域長度確定的。
由于在現(xiàn)有技術(shù)中利用分組級(jí)FEC技術(shù)(Packet Level FEC )進(jìn)行分片組 的傳輸和數(shù)據(jù)恢復(fù),因此,即使該待播放區(qū)域內(nèi)各分片組中出現(xiàn)了分片空洞, 但只要該待播放區(qū)域內(nèi)各分片組(N+m)中接收到N個(gè)分片,則可以利用該N 個(gè)分片恢復(fù)出原始分片數(shù)據(jù),因此,在本發(fā)明實(shí)施例中主要針對(duì)當(dāng)接收端接收 到的一個(gè)分片組中缺失的分片數(shù)量大于m時(shí),利用FEC算法無法恢復(fù)出完整 的數(shù)據(jù)的情況,本發(fā)明實(shí)施例中為確保數(shù)據(jù)完備性對(duì)待播放區(qū)域進(jìn)行的處理流 程如圖6所示,包括以下步驟
步驟S201,客戶端定期掃描待播放區(qū)域,檢測(cè)該區(qū)域內(nèi)各分片組缺失的分 片的數(shù)量是否大于冗余分片的數(shù)量,并在^f企測(cè)到一分片組中缺失的分片的數(shù)量 大于冗余分片的數(shù)量時(shí),向媒體服務(wù)器請(qǐng)求補(bǔ)償;
向媒體服務(wù)器請(qǐng)求補(bǔ)償時(shí),客戶端可以請(qǐng)求補(bǔ)償該分片組全部的缺失原始 分片,也可以根據(jù)該分片組中缺失的分片數(shù)向媒體服務(wù)器請(qǐng)求部分缺失分片 (該部分缺失分片可以是原始分片也可以是冗余分片)。
步驟S202,媒體服務(wù)器根據(jù)該請(qǐng)求返回補(bǔ)償分片;
如果向媒體服務(wù)器請(qǐng)求補(bǔ)償時(shí),客戶端請(qǐng)求的是補(bǔ)償該分片組全部的缺失 原始分片,則可以在本步驟結(jié)束后結(jié)束本流程;如果向士某體服務(wù)器請(qǐng)求補(bǔ)償時(shí), 客戶端請(qǐng)求的是部分缺失分片的話,則需要進(jìn)行步驟S203。 步驟S203,客戶端根據(jù)該分片組在緩沖區(qū)中原有的分片與媒體服務(wù)器返回 的部分缺失分片進(jìn)行該分片組的數(shù)據(jù)恢復(fù)。
可見,在上述流程中,如果向媒體服務(wù)器請(qǐng)求補(bǔ)償時(shí),客戶端請(qǐng)求的是補(bǔ) 償該分片組全部的缺失原始分片,則相對(duì)需要占用較多的網(wǎng)絡(luò)帶寬,并增加媒 體服務(wù)器發(fā)送數(shù)據(jù)的負(fù)載,而如果向媒體服務(wù)器請(qǐng)求補(bǔ)償時(shí),客戶端請(qǐng)求的是 部分分片的話,則需要客戶端根據(jù)FEC算法進(jìn)行進(jìn)一步的處理,因此,在具 體實(shí)現(xiàn)時(shí),可以根據(jù)實(shí)際的處理情況結(jié)合這兩種處理方法的特點(diǎn)進(jìn)行選擇。
在本發(fā)明實(shí)施例的第三實(shí)例中,N+m = 8 + 2,若檢查發(fā)現(xiàn)一已接收分片組 的分片分布為5+1 (即5個(gè)原始分片,l個(gè)冗余分片),為了保證8個(gè)原始分片 的完整性,則可以直接請(qǐng)求缺少的3個(gè)原始?jí)K,也可以只請(qǐng)求2個(gè)原始?jí)K,再 通過7 + 1塊恢復(fù)出原始的8個(gè)原始?jí)K,或者請(qǐng)求1個(gè)原始?jí)K和1個(gè)冗余塊, 再通過6 + 2塊恢復(fù)出原始的8個(gè)原始?jí)K。
另外,由于用以承載媒體數(shù)據(jù)分片的UDP報(bào)文在網(wǎng)絡(luò)傳輸過程無可避免 地會(huì)發(fā)生丟失現(xiàn)象,子流分片所經(jīng)過的網(wǎng)絡(luò)傳輸路徑可能會(huì)出現(xiàn)阻塞甚至斷 連,為了保證播放質(zhì)量,在出現(xiàn)大量數(shù)據(jù)丟包時(shí),客戶端緩沖區(qū)管理模塊應(yīng)能 夠偵測(cè)到這種異常情況,并通知拓樸管理模塊進(jìn)行調(diào)整以恢復(fù)子流的傳輸。子 流數(shù)據(jù)傳輸Qos檢測(cè)的基本原理為
緩沖區(qū)管理模塊根據(jù)每條子流的數(shù)據(jù)分片計(jì)數(shù)器對(duì)各子流傳輸質(zhì)量進(jìn)行 檢查跟蹤,周期性地檢測(cè)周期內(nèi)各子流的平均數(shù)據(jù)率,在4金測(cè)到一子流在設(shè)定 時(shí)間內(nèi)有設(shè)定比例或者個(gè)數(shù)的周期中的平均數(shù)據(jù)率低于設(shè)定的第五闊值時(shí),確 定該子流在該周期進(jìn)入異常狀態(tài)。例如周期性地對(duì)剛剛過去的4企查周期內(nèi)的 平均數(shù)據(jù)率進(jìn)行統(tǒng)計(jì)計(jì)算,若在持續(xù)的P個(gè)檢查周期中,累計(jì)有oc個(gè)檢查周期 的平均數(shù)據(jù)率低于該第五閾值,則確定該子流進(jìn)入異常狀態(tài)。
若發(fā)現(xiàn)子流出現(xiàn)異常,可立即通告拓樸管理模塊,讓其調(diào)整調(diào)整該客戶端 獲得該子流的途徑,例如, 一子流在發(fā)現(xiàn)異常之前,由父節(jié)點(diǎn)P5向該客戶端 傳輸,在發(fā)現(xiàn)異常后,拓樸管理模塊則可確定另一個(gè)父節(jié)點(diǎn)來傳輸該子流,也
可從媒體服務(wù)器直接取數(shù)據(jù)。某子流的父節(jié)點(diǎn)更換后,將對(duì)應(yīng)的數(shù)據(jù)分片計(jì)數(shù) 器清零重新開始計(jì)數(shù)。
在具體實(shí)現(xiàn)時(shí),該Qos檢測(cè)也可以不由緩沖區(qū)管理模塊來進(jìn)行,只要能夠 獲知子流傳輸情況的模塊都可以進(jìn)行上述異常檢測(cè)。
在上述方案中,々某體服務(wù)器可以是任何保存了相應(yīng)頻道數(shù)據(jù)的服務(wù)器。但 是由于目前已經(jīng)存在一種CDN,其相關(guān)技術(shù)逐漸被運(yùn)用到了視頻內(nèi)容的分發(fā) 上來,通過其將視頻內(nèi)容分布到靠近用戶的邊緣節(jié)點(diǎn)上,可以為用戶提供更好 的播放質(zhì)量,同時(shí)又能大大降低對(duì)骨干網(wǎng)絡(luò)的沖擊,因此,在本發(fā)明實(shí)施例中, 媒體服務(wù)器可以是內(nèi)容分發(fā)網(wǎng)絡(luò)中的媒體服務(wù)器MS-P (Media Sever for P2P, 支持P2P的媒體服務(wù)器),由于各MS-P可以向客戶端提供其本地緩沖區(qū)內(nèi)的 數(shù)據(jù),因此,在具體實(shí)現(xiàn)時(shí),MS-P在向客戶端發(fā)送數(shù)據(jù)時(shí),可以定期檢測(cè)其 能夠向客戶端提供的數(shù)據(jù)量是否不大于設(shè)定的第四閾值,并在檢測(cè)出不大于時(shí) 將向客戶端發(fā)送數(shù)據(jù)的速率切換為與該頻道碼率相同。該第四闊值可以根據(jù)需
要設(shè)定,也可以設(shè)定該第四閾值為0,在這種情況下,則MS-P向客戶端發(fā)送 的子流分片組已經(jīng)到達(dá)其緩沖區(qū)中現(xiàn)有數(shù)據(jù)的盡頭時(shí),將向客戶端發(fā)送數(shù)據(jù)的 速率切換為與該頻道碼率相同。
由實(shí)驗(yàn)結(jié)果可知,利用媒CDN中的MS-P來獲得一次數(shù)據(jù)處理中從起始 分片組開始的一段數(shù)據(jù),可以使得客戶端在較短的時(shí)間內(nèi)獲得一次數(shù)據(jù)處理中 從起始分片組開始的一段數(shù)據(jù),從而在較短的延遲后開始播放該段數(shù)據(jù),達(dá)到 減少選定頻道的"l番;改延遲的目的,通??梢孕∮?秒。
本發(fā)明實(shí)施例中的客戶端,如圖7所示,包括
頻道選擇才莫塊,用于確定用戶選定的頻道并輸出;
拓樸管理模塊,用于根據(jù)用戶選定的頻道確定對(duì)應(yīng)的々某體服務(wù)器及該客戶 端在點(diǎn)對(duì)點(diǎn)系統(tǒng)中的父節(jié)點(diǎn),并根據(jù)父節(jié)點(diǎn)的相關(guān)信息確定本次數(shù)據(jù)處理的起 始分片組標(biāo)識(shí),向媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消息,該消息中攜帶該起 始分片組標(biāo)識(shí);
緩沖區(qū)模塊,用于接收該媒體服務(wù)器和父節(jié)點(diǎn)向該客戶端發(fā)送的數(shù)據(jù)。
該客戶端可以包括緩沖區(qū)管理模塊,緩沖區(qū)管理模塊可以包括切換模塊, 該切換模塊用于檢測(cè)該緩沖區(qū)模塊內(nèi)該媒體服務(wù)器的最新傳輸點(diǎn)與指定的父 節(jié)點(diǎn)的最新傳輸點(diǎn)是否相同,并在檢測(cè)到相同時(shí),通知該^某體服務(wù)器將發(fā)送數(shù) 據(jù)的速率切換為與該頻道碼率相同。
該緩沖區(qū)管理模塊還可以包括第 一模塊,用于檢測(cè)該緩沖區(qū)模塊內(nèi)該媒體 服務(wù)器的最新傳輸點(diǎn)與各父節(jié)點(diǎn)的起始傳輸點(diǎn)是否相同,并在檢測(cè)到該媒體服 務(wù)器的最新傳輸點(diǎn)與任一父節(jié)點(diǎn)的起始傳輸點(diǎn)相同時(shí),通知該媒體服務(wù)器停止 向該客戶端發(fā)送該父節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)子流。
該緩沖區(qū)管理模塊還可以包括第二模塊,用于優(yōu)先保障該媒體服務(wù)器的有 效下行帶寬。
該緩沖區(qū)管理模塊還可以包括第三模塊,用于定期掃描該緩沖區(qū)模塊內(nèi)的 待播放區(qū)域,該待播放區(qū)域由供流點(diǎn)和設(shè)定的待播區(qū)域長度確定,檢測(cè)該區(qū)域 內(nèi)各分片組缺失的分片的數(shù)量是否大于冗余分片的數(shù)量,并在檢測(cè)到缺失的分 片的數(shù)量大于冗余分片的數(shù)量時(shí),向該士某體服務(wù)器請(qǐng)求補(bǔ)償。
該客戶端還可以包括子流檢測(cè)模塊,用于周期性地檢測(cè)周期內(nèi)各子流的平 均數(shù)據(jù)率,在檢測(cè)到一子流在設(shè)定時(shí)間內(nèi)有設(shè)定比例或者個(gè)數(shù)的周期中的平均 數(shù)據(jù)率低于設(shè)定的第五閾值時(shí),確定該子流進(jìn)入異常狀態(tài),并通知該拓樸管理
模塊;
該拓樸管理模塊,用于根據(jù)該通知調(diào)整該客戶端獲得該子流的途徑。
本發(fā)明實(shí)施例中的網(wǎng)絡(luò)通信系統(tǒng),包括P2P系統(tǒng)和士某體服務(wù)器,其中 P2P系統(tǒng)中的客戶端,用于根據(jù)用戶選定的頻道確定對(duì)應(yīng)的媒體服務(wù)器及 該客戶端在P2P系統(tǒng)中的父節(jié)點(diǎn),并根據(jù)父節(jié)點(diǎn)的相關(guān)信息確定本次數(shù)據(jù)處理 的起始分片組標(biāo)識(shí),向媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消息,該消息中攜帶 該起始分片組標(biāo)識(shí),且向該客戶端的孩子節(jié)點(diǎn)發(fā)送相應(yīng)的數(shù)據(jù);
媒體服務(wù)器,用于根據(jù)該起始分片組標(biāo)識(shí)向該客戶端發(fā)送該頻道的數(shù)據(jù)。
該媒體服務(wù)器還可以包括起始速率確定模塊,用于確定媒體服務(wù)器向客戶 端發(fā)送該頻道的數(shù)據(jù)的起始速率。
該客戶端還可以用于檢測(cè)其接收數(shù)據(jù)的緩沖區(qū)內(nèi)該々某體服務(wù)器的最新傳 輸點(diǎn)與指定的父節(jié)點(diǎn)的最新傳輸點(diǎn)是否相同,并在檢測(cè)到相同時(shí),通知該媒體 服務(wù)器將發(fā)送數(shù)據(jù)的速率切換為與該頻道碼率相同。
該客戶端還可以用于檢測(cè)該緩沖區(qū)內(nèi)該媒體服務(wù)器的最新傳輸點(diǎn)與各父 節(jié)點(diǎn)的起始傳輸點(diǎn)是否相同,并在檢測(cè)到該々某體服務(wù)器的最新傳輸點(diǎn)與任一父 節(jié)點(diǎn)的起始傳輸點(diǎn)相同時(shí),通知該媒體服務(wù)器停止向該客戶端發(fā)送該父節(jié)點(diǎn)對(duì) 應(yīng)的數(shù)據(jù)子流。
該客戶端還可以用于定期掃描該緩沖區(qū)內(nèi)的待播-放區(qū)域,該待播放區(qū)域由 供流點(diǎn)和設(shè)定的待播區(qū)域長度確定,檢測(cè)該區(qū)域內(nèi)各分片組缺失的分片的數(shù)量 是否大于冗余分片的數(shù)量,并在檢測(cè)到缺失的分片的數(shù)量大于冗余分片的數(shù)量
時(shí),向該媒體服務(wù)器請(qǐng)求補(bǔ)償;^某體服務(wù)器還用于4艮據(jù)該補(bǔ)償請(qǐng)求向客戶端發(fā) 送相應(yīng)的分片。
該媒體服務(wù)器可以為內(nèi)容分發(fā)網(wǎng)絡(luò)中的媒體服務(wù)器,該媒體服務(wù)器還可以 用于在向該客戶端發(fā)送數(shù)據(jù)時(shí),定期檢測(cè)其能夠向該客戶端提供的數(shù)據(jù)量是否 不大于設(shè)定的第四閾值,并在檢測(cè)出不大于時(shí)將向該客戶端發(fā)送數(shù)據(jù)的速率切 換為與該頻道碼率相同。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例方法中的全部或者部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀
取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì)如ROM (Read Only Memory,只讀存儲(chǔ)器) /RAM (Random Access Memory,隨機(jī)存儲(chǔ)器)、磁碟、光盤等。
綜上所述,在本發(fā)明實(shí)施例中,利用媒體服務(wù)器來獲得一次數(shù)據(jù)處理中從 起始分片組開始的一段數(shù)據(jù),使得客戶端在較短的時(shí)間內(nèi)獲得一次數(shù)據(jù)處理中 從起始分片組開始的一段數(shù)據(jù),從而在較短的延遲后開始播放該段數(shù)據(jù),減少 選定頻道的播放延遲;并且,由于本發(fā)明實(shí)施例在P2P系統(tǒng)的基礎(chǔ)上引入媒體
服務(wù)器來向客戶端傳輸^L頻文件,因此,采用本發(fā)明實(shí)施例還可以支持高畫質(zhì) 視頻文件的傳輸;另外,通過對(duì)待播放區(qū)域進(jìn)行完備性檢測(cè),并根據(jù)檢測(cè)結(jié)果 向媒體服務(wù)器請(qǐng)求補(bǔ)償,可以保證客戶端i見頻播放質(zhì)量和連貫性。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā) 明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1、一種網(wǎng)絡(luò)通信數(shù)據(jù)處理方法,其特征在于,包括客戶端根據(jù)用戶選定的頻道確定對(duì)應(yīng)的媒體服務(wù)器及所述客戶端在點(diǎn)對(duì)點(diǎn)系統(tǒng)中的父節(jié)點(diǎn);所述客戶端根據(jù)所述父節(jié)點(diǎn)的相關(guān)信息確定本次數(shù)據(jù)處理的起始分片組標(biāo)識(shí),并向所述媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消息,該消息中攜帶所述起始分片組標(biāo)識(shí);所述客戶端接收所述媒體服務(wù)器根據(jù)所述起始分片組標(biāo)識(shí)發(fā)送的該頻道的數(shù)據(jù),且接收各父節(jié)點(diǎn)發(fā)送的該頻道的數(shù)據(jù)。
2、 如權(quán)利要求1所述的方法,其特征在于,確定所述起始分片組標(biāo)識(shí)的 具體方法為根據(jù)該頻道的碼率和分片大小以及預(yù)設(shè)的緩沖預(yù)留區(qū)域大小計(jì)算 得到所述緩沖預(yù)留區(qū)域內(nèi)能夠緩存的分片組的數(shù)量,并結(jié)合第一指定父節(jié)點(diǎn)當(dāng) 前的最新傳輸點(diǎn)的分片組標(biāo)識(shí)確定所述起始分片組標(biāo)識(shí),所述起始分片組早于 所述第一指定父節(jié)點(diǎn)當(dāng)前的最新傳輸點(diǎn)的分片組。
3、 如權(quán)利要求1所述的方法,其特征在于,所述客戶端在向所述媒體服 務(wù)器發(fā)送所述請(qǐng)求消息后,等待第一設(shè)定時(shí)長,并在到達(dá)所述第一設(shè)定時(shí)長后 開始向媒體播放模塊供流。
4、 如權(quán)利要求1所述的方法,其特征在于,所述客戶端檢測(cè)接收到的從 所述起始分片組開始的連續(xù)完備數(shù)據(jù)是否達(dá)到設(shè)定的第 一 閾值,并在檢測(cè)出達(dá) 到所述第一閾值時(shí),開始向媒體播放模塊供流。
5、 如權(quán)利要求1所述的方法,其特征在于,所述i某體服務(wù)器根據(jù)所述起 始分片組標(biāo)識(shí)向所述客戶端發(fā)送該頻道的數(shù)據(jù)的具體方法為確定所述媒體服 務(wù)器向所述客戶端發(fā)送該頻道的數(shù)據(jù)的起始速率,所述起始速率大于該頻道碼 率,且所述媒體服務(wù)器根據(jù)所述起始分片組標(biāo)識(shí)以所述起始速率向所述客戶端 發(fā)送該頻道的數(shù)據(jù)。
6、 如權(quán)利要求5所述的方法,其特征在于,當(dāng)所述客戶端檢測(cè)到本地緩 沖區(qū)內(nèi)所述々某體^^務(wù)器的最新傳輸點(diǎn)與第二指定父節(jié)點(diǎn)的最新傳輸點(diǎn)相同時(shí), 通知所述Jf某體服務(wù)器將發(fā)送數(shù)據(jù)的速率切換為與該頻道碼率相同。
7、 如權(quán)利要求5所述的方法,其特征在于,當(dāng)所述客戶端檢測(cè)到從所述 媒體服務(wù)器接收到的數(shù)據(jù)量大于設(shè)定的第二闞值時(shí),通知所述媒體服務(wù)器將發(fā) 送數(shù)據(jù)的速率切換為與該頻道碼率相同。
8、 如權(quán)利要求5所述的方法,其特征在于,當(dāng)所述客戶端檢測(cè)到本地緩 沖區(qū)內(nèi)的空閑空間低于設(shè)定的第三閾值時(shí),通知所述々某體服務(wù)器將發(fā)送數(shù)據(jù)的 速率切換為與該頻道碼率相同。
9、 如權(quán)利要求5所述的方法,其特征在于,所述媒體服務(wù)器為內(nèi)容分發(fā) 網(wǎng)絡(luò)中的媒體服務(wù)器,且所述媒體服務(wù)器在向所述客戶端發(fā)送數(shù)據(jù)時(shí),定期檢 測(cè)其能夠向所述客戶端提供的數(shù)據(jù)量是否不大于設(shè)定的第四閱值,并在檢測(cè)出 不大于時(shí)將向所述客戶端發(fā)送數(shù)據(jù)的速率切換為與該頻道碼率相同。
10、 如權(quán)利要求5至9中任一權(quán)利要求所述的方法,其特征在于,在所述 媒體服務(wù)器將發(fā)送數(shù)據(jù)的速率切換為與該頻道碼率相同之前,所述客戶端優(yōu)先 保障所述媒體服務(wù)器的有效下行帶寬。
11、 如權(quán)利要求5至9中任一權(quán)利要求所述的方法,其特征在于,所述々某 體服務(wù)器確定所述起始速率的具體方法為以下任意一種所述媒體服務(wù)器根據(jù)本地配置的碼率倍數(shù)信息和該頻道的碼率確定所述 速率;所述媒體服務(wù)器根據(jù)該頻道的碼率和所述客戶端的請(qǐng)求中攜帶的碼率倍 數(shù)確定所述速率。
12、 如權(quán)利要求l、 7、 8或9所述的方法,其特征在于,當(dāng)所述客戶端檢 測(cè)到本地緩沖區(qū)內(nèi)所述媒體服務(wù)器的最新傳輸點(diǎn)與任一父節(jié)點(diǎn)的起始傳輸點(diǎn) 相同時(shí),通知所述媒體服務(wù)器停止向所述客戶端發(fā)送該父節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)子 流。
13、 如權(quán)利要求l所述的方法,其特征在于,所述客戶端定期掃描待播放 區(qū)域,所述待播放區(qū)域由供流點(diǎn)和設(shè)定的待播區(qū)域長度確定,檢測(cè)該區(qū)域內(nèi)各 分片組缺失的分片的數(shù)量是否大于冗余分片的數(shù)量,并在檢測(cè)到缺失的分片的數(shù)量大于冗余分片的數(shù)量時(shí),向所述々某體服務(wù)器請(qǐng)求補(bǔ)償; 所述媒體服務(wù)器根據(jù)該請(qǐng)求返回補(bǔ)償分片。
14、 如權(quán)利要求13所述的方法,其特征在于,向所述媒體服務(wù)器請(qǐng)求補(bǔ) 償時(shí),所述客戶端請(qǐng)求補(bǔ)償該分片組全部的缺失原始分片。
15、 如權(quán)利要求13所迷的方法,其特征在于,向所述々某體服務(wù)器請(qǐng)求補(bǔ) 償時(shí),所述客戶端根據(jù)該分片組中缺失的分片數(shù)向所述媒體服務(wù)器請(qǐng)求部分缺 失分片,并在獲得所述部分缺失分片后進(jìn)行該分片組的數(shù)據(jù)恢復(fù)。
16、 如權(quán)利要求l所述的方法,其特征在于,所述客戶端周期性地檢測(cè)周 期內(nèi)各子流的平均數(shù)據(jù)率,在檢測(cè)到一子流在設(shè)定時(shí)間內(nèi)有設(shè)定比例或者個(gè)數(shù) 的所述周期中的平均數(shù)據(jù)率低于設(shè)定的第五閾值時(shí),確定該子流進(jìn)入異常狀 態(tài),并調(diào)整該客戶端獲得該子流的途徑。
17、 一種客戶端,其特征在于,包括 頻道選擇模塊,用于確定用戶選定的頻道并輸出;拓樸管理模塊,用于根據(jù)用戶選定的頻道確定對(duì)應(yīng)的媒體服務(wù)器及所述客 戶端在點(diǎn)對(duì)點(diǎn)系統(tǒng)中的父節(jié)點(diǎn),并根據(jù)所述父節(jié)點(diǎn)的相關(guān)信息確定本次數(shù)據(jù)處 理的起始分片組標(biāo)識(shí),向媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消息,該消息中攜 帶所述起始分片組標(biāo)識(shí);緩沖區(qū)模塊,用于接收所述媒體服務(wù)器和所述父節(jié)點(diǎn)向所述客戶端發(fā)送的 數(shù)據(jù)。
18、 如權(quán)利要求17所述的客戶端,其特征在于,所述客戶端包括緩沖區(qū) 管理模塊,所述緩沖區(qū)管理模塊包括切換模塊,所述切換模塊用于檢測(cè)所述緩 沖區(qū)模塊內(nèi)所述^f某體服務(wù)器的最新傳輸點(diǎn)與指定的父節(jié)點(diǎn)的最新傳輸點(diǎn)是否 相同,并在檢測(cè)到相同時(shí),通知所述媒體服務(wù)器將發(fā)送數(shù)據(jù)的速率切換為與該 頻道碼率相同。
19、 如權(quán)利要求18所述的客戶端,其特征在于,所述緩沖區(qū)管理模塊還 包括第 一模塊,用于檢測(cè)所述緩沖區(qū)模塊內(nèi)所述媒體服務(wù)器的最新傳輸點(diǎn)與各 父節(jié)點(diǎn)的起始傳輸點(diǎn)是否相同,并在檢測(cè)到所述媒體服務(wù)器的最新傳輸點(diǎn)與任 一父節(jié)點(diǎn)的起始傳輸點(diǎn)相同時(shí),通知所述媒體服務(wù)器停止向所述客戶端發(fā)送該 父節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)子流。
20、 如權(quán)利要求18所述的客戶端,其特征在于,所述緩沖區(qū)管理模塊還 包括第二模塊,用于優(yōu)先保障所述媒體服務(wù)器的有效下行帶寬。
21、 如權(quán)利要求18所述的客戶端,其特征在于,所述緩沖區(qū)管理模塊還 包括第三模塊,用于定期掃描所述緩沖區(qū)模塊內(nèi)的待播放區(qū)域,所述待播放區(qū) 域由供流點(diǎn)和設(shè)定的待播區(qū)域長度確定,檢測(cè)該區(qū)域內(nèi)各分片組缺失的分片的 數(shù)量是否大于冗余分片的數(shù)量,并在檢測(cè)到缺失的分片的數(shù)量大于冗余分片的 數(shù)量時(shí),向所述媒體服務(wù)器請(qǐng)求補(bǔ)償。
22、 如權(quán)利要求17至21中任一權(quán)利要求所述的客戶端,其特征在于,所 述客戶端還包括子流檢測(cè)模塊,用于周期性地檢測(cè)周期內(nèi)各子流的平均數(shù)據(jù) 率,在檢測(cè)到一子流在設(shè)定時(shí)間內(nèi)有設(shè)定比例或者個(gè)數(shù)的周期中的平均數(shù)據(jù)率 低于設(shè)定的第五閾值時(shí),確定該子流進(jìn)入異常狀態(tài),并通知所述拓樸管理模塊;所述拓樸管理模塊,用于根據(jù)該通知調(diào)整該客戶端獲得該子流的途徑。
23、 一種網(wǎng)絡(luò)通信系統(tǒng),其特征在于,包括點(diǎn)對(duì)點(diǎn)系統(tǒng)和士某體服務(wù)器,其中.'所述點(diǎn)對(duì)點(diǎn)系統(tǒng)中的客戶端,用于根據(jù)用戶選定的頻道確定對(duì)應(yīng)的媒體服 務(wù)器及所述客戶端在點(diǎn)對(duì)點(diǎn)系統(tǒng)中的父節(jié)點(diǎn),并才艮據(jù)所述父節(jié)點(diǎn)的相關(guān)信息確 定本次數(shù)據(jù)處理的起始分片組標(biāo)識(shí),向媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消 息,該消息中攜帶所述起始分片組標(biāo)識(shí),且向所述客戶端的孩子節(jié)點(diǎn)發(fā)送相應(yīng) 的數(shù)據(jù);所述媒體服務(wù)器,用于根據(jù)所述起始分片組標(biāo)識(shí)向所述客戶端發(fā)送該頻道 的數(shù)據(jù)。
24、 如權(quán)利要求23所述的網(wǎng)絡(luò)通信系統(tǒng),其特征在于,所述媒體服務(wù)器 還包括起始速率確定模塊,用于確定所述媒體服務(wù)器向所述客戶端發(fā)送該頻道 的數(shù)據(jù)的起始速率。
25、 如權(quán)利要求24所述的網(wǎng)絡(luò)通信系統(tǒng),其特征在于,所述客戶端還用 于檢測(cè)其接收數(shù)據(jù)的緩沖區(qū)內(nèi)所述媒體服務(wù)器的最新傳輸點(diǎn)與指定的父節(jié)點(diǎn) 的最新傳輸點(diǎn)是否相同,并在檢測(cè)到相同時(shí),通知所述士某體服務(wù)器將發(fā)送數(shù)據(jù) 的速率切換為與該頻道碼率相同。
26、 如權(quán)利要求24所述的網(wǎng)絡(luò)通信系統(tǒng),其特征在于,所述媒體服務(wù)器 為內(nèi)容分發(fā)網(wǎng)絡(luò)中的媒體服務(wù)器,所述媒體服務(wù)器還用于在向所述客戶端發(fā)送 數(shù)據(jù)時(shí),定期檢測(cè)其能夠向所述客戶端提供的數(shù)據(jù)量是否不大于設(shè)定的第四閾 值,并在檢測(cè)出不大于時(shí)將向所述客戶端發(fā)送數(shù)據(jù)的速率切換為與該頻道碼率 相同。
27、 如權(quán)利要求23所述的網(wǎng)絡(luò)通信系統(tǒng),其特征在于,所述客戶端還用 于檢測(cè)所述緩沖區(qū)內(nèi)所述媒體服務(wù)器的最新傳輸點(diǎn)與各父節(jié)點(diǎn)的起始傳輸點(diǎn) 是否相同,并在檢測(cè)到所述媒體服務(wù)器的最新傳輸點(diǎn)與任一父節(jié)點(diǎn)的起始傳輸 點(diǎn)相同時(shí),通知所述媒體服務(wù)器停止向所述客戶端發(fā)送該父節(jié)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)子 流。
28、 如權(quán)利要求23所述的網(wǎng)絡(luò)通信系統(tǒng),其特征在于,所述客戶端還用 于定期掃描所述緩沖區(qū)內(nèi)的待播放區(qū)域,所述待播放區(qū)域由供流點(diǎn)和設(shè)定的待 播區(qū)域長度確定,檢測(cè)該區(qū)域內(nèi)各分片組缺失的分片的數(shù)量是否大于冗余分片 的數(shù)量,并在檢測(cè)到缺失的分片的數(shù)量大于冗余分片的數(shù)量時(shí),向所述媒體服 務(wù)器請(qǐng)求補(bǔ)償;所述々某體服務(wù)器還用于根據(jù)所述補(bǔ)償請(qǐng)求向所述客戶端發(fā)送相應(yīng)的分片。
全文摘要
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種網(wǎng)絡(luò)通信數(shù)據(jù)處理方法、網(wǎng)絡(luò)通信系統(tǒng)及客戶端,用以減少選定頻道的播放延遲。在本發(fā)明中,客戶端根據(jù)用戶選定的頻道確定對(duì)應(yīng)的媒體服務(wù)器及該客戶端在點(diǎn)對(duì)點(diǎn)系統(tǒng)中的父節(jié)點(diǎn);該客戶端根據(jù)父節(jié)點(diǎn)的相關(guān)信息確定本次數(shù)據(jù)處理的起始分片組標(biāo)識(shí),并向該媒體服務(wù)器發(fā)送請(qǐng)求該頻道數(shù)據(jù)的消息,該消息中攜帶該起始分片組標(biāo)識(shí);該客戶端接收該媒體服務(wù)器根據(jù)該起始分片組標(biāo)識(shí)發(fā)送的該頻道的數(shù)據(jù),且接收各父節(jié)點(diǎn)發(fā)送的該頻道的數(shù)據(jù)。采用本發(fā)明技術(shù)方案,可以減少選定頻道的播放延遲,并且可以支持高畫質(zhì)視頻文件的傳輸。
文檔編號(hào)H04L12/56GK101102312SQ20071011236
公開日2008年1月9日 申請(qǐng)日期2007年6月11日 優(yōu)先權(quán)日2007年6月11日
發(fā)明者嚴(yán)哲峰, 王志兵, 薛傳頌, 陳浩華, 魏家好 申請(qǐng)人:華為技術(shù)有限公司