国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      傳輸和下載流數(shù)據(jù)的方法

      文檔序號(hào):6475142閱讀:348來(lái)源:國(guó)知局
      專利名稱:傳輸和下載流數(shù)據(jù)的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種傳輸和下載流數(shù)據(jù)(streaming data)的方法,特別涉及一種通過(guò)多個(gè)分布節(jié)點(diǎn)傳輸和下載流數(shù)據(jù)的方法。
      背景技術(shù)
      通常,大多數(shù)通過(guò)互聯(lián)網(wǎng)提供的內(nèi)容數(shù)據(jù)都是小規(guī)模數(shù)據(jù),例如文件或圖片。然而,隨著數(shù)據(jù)傳輸技術(shù)和設(shè)備的發(fā)展,多媒體內(nèi)容也被廣泛提供。多媒體內(nèi)容通過(guò)流方法(streaming method)傳輸給用戶客戶機(jī)(user clients)。
      通常,流數(shù)據(jù)被從一個(gè)服務(wù)器傳輸?shù)蕉鄠€(gè)用戶客戶機(jī)。
      流數(shù)據(jù)應(yīng)被實(shí)時(shí)傳輸。然而,由于通常流數(shù)據(jù)是從一個(gè)服務(wù)器傳輸?shù)蕉鄠€(gè)用戶客戶機(jī),所以當(dāng)服務(wù)器的負(fù)荷很高或者連接狀態(tài)不穩(wěn)定時(shí),經(jīng)常會(huì)發(fā)生傳輸延遲。因?yàn)榱鲾?shù)據(jù)應(yīng)當(dāng)邊下載邊播放,所以與普通的文件下載不同,流數(shù)據(jù)的傳輸延遲將極大地影響QoS(服務(wù)質(zhì)量)。
      作為關(guān)于文件下載的在先技術(shù),US專利6,339,785公開(kāi)了一種通過(guò)多個(gè)服務(wù)器下載文件的方法。根據(jù)US專利6,339,785,整個(gè)文件被分為N段,并且文件通過(guò)N個(gè)服務(wù)器下載,從而即使在一個(gè)連接上存在差錯(cuò),文件也能被穩(wěn)定地傳輸。
      然而,根據(jù)上述的文件下載方法,只有當(dāng)下載完全部數(shù)據(jù)時(shí)文件才可用。因而,US 6,339,785的下載方法不能應(yīng)用于應(yīng)當(dāng)邊下載邊播放的流數(shù)據(jù)。

      發(fā)明內(nèi)容
      為了解決上述問(wèn)題,本發(fā)明旨在提供一種通過(guò)多個(gè)節(jié)點(diǎn)傳輸和下載流數(shù)據(jù)的方法。
      本發(fā)明的另一目的是提供一種在P2P網(wǎng)絡(luò)中從多個(gè)用戶客戶機(jī)穩(wěn)定下載流數(shù)據(jù)的方法,以及一種安裝于用戶客戶機(jī)的通信代理程序。
      本發(fā)明的又一目的是提供一種使用多個(gè)服務(wù)器在文件傳輸系統(tǒng)中穩(wěn)定下載流數(shù)據(jù)的方法,以及安裝于用戶客戶機(jī)的通信代理程序。
      本發(fā)明的又一目的是提供一種用于將流數(shù)據(jù)分割成塊(block)和子塊(sub block)以及從多個(gè)連接中下載數(shù)據(jù)的方法。
      為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,提供一種下載流數(shù)據(jù)的方法,包括步驟(a)與多個(gè)節(jié)點(diǎn)建立連接;(b)向建立連接的多個(gè)節(jié)點(diǎn)發(fā)出下載流數(shù)據(jù)子塊的請(qǐng)求以下載這些子塊;(c)監(jiān)視已建立連接的下載狀態(tài);以及(d)根據(jù)監(jiān)視結(jié)果重新分配將被從已建立連接的某些節(jié)點(diǎn)下載的子塊;其中,當(dāng)一個(gè)塊所包括的所有子塊都下載完畢后,重復(fù)步驟(b)到步驟(d)以下載下一個(gè)塊中所包括的子塊。
      根據(jù)本發(fā)明,還可以包括確定將從各已建立連接的節(jié)點(diǎn)下載的子塊的步驟。
      步驟(c)可以包括監(jiān)視是否存在已完成子塊下載的連接。
      通過(guò)計(jì)算連接狀態(tài)評(píng)估指數(shù),來(lái)確定將被從各節(jié)點(diǎn)下載的子塊。
      可以利用從包含相對(duì)于各節(jié)點(diǎn)的往返時(shí)間(round-trip)和從各節(jié)點(diǎn)的平均下載速度的組中選擇的信息,計(jì)算連接狀態(tài)評(píng)估指數(shù)。
      步驟(d)還包括當(dāng)存在一個(gè)子塊下載已完成的連接時(shí),在完成了子塊下載的連接和沒(méi)有完成子塊下載的某些連接之間重新分配子塊的步驟。
      步驟(d)還包括在完成了子塊下載的連接和未完成子塊下載的連接中下載速率最低的一個(gè)連接之間重新分配子塊的步驟。
      在完成了子塊下載的連接和下載速率最低的連接之間重新分配子塊的步驟可以包括如下步驟確定完成了子塊下載的連接和下載速率最低的連接的下載速度;確定將從下載速率最低的連接下載的剩余子塊的數(shù)量;確定是否需要重新分配子塊;如果需要重新分配子塊,則根據(jù)下載速度的速率在完成了子塊下載的連接和下載速率最低的連接之間重新分配剩余的子塊。
      根據(jù)本發(fā)明的另一實(shí)施例,提供一種通信代理程序,安裝在一系統(tǒng)中的多個(gè)用戶客戶機(jī),在該系統(tǒng)中,該多個(gè)用戶客戶機(jī)和連接控制服務(wù)器通過(guò)網(wǎng)絡(luò)連接,該通信代理程序包括代理管理器模塊,用于將存儲(chǔ)在用戶客戶機(jī)中的內(nèi)容信息和用戶客戶機(jī)的識(shí)別信息提供給連接控制服務(wù)器,以及當(dāng)用戶請(qǐng)求內(nèi)容時(shí)將內(nèi)容請(qǐng)求信息傳輸至連接控制服務(wù)器;節(jié)點(diǎn)信息管理器模塊,用于接收和存儲(chǔ)存儲(chǔ)有被請(qǐng)求內(nèi)容的節(jié)點(diǎn)的列表信息;連接控制模塊,用于使用節(jié)點(diǎn)的列表信息與多個(gè)節(jié)點(diǎn)建立連接,確定將從已建立連接的各節(jié)點(diǎn)下載的子塊以請(qǐng)求子塊,以及通過(guò)在下載子塊的同時(shí)監(jiān)視下載狀態(tài)來(lái)重新分配將從某些已連接節(jié)點(diǎn)下載的子塊;子塊管理器模塊,用于確定是否已下載完一個(gè)塊所包括的所有子塊,以及當(dāng)下載完一個(gè)塊所包括的所有子塊時(shí),請(qǐng)求下一個(gè)塊所包括的子塊,以下載下一個(gè)塊所包括的子塊。
      根據(jù)本發(fā)明的另一實(shí)施例,提供一種通信代理程序,安裝在從一系統(tǒng)下載流數(shù)據(jù)的用戶客戶機(jī)中,該系統(tǒng)包括多個(gè)內(nèi)容服務(wù)器和至少一個(gè)連接控制服務(wù)器,包括數(shù)據(jù)請(qǐng)求模塊,用于向該連接控制服務(wù)器發(fā)出傳輸數(shù)據(jù)的請(qǐng)求;節(jié)點(diǎn)信息管理器模塊,用于接收和存儲(chǔ)將下載被請(qǐng)求數(shù)據(jù)的內(nèi)容服務(wù)器的列表;連接控制模塊,用于與內(nèi)容服務(wù)器列表中所包括的多個(gè)內(nèi)容服務(wù)器建立連接,請(qǐng)求將從已建立連接的內(nèi)容服務(wù)器下載的流數(shù)據(jù)的子塊,以及通過(guò)在從已連接內(nèi)容服務(wù)器下載子塊的同時(shí)監(jiān)視下載狀態(tài),來(lái)重新分配將從已建立連接的某些內(nèi)容服務(wù)器中下載的子塊;以及子塊管理器模塊,用于確定是否已下載完一個(gè)塊所包括的所有子塊,并且當(dāng)已下載完一個(gè)塊所包括的所有子塊時(shí),請(qǐng)求下一個(gè)塊所包括的子塊,以下載下一個(gè)塊的子塊。
      根據(jù)本發(fā)明的另一實(shí)施例,提供一種連接控制服務(wù)器,通過(guò)網(wǎng)絡(luò)與多個(gè)用戶客戶機(jī)連接,用于控制用戶客戶機(jī)之間的連接,以使用戶客戶機(jī)能夠通過(guò)連接其他用戶來(lái)下載流數(shù)據(jù),包括網(wǎng)格管理器模塊,用于接收存儲(chǔ)在已連接的多個(gè)用戶客戶機(jī)的內(nèi)容的信息和已連接的多個(gè)用戶客戶機(jī)的地址信息,以及將存儲(chǔ)有被請(qǐng)求內(nèi)容的節(jié)點(diǎn)信息提供請(qǐng)求內(nèi)容的用戶客戶機(jī);以及網(wǎng)格信息數(shù)據(jù)庫(kù),用于存儲(chǔ)每個(gè)用戶客戶機(jī)所存儲(chǔ)的內(nèi)容的信息和每個(gè)用戶客戶機(jī)的地址信息;其中,通信代理程序安裝在該多個(gè)用戶客戶機(jī)中,該通信代理程序使用節(jié)點(diǎn)信息控制用戶客戶機(jī)與多個(gè)節(jié)點(diǎn)建立連接,和向已連接節(jié)點(diǎn)發(fā)出對(duì)將要下載的流數(shù)據(jù)的子塊的請(qǐng)求,以及通過(guò)監(jiān)視各已連接節(jié)點(diǎn)的下載狀態(tài)來(lái)重新分配將要下載的子塊。
      根據(jù)本發(fā)明的另一實(shí)施例,提供一種連接控制服務(wù)器,通過(guò)網(wǎng)絡(luò)與多個(gè)用戶客戶機(jī)和多個(gè)內(nèi)容服務(wù)器連接,用于控制用戶客戶機(jī)和內(nèi)容服務(wù)器之間的連接,以使用戶客戶機(jī)能夠通過(guò)連接到至少兩個(gè)內(nèi)容服務(wù)器來(lái)下載流數(shù)據(jù),包括服務(wù)器狀態(tài)檢測(cè)模塊,用于從已連接的多個(gè)內(nèi)容服務(wù)器上接收狀態(tài)信息,并確定各內(nèi)容服務(wù)器的狀態(tài);服務(wù)器列表提供模塊,用于當(dāng)從用戶客戶機(jī)接收到內(nèi)容請(qǐng)求信息時(shí),提供將要傳輸被請(qǐng)求內(nèi)容的流數(shù)據(jù)的服務(wù)器的列表信息;其中,通信代理程序安裝在用戶客戶機(jī)中,該通信代理程序使用服務(wù)器列表信息控制用戶客戶機(jī)與至少兩個(gè)內(nèi)容服務(wù)器建立連接,和確定將從各已連接內(nèi)容服務(wù)器下載的流數(shù)據(jù)的子塊以請(qǐng)求子塊,以及通過(guò)監(jiān)視各已連接節(jié)點(diǎn)的子塊下載狀態(tài)來(lái)重新分配將要下載的子塊。


      圖1是應(yīng)用本發(fā)明的流數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖。
      圖2是應(yīng)用根據(jù)本發(fā)明的傳輸流數(shù)據(jù)的方法的網(wǎng)絡(luò)系統(tǒng)的實(shí)例。
      圖3是應(yīng)用根據(jù)本發(fā)明的傳輸流數(shù)據(jù)的方法的網(wǎng)絡(luò)系統(tǒng)的另一實(shí)例。
      圖4是應(yīng)用根據(jù)本發(fā)明的傳輸流數(shù)據(jù)的方法的網(wǎng)絡(luò)系統(tǒng)的又一實(shí)例。
      圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例流數(shù)據(jù)的結(jié)構(gòu)。
      圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例流數(shù)據(jù)下載方法的流程圖。
      圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例連接控制服務(wù)器的操作的流程圖。
      圖8是根據(jù)本發(fā)明另一實(shí)施例連接控制服務(wù)器的操作的流程圖。
      圖9是根據(jù)本發(fā)明優(yōu)選實(shí)施例安裝于用戶客戶機(jī)中的代理程序的框圖。
      圖10是根據(jù)本發(fā)明優(yōu)選實(shí)施例連接控制模塊的詳細(xì)框圖。
      圖11是根據(jù)本發(fā)明優(yōu)選實(shí)施例通過(guò)確定連接狀態(tài)來(lái)重新分配子塊的處理的流程圖。
      圖12是根據(jù)本發(fā)明優(yōu)選實(shí)施例當(dāng)存在已完成子塊下載的連接時(shí)執(zhí)行的處理的流程圖。
      圖13是根據(jù)本發(fā)明優(yōu)選實(shí)施例連接控制服務(wù)器的模塊的框圖。
      圖14是根據(jù)本發(fā)明另一實(shí)施例連接控制服務(wù)器的模塊的框圖。
      具體實(shí)施例方式
      利用下面的實(shí)施例來(lái)具體描述本發(fā)明。
      圖1是應(yīng)用本發(fā)明的流數(shù)據(jù)傳輸系統(tǒng)的結(jié)構(gòu)示意圖。
      參考圖1,根據(jù)本發(fā)明的流數(shù)據(jù)傳輸系統(tǒng)可以包括多個(gè)節(jié)點(diǎn)100、102、104、106、108、110和用戶客戶機(jī)112。
      用戶客戶機(jī)建立與所選擇的多個(gè)節(jié)點(diǎn)102、106、108的連接并下載流數(shù)據(jù)。
      在圖1中,多個(gè)節(jié)點(diǎn)100、102、104、106、108、110存儲(chǔ)內(nèi)容數(shù)據(jù)并在收到來(lái)自用戶客戶機(jī)的內(nèi)容請(qǐng)求信息之后,向用戶客戶機(jī)傳輸被請(qǐng)求的內(nèi)容數(shù)據(jù)。節(jié)點(diǎn)可以是通常傳輸內(nèi)容的服務(wù)器或者其它用戶客戶機(jī)。
      用戶客戶機(jī)112傳輸內(nèi)容請(qǐng)求信息至多個(gè)節(jié)點(diǎn),并且從相應(yīng)節(jié)點(diǎn)102、106、108下載內(nèi)容數(shù)據(jù)。換句話說(shuō),根據(jù)本發(fā)明,通過(guò)多個(gè)節(jié)點(diǎn)從多條路徑下載流數(shù)據(jù)。
      此時(shí),用戶客戶機(jī)向已建立連接的各節(jié)點(diǎn)發(fā)出對(duì)不同流數(shù)據(jù)的請(qǐng)求,并組合(assemble)從多個(gè)節(jié)點(diǎn)下載的流數(shù)據(jù)。
      圖5是根據(jù)本發(fā)明優(yōu)選實(shí)施例流數(shù)據(jù)的結(jié)構(gòu)。
      參考圖5,基于本發(fā)明的流數(shù)據(jù)包括多個(gè)塊500,并且各塊包括多個(gè)子塊502。
      塊和子塊是用于對(duì)流數(shù)據(jù)分類的邏輯單元,并且本領(lǐng)域的技術(shù)人員很明顯可以使用其它的術(shù)語(yǔ)。
      與普通的文件下載不同,流數(shù)據(jù)應(yīng)當(dāng)邊下載邊播放。因此,通過(guò)多個(gè)服務(wù)器的普通文件下載方法不能應(yīng)用于流數(shù)據(jù)下載,這是因?yàn)橥ǔU麄€(gè)文件數(shù)據(jù)被分成N段,每一段通過(guò)多條路徑下載。根據(jù)傳統(tǒng)的使用多路徑的文件下載方法,直到全部文件數(shù)據(jù)下載完時(shí)才能播放被下載的文件,而流數(shù)據(jù)則應(yīng)該邊下載邊播放。
      因此,根據(jù)本發(fā)明,整個(gè)流數(shù)據(jù)被分割為多個(gè)塊,并且包含在塊中的子塊以并行/分布(parallel/distribution)的方法從多條路徑下載。
      例如,在圖1所示系統(tǒng)中,如果一個(gè)塊包含十個(gè)子塊,用戶客戶機(jī)112向第二節(jié)點(diǎn)102請(qǐng)求第1~3子塊,向第四節(jié)點(diǎn)106請(qǐng)求第4~7子塊,以及向第五節(jié)點(diǎn)108請(qǐng)求第8~10子塊。
      如果下載完包含在一個(gè)塊中的所有子塊,則用戶客戶機(jī)112請(qǐng)求包含在下一個(gè)塊的子塊。在下載完一個(gè)塊的所有數(shù)據(jù)之后,下載下一個(gè)塊的子塊,因此盡管數(shù)據(jù)從多條路徑下載,數(shù)據(jù)也能夠在下載時(shí)被播放。
      然而,在圖5中,流數(shù)據(jù)被分割成塊和子塊的情況下,對(duì)于本領(lǐng)域的技術(shù)人員,很明顯流數(shù)據(jù)可以被分割為比子塊更小的單元,并且能夠以該更小的單元傳輸。
      當(dāng)用戶客戶機(jī)向各節(jié)點(diǎn)發(fā)出對(duì)子塊的請(qǐng)求時(shí),用戶客戶機(jī)確定各節(jié)點(diǎn)的連接狀態(tài)。例如,在第二節(jié)點(diǎn)102、第四節(jié)點(diǎn)106和第五節(jié)點(diǎn)108中,如果第二節(jié)點(diǎn)的連接狀態(tài)最好而第五節(jié)點(diǎn)的連接狀態(tài)最差,則用戶客戶機(jī)112向第二節(jié)點(diǎn)發(fā)出對(duì)最大數(shù)目的子塊的請(qǐng)求,而對(duì)第五節(jié)點(diǎn)僅請(qǐng)求最小數(shù)目的子塊。將會(huì)參考其它圖,詳細(xì)解釋確定節(jié)點(diǎn)狀態(tài)以及根據(jù)確定結(jié)果來(lái)請(qǐng)求子塊的方法。
      當(dāng)通過(guò)多條路徑下載子塊時(shí),某一個(gè)連接上的子塊下載可能比其它連接完成的早,這種情況下,在其它連接的子塊下載完成之前,不會(huì)從已完成子塊下載的連接處傳輸數(shù)據(jù)。此類的空閑連接降低了傳輸效率。
      因此,根據(jù)本發(fā)明,如果多個(gè)連接中的一個(gè)連接的子塊下載完成時(shí),將通過(guò)已完成子塊下載的連接來(lái)下載未傳輸?shù)淖訅K。將會(huì)參考其它圖,詳細(xì)解釋當(dāng)一個(gè)連接的子塊下載完成時(shí)重新分配將被下載的子塊的方法。
      圖2是應(yīng)用根據(jù)本發(fā)明的傳輸流數(shù)據(jù)的方法的網(wǎng)絡(luò)系統(tǒng)的實(shí)例。
      圖2示出應(yīng)用使用了P2P(Peer to Peer,即伙伴對(duì)伙伴,對(duì)等網(wǎng)絡(luò))的流數(shù)據(jù)傳輸方法的實(shí)例。
      參考圖2,應(yīng)用本發(fā)明的網(wǎng)絡(luò)系統(tǒng)可以包括連接控制服務(wù)器200和多個(gè)客戶機(jī)202、204、206、208、210、212、214以及216。
      連接控制服務(wù)器200接收來(lái)自用戶客戶機(jī)的內(nèi)容請(qǐng)求信息,并響應(yīng)該內(nèi)容請(qǐng)求消息,將存儲(chǔ)有被請(qǐng)求內(nèi)容的其它用戶客戶機(jī)的地址信息提供給請(qǐng)求內(nèi)容的用戶。請(qǐng)求內(nèi)容的用戶客戶機(jī)使用所提供的地址信息,通過(guò)多條路徑下載內(nèi)容的流數(shù)據(jù)。
      例如,如果用戶客戶機(jī)210向連接控制服務(wù)器200請(qǐng)求電影“A”,連接控制服務(wù)器200獲得存儲(chǔ)有電影“A”的用戶客戶機(jī)的地址信息,并將該地址信息提供給請(qǐng)求內(nèi)容的用戶客戶機(jī)210。
      地址信息可以是IP地址和端口號(hào),并且對(duì)于本領(lǐng)域的技術(shù)人員很明顯能夠使用其它的地址識(shí)別信息。
      例如,我們假設(shè)在圖2中存儲(chǔ)有電影“A”的用戶客戶機(jī)的標(biāo)號(hào)為202、204和208。如果連接控制服務(wù)器向請(qǐng)求內(nèi)容的用戶客戶機(jī)210提供客戶機(jī)201、204和208的地址信息,則用戶客戶機(jī)210嘗試與用戶客戶機(jī)202、204和208建立連接。
      如果建立起連接,用戶客戶機(jī)210向建立了連接的客戶機(jī)202、204和208各請(qǐng)求不同的子塊。如果下載完包含在一個(gè)塊中的所有子塊,則用戶210請(qǐng)求包含在下一塊中的子塊。所傳輸?shù)牧鲾?shù)據(jù)存儲(chǔ)于用戶客戶機(jī)。如果其它客戶機(jī)請(qǐng)求該流數(shù)據(jù),則所存儲(chǔ)的流數(shù)據(jù)被傳輸。
      用于與連接控制服務(wù)器或其它客戶機(jī)通信的通信代理程序被安裝在各用戶客戶機(jī)中。在本發(fā)明的實(shí)施例中,描述了通信代理是計(jì)算機(jī)軟件的情況,然而,對(duì)于本領(lǐng)域的技術(shù)人員,很明顯通信代理可以是獨(dú)立的設(shè)備或卡(card)。
      如果安裝有通信代理的客戶機(jī)的電源開(kāi)啟或者執(zhí)行通信代理,代理程序?qū)⒋鎯?chǔ)在該用戶客戶機(jī)中的內(nèi)容信息傳輸給連接控制服務(wù)器200,并且連接控制服務(wù)器200存儲(chǔ)該所傳輸?shù)男畔ⅰ?br> 圖3是應(yīng)用本發(fā)明的流數(shù)據(jù)傳輸方法的網(wǎng)絡(luò)系統(tǒng)的另一實(shí)例。
      圖3示出了通過(guò)多個(gè)服務(wù)器提供流數(shù)據(jù)的情況。
      參考圖3,根據(jù)本發(fā)明實(shí)施例的流數(shù)據(jù)傳輸系統(tǒng)可以包括多個(gè)內(nèi)容服務(wù)器300、302、304、306、308、連接控制服務(wù)器310以及用戶客戶機(jī)312。
      連接控制服務(wù)器310從用戶客戶機(jī)312接收內(nèi)容請(qǐng)求信息,并提供多個(gè)服務(wù)器300、302、304、306、308中應(yīng)當(dāng)連接用戶客戶機(jī)的服務(wù)器信息。
      連接控制服務(wù)器310定期的從多個(gè)服務(wù)器300、302、304、306、308接收狀態(tài)信息,并控制將要連接到狀態(tài)良好的服務(wù)器的用戶客戶機(jī)。
      用戶客戶機(jī)312從連接控制服務(wù)器310接收服務(wù)器列表信息,并與列表中的內(nèi)容服務(wù)器建立連接,以通過(guò)多條路徑下載流數(shù)據(jù)。
      如圖2所示的情況,通信代理程序安裝在用戶客戶機(jī)中,以通過(guò)多條路徑下載流數(shù)據(jù)。
      圖4是應(yīng)用本發(fā)明的流數(shù)據(jù)傳輸方法的網(wǎng)絡(luò)系統(tǒng)的又一實(shí)例。
      圖4是圖2的P2P(對(duì)等網(wǎng)絡(luò))系統(tǒng)與圖3的多個(gè)服務(wù)器系統(tǒng)組合的系統(tǒng)。
      參考圖4,根據(jù)本發(fā)明優(yōu)選實(shí)施例的流數(shù)據(jù)傳輸系統(tǒng)可以包括連接控制服務(wù)器410,多個(gè)內(nèi)容服務(wù)器400、402、404、406、408和多個(gè)客戶機(jī)412、414、416、418、420、422、424、426、428。盡管圖4中示出了多個(gè)內(nèi)容服務(wù)器,內(nèi)容服務(wù)器的數(shù)量也可以不同于圖4。
      在圖4中,連接控制服務(wù)器410從用戶客戶機(jī)接收內(nèi)容請(qǐng)求信息,并提供存儲(chǔ)有被請(qǐng)求內(nèi)容的服務(wù)器或用戶客戶機(jī)的列表信息。
      如圖2和圖3所示,代理程序安裝在用戶客戶機(jī)412、414、416、418、420、422、424、426、428,并且當(dāng)客戶機(jī)開(kāi)啟電源或執(zhí)行代理程序時(shí),代理程序?qū)⒋鎯?chǔ)在客戶機(jī)中的內(nèi)容信息傳輸給連接控制服務(wù)器410。
      請(qǐng)求內(nèi)容的用戶客戶機(jī)利用連接控制服務(wù)器410提供的列表信息與內(nèi)容服務(wù)器或客戶機(jī)建立連接,并向已建立連接的客戶機(jī)或內(nèi)容服務(wù)器傳輸對(duì)不同子塊的請(qǐng)求以下載流數(shù)據(jù)。
      在圖4的情況下,由連接控制服務(wù)器410提供的節(jié)點(diǎn)列表可以同時(shí)包括用戶客戶機(jī)和服務(wù)器。例如,如果從5個(gè)節(jié)點(diǎn)接收內(nèi)容數(shù)據(jù),可以一個(gè)節(jié)點(diǎn)是內(nèi)容服務(wù)器,而其它4個(gè)節(jié)點(diǎn)是用戶客戶機(jī)。在此情況下,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,為減少內(nèi)容服務(wù)器的負(fù)荷,如果從除內(nèi)容服務(wù)器外的用戶客戶機(jī)的下載狀態(tài)良好,則可以將內(nèi)容服務(wù)器排除在節(jié)點(diǎn)之外。
      在圖2到圖4中,描述了能夠通過(guò)多條路徑下載流數(shù)據(jù)的系統(tǒng)。對(duì)于本領(lǐng)域的技術(shù)人員,顯而易見(jiàn)除圖2到圖4的系統(tǒng)之外的其他能夠通過(guò)多個(gè)節(jié)點(diǎn)傳輸數(shù)據(jù)的系統(tǒng)也可應(yīng)用到本發(fā)明中。
      圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的流數(shù)據(jù)下載方法的流程圖。
      參考圖6,用戶客戶機(jī)從連接控制服務(wù)器接收節(jié)點(diǎn)列表信息S600。在圖2所示的系統(tǒng)中,節(jié)點(diǎn)是存儲(chǔ)有內(nèi)容的用戶客戶機(jī)。在圖3所示的系統(tǒng)中,節(jié)點(diǎn)是多個(gè)內(nèi)容服務(wù)器,而在圖4所示系統(tǒng)中,節(jié)點(diǎn)可以既包括用戶客戶機(jī)又包括內(nèi)容服務(wù)器。
      如果接收到節(jié)點(diǎn)列表信息,用戶客戶機(jī)就與包含在節(jié)點(diǎn)列表中的某些或所有節(jié)點(diǎn)建立連接S602。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,用戶客戶機(jī)建立TCP連接,其他的連接建立方法也可以被使用。如果連接建立失敗,就將連接建立失敗的節(jié)點(diǎn)信息存儲(chǔ)于黑名單隊(duì)列中,并且在后續(xù)的連接建立中,連接建立不再嘗試存儲(chǔ)在黑名單隊(duì)列中的節(jié)點(diǎn)。
      如果建立起連接,用戶客戶機(jī)確定與節(jié)點(diǎn)的連接狀態(tài),并確定將被從節(jié)點(diǎn)下載的子塊數(shù)目S604。
      根據(jù)本發(fā)明的實(shí)施例,使用相對(duì)于各節(jié)點(diǎn)的往返時(shí)間或從各節(jié)點(diǎn)的下載速度來(lái)確定連接狀態(tài)。
      根據(jù)本發(fā)明的另一實(shí)施例,可以不通過(guò)下載的初始狀態(tài)的連接狀態(tài)信息來(lái)確定將要下載的子塊。例如,如果從3個(gè)節(jié)點(diǎn)下載流數(shù)據(jù)并且一個(gè)塊中包含15個(gè)子塊,則用戶客戶機(jī)向3個(gè)節(jié)點(diǎn)中的每一個(gè)請(qǐng)求5個(gè)子塊。
      如果確定了將被從各節(jié)點(diǎn)下載的子塊,則用戶客戶機(jī)向建立了連接的節(jié)點(diǎn)發(fā)出傳輸子塊的請(qǐng)求S606。用戶客戶機(jī)可以向建立了連接的所有節(jié)點(diǎn)或者建立了連接的某些節(jié)點(diǎn)發(fā)出對(duì)子塊的請(qǐng)求。
      用戶客戶機(jī)從建立了連接的節(jié)點(diǎn)下載子塊S608。盡管未在圖6中示出,用戶客戶機(jī)在接收子塊時(shí)確定是否發(fā)生下載錯(cuò)誤。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,通過(guò)檢查子塊的校驗(yàn)和(checksum)值來(lái)確定下載錯(cuò)誤的發(fā)生。
      可選的,也可通過(guò)在接收完所有塊后檢查塊的校驗(yàn)和值來(lái)確定下載錯(cuò)誤。
      當(dāng)接收子塊時(shí),用戶客戶機(jī)確定是否存在所有被請(qǐng)求子塊都已下載完的連接S610。
      如果存在所有被請(qǐng)求子塊都已下載完的連接,則用戶客戶機(jī)將未完成下載的子塊重新分配給已完成子塊下載的連接,以從該連接下載重新分配后的子塊,從而已完成子塊下載的連接不會(huì)變成空閑狀態(tài)。
      用戶客戶機(jī)確定是否包含于一個(gè)塊中的所有子塊都已下載S614。
      如果所有子塊已下載完,則用戶客戶機(jī)重復(fù)該處理,即確定將被從各節(jié)點(diǎn)通過(guò)多條路徑下載的下一個(gè)塊中的子塊數(shù)目S604。
      重復(fù)S610到S614的步驟,直到接收完一個(gè)塊中的所有子塊。
      參考圖6所示,根據(jù)本發(fā)明,如果在一條路徑(=連接)上完成了子塊下載,則重新分配將被從各節(jié)點(diǎn)下載的子塊,以免空閑狀態(tài)的發(fā)生,從而提高數(shù)據(jù)下載效率。
      在圖6中,示出了為向用戶客戶機(jī)傳輸流數(shù)據(jù)的節(jié)點(diǎn)重新分配子塊的情況。然而,對(duì)于本領(lǐng)域的技術(shù)人員,顯而易見(jiàn)也可以通過(guò)監(jiān)視未被請(qǐng)求傳輸子塊的節(jié)點(diǎn)的狀態(tài)來(lái)為沒(méi)有傳輸子塊的節(jié)點(diǎn)重新分配子塊。
      此外,盡管未在圖6中示出,如果不能從多個(gè)節(jié)點(diǎn)下載流數(shù)據(jù),則可以將下載模式改變?yōu)橐詡鹘y(tǒng)模式從單一服務(wù)器下載流數(shù)據(jù)。
      圖7是根據(jù)本發(fā)明優(yōu)選實(shí)施例的連接控制服務(wù)器的操作的流程圖。
      圖7示出了圖2的P2P網(wǎng)絡(luò)中或者P2P與多個(gè)服務(wù)器結(jié)合的網(wǎng)絡(luò)中連接控制服務(wù)器的操作。
      參考圖7,連接控制服務(wù)器從已連接節(jié)點(diǎn)接收地址信息和內(nèi)容信息S700。如上所述,通信代理程序安裝在各用戶客戶機(jī)(節(jié)點(diǎn))中,并且通信代理程序向連接控制服務(wù)器傳輸存儲(chǔ)在用戶客戶機(jī)中的內(nèi)容信息和用戶客戶機(jī)的地址信息。所接收到的節(jié)點(diǎn)地址信息和節(jié)點(diǎn)內(nèi)容信息存儲(chǔ)在連接控制服務(wù)器的數(shù)據(jù)庫(kù)中。
      連接控制服務(wù)器從已連接節(jié)點(diǎn)接收內(nèi)容請(qǐng)求信息S702。利用在步驟S700接收的信息,接收到內(nèi)容請(qǐng)求信息的連接控制服務(wù)器搜索存儲(chǔ)有被請(qǐng)求內(nèi)容的節(jié)點(diǎn)S704。
      連接控制服務(wù)器向請(qǐng)求內(nèi)容數(shù)據(jù)的用戶客戶機(jī)提供節(jié)點(diǎn)列表信息S706。
      盡管未在圖7中示出,連接控制服務(wù)器也可以接收節(jié)點(diǎn)狀態(tài)信息(例如,PING信息),并且將節(jié)點(diǎn)狀態(tài)信息與節(jié)點(diǎn)列表信息一起提供給用戶客戶機(jī)。
      在接收到節(jié)點(diǎn)列表信息之后,用戶客戶機(jī)利用狀態(tài)信息選擇將要建立連接的節(jié)點(diǎn)。如果連接建立失敗或者數(shù)據(jù)下載速率不高,用戶客戶機(jī)使用節(jié)點(diǎn)狀態(tài)信息選擇將要建立連接的新節(jié)點(diǎn)。節(jié)點(diǎn)狀態(tài)信息能夠被持續(xù)更新,更新后的信息被提供給請(qǐng)求內(nèi)容數(shù)據(jù)或者正在下載數(shù)據(jù)的用戶客戶機(jī)。
      圖8是根據(jù)本發(fā)明另一實(shí)施例的連接控制服務(wù)器的操作的流程圖。
      圖8示出了使用多個(gè)服務(wù)器的連接控制服務(wù)器網(wǎng)絡(luò)例如圖3的操作。
      參考圖8,連接控制服務(wù)器從各內(nèi)容服務(wù)器接收狀態(tài)信息S800。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,狀態(tài)信息可以是從包括帶寬信息、CPU使用率信息、內(nèi)存使用率信息、連接用戶數(shù)和文件I/O信息的組中選擇的一個(gè)或組合。對(duì)于本領(lǐng)域的技術(shù)人員,顯而易見(jiàn)除上述信息以外的其它信息也可被用作服務(wù)器的狀態(tài)信息。
      連接控制服務(wù)器從用戶客戶機(jī)接收內(nèi)容請(qǐng)求信息S802。
      接收內(nèi)容請(qǐng)求信息的連接控制服務(wù)器使用在S800中的狀態(tài)信息將具有優(yōu)良狀態(tài)的服務(wù)器的地址信息(換句話說(shuō),節(jié)點(diǎn)列表信息)提供給請(qǐng)求內(nèi)容的客戶機(jī),以及將子塊分配信息(關(guān)于將被從各內(nèi)容服務(wù)器下載的子塊的信息)S804提供給請(qǐng)求內(nèi)容的客戶機(jī)。
      在圖8中,示出了從連接控制服務(wù)器將子塊分配信息傳輸給用戶客戶機(jī)的情況,然而,對(duì)于本領(lǐng)域的技術(shù)人員,顯而易見(jiàn)客戶機(jī)自己可以通過(guò)在連接到內(nèi)容服務(wù)器之后檢查連接狀態(tài)來(lái)分配子塊以下載。
      根據(jù)本發(fā)明的另一實(shí)施例,在數(shù)據(jù)下載的初始狀態(tài),連接控制服務(wù)器提供子塊分配信息。然后,如果完成了塊數(shù)據(jù)的下載,由于內(nèi)容服務(wù)器可以決定各內(nèi)容服務(wù)器的下載速度。用戶客戶機(jī)自己分配子塊,以在下一子塊的下載中從各內(nèi)容服務(wù)器下載。
      圖9是根據(jù)本發(fā)明優(yōu)選實(shí)施例安裝在用戶客戶機(jī)中的代理程序的框圖。
      參考圖9,根據(jù)本發(fā)明優(yōu)選實(shí)施例的通信代理程序可以包括代理管理器模塊900、高速緩存管理器(cache manager)模塊902、連接控制模塊904、節(jié)點(diǎn)管理器模塊906、塊管理器模塊908和子塊管理器模塊910。
      在圖9中,代理管理器模塊900執(zhí)行與連接控制服務(wù)器的通信,并在用戶客戶機(jī)開(kāi)啟電源或者執(zhí)行代理程序時(shí),向連接控制服務(wù)器提供包含IP地址和端口號(hào)的用戶客戶機(jī)信息以及存儲(chǔ)在用戶客戶機(jī)中的內(nèi)容的信息。
      此外,當(dāng)用戶請(qǐng)求內(nèi)容時(shí),代理管理器模塊900向連接控制服務(wù)器提供內(nèi)容請(qǐng)求信息。當(dāng)播放被請(qǐng)求內(nèi)容需要元(meta,或者稱背景)信息時(shí),代理管理器模塊可以向播放內(nèi)容數(shù)據(jù)的播放器提供內(nèi)容的元信息。
      高速緩存管理器模塊902管理從節(jié)點(diǎn)下載的流數(shù)據(jù)。高速緩存管理器模塊902提供高速緩存的剩余容量的信息以及存儲(chǔ)在高速緩存中的內(nèi)容的信息。當(dāng)用戶客戶機(jī)開(kāi)啟電源或者執(zhí)行代理程序時(shí),高速緩存管理器模塊902提供存儲(chǔ)在高速緩存中的內(nèi)容的信息。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,高速緩存管理器模塊902在存儲(chǔ)下載的數(shù)據(jù)時(shí),對(duì)下載的數(shù)據(jù)加擾(scramble)。
      連接控制模塊904根據(jù)從連接控制服務(wù)器接收的節(jié)點(diǎn)列表信息與預(yù)定數(shù)目的節(jié)點(diǎn)建立連接。連接控制模塊904通過(guò)確定節(jié)點(diǎn)的連接狀態(tài)來(lái)分配將被從各節(jié)點(diǎn)下載的子塊,并根據(jù)分配的結(jié)果向各節(jié)點(diǎn)請(qǐng)求子塊。
      此外,連接控制模塊904持續(xù)監(jiān)視各節(jié)點(diǎn)的下載狀態(tài),并且根據(jù)監(jiān)視結(jié)果重新分配將被從各節(jié)點(diǎn)下載的子塊。
      根據(jù)本發(fā)明的優(yōu)選實(shí)施例,連接控制模塊904監(jiān)視是否存在已完成子塊下載的連接,并且連接控制模塊904在已完成子塊下載的連接和未完成子塊下載的某些連接之間重新分配子塊,以避免空閑連接。
      根據(jù)本發(fā)明的另一實(shí)施例,盡管不存在已完成子塊接收的連接,也可根據(jù)各節(jié)點(diǎn)的下載狀態(tài)來(lái)提前重新分配子塊。
      根據(jù)本發(fā)明的又一實(shí)施例,連接控制模塊監(jiān)視未建立連接的節(jié)點(diǎn)的狀態(tài)信息,并在某些正在傳輸數(shù)據(jù)的節(jié)點(diǎn)和某些尚未傳輸數(shù)據(jù)的節(jié)點(diǎn)之間重新分配子塊。
      如上所述,在圖4的系統(tǒng)中,連接控制模塊既向服務(wù)器又向用戶客戶機(jī)請(qǐng)求數(shù)據(jù),如果從用戶客戶機(jī)的下載狀態(tài)是好的,服務(wù)器就可以被排除在節(jié)點(diǎn)之外或者僅向服務(wù)器請(qǐng)求少量的數(shù)據(jù),以降低服務(wù)器的負(fù)荷。
      節(jié)點(diǎn)管理器模塊906將提供自連接控制服務(wù)器的節(jié)點(diǎn)列表信息提供給連接控制模塊904。如上所述,節(jié)點(diǎn)列表信息可以包括IP地址和端口號(hào)。根據(jù)本發(fā)明的優(yōu)選實(shí)施例,代理管理器模塊900請(qǐng)求存儲(chǔ)有被請(qǐng)求內(nèi)容的節(jié)點(diǎn)的信息,并向節(jié)點(diǎn)管理器模塊906提供節(jié)點(diǎn)列表信息。由于節(jié)點(diǎn)的電源可能被關(guān)閉或者連接狀態(tài)可能變得不穩(wěn)定,所以持續(xù)更新節(jié)點(diǎn)信息。
      子塊管理器模塊910從節(jié)點(diǎn)下載子塊,并確定是否已下載完一個(gè)塊中的所有子塊。如果已下載完所有子塊,則子塊管理器模塊910將下載所得的塊數(shù)據(jù)提供給塊管理器模塊908。如果子塊管理器模塊確定已下載完包含在一個(gè)塊中的所有子塊,則連接控制模塊請(qǐng)求下一個(gè)塊的子塊。
      塊管理器模塊908向播放流數(shù)據(jù)的播放器或高速緩存管理器模塊提供接收到的塊數(shù)據(jù)。
      盡管圖9中未示出,通信代理程序還可包括預(yù)留(reservation)管理器模塊。當(dāng)高速傳輸流數(shù)據(jù)時(shí),可能發(fā)生由于互聯(lián)網(wǎng)連接的不穩(wěn)定而使客戶機(jī)不能以預(yù)定速度下載數(shù)據(jù)的情況。這種情況下,在播放電影數(shù)據(jù)之前,通過(guò)預(yù)留管理器模塊將電影數(shù)據(jù)預(yù)存在高速緩存中,并且預(yù)留管理器模塊執(zhí)行預(yù)留處理。
      預(yù)留管理器模塊管理用戶要求預(yù)留的流數(shù)據(jù)的信息,并監(jiān)視是否收到預(yù)留的內(nèi)容。預(yù)留管理器模塊通過(guò)連接控制模塊來(lái)請(qǐng)求數(shù)據(jù),直到完成被請(qǐng)求數(shù)據(jù)的下載為止。
      圖10是根據(jù)本發(fā)明優(yōu)選實(shí)施例的連接控制模塊的詳細(xì)框圖。
      參考圖10,連接控制模塊可以包括連接建立模塊1000、連接狀態(tài)確定模塊1002、子塊分配模塊1004和下載狀態(tài)監(jiān)視模塊1006。
      連接建立模塊1000使用提供自連接控制服務(wù)器提供的節(jié)點(diǎn)列表信息,與數(shù)據(jù)將被下載的節(jié)點(diǎn)建立連接。連接建立可以包括如下步驟
      (i)用戶客戶機(jī)向節(jié)點(diǎn)發(fā)出TCP連接請(qǐng)求。
      (ii)節(jié)點(diǎn)確定是否允許TCP連接。
      (iii)節(jié)點(diǎn)允許TCP連接。
      如上所述,也可使用TCP以外的其它連接建立方法。
      連接狀態(tài)確定模塊1002確定與各節(jié)點(diǎn)的連接狀態(tài)。連接狀態(tài)確定模塊1002計(jì)算連接狀態(tài)評(píng)估指數(shù),用于確定連接狀態(tài)。
      根據(jù)本發(fā)明的實(shí)施例,可以根據(jù)相對(duì)于各節(jié)點(diǎn)的往返時(shí)間來(lái)計(jì)算連接狀態(tài)評(píng)估指數(shù)。
      根據(jù)本發(fā)明的另一實(shí)施例,可以根據(jù)各節(jié)點(diǎn)的下載速度信息來(lái)計(jì)算連接狀態(tài)評(píng)估指數(shù)。可選的,可以既用往返時(shí)間又用下載速度來(lái)計(jì)算連接狀態(tài)評(píng)估指數(shù)。
      適當(dāng)?shù)淖龇ㄊ?,在開(kāi)始時(shí)使用往返時(shí)間計(jì)算連接狀態(tài)評(píng)估指數(shù),這是因?yàn)殚_(kāi)始時(shí)不知道下載速度,然后在執(zhí)行完數(shù)據(jù)下載后使用下載速度計(jì)算連接狀態(tài)評(píng)估指數(shù)。由于下載速度不斷變化,連接狀態(tài)評(píng)估指數(shù)也根據(jù)下載速度的變化而更新。
      根據(jù)本發(fā)明的另一實(shí)施例,連接狀態(tài)確定模塊從服務(wù)器接收服務(wù)器狀態(tài)信息,并使用該狀態(tài)信息確定連接狀態(tài)。
      子塊分配模塊1004使用由連接狀態(tài)確定模塊1002計(jì)算所得的連接狀態(tài)評(píng)估指數(shù)來(lái)分配子塊。優(yōu)選的,子塊分配模塊1004根據(jù)連接狀態(tài)評(píng)估指數(shù)的比值來(lái)確定從各節(jié)點(diǎn)下載的子塊的數(shù)目。
      下載狀態(tài)監(jiān)視模塊1006確定是否存在已完成子塊下載的連接,并且當(dāng)存在已完成子塊下載的連接時(shí)向子塊管理器模塊1004請(qǐng)求子塊的重新分配。
      為所有已連接節(jié)點(diǎn)都重新分配子塊是效率不高的,這是由于控制信號(hào)需要被傳輸?shù)剿泄?jié)點(diǎn)。因此,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,在已完成子塊下載的連接和下載速率最低的連接之間重新分配子塊。在此情況下,控制信號(hào)只需傳輸?shù)揭淹瓿勺訅K傳輸?shù)墓?jié)點(diǎn)和數(shù)據(jù)傳輸速率最低的節(jié)點(diǎn)。
      圖11是根據(jù)本發(fā)明優(yōu)選實(shí)施例通過(guò)確定連接狀態(tài)來(lái)重新分配子塊的處理的流程圖。
      參考圖11,在下載的初始狀態(tài)測(cè)量相對(duì)于各已連接節(jié)點(diǎn)的往返時(shí)間S1100。往返時(shí)間指在傳輸檢測(cè)信號(hào)至已連接節(jié)點(diǎn)和接收對(duì)檢測(cè)信號(hào)的響應(yīng)信號(hào)之間的持續(xù)時(shí)間。
      在測(cè)得往返信號(hào)后,確定是否可以得知所有連接的平均下載速度S1102。如果已下載完幾個(gè)塊,就能夠知道所有連接的平均下載速度。
      當(dāng)?shù)弥羞B接的平均下載速度時(shí),使用平均下載速度信息來(lái)計(jì)算連接狀態(tài)評(píng)估指數(shù)S1104。例如,當(dāng)從3個(gè)節(jié)點(diǎn)下載流數(shù)據(jù)且3個(gè)節(jié)點(diǎn)的平均下載速度是500,000bps、100,000bps和64,000bps時(shí),各連接的連接狀態(tài)評(píng)估指數(shù)分別是500,000、100,000和64,000。平均下載速度的標(biāo)準(zhǔn)化值(normalizedvalue)也可被用作連接狀態(tài)評(píng)估指數(shù)。
      當(dāng)不能得知所有連接的平均下載速度時(shí),就確定是否可以知道某些連接的平均下載速度S1106。這種情況可能發(fā)生在下載流數(shù)據(jù)的同時(shí)從新的節(jié)點(diǎn)下載流數(shù)據(jù)時(shí)。
      當(dāng)能夠得知某些連接的平均下載速度時(shí),根據(jù)往返時(shí)間和平均下載速度來(lái)計(jì)算連接狀態(tài)評(píng)估指數(shù)S1108。
      例如,假設(shè)從3個(gè)節(jié)點(diǎn)下載流數(shù)據(jù)并且第一節(jié)點(diǎn)的平均下載速度是200,000bps,第二節(jié)點(diǎn)的平均下載速度是100,000bps,而第三節(jié)點(diǎn)的平均下載速度未知。此外,假定第一節(jié)點(diǎn)的往返時(shí)間是23ms,第二節(jié)點(diǎn)的往返時(shí)間是32ms,而第三節(jié)點(diǎn)的往返時(shí)間是20ms。
      在此情況下,通過(guò)(下載速度)/(往返時(shí)間)來(lái)計(jì)算連接狀態(tài)評(píng)估指數(shù)。用(下載速度)/(往返時(shí)間)的最小值來(lái)預(yù)測(cè)第三節(jié)點(diǎn)的平均下載速度。由于第二節(jié)點(diǎn)的(下載速度)/(往返時(shí)間)最小,第三節(jié)點(diǎn)的平均下載速度就可通過(guò)下面的方程1計(jì)算。
      100,0020&times;32=160,500]]>如果不能得知所有連接的平均下載速度,則根據(jù)往返時(shí)間計(jì)算連接狀態(tài)評(píng)估指數(shù)。根據(jù)本發(fā)明的實(shí)施例,往返時(shí)間的倒數(shù)可被用為連接狀態(tài)評(píng)估指數(shù)。
      例如,假設(shè)從3個(gè)節(jié)點(diǎn)下載流數(shù)據(jù),并且各節(jié)點(diǎn)的往返時(shí)間為23ms、41ms和32ms。這種情況下,各節(jié)點(diǎn)的連接狀態(tài)評(píng)估指數(shù)分別為1/23、1/42和1/32。
      在計(jì)算出連接狀態(tài)評(píng)估指數(shù)后,確定在所有子塊中從各節(jié)點(diǎn)下載的子塊數(shù)目。
      根據(jù)連接狀態(tài)評(píng)估指數(shù)確定從各節(jié)點(diǎn)下載的子塊數(shù)目。具體地,通過(guò)下面的方程2確定下載的子塊數(shù)目。
      其中,i=1~n-1 其中,i=n其中,Pi是準(zhǔn)備向各節(jié)點(diǎn)請(qǐng)求的子塊的數(shù)目,αi是各連接的連接狀態(tài)評(píng)估指數(shù)。換句話說(shuō),用戶客戶機(jī)向各節(jié)點(diǎn)請(qǐng)求數(shù)目為Pi的子塊。
      圖12是根據(jù)本發(fā)明優(yōu)選實(shí)施例當(dāng)存在已完成子塊下載的連接時(shí)執(zhí)行的處理的流程圖。
      參考圖12,連接控制模塊的下載狀態(tài)監(jiān)視模塊監(jiān)視是否存在已完成子塊下載的連接S1200。
      如果存在已完成子塊下載的連接,則搜索下載速率最低的連接S1202。通過(guò)(下載子塊數(shù)目)/(請(qǐng)求的子塊數(shù)目)計(jì)算下載速率。
      當(dāng)搜索到下載速率最低的連接時(shí),計(jì)算將在該下載速率最低的連接下載的剩余子塊的數(shù)目S1204。
      在計(jì)算出下載速率最低的連接上的剩余子塊數(shù)目后,確定是否有必要在已完成子塊下載的連接和下載速率最低的連接間重新分配將被下載的子塊S1206。例如,如果在傳輸用于重新分配子塊的控制信號(hào)的同時(shí)就可以下載剩余的子塊,則子塊的重新分配就沒(méi)有必要。
      如果確定有必要進(jìn)行子塊的重新分配,根據(jù)連接狀態(tài)評(píng)估指數(shù)重新分配將被從已完成子塊下載的連接和下載速率最低的連接下載的子塊S1208。
      子塊可通過(guò)下面的方程3進(jìn)行分配。
      P2=剩余子塊數(shù)目-P1P1是被重新分配給下載速率最低的連接的子塊數(shù)目,α1是下載速率最低的連接的連接狀態(tài)評(píng)估指數(shù),P2是被重新分配給已完成子塊下載的連接的子塊數(shù)目,以及α2是已完成子塊下載的連接的連接狀態(tài)評(píng)估指數(shù)。
      如果已重新分配子塊,則向相應(yīng)于根據(jù)新的分配結(jié)果的各連接的節(jié)點(diǎn)請(qǐng)求子塊。如果沒(méi)有必要從子塊下載速率最低的連接下載子塊,用戶客戶機(jī)向相應(yīng)節(jié)點(diǎn)請(qǐng)求停止子塊傳輸。
      圖13是根據(jù)本發(fā)明優(yōu)選實(shí)施例連接控制服務(wù)器的模塊框圖。
      圖13示出了在圖12中的P2P網(wǎng)絡(luò)的系統(tǒng)或者在如圖4的多個(gè)服務(wù)器與P2P組合的系統(tǒng)中的連接控制服務(wù)器的模塊。
      參考圖13,根據(jù)本發(fā)明實(shí)施例的連接控制服務(wù)器可以包括網(wǎng)格管理器模塊1300、節(jié)點(diǎn)信息提供模塊1302以及認(rèn)證模塊1304。用戶數(shù)據(jù)庫(kù)1306、網(wǎng)格信息數(shù)據(jù)庫(kù)1308以及網(wǎng)格信息數(shù)據(jù)庫(kù)1310也可被包含到連接控制服務(wù)器。
      在圖13中,網(wǎng)格管理器模塊1300管理連接至連接控制服務(wù)器的用戶客戶機(jī)的信息。如上所述,當(dāng)用戶客戶機(jī)開(kāi)啟電源或者執(zhí)行通信代理程序時(shí),客戶機(jī)地址信息和存儲(chǔ)于客戶機(jī)的內(nèi)容的信息被傳輸?shù)竭B接控制服務(wù)器,網(wǎng)格管理器模塊1300接收該信息并將其存儲(chǔ)在網(wǎng)格信息數(shù)據(jù)庫(kù)1310中。
      當(dāng)用戶請(qǐng)求一特定內(nèi)容時(shí),節(jié)點(diǎn)列表提供模塊1302使用網(wǎng)格信息數(shù)據(jù)庫(kù)1310得到存儲(chǔ)有相應(yīng)內(nèi)容的節(jié)點(diǎn)信息,并將所得到的信息提供給用戶客戶機(jī)。
      認(rèn)證模塊1304對(duì)客戶機(jī)進(jìn)行認(rèn)證并處理計(jì)費(fèi)信息。當(dāng)用戶請(qǐng)求內(nèi)容時(shí),包含用戶ID和口令(password)的認(rèn)證密鑰信息被傳輸?shù)竭B接控制服務(wù)器,然后認(rèn)證模塊1304確定用戶是否是已注冊(cè)用戶。此外,認(rèn)證模塊1304通過(guò)與外部計(jì)費(fèi)系統(tǒng)通信來(lái)確定是否用戶已經(jīng)為該內(nèi)容付費(fèi)。
      已注冊(cè)用戶的ID、口令、個(gè)人信息等存儲(chǔ)于用戶數(shù)據(jù)庫(kù)1306,而內(nèi)容編碼方法、作者信息等存儲(chǔ)于元信息數(shù)據(jù)庫(kù)1308。如果請(qǐng)求內(nèi)容的用戶已被授權(quán),則網(wǎng)格管理器模塊1300向用戶提供元信息。通常,元信息對(duì)于流數(shù)據(jù)的播放是必要的,然而,如果沒(méi)有元信息也能播放流數(shù)據(jù),元信息數(shù)據(jù)庫(kù)1308也可以不耦合至連接控制服務(wù)器。
      連接到連接控制服務(wù)器的用戶客戶機(jī)的信息和存儲(chǔ)在各用戶客戶機(jī)的內(nèi)容的信息被存儲(chǔ)在網(wǎng)格信息數(shù)據(jù)庫(kù)中1310。
      圖14是根據(jù)本發(fā)明另一實(shí)施例的連接控制服務(wù)器的模塊框圖。
      參考圖14,連接控制服務(wù)器可以包括服務(wù)器狀態(tài)確定模塊1400、子塊分配模塊1402、服務(wù)器列表提供模塊1404以及認(rèn)證模塊1406。用戶數(shù)據(jù)庫(kù)1408、內(nèi)容服務(wù)器數(shù)據(jù)庫(kù)1410和元信息數(shù)據(jù)庫(kù)1412可以耦合至連接控制服務(wù)器。
      服務(wù)器狀態(tài)確定模塊確定由連接控制服務(wù)器管理的內(nèi)容服務(wù)器的狀態(tài)信息。如上所述,服務(wù)器狀態(tài)確定模塊1400使用包括帶寬、CPU使用率、內(nèi)存使用率、已連接用戶數(shù)和文件I/O等的信息,來(lái)確定各內(nèi)容服務(wù)器的狀態(tài)。
      子塊分配模塊1402使用內(nèi)容服務(wù)器的狀態(tài)信息,向請(qǐng)求內(nèi)容的用戶客戶機(jī)提供將被從各內(nèi)容服務(wù)器下載的子塊的數(shù)目信息。
      連接控制服務(wù)器管理的內(nèi)容服務(wù)器的信息被存儲(chǔ)在內(nèi)容數(shù)據(jù)庫(kù)1410中。
      認(rèn)證模塊1406的功能和存儲(chǔ)在用戶數(shù)據(jù)庫(kù)1408與元信息數(shù)據(jù)庫(kù)1412中的信息與圖13的情況相同。
      工業(yè)實(shí)用性如上所述,根據(jù)本發(fā)明,由于通過(guò)多條路徑提供流數(shù)據(jù),所以盡管在一個(gè)連接上發(fā)生錯(cuò)誤也能夠提供穩(wěn)定的流業(yè)務(wù)(streaming service)。
      此外,根據(jù)本發(fā)明,由于在一個(gè)連接中完成子塊下載時(shí)就重新分配將被下載的子塊,可以避免空閑連接的發(fā)生,從而提高下載效率。
      特別的,當(dāng)在P2P網(wǎng)絡(luò)中通過(guò)多個(gè)節(jié)點(diǎn)下載流數(shù)據(jù)時(shí)本發(fā)明是有效的。
      權(quán)利要求
      1.一種用于下載流數(shù)據(jù)的方法,其步驟包括(a)與多個(gè)節(jié)點(diǎn)建立連接;(b)向已建立連接的多個(gè)節(jié)點(diǎn)發(fā)出對(duì)流數(shù)據(jù)的子塊的請(qǐng)求,以下載這些子塊;(c)監(jiān)視已建立連接的下載狀態(tài);以及(d)根據(jù)監(jiān)視結(jié)果,重新分配將被從已建立連接的某些節(jié)點(diǎn)下載的子塊;其中,當(dāng)下載完一個(gè)塊所包括的所有子塊時(shí),重復(fù)步驟(b)到步驟(d)以下載下一個(gè)塊所包括的子塊。
      2.如權(quán)利要求1所述的方法,還包括確定將從已建立連接的各節(jié)點(diǎn)下載的子塊的步驟。
      3.如權(quán)利要求1所述的方法,其中,步驟(c)包括監(jiān)視是否存在已完成子塊下載的連接的步驟。
      4.如權(quán)利要求2所述的方法,其中,通過(guò)計(jì)算連接狀態(tài)評(píng)估指數(shù),來(lái)確定將被從各節(jié)點(diǎn)下載的子塊。
      5.如權(quán)利要求4所述的方法,其中,使用選自包含相對(duì)于各節(jié)點(diǎn)的往返時(shí)間和從各節(jié)點(diǎn)的平均下載速度的組中的信息,來(lái)計(jì)算該連接狀態(tài)評(píng)估指數(shù)。
      6.如權(quán)利要求3所述的方法,其中,步驟(d)包括當(dāng)存在已完成子塊下載的連接時(shí),在已完成子塊下載的連接和未完成子塊下載的某些連接之間重新分配子塊的步驟。
      7.如權(quán)利要求6所述的方法,其中,步驟(d)包括在已完成子塊下載的連接和未完成子塊下載的連接中的下載速率最低的連接之間重新分配子塊的步驟。
      8.如權(quán)利要求7所述的方法,在已完成子塊下載的連接和下載速率最低的連接之間重新分配子塊的步驟包括以下步驟確定已完成子塊下載的連接和下載速率最低的連接的下載速度;確定將在下載速率最低的連接中下載的剩余子塊的數(shù)目;確定是否需要重新分配子塊;如果需要重新分配子塊,則根據(jù)下載速率在已完成子塊下載的連接和下載速率最低的連接之間重新分配剩余子塊。
      9.如權(quán)利要求1所述的方法,還包括將連接建立失敗的節(jié)點(diǎn)的信息存儲(chǔ)在黑名單隊(duì)列中的步驟。
      10.如權(quán)利要求2所述的方法,還包括接收節(jié)點(diǎn)狀態(tài)信息的步驟,其中,使用該節(jié)點(diǎn)狀態(tài)信息來(lái)確定將被從各節(jié)點(diǎn)下載的子塊。
      11.如權(quán)利要求2所述的方法,其中,使用在下載初始狀態(tài)中的節(jié)點(diǎn)的狀態(tài)信息來(lái)確定將被從各節(jié)點(diǎn)下載的子塊,在確定了從各節(jié)點(diǎn)的下載速度后,使用連接狀態(tài)評(píng)估指數(shù)來(lái)確定將被從各節(jié)點(diǎn)下載的子塊;其中,使用選自包含相對(duì)于各節(jié)點(diǎn)的往返時(shí)間和從各節(jié)點(diǎn)的平均下載速度的組中的信息,來(lái)計(jì)算該連接狀態(tài)評(píng)估指數(shù)。
      12.如權(quán)利要求10所述的方法,其中,在步驟(a)中,使用節(jié)點(diǎn)的狀態(tài)信息,來(lái)執(zhí)行與多個(gè)節(jié)點(diǎn)的連接建立。
      13.如權(quán)利要求1所述的方法,還包括使用已下載子塊的校驗(yàn)和值來(lái)確定下載錯(cuò)誤的步驟。
      14.如權(quán)利要求1所述的方法,還包括在重新分配子塊之后,使用該重新分配結(jié)果向相應(yīng)節(jié)點(diǎn)發(fā)出對(duì)子塊的請(qǐng)求的步驟,以下載重新分配后的子塊。
      15.如權(quán)利要求1所述的方法,還包括如果從多個(gè)節(jié)點(diǎn)下載子塊失敗時(shí),通過(guò)連接到單個(gè)服務(wù)器來(lái)下載流數(shù)據(jù)的步驟。
      16.如權(quán)利要求1所述的方法,還包括步驟監(jiān)視已建立連接的節(jié)點(diǎn)中尚未傳輸數(shù)據(jù)的節(jié)點(diǎn)狀態(tài)信息;在正在傳輸數(shù)據(jù)的某些節(jié)點(diǎn)和尚未傳輸數(shù)據(jù)的某些節(jié)點(diǎn)之間重新分配將被下載的子塊。
      17.一種通信代理程序,安裝在一系統(tǒng)中的多個(gè)用戶客戶機(jī)中,在該系統(tǒng)中,連接控制服務(wù)器和該多個(gè)用戶客戶機(jī)通過(guò)網(wǎng)絡(luò)連接,包括代理管理器模塊,用于將存儲(chǔ)在用戶客戶機(jī)中的內(nèi)容信息和用戶客戶機(jī)的識(shí)別信息提供給連接控制服務(wù)器,以及當(dāng)用戶請(qǐng)求內(nèi)容時(shí)將內(nèi)容請(qǐng)求信息傳輸至連接控制服務(wù)器;節(jié)點(diǎn)信息管理器模塊,用于接收和存儲(chǔ)存儲(chǔ)有被請(qǐng)求內(nèi)容的節(jié)點(diǎn)的列表信息;連接控制模塊,用于使用節(jié)點(diǎn)的列表信息與多個(gè)節(jié)點(diǎn)建立連接,確定將從已建立連接的各節(jié)點(diǎn)下載的子塊以請(qǐng)求子塊,以及通過(guò)在下載子塊的同時(shí)監(jiān)視下載狀態(tài)來(lái)重新分配將從某些已連接節(jié)點(diǎn)下載的子塊;子塊管理器模塊,用于確定是否已下載完一個(gè)塊所包括的所有子塊,以及當(dāng)下載完一個(gè)塊所包括的所有子塊時(shí),請(qǐng)求下一個(gè)塊所包括的子塊,以下載下一個(gè)塊所包括的子塊。
      18.如權(quán)利要求17所述的程序,其中,該連接控制模塊在已完成子塊下載的連接和未完成子塊下載的某些連接之間重新分配子塊。
      19.如權(quán)利要求18所述的程序,該通信代理模塊包括連接建立模塊,用于與該節(jié)點(diǎn)列表中所包含的節(jié)點(diǎn)建立連接;連接狀態(tài)確定模塊,用于確定已建立連接的節(jié)點(diǎn)的連接狀態(tài);子塊分配模塊,用于使用連接狀態(tài)信息來(lái)分配將被從已建立連接的節(jié)點(diǎn)下載的子塊;下載狀態(tài)監(jiān)視模塊,用于當(dāng)存在已完成被請(qǐng)求子塊的傳輸?shù)墓?jié)點(diǎn)時(shí),向子塊分配模塊請(qǐng)求在已完成子塊下載的連接和下載速率最低的連接之間重新分配子塊;其中,作為對(duì)下載狀態(tài)監(jiān)視模塊發(fā)出的對(duì)子塊重新分配的請(qǐng)求的響應(yīng),子塊分配模塊根據(jù)下載速度在已完成子塊下載的連接與下載速率最低的連接之間重新分配將被下載的子塊。
      20.如權(quán)利要求19所述的程序,其中,連接狀態(tài)確定模塊使用選自包含相對(duì)于各節(jié)點(diǎn)的往返時(shí)間和從各節(jié)點(diǎn)的平均下載速度的組中的信息,來(lái)確定連接狀態(tài)。
      21.如權(quán)利要求19所述的程序,其中,連接狀態(tài)確定模塊通過(guò)從連接控制服務(wù)器接收節(jié)點(diǎn)狀態(tài)信息,來(lái)確定連接狀態(tài)。
      22.如權(quán)利要求19所述的程序,其中,連接建立模塊使用連接控制服務(wù)器提供的節(jié)點(diǎn)狀態(tài)信息來(lái)建立連接,如果連接建立失敗,連接建立模塊使用節(jié)點(diǎn)狀態(tài)信息與其它節(jié)點(diǎn)建立連接。
      23.如權(quán)利要求19所述的程序,連接建立模塊在連接建立失敗時(shí),將連接建立失敗的節(jié)點(diǎn)的信息存儲(chǔ)在黑名單隊(duì)列中。
      24.如權(quán)利要求17所述的程序,該子塊管理器模塊使用子塊校驗(yàn)和值來(lái)確定下載錯(cuò)誤。
      25.如權(quán)利要求17所述的程序,還包括高速緩存管理器模塊,用于以不規(guī)則狀態(tài)存儲(chǔ)所下載的流數(shù)據(jù)并管理所存儲(chǔ)的數(shù)據(jù)。
      26.如權(quán)利要求25所述的程序,還包括塊管理器模塊,用于當(dāng)一個(gè)塊所包括的所有子塊都下載完時(shí),將塊數(shù)據(jù)提供給高速緩存管理器模塊或播放流數(shù)據(jù)的播放器。
      27.如權(quán)利要求17所述的程序,還包括預(yù)留管理器模塊,用于將預(yù)留請(qǐng)求信息傳輸給連接控制服務(wù)器,并管理所預(yù)留的內(nèi)容信息。
      28.如權(quán)利要求17所述的程序,其中,連接控制模塊監(jiān)視已建立連接的各節(jié)點(diǎn)中尚未傳輸數(shù)據(jù)的節(jié)點(diǎn)的狀態(tài),并根據(jù)該監(jiān)視結(jié)果在尚未傳輸數(shù)據(jù)的某些節(jié)點(diǎn)和正在傳輸數(shù)據(jù)的某些節(jié)點(diǎn)之間重新分配子塊。
      29.一種通信代理程序,安裝在從一系統(tǒng)下載流數(shù)據(jù)的用戶客戶機(jī)中,該系統(tǒng)包括多個(gè)內(nèi)容服務(wù)器和至少一個(gè)連接控制服務(wù)器,包括數(shù)據(jù)請(qǐng)求模塊,用于向該連接控制服務(wù)器發(fā)出傳輸數(shù)據(jù)的請(qǐng)求;節(jié)點(diǎn)信息管理器模塊,用于接收和存儲(chǔ)將下載被請(qǐng)求數(shù)據(jù)的內(nèi)容服務(wù)器的列表;連接控制模塊,用于與內(nèi)容服務(wù)器列表中所包括的多個(gè)內(nèi)容服務(wù)器建立連接,請(qǐng)求將從已建立連接的內(nèi)容服務(wù)器下載的流數(shù)據(jù)的子塊,以及通過(guò)在從已連接內(nèi)容服務(wù)器下載子塊的同時(shí)監(jiān)視下載狀態(tài),來(lái)重新分配將從已建立連接的某些內(nèi)容服務(wù)器中下載的子塊;以及子塊管理器模塊,用于確定是否已下載完一個(gè)塊所包括的所有子塊,并且當(dāng)已下載完一個(gè)塊所包括的所有子塊時(shí),請(qǐng)求下一個(gè)塊所包括的子塊,以下載下一個(gè)塊的子塊。
      30.如權(quán)利要求29所述的程序,其中,連接控制模塊在已完成子塊下載的連接和未完成子塊下載的某些連接之間重新分配子塊。
      31.如權(quán)利要求30所述的程序,其中,連接控制模塊包括連接建立模塊,用于與內(nèi)容服務(wù)器列表中所包括的內(nèi)容服務(wù)器建立連接;連接狀態(tài)確定模塊,用于確定已連接內(nèi)容服務(wù)器的連接狀態(tài);子塊分配模塊,用于使用連接狀態(tài)信息來(lái)分配將被從每個(gè)已連接內(nèi)容服務(wù)器下載的子塊;下載狀態(tài)監(jiān)視模塊,用于當(dāng)存在已完成子塊下載的連接時(shí),請(qǐng)求在已完成子塊下載的連接和下載速率最低的連接之間重新分配子塊;其中,作為對(duì)該下載狀態(tài)監(jiān)視模塊的請(qǐng)求的響應(yīng),子塊分配模塊根據(jù)已完成子塊下載的連接和下載速率最低的連接的下載速度來(lái)重新分配子塊。
      32.如權(quán)利要求31所述的程序,其中,連接狀態(tài)確定模塊使用連接狀態(tài)控制服務(wù)器所提供的內(nèi)容服務(wù)器狀態(tài)信息來(lái)確定連接狀態(tài)。
      33.一種連接控制服務(wù)器,通過(guò)網(wǎng)絡(luò)與多個(gè)用戶客戶機(jī)連接,用于控制用戶客戶機(jī)之間的連接,以使用戶客戶機(jī)能夠通過(guò)連接其他用戶來(lái)下載流數(shù)據(jù),包括網(wǎng)格管理器模塊,用于接收存儲(chǔ)在已連接的多個(gè)用戶客戶機(jī)的內(nèi)容的信息和已連接的多個(gè)用戶客戶機(jī)的地址信息,以及將存儲(chǔ)有被請(qǐng)求內(nèi)容的節(jié)點(diǎn)信息提供請(qǐng)求內(nèi)容的用戶客戶機(jī);以及網(wǎng)格信息數(shù)據(jù)庫(kù),用于存儲(chǔ)每個(gè)用戶客戶機(jī)所存儲(chǔ)的內(nèi)容的信息和每個(gè)用戶客戶機(jī)的地址信息;其中,通信代理程序安裝在該多個(gè)用戶客戶機(jī)中,該通信代理程序使用節(jié)點(diǎn)信息控制用戶客戶機(jī)與多個(gè)節(jié)點(diǎn)建立連接,和向已連接節(jié)點(diǎn)發(fā)出對(duì)將要下載的流數(shù)據(jù)的子塊的請(qǐng)求,以及通過(guò)監(jiān)視各已連接節(jié)點(diǎn)的下載狀態(tài)來(lái)重新分配將要下載的子塊。
      34.如權(quán)利要求33所述的服務(wù)器,還包括用于對(duì)用戶進(jìn)行認(rèn)證和處理計(jì)費(fèi)信息的認(rèn)證模塊。
      35.如權(quán)利要求33所述的服務(wù)器,還包括用于存儲(chǔ)已注冊(cè)用戶的信息的用戶數(shù)據(jù)庫(kù)和用于存儲(chǔ)流數(shù)據(jù)的元信息的元信息數(shù)據(jù)庫(kù)。
      36.如權(quán)利要求33所述的服務(wù)器,其中,網(wǎng)格管理器模塊接收各節(jié)點(diǎn)的狀態(tài)信息,并提供節(jié)點(diǎn)信息的狀態(tài)信息。
      37.一種連接控制服務(wù)器,通過(guò)網(wǎng)絡(luò)與多個(gè)用戶客戶機(jī)和多個(gè)內(nèi)容服務(wù)器連接,用于控制用戶客戶機(jī)和內(nèi)容服務(wù)器之間的連接,以使用戶客戶機(jī)能夠通過(guò)連接到至少兩個(gè)內(nèi)容服務(wù)器來(lái)下載流數(shù)據(jù),包括服務(wù)器狀態(tài)檢測(cè)模塊,用于從已連接的多個(gè)內(nèi)容服務(wù)器上接收狀態(tài)信息,并確定各內(nèi)容服務(wù)器的狀態(tài);服務(wù)器列表提供模塊,用于當(dāng)從用戶客戶機(jī)接收到內(nèi)容請(qǐng)求信息時(shí),提供將要傳輸被請(qǐng)求內(nèi)容的流數(shù)據(jù)的服務(wù)器的列表信息;其中,通信代理程序安裝在用戶客戶機(jī)中,該通信代理程序使用服務(wù)器列表信息控制用戶客戶機(jī)與至少兩個(gè)內(nèi)容服務(wù)器建立連接,和確定將從各已連接內(nèi)容服務(wù)器下載的流數(shù)據(jù)的子塊以請(qǐng)求子塊,以及通過(guò)監(jiān)視各已連接節(jié)點(diǎn)的子塊下載狀態(tài)來(lái)重新分配將要下載的子塊。
      38.如權(quán)利要求37所述的服務(wù)器,其中,內(nèi)容服務(wù)器所提供的狀態(tài)信息選自包括帶寬信息、CPU使用率信息、內(nèi)存使用率信息、連接用戶數(shù)和文件I/O信息的組中。
      全文摘要
      公開(kāi)一種傳輸和下載流數(shù)據(jù)的方法。該方法包括(a)與多個(gè)節(jié)點(diǎn)建立連接;(b)向已建立連接的多個(gè)節(jié)點(diǎn)發(fā)出對(duì)流數(shù)據(jù)的子塊的請(qǐng)求,以下載子塊;(c)監(jiān)視已建立連接的下載狀態(tài);以及(d)根據(jù)監(jiān)視結(jié)果,重新分配將被從已建立連接的某些節(jié)點(diǎn)下載的子塊;其中,當(dāng)下載完包括在一個(gè)塊中的所有子塊時(shí),重復(fù)步驟(b)到步驟(d),以下載包含在下一個(gè)塊中的子塊。
      文檔編號(hào)G06F17/00GK1723452SQ200480001683
      公開(kāi)日2006年1月18日 申請(qǐng)日期2004年1月5日 優(yōu)先權(quán)日2003年1月17日
      發(fā)明者金尚賢 申請(qǐng)人:Nhn株式會(huì)社
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1