專利名稱:客戶機(jī)服務(wù)器網(wǎng)絡(luò)中作為分配數(shù)據(jù)包的中繼服務(wù)器的終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通信網(wǎng)絡(luò)的改進(jìn)以及這種網(wǎng)絡(luò)中所采用的系統(tǒng)、方法和裝置。
背景技術(shù):
在傳統(tǒng)的客戶機(jī)/服務(wù)器數(shù)據(jù)網(wǎng)絡(luò)中,如TCP/IP或其他路由網(wǎng)絡(luò)中,主服務(wù)器通過單一的服務(wù)器端口(socket)為所有的終端提供服務(wù)。這種網(wǎng)絡(luò)將導(dǎo)致極端的網(wǎng)絡(luò)負(fù)載尖峰,特別是當(dāng)數(shù)據(jù)需要被同時(shí)傳送到大量的客戶機(jī)時(shí),會引起數(shù)據(jù)傳輸?shù)难訒r(shí)。
本發(fā)明試圖提供改進(jìn)的網(wǎng)絡(luò)系統(tǒng)、方法和裝置從而增強(qiáng)網(wǎng)絡(luò)的性能。
發(fā)明內(nèi)容
本發(fā)明提供了由所附權(quán)利要求書限定的改進(jìn)的數(shù)據(jù)通信網(wǎng)絡(luò)、操作數(shù)據(jù)通信網(wǎng)絡(luò)的方法、網(wǎng)絡(luò)服務(wù)器、網(wǎng)絡(luò)終端和計(jì)算機(jī)程序。
附圖簡要說明以下將參考附圖,示例性地描述本發(fā)明的實(shí)施例,其中
圖1所示為實(shí)施本發(fā)明的數(shù)據(jù)通信網(wǎng)絡(luò)的操作模型;圖2A、2B和2C所示為圖1中的網(wǎng)絡(luò)所采用的主服務(wù)器和終端的操作結(jié)構(gòu);圖3A和3B是圖1中的網(wǎng)絡(luò)所采用的路由和數(shù)據(jù)傳輸過程的事物處理簡圖;圖4所示為根據(jù)本發(fā)明,從主服務(wù)器向大量目標(biāo)終端分配數(shù)據(jù)的一個(gè)方案的例子。
優(yōu)選實(shí)施例的詳細(xì)描述參見附圖,圖1所示為根據(jù)本發(fā)明的數(shù)據(jù)通信網(wǎng)絡(luò)的簡化的示例性實(shí)施例的操作模型。該網(wǎng)絡(luò)包括一個(gè)數(shù)據(jù)存儲系統(tǒng)10,在該實(shí)施例中其包括介質(zhì)存儲系統(tǒng)18和跟蹤數(shù)據(jù)庫20,介質(zhì)存儲系統(tǒng)18用于存儲有選擇地被分配到網(wǎng)絡(luò)中的數(shù)據(jù)(即“介質(zhì)”或“內(nèi)容”),跟蹤數(shù)據(jù)庫20用于管理以下將更詳細(xì)描述的網(wǎng)絡(luò)的操作。為了便于描述,在此將從介質(zhì)存儲系統(tǒng)18中被分配的數(shù)據(jù)稱為“內(nèi)容”,其可以理解為包括最終用戶感興趣的任何類型的數(shù)據(jù),包括但不僅限于文本、圖形、視頻數(shù)據(jù)、音頻數(shù)據(jù)、可執(zhí)行代碼等。內(nèi)容通常包括某種類型的一個(gè)數(shù)據(jù)文件。
在本發(fā)明中,“內(nèi)容”是指文件、部分文件或其等價(jià)物,其存儲在服務(wù)器上,可由客戶機(jī)從服務(wù)器上下載并由該客戶機(jī)存儲以便于隨后應(yīng)用,“內(nèi)容”完全不同于數(shù)字廣播介質(zhì),在數(shù)字廣播介質(zhì)中,數(shù)據(jù)流由廣播服務(wù)器發(fā)送并由客戶機(jī),在某些情況下由介入的中繼單元臨時(shí)緩沖。
該網(wǎng)絡(luò)還包括一個(gè)主服務(wù)器12,其可與介質(zhì)存儲系統(tǒng)18和跟蹤數(shù)據(jù)庫20通信并可控制來自介質(zhì)存儲系統(tǒng)18的內(nèi)容的分配。該網(wǎng)絡(luò)還包括多個(gè)終端14和16,內(nèi)容被分配到這些終端。根據(jù)本發(fā)明,當(dāng)相同的內(nèi)容將要被分配給大量終端時(shí),至少一些終端14還作為“中繼服務(wù)器”將內(nèi)容分配給剩余的終端16(即,一些或所有的終端還可以作為中繼服務(wù)器)。
介質(zhì)存儲系統(tǒng)18和終端14、16之間的所有事物處理都是由主服務(wù)器12控制的。具體而言,所有從介質(zhì)存儲系統(tǒng)18下載到終端的數(shù)據(jù)都由主服務(wù)器12管理。通常,由主服務(wù)器從存儲系統(tǒng)中檢索內(nèi)容并將之傳遞到終端14和16。但是在某些情況下,主服務(wù)器本身不檢索和傳遞內(nèi)容,而是管理其他服務(wù)器對內(nèi)容的檢索和傳遞。
這里所用的術(shù)語“目標(biāo)終端”是指作為預(yù)期接收者的終端,其接收來自介質(zhì)存儲系統(tǒng)18的內(nèi)容(數(shù)據(jù)文件)。每個(gè)終端14和16都可以是數(shù)據(jù)文件的目標(biāo)終端。在該實(shí)施例中,第一組終端中的每個(gè)終端14還作為中繼服務(wù)器將數(shù)據(jù)傳遞到第二組終端中的一個(gè)或多個(gè)終端16,這一點(diǎn)將在以下描述。終端16也可以作為中繼服務(wù)器將數(shù)據(jù)中繼到其下行的其他終端(未示出)??梢岳斫?,并不是包括在網(wǎng)絡(luò)中的所有終端都需要作為中繼服務(wù)器,該網(wǎng)絡(luò)可包括不適于作為中繼服務(wù)器的終端設(shè)備。
跟蹤數(shù)據(jù)庫20保存主服務(wù)器12和各種終端14、16之間事物處理的記錄。具體而言,跟蹤數(shù)據(jù)庫監(jiān)視網(wǎng)絡(luò)中還作為中繼服務(wù)器的所有終端的性能(通信速度和/或其他參數(shù),如可靠性)。這個(gè)信息可供主服務(wù)器使用。具體而言,跟蹤數(shù)據(jù)庫12能將按照終端的相對性能排序的終端地址的列表提供給主服務(wù)器。
在該網(wǎng)絡(luò)的操作過程中,當(dāng)內(nèi)容數(shù)據(jù)文件被分配到特定的目標(biāo)終端時(shí),主服務(wù)器12通過向第一組終端14發(fā)送一個(gè)傳輸請求來初始化數(shù)據(jù)傳輸操作,第一組終端14是根據(jù)當(dāng)前的性能數(shù)據(jù),從目標(biāo)終端的列表中選出的最佳的終端。傳輸請求包括--將要傳輸?shù)奈募脑敿?xì)資料。通常包括,例如,文件類型和大小、內(nèi)容激活和釋放的時(shí)間戳、加密和壓縮的詳細(xì)資料等。
--文件分配過程中所涉及的中繼服務(wù)器和終端的地址從主服務(wù)器12向第一組終端14發(fā)送的傳輸請求指示這些終端從主服務(wù)器12(或從包括在傳輸請求中的其他服務(wù)器地址)中檢索數(shù)據(jù)。在第一終端14之間分派剩余目標(biāo)終端地址的列表。這樣,每個(gè)第一終端14都可作為中繼服務(wù)器將數(shù)據(jù)分配到剩余目標(biāo)終端的子集。
響應(yīng)于來自主服務(wù)器12的傳輸請求,各第一終端14開始從主服務(wù)器12下載文件。當(dāng)?shù)谝唤K端14中的一個(gè)已經(jīng)接收到預(yù)定數(shù)量字節(jié)的文件時(shí),該終端14就會向其目標(biāo)終端16的子集發(fā)送一個(gè)原傳輸請求的修訂版本。該修訂的傳輸請求將相應(yīng)的第一終端14確定為中繼服務(wù)器地址,其目標(biāo)服務(wù)器16的子集應(yīng)該從這個(gè)地址中檢索數(shù)據(jù)。根據(jù)目標(biāo)終端的數(shù)量,目標(biāo)終端的列表可以再細(xì)分多次。即,各第二組終端16可收到進(jìn)一步(further)目標(biāo)終端的列表,第二組終端16將作為這些進(jìn)一步目標(biāo)終端的中繼服務(wù)器。在每個(gè)階段,優(yōu)選為將從其余目標(biāo)終端的列表中選擇的“最佳的”終端作為剩余終端的中繼服務(wù)器。
當(dāng)各終端14或16已經(jīng)下載完整個(gè)文件時(shí),直接向主服務(wù)器12發(fā)送一個(gè)通知消息,如圖1中的符號22所示。
主服務(wù)器12服務(wù)于來自第一組終端14的數(shù)據(jù)請求。如果第二組終端16中的終端不能連接到第一組終端14內(nèi)的終端,那么它將向主服務(wù)器12發(fā)送數(shù)據(jù)請求。
通常,主服務(wù)器和作為中繼服務(wù)器的各下行的終端只服務(wù)于少量的(如2到5個(gè))下行終端。如果目標(biāo)終端的數(shù)目少于或等于這個(gè)數(shù)量,則目標(biāo)終端都可以直接從主服務(wù)器檢索數(shù)據(jù),或者主服務(wù)器可以請求最佳的目標(biāo)終端作為其他終端的中繼服務(wù)器。
可以理解,該網(wǎng)絡(luò)可包括比圖1中所示以樹狀結(jié)構(gòu)排列的更多的終端,其中每個(gè)終端或者是一個(gè)節(jié)點(diǎn)(既作為中繼服務(wù)器又作為目標(biāo)終端),或者只是一個(gè)葉(只作為目標(biāo)終端);即,在主服務(wù)器和各目標(biāo)終端之間的下行數(shù)據(jù)傳輸路徑中可能有許多節(jié)點(diǎn)終端。優(yōu)選為,從各終端14、16直接到主服務(wù)器12也有一個(gè)上行通信路徑22。上行通信路徑22由目標(biāo)終端使用以確認(rèn)數(shù)據(jù)的接收。這些確認(rèn)直接從目標(biāo)終端發(fā)送到主服務(wù)器12,如圖所示。為了清楚地進(jìn)行說明,在圖1中省略了終端14和主服務(wù)器12之間的上行路徑22。
可以理解,圖1中所示的操作模型可以應(yīng)用一個(gè)現(xiàn)有的傳統(tǒng)網(wǎng)絡(luò)架構(gòu)(如因特網(wǎng)或其同等物)來實(shí)現(xiàn),而不需要新的物理網(wǎng)絡(luò)。服務(wù)器和終端可以通過同步的固定連接如ISDN、HSDL、T1或T3被連接到網(wǎng)絡(luò)主干上,且該網(wǎng)絡(luò)可包括撥號連接、無線連接等。即,圖1中所示的是服務(wù)器和多個(gè)終端之間的邏輯連接而非物理連接。此外,主服務(wù)器和多個(gè)終端之間的邏輯連接可在網(wǎng)絡(luò)的使用過程中進(jìn)行動態(tài)地調(diào)整,這一點(diǎn)將在下文中進(jìn)一步描述。
本發(fā)明特別適用于所有終端都可作為上述的中繼服務(wù)器并假定永久在線的情況。但是,可以理解,本發(fā)明也適用于不可作為中繼服務(wù)器的終端(這種終端是處于目標(biāo)終端列表的末尾一直是“葉”的終端)。
目標(biāo)終端請求單獨(dú)地傳輸每個(gè)數(shù)據(jù)包。被傳輸?shù)臄?shù)據(jù)包包括的信息有被傳輸數(shù)據(jù)的類型、被傳輸數(shù)據(jù)包的大小、壓縮和確認(rèn)所需的校驗(yàn)信息。
圖2A所示為主服務(wù)器12的操作結(jié)構(gòu),包括網(wǎng)絡(luò)數(shù)據(jù)庫23、數(shù)據(jù)庫接口模塊24、26以及終端模塊28,網(wǎng)絡(luò)數(shù)據(jù)庫23用于存儲包括網(wǎng)絡(luò)終端的地址等的網(wǎng)絡(luò)信息(該數(shù)據(jù)庫可實(shí)現(xiàn)圖1中的跟蹤數(shù)據(jù)庫20的全部或部分功能;這些數(shù)據(jù)庫功能可以由在一個(gè)或多個(gè)計(jì)算機(jī)/服務(wù)器上的一個(gè)或多個(gè)數(shù)據(jù)庫系統(tǒng)來完成)。包括在主服務(wù)器12中的終端模塊28也可應(yīng)用于各網(wǎng)絡(luò)終端/中繼服務(wù)器14、16,并且包括路由網(wǎng)絡(luò)協(xié)議模塊30(優(yōu)選為一個(gè)TCP/IP模塊,但也可應(yīng)用其他的路由協(xié)議)和一個(gè)主應(yīng)用程序模塊32。如圖2B所示,數(shù)據(jù)庫接口模塊24和26提供I/O(輸入/輸出)控制函數(shù)34和數(shù)據(jù)庫接口函數(shù)36,I/O控制函數(shù)34向主應(yīng)用程序模塊32的內(nèi)核提供所需的服務(wù)器級功能以用于數(shù)據(jù)傳送控制和記錄數(shù)據(jù)集合(data aggregation),數(shù)據(jù)庫接口函數(shù)36提供對網(wǎng)絡(luò)數(shù)據(jù)庫23的訪問。例如,可以經(jīng)ODBC(開放式數(shù)據(jù)庫互連)接口或網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)23自帶的數(shù)據(jù)庫接口進(jìn)行訪問。
如圖2C所示,在主服務(wù)器和那些也可以作為中繼服務(wù)器的終端中采用的主應(yīng)用程序模塊32包括以下的功能模塊一個(gè)內(nèi)核模塊38,用于解釋接收的數(shù)據(jù)包并存儲數(shù)據(jù)。
一個(gè)數(shù)據(jù)接收模塊40,用于接收單獨(dú)的數(shù)據(jù)包。
一個(gè)數(shù)據(jù)準(zhǔn)備模塊42,用于準(zhǔn)備將要被中繼的數(shù)據(jù)。
一個(gè)數(shù)據(jù)發(fā)送模塊44,用于發(fā)送由準(zhǔn)備模塊42準(zhǔn)備的數(shù)據(jù)并向相應(yīng)的客戶機(jī)發(fā)送確認(rèn)。
一個(gè)路由控制模塊46,用于保持最佳數(shù)據(jù)傳輸速率。
一個(gè)端口控制模塊48,用于管理端口對象。
一個(gè)服務(wù)器端口50,用于監(jiān)視經(jīng)TCP/IP模塊(或其他路由網(wǎng)絡(luò)協(xié)議模塊)30接收的數(shù)據(jù)。
客戶機(jī)端口52經(jīng)模塊30發(fā)送數(shù)據(jù)??蛻魴C(jī)端口的數(shù)量可根據(jù)任何特定的時(shí)間所需的服務(wù)器連接的數(shù)量而進(jìn)行動態(tài)調(diào)整。
在傳統(tǒng)的系統(tǒng)中,服務(wù)器具有一個(gè)面向服務(wù)器的客戶機(jī)連接,服務(wù)器包括一個(gè)服務(wù)器端口,其用于連接到客戶機(jī)的服務(wù)器端口。在本發(fā)明中,主服務(wù)器12和作為中繼服務(wù)器的各終端中的主應(yīng)用程序模塊包括一個(gè)用于從其客戶機(jī)接收數(shù)據(jù)的標(biāo)準(zhǔn)服務(wù)器端口50。此外,該主應(yīng)用程序模塊還具有客戶機(jī)端口52,用于與下行終端進(jìn)行下行通信。將被傳輸?shù)侥繕?biāo)終端的實(shí)際數(shù)據(jù)經(jīng)這些客戶機(jī)端口發(fā)送并經(jīng)服務(wù)器端口接收來自這些終端的確認(rèn)。當(dāng)所需數(shù)據(jù)已由服務(wù)器發(fā)送時(shí),就可取消該為發(fā)送數(shù)據(jù)所創(chuàng)建的客戶機(jī)端口,從而不會浪費(fèi)不必要的網(wǎng)絡(luò)資源。應(yīng)用這種方法,接收的確認(rèn)在傳出的數(shù)據(jù)流中將不會引起任何中斷。每個(gè)終端/服務(wù)器具有兩個(gè)“硬編碼的”端口,一個(gè)是為其他終端/服務(wù)器提供服務(wù)的客戶機(jī)端口52,一個(gè)是只用于主服務(wù)器連接的服務(wù)器端口50。根據(jù)需要可動態(tài)地創(chuàng)建和使用其他的端口。每個(gè)端口都有一個(gè)用于控制該端口的獨(dú)立的處理器線程,從而可在不出現(xiàn)中斷和延遲的情況下對這些端口進(jìn)行管理和控制。
端口的打開和操作是應(yīng)用C++類應(yīng)用程序進(jìn)行動態(tài)處理的,當(dāng)需要一個(gè)該類的新實(shí)例時(shí),該應(yīng)用程序產(chǎn)生一個(gè)新端口。用這種方式,端口可被動態(tài)地管理且其數(shù)量可根據(jù)需要改變。每個(gè)線程擁有并控制自己的端口。當(dāng)不再需要一個(gè)端口時(shí),控制線程會取消該線程然后取消自己。
現(xiàn)在描述該網(wǎng)絡(luò)的操作。
圖3A所示為路由過程。
主服務(wù)器選擇第一組的幾個(gè)(2個(gè)或3個(gè))終端,并向這些終端中的每一個(gè)終端發(fā)送傳輸請求(包括相應(yīng)目標(biāo)終端的地址)。每個(gè)第一組的終端通過直接向主服務(wù)器發(fā)送一個(gè)消息來確認(rèn)其在動態(tài)路由中的連接。該確認(rèn)的速度可被用于更新監(jiān)視終端性能的終端數(shù)據(jù)。根據(jù)在網(wǎng)絡(luò)操作過程中預(yù)先獲得的并存儲在網(wǎng)絡(luò)數(shù)據(jù)庫中的性能數(shù)據(jù),將“最佳的”(“最快的”)終端選為第一組終端,該第一組終端用于將數(shù)據(jù)傳送到特定的目標(biāo)終端。
在進(jìn)行數(shù)據(jù)傳輸時(shí),數(shù)據(jù)會被傳送到已注冊為網(wǎng)絡(luò)的一部分的已知終端。如果在傳輸過程中,有一個(gè)新終端注冊到主服務(wù)器上,則該終端將被包括在下一個(gè)數(shù)據(jù)傳輸中。
如上所述,主服務(wù)器選擇具有最短響應(yīng)時(shí)間的終端。這個(gè)信息是用以下的方式獲得的來自特定終端的路由確認(rèn)的最初接收者是向這些特定終端發(fā)送傳輸請求的“擔(dān)任服務(wù)器角色”(serverrole)的應(yīng)用程序。當(dāng)該傳送鏈完成時(shí),信息被自動地中繼到主服務(wù)器。通過測量不同終端之間的響應(yīng)時(shí)間簡單地測量不同終端(網(wǎng)絡(luò)地址)的性能,并選擇具有最短響應(yīng)時(shí)間的終端。
由于目標(biāo)終端的地址被包括在傳輸請求中,因此這些終端不需要知道網(wǎng)絡(luò)中總的網(wǎng)絡(luò)地址空間。
作為傳輸請求的一部分,主服務(wù)器將其他目標(biāo)終端的地址發(fā)送到第一組終端/中繼服務(wù)器。每個(gè)終端選擇自己的下行終端/中繼服務(wù)器并向這些終端/中繼服務(wù)器發(fā)送作為修訂的傳輸請求的一部分的其余目標(biāo)終端的網(wǎng)絡(luò)地址。即,每個(gè)第一組終端從主服務(wù)器傳遞給它的地址中選擇進(jìn)一步的兩個(gè)或三個(gè)“最佳的”終端/中繼服務(wù)器,并將修訂的傳輸請求傳送到這些終端,修訂的傳輸請求中包括其他剩余的目標(biāo)終端的詳細(xì)資料。由于是動態(tài)路由,主服務(wù)器不需要清楚地知道哪個(gè)終端傳送數(shù)據(jù),哪個(gè)終端接收數(shù)據(jù)。只要保證路由中的每個(gè)終端都是可訪問的就足夠了。如果由于某種原因一個(gè)終端的傳送失敗,則在數(shù)據(jù)庫中登記該情況,并在下一個(gè)傳輸過程中重復(fù)該失敗的傳送。
當(dāng)已經(jīng)建立起一個(gè)到特定終端的路由時(shí),數(shù)據(jù)文件的數(shù)據(jù)包就會沿確定的路由被傳輸,該傳輸是根據(jù)每個(gè)數(shù)據(jù)包的句柄/報(bào)頭中的目標(biāo)終端地址經(jīng)選定的中繼服務(wù)器而進(jìn)行的。
自動路由可在大型網(wǎng)絡(luò)區(qū)域中均勻地分配負(fù)載,減少任何特定的數(shù)據(jù)傳輸操作所需的時(shí)間窗。
圖3B示出了數(shù)據(jù)傳送的過程。
如圖3B所示,響應(yīng)于傳輸請求,各目標(biāo)終端請求來自主服務(wù)器或作為服務(wù)器(參見關(guān)于傳輸請求的描述)的上行終端的打包的數(shù)據(jù),重組文件,如果需要還要將這些數(shù)據(jù)包中繼到下行的目標(biāo)終端。當(dāng)目標(biāo)終端接收到文件的最后一個(gè)數(shù)據(jù)包時(shí),向主服務(wù)器發(fā)送確認(rèn)。
優(yōu)選為所有數(shù)據(jù)都以加密和壓縮的二進(jìn)制格式傳送。這種方式與純文本的傳送相比提高了數(shù)據(jù)的安全性,且需要較少的數(shù)據(jù)傳輸時(shí)間。由于不需要解釋接收的數(shù)據(jù),二進(jìn)制格式的數(shù)據(jù)需要相應(yīng)的應(yīng)用程序較少的“智能”。這種數(shù)據(jù)可以直接被重構(gòu)以形成適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。所有接收的數(shù)據(jù)首先被重構(gòu)為基本類型(可在數(shù)據(jù)包頭中識別),然后包含在該基本類型內(nèi)的信息指示確定的數(shù)據(jù)類型。這種結(jié)構(gòu)也提供了數(shù)據(jù)確認(rèn)每個(gè)數(shù)據(jù)類型的大小都是預(yù)定的,且所接收數(shù)據(jù)的總量必須與該數(shù)據(jù)類型的大小相對應(yīng)。
由于傳送的數(shù)據(jù)只是二進(jìn)制的,數(shù)據(jù)包又相當(dāng)小,且數(shù)據(jù)包的數(shù)量可能很大,因此,若出現(xiàn)在傳送過程中某些數(shù)據(jù)包被未經(jīng)授權(quán)的第三方所訪問的情況,也不會有確定所傳送數(shù)據(jù)的目的的風(fēng)險(xiǎn)。由于在不知道數(shù)據(jù)的結(jié)構(gòu)時(shí)很難推斷二進(jìn)制數(shù)據(jù)的內(nèi)容,因此,當(dāng)應(yīng)用公共網(wǎng)絡(luò)時(shí),提高了數(shù)據(jù)的安全性。
為了更好地理解本發(fā)明,以下將參照根據(jù)本發(fā)明的網(wǎng)絡(luò)的優(yōu)選實(shí)施例描述數(shù)據(jù)傳輸?shù)睦印H缟纤?,主服?wù)器包括網(wǎng)絡(luò)數(shù)據(jù)庫并可訪問該網(wǎng)絡(luò)數(shù)據(jù)庫,該網(wǎng)絡(luò)數(shù)據(jù)庫列出了網(wǎng)絡(luò)中按其性能(速度)排序的當(dāng)前所有激活的/注冊的終端/中繼服務(wù)器。假定將要從主服務(wù)器到一個(gè)或多個(gè)目標(biāo)終端傳送的數(shù)據(jù)包括單個(gè)的數(shù)據(jù)文件。
如上所述,傳輸請求包括該/各目標(biāo)終端的地址和其他關(guān)于被傳送數(shù)據(jù)的信息,這些信息包括數(shù)據(jù)包的數(shù)量等。
在第一個(gè)例子中,假定數(shù)據(jù)將要被傳輸?shù)絾蝹€(gè)目標(biāo)終端。主服務(wù)器直接向該目標(biāo)終端發(fā)送傳輸請求。目標(biāo)終端確認(rèn)該請求,然后請求主服務(wù)器依次發(fā)送各數(shù)據(jù)包。每個(gè)數(shù)據(jù)包都被單獨(dú)地壓縮并加密。目標(biāo)終端確認(rèn)每個(gè)數(shù)據(jù)包。如果一個(gè)特定數(shù)據(jù)包丟失,只需要重發(fā)該數(shù)據(jù)包,而不是從起點(diǎn)重新開始整個(gè)的下載。在某些情況下,應(yīng)用本發(fā)明的方法將數(shù)據(jù)傳送到單個(gè)目標(biāo)終端與傳統(tǒng)的下載方法相比可能不會快很多。但是,數(shù)據(jù)包的壓縮以及丟失的數(shù)據(jù)包不需要重新開始下載意味著單個(gè)目標(biāo)終端的下載通常會比傳統(tǒng)方法快而且更可靠,特別是對于非常大的文件來說更是如此。
在第二個(gè)例子中,參照圖4,假定數(shù)據(jù)將要被傳送到39個(gè)按性能排序的目標(biāo)終端T1-T39。假定主服務(wù)器M.S.和每個(gè)作為服務(wù)器的終端將只與預(yù)定數(shù)量的N個(gè)下行終端直接進(jìn)行下行通信,N=3。主服務(wù)器向終端T1發(fā)送第一傳輸請求,向終端T2發(fā)送第二傳輸請求,向終端T3發(fā)送第三傳輸請求,每個(gè)傳輸請求中包括全部目標(biāo)地址列表的三分之一的地址。由于終端地址是按性能排序的,為了在網(wǎng)絡(luò)中均勻地分配負(fù)載,發(fā)送到T1的請求包括每第1+N個(gè)地址(T1,4,7,10,13,16,19,22,25,28,31,34,37),發(fā)送到T2的請求包括每第2+N個(gè)地址(T2,5,8,11,14,17,20,23,26,29,32,35,38),發(fā)送到T3的請求包括每第3+N個(gè)地址(T3,6,9,12,15,18,21,24,27,30,33,36,39)。由此我們知道這種方法可以應(yīng)用于N為任何值和任何數(shù)量的終端的情況。
參考T1以及與其相關(guān)的下行地址,當(dāng)從主服務(wù)器接收到請求時(shí),T1確認(rèn)該請求并立即開始從主服務(wù)器下載數(shù)據(jù)包。T1還將修訂的請求中繼到發(fā)送給T1的目標(biāo)地址列表中的下一組N個(gè)最快的終端(T4、T7和T10)。中繼到各終端T4、T7和T10的請求包括最初發(fā)送給T1的剩余地址的N分之一(1/3),分配方式與最初在T1、T2和T3之間分配全部目標(biāo)地址列表的方式類似(即,T4接收T13、T22和T31的地址,T7接收T16、T25和T34的地址,T10接收T19、T28和T37的地址)。每個(gè)終端T4、T7和T10向主服務(wù)器確認(rèn)該請求,開始從T1下載數(shù)據(jù)包(該過程可以在從主服務(wù)器到T1的下載完成之前就開始),并向其自己的地址列表中的剩余終端傳遞進(jìn)一步的修訂請求,各剩余終端向主服務(wù)器確認(rèn)該請求并開始從其各自的中繼終端下載數(shù)據(jù)包。在該例中,這些剩余終端是最后的“葉”終端,但是我們知道這種方法可以通過任何數(shù)量的中繼階段擴(kuò)展到任何數(shù)量的終端。另外,我們還知道相同的方案可以應(yīng)用于T2和T3的目標(biāo)地址列表中。
可以理解,具體的分配方案可以不同于圖4中所示的方案。重要的是將相對較快的終端應(yīng)用于路由的開始,將相對較慢的終端應(yīng)用于路由的末尾。
如果到一個(gè)特定終端的傳輸失敗,該終端就會在目標(biāo)列表中向下移,從而使相應(yīng)分配列表子集中的下一個(gè)最快的終端在樹結(jié)構(gòu)中被“提升”。例如,在圖4中,如果從T2到T8的連接失敗,T8就會與T17互相交換。如果新的連接仍然失敗,則會嘗試其他的選擇。如果所有可用的選擇都失敗,則向主服務(wù)器報(bào)告這種情況。
可以理解,根據(jù)本發(fā)明的分配方案可以應(yīng)用不同的網(wǎng)絡(luò)結(jié)構(gòu)來實(shí)現(xiàn)。網(wǎng)絡(luò)數(shù)據(jù)庫不需要在作為分配管理系統(tǒng)(產(chǎn)生傳輸請求)的相同的服務(wù)器/計(jì)算機(jī)上,但是該網(wǎng)絡(luò)數(shù)據(jù)庫必須是可以訪問的。被傳送的數(shù)據(jù)不需要駐留在或接入到作為分配管理系統(tǒng)的相同的服務(wù)器/計(jì)算機(jī)上。發(fā)送到第一組終端(圖4中的T1、T2、T3)的傳輸請求可能包括另一服務(wù)器(“分配服務(wù)器”)的進(jìn)一步的地址,從該另一服務(wù)器可以獲得數(shù)據(jù)。該分配服務(wù)器可以具有與上述主服務(wù)器和中繼服務(wù)器基本相同的功能。
下載數(shù)據(jù)的終端向服務(wù)器確認(rèn)數(shù)據(jù)包,該服務(wù)器是終端正在從其上下載數(shù)據(jù)的服務(wù)器。當(dāng)下載完成時(shí),下載數(shù)據(jù)的終端向主服務(wù)器發(fā)送確認(rèn)。
本發(fā)明提供了具有改進(jìn)性能的數(shù)據(jù)通信系統(tǒng)、方法和裝置,其中根據(jù)需要,一些或所有的終端也充當(dāng)中繼服務(wù)器,動態(tài)路由和分配的數(shù)據(jù)傳輸可確保整個(gè)終端網(wǎng)絡(luò)內(nèi)的每個(gè)終端的最佳或接近最佳的數(shù)據(jù)傳輸速率,且即使部分網(wǎng)絡(luò)損壞,動態(tài)路由也可確保數(shù)據(jù)的發(fā)送。
在不脫離由所附權(quán)利要求書限定的本發(fā)明的范圍的情況下,可以對其進(jìn)行其他的改進(jìn)和修改。
權(quán)利要求
1.一種數(shù)據(jù)通信網(wǎng)絡(luò),包括多個(gè)終端;和主服務(wù)器,其通過至少一個(gè)目標(biāo)終端管理來自第一服務(wù)器的數(shù)據(jù)的選擇性檢索,該目標(biāo)終端選自所述的多個(gè)終端;其中,至少一些所述的終端被作為中繼服務(wù)器,用于將從所述第一服務(wù)器檢索的數(shù)據(jù)提供給至少一個(gè)目標(biāo)終端。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò),其中該主服務(wù)器直接向至少一個(gè)第一目標(biāo)終端發(fā)送傳輸請求,所述傳輸請求包括將要被檢索的數(shù)據(jù)的詳細(xì)資料以及第一服務(wù)器的地址,第一目標(biāo)終端從該第一服務(wù)器中請求數(shù)據(jù)。
3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò),其中第一目標(biāo)終端被作為中繼服務(wù)器,且該傳輸請求包括至少一個(gè)第二目標(biāo)終端的地址,從第一服務(wù)器檢索的數(shù)據(jù)將要被該第一目標(biāo)終端中繼到該至少一個(gè)第二目標(biāo)終端。
4.根據(jù)權(quán)利要求3所述的網(wǎng)絡(luò),其中作為中繼服務(wù)器的多個(gè)終端修訂從主服務(wù)器或從其他中繼服務(wù)器接收的傳輸請求,并將該修訂的傳輸請求發(fā)送到從傳輸請求中標(biāo)識的一組目標(biāo)終端中選定的目標(biāo)終端,其中,該修訂的傳輸請求將發(fā)送該修訂的傳輸請求的終端確定為服務(wù)器,該修訂的傳輸請求的接收者應(yīng)當(dāng)從該確定的服務(wù)器中請求數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò),其中該修訂的傳輸請求還包括進(jìn)一步目標(biāo)終端的地址,該修訂的傳輸請求的接收者作為這些進(jìn)一步目標(biāo)終端的中繼服務(wù)器。
6.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò),還包括網(wǎng)絡(luò)信息數(shù)據(jù)庫,其中主服務(wù)器根據(jù)存儲在所述網(wǎng)絡(luò)信息數(shù)據(jù)庫中的終端性能信息,選擇至少一個(gè)第一目標(biāo)終端作為中繼服務(wù)器,該中繼服務(wù)器用于將從所述第一服務(wù)器檢索的數(shù)據(jù)提供給至少一個(gè)第二目標(biāo)終端。
7.根據(jù)權(quán)利要求6所述的網(wǎng)絡(luò),其中主服務(wù)器直接向至少一個(gè)第一目標(biāo)終端發(fā)送傳輸請求,所述傳輸請求包括將要被檢索的數(shù)據(jù)的詳細(xì)資料以及第一服務(wù)器的地址,該第一目標(biāo)終端從該第一服務(wù)器中請求數(shù)據(jù);和多個(gè)進(jìn)一步目標(biāo)終端的地址,從第一服務(wù)器檢索的數(shù)據(jù)將要被該第一目標(biāo)終端中繼到該多個(gè)進(jìn)一步目標(biāo)終端;基于存儲在所述網(wǎng)絡(luò)信息數(shù)據(jù)庫中的終端性能信息,該傳輸請求還指示該進(jìn)一步目標(biāo)終端的相關(guān)性能。
8.根據(jù)權(quán)利要求7所述的網(wǎng)絡(luò),其中作為中繼服務(wù)器的多個(gè)終端根據(jù)所述傳輸請求中指示的該進(jìn)一步目標(biāo)終端的相關(guān)性能,選擇進(jìn)一步的下行目標(biāo)終端作為進(jìn)一步的中繼服務(wù)器。
9.根據(jù)權(quán)利要求7或8所述的網(wǎng)絡(luò),其中在所述的傳輸請求中,通過在一個(gè)有序的列表中對這些進(jìn)一步目標(biāo)終端的地址排序來指示所述進(jìn)一步的中繼服務(wù)器的相關(guān)性能。
10.根據(jù)以上任一權(quán)利要求所述的網(wǎng)絡(luò),其中第一服務(wù)器是主服務(wù)器。
11.根據(jù)權(quán)利要求1到9中任一權(quán)利要求所述的網(wǎng)絡(luò),其中第一服務(wù)器是一個(gè)被作為中繼服務(wù)器的終端。
12.根據(jù)以上任一權(quán)利要求所述的網(wǎng)絡(luò),其中每個(gè)所述的終端在上行方向直接與所述的主服務(wù)器通信。
13.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò),其中由所述目標(biāo)終端檢索的數(shù)據(jù)被分為一系列數(shù)據(jù)包以發(fā)送到所述的目標(biāo)終端,且每個(gè)所述的終端直接與所述的主服務(wù)器通信以確認(rèn)一系列路由到這些終端的最后一個(gè)數(shù)據(jù)包的接收。
14.根據(jù)以上任一權(quán)利要求所述的網(wǎng)絡(luò),其中按照路由網(wǎng)絡(luò)業(yè)務(wù)協(xié)議(routed network protocol traffic)如TCP/IP業(yè)務(wù)協(xié)議將數(shù)據(jù)路由到所述的終端。
15.根據(jù)以上任一權(quán)利要求所述的網(wǎng)絡(luò),其中所述的主服務(wù)器和每個(gè)所述的終端包括服務(wù)器端口和至少一個(gè)動態(tài)控制和管理的客戶機(jī)端口,該服務(wù)器端口用于在所述終端和所述主服務(wù)器之間直接進(jìn)行上行通信,該客戶機(jī)端口用于在主服務(wù)器和所述的終端之間或在作為中繼服務(wù)器的多個(gè)終端和其他下行終端之間進(jìn)行下行數(shù)據(jù)傳送。
16.根據(jù)以上任一權(quán)利要求所述的網(wǎng)絡(luò),其中數(shù)據(jù)以二進(jìn)制格式傳送。
17.根據(jù)以上任一權(quán)利要求所述的網(wǎng)絡(luò),其中主服務(wù)器監(jiān)視網(wǎng)絡(luò)中終端的響應(yīng)時(shí)間,其中根據(jù)這些終端相應(yīng)的響應(yīng)時(shí)間選擇作為用于特定數(shù)據(jù)傳輸?shù)闹欣^服務(wù)器的終端。
18.一種操作數(shù)據(jù)通信網(wǎng)絡(luò)的方法,這種網(wǎng)絡(luò)包括多個(gè)終端和一個(gè)主服務(wù)器,該主服務(wù)器通過至少一個(gè)目標(biāo)終端管理來自第一服務(wù)器的數(shù)據(jù)的選擇性檢索,該目標(biāo)終端選自所述的多個(gè)終端;該方法包括將至少一些所述的終端作為中繼服務(wù)器,用于將從所述第一服務(wù)器檢索的數(shù)據(jù)提供給至少一個(gè)目標(biāo)終端。
19.根據(jù)權(quán)利要求18所述的方法,包括直接向至少一個(gè)第一目標(biāo)終端發(fā)送來自該主服務(wù)器的傳輸請求,所述傳輸請求包括將要被檢索的數(shù)據(jù)的詳細(xì)資料以及第一服務(wù)器的地址,第一目標(biāo)終端從該第一服務(wù)器中請求數(shù)據(jù)。
20.根據(jù)權(quán)利要求19所述的方法,包括將第一目標(biāo)終端作為中繼服務(wù)器,并且在傳輸請求中包括至少一個(gè)第二目標(biāo)終端的地址,從第一服務(wù)器檢索的數(shù)據(jù)將要被該第一目標(biāo)終端中繼到該至少一個(gè)第二目標(biāo)終端。
21.根據(jù)權(quán)利要求20所述的方法,包括使作為中繼服務(wù)器的多個(gè)終端修訂從主服務(wù)器或從其他中繼服務(wù)器接收的傳輸請求,并將該修訂的傳輸請求發(fā)送到從該傳輸請求中確定的一組目標(biāo)終端中選定的目標(biāo)終端,在該修訂的傳輸請求中,將發(fā)送該修訂的傳輸請求的終端確定為服務(wù)器,該修訂的傳輸請求的接收者應(yīng)當(dāng)從該服務(wù)器請求數(shù)據(jù)。
22.根據(jù)權(quán)利要求21所述的方法,其中該修訂的傳輸請求還包括進(jìn)一步目標(biāo)終端的地址,該修訂的傳輸請求的接收者作為這些進(jìn)一步目標(biāo)終端的中繼服務(wù)器。
23.根據(jù)權(quán)利要求18所述的方法,其中該網(wǎng)絡(luò)還包括網(wǎng)絡(luò)信息數(shù)據(jù)庫,該方法包括使主服務(wù)器根據(jù)存儲在所述網(wǎng)絡(luò)信息數(shù)據(jù)庫中的終端性能信息,選擇至少一個(gè)第一目標(biāo)終端作為中繼服務(wù)器,該中繼服務(wù)器用于將從所述第一服務(wù)器檢索的數(shù)據(jù)提供給至少一個(gè)第二目標(biāo)終端。
24.根據(jù)權(quán)利要求23所述的方法,包括使主服務(wù)器直接向至少一個(gè)第一目標(biāo)終端發(fā)送傳輸請求,所述傳輸請求包括將要被檢索的數(shù)據(jù)的詳細(xì)資料以及第一服務(wù)器的地址,該第一目標(biāo)終端從該第一服務(wù)器中請求數(shù)據(jù);和多個(gè)進(jìn)一步目標(biāo)終端的地址,從第一服務(wù)器檢索的數(shù)據(jù)將要被該第一目標(biāo)終端中繼到該多個(gè)進(jìn)一步目標(biāo)終端;基于存儲在所述網(wǎng)絡(luò)信息數(shù)據(jù)庫中的終端性能信息,該傳輸請求還指示該進(jìn)一步目標(biāo)終端的相關(guān)性能。
25.根據(jù)權(quán)利要求24所述的方法,包括使作為中繼服務(wù)器的多個(gè)終端根據(jù)所述傳輸請求中指示的該進(jìn)一步目標(biāo)終端的相關(guān)性能,選擇進(jìn)一步的下行目標(biāo)終端作為進(jìn)一步的中繼服務(wù)器。
26.根據(jù)權(quán)利要求24或25所述的方法,包括在所述的傳輸請求中,通過在一個(gè)有序的列表中對這些進(jìn)一步目標(biāo)終端的地址排序來指示所述進(jìn)一步的中繼服務(wù)器的相關(guān)性能。
27.根據(jù)以上18到26中任一權(quán)利要求所述的方法,其中第一服務(wù)器是主服務(wù)器。
28.根據(jù)權(quán)利要求18到26中任一權(quán)利要求所述的方法,其中第一服務(wù)器是一個(gè)被作為中繼服務(wù)器的終端。
29.根據(jù)以上任一權(quán)利要求所述的方法,其中每個(gè)所述的終端在上行方向直接與所述的主服務(wù)器通信。
30.根據(jù)權(quán)利要求29所述的方法,包括將由所述目標(biāo)終端檢索的數(shù)據(jù)分為一系列數(shù)據(jù)包以發(fā)送到所述的目標(biāo)終端,其中每個(gè)所述的終端直接與所述的主服務(wù)器通信以確認(rèn)一系列路由到這些終端的最后一個(gè)數(shù)據(jù)包的接收。
31.根據(jù)權(quán)利要求18到30中任一權(quán)利要求所述的方法,包括按照路由網(wǎng)絡(luò)業(yè)務(wù)協(xié)議如TCP/IP業(yè)務(wù)協(xié)議將數(shù)據(jù)路由到所述的終端。
32.根據(jù)權(quán)利要求18到31中任一權(quán)利要求所述的方法,包括以二進(jìn)制格式傳送數(shù)據(jù)。
33.根據(jù)權(quán)利要求18到32中任一權(quán)利要求所述的方法,包括使主服務(wù)器監(jiān)視網(wǎng)絡(luò)中終端的響應(yīng)時(shí)間,并根據(jù)相應(yīng)的響應(yīng)時(shí)間選擇作為用于特定數(shù)據(jù)傳輸?shù)闹欣^服務(wù)器的終端。
34.一種在根據(jù)權(quán)利要求1到33中任一權(quán)利要求所述的網(wǎng)絡(luò)或方法中的作為主服務(wù)器的網(wǎng)絡(luò)服務(wù)器。
35.一種在根據(jù)權(quán)利要求1到33中任一權(quán)利要求所述的網(wǎng)絡(luò)或方法中作為中繼服務(wù)器的網(wǎng)絡(luò)終端。
36.一種應(yīng)用于根據(jù)權(quán)利要求34所述的網(wǎng)絡(luò)服務(wù)器中的編碼在數(shù)據(jù)載體上的計(jì)算機(jī)程序,該程序用于實(shí)現(xiàn)根據(jù)權(quán)利要求18到33中任一權(quán)利要求所述的方法。
37.一種應(yīng)用于根據(jù)權(quán)利要求35所述的網(wǎng)絡(luò)終端中的編碼在數(shù)據(jù)載體上的計(jì)算機(jī)程序,該程序用于實(shí)現(xiàn)根據(jù)權(quán)利要求18到33中任一權(quán)利要求所述的方法。
全文摘要
一種數(shù)據(jù)通信網(wǎng)絡(luò)包括多個(gè)終端和一個(gè)主服務(wù)器,該主服務(wù)器通過至少一個(gè)目標(biāo)終端管理來自第一服務(wù)器的數(shù)據(jù)的選擇性檢索。一些或所有的終端被作為中繼服務(wù)器,用于將從所述第一服務(wù)器檢索的數(shù)據(jù)提供給至少一個(gè)目標(biāo)終端。該網(wǎng)絡(luò)包括一個(gè)網(wǎng)絡(luò)信息數(shù)據(jù)庫,并且根據(jù)存儲在網(wǎng)絡(luò)信息數(shù)據(jù)庫中的終端性能信息,主服務(wù)器選擇至少一個(gè)目標(biāo)終端作為中繼服務(wù)器,該中繼服務(wù)器用于將數(shù)據(jù)提供給其他目標(biāo)終端。作為中繼服務(wù)器的終端根據(jù)進(jìn)一步目標(biāo)終端的相關(guān)性能,選擇其他的下行目標(biāo)終端作為進(jìn)一步的中繼服務(wù)器。這樣,主服務(wù)器上的負(fù)載就被分配到了所有中繼服務(wù)器中,以提供改進(jìn)的網(wǎng)絡(luò)性能。
文檔編號H04L29/06GK1557085SQ02818610
公開日2004年12月22日 申請日期2002年7月31日 優(yōu)先權(quán)日2001年8月2日
發(fā)明者勞里·瓦利亞卡, 勞里 瓦利亞卡, 利羅·卡雷斯涅米, 卡雷斯涅米 申請人:E-3解決方案有限公司