專利名稱:一種數(shù)字電視推送點(diǎn)播系統(tǒng)及其推送點(diǎn)播方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字電視廣播技術(shù)領(lǐng)域,具體來(lái)說(shuō),本發(fā)明涉及一種數(shù)字電視推送點(diǎn)播系統(tǒng)及其推送點(diǎn)播方法。
背景技術(shù):
數(shù)字電視領(lǐng)域推送點(diǎn)播技術(shù)(PUSH-V0D技術(shù))是一種使用少部分的資源進(jìn)行廣播預(yù)推服務(wù),在非高峰時(shí)段把用戶關(guān)心的熱點(diǎn)資源進(jìn)行推送的技術(shù)。它可用于解決傳統(tǒng) VOD技術(shù)大量占用帶寬資源,頭端部署非常昂貴且浪費(fèi)等問(wèn)題。PUSH-VOD技術(shù)是在一個(gè)集中的時(shí)段以廣播的形式,將大量的音視頻、文件、圖片等各種數(shù)據(jù)內(nèi)容同時(shí)推送到所有用戶的本地終端內(nèi),從而使得用戶實(shí)際進(jìn)行點(diǎn)播操作時(shí)系統(tǒng)只要在終端本地進(jìn)行處理,這樣既可為用戶提供個(gè)性化大容量的點(diǎn)播服務(wù),又避免了傳統(tǒng)VOD大量占用網(wǎng)絡(luò)資源的問(wèn)題。 PUSH-VOD既適用于單向傳輸網(wǎng)絡(luò)也適應(yīng)用于雙向傳輸網(wǎng)絡(luò)(傳統(tǒng)VOD只適用于雙向傳輸網(wǎng)絡(luò)),因此具有廣闊的市場(chǎng)前景。圖1示出了一種PUSH-VOD系統(tǒng)的應(yīng)用網(wǎng)絡(luò)環(huán)境,它是典型的衛(wèi)星電視的組網(wǎng)方式,是一個(gè)完全單向的網(wǎng)絡(luò)。在這種網(wǎng)絡(luò)里,數(shù)據(jù)只能單一的從頭端傳遞到終端,終端沒(méi)有任何方法向頭端回傳數(shù)據(jù)。類似地,PUSH-VOD系統(tǒng)還應(yīng)用于傳統(tǒng)有線電視或者地面電視廣播等其它單向網(wǎng)絡(luò)中。為了通過(guò)各種不同的鏈路廣播播出,PUSH-VOD的數(shù)據(jù)是面向數(shù)據(jù)包的。和所有以廣播形式發(fā)送的技術(shù)一樣,PUSH-VOD技術(shù)中核心技術(shù)之一是解決因鏈路或者傳輸過(guò)程中的各種原因而造成的終端丟包、錯(cuò)包問(wèn)題。丟失的包和無(wú)法恢復(fù)而丟棄的錯(cuò)包,對(duì)于終端而言都是遺失數(shù)據(jù)包(Lost Packets) 0目前,為解決遺失數(shù)據(jù)包的問(wèn)題,傳統(tǒng) PUSH-VOD技術(shù)所通行的做法是由PUSH-VOD系統(tǒng)的頭端反復(fù)推送同一份文件,終端在接收到重復(fù)推送的文件時(shí),找出之前接收到的原文件中的遺失數(shù)據(jù)包進(jìn)行補(bǔ)包處理,從而保證數(shù)據(jù)的完整性。對(duì)于正常的鏈路條件,二次推送可以使平均接受率達(dá)到99%。但為了逼近于100%的理想接收率,為了更好的用戶體驗(yàn),必須要推送更多次數(shù)。而目前的PUSH-VOD系統(tǒng)大都推送4次。隨著PUSH-VOD技術(shù)的發(fā)展和推廣,PUSH-VOD技術(shù)也開(kāi)始應(yīng)用到各種雙向網(wǎng)絡(luò)中,然而,在新的應(yīng)用環(huán)境中,傳統(tǒng)PUSH-VOD系統(tǒng)的補(bǔ)包機(jī)制(即上述解決遺失數(shù)據(jù)包的問(wèn)題機(jī)制)的缺陷開(kāi)始凸現(xiàn)。在傳統(tǒng)的PUSH-VOD系統(tǒng)中,需要對(duì)全部?jī)?nèi)容進(jìn)行多次重復(fù)推送才能確保終端較高的平均接受率,因此需要占用大量的帶寬資源,導(dǎo)致效率低下。所以,迫切需要一種既能確保終端較高的平均接受率,又能提高帶寬資源利用效率的使用于雙向網(wǎng)絡(luò)的PUSH-VOD技術(shù)。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種占用帶寬較少的數(shù)字電視推送點(diǎn)播(即PUSH-V0D)系統(tǒng)及方法。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供了一種數(shù)字電視推送點(diǎn)播系統(tǒng),包括頭端系統(tǒng)和終端系統(tǒng),所述頭端系統(tǒng)用于通過(guò)廣播鏈路推送文件到終端系統(tǒng),所述終端系統(tǒng)用于接
4收頭端系統(tǒng)所推送的文件,并通過(guò)P2P機(jī)制獲取所接收的推送文件中的遺失數(shù)據(jù)包。其中,所述頭端系統(tǒng)包括頭端推送服務(wù)器和種子服務(wù)器,所述終端系統(tǒng)包括終端接收模塊和終端補(bǔ)包模塊;所述頭端推送服務(wù)器用于通過(guò)廣播鏈路推送推送信息文件和內(nèi)容文件;所述推送信息文件含有各內(nèi)容文件的P2P屬性信息,用于標(biāo)記各內(nèi)容文件當(dāng)前所處狀態(tài),所述內(nèi)容文件當(dāng)前所處狀態(tài)的類型包括非P2P補(bǔ)包狀態(tài)和P2P補(bǔ)包狀態(tài);所述種子服務(wù)器用于保存所述內(nèi)容文件的副本和生成所述內(nèi)容文件的種子文件, 并為終端提供P2P服務(wù);所述終端接收模塊用于接收頭端推送服務(wù)器所推送的文件;所述終端補(bǔ)包模塊用于統(tǒng)計(jì)所接收的內(nèi)容文件中的遺失數(shù)據(jù)包,并在該內(nèi)容文件處于P2P補(bǔ)包狀態(tài)時(shí)通過(guò)P2P機(jī)制獲取所述遺失數(shù)據(jù)包。其中,所述頭端推送服務(wù)器還用于推送內(nèi)容文件所對(duì)應(yīng)的種子文件。其中,所述數(shù)字電視推送點(diǎn)播系統(tǒng)還包括用于提供P2P服務(wù)的tracker服務(wù)器。其中,所述頭端系統(tǒng)還包括頭端統(tǒng)計(jì)服務(wù)器,用于重復(fù)推送遺失較為密集的數(shù)據(jù)包;所述終端補(bǔ)包模塊還包括終端補(bǔ)包反饋?zhàn)幽K,用于向頭端統(tǒng)計(jì)服務(wù)器反饋該終端的遺失數(shù)據(jù)包信息。本發(fā)明還提供了一種利用上述數(shù)字電視推送點(diǎn)播系統(tǒng)的數(shù)字電視推送點(diǎn)播方法, 包括下列步驟1)頭端系統(tǒng)通過(guò)廣播鏈路推送文件到終端系統(tǒng);2)終端系統(tǒng)接收頭端系統(tǒng)所推送的文件,并通過(guò)P2P機(jī)制獲取所接收的推送文件中的遺失數(shù)據(jù)包。其中,所述步驟1)包括下列子步驟11)將待推送的內(nèi)容文件的副本復(fù)制到種子服務(wù)器上,種子服務(wù)器生成所述內(nèi)容文件的種子文件;12)頭端系統(tǒng)通過(guò)廣播鏈路推送推送信息文件和內(nèi)容文件;所述推送信息文件含有各內(nèi)容文件的P2P屬性信息,用于標(biāo)記各內(nèi)容文件當(dāng)前所處狀態(tài),所述內(nèi)容文件當(dāng)前所處狀態(tài)的類型包括非P2P補(bǔ)包狀態(tài)、P2P補(bǔ)包狀態(tài);所述步驟幻包括下列子步驟21)終端系統(tǒng)接收頭端系統(tǒng)所推送的推送信息文件和內(nèi)容文件;22)終端系統(tǒng)統(tǒng)計(jì)所接收的內(nèi)容文件中的遺失數(shù)據(jù)包;23)當(dāng)所接收到的推送信息文件中標(biāo)記某一內(nèi)容文件處于P2P補(bǔ)包狀態(tài)時(shí),終端系統(tǒng)將該內(nèi)容文件加入P2P補(bǔ)包列表,并通過(guò)P2P機(jī)制獲取該內(nèi)容文件的遺失數(shù)據(jù)包;24)當(dāng)所接收到的推送信息文件中標(biāo)記某一內(nèi)容文件處于非P2P補(bǔ)包狀態(tài)時(shí),終端停止通過(guò)P2P機(jī)制獲取該內(nèi)容文件的遺失數(shù)據(jù)包。其中,所述步驟1 還包括所述頭端系統(tǒng)還通過(guò)廣播鏈路推送種子文件;所述步驟21)還包括所述終端系統(tǒng)接收頭端系統(tǒng)所推送的種子文件,當(dāng)接收到的頭端系統(tǒng)所推送的種子文件不完整時(shí),終端系統(tǒng)再通過(guò)P2P機(jī)制獲取種子文件。其中,所述步驟12)中,所述內(nèi)容文件當(dāng)前所處狀態(tài)的類型還包括等待反饋狀態(tài);所述步驟2 包括下列子步驟
221)終端系統(tǒng)統(tǒng)計(jì)本地所接收的內(nèi)容文件中的遺失數(shù)據(jù)包信息;222)當(dāng)所接收到的推送信息文件中標(biāo)記某一內(nèi)容文件處于等待反饋狀態(tài)時(shí),終端系統(tǒng)將該內(nèi)容文件在本地的遺失數(shù)據(jù)包信息反饋給頭端系統(tǒng);223)頭端系統(tǒng)根據(jù)各終端反饋的遺失數(shù)據(jù)包信息,選出遺失最密集的遺失數(shù)據(jù)包進(jìn)行推送;224)終端系統(tǒng)再次統(tǒng)計(jì)本地的遺失數(shù)據(jù)包信息以便使用P2P機(jī)制進(jìn)行補(bǔ)包。其中,所述步驟222)中,反饋遺失數(shù)據(jù)包信息的終端系統(tǒng)限于被頭端系統(tǒng)按一定比例選定的具有代表性的終端系統(tǒng);各終端系統(tǒng)向頭端系統(tǒng)進(jìn)行反饋的時(shí)間段分散設(shè)置。與現(xiàn)有技術(shù)相比,本發(fā)明具有下列技術(shù)效果1、占用的額外廣播帶寬較小,節(jié)省了有限的衛(wèi)星、有線或者地面廣播帶寬資源。2、本發(fā)明對(duì)互聯(lián)網(wǎng)資源的額外占用非常有限,因此能夠有效地提高PUSH-VOD技術(shù)總的網(wǎng)絡(luò)資源利用率。3、本發(fā)明能夠提升用戶體驗(yàn)品質(zhì)。
圖1示出了一個(gè)典型的衛(wèi)星電視單向網(wǎng)絡(luò)結(jié)構(gòu)的示意圖;圖2示出了本發(fā)明中的協(xié)議文件每個(gè)分段發(fā)送時(shí)的組包格式;圖3示出了本發(fā)明一個(gè)實(shí)施例中的可以連接互聯(lián)網(wǎng)的衛(wèi)星電視系統(tǒng)的系統(tǒng)結(jié)構(gòu)示意圖;圖4示出了本發(fā)明使用了 P2P補(bǔ)包技術(shù)的一個(gè)實(shí)施例中的邏輯框圖;圖5示出了本發(fā)明使用了終端反饋技術(shù)的另一個(gè)實(shí)施例的邏輯框圖;圖6示出了本發(fā)明使用了終端反饋技術(shù)的另一個(gè)實(shí)施例中的反饋數(shù)據(jù)包的組包格式;圖7示出了本發(fā)明使用了 P2P補(bǔ)包技術(shù)的一個(gè)實(shí)施例中推送信息文件的格式;圖8示出了本發(fā)明使用了 P2P補(bǔ)包技術(shù)的一個(gè)實(shí)施例中文件ID空間的分配情況示意圖;圖9示出了本發(fā)明使用了終端反饋技術(shù)的另一個(gè)實(shí)施例中的終端反饋的協(xié)議交互過(guò)程示意圖;圖10示出了本發(fā)明使用了終端反饋技術(shù)的另一個(gè)實(shí)施例中的頭端推送計(jì)劃示意圖。
具體實(shí)施例方式本發(fā)明的網(wǎng)絡(luò)環(huán)境必須是雙向的網(wǎng)絡(luò),具體來(lái)說(shuō),由頭端向終端廣播(推送)所使用的鏈路是可以發(fā)送廣播的衛(wèi)星、有線、微波、地面廣播等類型的鏈路,同時(shí),終端和頭端還需要直接或者間接地接入國(guó)際互聯(lián)網(wǎng),從而形成雙向網(wǎng)絡(luò)。首先,圍繞數(shù)據(jù)包的丟失和補(bǔ)包來(lái)分析。由于廣播內(nèi)容傳輸面向數(shù)據(jù)包,丟包率為遺失數(shù)據(jù)包數(shù)量與數(shù)據(jù)包總數(shù)的比率,即Lost_Packet_ratio = Lost_Packets/Total_Packets氺 100%。而終端出于效率的考慮,通常會(huì)把若干數(shù)據(jù)包中內(nèi)容合并在一起進(jìn)行寫入(指從內(nèi)存存儲(chǔ)到硬盤的過(guò)程)和追蹤,合并的一組數(shù)據(jù)包稱為一個(gè)數(shù)據(jù)塊(Block)。在實(shí)際的推送系統(tǒng)中,組成一個(gè)塊的任一數(shù)據(jù)包丟失了,那整個(gè)塊就作廢了。因此需要統(tǒng)計(jì)塊丟失率, 即Lost_Block_ratio = Lost_Blocks/Total_Blocks 氺 100%本發(fā)明中對(duì)接收率的定義是正確接收的數(shù)據(jù)塊數(shù)量與總數(shù)據(jù)塊數(shù)量的比率。即RX_Ratio = 1—Lost一Block一ratio通過(guò)現(xiàn)有推送系統(tǒng)運(yùn)行中產(chǎn)生的大量數(shù)據(jù),可以得出推送點(diǎn)播系統(tǒng)中數(shù)據(jù)包/數(shù)據(jù)塊丟失的一些規(guī)律R1,數(shù)據(jù)包錯(cuò)誤或者丟失常常在穩(wěn)定接收一段數(shù)據(jù)后連續(xù)出現(xiàn),比如連續(xù)完整接收500個(gè)數(shù)據(jù)包后連續(xù)丟失2、3個(gè)數(shù)據(jù)包。這一點(diǎn)為以數(shù)據(jù)塊(多個(gè)數(shù)據(jù)包)作為追蹤記錄的基本單位提供了可能。R2,地理相鄰的一個(gè)區(qū)域內(nèi)的所有終端,它們的接受率基本是相同的,并且丟包的序號(hào)也非常相似。R 3,從整個(gè)系統(tǒng)而言,其每一次推送的平均接收率也大致是相同的。假設(shè)這個(gè)值是95%,那么也就是說(shuō)每發(fā)出100個(gè)數(shù)據(jù)塊,平均每個(gè)終端會(huì)丟失5個(gè)。這個(gè)值稱為系統(tǒng)的固有接收率。R4,假設(shè)系統(tǒng)的固有接收率是RR_1,第二次全部推送后能達(dá)到的接收率 RR_2 ^ RR_1+(1-RR_1)*RR_1 = 2RR_1_RR_12。所以如果 RR_1 = 95%,RR_2 能達(dá)到 99. 75%; RR_1 = 80% (在實(shí)踐上已經(jīng)屬于鏈路條件比較差的情況),RR_2也能達(dá)到96%?;谝陨系姆治?,本發(fā)明設(shè)計(jì)了基于P2P機(jī)制補(bǔ)包的PUSH-VOD系統(tǒng),以有效地利用雙向網(wǎng)絡(luò)中的反向鏈路,降低對(duì)PUSH-VOD系統(tǒng)中昂貴的廣播信道的占用。下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步地描述實(shí)施例1根據(jù)本發(fā)明的實(shí)施例1,提供了一種PUSH-VOD系統(tǒng)。圖3示出了該實(shí)施例的 PUSH-VOD系統(tǒng)的實(shí)體結(jié)構(gòu),該P(yáng)USH-VOD系統(tǒng)包括頭端系統(tǒng)、終端系統(tǒng)和補(bǔ)包輔助設(shè)備(即圖3中的第二邊緣服務(wù)器)。頭端系統(tǒng)包括中央服務(wù)器、復(fù)用器、調(diào)制器和第一邊緣服務(wù)器。 終端系統(tǒng)包括天線接收器、機(jī)頂盒和顯示設(shè)備(如電視機(jī))。中央服務(wù)器與機(jī)頂盒之間具有廣播鏈路(在本實(shí)施例中是衛(wèi)星鏈路)。第一、第二邊緣服務(wù)器和機(jī)頂盒均接入互聯(lián)網(wǎng)中。其中,所述中央服務(wù)器上部署了推送服務(wù)器(推送服務(wù)器可以是一個(gè)軟件模塊), 中央服務(wù)器安裝Windows 2003 server操作系統(tǒng)。所述第一邊緣服務(wù)器上部署種子服務(wù)器(種子服務(wù)器可以是一個(gè)軟件模塊),所述第二邊緣服務(wù)器上部署了 tracker服務(wù)器 (tracker服務(wù)器可以是一個(gè)軟件模塊),第一、第二邊緣服務(wù)器上都安裝CentOS操作系統(tǒng)。 CentOS操作系統(tǒng)是商業(yè)版Red Hat Enterprise Linux (RHEL)的免費(fèi)版,是架構(gòu)LAMP的理想操作系統(tǒng),穩(wěn)定性非常好,是搭建大型商業(yè)運(yùn)行系統(tǒng)的理想選擇。在第二邊緣服務(wù)器上還可以部署NAT服務(wù)器,所述NAT服務(wù)器可用于幫助P2P的數(shù)據(jù)包穿越網(wǎng)絡(luò)防火墻,但需要注意的是,NAT不是本發(fā)明所必須的。本實(shí)施例中使用廣播數(shù)據(jù)帶寬是2Mbps。同時(shí),終端使用的是具有P2P補(bǔ)包功能的衛(wèi)星機(jī)頂盒。該衛(wèi)星機(jī)頂盒是一個(gè)嵌入式系統(tǒng),在其上運(yùn)行的是Linux的操作系統(tǒng),其中安裝終端接收模塊和終端補(bǔ)包模塊等軟件模塊。
本實(shí)施例的PUSH-VOD系統(tǒng)在邏輯上包括頭端推送服務(wù)器、頭端種子服務(wù)器、終端接收模塊、終端補(bǔ)包模塊以及tracker服務(wù)器,其邏輯結(jié)構(gòu)框圖如圖4所示。所述頭端推送服務(wù)器,用于以廣播的形式將設(shè)定的若干個(gè)文件推到每一個(gè)終端。 推送服務(wù)器的工作是由推送系統(tǒng)軟件來(lái)控制的,可設(shè)定一次連續(xù)推送若干文件的時(shí)間,這個(gè)時(shí)間稱為一個(gè)推送周期,根據(jù)實(shí)際應(yīng)用的需要,一天可以有1個(gè)或者多個(gè)推送周期,其總時(shí)長(zhǎng)也就是廣播鏈路可以空閑出來(lái)用于推送服務(wù)的時(shí)間。比如,可以把推送周期定為從晚上22:00到早上6:00,總共8小時(shí)。所有通過(guò)頭端廣播的形式到達(dá)終端的文件,都稱為推送協(xié)議文件,或簡(jiǎn)稱做協(xié)議文件。推送服務(wù)器以設(shè)定的速率廣播推送信息(本實(shí)施例中設(shè)定為96Kbps),用以指示終端正確地接收文件。所述推送信息(PI)也會(huì)被封裝成一個(gè)文件,所以推送信息文件也是一個(gè)協(xié)議文件,并且它是其它所有協(xié)議文件的根文件。參考圖7,本實(shí)施例中的推送信息文件實(shí)質(zhì)是一個(gè)XML格式的文本文件,它通常包括多個(gè)<file>節(jié)點(diǎn)和1個(gè)〈seeder〉節(jié)點(diǎn),每個(gè)<file>節(jié)點(diǎn)用來(lái)描述一個(gè)被推送的協(xié)議文件。<file>節(jié)點(diǎn)包含下列主要屬性id是文件全局的標(biāo)示,在本實(shí)施例中,所有協(xié)議文件都擁有一個(gè)全局唯一的ID號(hào),它是一個(gè)32位長(zhǎng)的數(shù)字,id空間被分成若干段,每個(gè)id空間對(duì)應(yīng)于一種特定用途的文件。本發(fā)明的協(xié)議文件的種類主要有推送信息文件、推送內(nèi)容文件(簡(jiǎn)稱內(nèi)容文件)和推送內(nèi)容文件所對(duì)應(yīng)的種子文件(簡(jiǎn)稱種子文件)。參考圖8,推送信息文件、推送內(nèi)容文件和種子文件都擁有自己的id空間。推送信息文件中,src字段是要求在終端存儲(chǔ)的路徑,根據(jù)應(yīng)用的需要,它可以是一個(gè)完整路徑也可以是一個(gè)相對(duì)路徑;name字段是給終端用戶在界面上看到的名字,可以用來(lái)方便的支持多語(yǔ)言界面顯示的要求;size字段是協(xié)議文件的大小,以字節(jié)為單位;type字段表示出文件的類型,圖中的類型” ts”指明這個(gè)協(xié)議文件是一個(gè)ts格式封裝的音視頻文件(它通常被作為內(nèi)容文件),而當(dāng)type =” seed”時(shí),指明這個(gè)協(xié)議文件是一個(gè)種子文件,用于補(bǔ)全其對(duì)應(yīng)的內(nèi)容文件,種子文件通過(guò)id屬性與它對(duì)應(yīng)的內(nèi)容文件產(chǎn)生關(guān)聯(lián),將種子文件的id的十六進(jìn)制數(shù)值最高位變?yōu)?,得出的就是對(duì)應(yīng)內(nèi)容文件的id。 Duration字段是預(yù)定該協(xié)議文件被推送的時(shí)間段,屬于輔助的信息;pushindex字段是在本推送周期中該協(xié)議文件所排的次序,只作為界面顯示時(shí)的一個(gè)參考;P2P字段是該文件所處補(bǔ)包的狀態(tài),默認(rèn)值是0,表示該文件不使用P2P方式補(bǔ)包,而當(dāng)P2P字段為1時(shí),則表示該文件可以用P2P方式來(lái)補(bǔ)包。可以看到并非所有的文件都需要以上羅列的屬性,比如種子文件自身不需要P2P字段。多個(gè)這樣的<file>節(jié)點(diǎn)和/或〈seeder〉節(jié)點(diǎn)疊加就組成了一個(gè)推送周期內(nèi)所有推送文件的信息。其中,與<file>節(jié)點(diǎn)并列的〈seeder〉節(jié)點(diǎn),記錄了全局的種子服務(wù)器的地址信息。終端只有在完整無(wú)誤地接收推送信息后,才可以接收推送服務(wù)器所推送的其它文件。為保證推送服務(wù)正常運(yùn)行,本實(shí)施例以一定的時(shí)間間隔反復(fù)廣播推送信息文件,這樣,終端在任何時(shí)候開(kāi)機(jī),都能夠正確地接收到推送信息。由于推送信息與下面會(huì)描述到的其它協(xié)議文件的封裝是一樣的,只是File Id部分被規(guī)定為從1-255之間循環(huán)遞增。在推送信息大于段長(zhǎng)度時(shí),它同樣會(huì)被分段傳輸。推送信息每一次內(nèi)容的變化,都會(huì)令File Id 加1,終端在探測(cè)到這種改變時(shí)必須要重新接收推送信息,更新本地的接收行為。從上述描述中可以看出,推送信息文件這種XML格式的設(shè)計(jì),可以很容易地被擴(kuò)展,增加新的節(jié)點(diǎn)屬性,以增加新的應(yīng)用需求。
8
所述頭端種子服務(wù)器,用于保存推送內(nèi)容文件的完整可靠的副本,并且產(chǎn)生P2P 機(jī)制所需的種子文件,同時(shí)向未從廣播的協(xié)議文件中完整獲取種子文件的終端提供接收種子文件的途徑。所述種子文件與普通P2P應(yīng)用中的種子文件意義相同,其中包含了 tracker 服務(wù)器的地址以及文件校驗(yàn)信息等內(nèi)容,在本實(shí)施例中P2P協(xié)議使用3 字節(jié)的分塊,產(chǎn)生的種子文件的大小大約是原始文件的0. 06%。tracker服務(wù)器部署于互聯(lián)網(wǎng)中。在tracker 服務(wù)器的角度,頭端種子服務(wù)器可以看做是一臺(tái)已經(jīng)具有完整數(shù)據(jù)的P2P客戶端。在P2P 方法被應(yīng)用于推送系統(tǒng)時(shí),需要解決一個(gè)問(wèn)題如何讓終端獲取種子文件?本發(fā)明提供了下述方案將種子文件編排在推送計(jì)劃中推送至終端,因?yàn)榉N子文件相對(duì)于內(nèi)容文件非常的小(在本實(shí)施例的配置中大約是萬(wàn)分之六),其占用廣播帶寬也非常有限。由于種子文件較小(1G的內(nèi)容文件的種子文件大約600K),結(jié)合前述的數(shù)據(jù)包/數(shù)據(jù)塊丟失規(guī)律Rl,R3,2次推送后可以令99%的終端完整接收種子文件。另外的終端會(huì)在進(jìn)入P2P補(bǔ)包階段時(shí), 向種子服務(wù)器去請(qǐng)求獲取種子文件,種子服務(wù)器會(huì)向tracker服務(wù)器查詢某一臺(tái)已經(jīng)獲得該種子文件的終端地址信息,用以答復(fù)這種請(qǐng)求,在查詢無(wú)效時(shí),才會(huì)自己將種子文件回復(fù)給請(qǐng)求的終端,這種做法可以避免因種子服務(wù)器處流量過(guò)大而出現(xiàn)瓶頸效應(yīng)。所述終端接收模塊用于接收推送服務(wù)器所廣播的協(xié)議文件(包括推送信息文件)。本實(shí)施例的終端接收模塊與傳統(tǒng)PUSH-VOD系統(tǒng)的相應(yīng)模塊是一致的。所述終端補(bǔ)包模塊,用于統(tǒng)計(jì)終端所接收文件中的遺失數(shù)據(jù)包,并且選擇合適的方式去獲取該終端的遺失數(shù)據(jù)包。本實(shí)施例中,所述終端補(bǔ)包模塊包括終端決策子模塊和 P2P客戶端,所述終端決策子模塊用于根據(jù)頭端指令和本地策略,對(duì)終端補(bǔ)包的所有行為做出決策。比如頭端會(huì)在對(duì)一個(gè)文件推送完畢后,在推送信息中指示終端可以對(duì)這個(gè)文件進(jìn)行補(bǔ)包的動(dòng)作(可通過(guò)修改推送信息文件中相應(yīng)<file>節(jié)點(diǎn)中的P2P字段實(shí)現(xiàn)),而終端決策子模塊就負(fù)責(zé)接收和執(zhí)行這個(gè)指令;又比如終端可以設(shè)定本地策略,對(duì)于大于一定閾值(如50%)的數(shù)據(jù)遺失情況,放棄補(bǔ)包,這種情況可能出現(xiàn)在終端開(kāi)機(jī)晚了,沒(méi)能從頭開(kāi)始接收一個(gè)文件,此時(shí)終端決策子模塊即使收到了頭端可以開(kāi)始補(bǔ)包的指示,仍舊可以決定放棄補(bǔ)包,這樣可以避免P2P流量過(guò)大。所述P2P客戶端則用于以P2P的方式從互聯(lián)網(wǎng)上獲取該終端缺失的數(shù)據(jù)塊,并為其它終端提供P2P服務(wù)。所述tracker服務(wù)器,用于維護(hù)所有互聯(lián)的P2P客戶端的接收信息。在補(bǔ)包過(guò)程中,P2P客戶端會(huì)持續(xù)與tracker服務(wù)器通信,以知道從哪里可以獲取所需的數(shù)據(jù)包,這與通常P2P應(yīng)用中的tracker服務(wù)器的作用是一致的。在本實(shí)施例的推送系統(tǒng)中,一個(gè)完整的協(xié)議文件(包括推送信息文件、內(nèi)容文件和種子文件)被分割為多個(gè)分段,每個(gè)分段被封裝成如圖2所示的數(shù)據(jù)包。參考圖2,該數(shù)據(jù)包開(kāi)頭有16個(gè)字節(jié)的包頭,其中File Id是在整個(gè)推送系統(tǒng)范圍內(nèi)唯一指明某一個(gè)協(xié)議文件的標(biāo)示,即圖8所示的id ;Size代表了該協(xié)議文件的總長(zhǎng)度;Offset代表了這段負(fù)載在原來(lái)協(xié)議文件中的偏移量;而Length代表了這一段負(fù)載的長(zhǎng)度。Playload部分是實(shí)際的負(fù)載,也稱為協(xié)議文件中的一個(gè)分段??紤]實(shí)際的廣播鏈路的一些協(xié)議限制,一個(gè)分段的長(zhǎng)度不能超過(guò)1500字節(jié)。在本實(shí)施例中,使用IOM字節(jié)的固定分段長(zhǎng)度,也就是說(shuō),除了最后一個(gè)分段,所有的分段都是IOM字節(jié)。定義每32個(gè)分段組成一個(gè)塊,文件最后少于32個(gè)分段時(shí),就把余下的分段合并成一個(gè)塊。塊是終端進(jìn)行寫入和追蹤的基本單位。按上述方式定義的塊的長(zhǎng)度與本實(shí)施例中所采用的P2P協(xié)議的塊長(zhǎng)度相同,便于二者相互匹配。在終端接收任何協(xié)議文件(包括了推送信息文件,內(nèi)容文件,種子文件和協(xié)議中定義的其它文件)時(shí),會(huì)為每一個(gè)協(xié)議文件維護(hù)一個(gè)接收進(jìn)度(RP)文件,這是一個(gè)位圖形式的文件,它的每一位(即每一個(gè)bit)代表了協(xié)議文件中的一個(gè)塊,RP文件中的一位為1 時(shí),代表該位所對(duì)應(yīng)的塊已經(jīng)接收并寫入,為0時(shí)代表該位所對(duì)應(yīng)的塊沒(méi)有收到。RP文件的大小大約是協(xié)議文件的百萬(wàn)分之四。當(dāng)一個(gè)協(xié)議文件接收完整后,終端接收模塊會(huì)自動(dòng)刪除對(duì)應(yīng)的RP文件。實(shí)施例2根據(jù)本發(fā)明的實(shí)施例2,提供了一種基于實(shí)施例1的推送系統(tǒng)的推送點(diǎn)播方法,該方法包括下列步驟1)在推送初始,種子服務(wù)器獲取內(nèi)容文件的完整拷貝,并計(jì)算出對(duì)應(yīng)的種子文件發(fā)還給推送服務(wù)器。推送服務(wù)器將種子文件也編入推送計(jì)劃中。2)頭端使用廣播信道定期向終端廣播推送信息文件,推送信息文件的格式在實(shí)施例1中已有介紹,這里不再贅述。推送信息文件中,每個(gè)內(nèi)容文件對(duì)應(yīng)的<file>節(jié)點(diǎn)的P2P 字段的初始值為0。3)頭端使用廣播信道在推送周期向終端廣播內(nèi)容文件和內(nèi)容文件所對(duì)應(yīng)的種子文件。為保證可靠性,本實(shí)施例中在廣播內(nèi)容文件前,先推送種子文件2遍。4)在一個(gè)內(nèi)容文件推送結(jié)束時(shí),頭端的推送服務(wù)器更新推送信息,標(biāo)示該內(nèi)容文件已處于P2P補(bǔ)包模式,即該推送信息文件中該內(nèi)容文件對(duì)應(yīng)的P2P字段的值修改為1。5)終端補(bǔ)包模塊始終監(jiān)視文件接收的情況,并在初始化時(shí)即打開(kāi)P2P客戶端;在接收一個(gè)內(nèi)容文件后,當(dāng)終端補(bǔ)包決策子模塊在接收到該文件處于P2P補(bǔ)包模式的指示后 (即推送信息文件中該內(nèi)容文件對(duì)應(yīng)的P2P字段的值為1時(shí)),將該文件加入P2P補(bǔ)包文件列表,如果此時(shí)該終端還沒(méi)有得到該文件的種子文件,則向種子服務(wù)器請(qǐng)求獲取種子文件, 獲取種子文件的一般步驟如下51)終端A向種子服務(wù)器請(qǐng)求種子文件χ. seed ;52)種子服務(wù)器接收到請(qǐng)求后,轉(zhuǎn)向tracker服務(wù)器查詢,得到終端B已經(jīng)擁有 X. seed,則答復(fù)終端A,讓其向終端B請(qǐng)求這個(gè)種子文件;53)終端A收到種子服務(wù)器的答復(fù)后,向終端B請(qǐng)求x. s eed ;54)終端B將χ. seed通過(guò)TCP協(xié)議發(fā)給終端A。6)終端得到種子文件后,就以通常的P2P方法去獲取所需的數(shù)據(jù)塊。對(duì)于已經(jīng)接收完整的終端,也必須開(kāi)啟著P2P客戶端,為其它終端服務(wù),直到推送信息文件中相應(yīng)P2P 字段為0。也就是終端接收模塊在接收新的推送文件時(shí),終端補(bǔ)包模塊仍舊可以在為所有列在P2P補(bǔ)包文件列表中的文件補(bǔ)包,并為其它終端提供為這些文件進(jìn)行補(bǔ)包的P2P服務(wù)。7)在終端上,當(dāng)遇到以下幾種情況時(shí),需要從P2P補(bǔ)包文件列表把一個(gè)文件刪除。 A,這個(gè)文件在本終端上已經(jīng)接收完整;B,在最新的推送信息中該文件的P2P屬性值為0 ;C, 在最新的推送信息中該文件已經(jīng)不存在。實(shí)施例3實(shí)施例1中將所有丟失數(shù)據(jù)塊由P2P方式補(bǔ)包,能夠有效地降低系統(tǒng)對(duì)廣播信道的占用,然而,這種補(bǔ)包方式對(duì)互聯(lián)網(wǎng)絡(luò)占用相對(duì)較大。因此,本發(fā)明還提供了另一種補(bǔ)包方案,以對(duì)實(shí)施例1的PUSH-VOD系統(tǒng)做進(jìn)一步改進(jìn)。在實(shí)踐中發(fā)現(xiàn),PUSH-VOD系統(tǒng)中,地理相鄰的一個(gè)區(qū)域內(nèi)的所有終端的接受率基本是相同的,并且丟包的序號(hào)也非常相似。對(duì)待相似性的丟包狀況,廣播仍舊是最有效率的做法,因此可以利用這種相似性,通過(guò)使用較小的額外的廣播鏈路帶寬來(lái)重新推送丟失最密集的數(shù)據(jù)塊,以此實(shí)現(xiàn)更有效率的二次推送,從而大幅減小對(duì)互聯(lián)網(wǎng)帶寬的占用。根據(jù)本發(fā)明的實(shí)施例3,提供了一種具有反饋機(jī)制的PUSH-VOD系統(tǒng)。如圖5所示, 具有反饋機(jī)制的PUSH-VOD系統(tǒng)在邏輯上除了包括實(shí)施例1中所有模塊外,還包括頭端統(tǒng)計(jì)服務(wù)器及終端補(bǔ)包反饋?zhàn)幽K,這兩個(gè)模塊之間可以通過(guò)互聯(lián)網(wǎng)通信。本實(shí)施例的推送系統(tǒng)的實(shí)體結(jié)構(gòu)也與實(shí)施例1基本相同,其區(qū)別是,在第一邊緣服務(wù)器上另外部署了頭端統(tǒng)計(jì)服務(wù)器;在衛(wèi)星機(jī)頂盒里包含了終端補(bǔ)包反饋?zhàn)幽K的軟件。本實(shí)施例的系統(tǒng)結(jié)構(gòu)框圖可參考圖3。本實(shí)施例中的頭端統(tǒng)計(jì)服務(wù)器,用于接收終端補(bǔ)包模塊的補(bǔ)包反饋?zhàn)幽K發(fā)送的接收反饋信息,對(duì)其進(jìn)行統(tǒng)計(jì),并決定將被重新推送的數(shù)據(jù)塊。然后通知推送服務(wù)器按照該頭端統(tǒng)計(jì)服務(wù)器做出的決策進(jìn)行第二次推送。補(bǔ)包反饋?zhàn)幽K,用于將內(nèi)容文件接收進(jìn)度信息回傳給頭端統(tǒng)計(jì)服務(wù)器。內(nèi)容文件接收進(jìn)度信息即所述接收反饋信息。統(tǒng)計(jì)服務(wù)器和終端補(bǔ)包反饋?zhàn)幽K間的協(xié)議交互過(guò)程參考圖9。首先,在TO點(diǎn),推送服務(wù)器在完成一個(gè)內(nèi)容文件第一次的推送后,更新推送信息, 將該內(nèi)容文件的P2P屬性值設(shè)為2。在本實(shí)施例中,將會(huì)在推送信息文件中增加新的全局節(jié)點(diǎn)“stat”,其中包含了統(tǒng)計(jì)服務(wù)器的地址信息和反饋等待時(shí)間FT的值;同時(shí)擴(kuò)展了推送信息文件中的file- > P2P屬性值的含義,將該內(nèi)容文件的P2P屬性值設(shè)為2,表示準(zhǔn)備接收該內(nèi)容文件的接收反饋信息。接著,在Tl點(diǎn),終端接收模塊收到更新的推送信息文件后,通知補(bǔ)包反饋?zhàn)幽K。 此時(shí)有2件事情需要考慮。第一,如果每個(gè)終端都在此時(shí)立即發(fā)送反饋數(shù)據(jù),會(huì)在瞬間發(fā)生爆炸性的數(shù)據(jù)。因此需要一個(gè)方法讓每個(gè)終端錯(cuò)開(kāi)發(fā)送反饋的時(shí)間段;第二,由于同一地區(qū)的終端接收情況是很類似的,因此完全可以只選取一定比例的有代表性的終端發(fā)送反饋數(shù)據(jù)包,而不需要全部發(fā)送,以減少網(wǎng)絡(luò)上的數(shù)據(jù)量。對(duì)于第一個(gè)問(wèn)題,本實(shí)施例使用一段時(shí)間間隙來(lái)完成反饋的行為,計(jì)做FT,頭端預(yù)先設(shè)置了該參數(shù),并且如上所述,在廣播的推送信息文件中記錄該參數(shù)的值,以將其通知給各終端。在Tl點(diǎn),補(bǔ)包反饋?zhàn)幽K使用延遲反饋算法算出這臺(tái)終端上發(fā)送反饋數(shù)據(jù)的時(shí)間點(diǎn)。所述延遲反饋算法,是一種以各終端獨(dú)立的序列號(hào)SN和規(guī)定的反饋間隙的FT為輸入?yún)?shù)而得出所需延遲時(shí)間Tdelay的計(jì)算方法,它依賴在生產(chǎn)終端機(jī)頂盒時(shí)確立的SN在自然數(shù)域的分布規(guī)律,令每一臺(tái)終端得出的結(jié)果可以在0到FT之間均勻分布??梢杂肨delay =DelayFb(SN5FT)表示這個(gè)方法,其中0 < = Tdelay <= FT。于是在時(shí)間點(diǎn)Tl+Tdelay,終端補(bǔ)包反饋?zhàn)幽K向統(tǒng)計(jì)服務(wù)器發(fā)送了反饋問(wèn)詢(FB_QUery),這個(gè)數(shù)據(jù)包里包含了以千分率為單位的該終端對(duì)于當(dāng)前內(nèi)容文件的接收率,如955,代表當(dāng)前接收率是95.5%。統(tǒng)計(jì)服務(wù)器選擇預(yù)設(shè)比例(在本實(shí)施例中是10% )的終端,答復(fù)反饋應(yīng)答(FB_
11R印Iy),其中告知可以發(fā)送反饋數(shù)據(jù)(Data字段為1);另外90%,同樣會(huì)以FB_Iteply應(yīng)答, 但會(huì)告知不用再發(fā)送反饋數(shù)據(jù)(Data字段為0)。統(tǒng)計(jì)服務(wù)器選擇這10%終端的方式來(lái)自于終端的IP地址加上隨機(jī)的選取。因?yàn)榛ヂ?lián)網(wǎng)上IP地址的分配與地域有關(guān),所以首先根據(jù)IP地址,將所有終端劃分為若干個(gè)組;再?gòu)母鱾€(gè)組中按比例隨機(jī)抽取需要反饋的終端。需要反饋數(shù)據(jù)的終端在T2時(shí)刻,發(fā)送反饋數(shù)據(jù)(FB_Data),其本質(zhì)上就是對(duì)前述 RP文件(進(jìn)度文件)的封包,由于RP文件用TCP協(xié)議通過(guò)互聯(lián)網(wǎng)傳輸,所以封裝過(guò)程中的數(shù)據(jù)分段問(wèn)題可以由TCP/IP協(xié)議自行處理。而對(duì)于本實(shí)施例的推送系統(tǒng)而言,1個(gè)數(shù)據(jù)包封裝1個(gè)RP文件。參考圖6,是反饋交互中所有數(shù)據(jù)包的封裝格式。其中FB_Flag是區(qū)分FB_QUery, FB_Replay和FB_Data的數(shù)據(jù)頭標(biāo)示,0x01表示這是一個(gè)FB_Query,0x02表示這是一個(gè)FB_ R印ly,0x04標(biāo)示這是一個(gè)FB_Data。FileId是該輪反饋交互所代表的內(nèi)容文件的id。第三個(gè)字段意義在3種包內(nèi)各不相同。當(dāng)這是一個(gè)FB_Query時(shí),此處代表Rx,是對(duì)文件Id的接收千分比值;當(dāng)這是一個(gè)FB_Reply時(shí),此處是Data,代表是否需要終端反饋數(shù)據(jù);當(dāng)這是一個(gè)FB_Data時(shí),此處是Size,代表了后續(xù)封裝的RP文件的長(zhǎng)度,在頭端接收FB_Data時(shí)應(yīng)檢查這個(gè)長(zhǎng)度,確認(rèn)和計(jì)算得出的長(zhǎng)度相等,否則視為無(wú)效的反饋數(shù)據(jù),予以丟棄。只有 FB_Data具有Payload部分,即是RP文件的內(nèi)容。統(tǒng)計(jì)服務(wù)器會(huì)預(yù)設(shè)一段大于FT的時(shí)間,用來(lái)等待所有反饋數(shù)據(jù)的完成,計(jì)做WT。 在TO時(shí)刻更新推送信息起,推送服務(wù)器即通知統(tǒng)計(jì)服務(wù)器,啟動(dòng)“等待反饋定時(shí)器”,持續(xù) WT的時(shí)間,在此期間接收的反饋數(shù)據(jù)為有效,在定時(shí)器過(guò)時(shí)后到達(dá)的反饋數(shù)據(jù)包會(huì)被丟棄。 在本實(shí)施例中,F(xiàn)T = 60,WT = 90。在接收完畢對(duì)一個(gè)內(nèi)容文件的所有反饋數(shù)據(jù)后,統(tǒng)計(jì)服務(wù)器將涉及遺失的數(shù)據(jù)塊序號(hào)按終端報(bào)告的數(shù)量由多到少排序。對(duì)于一個(gè)平均接收率在95%的系統(tǒng),可選取總數(shù)據(jù)塊的前20 %,這樣已經(jīng)可以覆蓋95 %的遺失數(shù)據(jù)塊范圍。統(tǒng)計(jì)服務(wù)器將選取的前20 %數(shù)據(jù)塊報(bào)告給推送服務(wù)器,由推送服務(wù)器安排進(jìn)行重新推送,這次推送對(duì)于終端接收率的效果將等近似于全部重新推送,但效率增長(zhǎng)了 5倍。為了不讓廣播鏈路在上述的等待反饋時(shí)間WT中產(chǎn)生空閑的浪費(fèi),只需對(duì)推送計(jì)劃做一些小的調(diào)整。參考圖10,在文件1推送完畢后,發(fā)起對(duì)文件1的反饋和統(tǒng)計(jì),并同時(shí)開(kāi)始推送文件2 ;在文件2推送的過(guò)程中,完成對(duì)文件1的反饋和統(tǒng)計(jì);在文件2推送結(jié)束后,立即開(kāi)始部分重推文件1,同時(shí)發(fā)起對(duì)文件2的反饋和統(tǒng)計(jì)。以此類推,一個(gè)推送周期以最后2個(gè)內(nèi)容文件的部分重推結(jié)束為結(jié)束。對(duì)于仍舊遺失的數(shù)據(jù)塊,則使用實(shí)施例1中的P2P方法進(jìn)行補(bǔ)包,此時(shí)需要補(bǔ)的數(shù)據(jù)已經(jīng)大大減少,因此能夠有效地降低P2P補(bǔ)包機(jī)制對(duì)互聯(lián)網(wǎng)帶寬的占用。實(shí)施例4根據(jù)本發(fā)明的實(shí)施例4,提供了一種基于實(shí)施例3的PUSH-VOD系統(tǒng)的結(jié)合了終端補(bǔ)包和反饋機(jī)制的推送點(diǎn)播方法,該方法包括下列步驟1)在推送初始,種子服務(wù)器獲取內(nèi)容文件的完整拷貝,并計(jì)算出對(duì)應(yīng)的種子文件發(fā)還給推送服務(wù)器。推送服務(wù)器將種子文件也編入推送計(jì)劃中。2)頭端使用廣播信道定期向終端廣播推送信息文件,推送信息文件的格式在實(shí)施例1和實(shí)施例3中已有介紹,這里不再贅述。推送信息文件中,每個(gè)內(nèi)容文件對(duì)應(yīng)的<file>節(jié)點(diǎn)的P2P字段的初始值為0。在推送信息文件中還攜帶種子服務(wù)器的地址,統(tǒng)計(jì)服務(wù)器的地址和反饋等待時(shí)間FT。此時(shí)所有推送內(nèi)容文件的P2P屬性值都是0。3)頭端使用廣播信道在推送周期向終端廣播內(nèi)容文件和內(nèi)容文件所對(duì)應(yīng)的種子文件。為保證可靠性,本實(shí)施例中在廣播內(nèi)容文件前,先推送種子文件2遍。4)在一個(gè)內(nèi)容文件推送結(jié)束時(shí),推送服務(wù)器更新推送信息,標(biāo)示該內(nèi)容文件開(kāi)始接收反饋,即該內(nèi)容文件對(duì)應(yīng)的P2P屬性值為2,并啟動(dòng)針對(duì)這個(gè)內(nèi)容文件的“等待反饋定時(shí)器”;同時(shí)按推送計(jì)劃開(kāi)始推送下一個(gè)協(xié)議文件。5)終端補(bǔ)包模塊始終監(jiān)視文件接收的情況,并在初始化時(shí)即打開(kāi)P2P客戶端。終端補(bǔ)包決策子模塊在最新的推送信息中了解到該文件在頭端等待反饋,于是調(diào)用補(bǔ)包反饋?zhàn)幽K對(duì)本地接收情況進(jìn)行反饋補(bǔ)包(也稱為部分重推),該反饋補(bǔ)包步驟包括下列子步驟51)終端補(bǔ)包反饋?zhàn)幽K通過(guò)延遲反饋算法算得延遲反饋的時(shí)間點(diǎn),并在這個(gè)時(shí)間點(diǎn)到來(lái)時(shí)向統(tǒng)計(jì)服務(wù)器發(fā)送FB_QUery ;52)統(tǒng)計(jì)服務(wù)器根據(jù)通過(guò)終端IP地址選擇出了 10%的終端作為提取反饋數(shù)據(jù)的代表性終端(這一過(guò)程可以預(yù)先完成),統(tǒng)計(jì)服務(wù)器在收到FB_QUery后答復(fù)FB_Iteply,告知各終端是否需要發(fā)送反饋數(shù)據(jù);53)如果該終端需要發(fā)送反饋數(shù)據(jù),則立即發(fā)送由RP文件封包而成的FB_Data。54)當(dāng)?shù)却答伓〞r(shí)器達(dá)到定時(shí)時(shí)間后,頭端統(tǒng)計(jì)服務(wù)器匯總各終端反饋的信息, 統(tǒng)計(jì)服務(wù)器將涉及數(shù)據(jù)包遺失的數(shù)據(jù)塊序號(hào)按終端報(bào)告的數(shù)量由多到少排序。選取總數(shù)據(jù)塊的前20% (這個(gè)比例可稱為部分重推比例閾值,該值可視具體情況而定)的序號(hào),通知推送服務(wù)器將這些數(shù)據(jù)塊安排進(jìn)圖10所示的推送計(jì)劃中進(jìn)行重新廣播。6)對(duì)內(nèi)容文件的部分重推結(jié)束后,推送服務(wù)器在推送信息中攜帶標(biāo)志指示該內(nèi)容文件處于P2P補(bǔ)包模式,即將相應(yīng)文件的P2P屬性值設(shè)為1。7)終端補(bǔ)包決策子模塊在得到該文件處于P2P補(bǔ)包模式的指示后,將該文件加入 P2P補(bǔ)包文件列表,如果還沒(méi)有得到該文件的種子文件,則向種子服務(wù)器請(qǐng)求。獲取種子文件的一般步驟如下71)終端A向種子服務(wù)器請(qǐng)求種子文件χ. seed ;72)種子服務(wù)器接收到請(qǐng)求后,轉(zhuǎn)向tracker服務(wù)器查詢,得到終端B已經(jīng)擁有 X. seed,則答復(fù)終端A,讓其向終端B請(qǐng)求這個(gè)種子文件;73)終端A收到種子服務(wù)器的答復(fù)后,向終端B請(qǐng)求x. seed ;74)終端B將χ. seed通過(guò)TCP協(xié)議發(fā)給終端A。8)得到種子文件后,就以通常的P2P方法去獲取所需的數(shù)據(jù)塊。對(duì)于已經(jīng)接收完整的終端,也必須開(kāi)啟著P2P客戶端,為其它終端服務(wù)。在這之后的推送信息中,該內(nèi)容文件一直處于P2P補(bǔ)包模式,也就是終端接收模塊在接收新的推送文件時(shí),終端補(bǔ)包模塊仍舊可以在為所有列在P2P補(bǔ)包文件列表中的文件補(bǔ)包。9)在終端上,當(dāng)遇到以下幾種情況時(shí),需要從P2P補(bǔ)包文件列表把一個(gè)文件刪除。 A,這個(gè)文件在本終端上已經(jīng)接收完整;B,在最新的推送信息中該文件的p2p屬性值為0 ;C, 在最新的推送信息中該文件已經(jīng)不存在。下面分析本發(fā)明對(duì)各類帶寬的使用情況。
在實(shí)施例1、2中,廣播推送只進(jìn)行1次,推送種子文件增加額外千分之一的開(kāi)銷, 可以忽略不計(jì)。對(duì)于互聯(lián)網(wǎng)的開(kāi)銷在獲取種子文件的過(guò)程和P2P補(bǔ)包的過(guò)程。實(shí)驗(yàn)中, 一次推送的平均接受率約是95%,因此,在實(shí)施例1、2中,互聯(lián)網(wǎng)數(shù)據(jù)總量Q 5. 0006% *N*P(其中N為終端數(shù)目,P為推送總數(shù)據(jù)量,5%是需要補(bǔ)足的數(shù)據(jù)量百分比,0. 0006%是需要通過(guò)網(wǎng)絡(luò)獲取的種子文件的數(shù)據(jù)量百分比)??紤]到這兩個(gè)過(guò)程都使用了 P2P技術(shù),互聯(lián)網(wǎng)開(kāi)銷被分擔(dān)在各個(gè)終端的IP鏈路上,并且廣播推送和P2P補(bǔ)包有近似相同的時(shí)間跨度 (8小時(shí)的推送周期內(nèi)),所以對(duì)每個(gè)終端的IP帶寬占用平均為T = 2M*5. 0006%- IOOK0 可以看到廣播鏈路的使用已經(jīng)降低到最低的程度,互聯(lián)網(wǎng)的數(shù)據(jù)量主要來(lái)自于補(bǔ)包的內(nèi)容,其總量還是比較巨大。如果遇到鏈路質(zhì)量不佳的狀況,P2P對(duì)網(wǎng)絡(luò)資源的占用將加劇。在實(shí)施例3、4中,由統(tǒng)計(jì)服務(wù)器選出了 20%的數(shù)據(jù)進(jìn)行重推,也就是1. 2次的推送。而這種經(jīng)過(guò)挑選的重推可以達(dá)到與全部重新推送近似的效果,根據(jù)推送律R4,在固有接收率95%的情況下,全部二次推送后的接收率可以達(dá)到99. 75%,算上部分重推的數(shù)據(jù)只覆蓋了 95%的遺失數(shù)據(jù)塊的細(xì)微損失,部分重推后可以使接收率達(dá)到99. 5%。對(duì)于互聯(lián)網(wǎng)的開(kāi)銷在終端反饋數(shù)據(jù)的過(guò)程、獲取種子文件的過(guò)程和P2P補(bǔ)包的過(guò)程。每個(gè)FB_Data 的數(shù)據(jù)總量RP_Q ^ 0. 0004% *N*S*0. 1 (其中N為終端數(shù)目,S為單個(gè)推送內(nèi)容文件的平均大小,0. 0004%是RP文件相對(duì)于內(nèi)容文件的比例,0. 1是因?yàn)檫x取了 10%的終端反饋數(shù)據(jù)),當(dāng)N= 1000,S = 100M bytes 時(shí),RP_Q 40M bytes。因?yàn)?FT = 60,也就是將所有反饋數(shù)據(jù)分配在1分鐘的時(shí)間間隙內(nèi)完成,頭端統(tǒng)計(jì)服務(wù)器所需的帶寬RP_T ^ 40M*8/60 = 5. 33Mbps。再繼續(xù)擴(kuò)大終端數(shù)目的話,可以通過(guò)增大FT的值,來(lái)減輕頭端所需承受的網(wǎng)絡(luò)帶寬壓力。因?yàn)榈却答仌r(shí)隙利用了下一個(gè)文件的推送時(shí)間段,所以FT有很寬裕的增長(zhǎng)空間。這個(gè)時(shí)候再應(yīng)用P2P補(bǔ)包,每個(gè)終端的IP帶寬占用降為T = 2M*0. 5006%^ 10Kbps。 可以看到互聯(lián)網(wǎng)的數(shù)據(jù)量只有實(shí)施例1,2的十分之一。值得說(shuō)明的是,以上實(shí)施例雖然都采用了 P2P機(jī)制進(jìn)行補(bǔ)包,但可以理解,只要各終端能夠通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)與頭端或部署在計(jì)算機(jī)網(wǎng)絡(luò)中的服務(wù)器連接,終端即可從計(jì)算機(jī)網(wǎng)絡(luò)下載所需的遺失數(shù)據(jù)塊,其下載所需的遺失數(shù)據(jù)塊的方法并不限于P2P機(jī)制。特別地, 在實(shí)施例3,4中,當(dāng)頭端進(jìn)行二次推送后,實(shí)際需要進(jìn)行補(bǔ)包的數(shù)據(jù)塊已經(jīng)比較少,此時(shí), 直接讓每個(gè)終端直接向頭端種子服務(wù)器請(qǐng)求數(shù)據(jù)并下載數(shù)據(jù)(不使用P2P機(jī)制)也可以達(dá)到補(bǔ)包的目的。并且,這種做法也并不會(huì)增加頭端的復(fù)雜性。在中小型規(guī)模的應(yīng)用中(比如終端數(shù)量小于1000),根據(jù)以上的計(jì)算,頭端只要有IOMbps的出口帶寬,即可滿足要求。 而此時(shí)由于不需要tracker服務(wù)器,終端機(jī)頂盒中也不需要有P2P客戶端,整個(gè)系統(tǒng)的成本可以進(jìn)一步降低。綜上上述,本發(fā)明相對(duì)于現(xiàn)有的單向網(wǎng)絡(luò)中的推送點(diǎn)播系統(tǒng)具有如下的優(yōu)勢(shì)1)本發(fā)明提出的終端反饋方法,以1次完整推送加上1次部分推送,達(dá)到單向 PUSH-VOD系統(tǒng)2次完整推送所能達(dá)到的效果。也就是對(duì)廣播鏈路帶寬的需求比現(xiàn)有系統(tǒng)低。這在資源稀缺的衛(wèi)星鏈路上具有很高的現(xiàn)實(shí)意義。2)本發(fā)明提出以P2P的技術(shù)完成小量的補(bǔ)包,使得在理論上,所有的終端都可以達(dá)到100%的最終接收率,而在傳統(tǒng)的推送系統(tǒng)中,付出巨大的鏈路開(kāi)銷,也只能無(wú)限逼近這個(gè)目標(biāo),而不可能保證這一點(diǎn)。因此本發(fā)明能夠有效提升PUSH-VOD系統(tǒng)的用戶體驗(yàn)的品質(zhì)。
3)本發(fā)明提出以P2P技術(shù)作為PUSH-VOD的補(bǔ)充,使小部分錯(cuò)過(guò)推送時(shí)間段的終端,從技術(shù)上有了重新獲取錯(cuò)失文件的條件,這也將提高PUSH-VOD系統(tǒng)的用戶體驗(yàn)的品質(zhì)。
權(quán)利要求
1.一種數(shù)字電視推送點(diǎn)播系統(tǒng),包括頭端系統(tǒng)和終端系統(tǒng),所述頭端系統(tǒng)和終端系統(tǒng)之間具有廣播鏈路,所述頭端和終端系統(tǒng)均接入計(jì)算機(jī)網(wǎng)絡(luò)中,所述頭端系統(tǒng)用于通過(guò)廣播鏈路推送文件到終端系統(tǒng),所述終端系統(tǒng)用于接收頭端系統(tǒng)所推送的文件,并通過(guò)所述計(jì)算機(jī)網(wǎng)絡(luò)獲取所接收的推送文件中的遺失數(shù)據(jù)包。
2.根據(jù)權(quán)利要求1所述的數(shù)字電視推送點(diǎn)播系統(tǒng),其特征在于,所述頭端系統(tǒng)包括頭端推送服務(wù)器和種子服務(wù)器,所述終端系統(tǒng)包括終端接收模塊和終端補(bǔ)包模塊;所述頭端推送服務(wù)器用于通過(guò)廣播鏈路推送推送信息文件和內(nèi)容文件;所述推送信息文件含有各內(nèi)容文件的P2P屬性信息,用于標(biāo)記各內(nèi)容文件當(dāng)前所處狀態(tài),所述內(nèi)容文件當(dāng)前所處狀態(tài)的類型包括非P2P補(bǔ)包狀態(tài)和P2P補(bǔ)包狀態(tài);所述種子服務(wù)器用于保存所述內(nèi)容文件的副本和生成所述內(nèi)容文件的種子文件,并為終端提供P2P服務(wù);所述終端接收模塊用于接收頭端推送服務(wù)器所推送的文件;所述終端補(bǔ)包模塊用于統(tǒng)計(jì)所接收的內(nèi)容文件中的遺失數(shù)據(jù)包,并在該內(nèi)容文件處于 P2P補(bǔ)包狀態(tài)時(shí)通過(guò)P2P機(jī)制獲取所述遺失數(shù)據(jù)包。
3.根據(jù)權(quán)利要求2所述的數(shù)字電視推送點(diǎn)播系統(tǒng),其特征在于,所述頭端推送服務(wù)器還用于推送內(nèi)容文件所對(duì)應(yīng)的種子文件。
4.根據(jù)權(quán)利要求2所述的數(shù)字電視推送點(diǎn)播系統(tǒng),其特征在于,所述數(shù)字電視推送點(diǎn)播系統(tǒng)還包括用于提供P2P服務(wù)的tracker服務(wù)器。
5.根據(jù)權(quán)利要求2所述的數(shù)字電視推送點(diǎn)播系統(tǒng),其特征在于,所述頭端系統(tǒng)還包括頭端統(tǒng)計(jì)服務(wù)器,用于重復(fù)推送遺失較為密集的數(shù)據(jù)包;所述終端補(bǔ)包模塊還包括終端補(bǔ)包反饋?zhàn)幽K,用于向頭端統(tǒng)計(jì)服務(wù)器反饋該終端的遺失數(shù)據(jù)包信息。
6.一種利用權(quán)利要求1所述的數(shù)字電視推送點(diǎn)播系統(tǒng)的數(shù)字電視推送點(diǎn)播方法,包括下列步驟1)頭端系統(tǒng)通過(guò)廣播鏈路推送文件到終端系統(tǒng);2)終端系統(tǒng)接收頭端系統(tǒng)所推送的文件,并通過(guò)P2P機(jī)制獲取所接收的推送文件中的遺失數(shù)據(jù)包。
7.根據(jù)權(quán)利要求6所述的數(shù)字電視推送點(diǎn)播方法,其特征在于,所述步驟1)包括下列子步驟11)將待推送的內(nèi)容文件的副本復(fù)制到種子服務(wù)器上,種子服務(wù)器生成所述內(nèi)容文件的種子文件;12)頭端系統(tǒng)通過(guò)廣播鏈路推送推送信息文件和內(nèi)容文件;所述推送信息文件含有各內(nèi)容文件的P2P屬性信息,用于標(biāo)記各內(nèi)容文件當(dāng)前所處狀態(tài),所述內(nèi)容文件當(dāng)前所處狀態(tài)的類型包括非P2P補(bǔ)包狀態(tài)、P2P補(bǔ)包狀態(tài);所述步驟幻包括下列子步驟21)終端系統(tǒng)接收頭端系統(tǒng)所推送的推送信息文件和內(nèi)容文件;22)終端系統(tǒng)統(tǒng)計(jì)所接收的內(nèi)容文件中的遺失數(shù)據(jù)包;23)當(dāng)所接收到的推送信息文件中標(biāo)記某一內(nèi)容文件處于P2P補(bǔ)包狀態(tài)時(shí),終端系統(tǒng)將該內(nèi)容文件加入P2P補(bǔ)包列表,并通過(guò)P2P機(jī)制獲取該內(nèi)容文件的遺失數(shù)據(jù)包;24)當(dāng)所接收到的推送信息文件中標(biāo)記某一內(nèi)容文件處于非P2P補(bǔ)包狀態(tài)時(shí),終端停止通過(guò)P2P機(jī)制獲取該內(nèi)容文件的遺失數(shù)據(jù)包。
8.根據(jù)權(quán)利要求7所述的數(shù)字電視推送點(diǎn)播方法,其特征在于,所述步驟1 還包括 所述頭端系統(tǒng)還通過(guò)廣播鏈路推送種子文件;所述步驟21)還包括所述終端系統(tǒng)接收頭端系統(tǒng)所推送的種子文件,當(dāng)接收到的頭端系統(tǒng)所推送的種子文件不完整時(shí),終端系統(tǒng)再通過(guò)P2P機(jī)制獲取種子文件。
9.根據(jù)權(quán)利要求7所述的數(shù)字電視推送點(diǎn)播方法,其特征在于,所述步驟12)中,所述內(nèi)容文件當(dāng)前所處狀態(tài)的類型還包括等待反饋狀態(tài);所述步驟2 包括下列子步驟221)終端系統(tǒng)統(tǒng)計(jì)本地所接收的內(nèi)容文件中的遺失數(shù)據(jù)包信息;222)當(dāng)所接收到的推送信息文件中標(biāo)記某一內(nèi)容文件處于等待反饋狀態(tài)時(shí),終端系統(tǒng)將該內(nèi)容文件在本地的遺失數(shù)據(jù)包信息反饋給頭端系統(tǒng);223)頭端系統(tǒng)根據(jù)各終端反饋的遺失數(shù)據(jù)包信息,選出遺失最密集的遺失數(shù)據(jù)包進(jìn)行推送;224)終端系統(tǒng)再次統(tǒng)計(jì)本地的遺失數(shù)據(jù)包信息以便使用P2P機(jī)制進(jìn)行補(bǔ)包。
10.根據(jù)權(quán)利要求9所述的數(shù)字電視推送點(diǎn)播方法,其特征在于,所述步驟222)中,反饋遺失數(shù)據(jù)包信息的終端系統(tǒng)限于被頭端系統(tǒng)按一定比例選定的具有代表性的終端系統(tǒng); 各終端系統(tǒng)向頭端系統(tǒng)進(jìn)行反饋的時(shí)間段分散設(shè)置。
全文摘要
本發(fā)明提供一種數(shù)字電視推送點(diǎn)播系統(tǒng),包括頭端系統(tǒng)和終端系統(tǒng),所述頭端系統(tǒng)和終端系統(tǒng)之間具有廣播鏈路,所述頭端和終端系統(tǒng)均接入計(jì)算機(jī)網(wǎng)絡(luò)中,所述頭端系統(tǒng)用于通過(guò)廣播鏈路推送文件到終端系統(tǒng),所述終端系統(tǒng)用于接收頭端系統(tǒng)所推送的文件,并通過(guò)所述計(jì)算機(jī)網(wǎng)絡(luò)獲取所接收的推送文件中的遺失數(shù)據(jù)包。本發(fā)明還提供了相應(yīng)的數(shù)字電視推送點(diǎn)播方法。本發(fā)明占用的額外廣播帶寬較小,節(jié)省了有限的衛(wèi)星、有線或者地面廣播帶寬資源。本發(fā)明對(duì)互聯(lián)網(wǎng)資源的額外占用非常有限,因此能夠有效地提高PUSH-VOD技術(shù)總的網(wǎng)絡(luò)資源利用率。本發(fā)明能夠提升用戶體驗(yàn)品質(zhì)。
文檔編號(hào)H04N21/63GK102215435SQ201010140790
公開(kāi)日2011年10月12日 申請(qǐng)日期2010年4月2日 優(yōu)先權(quán)日2010年4月2日
發(fā)明者杜俊峰, 黃雷 申請(qǐng)人:科騰科技(北京)有限公司