專利名稱:數(shù)字內(nèi)容分發(fā)系統(tǒng)、方法、程序及服務(wù)器和客戶機(jī)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字內(nèi)容的分發(fā)。具體而言,本發(fā)明涉及數(shù)字內(nèi)容分發(fā)系統(tǒng)和數(shù)字內(nèi)容分發(fā)方法,該系統(tǒng)和方法通過網(wǎng)絡(luò)從數(shù)字內(nèi)容分發(fā)站點(diǎn)分發(fā)數(shù)字內(nèi)容,并使許多客戶機(jī)在其內(nèi)部存儲數(shù)字內(nèi)容,從而能夠通過網(wǎng)絡(luò)有效地分發(fā)數(shù)字內(nèi)容。此外,本發(fā)明還涉及執(zhí)行該方法的程序、存有該程序的計(jì)算機(jī)可讀記錄介質(zhì),以及所用的服務(wù)器和客戶機(jī)。
此外,本發(fā)明還涉及數(shù)字內(nèi)容分發(fā)系統(tǒng),該系統(tǒng)在減少服務(wù)器通信業(yè)務(wù)開銷的同時(shí),可以將數(shù)字內(nèi)容分發(fā)到預(yù)定廣域組,該廣域組包括許多用網(wǎng)絡(luò)互相連接的組,每個(gè)組包括多個(gè)客戶機(jī)。此外,本發(fā)明還涉及所述系統(tǒng)的服務(wù)器和客戶機(jī)、使計(jì)算機(jī)作為上述服務(wù)器和客戶機(jī)而工作的控制方法、用于該控制方法的程序以及用于記錄該程序的計(jì)算機(jī)可讀記錄介質(zhì)。
背景技術(shù):
近年來,像因特網(wǎng)那樣包括計(jì)算機(jī)、公共電話線、ISDN、光學(xué)通信、無線通信、ADSL和CATV等系統(tǒng)的網(wǎng)絡(luò)越來越普及??梢栽O(shè)想,將來的服務(wù)也將越來越普及,即不僅可提供電子郵件等數(shù)字內(nèi)容,而且還可把來自數(shù)字內(nèi)容提供站點(diǎn)服務(wù)器的文本數(shù)據(jù)、音頻數(shù)據(jù)、圖像數(shù)據(jù)和多媒體數(shù)據(jù)通過網(wǎng)絡(luò)合成并分發(fā)給計(jì)算機(jī)或移動(dòng)終端等客戶機(jī)。
與此同時(shí),除了上述因特網(wǎng)等能夠在很寬的范圍內(nèi)管理或分發(fā)數(shù)字內(nèi)容的第一網(wǎng)絡(luò)外,諸如局域網(wǎng)(LAN)和廣域網(wǎng)(WAN)等第二網(wǎng)絡(luò)也迅速得到普及,與因特網(wǎng)相比,這些網(wǎng)絡(luò)在較窄的范圍內(nèi)共享、管理和分發(fā)數(shù)字內(nèi)容。上述第二網(wǎng)絡(luò)可以使計(jì)算機(jī)資源在公共組中,例如政府單位、行政機(jī)構(gòu)、教育機(jī)構(gòu)、圖書館和廣播通信組織中,得到有效的使用。特別是,可以說在不少情況下,當(dāng)前公共組中服務(wù)器之間的連接是通過許多屬于多個(gè)組的網(wǎng)絡(luò)實(shí)現(xiàn)的。一般說來,多個(gè)客戶,例如計(jì)算機(jī)(以下統(tǒng)稱為“客戶機(jī)”),都互相連接,以便在上述各個(gè)第二網(wǎng)絡(luò)中形成預(yù)定組,這樣就能使各個(gè)組保存特定的數(shù)字內(nèi)容。
在上述網(wǎng)絡(luò)環(huán)境中,有時(shí)可能需要將服務(wù)器中所保存的數(shù)字內(nèi)容分發(fā)給屬于其它網(wǎng)絡(luò)的多個(gè)客戶機(jī)。迄今為止,已提出了各種用于將數(shù)字內(nèi)容從服務(wù)器分發(fā)到多個(gè)客戶機(jī)的傳輸方法或系統(tǒng)。
例如,Deering,S等人在“互聯(lián)網(wǎng)和擴(kuò)展局域網(wǎng)上的多播路由選擇(斯坦福大學(xué),計(jì)算機(jī)科學(xué)技術(shù)系報(bào)告STAN-CS-88-1214,1988年7月)”中提出了一種叫做IP多播的方法,目的是為了避免數(shù)據(jù)包在網(wǎng)絡(luò)路由上的重疊。圖31是一幅示意圖,所展示的就是Deering等人所提出的IP多播方法。如圖31所示,Deering等人所提出的IP多播方法的缺點(diǎn)是使網(wǎng)絡(luò)資源復(fù)雜化,包括需要放置含有客戶接收服務(wù)“狀態(tài)”的專用路由器,而不是采用進(jìn)行IP傳輸?shù)暮唵温酚善魍ㄟ^消除網(wǎng)絡(luò)100上數(shù)據(jù)包重疊的方法來實(shí)現(xiàn)良好的通信。另一個(gè)缺點(diǎn)是,網(wǎng)絡(luò)可擴(kuò)展性受到限制,包括必須擴(kuò)展網(wǎng)絡(luò)設(shè)備,并且在與上述網(wǎng)絡(luò)資源的復(fù)雜化有關(guān)的客戶機(jī)撤離所造成的突然干擾等狀況下,不具備復(fù)制能力。
此外,由于IP多播具有從任意數(shù)據(jù)源向任意組分發(fā)數(shù)據(jù)的結(jié)構(gòu),所以,IP多播的缺點(diǎn)是弱化了對付惡意攻擊的能力,并且需要為組進(jìn)行全球地址加密。但是,IP多播的優(yōu)點(diǎn)是,分發(fā)數(shù)字內(nèi)容服務(wù)的管理成本較低,因?yàn)镮P多播基本上提供的是盡力而為服務(wù)。然而,IP多播不適于在企業(yè)中樞線路內(nèi)使用,因?yàn)樵谄髽I(yè)中樞線路內(nèi)很小的線路中斷都會導(dǎo)致很大的損失,而且在用于移動(dòng)圖像的分發(fā)時(shí),始終需要固定的保密頻帶。如上所述,與單播相比,IP多播的缺點(diǎn)是在保證可靠性、避免擁堵和保證保密性方面的難度較大。此外,IP多播需要大幅度改變網(wǎng)絡(luò)的基礎(chǔ)結(jié)構(gòu)。鑒于上述理由,現(xiàn)在還不能說IP多播是實(shí)用的。
而且,為了解決上述IP多播的問題,提出了一種“應(yīng)用層多播系統(tǒng)”,在以下文件中對該系統(tǒng)進(jìn)行了描述Dimitrios Pendarakis、Sherlia shi、Dinesh Verma和Marcel Waldvogel.Almi應(yīng)用層多播基礎(chǔ)結(jié)構(gòu),第三屆USENIX因特網(wǎng)技術(shù)與系統(tǒng)(USITS)研討會論文集,第49-60頁,2001年;Y.Chu,S.Rao和H.Zhang終端系統(tǒng)多播的案例,國際計(jì)算機(jī)組織測量與估評專業(yè)組織(ACM Sigmatrics)論文集,2000年6月;P.Francis,“Yoid擴(kuò)展互聯(lián)網(wǎng)多播結(jié)構(gòu)”,預(yù)印件可從網(wǎng)址http://www.isis.edu/div7/,2000年4月獲得。
在上述背景技術(shù)中,使用了一種系統(tǒng),在該系統(tǒng)中客戶機(jī)也用作數(shù)據(jù)包傳輸?shù)闹欣^點(diǎn),而且數(shù)據(jù)包被傳送到下游客戶機(jī)。圖32是一幅示意圖,用于描述利用應(yīng)用層多播系統(tǒng)進(jìn)行的數(shù)字內(nèi)容分發(fā)。圖32所示應(yīng)用層多播系統(tǒng)被配置為賦予了客戶機(jī)106一個(gè)等級,而且客戶機(jī)106可以按照單個(gè)路徑樹的結(jié)構(gòu)來傳送數(shù)據(jù)包。在圖32中所示的應(yīng)用層多播系統(tǒng)中,Pendarakis等人計(jì)算了可使所有加入的客戶機(jī)互相有效連接的最小網(wǎng)絡(luò)。此外,Chu等人還試圖向客戶機(jī)分配數(shù)據(jù)包流量。
最小網(wǎng)絡(luò)構(gòu)成了,例如,最小跨越樹(MST)的形式,其中樹枝用來往傳輸時(shí)間(RTT)加權(quán)。由于MST是靜態(tài)確定的,所以如果發(fā)生聯(lián)結(jié)的客戶機(jī)離開的現(xiàn)象,就應(yīng)重建網(wǎng)絡(luò)。由于服務(wù)器108進(jìn)行這種重建的計(jì)算,所以就存在使服務(wù)器108的開銷增加的缺點(diǎn)。此外,還提出了一種用于減少服務(wù)器108開銷的方法,根據(jù)該方法,由客戶機(jī)的加入P6和離開分別導(dǎo)致的重建計(jì)算在本地進(jìn)行,并對最小網(wǎng)絡(luò)的整個(gè)重建進(jìn)行檢查,等等。但是,如果處于路徑樹結(jié)構(gòu)中間點(diǎn)位置上傳送數(shù)據(jù)包的客戶機(jī)離開,而且如果客戶機(jī)106的中央處理器(CPU)因被分配到另一項(xiàng)處理而無法進(jìn)行數(shù)據(jù)包的中繼,則最小網(wǎng)絡(luò)將受到某種因素的影響,例如,其下游客戶機(jī)的數(shù)據(jù)包接收就會突然中止。為克服這種缺點(diǎn),必須采取措施,例如,給予最小網(wǎng)絡(luò)(樹結(jié)構(gòu))冗余度以及準(zhǔn)備備用樹結(jié)構(gòu)等。這就導(dǎo)致最小網(wǎng)絡(luò)的結(jié)構(gòu)越來越復(fù)雜,因此,服務(wù)器108的附加開銷就進(jìn)一步增加。這是因?yàn)槊總€(gè)客戶機(jī)都被賦予靜態(tài)中繼任務(wù),而且,因?yàn)榘ňW(wǎng)絡(luò)構(gòu)成信息在內(nèi)的路徑樹的生成和重建都僅由服務(wù)器進(jìn)行。
同時(shí),還提出了通過利用分散的客戶機(jī)協(xié)調(diào)地進(jìn)行所傳輸數(shù)據(jù)包的高速緩沖存儲的系統(tǒng)。在這種對傳輸數(shù)據(jù)包進(jìn)行高速緩存的系統(tǒng)內(nèi),數(shù)據(jù)不從服務(wù)器108采集,而是從客戶機(jī)106的高速緩沖存儲器采集(具體參見編號為Hei 11(1999)-282332的日本專利申請說明書,發(fā)明名稱“基于分散客戶機(jī)的數(shù)據(jù)高速緩存系統(tǒng)”)。編號為Hei 11(1999)-282332的日本專利申請說明書公開了從客戶機(jī)采集數(shù)據(jù)的方法,其中各個(gè)客戶機(jī)通過使用數(shù)據(jù)高速緩沖存儲器與客戶機(jī)之間的對應(yīng)關(guān)系表搜索客戶機(jī)及所要高速緩存的數(shù)據(jù)。
雖然編號為Hei 11(1999)-282332的日本專利申請說明書所公開的方法可以在客戶機(jī)內(nèi)進(jìn)行良好的高速緩沖存儲,但在數(shù)據(jù)被采集時(shí),會出現(xiàn)一個(gè)至少相當(dāng)于所要高速緩存的數(shù)據(jù)長度的延遲。因此,在數(shù)據(jù)流需要具有延遲時(shí)間很短的實(shí)時(shí)特性情況下,此方法在實(shí)時(shí)性方面是不足的。此外,編號為Hei 11(1999)-282332的日本專利申請說明書從未公開長數(shù)據(jù)的高速緩存方法。而且,如果上述數(shù)據(jù)高速緩存系統(tǒng)通過將數(shù)據(jù)分成較小的數(shù)據(jù)包來管理流動(dòng)數(shù)據(jù),以便縮短由于高速緩存所造成的時(shí)間延遲,則數(shù)據(jù)包單元內(nèi)的高速緩存對應(yīng)關(guān)系表就必須頻繁地更新,客戶機(jī)的開銷就將增加。這樣,不僅使客戶機(jī)包含對應(yīng)關(guān)系表的優(yōu)點(diǎn)受損,而且使客戶機(jī)的開銷大大增加。因此該方法是不實(shí)用的。
同時(shí),Aramaki等人提出了將客戶機(jī)連接到邊緣服務(wù)器的結(jié)構(gòu)(http://www.akamai.com)。圖33是一幅示意圖,展示了Aramaki等人所提出的系統(tǒng)。圖33所示的系統(tǒng)通過網(wǎng)絡(luò)100使用放置在遠(yuǎn)端的服務(wù)器108和放置在客戶機(jī)106附近的邊緣服務(wù)器110。處在遠(yuǎn)端服務(wù)器108和邊緣服務(wù)器110之間的網(wǎng)絡(luò)100構(gòu)成了盡力而為式網(wǎng)絡(luò),其中數(shù)字內(nèi)容的傳輸充分利用其帶寬,而且所傳輸?shù)臄?shù)字內(nèi)容一次高速緩沖存入邊緣服務(wù)器110。被高速緩存的數(shù)字內(nèi)容重新從邊緣服務(wù)器流向附近的客戶機(jī),這樣向客戶機(jī)分發(fā)數(shù)字內(nèi)容的過程即結(jié)束。具體而言,Aramaki等人的方法提供了一種限制在服務(wù)器108和邊緣服務(wù)器110之間數(shù)據(jù)包重疊的解決方案,以避免網(wǎng)絡(luò)的擁堵。然而,即便是在使用邊緣服務(wù)器110的情況下,邊緣服務(wù)器110的開銷也可能會成為問題,而且有必要在從邊緣服務(wù)器110向各個(gè)客戶機(jī)傳送數(shù)據(jù)包時(shí),減少傳送數(shù)據(jù)包的重疊。
即使是在因特網(wǎng)未用于連接服務(wù)器108與邊緣服務(wù)器110的情況下,如果服務(wù)器108與邊緣服務(wù)器110之間的基干網(wǎng)是帶寬共享型內(nèi)聯(lián)網(wǎng),則可采用與上述類似的、使用了服務(wù)器108和邊緣服務(wù)器110的結(jié)構(gòu),以避免由于在基干網(wǎng)上數(shù)據(jù)包的重疊而形成的擁堵。但是,有必要將邊緣服務(wù)器110置于所有由基干路由器連接的終端路由器之下。因此,建造LAN和WAN等第二網(wǎng)絡(luò)的費(fèi)用就將增加,從而導(dǎo)致諸如進(jìn)一步增加邊緣服務(wù)器110的維護(hù)成本以及增加網(wǎng)絡(luò)管理員的負(fù)擔(dān)等不利情況。此外,還帶來了增加復(fù)雜性的狀況,因?yàn)閺木W(wǎng)絡(luò)和自動(dòng)計(jì)算的角度看,系統(tǒng)存在著問題。為此,就必須提供許多擁有簡單而耐用的操作系統(tǒng)的客戶機(jī),這些客戶機(jī)的功能包括諸如在不使用任何專用輔助服務(wù)器(邊緣服務(wù)器等)的情況下實(shí)現(xiàn)自配置和自優(yōu)化等,并且在保證數(shù)字內(nèi)容實(shí)時(shí)性的同時(shí)賦予網(wǎng)絡(luò)自主性。
此外,在上述IP多播中,播送源指定一個(gè)包含一個(gè)特定范圍的數(shù)值的IP地址作為目的地,并向該目的地發(fā)送數(shù)據(jù)包。該IP地址代表一個(gè)多播組。接收側(cè)的主機(jī)向路徑上的各個(gè)路由器發(fā)送加入該組的請求,而路由器接收到該請求后即識別發(fā)送該加入請求的組,并執(zhí)行向該組分發(fā)數(shù)據(jù)包的處理。通過選擇適當(dāng)?shù)穆酚?,也通過利用多播,可以在沒有數(shù)據(jù)包重疊的情況下,在同一時(shí)間將相同的數(shù)據(jù)包發(fā)送給接收側(cè)的眾多主機(jī)。
在與上述路由器和有限網(wǎng)絡(luò)無差異的單個(gè)網(wǎng)絡(luò)中,數(shù)字內(nèi)容的多播分發(fā)進(jìn)行情況良好,不會導(dǎo)致很大的設(shè)備/儀器的投資負(fù)擔(dān),或者,尤其不會造成對通信業(yè)務(wù)的不利條件。然而,作為整體在當(dāng)前因特網(wǎng)中使用的通信協(xié)議(IPv4)一般不給多播功能以合法性。一般說來,為了在因特網(wǎng)上實(shí)際進(jìn)行多播,需要更多的儀器/設(shè)備。
圖34表明可以按照上述多播之外的另一種多播方法,例如眾所周知的偽多播方法,進(jìn)行內(nèi)容分發(fā)的網(wǎng)絡(luò)系統(tǒng)。在此情況下,內(nèi)容被分發(fā)到可以應(yīng)用上述多播的組。圖34所示的網(wǎng)絡(luò)系統(tǒng)通過在服務(wù)器和多個(gè)組之間形成多條隧道而使數(shù)字內(nèi)容分發(fā)成為可能。圖34所示服務(wù)器112通過諸如因特網(wǎng)的第一網(wǎng)絡(luò)116將數(shù)字內(nèi)容分發(fā)到由114a至114c組組成的廣域組G。圖34所示廣域組G通過包括組114a至114c而構(gòu)成。例如,可以列舉的組有業(yè)務(wù)企業(yè)、公共機(jī)構(gòu)、政府部門以及教育機(jī)構(gòu)等。
具體而言,如果所作說明以一個(gè)業(yè)務(wù)企業(yè)為例子,則組114a就可被定義為北海道銷售辦公室,而組114c被定義為隸屬于同一個(gè)企業(yè)的九州銷售辦公室,等等。圖34所示服務(wù)器112通過利用稱作隧道118a至118c的結(jié)構(gòu),以多播方式將數(shù)字內(nèi)容分別分發(fā)到組114a至114c。具體而言,隧道118a至118c在同一時(shí)間向網(wǎng)絡(luò)上的接收機(jī)分發(fā)多播數(shù)據(jù)包,其分發(fā)方式使兩個(gè)不同網(wǎng)絡(luò)之間的隧道的輸入端口和輸出端口被分別提供,而且數(shù)據(jù)包通過輸入端口和輸出端口進(jìn)行傳輸。如圖34所示,多條隧道必須按照組的數(shù)量來準(zhǔn)備,以便向多個(gè)組進(jìn)行多播分發(fā)。
上述隧道技術(shù)已經(jīng)為公眾所了解。而且人們亦了解到,利用隧道技術(shù)的多播分發(fā)在組的數(shù)量很大時(shí)往往不能充分發(fā)揮作用。圖35更具體地說明了上述問題。在圖35中,數(shù)字內(nèi)容的發(fā)射機(jī)(在下文中統(tǒng)稱為“提供者”)和大量的組通過因特網(wǎng)互相連接。組114a至114c通過組所使用的不同通信容量的線路,例如ISDN、ADSL、CATV和光學(xué)通信線路等,連接到第一網(wǎng)絡(luò)。此外,114a至114c各個(gè)組內(nèi)的客戶機(jī)通過一種在通信容量上有別于其它的通信基礎(chǔ)結(jié)構(gòu)而互相連接,例如通過利用以太網(wǎng)(注冊商標(biāo))構(gòu)建的局域網(wǎng)(LAN)和無線通信網(wǎng)等第二網(wǎng)絡(luò)進(jìn)行連接。多個(gè)客戶機(jī)122在第二網(wǎng)絡(luò)上互相連接,然后通過路由器124等與第一網(wǎng)絡(luò)116連接。服務(wù)器112在這樣的狀況下將數(shù)據(jù)包發(fā)送給所有客戶機(jī)122。
在圖35所示的狀況下,在用常規(guī)的隧道技術(shù)進(jìn)行多播分發(fā)時(shí),即出現(xiàn)了以下所述的不利情況。
(1)組內(nèi)的操作和管理問題將出現(xiàn)在接收側(cè)為了向第二網(wǎng)絡(luò)提供隧道端口,需要專用主機(jī)設(shè)備,其結(jié)構(gòu)方式應(yīng)使其能通過多播接收數(shù)據(jù)包,并將數(shù)據(jù)包用多播方式發(fā)送給客戶機(jī)122。當(dāng)然,與用于互聯(lián)各組客戶機(jī)的LAN的通信取決于專用主機(jī)設(shè)備的工作情況。因此,當(dāng)專用主機(jī)因某種原因不能使用時(shí),在第二網(wǎng)絡(luò)上由專用主機(jī)設(shè)備管理的所有客戶機(jī)就都要受到影響。
(2)內(nèi)容分發(fā)服務(wù)器的網(wǎng)絡(luò)帶寬問題由于在服務(wù)器112和各個(gè)組之間的通信是單播方式,所以,如果組的數(shù)量為M,則由服務(wù)器發(fā)送的數(shù)據(jù)包總量和通信業(yè)務(wù)量就要乘以M。因此,隨著組的數(shù)量不斷增加,除非在服務(wù)器112一側(cè)使用高容量通信基礎(chǔ)結(jié)構(gòu),否則不可能在不損害實(shí)時(shí)性的情況下進(jìn)行同時(shí)通信。這會導(dǎo)致使用多播技術(shù)的價(jià)格優(yōu)勢的吸引力的降低。
具體而言,在一對多的數(shù)字內(nèi)容分發(fā)中,尤其是在要求具有實(shí)時(shí)性的數(shù)字內(nèi)容分發(fā)中,迄今為止都必須使數(shù)字內(nèi)容分發(fā)的實(shí)時(shí)性得到提高,在分發(fā)中避免網(wǎng)絡(luò)路徑數(shù)據(jù)包傳輸?shù)闹丿B,從而避免通信傳輸?shù)膿矶拢粫斐筛鱾€(gè)路由器的復(fù)雜性,而且不需要做涉及大規(guī)模投資的變動(dòng),例如不需要為更換路徑上的所有路由器做工作和投入經(jīng)費(fèi)。此外,在分發(fā)數(shù)字內(nèi)容時(shí),還必須不破壞網(wǎng)絡(luò)系統(tǒng)的穩(wěn)定性,在該系統(tǒng)內(nèi)諸如路由器和交換集線器等網(wǎng)絡(luò)層都不變動(dòng),而且,還不必根據(jù)客戶機(jī)在靜態(tài)最小網(wǎng)絡(luò)頻繁的進(jìn)出而進(jìn)行重建,從而可減少服務(wù)器的開銷。
具體而言,需要分發(fā)實(shí)時(shí)性得到保障的數(shù)字內(nèi)容,該實(shí)時(shí)性是在不增加網(wǎng)絡(luò)資源的復(fù)雜性和服務(wù)器的重建開銷的情況下得到保障的,其做法是,構(gòu)建具有冗余度的網(wǎng)絡(luò),以保障下游客戶機(jī)的穩(wěn)定性,并使數(shù)字內(nèi)容安全地分發(fā)給用戶,例如在位于上游中繼點(diǎn)的客戶機(jī)因異常結(jié)束而離開的情況下保證數(shù)字內(nèi)容安全分發(fā)。
此外,在使用隧道技術(shù)的情況下,雖然可以隨著組的數(shù)量增加而增加構(gòu)建的隧道數(shù)量,但這將進(jìn)一步隨著隧道數(shù)量的增加而將通信業(yè)務(wù)壓縮到服務(wù)器一側(cè)。此外,為防止出現(xiàn)上述服務(wù)器一側(cè)的不利情況,也設(shè)想了用于避免服務(wù)器一側(cè)擁堵的方法,即在組之間構(gòu)建隧道,使數(shù)據(jù)包逐級在組之間中繼。然而又出現(xiàn)了需要增加儀器/設(shè)備的新問題,由于在組之間也構(gòu)建了隧道端口,一個(gè)組內(nèi)的一條隧道受到干擾就會對其它組產(chǎn)生致命影響,因?yàn)樵诮M之間形成了分級結(jié)構(gòu)。此外,還設(shè)想,直接從服務(wù)器發(fā)出的數(shù)據(jù)包和從其它組逐級發(fā)出的數(shù)據(jù)包會互相重疊。這樣,就會在復(fù)制數(shù)字內(nèi)容時(shí)出現(xiàn)不利情況,從而有必要以軟件的方式消除數(shù)據(jù)包的重疊。如上所述,背景技術(shù)未能完全解決在復(fù)制質(zhì)量、軟件和成本方面的常規(guī)問題。
發(fā)明內(nèi)容
本發(fā)明是在考慮了上述不利情況的基礎(chǔ)上做出的。本發(fā)明在不依賴組的數(shù)量的情況下,將數(shù)字內(nèi)容從服務(wù)器實(shí)時(shí)地提供給許多數(shù)字處理設(shè)備。在提供數(shù)字內(nèi)容時(shí),服務(wù)器將數(shù)字內(nèi)容分為信息包,并通過第一網(wǎng)絡(luò)將被分的信息包發(fā)送給屬于第二網(wǎng)絡(luò)的至少一個(gè)客戶機(jī)。被發(fā)送的信息包被定義為重建數(shù)字內(nèi)容所需要的最小單元。須指出,在本發(fā)明中,最小單元數(shù)據(jù)包意味著能夠在沒有數(shù)據(jù)包重疊的情況下重建原始數(shù)據(jù)內(nèi)容的最小數(shù)據(jù)包。在本發(fā)明中,最小單元數(shù)據(jù)包在下文中被統(tǒng)稱為“源數(shù)據(jù)包”。接收到源數(shù)據(jù)包的客戶機(jī)通過第二網(wǎng)絡(luò)將所接收的源數(shù)據(jù)包的拷貝發(fā)送給與第二網(wǎng)絡(luò)連接的客戶機(jī)。發(fā)送了拷貝數(shù)據(jù)包的客戶機(jī)接收其它客戶機(jī)所接收到的源數(shù)據(jù)包的拷貝。
分為多個(gè)數(shù)據(jù)包并在預(yù)定時(shí)間周期內(nèi)發(fā)送的數(shù)字內(nèi)容被融入要重建的客戶機(jī),然后實(shí)時(shí)地提供給客戶機(jī)中的用戶。本發(fā)明中提供內(nèi)容的模式可以包括任何迄今為止已知的模式,例如顯示活動(dòng)畫面圖像數(shù)據(jù)、復(fù)制音頻數(shù)據(jù)、顯示構(gòu)建多媒體數(shù)據(jù)的圖像數(shù)據(jù)以及復(fù)制同步音頻數(shù)據(jù)等。以下將本發(fā)明中的模式定義為包括上述提供模式的顯示或復(fù)制。在允許提供已重建數(shù)字內(nèi)容的同時(shí),客戶機(jī)接收后續(xù)數(shù)據(jù)包,并在允許提供已重建數(shù)字內(nèi)容的同時(shí)完成后續(xù)數(shù)據(jù)流的重建,從而可以連續(xù)地提供數(shù)字內(nèi)容。
通過重復(fù)上述處理,本發(fā)明在避免所傳輸?shù)臄?shù)據(jù)包重疊的同時(shí)保持?jǐn)?shù)字內(nèi)容分發(fā)的穩(wěn)定性,從而可以靈活地應(yīng)付構(gòu)成網(wǎng)絡(luò)的客戶機(jī)頻繁離開和新加入網(wǎng)絡(luò)的問題。此外,本發(fā)明實(shí)現(xiàn)了穩(wěn)定的系統(tǒng),該系統(tǒng)不允許客戶機(jī)內(nèi)有大的環(huán)境變化,例如CPU分配狀態(tài)的變化,不會影響數(shù)字內(nèi)容分發(fā)的效率。此外,本發(fā)明不使用專門構(gòu)建的路由器、交換集線器和輔助服務(wù)器。因此,本發(fā)明數(shù)字內(nèi)容分發(fā)還可以在不增加不必要的網(wǎng)絡(luò)系統(tǒng)費(fèi)用的情況下進(jìn)行,因?yàn)榫W(wǎng)絡(luò)用戶不會被迫進(jìn)行諸如維護(hù)等工作。
此外,本發(fā)明還提供偽隧道分發(fā)技術(shù),無論進(jìn)行分發(fā)的隧道是否存在,都可以從服務(wù)器向預(yù)定廣域組進(jìn)行有效的分發(fā)。本發(fā)明的偽隧道分發(fā)意味著一種分發(fā)系統(tǒng)和分發(fā)方法,即通過在沒有任何重疊的情況下從服務(wù)器向廣域組分發(fā)重建數(shù)字內(nèi)容所需的最小源數(shù)據(jù)包,使相同的數(shù)字內(nèi)容平穩(wěn)地從服務(wù)器提供給廣域組內(nèi)的客戶機(jī),而不導(dǎo)致嚴(yán)重的時(shí)間滯后。在本發(fā)明的偽隧道分發(fā)中,服務(wù)器在沒有任何重疊的情況下將數(shù)據(jù)包分發(fā)到屬于多個(gè)組的客戶機(jī)。在本發(fā)明中,許多客戶機(jī)構(gòu)成組,而許多組則構(gòu)成廣域組。此外,服務(wù)器的結(jié)構(gòu)使其能夠向整個(gè)廣域組分發(fā)數(shù)據(jù)包,并且每當(dāng)服務(wù)器發(fā)送數(shù)據(jù)包時(shí),選擇將要從廣域組向其發(fā)送數(shù)據(jù)包的客戶機(jī)。至少一個(gè)客戶機(jī)從服務(wù)器接收構(gòu)成數(shù)字內(nèi)容的源數(shù)據(jù)包。服務(wù)器和客戶機(jī)都保存一份構(gòu)成廣域組的客戶機(jī)的列表。接收到源數(shù)據(jù)包的客戶機(jī)查閱源數(shù)據(jù)包分發(fā)數(shù)據(jù),即預(yù)先分配的拷貝目的地列表,該列表與源數(shù)據(jù)包一起接收。然后,客戶機(jī)向其它客戶機(jī)分發(fā)源數(shù)據(jù)包的拷貝。通過執(zhí)行上述處理過程,所有客戶機(jī)非常充分地重建了數(shù)字內(nèi)容。
此外,在本發(fā)明中,在組內(nèi)的LAN被有效使用,以便有效利用屬于廣域組的客戶機(jī)的網(wǎng)絡(luò)特征。例如,每個(gè)組可以通過將屬于該組的客戶機(jī)連接到一個(gè)交換集線器而構(gòu)成,這樣就可使通信在互不影響的情況下利用交換器的功能。此外,在本發(fā)明中,相應(yīng)于多播的第三網(wǎng)絡(luò)在應(yīng)用計(jì)算機(jī)和連接在一個(gè)路由器下的多個(gè)客戶機(jī)之間建成。所以數(shù)字內(nèi)容在組內(nèi)共享,而且可以減少客戶機(jī)和硬件資源的開銷。
具體而言,本發(fā)明提供了用于通過第一和第二網(wǎng)絡(luò)分發(fā)數(shù)字內(nèi)容的數(shù)字內(nèi)容分發(fā)系統(tǒng)。該系統(tǒng)包括與第一網(wǎng)絡(luò)連接的服務(wù)器,用于在其內(nèi)部保存數(shù)字內(nèi)容和發(fā)送數(shù)字內(nèi)容;以及構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)并用于接收和提供數(shù)字內(nèi)容的客戶機(jī),其中服務(wù)器包括用于將所保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包,并向第二網(wǎng)絡(luò)發(fā)送構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置,而且其中構(gòu)成第二網(wǎng)絡(luò)的每個(gè)客戶機(jī)包括,通過使用最小單元數(shù)據(jù)包、已由客戶機(jī)從服務(wù)器接收的數(shù)據(jù)包,以及使用從構(gòu)成第二網(wǎng)絡(luò)的其它客戶機(jī)接收到的數(shù)據(jù)包,使所有與第二網(wǎng)絡(luò)連接的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容的裝置。
在本發(fā)明中,服務(wù)器可包括用于動(dòng)態(tài)地向第二網(wǎng)絡(luò)的多個(gè)客戶機(jī)分配最小單元數(shù)據(jù)包的裝置。在本發(fā)明中,用于向第二網(wǎng)絡(luò)的多個(gè)客戶分配最小單元數(shù)據(jù)包的裝置可以包括用于確定客戶機(jī)開銷的裝置;以及用于結(jié)合開銷情況動(dòng)態(tài)地選擇客戶機(jī)中至少一個(gè)作為中間節(jié)點(diǎn)并向該中間節(jié)點(diǎn)分配數(shù)據(jù)包的裝置。在本發(fā)明中,用于確定客戶機(jī)開銷的裝置可包括用于確定服務(wù)器向預(yù)定客戶機(jī)發(fā)送最小單元數(shù)據(jù)包的時(shí)間和該預(yù)定客戶機(jī)發(fā)出最小單元數(shù)據(jù)包已收到通知的時(shí)間之間的時(shí)間差的裝置。
本發(fā)明提供了數(shù)字內(nèi)容分發(fā)方法,用于通過第一和第二網(wǎng)絡(luò)向客戶機(jī)分發(fā)數(shù)字內(nèi)容,其中,系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器,以及構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)并用于接收和提供數(shù)字內(nèi)容的客戶機(jī),該方法包括以下步驟將數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包,并從服務(wù)器向客戶機(jī)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包;由構(gòu)成第二網(wǎng)絡(luò)的客戶機(jī)從服務(wù)器接收數(shù)據(jù)包;
從構(gòu)成第二網(wǎng)絡(luò)的其它客戶機(jī)接收數(shù)據(jù)包,以便重建數(shù)字內(nèi)容;以及通過使用最小單元數(shù)據(jù)包、已經(jīng)從服務(wù)器發(fā)出的數(shù)據(jù)包,以及使用從其它客戶機(jī)接收的數(shù)據(jù)包,使所有與第二網(wǎng)絡(luò)連接的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容。
本發(fā)明提供了用于執(zhí)行服務(wù)器處理的程序,以便執(zhí)行將數(shù)字內(nèi)容通過第一和第二網(wǎng)絡(luò)分發(fā)到目的地的方法,其中,系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器,以及構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)、有被指定用于接收和提供數(shù)字內(nèi)容目的地的客戶機(jī),該程序使系統(tǒng)執(zhí)行以下步驟將數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包;動(dòng)態(tài)地從服務(wù)器向第二網(wǎng)絡(luò)的多個(gè)目的地分配最小單元數(shù)據(jù)包以及通過第一網(wǎng)絡(luò)從服務(wù)器向第二網(wǎng)絡(luò)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包,其中分配最小單元數(shù)據(jù)包的步驟包括以下步驟從目的地接收已收到通知;使服務(wù)器在其內(nèi)部保存已收到通知;結(jié)合使用所保存的已收到通知,選擇一個(gè)目的地作為中間節(jié)點(diǎn);以及向選作中間節(jié)點(diǎn)的目的地分配最小單元數(shù)據(jù)包。
本發(fā)明提供了計(jì)算機(jī)可讀記錄介質(zhì),用于在其內(nèi)部記錄程序,該程序用于執(zhí)行服務(wù)器處理過程,以便執(zhí)行將數(shù)字內(nèi)容通過第一和第二網(wǎng)絡(luò)分發(fā)到目的地的方法,其中,系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器,以及構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)、有被指定用于接收和提供數(shù)字內(nèi)容目的地的客戶機(jī),其中該程序使系統(tǒng)執(zhí)行以下步驟將數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包;動(dòng)態(tài)地從服務(wù)器向第二網(wǎng)絡(luò)的多個(gè)目的地分配最小單元數(shù)據(jù)包以及通過第一網(wǎng)絡(luò)從服務(wù)器向第二網(wǎng)絡(luò)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包,而其中分配最小單元數(shù)據(jù)包的步驟包括從目的地接收已收到通知;使服務(wù)器在其內(nèi)部保存已收到通知;結(jié)合使用所保存的已收到通知,選擇一個(gè)目的地作為中間節(jié)點(diǎn);以及向選作中間節(jié)點(diǎn)的目的地分配最小單元數(shù)據(jù)包。
本發(fā)明提供了用于執(zhí)行客戶機(jī)處理的程序,以便執(zhí)行將數(shù)字內(nèi)容通過第一和第二網(wǎng)絡(luò)分發(fā)到客戶機(jī)的方法,其中,系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器,以及構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)、用于接收和提供數(shù)字內(nèi)容的客戶機(jī),該程序使客戶機(jī)執(zhí)行以下步驟通過第一網(wǎng)絡(luò)接收最小單元數(shù)據(jù)包,該最小單元數(shù)據(jù)包構(gòu)成被分為多個(gè)數(shù)據(jù)包的數(shù)字內(nèi)容;從構(gòu)成第二網(wǎng)絡(luò)的其它客戶機(jī)接收用于重建數(shù)字內(nèi)容的數(shù)據(jù)包,;以及通過使用最小單元數(shù)據(jù)包、已通過第一網(wǎng)絡(luò)接收的數(shù)據(jù)包,以及使用從其它客戶機(jī)接收的數(shù)據(jù)包,使包含在第二網(wǎng)絡(luò)中的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容。
本發(fā)明提供了計(jì)算機(jī)可讀記錄介質(zhì),用于在其內(nèi)部記錄程序,該程序用于執(zhí)行客戶機(jī)處理,以便執(zhí)行將數(shù)字內(nèi)容通過第一和第二網(wǎng)絡(luò)分發(fā)到客戶機(jī)的方法,其中,系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器以及構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)、用于接收和提供數(shù)字內(nèi)容的客戶機(jī),其中該程序使客戶機(jī)執(zhí)行以下步驟通過第一網(wǎng)絡(luò)接收最小單元數(shù)據(jù)包,該最小單元數(shù)據(jù)包構(gòu)成被分為多個(gè)數(shù)據(jù)包的數(shù)字內(nèi)容;從構(gòu)成第二網(wǎng)絡(luò)的其它客戶機(jī)接收用于重建數(shù)字內(nèi)容的數(shù)據(jù)包;以及通過使用最小單元數(shù)據(jù)包、已通過第一網(wǎng)絡(luò)接收的數(shù)據(jù)包,以及使用從其它客戶機(jī)接收的數(shù)據(jù)包,使包含在第二網(wǎng)絡(luò)中的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容。
本發(fā)明提供了數(shù)字內(nèi)容分發(fā)服務(wù)器,該服務(wù)器與第一網(wǎng)絡(luò)連接并用于向與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)提供數(shù)字內(nèi)容,該服務(wù)器包括用于將數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包的裝置;用于存儲具有包括在第二網(wǎng)絡(luò)中的目的地的列表的裝置;用于通過第一網(wǎng)絡(luò)從服務(wù)器向第二網(wǎng)絡(luò)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置;通過使用列表,向最小單元數(shù)據(jù)包發(fā)往的第二網(wǎng)絡(luò)動(dòng)態(tài)地分配目的地的動(dòng)態(tài)分配裝置;從目的地接收已收到通知的裝置;通過使用已收到通知選擇目的地作為中間節(jié)點(diǎn)的的裝置;通過使用被選擇作為中間節(jié)點(diǎn)的目的地發(fā)送最小單元數(shù)據(jù)包的裝置。
本發(fā)明提供了用于接收通過第一網(wǎng)絡(luò)分發(fā)的數(shù)字內(nèi)容并構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)的客戶機(jī),該客戶機(jī)包括用于通過第一網(wǎng)絡(luò)接收最小單元數(shù)據(jù)包的裝置,該最小單元數(shù)據(jù)包構(gòu)成數(shù)字內(nèi)容,而數(shù)字內(nèi)容被分為多個(gè)數(shù)據(jù)包;通過第二網(wǎng)絡(luò)接收用于重建數(shù)字內(nèi)容的數(shù)據(jù)包的裝置;通過使用經(jīng)由第一網(wǎng)絡(luò)接收的最小單元數(shù)據(jù)包以及使用經(jīng)由第二網(wǎng)絡(luò)從其它客戶機(jī)接收的數(shù)據(jù)包,使包含在第二網(wǎng)絡(luò)中的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容的裝置。
本發(fā)明提供了用于通過第一和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容的分發(fā)系統(tǒng),該系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于在其內(nèi)部保存數(shù)字內(nèi)容并發(fā)送數(shù)字內(nèi)容的服務(wù)器;以及通過包括客戶機(jī)而構(gòu)成的多個(gè)組,這些客戶機(jī)構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò),這些組用于構(gòu)建廣域組以接收和提供數(shù)字內(nèi)容,其中服務(wù)器包括,用于將所保存的數(shù)據(jù)內(nèi)容分為多個(gè)數(shù)據(jù)包,并在沒有重疊的情況下向組內(nèi)的客戶機(jī)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置,而且其中每個(gè)接收到最小單元數(shù)據(jù)包的客戶機(jī)包括,可把從服務(wù)器接收的最小單元數(shù)據(jù)包拷貝分發(fā)到構(gòu)成子廣域組的所有客戶機(jī)的裝置,該子廣域組包括所述每個(gè)客戶機(jī)和構(gòu)成另一個(gè)組的另一個(gè)客戶機(jī)。
本發(fā)明提供了與第一網(wǎng)絡(luò)連接并用于在其內(nèi)部保存數(shù)字內(nèi)容和通過第一網(wǎng)絡(luò)向廣域組分發(fā)數(shù)字內(nèi)容的服務(wù)器,該廣域組包括通過第二網(wǎng)絡(luò)連接的多個(gè)組,該服務(wù)器包括通過將所保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包而創(chuàng)建最小單元數(shù)據(jù)包的裝置;用于選擇最小單元數(shù)據(jù)包分發(fā)目的地,從而使預(yù)定組的相同的最小單元數(shù)據(jù)包不重疊的裝置;以及用于向組內(nèi)所選擇分發(fā)目的地的客戶機(jī)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置。
本發(fā)明提供了將計(jì)算機(jī)作為服務(wù)器進(jìn)行控制的方法,以便使該計(jì)算機(jī)在其內(nèi)部保存數(shù)字內(nèi)容并通過第一網(wǎng)絡(luò)向廣域組分發(fā)數(shù)字內(nèi)容,該廣域組包括多個(gè)通過第二網(wǎng)絡(luò)連接的組,該方法使該計(jì)算機(jī)執(zhí)行以下步驟通過將保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包而創(chuàng)建最小單元數(shù)據(jù)包;選擇并向其分發(fā)目的地注冊最小單元數(shù)據(jù)包,從而使預(yù)定組的相同的最小單元數(shù)據(jù)包不重疊;將所選擇的分發(fā)目的地?cái)?shù)據(jù)作為最小單元數(shù)據(jù)包而存儲;以及讀取所存儲的最小單元數(shù)據(jù)包并將其發(fā)送給組內(nèi)所選擇分發(fā)目的地的客戶機(jī),以構(gòu)建數(shù)字內(nèi)容。
本發(fā)明提供了將計(jì)算機(jī)作為服務(wù)器進(jìn)行控制的程序,用于在該計(jì)算機(jī)內(nèi)部保存數(shù)字內(nèi)容并通過第一網(wǎng)絡(luò)向廣域組分發(fā)數(shù)字內(nèi)容,該廣域組包括多個(gè)通過第二網(wǎng)絡(luò)連接的組,該程序使計(jì)算機(jī)執(zhí)行以下步驟
通過將保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包而創(chuàng)建最小單元數(shù)據(jù)包;選擇并向其分發(fā)目的地注冊最小單元數(shù)據(jù)包,從而使預(yù)定組的相同的最小單元數(shù)據(jù)包不重疊;將所選擇的分發(fā)目的地?cái)?shù)據(jù)作為最小單元數(shù)據(jù)包而存儲;以及讀取所存儲的最小單元數(shù)據(jù)包并將其發(fā)送給組內(nèi)所選擇分發(fā)目的地的客戶機(jī),以構(gòu)建數(shù)字內(nèi)容。
本發(fā)明提供了計(jì)算機(jī)可讀記錄媒介,可在其內(nèi)部記錄將計(jì)算機(jī)作為服務(wù)器進(jìn)行控制的程序,以在其內(nèi)部保存數(shù)字內(nèi)容并通過第一網(wǎng)絡(luò)向廣域組分發(fā)數(shù)字內(nèi)容,該廣域組包括多個(gè)通過第二網(wǎng)絡(luò)連接的組,其中該程序使計(jì)算機(jī)執(zhí)行以下步驟通過將保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包而創(chuàng)建最小單元數(shù)據(jù)包;選擇并向其分發(fā)目的地注冊最小單元數(shù)據(jù)包,從而使預(yù)定組的相同的最小單元數(shù)據(jù)包不重疊;將所選擇的分發(fā)目的地?cái)?shù)據(jù)作為最小單元數(shù)據(jù)包而存儲;以及讀取所存儲的最小單元數(shù)據(jù)包并將其發(fā)送給組內(nèi)所選擇分發(fā)目的地的客戶機(jī),以構(gòu)建數(shù)字內(nèi)容。
本發(fā)明提供了與第二網(wǎng)絡(luò)連接、用于通過第一和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容并構(gòu)成廣域組的組的客戶機(jī),該客戶機(jī)包括用于通過第一和第二網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)接收數(shù)據(jù)包,并用于判定所接收的數(shù)據(jù)包是否用于重建數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置;以及用于對該判定作出響應(yīng),根據(jù)所接收的數(shù)據(jù)包創(chuàng)建拷貝數(shù)據(jù)包并將該拷貝數(shù)據(jù)包至少分發(fā)到另一個(gè)組的一個(gè)客戶機(jī)的裝置。
本發(fā)明提供了將計(jì)算機(jī)作為與第二網(wǎng)絡(luò)連接的客戶機(jī)進(jìn)行控制的方法,以便使該計(jì)算機(jī)通過第一網(wǎng)絡(luò)和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容,并構(gòu)成廣域組的組,該方法使計(jì)算機(jī)執(zhí)行以下步驟通過第一和第二網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)接收數(shù)據(jù)包,并將所接收的數(shù)據(jù)包存儲在存儲器中;判定所接收的數(shù)據(jù)包是否用于重建數(shù)字內(nèi)容的最小單元數(shù)據(jù)包;
當(dāng)所接收的數(shù)據(jù)包被判定是最小單元數(shù)據(jù)包時(shí),響應(yīng)于該判定,根P29據(jù)所接收的數(shù)據(jù)包創(chuàng)建拷貝數(shù)據(jù)包并將該拷貝數(shù)據(jù)包至少分發(fā)到另一個(gè)組的一個(gè)客戶機(jī);以及當(dāng)所接收的數(shù)據(jù)包被判定不是最小單元數(shù)據(jù)包時(shí),就將所接收的數(shù)據(jù)包存儲在存儲器中。
本發(fā)明提供了將計(jì)算機(jī)作為與第二網(wǎng)絡(luò)連接的客戶機(jī)進(jìn)行控制的程序,以便使該計(jì)算機(jī)通過第一網(wǎng)絡(luò)和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容,并構(gòu)成廣域組的組,該程序使該計(jì)算機(jī)執(zhí)行以下步驟通過第一和第二網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)接收數(shù)據(jù)包,并將所接收的數(shù)據(jù)包存儲在存儲器中;判定所接收的數(shù)據(jù)包是否用于重建數(shù)字內(nèi)容的最小單元數(shù)據(jù)包;當(dāng)所接收的數(shù)據(jù)包被判定是最小單元數(shù)據(jù)包時(shí),響應(yīng)于該判定,根據(jù)所接收的數(shù)據(jù)包創(chuàng)建拷貝數(shù)據(jù)包并將該拷貝數(shù)據(jù)包至少分發(fā)到另一個(gè)組的一個(gè)客戶機(jī);并且當(dāng)所接收的數(shù)據(jù)包被判定不是最小單元數(shù)據(jù)包時(shí),就將所接收的數(shù)據(jù)包存儲在存儲器中。
本發(fā)明提供了計(jì)算機(jī)可讀記錄介質(zhì),可在其內(nèi)部記錄將計(jì)算機(jī)作為與第二網(wǎng)絡(luò)連接的客戶機(jī)進(jìn)行控制的程序,以便使該計(jì)算機(jī)通過第一網(wǎng)絡(luò)和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容,并構(gòu)成廣域組的組,其中該程序使計(jì)算機(jī)執(zhí)行以下步驟通過第一和第二網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)接收數(shù)據(jù)包,并將所接收的數(shù)據(jù)包存儲在存儲器中;判定所接收的數(shù)據(jù)包是否用于重建數(shù)字內(nèi)容的最小單元數(shù)據(jù)包;當(dāng)所接收的數(shù)據(jù)包被判定是最小單元數(shù)據(jù)包時(shí),響應(yīng)于該判定,根據(jù)所接收的數(shù)據(jù)包創(chuàng)建拷貝數(shù)據(jù)包并將該拷貝數(shù)據(jù)包至少分發(fā)到另一個(gè)組的一個(gè)客戶機(jī);并且當(dāng)所接收的數(shù)據(jù)包被判定不是最小單元數(shù)據(jù)包時(shí),就將所接收的數(shù)據(jù)包存儲在存儲器中。
本發(fā)明提供了網(wǎng)上數(shù)字內(nèi)容共享方法,用于共享通過多個(gè)網(wǎng)絡(luò)連接的客戶機(jī)內(nèi)的預(yù)定數(shù)字內(nèi)容,其中預(yù)定數(shù)字內(nèi)容被轉(zhuǎn)換成多個(gè)連續(xù)的流數(shù)據(jù),而且重建預(yù)定數(shù)字內(nèi)容所必需的最小單元數(shù)據(jù)包由服務(wù)器通過網(wǎng)絡(luò)發(fā)送,該方法包括以下步驟通過閱讀客戶機(jī)列表選擇需要分發(fā)預(yù)定數(shù)字內(nèi)容的客戶機(jī);向所選擇的客戶機(jī)發(fā)送最小單元數(shù)據(jù)包;使接收到最小單元數(shù)據(jù)包的客戶機(jī)將該最小單元數(shù)據(jù)包存儲在其存儲器中,創(chuàng)建拷貝數(shù)據(jù)包并將該拷貝數(shù)據(jù)包分發(fā)給除已經(jīng)接收到數(shù)據(jù)包的客戶機(jī)之外的其它客戶機(jī);把從其它客戶機(jī)接收到的拷貝數(shù)據(jù)包存儲在存儲器中;以及通過重建存儲器中的數(shù)據(jù)包,使用戶共享所分發(fā)的預(yù)定數(shù)字內(nèi)容。
為了更全面地了解本發(fā)明及其優(yōu)點(diǎn),以下將參照附圖進(jìn)行說明。
圖1是一幅示意圖,說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)。
圖2是一幅示意圖,說明在本發(fā)明中構(gòu)建的路徑樹的結(jié)構(gòu)。
圖3是一幅示意圖,說明從服務(wù)器發(fā)送源數(shù)據(jù)包和客戶機(jī)發(fā)送拷貝數(shù)據(jù)包的處理過程。
圖4是一幅示意圖,說明在本發(fā)明中動(dòng)態(tài)地選擇作為中間節(jié)點(diǎn)的客戶機(jī)的情況的實(shí)施例。
圖5是一幅示意圖,說明根據(jù)本發(fā)明向客戶機(jī)發(fā)送或從客戶機(jī)接收數(shù)據(jù)包的通信情況。
圖6是一幅示意圖,說明在本發(fā)明中動(dòng)態(tài)地選擇作為中間節(jié)點(diǎn)的客戶機(jī)的情況。
圖7是一幅示意圖,說明在本發(fā)明中,在組#1內(nèi)增添新的客戶機(jī)的情況下,服務(wù)器的處理過程。
圖8是一幅示意圖,說明根據(jù)新創(chuàng)建的路徑樹結(jié)構(gòu)對新加入的客戶機(jī)所作的處理。
圖9是一幅功能框圖,說明在本發(fā)明中客戶機(jī)的構(gòu)造。
圖10是一幅功能框圖,說明在本發(fā)明中服務(wù)器的構(gòu)造。
圖11是一幅示意圖,說明在本發(fā)明中可用的源數(shù)據(jù)包的實(shí)施例。
圖12是說明在本發(fā)明中服務(wù)器所用的客戶機(jī)列表的實(shí)施例的表格。
圖13是一幅示意圖,說明在本發(fā)明中服務(wù)器所選擇的路徑樹結(jié)構(gòu)的實(shí)施例。
圖14是一幅示意圖,說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)的第二實(shí)施例。
圖15是一幅框圖,說明在圖14中所顯示的源服務(wù)器和客戶機(jī)的構(gòu)造。
圖16是一幅示意圖,說明在本發(fā)明的服務(wù)器和客戶機(jī)之間源數(shù)據(jù)包按時(shí)間順序的傳輸情況。
圖17是一幅示意圖,按時(shí)間順序說明源數(shù)據(jù)包和拷貝數(shù)據(jù)包在服務(wù)器和本發(fā)明中被選作服務(wù)器與客戶機(jī)之間中間節(jié)點(diǎn)的客戶機(jī)之間的傳輸情況。
圖18是一幅流程圖,說明本發(fā)明的客戶機(jī)的處理過程。
圖19(a)是一幅流程圖,說明在本發(fā)明中的拷貝過程,而圖19(b)也是一幅流程圖,說明在發(fā)生客戶機(jī)意外離開的情況下或在有關(guān)客戶機(jī)內(nèi)檢測到嚴(yán)重故障的情況下,服務(wù)器的處理過程。
圖20是一幅示意圖,說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)的另一個(gè)實(shí)施例。
圖21是一幅示意圖,說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)的又一個(gè)實(shí)施例。
圖22是一幅示意圖,說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)的另外又一個(gè)實(shí)施例,該實(shí)施例使減輕無線網(wǎng)絡(luò)上的服務(wù)器負(fù)載成為可能。
圖23是一幅框圖,說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)的構(gòu)成。
圖24是一幅示意圖,說明在本發(fā)明中可使用的源數(shù)據(jù)包的其它實(shí)施例。
圖25是一幅流程圖,說明本發(fā)明執(zhí)行內(nèi)容分發(fā)的過程。
圖26是一幅流程圖,說明服務(wù)器和客戶機(jī)在執(zhí)行本發(fā)明的內(nèi)容分發(fā)的情況下的處理過程。
圖27是一幅示意圖,說明根據(jù)本發(fā)明的內(nèi)容分發(fā)方法而分發(fā)的源數(shù)據(jù)包和拷貝數(shù)據(jù)包的流程。
圖28是一幅示意圖,說明本發(fā)明的內(nèi)容分發(fā)系統(tǒng)的另一個(gè)實(shí)施例。
圖29是一幅示意圖,說明本發(fā)明的內(nèi)容分發(fā)系統(tǒng)的又一個(gè)實(shí)施例。
圖30是一幅示意圖,說明本發(fā)明的內(nèi)容分發(fā)系統(tǒng)的另外又一個(gè)實(shí)施例。
圖31是一幅示意圖,說明常規(guī)的IP多播方法。
圖32是一幅示意圖,說明說明利用常規(guī)應(yīng)用層多播方法的數(shù)字內(nèi)容分發(fā)。
圖33是一幅示意圖,說明用于將客戶機(jī)連接到邊緣服務(wù)器的常規(guī)結(jié)構(gòu)數(shù)字內(nèi)容分發(fā)系統(tǒng)。
圖34是一幅示意圖,說明利用常規(guī)多播隧道技術(shù)的數(shù)字內(nèi)容分發(fā)。
圖35是一幅示意圖,說明利用常規(guī)多播隧道技術(shù)的數(shù)字內(nèi)容分發(fā)中的通信業(yè)務(wù)環(huán)境。
具體實(shí)施例方式
雖然下面將根據(jù)具體的實(shí)施例對本發(fā)明進(jìn)行說明,但下面將要說明的實(shí)施例并不對本發(fā)明構(gòu)成限制。
A數(shù)字內(nèi)容分發(fā)系統(tǒng)圖1是一幅說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)10的示意圖。本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)10是通過包括服務(wù)器14和多個(gè)客戶機(jī)20而構(gòu)成的,服務(wù)器14與網(wǎng)絡(luò)12連接,而多個(gè)客戶機(jī)20分別地通過路由器16和交換集線器18等網(wǎng)絡(luò)裝置與網(wǎng)絡(luò)12連接。因特網(wǎng)、WAN和LAN等網(wǎng)絡(luò)可以假設(shè)為如圖1所示的網(wǎng)絡(luò)12??梢允褂霉搽娫捑€、IDSN、ADSL、光學(xué)通信、地波無線通信、衛(wèi)星通信等,作為用于構(gòu)成網(wǎng)絡(luò)的媒介。根據(jù)本發(fā)明,服務(wù)器14通過網(wǎng)絡(luò)12和22向客戶機(jī)20分發(fā)數(shù)字內(nèi)容。作為在本發(fā)明中分發(fā)的數(shù)字內(nèi)容,可列舉的有符合MPEG2標(biāo)準(zhǔn)、MPEG4標(biāo)準(zhǔn)及高級標(biāo)準(zhǔn)的活動(dòng)畫面圖像數(shù)據(jù)等,都包含在必須以實(shí)時(shí)特征同時(shí)提供給多個(gè)客戶機(jī)的內(nèi)容之中。此外,除活動(dòng)畫面圖像數(shù)據(jù)以外,還可以使用多媒體數(shù)據(jù)作為本發(fā)明中的數(shù)字內(nèi)容,這些多媒體數(shù)據(jù)由多種數(shù)字?jǐn)?shù)據(jù)構(gòu)成,例如有活動(dòng)畫面圖像數(shù)據(jù)、音頻數(shù)據(jù)和文本數(shù)據(jù)等。
此外,客戶機(jī)20通過路由器16和交換集線器18等與網(wǎng)絡(luò)12連接,并被服務(wù)器14以標(biāo)識符標(biāo)識為預(yù)定的組#1等,例如,就像為每個(gè)路由器16分配的IP地址。此外,在本發(fā)明的優(yōu)選實(shí)施例中,在預(yù)定組內(nèi)的客戶機(jī)構(gòu)成了設(shè)置為對等連接的網(wǎng)絡(luò)22,這樣,就能夠在組內(nèi)客戶機(jī)之間進(jìn)行互相通信。
可以用個(gè)人計(jì)算機(jī)或工作站構(gòu)成可在本發(fā)明中使用的服務(wù)器14。作為這種個(gè)人計(jì)算機(jī)或工作站,可以列舉的個(gè)人計(jì)算機(jī)或工作站可以安裝諸如PENTIUM(注冊商標(biāo))CPU或與PENTIUM兼容的CPU,并能運(yùn)行諸如WINDOWS(注冊商標(biāo))、WINDOWS(注冊商標(biāo))NT(微軟公司)、OS/2(商標(biāo)國際商用機(jī)器公司)、AIX(商標(biāo)國際商用機(jī)器公司)、UNIX和LUNIX操作系統(tǒng)的個(gè)人計(jì)算機(jī)或工作站。但是,服務(wù)器14不只限于這些個(gè)人計(jì)算機(jī)或工作站。
而且,可應(yīng)用于上述服務(wù)器14的個(gè)人計(jì)算機(jī)和工作站可以被假設(shè)為可在本發(fā)明中使用的客戶機(jī)20。此外,如果筆記本型個(gè)人計(jì)算機(jī)和個(gè)人數(shù)字助理的處理速度足以在本發(fā)明中應(yīng)用,則客戶機(jī)的構(gòu)成也可包括通過無線連接的筆記本型個(gè)人計(jì)算機(jī)和個(gè)人數(shù)字助理等。
圖1所示的本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)10的構(gòu)建方式,使活動(dòng)畫面圖像數(shù)據(jù)被分解成多個(gè)數(shù)據(jù)流,一個(gè)數(shù)據(jù)流又被分為多個(gè)數(shù)據(jù)包,每個(gè)數(shù)據(jù)包作為源數(shù)據(jù)包從服務(wù)器14發(fā)送到預(yù)定客戶機(jī)20。在本發(fā)明中,構(gòu)成數(shù)據(jù)流的源數(shù)據(jù)包被發(fā)送到包含在特定的組內(nèi)的至少一個(gè)客戶機(jī)。接收到源數(shù)據(jù)包的客戶機(jī)將所接收數(shù)據(jù)包的拷貝(以下統(tǒng)稱為“拷貝數(shù)據(jù)包”)發(fā)送給包含在該特定組內(nèi)的其它客戶機(jī)。接收到拷貝數(shù)據(jù)包的下游客戶機(jī)在預(yù)定時(shí)間周期內(nèi)累積拷貝數(shù)據(jù)包,并在該預(yù)定時(shí)間周期消逝后通過使用作為諸如系列號附加在數(shù)據(jù)包上的數(shù)據(jù)包標(biāo)識符重建數(shù)據(jù)流。然后數(shù)字內(nèi)容就在客戶機(jī)內(nèi)顯示或復(fù)制。具體而言,在本發(fā)明中,服務(wù)器14在不向客戶機(jī)發(fā)送在一個(gè)組內(nèi)重疊的數(shù)據(jù)包的情況下,使相同的數(shù)字內(nèi)容能夠提供給屬于預(yù)定組的客戶機(jī)。
B數(shù)字內(nèi)容分發(fā)方法以下將對用于執(zhí)行本發(fā)明的數(shù)字內(nèi)容分發(fā)的方法作進(jìn)一步的詳細(xì)說明。
<B-1>基于在靜態(tài)路徑樹結(jié)構(gòu)的數(shù)據(jù)包單元內(nèi)的瞬時(shí)選擇進(jìn)行動(dòng)態(tài)路由選擇如上所述,在本發(fā)明中,例如,為包含在一個(gè)組內(nèi)的m個(gè)客戶機(jī)構(gòu)建了路徑樹結(jié)構(gòu),其中服務(wù)器14被設(shè)置為樹根,而一個(gè)客戶機(jī)20a被服務(wù)器14指定為中間節(jié)點(diǎn)。圖2(a)以示意圖的方式說明了本發(fā)明中的所構(gòu)建的路徑樹結(jié)構(gòu)。如圖2(a)所示,在已構(gòu)建樹結(jié)構(gòu)中的1∶1∶(m-1)樹結(jié)構(gòu)構(gòu)成了一條數(shù)據(jù)包傳輸路徑。為便于描述,在本說明書中,假設(shè)所組成的路徑為兩級結(jié)構(gòu),包括服務(wù)器與中間節(jié)點(diǎn)之間的第一級路徑,以及中間節(jié)點(diǎn)與客戶機(jī)之間的第二級路徑,而且沒有超出這兩級的中繼。
如圖2(a)所示,服務(wù)器14選擇組內(nèi)一個(gè)客戶機(jī)20a作為中間節(jié)點(diǎn),并首先向被選為中間節(jié)點(diǎn)的客戶機(jī)20a發(fā)送源數(shù)據(jù)包。收到源數(shù)據(jù)包并作為中間節(jié)點(diǎn)而工作的客戶機(jī)20a將所接收到的源數(shù)據(jù)包分發(fā)到組內(nèi)的客戶機(jī)20b至20e,從而使組內(nèi)共享數(shù)據(jù)包成為可能。此外,在本發(fā)明中,被設(shè)置為中間節(jié)點(diǎn)的客戶機(jī)20a并不只限于圖2(a)所示的設(shè)置。服務(wù)器14按照TCP/IP等面向連接的協(xié)議,通過網(wǎng)絡(luò)12監(jiān)控各個(gè)客戶機(jī)的有效吞吐量,從而可以從一個(gè)或多個(gè)客戶機(jī)中動(dòng)態(tài)地選擇客戶機(jī)20。后面將對本發(fā)明的這種中間節(jié)點(diǎn)的選擇進(jìn)行詳細(xì)描述。
如果圖2(a)所顯示的(樹結(jié)構(gòu)中)從服務(wù)器分別至各個(gè)客戶機(jī)20a至20e的所有路徑互相重疊,就能夠描述服務(wù)器14與各個(gè)客戶機(jī)20a至20e的連接以及在預(yù)定組內(nèi)每兩個(gè)客戶機(jī)之間進(jìn)一步互動(dòng)連接的完整連線圖。圖2(b)說明的是圖2(a)所顯示的具體實(shí)施例中服務(wù)器14和各個(gè)客戶機(jī)20a至20e之間所形成的完整連線圖的實(shí)施例。如圖2(b)所示,可以認(rèn)為按數(shù)據(jù)包單元進(jìn)行的選擇是從完整圖中選擇(路徑樹結(jié)構(gòu)內(nèi))部分的樹結(jié)構(gòu)。根據(jù)本發(fā)明,可以根據(jù)客戶機(jī)的吞吐量靈活選擇路徑。因此,在路徑樹結(jié)構(gòu)中,各個(gè)客戶機(jī)將動(dòng)態(tài)地轉(zhuǎn)移到其它客戶機(jī)的上游或下游。
將參照圖2(b)所示的本發(fā)明具體實(shí)施例中的完整圖對本發(fā)明加以說明。首先,一個(gè)數(shù)據(jù)流的源數(shù)據(jù)包在沒有數(shù)據(jù)包重疊的情況下被從服務(wù)器發(fā)送到包含客戶機(jī)20a至20e的組。各個(gè)客戶機(jī)20a至20e在沒有任何重迭的情況下接收構(gòu)成部分?jǐn)?shù)據(jù)流的源數(shù)據(jù)包。此后,屬于同一個(gè)組的客戶機(jī)就互相復(fù)制作為拷貝數(shù)據(jù)包的短數(shù)據(jù)包,從而補(bǔ)償了為重建一個(gè)數(shù)據(jù)流的數(shù)據(jù)包總量不足,以便恢復(fù)這一個(gè)數(shù)據(jù)流。在本發(fā)明中,客戶機(jī)的上述功能被稱作端對組式(peer-to-group type)分發(fā)。須指出,根據(jù)流式傳輸協(xié)議,系列號已經(jīng)在先前作為數(shù)據(jù)包標(biāo)識符附加到各個(gè)數(shù)據(jù)包上。因此,結(jié)構(gòu)被采用,在該結(jié)構(gòu)中的短數(shù)據(jù)包和數(shù)據(jù)流內(nèi)的數(shù)據(jù)包順序可以在各個(gè)客戶機(jī)內(nèi)恢復(fù)。迄今為止已知的任何方法都能作為以上所述的方法使用。具體而言,例如,可以采納Schulzrinne等人所公開的方法(H.Schulzrinne,S.Casner,R.Fredrick以及V.Jacobson.RFC 1889RTP實(shí)時(shí)應(yīng)用傳輸協(xié)議,1996年1月)。
圖3是一幅示意圖,說明了上述從服務(wù)器14發(fā)送源數(shù)據(jù)包的過程以及在組#1內(nèi)客戶機(jī)之間傳輸拷貝數(shù)據(jù)包的過程。如圖3所示,從服務(wù)器14所采集的活動(dòng)畫面圖像數(shù)據(jù)形成數(shù)據(jù)流并被分為多個(gè)數(shù)據(jù)包。例如,數(shù)據(jù)包標(biāo)識符P1至P5被分別附加在源數(shù)據(jù)包上。在本發(fā)明中,對圖3所示的源數(shù)據(jù)包沒有特別的大小限制,而且源數(shù)據(jù)包可以做成任何大小。被分為源數(shù)據(jù)包P1至P5的數(shù)據(jù)流24通過第一網(wǎng)絡(luò),例如因特網(wǎng)或?qū)儆诓煌I(lǐng)域的LAN和WAN,傳輸?shù)浇M#1。
在圖3所示的具體實(shí)施例中,正如后面所要描述的,規(guī)定了各個(gè)客戶機(jī)20a至20e具有互相大致相同的吞吐量。在所描述的實(shí)施例中,客戶機(jī)20a至20e分別被選為中間節(jié)點(diǎn),而且源數(shù)據(jù)包P1至P5分別發(fā)送到客戶機(jī)20a至20e。
此處將對接收到數(shù)據(jù)包P1的客戶機(jī)20a的功能加以詳細(xì)描述。分別對應(yīng)于屬于組#1的客戶機(jī)的成員列表包含在客戶機(jī)20a至20e內(nèi)。根據(jù)TCP/IP、UDP等任何已知協(xié)議以及將要出現(xiàn)的播送模式,參照成員列表,通過執(zhí)行例如廣播通信,拷貝數(shù)據(jù)包被傳送到組內(nèi)其它客戶機(jī)20b至20e。此外,在本發(fā)明中,一旦發(fā)送拷貝數(shù)據(jù)包,該拷貝數(shù)據(jù)包也可以在源數(shù)據(jù)包剛剛到達(dá)后或在固定的時(shí)間間隔內(nèi),更為安全地發(fā)送到引起注意的其它客戶機(jī)的各個(gè)IP地址。在本發(fā)明中可用的傳輸方法可以在考慮了構(gòu)成預(yù)定組的客戶機(jī)的數(shù)量、成本以及可靠性等因素后進(jìn)行恰當(dāng)?shù)倪x擇。其它客戶機(jī)20b至20e從客戶機(jī)20a接拷貝數(shù)據(jù)包并將拷貝數(shù)據(jù)包累積在接收緩沖器中。除客戶機(jī)20a外,其它客戶機(jī)20b至20e也執(zhí)行類似的拷貝數(shù)據(jù)包的傳輸。各個(gè)客戶機(jī)在預(yù)定時(shí)間周期內(nèi),例如大約1秒鐘或更短的時(shí)間內(nèi),將拷貝數(shù)據(jù)包累積在接收緩沖器中,以便保證隨后的數(shù)據(jù)流不受影響。
在實(shí)施例中,客戶機(jī)20a在接收緩沖器中的地址被指定,以使其與數(shù)據(jù)包標(biāo)識符相對應(yīng),在預(yù)定時(shí)間周期消逝后,一個(gè)數(shù)據(jù)流的源數(shù)據(jù)包就按照,例如,“P1P2P3P4P5”的順序累積在其中。這就使客戶機(jī)20a能夠通過使用FEC解碼器,源解碼器等重建數(shù)據(jù)包以及在時(shí)間周期內(nèi)累積的、作為一個(gè)數(shù)據(jù)流的活動(dòng)畫面圖像數(shù)據(jù),即“P1P2P3P4P5”,的數(shù)據(jù)包和拷貝數(shù)據(jù)包。此外,只要沒有特別的不利情況出現(xiàn),也可以不必按系列號,而是按接收順序記錄數(shù)據(jù)包,然后進(jìn)行圖像數(shù)據(jù)的分類和重建。
圖4是一幅示意圖,說明在本發(fā)明中客戶機(jī)用作中間節(jié)點(diǎn)并被動(dòng)態(tài)地選擇的一個(gè)實(shí)施例。在本發(fā)明中,服務(wù)器14和客戶機(jī)20通過使用TCP等面向連接的協(xié)議而構(gòu)成網(wǎng)絡(luò)。如圖4(a)所示,雖然后面還要進(jìn)行詳細(xì)描述,服務(wù)器14監(jiān)控各個(gè)客戶機(jī)的吞吐量,并根據(jù)吞吐量隨機(jī)地選擇客戶機(jī)。所選擇的未必總是吞吐量最大的客戶機(jī)。然后,被選擇的客戶機(jī)20b被設(shè)置為第一中間節(jié)點(diǎn),第一個(gè)源數(shù)據(jù)包P1就被分發(fā)到該客戶機(jī)。此外,服務(wù)器14連續(xù)地每隔一段時(shí)間,例如大約幾秒鐘或更短,連續(xù)監(jiān)控客戶機(jī)吞吐量的變化,并且動(dòng)態(tài)地在各個(gè)時(shí)間點(diǎn)從開銷小的客戶機(jī)中選擇中間節(jié)點(diǎn)。例如,圖4(b)所示的實(shí)施例表明,在該時(shí)間點(diǎn)上,客戶機(jī)20d的開銷最小,所以,客戶機(jī)20d就被服務(wù)器14選作中間節(jié)點(diǎn),并接收源數(shù)據(jù)包,例如源數(shù)據(jù)包P3。
根據(jù)本發(fā)明,利用上述被采納的結(jié)構(gòu),只要服務(wù)器14在不向構(gòu)成組#1的客戶機(jī)發(fā)送重疊的數(shù)據(jù)包的情況下發(fā)送一個(gè)數(shù)據(jù)流的源數(shù)據(jù)包,就可以使組#1內(nèi)的所有客戶機(jī)保存數(shù)字內(nèi)容。具體而言,本發(fā)明能夠把迄今為止在向組#1所包含的客戶機(jī)發(fā)送數(shù)據(jù)包時(shí)集中于服務(wù)器14的負(fù)載分散到整個(gè)網(wǎng)絡(luò)。這樣,本發(fā)明就可以使包含服務(wù)器14的網(wǎng)絡(luò)的效率得到提高。同時(shí),本發(fā)明還能使網(wǎng)絡(luò)內(nèi)的通信可擴(kuò)展性得到改善。
<B-2>網(wǎng)絡(luò)的可擴(kuò)展性以下將對本發(fā)明結(jié)構(gòu)中的服務(wù)器14與客戶機(jī)20之間的傳輸量進(jìn)行分析。圖5說明根據(jù)本發(fā)明向客戶機(jī)20a發(fā)送的和從客戶機(jī)20a接收的數(shù)據(jù)包的量。假設(shè)有n個(gè)數(shù)據(jù)包在單位時(shí)間里從服務(wù)器14均勻地分發(fā)到各個(gè)客戶機(jī)。有n/m個(gè)源數(shù)據(jù)包從服務(wù)器14分發(fā)到客戶機(jī)20a,而客戶機(jī)20a則從服務(wù)器14接收源數(shù)據(jù)包。接收到源數(shù)據(jù)包的客戶機(jī)將所接收的數(shù)據(jù)包中繼到m-1客戶機(jī)(拷貝數(shù)據(jù)包的分發(fā))。同時(shí),客戶機(jī)20a從其它客戶機(jī)接收拷貝數(shù)據(jù)包。從網(wǎng)絡(luò)的觀點(diǎn)看,這些拷貝數(shù)據(jù)包與從其它客戶機(jī)發(fā)出的數(shù)據(jù)包是相同的。因此,每個(gè)客戶機(jī)在單位時(shí)間里所產(chǎn)生的傳輸量為(n/m+n/m×(m-1)=n)個(gè)數(shù)據(jù)包。與采用常規(guī)邊緣服務(wù)器結(jié)構(gòu)的常規(guī)實(shí)例的情況相比,在該傳輸量中,數(shù)據(jù)包的數(shù)量是不變的。即使是在客戶機(jī)未被均勻選擇的情況下,上述數(shù)據(jù)包的傳輸量也是確定的。
其次,就數(shù)量而言,需要在單位時(shí)間內(nèi)由各個(gè)客戶機(jī)進(jìn)行輸入/輸出處理的數(shù)據(jù)包數(shù)量為,接受輸入處理的總共為n個(gè)數(shù)據(jù)包,該數(shù)量是將來自服務(wù)器14的n/m個(gè)數(shù)據(jù)包和來自其它客戶機(jī)的{n/m×(m-1)}個(gè)數(shù)據(jù)包相加而得到的,而需要進(jìn)行輸出處理的是{n/m×(m-1)}個(gè)數(shù)據(jù)包,該數(shù)量是在n/m個(gè)源數(shù)據(jù)包被中繼到均勻選擇的客戶機(jī)時(shí)得到的。因此,接受輸入/輸出處理的數(shù)據(jù)包數(shù)量即為{n×(2m-1)/m}(數(shù)據(jù)包)。為此,數(shù)據(jù)包的最小數(shù)量為n個(gè)數(shù)據(jù)包(m=1),最大不超過2n個(gè)數(shù)據(jù)包(m→∞)。具體而言,即使客戶機(jī)的數(shù)量增加,每個(gè)客戶機(jī)的負(fù)載只是逐漸接近2n個(gè)數(shù)據(jù)包,并不會超過這一數(shù)量。因此不會導(dǎo)致在各個(gè)客戶機(jī)內(nèi)的負(fù)載溢出問題。同時(shí),服務(wù)器14必須為每個(gè)數(shù)據(jù)包從m個(gè)客戶機(jī)中選出一個(gè)客戶機(jī)。這一客戶機(jī)選擇處理的次數(shù)與客戶機(jī)的數(shù)量m成正比,而數(shù)據(jù)包的傳輸從不依賴客戶機(jī)的數(shù)量。因此,無論何時(shí)如果客戶機(jī)的數(shù)量增加,在本發(fā)明的數(shù)字內(nèi)容分發(fā)中不會在網(wǎng)絡(luò)可擴(kuò)展性方面發(fā)生不利的情況。
因而,在本發(fā)明中也對均勻選擇的相反情況作了假設(shè)。具體而言,也假設(shè)了只有一個(gè)客戶機(jī)從服務(wù)器14接收到所有源數(shù)據(jù)包的情況。而且在該情況中,輸入客戶機(jī)的數(shù)據(jù)包數(shù)量與常規(guī)情況相比沒有變化,因?yàn)?,所輸入的?shù)據(jù)包是用于一個(gè)數(shù)據(jù)流的,并且有n個(gè)源數(shù)據(jù)包輸入了被選擇的客戶機(jī)。此外,已經(jīng)接收到源數(shù)據(jù)包的客戶機(jī)所輸出的拷貝數(shù)據(jù)包僅在該客戶機(jī)內(nèi)與n×m個(gè)數(shù)據(jù)包相加。在此情況下,雖然只在被選擇的客戶機(jī)內(nèi)增加了負(fù)載,但從服務(wù)器14向組分發(fā)數(shù)字內(nèi)容不會發(fā)生嚴(yán)重問題,因?yàn)樵诮M內(nèi)只增加了廣播通信量。此外,在本發(fā)明中,優(yōu)選采用路徑樹結(jié)構(gòu)的動(dòng)態(tài)選擇,從而可使該情況下的選擇盡可能接近均勻選擇,從而不致偏向于只將源數(shù)據(jù)包發(fā)送給上述一個(gè)客戶機(jī)。同時(shí),也可以通過動(dòng)態(tài)地選擇路徑樹結(jié)構(gòu)進(jìn)行重建以保持網(wǎng)絡(luò)系統(tǒng)的穩(wěn)定。后面將對上述路徑樹結(jié)構(gòu)的動(dòng)態(tài)選擇進(jìn)行詳細(xì)說明。須指出,為了防止因選擇的不均勻性導(dǎo)致所發(fā)送數(shù)據(jù)包數(shù)量在局部上的增加,必須對拷貝數(shù)據(jù)包的傳輸速度和傳輸處理的時(shí)間進(jìn)行限制,而且超過限制的數(shù)據(jù)包會破裂。
<B-3>動(dòng)態(tài)選擇(動(dòng)態(tài)最佳化)在本發(fā)明的路徑樹結(jié)構(gòu)中,一個(gè)或多個(gè)客戶機(jī)不是固定的和靜態(tài)使用的,而是從客戶機(jī)中動(dòng)態(tài)地選擇出來的。在路徑樹結(jié)構(gòu)的選擇中,傳輸數(shù)據(jù)包的路徑樹結(jié)構(gòu)是在以下條件下動(dòng)態(tài)地構(gòu)建的(a)有關(guān)客戶機(jī)已做好接收數(shù)據(jù)包的準(zhǔn)備;(b)作為中間節(jié)點(diǎn)、從服務(wù)器的角度看來往傳輸時(shí)間(RTT)短的客戶機(jī)的路徑選擇被賦予優(yōu)先權(quán),即路徑所選擇的是處理開銷小的客戶機(jī);(c)包含作為中間節(jié)點(diǎn)、數(shù)據(jù)包拷貝率高的客戶機(jī)的路徑被賦予優(yōu)先權(quán)。
通過TCP等面向連接的協(xié)議可以實(shí)現(xiàn)上述條件(a)的驗(yàn)證處理。此外,將通過利用,例如,在服務(wù)器14發(fā)送源數(shù)據(jù)包情況下的Ipv4格式,對條件(b)中所述的RTT測量進(jìn)行描述。為進(jìn)行該項(xiàng)測量,時(shí)間可以預(yù)先記錄在源傳輸數(shù)據(jù)包IP的頭部,而接收到源數(shù)據(jù)包的客戶機(jī)可將IP的頭部按原樣將其返回服務(wù)器。作為選擇,也可以通過使用在應(yīng)用層單獨(dú)生成的原始頭部并將時(shí)間記錄在原始頭部內(nèi),該原始頭部可以按原樣返回服務(wù)器。如上所述,可以使用利用時(shí)間差的方法,該時(shí)間差即記錄在IP頭部等處的時(shí)間和返回到服務(wù)器14的時(shí)間之間的差異。此外,服務(wù)器14發(fā)送源數(shù)據(jù)包的時(shí)間可以預(yù)先存儲,而且來自客戶機(jī)的響應(yīng)數(shù)據(jù)包可以被接收,這樣就可以讀取并驗(yàn)證響應(yīng)數(shù)據(jù)包IP頭部的時(shí)間。
在利用TCP的情況下,結(jié)合RTT,可以觀察到包含在有關(guān)層級進(jìn)行再發(fā)送處理所用時(shí)間的時(shí)間,即吞吐量。須指出,為進(jìn)行RTT的測量,也可利用多項(xiàng)觀察結(jié)果的平均值,以便吸收測量值的波動(dòng)。
此外,被描述為條件(c)的拷貝率利用了從中間客戶機(jī)到下游客戶機(jī)的數(shù)據(jù)包傳輸成功率。在使用諸如TCP的面向連接協(xié)議的網(wǎng)絡(luò)中,拷貝率變化的原因包括中間客戶機(jī)由于時(shí)間的限制而打破數(shù)據(jù)包的情況等。當(dāng)客戶機(jī)按照UDP協(xié)議互相連接時(shí),拷貝率根據(jù)數(shù)據(jù)包到達(dá)下游客戶機(jī)的速率而計(jì)算。
在本發(fā)明的具體實(shí)施例中,為了滿足上述條件,符合條件(a)的客戶機(jī)被選擇,從而使源數(shù)據(jù)包以預(yù)定速率分發(fā)到該客戶機(jī)。圖6是一幅示意圖,說明在本發(fā)明中動(dòng)態(tài)地選擇作為中間節(jié)點(diǎn)的客戶機(jī)的情況。如圖6所示,服務(wù)器14選擇客戶機(jī)20e作為中間節(jié)點(diǎn),并向其發(fā)送源數(shù)據(jù)包。例如,響應(yīng)于服務(wù)器14開始的數(shù)字內(nèi)容分發(fā),客戶機(jī)20e可被選作在該時(shí)間點(diǎn)首先返回響應(yīng)的客戶機(jī)。例如,除客戶機(jī)20e之外的客戶機(jī)未被選擇,其原因是這些其它客戶機(jī)因執(zhí)行其它處理而未能在預(yù)定閾值時(shí)間內(nèi)對服務(wù)器14作出響應(yīng),而且,與客戶機(jī)20e相比,它們的RTT,例如,比設(shè)定的閾值更慢。在圖6中所示的實(shí)施例中,服務(wù)器14判定客戶機(jī)20e具有足夠的處理能力,并將客戶機(jī)20e設(shè)置為接收源數(shù)據(jù)包的中間節(jié)點(diǎn)。接收到源數(shù)據(jù)包的客戶機(jī)20e使用,例如,廣播通信將拷貝數(shù)據(jù)包分發(fā)到組#1內(nèi)的其它客戶機(jī)。
在本發(fā)明中,具有最小RTT的客戶機(jī)被選作中間節(jié)點(diǎn)。而且,除此以外,如下所述,分配權(quán)值也可結(jié)合RTT在客戶機(jī)之間授予。例如,在本發(fā)明的最優(yōu)選實(shí)施例中,可采納的權(quán)值可根據(jù)以下關(guān)系式給定。
公式1 tk吞吐量∝1/RTTrk拷貝率在以上關(guān)系表達(dá)式內(nèi),tkrk與真實(shí)吞吐量,即客戶機(jī)在單位時(shí)間內(nèi)可處理的數(shù)據(jù)包數(shù)量,成正比。因此,在這種分配方法中,實(shí)現(xiàn)有效吞吐量最大化,即實(shí)現(xiàn)穩(wěn)定性最大化,被設(shè)置為目標(biāo)函數(shù)。須指出,在本發(fā)明中,上述條件可適用于各個(gè)源數(shù)據(jù)包。此外,在本發(fā)明中,源數(shù)據(jù)包的權(quán)值分配可以按預(yù)定時(shí)間間隔定期地更新。不能在每個(gè)時(shí)間點(diǎn)接收數(shù)據(jù)包的客戶機(jī)被排除在路徑選擇候選者之外。這樣,即使在權(quán)值分配中有錯(cuò)誤,也不會發(fā)生像丟失數(shù)據(jù)包那樣的嚴(yán)重情況。此外,在本發(fā)明的另一個(gè)實(shí)施例中,可以僅僅通過使用RTT來判定有效吞吐量。
<B-4>動(dòng)態(tài)重建此外,在新的客戶機(jī)被添加到服務(wù)器所認(rèn)可的組內(nèi)時(shí),本發(fā)明即隨著新客戶機(jī)的增加而自動(dòng)地拷貝,這樣就可以靈活應(yīng)對網(wǎng)絡(luò)結(jié)構(gòu)的變化。
圖7說明在有新的客戶機(jī)加入本發(fā)明中的組#1時(shí),服務(wù)器14的處理過程。如圖7所示,當(dāng)客戶機(jī)20f加入組#1時(shí),客戶機(jī)20f通過使用,例如,從另一個(gè)客戶機(jī)采集到的服務(wù)器14的IP地址,向服務(wù)器14發(fā)出加入請求。加入請求可以包括客戶機(jī)的標(biāo)識符,例如新加入客戶機(jī)20f所采集到的或分配到的IP地址。
一旦接收到加入請求,服務(wù)器14將客戶機(jī)20f的標(biāo)識符添加到保存在服務(wù)器14內(nèi)、被用作目的地列表的組#1客戶機(jī)列表上。在圖7所示的實(shí)施例中,服務(wù)器14通過利用,例如,向組#1的引起注意的IP地址所進(jìn)行的廣播,發(fā)出新成員通知,以便通報(bào)包含客戶機(jī)20a至20e的組#1內(nèi)添加了新客戶機(jī)的情況。
隨后,服務(wù)器14向新加入的客戶機(jī)20f發(fā)送連接請求,表明其連接已經(jīng)完成。在圖7所示的實(shí)施例中,保存在服務(wù)器14內(nèi)、與構(gòu)成組#1的客戶機(jī)成員相對應(yīng)的標(biāo)識符可以包含在連接請求內(nèi)??蛻魴C(jī)20f接收連接請求并更新成員列表。須指出,為進(jìn)行此項(xiàng)操作,可以使用,例如,屬于同一申請人的編號為No.2002-088702的日本專利申請中所描述的IP地址自動(dòng)采集方法。在可以使用編號為No.2002-088702的日本專利申請所公開的IP地址自動(dòng)采集方法的情況下,就可以不必從服務(wù)器向各個(gè)客戶機(jī)20a至20e發(fā)送新成員通知,因?yàn)樗鼈円呀?jīng)保存了成員列表。
在上述處理過程以后,服務(wù)器14就變成能夠在路徑樹結(jié)構(gòu)中判定包含新加入客戶機(jī)20f的路徑,以進(jìn)行數(shù)字內(nèi)容分發(fā)。在本發(fā)明的具體實(shí)施例中,可以采用一種結(jié)構(gòu),其中,客戶機(jī)20f在其加入組后立即被添加到已準(zhǔn)備好的路徑樹結(jié)構(gòu)中的最低數(shù)據(jù)流,而且客戶機(jī)20f從其它客戶機(jī)20a至20e采集拷貝數(shù)據(jù)包。包含客戶機(jī)20f的新路徑樹結(jié)構(gòu)是在RTT監(jiān)控中的預(yù)定時(shí)間周期消逝后的路徑選擇中構(gòu)成的。
須指出,在本發(fā)明中,客戶機(jī)20f的性能在初期階段是未知的,所以,例如,如以下公式所示,可以預(yù)先賦予客戶機(jī)20f很大的RTT,作為初始值(大數(shù)值),并且可以預(yù)先降低源數(shù)據(jù)包的接收頻率。為進(jìn)行以上判定,可以使用包含所謂遺忘系數(shù)的平衡,以逐漸降低過去實(shí)際結(jié)果的權(quán)值。在本發(fā)明中,在新加入的客戶機(jī)的所謂“實(shí)際結(jié)果”變得明顯可以保證網(wǎng)絡(luò)安全的時(shí)間點(diǎn)之后,在優(yōu)選情況下應(yīng)用本發(fā)明的動(dòng)態(tài)結(jié)構(gòu)方法。這樣,本發(fā)明的效率就可進(jìn)一步得到提高。
圖8表明,根據(jù)新建立的路徑樹結(jié)構(gòu),源數(shù)據(jù)包被從服務(wù)器14發(fā)送到新加入的客戶機(jī)20f,而拷貝數(shù)據(jù)包則從其它客戶機(jī)20a至20c發(fā)送到20f。
此外,在本發(fā)明中,當(dāng)聯(lián)接的客戶機(jī)離開時(shí),服務(wù)器14可通過面向連接的網(wǎng)絡(luò)了解到該客戶機(jī)的離開。須指出,盡管即便是在客戶機(jī)異常結(jié)束的情況下也可檢測到客戶機(jī)的離開,但出現(xiàn)了直到客戶機(jī)超時(shí)也無法檢測到網(wǎng)絡(luò)電纜斷開的情況時(shí),即發(fā)生了偶然事件。在本發(fā)明中,即使發(fā)生超時(shí),按照動(dòng)態(tài)選擇的規(guī)則(確認(rèn)接收啟用/禁用),源數(shù)據(jù)包也不會發(fā)送給該客戶機(jī)。所以,就不會發(fā)生將由其它客戶機(jī)接收的數(shù)據(jù)包一次全部丟失的不利情況。
認(rèn)識到聯(lián)接客戶機(jī)離開的服務(wù)器14立即打破以該相關(guān)客戶機(jī)為中間節(jié)點(diǎn)的路徑樹結(jié)構(gòu),并防止源數(shù)據(jù)包的丟失。留在組#1內(nèi)的客戶機(jī)可以根據(jù)成員列表分發(fā)所接收的源數(shù)據(jù)包。在留下的客戶機(jī)在廣播通信的基礎(chǔ)上傳送拷貝數(shù)據(jù)包的情況下,這些客戶機(jī)可以向組#1內(nèi)的所有可以接收拷貝數(shù)據(jù)包的客戶機(jī)發(fā)送拷貝數(shù)據(jù)包。此外,留下的客戶機(jī)取消了各個(gè)客戶機(jī)與離開的客戶機(jī)之間的連接,從而可以將離開的客戶機(jī)從所有路徑樹結(jié)構(gòu)的最低數(shù)據(jù)流中刪除。
此外,一些分發(fā)到離開客戶機(jī)的源數(shù)據(jù)包有時(shí)可能不被中繼,而是在客戶機(jī)離開的同時(shí)破裂。為了避免伴隨客戶機(jī)離開的這種數(shù)據(jù)包丟失現(xiàn)象,服務(wù)器14對一些不斷地發(fā)送到各個(gè)客戶機(jī)的新數(shù)據(jù)包進(jìn)行預(yù)先記錄處理,并在監(jiān)測到客戶機(jī)離開的時(shí)間點(diǎn)上將發(fā)送給離開客戶機(jī)的數(shù)據(jù)包重新發(fā)送到其它客戶機(jī)。
在本發(fā)明中,隨著上述結(jié)構(gòu)的采納,服務(wù)器和客戶機(jī)自動(dòng)局部地增加、刪減和改變路徑樹結(jié)構(gòu),從而通過客戶機(jī)的加入和離開而重建組。此外,最近發(fā)送的數(shù)據(jù)包被記錄并根據(jù)需要重新發(fā)送,這樣就能夠防止客戶機(jī)突然離開而導(dǎo)致數(shù)據(jù)包丟失。
圖9是一幅功能框圖,說明本發(fā)明所述客戶機(jī)20的構(gòu)造??蛻魴C(jī)20通過網(wǎng)絡(luò)接口卡(NIC)30與第二網(wǎng)絡(luò)連接。此外,客戶機(jī)20通過包括接收緩沖器32、存儲器34和諸如RAM的存儲器36而構(gòu)成。接收緩沖器32在重建活動(dòng)畫面圖像數(shù)據(jù)的數(shù)據(jù)流之前的時(shí)間周期內(nèi)保存所接收的源數(shù)據(jù)包和拷貝數(shù)據(jù)包。
在本發(fā)明中,接收緩沖器32可被構(gòu)建成環(huán)形緩沖器,該緩沖器在每次接收數(shù)據(jù)包時(shí),將所接收的數(shù)據(jù)包寫到對應(yīng)于數(shù)據(jù)包標(biāo)識符的地址。此外,客戶機(jī)20通過包括中央處理器(CPU)36、源解碼器38和FEC解碼器40而構(gòu)成。然而,F(xiàn)EC解碼器40在本發(fā)明中并不總是必需的。CPU 36與時(shí)鐘同時(shí)驅(qū)動(dòng),讀取在各個(gè)預(yù)定時(shí)間周期內(nèi)累積在接收緩沖器32內(nèi)的數(shù)據(jù)包,將數(shù)據(jù)包發(fā)送到源解碼器38和FEC解碼器40,并且重建一個(gè)數(shù)據(jù)流的活動(dòng)畫面圖像數(shù)據(jù)。一個(gè)數(shù)據(jù)流的重建活動(dòng)畫面圖像數(shù)據(jù)被顯示或復(fù)制在顯示器42上,以提供給客戶機(jī)的用戶。
為用戶顯示或復(fù)制的活動(dòng)畫面圖像數(shù)據(jù)可以從客戶機(jī)20上刪除。作為選擇,從數(shù)字內(nèi)容的開頭至結(jié)尾的整個(gè)數(shù)據(jù)流可以保存在存儲器34內(nèi),并可存儲在存儲裝置44,例如硬盤、磁性光盤和磁帶內(nèi)。在存儲裝置44內(nèi)可以存儲,例如,成員列表,該成員列表是通過包括用于識別構(gòu)成組#1的客戶的客戶標(biāo)識符而構(gòu)成的??蛻袅斜碓诳蛻魴C(jī)啟動(dòng)時(shí)從存儲裝置44讀入客戶機(jī)的存儲器36內(nèi),并作為常駐文件而保存。當(dāng)圖9所示的客戶機(jī)接收源數(shù)據(jù)包時(shí),客戶機(jī)20參照成員列表并指定拷貝數(shù)據(jù)包的分發(fā)目的地。此外,當(dāng)客戶機(jī)20按照TCP/IP協(xié)議向,例如,設(shè)置為Ipv4格式的目的地的abc,def.ghi.255廣播發(fā)送拷貝數(shù)據(jù)包,就沒有必要直接參照上述成員列表。
圖10是一幅功能框圖,說明在本發(fā)明中服務(wù)器14的構(gòu)造。圖10所示服務(wù)器14通過調(diào)制解調(diào)器、DSU或網(wǎng)絡(luò)接口卡等通信裝置46與網(wǎng)絡(luò)12連接,并向客戶機(jī)(圖中未標(biāo)出)分發(fā)數(shù)字內(nèi)容。在下文中,將從采集數(shù)字內(nèi)容開始,說明本發(fā)明服務(wù)器14的功能。
諸如數(shù)字電視攝像機(jī)等成像裝置48,與圖10所示的服務(wù)器14連接,其中想要作為數(shù)字內(nèi)容而分發(fā)的數(shù)字?jǐn)?shù)據(jù),例如,節(jié)目、講演會、祝賀和教學(xué)大綱等都被記錄在記錄介質(zhì)中。記錄的數(shù)字?jǐn)?shù)據(jù)通過適當(dāng)?shù)慕涌诓杉椒?wù)器14中,并保存在,例如,存儲裝置50中。在優(yōu)選情況下,在本發(fā)明中將數(shù)字?jǐn)?shù)據(jù)構(gòu)建為包含上述活動(dòng)畫面圖像數(shù)據(jù)的多媒體數(shù)據(jù)。在向客戶機(jī)發(fā)送數(shù)字內(nèi)容時(shí),CPU 52首先從存儲裝置50中讀取數(shù)字內(nèi)容,并將讀取的數(shù)字內(nèi)容發(fā)送到源解碼器54和FEC解碼器56。接收到數(shù)字?jǐn)?shù)據(jù)的源解碼器54和FEC解碼器56進(jìn)行數(shù)字?jǐn)?shù)據(jù)的流式處理,并將數(shù)據(jù)流進(jìn)一步分為預(yù)定大小的數(shù)據(jù)包,例如數(shù)據(jù)包P1至P5。所創(chuàng)建的數(shù)據(jù)包P1至P5通過通信裝置46向,例如,組#1分發(fā)數(shù)字內(nèi)容。
由于在服務(wù)器14和客戶機(jī)20之間確立了面向連接的協(xié)議,所以響應(yīng)于所分配的RTT,RTT已經(jīng)在最小權(quán)值上被監(jiān)控,而且根據(jù)分配權(quán)值選擇了作為中間節(jié)點(diǎn)的客戶機(jī)。服務(wù)器14將源數(shù)據(jù)包發(fā)送到被選為中間節(jié)點(diǎn)的客戶機(jī),并向其分發(fā)數(shù)字內(nèi)容。圖11解釋了通過使用IP頭部可在本發(fā)明中使用的源數(shù)據(jù)包58的結(jié)構(gòu)實(shí)施例。如圖11(a)所示,從服務(wù)器14發(fā)出的源數(shù)據(jù)包58通過包括,例如,IP頭部58a而構(gòu)成,而IP頭部58a通過包括發(fā)送地址和目的地地址58b而構(gòu)成。此外,源數(shù)據(jù)包58還包括將要分發(fā)的數(shù)字內(nèi)容58c、作為系列號P1等附加的數(shù)據(jù)包標(biāo)識符58d以及源數(shù)據(jù)包被發(fā)送時(shí)的發(fā)送時(shí)間58e等。在本發(fā)明中,上述數(shù)據(jù)包58c、數(shù)據(jù)包標(biāo)識符58d和發(fā)送時(shí)間58e可以作為創(chuàng)建在應(yīng)用層的原始數(shù)據(jù)包而構(gòu)成。此外,IP頭部58a包括IP版本信息和發(fā)送源的IP地址等,其結(jié)構(gòu)可以使服務(wù)器14能夠根據(jù)客戶機(jī)的答復(fù)判定RTT。在發(fā)送圖11(a)所示的源數(shù)據(jù)包58時(shí),服務(wù)器14也可通過定時(shí)器等監(jiān)控源數(shù)據(jù)包,例如數(shù)據(jù)包P1,的發(fā)送時(shí)間。
由接收到源數(shù)據(jù)包P1的客戶機(jī)發(fā)出的響應(yīng)數(shù)據(jù)包通過網(wǎng)絡(luò)12返回到服務(wù)器14,并一次累積在服務(wù)器14的適當(dāng)存儲單元內(nèi),并在客戶機(jī)從所記錄的時(shí)間,例如附加在響應(yīng)數(shù)據(jù)包上的發(fā)送時(shí)間,發(fā)送相應(yīng)數(shù)據(jù)包的時(shí)候讀取時(shí)間。圖11(b)說明從客戶機(jī)發(fā)出的響應(yīng)數(shù)據(jù)包60的構(gòu)成實(shí)施例。如圖11(b)所示,響應(yīng)數(shù)據(jù)包60包括IP頭部60a。如上所述,IP頭部60a包括發(fā)送源地址和目的地地址60(b)。此外,響應(yīng)數(shù)據(jù)包60通過包括所接收數(shù)字?jǐn)?shù)據(jù)的數(shù)據(jù)包標(biāo)識符60c、客戶機(jī)發(fā)出響應(yīng)數(shù)據(jù)包60時(shí)的時(shí)間60d以及源數(shù)據(jù)包P1被發(fā)送時(shí)的發(fā)送時(shí)間58e而構(gòu)成。在IP頭部60a內(nèi),客戶機(jī)發(fā)送響應(yīng)數(shù)據(jù)包60時(shí)的時(shí)間以及發(fā)送源客戶機(jī)的發(fā)送源IP地址等都被記錄。
在本發(fā)明中,一旦接收到響應(yīng)數(shù)據(jù)包60,服務(wù)器14即通過利用共同存在于源數(shù)據(jù)包58和響應(yīng)數(shù)據(jù)包60中的標(biāo)識符,即在圖11所示的實(shí)施例中的數(shù)據(jù)包標(biāo)識符P1,判定響應(yīng)數(shù)據(jù)包60是相應(yīng)于接收源數(shù)據(jù)包54的響應(yīng)數(shù)據(jù)包。在本發(fā)明的具體實(shí)施例中,服務(wù)器14通過使用源數(shù)據(jù)包的發(fā)送時(shí)間58e和響應(yīng)數(shù)據(jù)包的發(fā)出時(shí)間60d計(jì)算RTT,并通過使用1/RTT和拷貝率判定客戶機(jī)有效吞吐量。所判定的有效吞吐量是,例如,對于固定的時(shí)間周期是平衡的,而且隨后被用于更新圖12所示的客戶機(jī)列表。此外,在本發(fā)明的另一個(gè)實(shí)施例中,在時(shí)間已被記錄在IP頭部的情況下,可以直接使用記錄在IP頭部的時(shí)間。
圖12是說明在本發(fā)明中服務(wù)器14所用的客戶機(jī)列表62的實(shí)施例的表格。圖12所示的客戶機(jī)列表62通過包括在服務(wù)器14分發(fā)數(shù)字內(nèi)容時(shí)注冊的組標(biāo)識符62a、包含在特定組內(nèi)的客戶機(jī)地址62b以及在預(yù)定時(shí)間周期內(nèi)平衡的有效吞吐量而構(gòu)成的。例如,在分發(fā)數(shù)字內(nèi)容時(shí),內(nèi)容提供者,例如電視臺、衛(wèi)星廣播站以及事件提供者都可以通過由用戶等進(jìn)行注冊來準(zhǔn)備組標(biāo)識符62a。此外,當(dāng)服務(wù)器14通過事務(wù)企業(yè)、司法機(jī)構(gòu)、立法機(jī)構(gòu)、圖書館等的內(nèi)聯(lián)網(wǎng)分發(fā)數(shù)字內(nèi)容,而不特別受限于內(nèi)容提供者時(shí),則分配給各個(gè)事務(wù)企業(yè)或機(jī)構(gòu)的地址,例如IP地址,即可被使用。
此外,分配到特定組的客戶機(jī)地址62b和IP地址等,可以在本發(fā)明的具體實(shí)施例中使用。圖12所示的有效吞吐量62c是本發(fā)明中的基本參數(shù),該參數(shù)用于上述分配加權(quán)。在本發(fā)明中,上述加權(quán),例如,在大約一秒鐘的時(shí)間間隔內(nèi)平衡,以便防止不必要的變化并穩(wěn)定路徑樹的結(jié)構(gòu),以保證網(wǎng)絡(luò)的穩(wěn)定性/可靠性和響應(yīng)于客戶的離開和接入或處理狀態(tài)而靈活應(yīng)付開銷的變化。這種加權(quán)作為有效吞吐量而定期更新。圖12所示有效吞吐量62c按相應(yīng)于,例如,組#1內(nèi)客戶機(jī)20a至20e的數(shù)值標(biāo)示為#1Ta至#1Te。
此處假設(shè)客戶機(jī)20b和20c被選為中間節(jié)點(diǎn)而且分配給它們的權(quán)值比為3∶2,則圖13所示的路徑樹結(jié)構(gòu)即在服務(wù)器14中形成。服務(wù)器14根據(jù)權(quán)值,例如,將源數(shù)據(jù)包P1至P3發(fā)送到客戶機(jī)20b,將源數(shù)據(jù)包P4至P5發(fā)送到客戶機(jī)20c。所發(fā)送的源數(shù)據(jù)包作為拷貝數(shù)據(jù)包Cp1至Cp5從被選作中間節(jié)點(diǎn)的客戶機(jī)20b和20c發(fā)送到包含在組#1內(nèi)的其它客戶機(jī)。然后,拷貝數(shù)據(jù)包Cp1至Cp5被累積在各個(gè)客戶機(jī)的接收緩沖器中,然后,在累積了一個(gè)預(yù)定時(shí)間周期后,即被用于重建一個(gè)數(shù)據(jù)流。須指出,在本發(fā)明的另一個(gè)實(shí)施例中,所發(fā)送的源數(shù)據(jù)包可以按任何數(shù)值比劃分,并發(fā)送給中間節(jié)點(diǎn)。
C數(shù)字內(nèi)容分發(fā)系統(tǒng)的另一個(gè)實(shí)施例圖14是一幅示意圖,說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)的第二實(shí)施例。圖14所示數(shù)字內(nèi)容分發(fā)系統(tǒng)是通過包括以下部分而構(gòu)成的用于創(chuàng)建數(shù)字內(nèi)容的源服務(wù)器64、保存在源服務(wù)器64內(nèi)用于提取和保存接受流式處理的數(shù)字?jǐn)?shù)據(jù)的排空服務(wù)器66,以及通過網(wǎng)絡(luò)12連接的組#1、#2和#3。采納了一種結(jié)構(gòu),在該結(jié)構(gòu)中各個(gè)組內(nèi)有客戶機(jī)被選為中間節(jié)點(diǎn)并在組內(nèi)按照本發(fā)明發(fā)送數(shù)字內(nèi)容。
圖15是一幅框圖,說明在圖14中所顯示的源服務(wù)器64和一個(gè)客戶機(jī)的構(gòu)造。如圖15(a)所示,源服務(wù)器通過使用源解碼器64a和FEC編碼器64b根據(jù)已創(chuàng)建的數(shù)字?jǐn)?shù)據(jù)創(chuàng)建流式數(shù)據(jù)內(nèi)容。所創(chuàng)建的數(shù)據(jù)包被發(fā)送到排空服務(wù)器66,在排空服務(wù)器66內(nèi)被編輯成本發(fā)明所需的n個(gè)源數(shù)據(jù)包,并通過網(wǎng)絡(luò)12發(fā)送到客戶機(jī)。此外,圖15(b)說明了客戶機(jī)的結(jié)構(gòu)和處理過程。客戶機(jī)20接收拷貝數(shù)據(jù)包,并在一個(gè)預(yù)定時(shí)間周期內(nèi)累積了拷貝數(shù)據(jù)包后,通過使用FEC解碼器38和源解碼器40為一個(gè)數(shù)據(jù)流重建數(shù)字內(nèi)容。然后客戶機(jī)20向用戶提供數(shù)字內(nèi)容。同時(shí),被選作中間節(jié)點(diǎn)的客戶機(jī)20a拷貝所接收的源數(shù)據(jù)包,并將該數(shù)據(jù)包作為拷貝數(shù)據(jù)包分發(fā)到其它客戶機(jī)。
D在數(shù)字內(nèi)容分發(fā)中的源數(shù)據(jù)包傳輸協(xié)議圖16是一幅示意圖,說明在本發(fā)明的服務(wù)器和客戶機(jī)之間源數(shù)據(jù)包按時(shí)間順序的傳輸情況。源數(shù)據(jù)包按固定的時(shí)間間隔從服務(wù)器分發(fā)到任何客戶機(jī)。接收到數(shù)據(jù)包的客戶機(jī)向服務(wù)器發(fā)回響應(yīng)數(shù)據(jù)包確認(rèn)信息??蛻魴C(jī)被構(gòu)建成可向服務(wù)器定期報(bào)告(例如每秒1次)拷貝的成功率(拷貝率)。如上所述,從每當(dāng)數(shù)據(jù)包發(fā)出直至每當(dāng)服務(wù)器收到響應(yīng)數(shù)據(jù)包確認(rèn)信息之間的時(shí)間周期被用作RTT(來往傳輸時(shí)間),用于確定中間節(jié)點(diǎn)在路徑樹結(jié)構(gòu)中的分配權(quán)值。
圖17是一幅示意圖,按時(shí)間說明在本發(fā)明中源數(shù)據(jù)包和拷貝數(shù)據(jù)包在服務(wù)器和被選作中間節(jié)點(diǎn)的客戶機(jī)之間按時(shí)間順序傳輸?shù)那闆r。已從服務(wù)器接收到源數(shù)據(jù)包P1和P2的客戶機(jī)將源數(shù)據(jù)包P1和P2的拷貝數(shù)據(jù)包#1和#2分發(fā)到本組的客戶機(jī)b。在該情況下的成功率(復(fù)制率)被定期地報(bào)告給服務(wù)器。此外,服務(wù)器向客戶機(jī)b發(fā)送數(shù)據(jù)包P3,而客戶機(jī)b則向客戶機(jī)a發(fā)送拷貝數(shù)據(jù)包#3。在該時(shí)間點(diǎn)上,客戶機(jī)a在接收緩沖器中保存有數(shù)據(jù)包P1至P3。上述過程依次重復(fù),從而為一個(gè)數(shù)據(jù)流累積了數(shù)據(jù)包。
圖18是一幅流程圖,說明本發(fā)明的客戶機(jī)的處理過程。被選作中間節(jié)點(diǎn)的客戶機(jī)始終被設(shè)置在等待接收源數(shù)據(jù)包的狀態(tài),并在步驟S100監(jiān)控?cái)?shù)據(jù)包的到達(dá)。一旦接收到數(shù)據(jù)包,該客戶機(jī)即在步驟S102根據(jù)所接收數(shù)據(jù)包的標(biāo)識符計(jì)算在接收緩沖器中的存儲位置。在步驟104,判定緩沖器中的位置是否空的。如果是空的(是),則編號與該位置相對應(yīng)的數(shù)據(jù)包還未被接收。因此,在步驟S112,所接收的數(shù)據(jù)包被寫入接收緩沖器中的相應(yīng)位置。隨后,在步驟S114,判定所接收的數(shù)據(jù)包是否源數(shù)據(jù)包,例如,通過使用包含在IP頭部的發(fā)送源地址判定接收的是否源數(shù)據(jù)包。如果接收的是源數(shù)據(jù)包(是),處理過程即轉(zhuǎn)入步驟S116,其中拷貝過程被保留,以便將拷貝數(shù)據(jù)包發(fā)送給本組內(nèi)的其它客戶機(jī)??截愡^程的保留可以通過,例如,利用適當(dāng)?shù)腇IFO緩沖器對所接收數(shù)據(jù)包注冊而進(jìn)行。在拷貝過程的保留結(jié)束后,處理過程就返回步驟S100,客戶機(jī)處于等待接收數(shù)據(jù)包的狀態(tài)。
另一方面,如果在步驟104判定相應(yīng)的緩沖器地址不是空的(否),則具有相應(yīng)數(shù)據(jù)包標(biāo)識符的數(shù)據(jù)包已經(jīng)被接收。因此,在步驟S106就判定,有相應(yīng)標(biāo)識符的數(shù)據(jù)包是否已經(jīng)被保留,以便接受拷貝處理。如果該改保留已經(jīng)注冊(是),則該保留就在步驟S108被刪除,因?yàn)橹貙憣?dǎo)致源數(shù)據(jù)包被擦除。然后,拷貝失敗計(jì)數(shù)器在步驟S110遞增計(jì)數(shù)。在步驟S112,在該時(shí)間點(diǎn)上被接收的數(shù)據(jù)包被重寫到相應(yīng)的緩沖器位置。這相當(dāng)于后續(xù)的數(shù)據(jù)包在客戶機(jī)發(fā)送源數(shù)據(jù)包拷貝之前就到達(dá)。這也相當(dāng)于數(shù)據(jù)包的熄滅。如果未注冊數(shù)據(jù)包的保留以接受拷貝處理(否),處理過程即轉(zhuǎn)到步驟S112,其中數(shù)據(jù)包被重寫到相應(yīng)的緩沖器地址,因?yàn)樵摂?shù)據(jù)包是拷貝數(shù)據(jù)包。然后,重復(fù)從S114至S110的過程。
圖19(a)是一幅流程圖,說明在本發(fā)明中的拷貝過程。在如圖19所示的拷貝過程的步驟S120,客戶機(jī)處于等待狀態(tài),直至需要進(jìn)行拷貝處理的源數(shù)據(jù)包進(jìn)行了注冊。在源數(shù)據(jù)包注冊時(shí),如果注冊已經(jīng)完成,例如,像所述實(shí)施例中利用FIFO緩沖器進(jìn)行的注冊,則以前注冊的數(shù)據(jù)包即在步驟S122被選擇。在步驟S124,客戶機(jī)拷貝所選擇的數(shù)據(jù)包,以制作拷貝數(shù)據(jù)包,并進(jìn)行廣播傳輸,將拷貝數(shù)據(jù)包發(fā)往其它客戶機(jī),或參照目的地IP地址將拷貝數(shù)據(jù)包分別發(fā)送給其它客戶機(jī)。此后,拷貝成功計(jì)數(shù)器在步驟S128遞增計(jì)數(shù),過程返回到步驟S120,客戶機(jī)處于等待狀態(tài)。上述拷貝成功計(jì)數(shù)器的計(jì)數(shù)與拷貝成功計(jì)數(shù)器和拷貝失敗計(jì)數(shù)器的總計(jì)數(shù)之比,作為拷貝率發(fā)送給服務(wù)器。采納了一種可以防止對數(shù)字內(nèi)容分發(fā)不利情況的結(jié)構(gòu),例如,如果拷貝率過低,可通過為一個(gè)數(shù)據(jù)流重新發(fā)送數(shù)據(jù)包的處理方法來防止出現(xiàn)因數(shù)據(jù)包丟失而導(dǎo)致的不利情況。
圖19(b)是一幅流程圖,說明在發(fā)生客戶機(jī)意外離開的情況下或在有關(guān)客戶機(jī)內(nèi)檢測到嚴(yán)重故障的情況下,服務(wù)器的處理過程。在步驟S130,服務(wù)器通過RTT和拷貝率始終監(jiān)控著客戶機(jī)的有效吞吐量。例如,如果服務(wù)器在預(yù)定閾值的時(shí)間周期內(nèi)沒有接收到響應(yīng)數(shù)據(jù)包,服務(wù)器即判定客戶機(jī)已離開或發(fā)生了故障。此后,處理過程轉(zhuǎn)入步驟S132,服務(wù)器從發(fā)送到有關(guān)客戶機(jī)的源數(shù)據(jù)包中選出在相應(yīng)于預(yù)定閾值的時(shí)間周期內(nèi)發(fā)送的源數(shù)據(jù)包。然后,服務(wù)器利用服務(wù)器的已發(fā)出源數(shù)據(jù)包列表的表頭進(jìn)行所選擇的源數(shù)據(jù)包的注冊,并將經(jīng)過注冊的源數(shù)據(jù)包發(fā)往其它客戶機(jī)。這樣,就采納了可以防止源信息包熄滅的結(jié)構(gòu)。
圖20是一幅示意圖,說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)的另一個(gè)更為具體的實(shí)施例。具體而言,在圖20中所說明的實(shí)施例是本發(fā)明應(yīng)用于利用內(nèi)聯(lián)網(wǎng)進(jìn)行演講會等內(nèi)部廣播的實(shí)施例。在圖20中所說明的實(shí)施例中,內(nèi)部內(nèi)聯(lián)網(wǎng)的結(jié)構(gòu)可以使位于各個(gè)部門的終端路由器70利用基干路由器74通過網(wǎng)絡(luò)72而互相連接,網(wǎng)絡(luò)72可以是以太網(wǎng)(注冊商標(biāo))或光纖信道等。在每個(gè)終端路由器70之下,客戶機(jī)由,例如,大約100部個(gè)人計(jì)算機(jī)構(gòu)成,這些個(gè)人計(jì)算機(jī)通過對等連接組成第二網(wǎng)絡(luò)76。在參照圖20說明的實(shí)施例中,構(gòu)建了擁有大約3000個(gè)客戶機(jī)20的網(wǎng)絡(luò)。例如,如果服務(wù)器78在圖20所描述的結(jié)構(gòu)下向所有客戶機(jī)發(fā)送數(shù)據(jù)包,即使擁有,例如,1Gbps帶寬的基干路由器被用作基干路由器74,服務(wù)器78也無法順利地發(fā)送需要8Mbps傳輸速度的活動(dòng)畫面圖像數(shù)據(jù)。例如,利用常規(guī)方法不能進(jìn)行數(shù)字多功能光碟(DVD)大小的數(shù)字內(nèi)容分發(fā)。如果不使用本發(fā)明的數(shù)據(jù)包重疊避免技術(shù),即使網(wǎng)絡(luò)只有100個(gè)客戶機(jī),用戶也不能實(shí)時(shí)地接收數(shù)字內(nèi)容的分發(fā)。
本發(fā)明被應(yīng)用于該系統(tǒng)。因此,如果客戶機(jī)利用,例如,100Mbps的以太網(wǎng)(注冊商標(biāo))通過同一個(gè)交換集線器組成第二網(wǎng)絡(luò),則預(yù)計(jì)作為客戶機(jī)之間對等連接傳輸速度的吞吐量為40至50Mbps。因此,在發(fā)送/接收,例如,MPEG4標(biāo)準(zhǔn)的8Mbps數(shù)據(jù)時(shí)不會出現(xiàn)問題。另一方面,如果客戶機(jī)連接到不同的終端路由器,將客戶機(jī)分為不同的組就更為有效。然而,在此情況下,服務(wù)器78按組的數(shù)量發(fā)送數(shù)據(jù)流。如果有30個(gè)終端路由器,每個(gè)終端路由器下面連接100部個(gè)人計(jì)算機(jī),從而可以為每個(gè)終端路由器分配組。
在此情況下,30個(gè)數(shù)據(jù)流的數(shù)據(jù)將在消耗240Mbps吞吐量的同時(shí),從直接連接基干路由器74的服務(wù)器78發(fā)送。在圖20所說明的實(shí)施例中,在終端路由器70之下、作為客戶機(jī)20的個(gè)人計(jì)算機(jī)組,可以隨時(shí)加入或離開包含演講會議視頻和音頻數(shù)據(jù)的網(wǎng)絡(luò)。此外,性能相對較低的客戶機(jī)在數(shù)據(jù)包傳輸中始終處于路徑樹結(jié)構(gòu)的下游,這樣就可避免對其它客戶機(jī)的不良影響。須指出,雖然在此情況下服務(wù)器管理著300個(gè)客戶機(jī)作為路徑選擇對象,一臺服務(wù)器已足夠進(jìn)行實(shí)時(shí)數(shù)字內(nèi)容分發(fā)。
圖21是一幅示意圖,說明本發(fā)明的又一個(gè)更為具體的實(shí)施例。根據(jù)本發(fā)明,在該實(shí)施例中,許多客戶機(jī)20同時(shí)從位于因特網(wǎng)的服務(wù)器14接收數(shù)字內(nèi)容。在圖21所說明的實(shí)施例中,因特網(wǎng)組成第一網(wǎng)絡(luò)12,而第二網(wǎng)絡(luò)22相當(dāng)于,例如,通過路由器16與因特網(wǎng)連接的內(nèi)聯(lián)網(wǎng)。從因特網(wǎng)的角度看,內(nèi)部內(nèi)聯(lián)網(wǎng)是管理良好、頻帶寬和吞吐量波動(dòng)小的網(wǎng)絡(luò)。當(dāng)服務(wù)器14位于因特網(wǎng)時(shí),如果組由屬于同一個(gè)內(nèi)聯(lián)網(wǎng)的客戶機(jī)構(gòu)成,客戶機(jī)就可同時(shí)接收,例如,1Mbps的活動(dòng)畫面圖像/數(shù)據(jù)視頻信號,同時(shí)在沒有任何專用邊緣服務(wù)器的情況下防止數(shù)據(jù)包的重疊。在圖21所說明的實(shí)施例中,確認(rèn)了2Mbps的傳輸速度可以滿足客戶機(jī)對傳輸速度的要求。
圖22是一幅示意圖,說明本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)的另外又一個(gè)實(shí)施例,該實(shí)施例使減輕無線網(wǎng)絡(luò)上的服務(wù)器負(fù)載成為可能。在圖22所說明的本發(fā)明實(shí)施例中,服務(wù)器14所進(jìn)行的處理僅僅是根據(jù)組的數(shù)量發(fā)送數(shù)據(jù)流和進(jìn)行動(dòng)態(tài)路徑選擇。因此,與常規(guī)情況相比,服務(wù)器的開銷可以減少。例如,客戶機(jī)20的負(fù)載有時(shí)可能比服務(wù)器14更大,因?yàn)閺?fù)制MPEG2或MPEG4圖像數(shù)據(jù)需要極大的CPU資源。此外,服務(wù)器14僅向由客戶機(jī)20構(gòu)成的組分發(fā)一個(gè)數(shù)據(jù)流。這樣,即使位于無線網(wǎng)絡(luò)上的服務(wù)器14只有很少的CPU資源,服務(wù)器14也能夠,例如,以384kbps的速率向內(nèi)聯(lián)網(wǎng)上通過無線網(wǎng)絡(luò)連接的許多客戶機(jī)同時(shí)分發(fā)MPEG4標(biāo)準(zhǔn)的數(shù)據(jù)流。
E執(zhí)行偽隧道分發(fā)的數(shù)字內(nèi)容分發(fā)系統(tǒng)所進(jìn)行的數(shù)字內(nèi)容分發(fā)圖23說明本發(fā)明中啟用了偽隧道分發(fā)技術(shù)的數(shù)字內(nèi)容分發(fā)系統(tǒng)。在圖23中所說明的數(shù)字內(nèi)容分發(fā)系統(tǒng)80通過包括服務(wù)器82和客戶機(jī)86而構(gòu)成,服務(wù)器82用于從發(fā)射機(jī)接收數(shù)字內(nèi)容并在其內(nèi)部保存該數(shù)字內(nèi)容,而客戶機(jī)86屬于由許多客戶機(jī)86構(gòu)成的組84a至84c。服務(wù)器82和組84a至84c利用路由器88通過諸如因特網(wǎng)的第一網(wǎng)絡(luò)相互連接。此外,屬于各組的客戶機(jī)86通過由其組成的LAN互相連接,從而能夠共享數(shù)據(jù)和進(jìn)行信息傳輸。須指出,圖23所展示的組的數(shù)量并不具體受限于本發(fā)明所說明的數(shù)量,即客戶機(jī)的數(shù)量也不具體受限于本發(fā)明所說明的數(shù)量。此外,正如本領(lǐng)域技術(shù)人員所公知的,像打印機(jī)服務(wù)器和郵件服務(wù)器等各種服務(wù)器都可以與組連接。各個(gè)組構(gòu)成更大的廣域組G1,而結(jié)構(gòu)類似的廣域組G2和G3與第一網(wǎng)絡(luò)12連接。須指出,盡管數(shù)字內(nèi)容也可從服務(wù)器82分發(fā)到廣域組G2和G3,但各個(gè)組也可使用不同的服務(wù)器。
將對圖23所示數(shù)字內(nèi)容分發(fā)系統(tǒng)80的功能進(jìn)行詳細(xì)說明。首先,服務(wù)器82從由提供者管理的發(fā)射器服務(wù)器接收將要分發(fā)的數(shù)字內(nèi)容。作為選擇,提供者以活動(dòng)畫面或文本格式向服務(wù)器輸入數(shù)字內(nèi)容。這樣,數(shù)字內(nèi)容就被保存在諸如硬盤等存儲裝置90內(nèi)。此外,當(dāng)多媒體數(shù)據(jù)直接從電視攝像機(jī)輸入服務(wù)器82時(shí),數(shù)字內(nèi)容就保存在服務(wù)器82內(nèi)適當(dāng)?shù)木彌_存儲器(圖中未標(biāo)出)等處。
被保存的數(shù)字內(nèi)容在服務(wù)器82中接受流式處理,被分為多個(gè)區(qū)段并被創(chuàng)建為源數(shù)據(jù)包。所創(chuàng)建的源數(shù)據(jù)包被發(fā)送到客戶機(jī)86,該客戶機(jī)86是根據(jù)本發(fā)明的方法,通過使用執(zhí)行吞吐量等選出的。如圖23所示,一旦接收到源數(shù)據(jù)包,客戶機(jī)86即執(zhí)行在組內(nèi)或在組之間的源數(shù)據(jù)包拷貝,從而能夠在整個(gè)廣域組共享數(shù)字內(nèi)容。
此外,各個(gè)客戶機(jī)86都包括用于復(fù)制數(shù)字內(nèi)容的應(yīng)用程序,例如Windows多媒體播放器(商標(biāo)),并對累積在客戶機(jī)的緩沖存儲器中的數(shù)字內(nèi)容執(zhí)行復(fù)制處理,從而能夠向用戶提供數(shù)字內(nèi)容。在圖23所說明的實(shí)施例中,應(yīng)用程序包含在每個(gè)客戶機(jī)內(nèi),而數(shù)字內(nèi)容累積在各個(gè)客戶機(jī)86內(nèi)。在本發(fā)明中,通過向源數(shù)據(jù)包說明在組內(nèi)或在組之間執(zhí)行數(shù)據(jù)包拷貝的數(shù)據(jù),就可以在服務(wù)器82內(nèi)執(zhí)行偽隧道分發(fā)。此外,在又一個(gè)實(shí)施例中,也可制成一種結(jié)構(gòu),在其中預(yù)先將從客戶列表中選出的拷貝目的地列表存儲在客戶機(jī)內(nèi),對源數(shù)據(jù)包的接收進(jìn)行判定,查閱拷貝目的地列表并發(fā)送拷貝數(shù)據(jù)包。
圖24說明在本發(fā)明中為執(zhí)行偽隧道分發(fā)而創(chuàng)建的源數(shù)據(jù)包的實(shí)施例。圖24(a)所示的源數(shù)據(jù)包92包括以下組成部分發(fā)送時(shí)間說明區(qū)92a、附加在源數(shù)據(jù)包上的數(shù)據(jù)包標(biāo)識符說明區(qū)92b、用于指示在組內(nèi)和在組之間分別執(zhí)行數(shù)據(jù)包拷貝的拷貝指令標(biāo)志區(qū)92c和92d以及由數(shù)字內(nèi)容的實(shí)際數(shù)據(jù)組成的數(shù)據(jù)包說明區(qū)92e。
發(fā)送時(shí)間說明區(qū)92a可以把服務(wù)器第一次發(fā)出數(shù)據(jù)包的時(shí)間轉(zhuǎn)換成服務(wù)器和客戶機(jī)可辨認(rèn)的任意格式。發(fā)送時(shí)間說明區(qū)92a在服務(wù)器82測量各個(gè)客戶機(jī)的響應(yīng)時(shí)間,即執(zhí)行吞吐量,的情況下使用,以便確定將各個(gè)數(shù)據(jù)包發(fā)送給哪個(gè)客戶機(jī)。此外,數(shù)據(jù)包標(biāo)識符說明區(qū)92b是用于在其內(nèi)部記錄附加在服務(wù)器82所發(fā)出的源數(shù)據(jù)包上的系列號的區(qū)域,在客戶機(jī)重建源數(shù)據(jù)包時(shí)序的情況下使用。
拷貝指令標(biāo)志區(qū)92c是對用于指示是否將在組內(nèi)進(jìn)行拷貝的真/偽標(biāo)志加以說明的區(qū)域??蛻魴C(jī)執(zhí)行發(fā)送處理,把所接收到的、在這些區(qū)域的標(biāo)志為真的數(shù)據(jù)包拷貝發(fā)送給組內(nèi)所有客戶機(jī)??截愔噶顦?biāo)志區(qū)92d是對用于指示是否將在組之間進(jìn)行拷貝的真/偽標(biāo)志加以說明的區(qū)域??蛻魴C(jī)執(zhí)行發(fā)送處理,把所接收到的、在這些區(qū)域的標(biāo)志為真的數(shù)據(jù)包拷貝發(fā)送給廣域組內(nèi)其它各個(gè)組的客戶機(jī)之一。
數(shù)據(jù)包說明區(qū)92d是對服務(wù)器82將要發(fā)送的和將被客戶機(jī)86復(fù)制的數(shù)字內(nèi)容的真實(shí)數(shù)據(jù)加以說明的區(qū)域。須指出,在本發(fā)明中,可以在這些成分之前、之后或之間添加其它額外的成分,也可改變這些成分的順序。此外,根據(jù)情況,一部分成分可以被省略。此外,如圖11所示,源數(shù)據(jù)包92通過包括發(fā)送源IP地址和目的地IP地址而構(gòu)成,目的地IP地址用于指定發(fā)送源數(shù)據(jù)包92的目的地,盡管圖中未標(biāo)出。
圖24(b)說明在本發(fā)明的內(nèi)容分發(fā)服務(wù)器82中所創(chuàng)建的源數(shù)據(jù)包的第二實(shí)施例。在圖24(b)所說明的實(shí)施例中,所制成的源數(shù)據(jù)包本身就包含數(shù)據(jù)包拷貝將發(fā)往的客戶機(jī)列表,這樣,對分發(fā)目的地的指定就更為詳細(xì)。在此情況下,服務(wù)器82參照服務(wù)器本身所保存的客戶機(jī)列表,在源數(shù)據(jù)包92中對數(shù)據(jù)包拷貝將發(fā)往的目的地列表加以說明。此外,圖24(b)所示的源數(shù)據(jù)包包含發(fā)送時(shí)間說明區(qū)92a和數(shù)據(jù)包標(biāo)識符說明區(qū)92b,具有允許客戶機(jī)執(zhí)行類似于參照圖24(a)所說明功能的功能。此外,圖24(b)所示的源數(shù)據(jù)包被提供有拷貝指令數(shù)據(jù)區(qū)92f,拷貝指令數(shù)據(jù)區(qū)92f指定由服務(wù)器82所指定的拷貝目的地。當(dāng)客戶機(jī)判定已接收到源數(shù)據(jù)包,客戶機(jī)即閱讀拷貝指令數(shù)據(jù)區(qū)92f,并執(zhí)行如下所述的處理。
在拷貝指令數(shù)據(jù)區(qū)92f中所描述的數(shù)值N_dest指定拷貝將發(fā)往的目的地列表的長度。從數(shù)值Dest1至DestN,可以使用用于指定拷貝將發(fā)往的客戶機(jī)IP地址等客戶機(jī)標(biāo)識符。例如,如果客戶機(jī)本身所屬的組在拷貝指令數(shù)據(jù)區(qū)92f被指定,則客戶機(jī)只將源數(shù)據(jù)包發(fā)送給本組內(nèi)的客戶機(jī)。同時(shí)。如果一個(gè)指定將拷貝數(shù)據(jù)包發(fā)送到其它組的數(shù)值,例如對應(yīng)于其它組的IP地址等,在拷貝指令數(shù)據(jù)區(qū)92f被指定,則客戶機(jī)就將源數(shù)據(jù)包發(fā)送給被指定組內(nèi)的客戶機(jī)。數(shù)據(jù)包說明區(qū)92e與參照圖24(a)所描述的相似。
圖24(c)說明的是在本發(fā)明的內(nèi)所使用的源數(shù)據(jù)包92的第三實(shí)施例。在圖24(c)中說明的實(shí)施例是在拷貝數(shù)據(jù)包的地址最初就很明顯的情況下建立的,所以不必再做說明。在此情況下,客戶機(jī)預(yù)先從存儲在存儲器和硬盤等存儲裝置內(nèi)的客戶機(jī)列表中選擇拷貝目的地,并選擇其它組內(nèi)所分配的地址范圍與其它客戶機(jī)不重疊的客戶機(jī),從而可以進(jìn)行拷貝目的地列表的準(zhǔn)備。此外,在圖24(c)的實(shí)施例中的組內(nèi)進(jìn)行拷貝數(shù)據(jù)包分發(fā)時(shí),該數(shù)據(jù)包分發(fā)可以通過執(zhí)行組內(nèi)的廣播而進(jìn)行。此外,在另一個(gè)實(shí)施例中,可以預(yù)先采納一種結(jié)構(gòu),其中,客戶機(jī)向組內(nèi)其它客戶機(jī)發(fā)送拷貝數(shù)據(jù)包,并向廣域組內(nèi)屬于其它各個(gè)組的一部客戶機(jī)發(fā)送所接收源數(shù)據(jù)包的每份拷貝。在圖24中加以說明并可用于本實(shí)施例的源數(shù)據(jù)包的組成部分包括發(fā)送時(shí)間說明區(qū)92a、數(shù)據(jù)包標(biāo)識符說明區(qū)92b、數(shù)據(jù)包說明區(qū)92e,但不包括拷貝數(shù)據(jù)包分發(fā)目的地。如上所述,客戶機(jī)向列在拷貝目的地列表上的客戶機(jī),即預(yù)先指定的客戶機(jī)分發(fā)拷貝數(shù)據(jù)包。
圖25是一幅流程圖,說明服務(wù)器執(zhí)行本發(fā)明偽隧道分發(fā)的過程。在本發(fā)明的偽隧道分發(fā)中,在步驟S130,服務(wù)器通過對客戶機(jī)發(fā)送的通知(加入請求)的監(jiān)控,判定是否有新的客戶機(jī)與組加入。如果服務(wù)器發(fā)現(xiàn)了新加入的客戶機(jī)(是),在步驟S132,服務(wù)器就預(yù)先為新加入客戶機(jī)的執(zhí)行吞吐量分配一個(gè)較小數(shù)值,并從當(dāng)時(shí)和以后的實(shí)際結(jié)果考慮,防止大量的源數(shù)據(jù)包突然發(fā)往新加入的客戶機(jī)。隨后,在步驟S134,服務(wù)器將有關(guān)客戶機(jī)添加到客戶機(jī)列表,從而可以向該客戶機(jī)分發(fā)數(shù)字內(nèi)容。此處,可以通過分配給客戶機(jī)的標(biāo)識符,例如IP地址和任意附加到客戶機(jī)上的名稱等,對客戶機(jī)進(jìn)行識別。在步驟S136,服務(wù)器向包含新加入的客戶機(jī)的廣域組內(nèi)的所有客戶機(jī)發(fā)出新客戶機(jī)加入廣域組的通知,并通報(bào)新客戶機(jī)的標(biāo)識符,例如其IP地址等。接收到通知的客戶機(jī)將新的列表存儲在硬盤或適當(dāng)?shù)拇鎯ζ髦?。在此情況下,傳輸可通過使用本發(fā)明的偽隧道分發(fā)而執(zhí)行。作為選擇,可以通過使用任何已知的方法進(jìn)行,因?yàn)榕c多媒體數(shù)據(jù)和圖像數(shù)據(jù)等相比,所傳輸?shù)臄?shù)據(jù)量相對較小。通過上述步驟,服務(wù)器和客戶機(jī)就可以擁有相同的最新客戶機(jī)列表。
圖26是一幅流程圖,說明在服務(wù)器和客戶機(jī)之間進(jìn)行本發(fā)明的數(shù)字內(nèi)容分發(fā)過程。如果提供者在步驟S140指示服務(wù)器進(jìn)行數(shù)字內(nèi)容分發(fā),服務(wù)器就參照客戶機(jī)列表選擇一個(gè)執(zhí)行吞吐量最大或來往傳輸時(shí)間(RTT)最短的客戶機(jī),并參照其IP地址等向有關(guān)客戶機(jī)發(fā)送第一個(gè)源數(shù)據(jù)包。在此情況下,在本發(fā)明最簡單的偽隧道分發(fā)方法的實(shí)施例中,同一個(gè)源數(shù)據(jù)包只分發(fā)給屬于廣域組的客戶機(jī)中的一個(gè)客戶機(jī)。
客戶機(jī)在步驟S142接收數(shù)據(jù)包,并在步驟S144判定所接收的數(shù)據(jù)包是否來自服務(wù)器的源數(shù)據(jù)包。可以根據(jù),例如,所接收的數(shù)據(jù)包是否包含發(fā)送源地址、拷貝指令標(biāo)志和拷貝指令數(shù)據(jù)區(qū)等源數(shù)據(jù)包所包含的內(nèi)容,來判定所接收的數(shù)據(jù)包是否來自服務(wù)器的源數(shù)據(jù)包。此外,在本發(fā)明中,只要數(shù)據(jù)包被判定為拷貝數(shù)據(jù)包,源數(shù)據(jù)包的拷貝就可以按任何格式準(zhǔn)備。此外,由于分配給服務(wù)器的IP地址一般被設(shè)置為固定的IP地址,所以,可以最普遍使用的源數(shù)據(jù)包判定方法是通過使用數(shù)據(jù)包中的發(fā)送源IP地址來進(jìn)行判定。如果在步驟S144的判定中,數(shù)據(jù)包被判定為源數(shù)據(jù)包(是),客戶機(jī)就在步驟S146參照源數(shù)據(jù)包內(nèi)所說明的分發(fā)目的地,或在圖24(c)所說明的源數(shù)據(jù)包實(shí)施例的情況下參照拷貝目的地列表,將源數(shù)據(jù)包的拷貝發(fā)送到預(yù)先注冊的分發(fā)目的地。在此情況下,拷貝數(shù)據(jù)包的傳輸包括兩個(gè)過程。具體而言,(i)客戶機(jī)向隸屬于已接收源數(shù)據(jù)包的客戶機(jī)所屬組的所有客戶機(jī)發(fā)送拷貝數(shù)據(jù)包;(ii)客戶機(jī)向各個(gè)組的被選擇的一個(gè)客戶機(jī)發(fā)送拷貝數(shù)據(jù)包,已接收源數(shù)據(jù)包的客戶機(jī)不屬于這些組。至于將選擇哪個(gè)客戶機(jī)可以預(yù)先進(jìn)行設(shè)置。作為選擇,拷貝數(shù)據(jù)包將要發(fā)往的客戶機(jī)的RTT被預(yù)先按適當(dāng)?shù)臉?biāo)準(zhǔn)和技術(shù)監(jiān)控,以類似的方式為內(nèi)容分發(fā)服務(wù)器動(dòng)態(tài)性地選擇響應(yīng)時(shí)間短的客戶機(jī),拷貝數(shù)據(jù)包可以發(fā)送給該客戶機(jī)。
如果在步驟S144的判定中,數(shù)據(jù)包被判定為不是源數(shù)據(jù)包(否),則該數(shù)據(jù)包是接收客戶機(jī)將要存儲的數(shù)據(jù)包。因此,在步驟S148,客戶機(jī)將所接收的拷貝數(shù)據(jù)包累積在環(huán)形緩沖器等處,并開始復(fù)制數(shù)字內(nèi)容的處理過程。然后,處理過程轉(zhuǎn)到步驟S142,并為下一個(gè)數(shù)據(jù)包重復(fù)進(jìn)行。
圖27是一幅示意圖,說明上述在服務(wù)器和客戶機(jī)之間的數(shù)據(jù)包發(fā)送/接收過程。如圖27所示,客戶機(jī)a屬于組SGi,SGi構(gòu)成廣域組,廣域組用參考碼G表示,而組SGi至SGm(1≤i≤m)存在于廣域組G內(nèi)??蛻魴C(jī)把從服務(wù)器82接收的源數(shù)據(jù)包拷貝發(fā)送給屬于組SGi的所有客戶機(jī)以及各個(gè)其它(m-1)組的一個(gè)客戶機(jī)b。
在圖26和27中所說明的方法使包含在廣域組G內(nèi)的客戶機(jī)能夠從服務(wù)器82、其它組內(nèi)的客戶機(jī)以及同一組內(nèi)的客戶機(jī)接收數(shù)據(jù)包。其結(jié)果是,服務(wù)器可以向所有客戶機(jī)發(fā)送所有數(shù)據(jù)包,以便在不像常規(guī)方法那樣發(fā)送重疊的數(shù)字內(nèi)容的情況下重建數(shù)字內(nèi)容,常規(guī)方法通過為各組構(gòu)建隧道,將源數(shù)據(jù)包作為重建數(shù)字內(nèi)容的最小單元來傳輸。此外,在本發(fā)明的偽隧道分發(fā)中,源數(shù)據(jù)包不是按重疊的方式傳輸?shù)摹K?,就能夠完全避免?shù)據(jù)包在客戶機(jī)中的重疊。因此,不會出現(xiàn)數(shù)據(jù)包在客戶機(jī)內(nèi)重疊的問題和與此相伴的重疊數(shù)據(jù)包的處理問題,因而能夠使數(shù)字內(nèi)容順利分發(fā)。
此外,在環(huán)形緩沖器中累積了預(yù)定數(shù)量的源數(shù)據(jù)包和拷貝數(shù)據(jù)包后,客戶機(jī)將這些數(shù)據(jù)包提供給應(yīng)用程序,并將數(shù)據(jù)包提供給用戶。
在本發(fā)明的偽隧道分發(fā)中,可以使數(shù)字內(nèi)容的分發(fā)在不壓縮所有服務(wù)器、組和客戶機(jī)的帶寬的情況下進(jìn)行。從服務(wù)器發(fā)往廣域組的數(shù)據(jù)包屬于一個(gè)集。從各組看,所接收數(shù)據(jù)包都屬于包含源數(shù)據(jù)包和拷貝數(shù)據(jù)包的一個(gè)集,而所發(fā)送的數(shù)據(jù)包按組為單位平均為一個(gè)或不足一個(gè)集。即使從客戶機(jī)看,同樣,所接收的數(shù)據(jù)包也屬于一個(gè)集,而所發(fā)送的數(shù)據(jù)包平均為一個(gè)或不足一個(gè)集。此處,包含在廣域組內(nèi)的所有客戶機(jī)的精確數(shù)量為m,而構(gòu)成廣域組的組的精確數(shù)量為M。在此情況下,如果組內(nèi)連接的客戶機(jī)數(shù)量彼此大致相等,則各個(gè)客戶機(jī)隨機(jī)接收一個(gè)集1/m的源數(shù)據(jù)包,將所接收的數(shù)據(jù)包拷貝給組內(nèi)(m/M-1)個(gè)客戶機(jī),還將拷貝數(shù)據(jù)包分發(fā)給其它(M-1)個(gè)組。此處,如果概略地計(jì)算一個(gè)客戶機(jī)的數(shù)據(jù)包發(fā)送/接收數(shù)量,就得到以下公式。
((m/M-1)+(M-1)/m=(m+M^2+2M)/mM在上述公式中,mM-(m+M^2+2M)=(m-M)(M-2)+m>0。因此,建立了以下關(guān)系式。
(m+M^2+2M)/mM<1
此外,根據(jù)本發(fā)明,即使發(fā)生了部分客戶機(jī)加入和離開的情況,而且部分客戶機(jī)由于某些理由而異常結(jié)束,剩下的客戶機(jī)可以繼續(xù)正常地接收數(shù)字內(nèi)容。在本發(fā)明中,在服務(wù)器和客戶機(jī)之間并沒有提供許多隧道,但在服務(wù)器和大量分散的客戶機(jī)之間提供了端對組式隧道,從而使整個(gè)系統(tǒng)具有堅(jiān)固耐用性。
須指出,在上述實(shí)施例中,各個(gè)客戶機(jī)的說明都是在該客戶機(jī)中保存有一對數(shù)字內(nèi)容和數(shù)字內(nèi)容復(fù)制應(yīng)用程序的前提下進(jìn)行的。在本發(fā)明中,雖然客戶機(jī)和應(yīng)用程序可以在同一部計(jì)算機(jī)上運(yùn)行,但如后面將要作出的更詳細(xì)說明,應(yīng)用程序可以共享不只限于上述實(shí)施例的數(shù)字內(nèi)容。此外,創(chuàng)建數(shù)字內(nèi)容的服務(wù)器和對數(shù)字內(nèi)容進(jìn)行流式處理并發(fā)送源數(shù)據(jù)包的服務(wù)器可以在一部計(jì)算機(jī)上運(yùn)行,或者可以構(gòu)建成分開的服務(wù)器。如果被構(gòu)建成彼此分開的計(jì)算機(jī),則提供者和服務(wù)器之間的通信可以是利用UDP和TCP等協(xié)議的多播或單播。在這一點(diǎn)上,和所謂的多播隧道不同,即使從未使用IP多播,本發(fā)明也可以在服務(wù)器和客戶機(jī)之間提供類似于多播的效果。
圖28說明在服務(wù)器和客戶機(jī)之間數(shù)據(jù)包發(fā)送/接收的時(shí)間安排。如圖28所示,服務(wù)器在時(shí)間t1將源數(shù)據(jù)包#1發(fā)送到客戶機(jī)#1。接收到源數(shù)據(jù)包#1的客戶機(jī)#1向服務(wù)器發(fā)送通知源數(shù)據(jù)包已收到的“Ack”信號。服務(wù)器在時(shí)間t2接收“Ack”信號,計(jì)算兩個(gè)時(shí)間之間的差(t2-t1),并在對應(yīng)于客戶機(jī)#1的列表中更新客戶機(jī)的執(zhí)行吞吐量。
一旦接收到源數(shù)據(jù)包,客戶機(jī)#1就立即創(chuàng)建拷貝數(shù)據(jù)包。然后,在時(shí)間t3,客戶機(jī)#1向客戶機(jī)#1所屬的組內(nèi)的客戶機(jī),即圖28所示實(shí)施例中的客戶機(jī)#2,發(fā)送拷貝數(shù)據(jù)包。與此同時(shí),客戶機(jī)#1向?qū)儆诹硪唤M的客戶機(jī)#3發(fā)送拷貝數(shù)據(jù)包#1。客戶機(jī)#2在時(shí)間t4接收拷貝數(shù)據(jù)包#1,而客戶機(jī)#3在時(shí)間t5接收拷貝數(shù)據(jù)包#1??蛻魴C(jī)#3向客戶機(jī)#1發(fā)送“Ack2”信號,通知拷貝數(shù)據(jù)包#1已經(jīng)收到。在時(shí)間t6,客戶機(jī)#1收到“Ack2”信號。客戶機(jī)#1按照,例如,時(shí)間差(t6-t4),計(jì)算組內(nèi)的執(zhí)行吞吐量,并更新相應(yīng)的客戶機(jī)列表。此處,未計(jì)算組內(nèi)來往傳輸時(shí)間的理由是,拷貝數(shù)據(jù)包#1必須在不選擇客戶機(jī)的情況下在組內(nèi)傳輸。此外,如本發(fā)明后面所要描述的,當(dāng)各組之間的傳輸帶寬有很大差異時(shí),服務(wù)器發(fā)送源數(shù)據(jù)包的時(shí)間就被存儲,從目的地客戶機(jī)接收Ack信號的時(shí)間就被測量,然后這些時(shí)間就可被用作判定執(zhí)行吞吐量的標(biāo)準(zhǔn)。
圖29說明本發(fā)明偽隧道分發(fā)系統(tǒng)的另一個(gè)實(shí)施例。在使用諸如ADSL和CATV等通信基礎(chǔ)結(jié)構(gòu)的網(wǎng)絡(luò)中,接收/發(fā)射(下行鏈路/上行鏈路)帶寬就變得不對稱。在網(wǎng)絡(luò)中客戶機(jī)一側(cè)的上行鏈路帶寬被設(shè)計(jì)成窄帶寬的情況下,圖29所示實(shí)施例是有效的實(shí)施例。在圖29所示實(shí)施例中,當(dāng)服務(wù)器發(fā)送源數(shù)據(jù)包時(shí),服務(wù)器向多個(gè)客戶機(jī)發(fā)送至少一個(gè)單元的源數(shù)據(jù)包。在圖29所示的情況下,可以從屬于別的組的客戶機(jī)開始依次對客戶機(jī)個(gè)別地篩選,例如,從來往傳輸時(shí)間(RTT)較短的客戶機(jī)開始篩選。此外,至于發(fā)送到多個(gè)客戶機(jī)的源數(shù)據(jù)包,可以使用圖24(b)所示源數(shù)據(jù)包結(jié)構(gòu),并且可以制定關(guān)于源數(shù)據(jù)包將拷貝到哪個(gè)組的哪個(gè)客戶機(jī)的直接指令。下面將對圖29所示客戶機(jī)所執(zhí)行的處理過程加以描述。一部接收到源數(shù)據(jù)包#1的客戶機(jī)向還沒有相同的源數(shù)據(jù)包#1分發(fā)到的另一個(gè)組發(fā)送拷貝數(shù)據(jù)包。按照上述方式,可以避免由于向同一個(gè)組分發(fā)相當(dāng)于同一個(gè)源數(shù)據(jù)包的拷貝數(shù)據(jù)包而導(dǎo)致的不利情況。此外,相同的源數(shù)據(jù)包#1已發(fā)往的組的地址可以在源數(shù)據(jù)包#1內(nèi)說明,所以拷貝數(shù)據(jù)包可以發(fā)往除地址已被說明的組以外的組。此外,通過使用圖29所示偽隧道分發(fā),組和組之間的傳輸量可以減少,而且上行鏈路數(shù)據(jù)包傳輸量也可以減少。同時(shí),從服務(wù)器的角度看,服務(wù)器的負(fù)載增加了,因?yàn)槌霈F(xiàn)了將同一個(gè)源數(shù)據(jù)包發(fā)往多個(gè)客戶機(jī)的必要性。在本發(fā)明中,從上述權(quán)衡因素和使用的通信基礎(chǔ)結(jié)構(gòu)的特性考慮,可以從上述方法中選出最佳方法。此外,可以按照時(shí)間區(qū)域,綜合使用多種方法進(jìn)行數(shù)字內(nèi)容的分發(fā)。
圖30說明本發(fā)明的偽隧道分發(fā)系統(tǒng)的另外又一個(gè)實(shí)施例。在圖30所示實(shí)施例中,拷貝數(shù)據(jù)包不在組內(nèi)客戶機(jī)之間發(fā)送接收。在圖30所示實(shí)施例中,數(shù)據(jù)包不直接從客戶機(jī)發(fā)送到應(yīng)用程序,但客戶機(jī)通過稱作第三網(wǎng)絡(luò)的廣播或LAN多播而發(fā)送所接收到的數(shù)據(jù)包。在圖30所示實(shí)施例中,用于復(fù)制數(shù)字內(nèi)容的應(yīng)用程序存儲在另一部計(jì)算機(jī)94中,存儲了應(yīng)用程序的計(jì)算機(jī)94通過第三網(wǎng)絡(luò)96連接客戶機(jī)86,以采集必要的數(shù)據(jù)包。然后,計(jì)算機(jī)94復(fù)制數(shù)字內(nèi)容。任何無線網(wǎng)絡(luò)和以太網(wǎng)(注冊商標(biāo))都允許作為第二網(wǎng)絡(luò)22而連接組內(nèi)的客戶機(jī)。然而,作為圖30所示本發(fā)明實(shí)施例內(nèi)的第三網(wǎng)絡(luò)使用時(shí),具有不同于第二網(wǎng)絡(luò)用途的網(wǎng)絡(luò),例如使用以太網(wǎng)(注冊商標(biāo))的網(wǎng)絡(luò),可以被設(shè)置。在圖30所示實(shí)施例中,存儲有應(yīng)用程序的計(jì)算機(jī)94可以接收在第三網(wǎng)絡(luò)上的組內(nèi)所有客戶機(jī)86每次所更新的數(shù)據(jù)包,并可復(fù)制數(shù)據(jù)流。因此,數(shù)字內(nèi)容可以在沒有任何過量和不足的情況下順利地復(fù)制。
此外,圖30所說明的實(shí)施例意味著,應(yīng)用程序即使在未與客戶機(jī)建立一對一關(guān)系的情況下也能接收數(shù)據(jù)包。然而,必須有一個(gè)或多個(gè)客戶機(jī)工作在第三網(wǎng)絡(luò)96上。在此情況下,客戶機(jī)86即使沒有采集到所有數(shù)據(jù)包和在客戶機(jī)86內(nèi)存儲這些數(shù)據(jù)包,也能構(gòu)建偽隧道,這樣,就能在客戶機(jī)一側(cè)減少通信傳輸量和節(jié)省硬件資源的同時(shí),進(jìn)行數(shù)字內(nèi)容的分發(fā)。
如上所述,根據(jù)本發(fā)明,在一對多的數(shù)字媒介分發(fā)中,在客戶機(jī)單元中路徑動(dòng)態(tài)性地最佳化,這樣,網(wǎng)絡(luò)就變得難以受到客戶機(jī)加入和離開的影響,客戶機(jī)就可隨時(shí)加入和離開網(wǎng)絡(luò)。此外,系統(tǒng)也很難受到客戶機(jī)因異常結(jié)束和電纜斷開而離開網(wǎng)絡(luò)的影響,從而可以提高系統(tǒng)的穩(wěn)定性。而且,客戶機(jī)的負(fù)載基本上均勻分散,接收則作為整個(gè)廣域組的功能而工作(分散協(xié)同性),因此,就不再需要專用的輔助服務(wù)器。這樣,就可以避免因強(qiáng)調(diào)自主性而帶來的網(wǎng)絡(luò)系統(tǒng)復(fù)雜性,從而可以實(shí)現(xiàn)易于維護(hù)的簡單系統(tǒng)結(jié)構(gòu)。
此外,反映客戶機(jī)加入和離開的更新過程實(shí)現(xiàn)了局部化,所以開銷始終很小。以這種方式,大幅度降低了服務(wù)器的負(fù)載,而且甚至計(jì)算機(jī)只裝備等于或少于客戶機(jī)的資源,就可以作為服務(wù)器而工作。
此外,根據(jù)本發(fā)明,對于包括多個(gè)彼此以網(wǎng)絡(luò)相連接的組、各組又由多個(gè)客戶機(jī)構(gòu)成的預(yù)定廣域組而言,可以在減少服務(wù)器傳輸?shù)拈_銷的同時(shí),提供能順利而有效地分發(fā)數(shù)字內(nèi)容的數(shù)字內(nèi)容分發(fā)系統(tǒng)。而且,可以為系統(tǒng)提供服務(wù)器和客戶機(jī)、可以使計(jì)算機(jī)像上述服務(wù)器和客戶機(jī)那樣工作的控制方法、用于該方法的程序以及用于記錄程序的計(jì)算機(jī)可讀的記錄介質(zhì)。
須指出,對于本發(fā)明來說,在IP多播和應(yīng)用層多播中的常規(guī)優(yōu)勢,例如,通過有效利用以非重疊方式分發(fā)數(shù)據(jù)包的網(wǎng)絡(luò)以避免擁堵的特性,以及在網(wǎng)絡(luò)層無須進(jìn)行成本較高的置換工作等,都得到了充分的成功體現(xiàn)。這樣,就能進(jìn)行極好的數(shù)字內(nèi)容分發(fā)。此外,在本發(fā)明中,各個(gè)第二網(wǎng)絡(luò)可以通過包括,例如,打印機(jī)服務(wù)器、郵件服務(wù)器和設(shè)備服務(wù)器等服務(wù)器而構(gòu)成。
實(shí)現(xiàn)上述功能的裝置或部件可以構(gòu)建為用計(jì)算機(jī)可執(zhí)行程序語言描述的軟件或一組軟件模塊,并不一定總是必須構(gòu)建成如圖中所示的功能塊。
上述本發(fā)明的用于執(zhí)行數(shù)字內(nèi)容分發(fā)的程序可以使用各種編程語言來描述,例如,C語言、C++語言、Java(注冊商標(biāo))語言等。描述本發(fā)明程序的代碼可以保存在計(jì)算機(jī)可讀記錄介質(zhì)內(nèi),例如磁帶、軟盤、硬盤、光碟(CD)、磁光盤和數(shù)字多功能光碟(DVD)等。
以上,參照附圖通過具體的實(shí)施例對本發(fā)明進(jìn)行了說明。然而本發(fā)明并不僅限于上述具體實(shí)施例,而且,甚至對于各種修改實(shí)例和其它實(shí)施例來說,在發(fā)揮本發(fā)明效果的范圍內(nèi),可使用任何已知的構(gòu)成組件。
盡管對本發(fā)明的優(yōu)選實(shí)施例進(jìn)行了詳細(xì)說明,但應(yīng)該理解,在不違背所附權(quán)利要求書所定義的本發(fā)明的實(shí)質(zhì)和范圍的前提下,可以對上述內(nèi)容進(jìn)行各種修改、替換和變更。
權(quán)利要求
1.一種通過第一和第二網(wǎng)絡(luò)分發(fā)數(shù)字內(nèi)容的數(shù)字內(nèi)容分發(fā)系統(tǒng),該系統(tǒng)包括與第一網(wǎng)絡(luò)連接的服務(wù)器,用于在該服務(wù)器中保存數(shù)字內(nèi)容和發(fā)送數(shù)字內(nèi)容;以及構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)并用于接收和提供數(shù)字內(nèi)容的客戶機(jī),其中服務(wù)器包括用于將所保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包并向第二網(wǎng)絡(luò)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置,而且,其中構(gòu)成第二網(wǎng)絡(luò)的各個(gè)客戶機(jī)包括,用于通過使用最小單元數(shù)據(jù)包、客戶機(jī)已從服務(wù)器接收的數(shù)據(jù)包,以及使用從構(gòu)成第二網(wǎng)絡(luò)的其它客戶機(jī)接收的數(shù)據(jù)包,使連接到第二網(wǎng)絡(luò)的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容的裝置。
2.根據(jù)權(quán)利要求1的數(shù)字內(nèi)容分發(fā)系統(tǒng),其中服務(wù)器包括用于向第二網(wǎng)絡(luò)的多個(gè)客戶機(jī)動(dòng)態(tài)分配最小單元數(shù)據(jù)包的裝置。
3.根據(jù)權(quán)利要求2的數(shù)字內(nèi)容分發(fā)系統(tǒng),其中用于向第二網(wǎng)絡(luò)的多個(gè)客戶機(jī)動(dòng)態(tài)分配最小單元數(shù)據(jù)包的裝置包括用于確定客戶機(jī)開銷的裝置;以及用于結(jié)合開銷動(dòng)態(tài)地選擇至少一個(gè)客戶機(jī)作為中間節(jié)點(diǎn)并向中間節(jié)點(diǎn)分配數(shù)據(jù)包的裝置。
4.根據(jù)權(quán)利要求3的數(shù)字內(nèi)容分發(fā)系統(tǒng),其中用于確定客戶機(jī)開銷的裝置包括,用于確定服務(wù)器向預(yù)定客戶機(jī)發(fā)送最小單元數(shù)據(jù)包的時(shí)間和該預(yù)定客戶機(jī)發(fā)出最小單元數(shù)據(jù)包已收到通知的時(shí)間之間的時(shí)間差的裝置。
5.一種通過第一和第二網(wǎng)絡(luò)向客戶機(jī)分發(fā)數(shù)字內(nèi)容的數(shù)字內(nèi)容分發(fā)方法,其中的系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器,以及用于構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)并接收和提供數(shù)字內(nèi)容的客戶機(jī),該方法包括以下步驟將數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包并從服務(wù)器向客戶機(jī)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包;由構(gòu)成第二網(wǎng)絡(luò)的客戶機(jī)從服務(wù)器接收最小單元數(shù)據(jù)包;從構(gòu)成第二網(wǎng)絡(luò)的其它客戶機(jī)接收用于重建數(shù)字內(nèi)容的數(shù)據(jù)包;以及通過使用最小單元數(shù)據(jù)包、服務(wù)器已發(fā)送的數(shù)據(jù)包,以及使用從其它客戶機(jī)接收的數(shù)據(jù)包,使連接到第二網(wǎng)絡(luò)的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容。
6.根據(jù)權(quán)利要求5的數(shù)字內(nèi)容分發(fā)方法,其中發(fā)送最小單元數(shù)據(jù)包的步驟包括從服務(wù)器向第二網(wǎng)絡(luò)的多個(gè)客戶機(jī)動(dòng)態(tài)地分配最小單元數(shù)據(jù)包的步驟。
7.根據(jù)權(quán)利要求6的數(shù)字內(nèi)容分發(fā)方法,其中向第二網(wǎng)絡(luò)的多個(gè)客戶機(jī)動(dòng)態(tài)地分配最小單元數(shù)據(jù)包的步驟包括以下步驟確定客戶機(jī)的開銷;使服務(wù)器在其內(nèi)部保存所述開銷;結(jié)合所保存的開銷選擇客戶機(jī)作為中間節(jié)點(diǎn);以及向選作中間節(jié)點(diǎn)的客戶機(jī)分配最小單元數(shù)據(jù)包。
8.根據(jù)權(quán)利要求7的數(shù)字內(nèi)容分發(fā)方法,其中確定客戶機(jī)開銷的步驟包括以下步驟將服務(wù)器向預(yù)定客戶機(jī)發(fā)送最小單元數(shù)據(jù)包的時(shí)間在服務(wù)器中注冊;將預(yù)定客戶機(jī)發(fā)出最小單元數(shù)據(jù)包已收到通知的時(shí)間在服務(wù)器中注冊;計(jì)算所述發(fā)送時(shí)間和所述發(fā)出時(shí)間之間的時(shí)間差。
9.一種用于執(zhí)行服務(wù)器處理過程,以執(zhí)行通過第一和第二網(wǎng)絡(luò)向目的地分發(fā)數(shù)字內(nèi)容的方法的程序,其中的系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器,以及用于構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)并具有被指定用于接收和提供數(shù)字內(nèi)容的目的地的客戶機(jī),該程序使系統(tǒng)執(zhí)行以下步驟將數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包;從服務(wù)器向第二網(wǎng)絡(luò)的多個(gè)目的地動(dòng)態(tài)地分配最小單元數(shù)據(jù)包;以及通過第一網(wǎng)絡(luò)從服務(wù)器向第二網(wǎng)絡(luò)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包,其中分配最小單元數(shù)據(jù)包的步驟包括以下步驟從目的地接收已收到通知;使服務(wù)器在其內(nèi)部保存所述已收到通知;結(jié)合使用所保存的已收到通知,選擇目的地作為中間節(jié)點(diǎn);以及向選作中間節(jié)點(diǎn)的目的地分配最小單元數(shù)據(jù)包。
10.根據(jù)權(quán)利要求9的程序,其中選擇目的地的步驟包括將服務(wù)器向預(yù)定目的地發(fā)送最小單元數(shù)據(jù)包的時(shí)間在服務(wù)器中注冊;將發(fā)出最小單元數(shù)據(jù)包已收到通知的時(shí)間在服務(wù)器中注冊;以及計(jì)算所述發(fā)送時(shí)間和所述發(fā)出時(shí)間之間的時(shí)間差。
11.一種用于在其內(nèi)部記錄程序的計(jì)算機(jī)可讀記錄介質(zhì),該程序用于執(zhí)行服務(wù)器處理過程,以執(zhí)行通過第一和第二網(wǎng)絡(luò)向目的地分發(fā)數(shù)字內(nèi)容的方法,其中的系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器,以及用于構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)并具有被指定用于接收和提供數(shù)字內(nèi)容的目的地的客戶機(jī),其中程序使系統(tǒng)執(zhí)行以下步驟將數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包;從服務(wù)器向第二網(wǎng)絡(luò)的多個(gè)目的地動(dòng)態(tài)地分配最小單元數(shù)據(jù)包;以及通過第一網(wǎng)絡(luò)從服務(wù)器向第二網(wǎng)絡(luò)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包,其中分配最小單元數(shù)據(jù)包的步驟包括以下步驟從目的地接收已收到通知;使服務(wù)器在其內(nèi)部保存所述已收到通知;結(jié)合使用所保存的已收到通知,選擇目的地作為中間節(jié)點(diǎn);以及向選作中間節(jié)點(diǎn)的目的地分配最小單元數(shù)據(jù)包。
12.根據(jù)權(quán)利要求11的用于在其內(nèi)部記錄程序的計(jì)算機(jī)可讀記錄介質(zhì),其中選擇目的地的步驟包括以下步驟將服務(wù)器向預(yù)定目的地發(fā)送最小單元數(shù)據(jù)包的時(shí)間在服務(wù)器中注冊;將發(fā)出最小單元數(shù)據(jù)包已收到通知的時(shí)間在服務(wù)器中注冊;以及計(jì)算所述發(fā)送時(shí)間和所述發(fā)出時(shí)間之間的時(shí)間差。
13.根據(jù)權(quán)利要求12的用于在其內(nèi)部記錄程序的計(jì)算機(jī)可讀記錄介質(zhì),其中選擇目的地的步驟還包括以下步驟使服務(wù)器在其內(nèi)部保存目的地列表;通過使用目的地列表和發(fā)出已收到通知的時(shí)間選擇目的地;以及定期更新目的地列表。
14.一種程序,用于執(zhí)行客戶機(jī)處理過程,以執(zhí)行通過第一和第二網(wǎng)絡(luò)向客戶機(jī)分發(fā)數(shù)字內(nèi)容的方法,其中的系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器,以及用于構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)并用于接收和提供數(shù)字內(nèi)容的客戶機(jī),該程序使客戶機(jī)執(zhí)行以下步驟通過第一網(wǎng)絡(luò)接收最小單元數(shù)據(jù)包,該最小單元數(shù)據(jù)包構(gòu)成被分為多個(gè)數(shù)據(jù)包的數(shù)字內(nèi)容;從構(gòu)成第二網(wǎng)絡(luò)的其它客戶機(jī)接收用于重建數(shù)字內(nèi)容的數(shù)據(jù)包;以及通過使用最小單元數(shù)據(jù)包、已通過第一網(wǎng)絡(luò)接收的數(shù)據(jù)包,以及使用從其它客戶機(jī)接收的數(shù)據(jù)包,使包含在第二網(wǎng)絡(luò)中的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容。
15.根據(jù)權(quán)利要求14的程序,其中還使接收到最小單元數(shù)據(jù)包的客戶機(jī)執(zhí)行準(zhǔn)備已收到通知的步驟,該通知包括接收最小單元數(shù)據(jù)包的時(shí)間。
16.根據(jù)權(quán)利要求14的程序,其中還使客戶機(jī)執(zhí)行從接收自其它客戶機(jī)的數(shù)據(jù)包中識別最小單元數(shù)據(jù)包的步驟。
17.根據(jù)權(quán)利要求14的程序,其中還使客戶機(jī)執(zhí)行以下步驟準(zhǔn)備構(gòu)成第二網(wǎng)絡(luò)的成員的列表;以及在客戶機(jī)加入第二網(wǎng)絡(luò)或從第二網(wǎng)絡(luò)刪除的任何情況下,更新該列表。
18.一種用于在其內(nèi)部記錄程序的計(jì)算機(jī)可讀記錄介質(zhì),該程序用于執(zhí)行客戶機(jī)處理過程,以執(zhí)行通過第一和第二網(wǎng)絡(luò)向客戶機(jī)分發(fā)數(shù)字內(nèi)容的方法,其中的系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于發(fā)送數(shù)字內(nèi)容的服務(wù)器,以及用于構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)并用于接收和提供數(shù)字內(nèi)容的客戶機(jī),其中該程序使客戶機(jī)執(zhí)行以下步驟通過第一網(wǎng)絡(luò)接收最小單元數(shù)據(jù)包,這些最小單元數(shù)據(jù)包構(gòu)成被分為多個(gè)數(shù)據(jù)包的數(shù)字內(nèi)容;從構(gòu)成第二網(wǎng)絡(luò)的其它客戶機(jī)接收用于重建數(shù)字內(nèi)容的數(shù)據(jù)包;以及通過使用最小單元數(shù)據(jù)包、已通過第一網(wǎng)絡(luò)接收的數(shù)據(jù)包,以及使用從其它客戶機(jī)接收的數(shù)據(jù)包,使包含在第二網(wǎng)絡(luò)中的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容。
19.根據(jù)權(quán)利要求18的記錄媒介,其中還使接收到最小單元數(shù)據(jù)包的客戶機(jī)執(zhí)行準(zhǔn)備已收到通知的步驟,該通知包括接收最小單元數(shù)據(jù)包的時(shí)間。
20.根據(jù)權(quán)利要求18的記錄媒介,其中還使客戶機(jī)執(zhí)行從接收自其它客戶機(jī)的數(shù)據(jù)包中識別最小單元數(shù)據(jù)包的步驟。
21.根據(jù)權(quán)利要求18的記錄媒介,其中還使客戶機(jī)執(zhí)行以下步驟準(zhǔn)備構(gòu)成第二網(wǎng)絡(luò)的成員的列表;以及在客戶機(jī)加入第二網(wǎng)絡(luò)或從第二網(wǎng)絡(luò)刪除的任何情況下,更新該列表。
22.一種與第一網(wǎng)絡(luò)連接、用于向與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)提供數(shù)字內(nèi)容的數(shù)字內(nèi)容分發(fā)服務(wù)器,該服務(wù)器包括用于將數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包的裝置;用于存儲具有包括在第二網(wǎng)絡(luò)中的目的地的列表的裝置;用于通過第一網(wǎng)絡(luò)從服務(wù)器向第二網(wǎng)絡(luò)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置;用于通過使用列表,向最小單元數(shù)據(jù)包發(fā)往的第二網(wǎng)絡(luò)動(dòng)態(tài)地分配目的地的動(dòng)態(tài)分配裝置;從目的地接收已收到通知的裝置;通過使用已收到通知選擇目的地作為中間節(jié)點(diǎn)的裝置;以及通過使用被選擇作為中間節(jié)點(diǎn)的目的地發(fā)送最小單元數(shù)據(jù)包的裝置。
23.根據(jù)權(quán)利要求22的服務(wù)器,其中動(dòng)態(tài)分配裝置包括將服務(wù)器向預(yù)定目的地發(fā)送最小單元數(shù)據(jù)包的時(shí)間向服務(wù)器注冊的裝置;將有預(yù)定目的地的客戶機(jī)發(fā)出最小單元數(shù)據(jù)包已收到通知的時(shí)間向服務(wù)器注冊的裝置;以及計(jì)算所述發(fā)送時(shí)間和所述發(fā)出時(shí)間之間的時(shí)間差的裝置。
24.根據(jù)權(quán)利要求22的服務(wù)器,還包括目的地列表;以及結(jié)合第二網(wǎng)絡(luò)的結(jié)構(gòu)的變化動(dòng)態(tài)地更新目的地列表的裝置。
25.一種用于接收通過第一網(wǎng)絡(luò)分發(fā)的數(shù)字內(nèi)容并構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò)的客戶機(jī),該客戶機(jī)包括用于通過第一網(wǎng)絡(luò)接收最小單元數(shù)據(jù)包的裝置,該最小單元數(shù)據(jù)包構(gòu)成被分為多個(gè)數(shù)據(jù)包的數(shù)字內(nèi)容;通過第二網(wǎng)絡(luò)接收用于重建數(shù)字內(nèi)容的數(shù)據(jù)包的裝置;使用通過第一網(wǎng)絡(luò)接收的最小單元數(shù)據(jù)包以及通過第二網(wǎng)絡(luò)從其它客戶機(jī)接收的數(shù)據(jù)包,使包含在第二網(wǎng)絡(luò)中的客戶機(jī)在其內(nèi)部保存數(shù)字內(nèi)容的裝置。
26.根據(jù)權(quán)利要求25的客戶機(jī),還包括用于準(zhǔn)備已收到通知的裝置,所述已收到通知包括最小單元數(shù)據(jù)包接收時(shí)間。
27.根據(jù)權(quán)利要求25的客戶機(jī),還包括從接收自其它客戶機(jī)的數(shù)據(jù)包中識別最小單元數(shù)據(jù)包的裝置。
28.根據(jù)權(quán)利要求25的客戶機(jī),還包括構(gòu)成第二網(wǎng)絡(luò)的成員的列表;以及在客戶機(jī)加入第二網(wǎng)絡(luò)或從第二網(wǎng)絡(luò)刪除的任何情況下,更新該列表的裝置。
29.一種用于通過第一和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容的數(shù)字內(nèi)容分發(fā)系統(tǒng),該系統(tǒng)包括與第一網(wǎng)絡(luò)連接、用于在其內(nèi)部保存數(shù)字內(nèi)容和發(fā)送數(shù)字內(nèi)容的服務(wù)器;以及通過包括客戶機(jī)而構(gòu)成的多個(gè)組,所述客戶機(jī)構(gòu)成與第一網(wǎng)絡(luò)連接的第二網(wǎng)絡(luò),所述多個(gè)組用于構(gòu)成廣域組以接收和提供數(shù)字內(nèi)容,其中服務(wù)器包括用于將所保存的數(shù)據(jù)內(nèi)容分為多個(gè)數(shù)據(jù)包,并在沒有重疊的情況下向組內(nèi)的客戶機(jī)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置,而且其中每個(gè)接收到最小單元數(shù)據(jù)包的客戶機(jī)包括,可把從服務(wù)器接收的最小單元數(shù)據(jù)包的拷貝分發(fā)到構(gòu)成組的所有客戶機(jī)的裝置,所述組包括所述每個(gè)客戶機(jī)和構(gòu)成另一個(gè)組的另一個(gè)客戶機(jī)。
30.一種與第一網(wǎng)絡(luò)連接、用于在其內(nèi)部保存數(shù)字內(nèi)容,并通過第一網(wǎng)絡(luò)向廣域組分發(fā)數(shù)字內(nèi)容的服務(wù)器,該廣域組包括多個(gè)通過第二網(wǎng)絡(luò)連接的組,該服務(wù)器包括通過將所保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包而創(chuàng)建最小單元數(shù)據(jù)包的裝置;用于選擇最小單元數(shù)據(jù)包分發(fā)目的地,從而使預(yù)定組的相同的最小單元數(shù)據(jù)包不重疊的裝置;以及用于向組內(nèi)所選擇分發(fā)目的地的客戶機(jī)發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置。
31.根據(jù)權(quán)利要求30的服務(wù)器,其中創(chuàng)建最小單元數(shù)據(jù)包的裝置包括,用于創(chuàng)建包含這樣的最小單元數(shù)據(jù)包的裝置,所述最小單元數(shù)據(jù)包包括用于向至少另一個(gè)組分發(fā)最小單元數(shù)據(jù)包的拷貝的數(shù)據(jù)。
32.一種將計(jì)算機(jī)作為服務(wù)器進(jìn)行控制的方法,以便使該計(jì)算機(jī)在其內(nèi)部保存數(shù)字內(nèi)容并通過第一網(wǎng)絡(luò)向廣域組分發(fā)數(shù)字內(nèi)容,該廣域組包括多個(gè)通過第二網(wǎng)絡(luò)連接的組,該方法使計(jì)算機(jī)執(zhí)行以下步驟通過將保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包而創(chuàng)建最小單元數(shù)據(jù)包;選擇并向其分發(fā)目的地注冊最小單元數(shù)據(jù)包,從而使預(yù)定組的相同的最小單元數(shù)據(jù)包不重疊;將所選擇的分發(fā)目的地?cái)?shù)據(jù)作為最小單元數(shù)據(jù)包而存儲;以及讀取所存儲的最小單元數(shù)據(jù)包并將其發(fā)送給組內(nèi)所選擇分發(fā)目的地的客戶機(jī),以構(gòu)建數(shù)字內(nèi)容。
33.一種將計(jì)算機(jī)作為服務(wù)器進(jìn)行控制的程序,用于在其內(nèi)部保存數(shù)字內(nèi)容并通過第一網(wǎng)絡(luò)向廣域組分發(fā)數(shù)字內(nèi)容,該廣域組包括多個(gè)通過第二網(wǎng)絡(luò)連接的組,該程序使計(jì)算機(jī)執(zhí)行以下步驟通過將保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包而創(chuàng)建最小單元數(shù)據(jù)包;選擇并向其分發(fā)目的地注冊最小單元數(shù)據(jù)包,從而使預(yù)定組的相同的最小單元數(shù)據(jù)包不重疊;將所選擇的分發(fā)目的地?cái)?shù)據(jù)作為最小單元數(shù)據(jù)包而存儲;以及讀取所存儲的最小單元數(shù)據(jù)包并將其發(fā)送給組內(nèi)所選擇分發(fā)目的地的客戶機(jī),以構(gòu)建數(shù)字內(nèi)容。
34.一種計(jì)算機(jī)可讀記錄媒介,可在其內(nèi)部記錄將計(jì)算機(jī)作為服務(wù)器進(jìn)行控制的程序,以在其內(nèi)部保存數(shù)字內(nèi)容并通過第一網(wǎng)絡(luò)向廣域組分發(fā)數(shù)字內(nèi)容,該廣域組包括多個(gè)通過第二網(wǎng)絡(luò)連接的組,其中該程序使計(jì)算機(jī)執(zhí)行以下步驟通過將保存的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包而創(chuàng)建最小單元數(shù)據(jù)包;選擇并向其分發(fā)目的地注冊最小單元數(shù)據(jù)包,從而使預(yù)定組的相同的最小單元數(shù)據(jù)包不重疊;將所選擇的分發(fā)目的地?cái)?shù)據(jù)作為最小單元數(shù)據(jù)包而存儲;以及讀取所存儲的最小單元數(shù)據(jù)包并將其發(fā)送給組內(nèi)所選擇分發(fā)目的地的客戶機(jī),以構(gòu)建數(shù)字內(nèi)容。
35.一種與第二網(wǎng)絡(luò)連接、用于通過第一和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容并構(gòu)成廣域組的組的客戶機(jī),該客戶機(jī)包括用于通過第一和第二網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)接收數(shù)據(jù)包,并用于判定所接收的數(shù)據(jù)包是否用于重建數(shù)字內(nèi)容的最小單元數(shù)據(jù)包的裝置;以及用于對該判定作出響應(yīng),根據(jù)所接收的數(shù)據(jù)包創(chuàng)建拷貝數(shù)據(jù)包并將該拷貝數(shù)據(jù)包至少分發(fā)到另一個(gè)組的一個(gè)客戶機(jī)的裝置。
36.根據(jù)權(quán)利要求35的客戶機(jī),其中用于分發(fā)拷貝數(shù)據(jù)包的裝置包括,用于從所接收數(shù)據(jù)包中至少讀取另一個(gè)組中的一個(gè)拷貝目的地,并在所接收數(shù)據(jù)包被判定為最小單元數(shù)據(jù)包時(shí),將所創(chuàng)建的拷貝數(shù)據(jù)包分發(fā)到所讀取目的地的裝置。
37.根據(jù)權(quán)利要求36的客戶機(jī),還包括用于在其內(nèi)部存儲拷貝目的地列表的存儲裝置。
38.一種將計(jì)算機(jī)作為客戶機(jī)控制的方法,該客戶機(jī)與第二網(wǎng)絡(luò)連接,用于通過第一網(wǎng)絡(luò)和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容并構(gòu)成廣域組的組,該方法使該計(jì)算機(jī)執(zhí)行以下步驟通過第一和第二網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)接收數(shù)據(jù)包,并將所接收的數(shù)據(jù)包存儲在存儲器中;判定所接收的數(shù)據(jù)包是否是用于重建數(shù)字內(nèi)容的最小單元數(shù)據(jù)包;當(dāng)所接收的數(shù)據(jù)包被判定是最小單元數(shù)據(jù)包時(shí),響應(yīng)于該判定,根據(jù)所接收的數(shù)據(jù)包創(chuàng)建拷貝數(shù)據(jù)包,并將該拷貝數(shù)據(jù)包至少分發(fā)到另一個(gè)組的一個(gè)客戶機(jī);并且當(dāng)所接收的數(shù)據(jù)包被判定不是最小單元數(shù)據(jù)包時(shí),就將所接收的數(shù)據(jù)包存儲在存儲器中。
39.一種將計(jì)算機(jī)作為與第二網(wǎng)絡(luò)連接的客戶機(jī)進(jìn)行控制的程序,用于使該計(jì)算機(jī)通過第一網(wǎng)絡(luò)和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容,并構(gòu)成廣域組的組,該程序使該計(jì)算機(jī)執(zhí)行以下步驟通過第一和第二網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)接收數(shù)據(jù)包,并將所接收的數(shù)據(jù)包存儲在存儲器中;判定所接收的數(shù)據(jù)包是否用于重建數(shù)字內(nèi)容的最小單元數(shù)據(jù)包;當(dāng)所接收的數(shù)據(jù)包被判定是最小單元數(shù)據(jù)包時(shí),響應(yīng)于該判定,根據(jù)所接收的數(shù)據(jù)包創(chuàng)建拷貝數(shù)據(jù)包,并將該拷貝數(shù)據(jù)包至少分發(fā)到另一個(gè)組的一個(gè)客戶機(jī);并且當(dāng)所接收的數(shù)據(jù)包被判定不是最小單元數(shù)據(jù)包時(shí),就將所接收的數(shù)據(jù)包存儲在存儲器中。
40.一種計(jì)算機(jī)可讀記錄介質(zhì),用于在其內(nèi)部記錄將計(jì)算機(jī)作為與第二網(wǎng)絡(luò)連接的客戶機(jī)進(jìn)行控制的程序,以便使該計(jì)算機(jī)通過第一網(wǎng)絡(luò)和第二網(wǎng)絡(luò)向預(yù)定廣域組分發(fā)數(shù)字內(nèi)容,并構(gòu)成廣域組的組,其中該程序使計(jì)算機(jī)執(zhí)行以下步驟通過第一和第二網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)接收數(shù)據(jù)包,并將所接收的數(shù)據(jù)包存儲在存儲器中;判定所接收的數(shù)據(jù)包是否是用于重建數(shù)字內(nèi)容的最小單元數(shù)據(jù)包;當(dāng)所接收的數(shù)據(jù)包被判定是最小單元數(shù)據(jù)包時(shí),響應(yīng)于該判定,根據(jù)所接收的數(shù)據(jù)包創(chuàng)建拷貝數(shù)據(jù)包,并將該拷貝數(shù)據(jù)包至少分發(fā)到另一個(gè)組的一個(gè)客戶機(jī);并且當(dāng)所接收的數(shù)據(jù)包被判定不是最小單元數(shù)據(jù)包時(shí),就將所接收的數(shù)據(jù)包存儲在存儲器中。
41.一種網(wǎng)上數(shù)字內(nèi)容共享方法,用于共享通過多個(gè)網(wǎng)絡(luò)連接的客戶機(jī)內(nèi)的預(yù)定數(shù)字內(nèi)容,其中預(yù)定數(shù)字內(nèi)容被轉(zhuǎn)換成多個(gè)連續(xù)的流數(shù)據(jù),而且重建預(yù)定數(shù)字內(nèi)容所必需的最小單元數(shù)據(jù)包從服務(wù)器通過網(wǎng)絡(luò)發(fā)送,該方法包括以下步驟通過閱讀客戶機(jī)列表選擇需要分發(fā)預(yù)定數(shù)字內(nèi)容的客戶機(jī);向所選擇的客戶機(jī)發(fā)送最小單元數(shù)據(jù)包;使接收到最小單元數(shù)據(jù)包的客戶機(jī)將該最小單元數(shù)據(jù)包存儲在其存儲器中,創(chuàng)建拷貝數(shù)據(jù)包并將該拷貝數(shù)據(jù)包分發(fā)給除已經(jīng)接收到數(shù)據(jù)包的客戶機(jī)之外的其它客戶機(jī);把從其它客戶機(jī)接收到的拷貝數(shù)據(jù)包存儲在存儲器中;以及通過重建存儲器中的數(shù)據(jù)包,使用戶共享所分發(fā)的預(yù)定數(shù)字內(nèi)容。
全文摘要
本發(fā)明的數(shù)字內(nèi)容分發(fā)系統(tǒng)通過第一和第二網(wǎng)絡(luò)12和22分發(fā)數(shù)字內(nèi)容。服務(wù)器14與第一網(wǎng)絡(luò)12連接,而用于接收和顯示或復(fù)制數(shù)字內(nèi)容的客戶機(jī)20與第二網(wǎng)絡(luò)22連接。服務(wù)器14將保存在其內(nèi)部的數(shù)字內(nèi)容分為多個(gè)數(shù)據(jù)包,并向第二網(wǎng)絡(luò)22發(fā)送用于構(gòu)成數(shù)字內(nèi)容的最小單元數(shù)據(jù)包??蛻魴C(jī)20包括,通過使用接收自服務(wù)器14的最小單元數(shù)據(jù)包和接收自構(gòu)成第二網(wǎng)絡(luò)的其它客戶機(jī)的數(shù)據(jù)包,將數(shù)字內(nèi)容保存在其內(nèi)部的裝置。
文檔編號G06F17/30GK1656749SQ0381143
公開日2005年8月17日 申請日期2003年6月4日 優(yōu)先權(quán)日2002年6月6日
發(fā)明者清水周一, 中村大賀 申請人:國際商業(yè)機(jī)器公司