專利名稱:分組消息的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及管理分組(packet)消息的方法和設(shè)備。本發(fā)明特別應(yīng)用于經(jīng)過(guò)窄帶寬鏈路的某一類分組消息的優(yōu)化管理。
已知在許多情況下源實(shí)體(entity)經(jīng)過(guò)通訊鏈路傳送消息到接收實(shí)體。這些情況中一個(gè)公知的問(wèn)題涉及到通訊鏈路,源實(shí)體經(jīng)過(guò)該鏈路傳送它的消息,而鏈路的帶寬不足以傳遞預(yù)定給接收實(shí)體的消息量。
這個(gè)問(wèn)題的一個(gè)原始解決方案是在任何給定時(shí)間簡(jiǎn)單地發(fā)送可以發(fā)送的消息,隨后丟棄任何剩余的‘溢出’消息。盡管這個(gè)解決方案具有簡(jiǎn)單的優(yōu)點(diǎn),但不能提供對(duì)通訊鏈路的有效使用。突然激活的脈沖串可能導(dǎo)致當(dāng)溢出消息時(shí)一大批消息被丟棄。然而,在激活的脈沖串之后,通訊鏈路可能返回到只有小量負(fù)載的情況。
這里提供了一種用于緩存溢出消息的改進(jìn)的解決方案。如果在任何給定時(shí)間溢出消息不能被發(fā)送,它們將不會(huì)被簡(jiǎn)單地丟棄,而是可以被緩存,并且在激活的脈沖串之后,在通訊鏈路返回到小量負(fù)載情況時(shí)發(fā)送。然而,很清楚對(duì)消息緩存器的大小有限制,這樣可以想象緩存器本身可能溢出。同時(shí)很清楚在消息之間不存在真正的區(qū)別,所有的消息被看作同樣的重要。
在某些情況下完全可以應(yīng)用另一種方法,這里各種消息可以被認(rèn)為具有不同的重要性。當(dāng)在源實(shí)體和接收實(shí)體之間的通訊鏈路產(chǎn)生阻塞時(shí),較重要的消息可以經(jīng)過(guò)通訊鏈路傳送,而較不重要的消息可能被丟棄,或者如上面討論的被緩存。
單個(gè)源實(shí)體的這種方法的公知的例子采用了‘分層視頻編碼’的概念。然而,這種方法也只能能應(yīng)用于許多爭(zhēng)用的源實(shí)體的情況,這里源實(shí)體和它們相應(yīng)的消息根據(jù)它們的重要性來(lái)排列。
與上面情況稍微不同特點(diǎn)的問(wèn)題是存在許多都傳送相同類型消息、爭(zhēng)用同時(shí)也是相同重要的源實(shí)體。一個(gè)例子是許多源實(shí)體根據(jù)它們狀態(tài)的某一方面?zhèn)魉拖?。例如,移?dòng)實(shí)體可以根據(jù)它們的位置傳送消息。同樣地,傳感器實(shí)體可以根據(jù)環(huán)境溫度或壓力傳送消息。
一個(gè)更熟悉的例子是網(wǎng)絡(luò)計(jì)算機(jī)游戲如‘Quake’(由ID Softwareof Mesquite,TX,USA制作),這里移動(dòng)物(mobile creatue)在一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī)上運(yùn)行的三維虛擬環(huán)境中創(chuàng)建。這些移動(dòng)物源實(shí)體的位置可以適當(dāng)?shù)赝ㄖ皆谶B接到服務(wù)器的用戶計(jì)算機(jī)上宿主(host)的游戲?qū)嶓w。
典型地,對(duì)于接收這種周期性狀態(tài)更新消息的實(shí)體來(lái)說(shuō),最重要的是確保從所有的源實(shí)體接收到有規(guī)律的更新。如果許多源實(shí)體正在發(fā)送具有狀態(tài)更新的消息,通常,更重要的是接收來(lái)自所有源實(shí)體的有規(guī)律的狀態(tài)更新,而不是接收來(lái)自源實(shí)體子集的所有的狀態(tài)更新,以及即使有也很少的來(lái)自剩余源實(shí)體的狀態(tài)更新。也就是說(shuō)通常更重要的是減少源實(shí)體最大可能的狀態(tài)誤差,而不是所有源實(shí)體的平均狀態(tài)誤差。
再次使用Quake游戲的例子,如果游戲參與者的人物(character)被高度移動(dòng)的敵方移動(dòng)物包圍,對(duì)于游戲參與者的人物來(lái)說(shuō),更重要的是知道所有相關(guān)的移動(dòng)物(或者說(shuō)在短時(shí)間以前的它們)在相對(duì)較小的誤差內(nèi),而不是知道這些移動(dòng)物的子集在非常小的誤差內(nèi)(它們現(xiàn)在),剩余的(高度移動(dòng)的敵方)移動(dòng)物的位置具有相當(dāng)大的誤差(它們不久前的位置)。
很清楚簡(jiǎn)單的分層定向方案如分層視頻編碼方案不能用于這種情況。如上面表示的,在這個(gè)方案中,可以用接收(即使有也很少的)來(lái)自較不重要源實(shí)體的信息為代價(jià),從最重要的源實(shí)體請(qǐng)求所有可利用的信息,同時(shí)注意考慮中的問(wèn)題,從每個(gè)被標(biāo)稱相同重要性的所有的源實(shí)體請(qǐng)求至少一些信息。
這樣,根據(jù)本發(fā)明的一個(gè)方面,提供的分組消息源包括用于在分組消息序列的每個(gè)分組消息中包括相應(yīng)的分組消息有效負(fù)載的裝置;用于根據(jù)一種標(biāo)號(hào)的預(yù)定周期序列將優(yōu)先次序標(biāo)號(hào)與所述序列中每個(gè)連續(xù)的分組消息相聯(lián)系的裝置;所述優(yōu)先次序標(biāo)號(hào)的每一個(gè)表示若干個(gè)優(yōu)先次序級(jí)別中的一個(gè)和周期性序列中每個(gè)標(biāo)號(hào)的位置,使得該標(biāo)號(hào)和相等或較高優(yōu)先次序的最近標(biāo)號(hào)之間的連續(xù)較低優(yōu)先次序標(biāo)號(hào)的數(shù)字實(shí)際上是最大的;以及用于發(fā)送這種分組消息的裝置。
有益的是,這將確保當(dāng)許多這種分組消息源正在發(fā)送這種分組消息,并且必須競(jìng)爭(zhēng)有限的帶寬,使得根據(jù)這些分組的優(yōu)先次序標(biāo)號(hào)使分組如所需的放棄時(shí),盡可能將來(lái)自所有源的表示有規(guī)律更新的分組消息發(fā)送給接收的用戶,而不是將如現(xiàn)有技術(shù)的來(lái)自源的子集的所有更新、以及即使有也很少的來(lái)自剩余源的更新發(fā)送。
本發(fā)明還提供分組通知方法和操作分組通知系統(tǒng)方法的分組消息系統(tǒng)。
現(xiàn)在根據(jù)附圖并借助于例子,描述本發(fā)明的幾個(gè)實(shí)施例,其中
圖1說(shuō)明本發(fā)明第一個(gè)實(shí)施例;圖2說(shuō)明一個(gè)通用計(jì)算機(jī);圖3說(shuō)明分組消息結(jié)構(gòu);圖4A和圖4B說(shuō)明第一個(gè)程序流程圖;圖5說(shuō)明根據(jù)本發(fā)明第二個(gè)實(shí)施例的第二個(gè)程序流程圖;圖6說(shuō)明根據(jù)本發(fā)明第二個(gè)實(shí)施例的第三個(gè)程序流程圖;圖7說(shuō)明示出第二個(gè)實(shí)施例的性能結(jié)果的第一個(gè)圖形;圖8說(shuō)明示出第二個(gè)實(shí)施例的另一個(gè)性能結(jié)果的第二個(gè)圖形;圖9A和圖9B說(shuō)明根據(jù)本發(fā)明第三個(gè)實(shí)施例的第四個(gè)程序流程圖;圖10說(shuō)明示出第三個(gè)實(shí)施例的性能結(jié)果的第三個(gè)圖形;
圖11說(shuō)明示出第三個(gè)實(shí)施例的另一個(gè)性能結(jié)果的第四個(gè)圖形;以及圖12說(shuō)明本發(fā)明的第四個(gè)實(shí)施例。
現(xiàn)在根據(jù)圖1、圖2、圖3和圖4描述本發(fā)明第一個(gè)實(shí)施例。圖1以示意圖的形式說(shuō)明本發(fā)明第一個(gè)實(shí)施例的結(jié)構(gòu)。圖4說(shuō)明第一個(gè)實(shí)施例功能的程序流程圖。
第一組源實(shí)體的每一個(gè)根據(jù)它當(dāng)前的狀態(tài)創(chuàng)建和發(fā)送包含信息的分組消息,其中每個(gè)源實(shí)體具有相關(guān)狀態(tài)。下面討論消息發(fā)送的目的地實(shí)體。源實(shí)體可以采用許多形式;這種形式的例子是在計(jì)算機(jī)的軟件處理內(nèi)宿主的實(shí)體。
圖1通過(guò)實(shí)例說(shuō)明在第一個(gè)服務(wù)器計(jì)算機(jī)104的第一個(gè)軟件處理102內(nèi)宿主的一組源實(shí)體100。
這個(gè)計(jì)算機(jī)104如圖2說(shuō)明,它典型地具有至少一個(gè)中央處理器(CPU)202、只讀存儲(chǔ)器(ROM)204、隨機(jī)存取存儲(chǔ)器(RAM)206、如硬盤208的存儲(chǔ)裝置、用于從存儲(chǔ)介質(zhì)讀出和寫入的裝置如從軟盤讀出和寫入的軟盤驅(qū)動(dòng)器210、以及用于連接到另一個(gè)裝置或通訊網(wǎng)絡(luò)的輸入和輸出端口212。
計(jì)算機(jī)104可以利用任何適當(dāng)?shù)牟僮飨到y(tǒng),公知的例子如Microsoft WindowsTMNT、Linux或其他許多Unix版本的任何一個(gè)。應(yīng)用程序能夠用許多公知的適合于寫應(yīng)用程序的語(yǔ)言來(lái)寫,其中一個(gè)公知的例子是C++。這個(gè)操作系統(tǒng)和應(yīng)用程序可以加載到計(jì)算機(jī)104的存儲(chǔ)裝置208。
根據(jù)本發(fā)明實(shí)施例公開(kāi)的功能各方面可以用計(jì)算機(jī)104執(zhí)行的軟件應(yīng)用程序來(lái)實(shí)現(xiàn)。然后這個(gè)軟件應(yīng)用程序可以采用任何適當(dāng)?shù)挠?jì)算機(jī)可讀存儲(chǔ)介質(zhì)形式存儲(chǔ)在例如軟盤214中,經(jīng)過(guò)軟盤驅(qū)動(dòng)器210加載到計(jì)算機(jī)104用于執(zhí)行。公知的另一種情況是將軟件應(yīng)用程序存儲(chǔ)在CD-ROM(未示出)上,經(jīng)過(guò)CD-ROM驅(qū)動(dòng)器(未示出)加載到計(jì)算機(jī)104用于執(zhí)行。另一種公知的情況是經(jīng)過(guò)適當(dāng)?shù)木W(wǎng)絡(luò)(未示出)將應(yīng)用程序下載用于計(jì)算機(jī)104的執(zhí)行。
在這個(gè)實(shí)施例中,計(jì)算機(jī)104具有一個(gè)或多個(gè)加載到它的軟件應(yīng)用程序,當(dāng)這些應(yīng)用程序執(zhí)行時(shí)使計(jì)算機(jī)104如源實(shí)體的主機(jī)一樣工作。
通常,存在多個(gè)這樣的服務(wù)器計(jì)算機(jī)。因此,說(shuō)明宿主在第二個(gè)服務(wù)器計(jì)算機(jī)104’上的第二個(gè)軟件處理102’中的第二組源實(shí)體100’。
如上面Quake的例子,例如,源實(shí)體可以是在三維虛擬環(huán)境中的移動(dòng)物,如在一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī)上作為處理運(yùn)行的虛擬環(huán)境的不同部分。借助于簡(jiǎn)單的例子,虛擬環(huán)境中一個(gè)地點(diǎn)的一組移動(dòng)物可以通過(guò)在服務(wù)器計(jì)算機(jī)上處理運(yùn)行的源實(shí)體表示,并且虛擬環(huán)境的另一個(gè)地點(diǎn)的另一組移動(dòng)物可以通過(guò)在第二個(gè)服務(wù)器計(jì)算機(jī)上另一個(gè)處理運(yùn)行的源實(shí)體表示。
如上所述,每個(gè)源實(shí)體100具有相關(guān)的狀態(tài);在這個(gè)例子中,每個(gè)人物將至少具有虛擬環(huán)境內(nèi)一個(gè)相關(guān)的位置。這樣,在三維虛擬環(huán)境移動(dòng)的每個(gè)人物可以根據(jù)它們?cè)谌S虛擬環(huán)境中相應(yīng)的當(dāng)前位置創(chuàng)建和發(fā)送分組消息。
圖3說(shuō)明這樣一個(gè)分組消息結(jié)構(gòu)的例子。在常規(guī)情況下分組消息300具有標(biāo)題部分302和有效負(fù)載部分304。應(yīng)該注意不是分組標(biāo)題302中所有字段同時(shí)被本發(fā)明所有的實(shí)施例所要求。
分組標(biāo)題302的第一個(gè)字段306包含源實(shí)體標(biāo)識(shí)的表示。分組標(biāo)題302的第二個(gè)字段308包含預(yù)定的目的地實(shí)體標(biāo)識(shí)的表示。由于第一個(gè)實(shí)施例僅有一個(gè)目的地,所以不需要設(shè)置這個(gè)字段。分組標(biāo)題302的第三個(gè)字段310包含在給定優(yōu)先次序范圍上分配的優(yōu)先次序的表示。
根據(jù)本發(fā)明,識(shí)別優(yōu)先次序設(shè)置的第三個(gè)字段310將如下設(shè)置。每個(gè)單獨(dú)的分組消息被分配一個(gè)優(yōu)先次序標(biāo)記,每個(gè)優(yōu)先次序標(biāo)記表示若干個(gè)優(yōu)先次序等級(jí)中的一個(gè)。根據(jù)預(yù)定的周期標(biāo)記序列,連續(xù)的分組被分配這些優(yōu)先次序標(biāo)記中的一個(gè),它們被認(rèn)為由每個(gè)分組消息源產(chǎn)生的序列中。關(guān)鍵的是,這個(gè)周期序列中每個(gè)標(biāo)記的位置使得它和相等或較高優(yōu)先次序標(biāo)記之間連續(xù)的較低優(yōu)先次序標(biāo)記的數(shù)字實(shí)際上是最大的。
周期性優(yōu)先次序這樣變化,使得如果分組根據(jù)優(yōu)先次序被丟棄,在理論(notional)序列中剩余的分組將盡可能均勻間隔地留下。應(yīng)該注意在這方面兩個(gè)功率(power)的序列長(zhǎng)度是有益的。
對(duì)于具有0(最低優(yōu)先次序)到n(最高優(yōu)先次序)的優(yōu)先次序范圍并且n=7的簡(jiǎn)單例子來(lái)說(shuō),在優(yōu)先次序上相應(yīng)適當(dāng)?shù)闹芷谧兓欠謩e具有設(shè)置為0、7、2、4、1、6、3、5的優(yōu)先次序的八個(gè)消息(相等的時(shí)間間距)的序列。0、7、2、4、1、6、3、5序列將確保當(dāng)逐個(gè)低優(yōu)先次序必須放棄時(shí),剩余分組將盡可能均勻地間隔。借助于例子,如果由于兩個(gè)鏈路容量的業(yè)務(wù)負(fù)荷使得必須從這八個(gè)消息的序列放棄一半的分組(這樣變?yōu)閇]、7、2、4、1、6、3、5,然后是[]、7、2、4、[]、6、3、5,然后是[]、7、[]、4、[]、6、3、5,最后是[]、7、[]、4、[]、6、[]、5),可以看出剩余分組在時(shí)間上仍然具有相等的間隔,并且將簡(jiǎn)潔地每?jī)蓚€(gè)時(shí)間周期提供更新,而不是如最初序列的每個(gè)時(shí)間周期提供更新。
分組標(biāo)題302的第四個(gè)字段312包含所謂的激活時(shí)間(time-to-live)的表示。激活時(shí)間將表示為一個(gè)給定的時(shí)間周期、范圍,例如,達(dá)到兩三百毫秒,而不是常常如分組網(wǎng)絡(luò)的情況表示為給定鏈路跳躍的數(shù)量。在第一個(gè)實(shí)施例中這個(gè)字段沒(méi)有設(shè)置。
分組標(biāo)題302的第五個(gè)字段314表示有效負(fù)載類型。有效負(fù)載類型例如可能是用于位置表示。在第一個(gè)實(shí)施例中這個(gè)字段沒(méi)有設(shè)置。
分組有效負(fù)載部分304傳遞數(shù)據(jù)。在這個(gè)例子中典型的有效負(fù)載將是位置表示。
參照?qǐng)D4A,在第一個(gè)步驟400,源實(shí)體創(chuàng)建并且發(fā)送這個(gè)分組消息流,在分組有效負(fù)載中傳遞位置更新,并且周期地改變分組標(biāo)題中第四個(gè)字段的優(yōu)先次序。
返回到圖1,第一個(gè)和第二個(gè)服務(wù)器計(jì)算機(jī)104、104’將分別具有第一個(gè)和第二個(gè)服務(wù)器計(jì)算機(jī)輸出端口106、106’。這些相應(yīng)的第一個(gè)和第二個(gè)服務(wù)器計(jì)算機(jī)輸出端口106、106’通過(guò)相應(yīng)的第一個(gè)和第二個(gè)高帶寬鏈路108、108’連接到通訊鏈路接口、鏈路管理計(jì)算機(jī)110。這樣的高帶寬鏈路108、108’可以典型地采用例如具有每秒100Mbit的相關(guān)帶寬的快速以太網(wǎng)的形式。
鏈路管理計(jì)算機(jī)110可以采用如圖2說(shuō)明的通用計(jì)算機(jī)的形式。鏈路管理計(jì)算機(jī)110可以利用任何適當(dāng)?shù)牟僮飨到y(tǒng),公知的例子是Mocrosoft WindowsTMNT、Linux或Unix的其他許多版本中任何一種。應(yīng)用程序可以用寫應(yīng)用程序的許多公知的適當(dāng)語(yǔ)言來(lái)寫,其中一個(gè)公知的例子是C++。這個(gè)操作系統(tǒng)和應(yīng)用程序可以加載到計(jì)算機(jī)110的存儲(chǔ)裝置208中。
根據(jù)本發(fā)明實(shí)施例公開(kāi)的功能可以采用如鏈路管理計(jì)算機(jī)110執(zhí)行的軟件應(yīng)用程序來(lái)實(shí)現(xiàn)。這個(gè)軟件應(yīng)用程序可以采用任何適當(dāng)?shù)挠?jì)算機(jī)可讀存儲(chǔ)介質(zhì)形式存儲(chǔ),例如在軟盤214上,經(jīng)過(guò)軟盤驅(qū)動(dòng)器210加載到計(jì)算機(jī)110用于執(zhí)行。公知的另一種方法是將軟件應(yīng)用程序存儲(chǔ)在CD-ROM(未示出),經(jīng)過(guò)CD-ROM驅(qū)動(dòng)器(未示出)加載到計(jì)算機(jī)110用于執(zhí)行。另一種公知的方法是經(jīng)過(guò)適當(dāng)?shù)木W(wǎng)絡(luò)(未示出)下載軟件應(yīng)用程序用于計(jì)算機(jī)110的執(zhí)行。
鏈路管理計(jì)算機(jī)110至少具有一個(gè)輸入端口112,鏈路管理計(jì)算機(jī)經(jīng)過(guò)該接口接收源實(shí)體發(fā)送的分組消息。在這個(gè)例子中,對(duì)于兩個(gè)服務(wù)器計(jì)算機(jī)104、104’,說(shuō)明了第一個(gè)和第二個(gè)鏈路管理計(jì)算機(jī)輸入端口112、112’。應(yīng)該理解第一個(gè)和第二個(gè)鏈路管理計(jì)算機(jī)輸入端口112、112’可以是分開(kāi)的物理端口或者在軟件級(jí)別上分開(kāi)的共享的物理端口。
在第二個(gè)步驟402,由宿主在第一個(gè)和第二個(gè)服務(wù)器計(jì)算機(jī)104、104’的源實(shí)體發(fā)送的分組消息經(jīng)過(guò)相應(yīng)的第一個(gè)和第二個(gè)服務(wù)器計(jì)算機(jī)輸出端口106、106’、第一個(gè)和第二個(gè)快速鏈路108、108’以及第一個(gè)和第二個(gè)鏈路管理計(jì)算機(jī)輸出端口112、112’發(fā)送到鏈路管理計(jì)算機(jī)110。相應(yīng)的服務(wù)器計(jì)算機(jī)和鏈路管理計(jì)算機(jī)之間的鏈路具有足夠的帶寬,源實(shí)體發(fā)送的分組消息能夠以與另一個(gè)下行延遲相比不明顯的延遲傳遞到鏈路管理計(jì)算機(jī)。
在這個(gè)實(shí)施例中,鏈路管理計(jì)算機(jī)110具有一個(gè)或多個(gè)加載的軟件應(yīng)用程序,在執(zhí)行時(shí),它使得鏈路管理計(jì)算機(jī)運(yùn)行鏈路管理器處理114。通過(guò)執(zhí)行軟件應(yīng)用程序?qū)?shí)現(xiàn)程序流程圖的適當(dāng)步驟。
在第三個(gè)步驟404,鏈路管理器處理114接收到達(dá)第一個(gè)和第二個(gè)鏈路管理計(jì)算機(jī)輸入端口112、112’的分組消息。在第四個(gè)步驟406,鏈路管理器處理114從接收的分組的分組標(biāo)題302的第四個(gè)字段讀出優(yōu)先次序設(shè)置。
在第五個(gè)步驟408,鏈路管理器處理114將到達(dá)第一個(gè)和第二個(gè)鏈路管理計(jì)算機(jī)輸入端口112、112’的分組消息按照優(yōu)先次序排序分類為簡(jiǎn)單分類的線性分組隊(duì)列116。分組消息可以例如分類到具有相同優(yōu)先次序設(shè)置的分組消息組后面的隊(duì)列116。應(yīng)該理解借助于另一種方法,具有相同優(yōu)先次序設(shè)置的簡(jiǎn)單隊(duì)列116的部分可以對(duì)于每個(gè)優(yōu)先次序設(shè)置,在作為分開(kāi)隊(duì)列的優(yōu)化實(shí)現(xiàn)中容易地排隊(duì)。
應(yīng)該理解在另一個(gè)步驟(未示出)中,可以檢查分組隊(duì)列116的長(zhǎng)度,并且當(dāng)增加的隊(duì)列116的長(zhǎng)度大于預(yù)定限制的隊(duì)列長(zhǎng)度時(shí),被存儲(chǔ)的分組消息可以丟棄。
鏈路管理計(jì)算機(jī)110還至少具有一個(gè)輸出端口118。
鏈路管理計(jì)算機(jī)110的輸出端口118通過(guò)公知的服務(wù)質(zhì)量的鏈路120和特別公知的窄帶寬連接到例如接收實(shí)體主機(jī)124的輸入端口122。當(dāng)鏈路管理器處理114發(fā)送在優(yōu)先次序隊(duì)列116最前面的分組消息到鏈路管理計(jì)算機(jī)輸出端口118時(shí),該消息經(jīng)過(guò)通訊鏈路120傳送到接收實(shí)體主機(jī)124,然后該主機(jī)將消息傳遞到接收實(shí)體(未示出)。
參照?qǐng)D4B,在步驟410,鏈路管理器將測(cè)試是否在窄帶寬鏈路上有多余的容量來(lái)發(fā)送在隊(duì)列116最前面的分組消息。如果是這樣,在另一個(gè)步驟412,鏈路管理器處理114將發(fā)送在優(yōu)先次序隊(duì)列116最前面的分組消息到鏈路管理計(jì)算機(jī)輸出端口118并且輸出到鏈路120。如果不是這樣,則步驟410將重復(fù)。通過(guò)周期的優(yōu)先次序方案,本發(fā)明的鏈路管理器可以有效地進(jìn)行分組消息的智能選擇;鏈路過(guò)載可能簡(jiǎn)單地引起隨機(jī)分組消息丟失的結(jié)果,丟失了本發(fā)明的優(yōu)點(diǎn)。
應(yīng)該理解在隊(duì)列116最前面的分組消息的發(fā)送將涉及到循環(huán)處理。鏈路管理器處理114在試圖發(fā)送隊(duì)列分組消息下一個(gè)最前面的消息之前必須等待隊(duì)列分組消息當(dāng)前最前面的消息已經(jīng)被發(fā)送為止。例如,通過(guò)鏈路管理器處理,確定在隊(duì)列116最前面的分組消息大小可以獲得這一點(diǎn),它隨后可以利用對(duì)鏈路120帶寬的了解來(lái)計(jì)算何時(shí)將開(kāi)始發(fā)送隊(duì)列分組消息最前面的消息。借助于另一種方法,用于發(fā)送的分組消息將從緩沖器發(fā)送,直到先前的分組消息已經(jīng)清除了緩沖器為止下一個(gè)分組消息才能寫入。
典型的窄帶寬鏈路120可以例如是經(jīng)過(guò)公共交換電話網(wǎng)(PSTN)連接的每秒33.6kbit調(diào)制解調(diào)器鏈路,或者是每秒128kbit的第二綜合業(yè)務(wù)數(shù)字網(wǎng)(ISDN)連接。
借助于例子,接收實(shí)體主機(jī)124可以運(yùn)行一個(gè)處理,該處理宿主一個(gè)預(yù)定接收源實(shí)體發(fā)送的消息的實(shí)體。然而,應(yīng)該理解代替接收實(shí)體主機(jī),接收實(shí)體可以替代地采用各種形式,甚至不必采用可計(jì)算的形式,例如采用簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)。
只要在任何給定時(shí)間由鏈路管理計(jì)算機(jī)110接收的分組消息業(yè)務(wù)量總的帶寬小于通訊鏈路120的已知窄帶寬,放置在鏈路管理器處理隊(duì)列116的所有分組消息將無(wú)排隊(duì)延遲地在鏈路120上發(fā)送。接收實(shí)體將以最小可能的延遲(它僅由網(wǎng)絡(luò)延遲引起)接收從所有源實(shí)體發(fā)送的所有分組消息。
然而,可能的情況是越來(lái)越多的源實(shí)體100、100’的變?yōu)榧せ?,?dǎo)致同數(shù)量地增加消息流。另一方面,源實(shí)體100、100’它們自己可以變得更加活躍,導(dǎo)致需要對(duì)于狀態(tài)更新消息減少周期。在任何一種情況下,隨著分組消息業(yè)務(wù)量的增加,當(dāng)輸入分組消息業(yè)務(wù)量總的帶寬超過(guò)通訊鏈路120的帶寬時(shí)產(chǎn)生一個(gè)關(guān)鍵點(diǎn)。在這一點(diǎn)它將不再可能同時(shí)發(fā)送預(yù)定給接收實(shí)體的所有分組消息。
現(xiàn)在分組消息將開(kāi)始由鏈路管理器處理114排隊(duì)、如上面表示的根據(jù)優(yōu)先次序排序。當(dāng)新的分組消息到達(dá)鏈路管理計(jì)算機(jī)110時(shí),它們將被分類到適用于在它們分組標(biāo)題302中攜帶優(yōu)先次序設(shè)置的隊(duì)列部分。
再次對(duì)于源實(shí)體100、100’發(fā)出的分組消息序列的周期性優(yōu)先次序設(shè)置進(jìn)行討論。上面提供了分組選擇管理的例子,用于在以兩倍鏈路容量運(yùn)行業(yè)務(wù)負(fù)荷的鏈路上發(fā)送。如果由于兩個(gè)鏈路容量的業(yè)務(wù)負(fù)荷使得必須從具有0、7、2、4、1、6、3、5的周期性優(yōu)先次序序列的八個(gè)消息序列中放棄一半的分組,(這樣變?yōu)閇]、7、2、4、1、6、3、5,然后是[]、7、2、4、[]、6、3、5,然后是[]、7、[]、4、[]、6、3、5,最后是[]、7、[]、4、[]、6、[]、5),可以看出剩余分組仍然在時(shí)間上具有相等的間隔,并且將簡(jiǎn)潔地每?jī)蓚€(gè)時(shí)間周期提供更新,而不是如最初序列的每個(gè)時(shí)間周期提供更新。
這樣當(dāng)鏈接管理器處理114開(kāi)始根據(jù)優(yōu)先次序排隊(duì)分組消息時(shí),它將在發(fā)送較高優(yōu)先次序消息的同時(shí)采用類似于上面給出例子的周期性排序有效地開(kāi)始放棄(或更確切地說(shuō)排隊(duì))較低的優(yōu)先次序消息。這樣,對(duì)于越來(lái)越阻塞的鏈路120,根據(jù)本發(fā)明實(shí)施例的鏈路管理計(jì)算機(jī)110將能夠繼續(xù)發(fā)送來(lái)自所有源實(shí)體100、100’的有規(guī)律的狀態(tài)更新。自然地,剩余的有規(guī)律的這些更新將變得越來(lái)越少地增加窄帶寬鏈路120阻塞,但是這種逐漸降低次數(shù)表示了降級(jí)服務(wù)的適度方式。
下面根據(jù)圖10和圖11說(shuō)明的第三個(gè)實(shí)施例性能結(jié)果的比較來(lái)討論對(duì)于第一個(gè)實(shí)施例的模擬性能結(jié)果。
現(xiàn)在根據(jù)圖1、圖2、圖3、圖5、圖6、圖7和圖8討論本發(fā)明第二個(gè)實(shí)施例。第二個(gè)實(shí)施例與第一個(gè)實(shí)施例的不同僅僅在于源實(shí)體100、100’發(fā)送的分組消息300的結(jié)構(gòu)和鏈路管理器處理114的功能,所以應(yīng)該再次適當(dāng)?shù)貐⒄請(qǐng)D1、圖2和圖3。圖5和圖6說(shuō)明根據(jù)本發(fā)明第二個(gè)實(shí)施例的功能各方面的程序流程圖。同時(shí)通過(guò)執(zhí)行運(yùn)行在鏈路管理計(jì)算機(jī)110上的軟件應(yīng)用程序,將實(shí)現(xiàn)程序流程圖的適當(dāng)步驟。
根據(jù)第二個(gè)實(shí)施例并且特別參照?qǐng)D1和圖2,源實(shí)體100、100’傳送具有下面結(jié)構(gòu)的分組消息300。分組標(biāo)題302的第一個(gè)字段306將設(shè)置為發(fā)送源實(shí)體的標(biāo)識(shí)。識(shí)別目的地實(shí)體的分組標(biāo)題302的第二個(gè)字段308不需要設(shè)置,因?yàn)樵谶@個(gè)例子中僅存在一個(gè)目的地實(shí)體。
識(shí)別優(yōu)先次序設(shè)置的第三個(gè)字段310將如第一個(gè)實(shí)施例進(jìn)行設(shè)置。每個(gè)單獨(dú)的分組消息根據(jù)例如0(最低優(yōu)先次序)到n(最高優(yōu)先次序)的范圍被分配一個(gè)優(yōu)先次序設(shè)置。同樣關(guān)鍵的是n+1個(gè)這種消息的序列從源實(shí)體發(fā)出,不具有上述分配給源實(shí)體固定的優(yōu)先次序,而是具有周期性改變的優(yōu)先次序。周期性優(yōu)先次序改變使得如果根據(jù)優(yōu)先次序分組被丟棄,序列中剩余的分組將盡可能均勻間隔地留下。
再次,對(duì)于n=7的簡(jiǎn)單例子,在優(yōu)先次序中相應(yīng)的適當(dāng)周期變化是分別具有設(shè)置為0、7、2、4、1、6、3、5的優(yōu)先次序的八個(gè)消息的序列。如上所述,0、7、2、4、1、6、3、5序列將確保逐個(gè)低優(yōu)先次序消息被丟棄,剩余的分組消息將是盡可能均勻的間隔。
在第二個(gè)實(shí)施例中,第四個(gè)字段312將設(shè)置為激活時(shí)間的周期。應(yīng)該理解不是所有的源實(shí)體需要具有相同的分組消息發(fā)送周期,改變激活時(shí)間的表示允許每個(gè)源實(shí)體設(shè)置它們自己的周期。例如,由于它的特性,給定的源實(shí)體可能僅需要每20個(gè)標(biāo)稱時(shí)間周期發(fā)送更新,其中激活時(shí)間的周期可以設(shè)置在20個(gè)標(biāo)稱時(shí)間周期。在20個(gè)這樣的標(biāo)稱時(shí)間周期之后,給定的源實(shí)體將發(fā)出新的更新,所以較舊的更新可以丟棄。
在第二個(gè)實(shí)施例中,不設(shè)置分組標(biāo)題302的第五個(gè)字段314,假定為分組有效負(fù)載類型的表示。
如上所述,具有周期性優(yōu)先次序設(shè)置的這種分組消息流從源實(shí)體100、100’發(fā)出。然后這些分組消息經(jīng)過(guò)相應(yīng)的第一和第二服務(wù)器計(jì)算機(jī)輸出端口106、106’以及第一和第二鏈路108、108’傳遞到鏈路管理計(jì)算機(jī)110。
參照?qǐng)D5,在第一個(gè)步驟500中,在第一和第二鏈路管理計(jì)算機(jī)輸入端口112、112’接收到這些分組消息之后,它們被傳遞到鏈路管理器處理114。
如第一個(gè)實(shí)施例,鏈路管理器處理114將根據(jù)優(yōu)先次序排序再次保持一個(gè)簡(jiǎn)單的分組消息隊(duì)列116。
鏈路管理處理器114備有一個(gè)時(shí)鐘(未示出),保持例如毫秒級(jí)周期測(cè)量的本地時(shí)間。在第二個(gè)步驟502,鏈路管理器處理114讀出在相應(yīng)的分組標(biāo)題302的第四個(gè)字段312的激活時(shí)間設(shè)置,在第三個(gè)步驟504,將本地時(shí)鐘時(shí)間加上源實(shí)體分配設(shè)置的激活時(shí)間,以創(chuàng)建調(diào)節(jié)的激活前的時(shí)間。在第四個(gè)步驟506,這個(gè)調(diào)節(jié)的激活時(shí)間隨后寫回到分組標(biāo)題302的第四個(gè)字段312。
應(yīng)該理解借助于另一種方法,分組消息和相關(guān)的到達(dá)時(shí)間可以替代地一起存儲(chǔ)在隊(duì)列116中。它的優(yōu)點(diǎn)是不用重寫源實(shí)體設(shè)置激活時(shí)間,但缺點(diǎn)是要求匹配的較大隊(duì)列存儲(chǔ)器。
應(yīng)該理解只有給定分組消息受到的明顯的延遲是由在隊(duì)列中保持引起的。借助于上面使用的例子,如果給定的分組消息被具有20個(gè)標(biāo)稱單位的激活時(shí)間表示的鏈路管理器處理114接收,并且鏈路管理器處理本地時(shí)間是t=100個(gè)標(biāo)稱單位,則寫入分組標(biāo)題第四個(gè)字段的調(diào)節(jié)的激活時(shí)間將是120個(gè)標(biāo)稱單位。由于下面討論的原因,如果這個(gè)分組消息被排隊(duì)大于20個(gè)標(biāo)稱單位的持續(xù)時(shí)間,由于這個(gè)時(shí)間,而鏈路管理器處理本地時(shí)間是t=120個(gè)標(biāo)稱單位,則分組消息將是超時(shí)的。源實(shí)體已經(jīng)發(fā)送并且鏈路管理器處理116應(yīng)該在這個(gè)時(shí)間已經(jīng)接收到另一個(gè)分組消息。
在第五個(gè)步驟506,鏈路管理器處理114還讀出相應(yīng)的分組標(biāo)題302的第三個(gè)字段310中每個(gè)優(yōu)先次序設(shè)置,然后在第六個(gè)步驟510,將分組消息分類為根據(jù)優(yōu)先次序設(shè)置排序的簡(jiǎn)單的隊(duì)列116。同時(shí),例如分組消息可以分類到具有相同優(yōu)先次序設(shè)置的分組消息組后面的隊(duì)列116。同樣如上所述,借助于另一種方法,具有相同優(yōu)先次序設(shè)置的簡(jiǎn)單隊(duì)列116部分可以分開(kāi)排隊(duì)。
圖6說(shuō)明的處理可以理解為與圖5說(shuō)明的并行執(zhí)行。
參照?qǐng)D6,在第一個(gè)步驟600,當(dāng)每個(gè)新的分組消息上移到隊(duì)列116的最前面用于發(fā)送到鏈路120時(shí),鏈路管理器處理114將再次從隊(duì)列116最前面的分組消息的分組標(biāo)題302的第四個(gè)字段312讀出調(diào)節(jié)的激活時(shí)間的設(shè)置。
在第二個(gè)步驟602,鏈路管理器114將這個(gè)調(diào)節(jié)的激活時(shí)間與鏈路管理器處理本地時(shí)間相比較。在第三個(gè)步驟604,如果鏈路管理器處理本地時(shí)間已經(jīng)傳遞了分組消息調(diào)節(jié)的激活時(shí)間,則該分組消息必須被認(rèn)為是超時(shí)的,并且將被鏈路管理器處理114丟棄。然而,如果鏈路管理器處理本地時(shí)間沒(méi)有傳遞分組消息的調(diào)節(jié)的激活時(shí)間,則分組消息的排隊(duì)時(shí)間將不會(huì)比它分配的激活時(shí)間更長(zhǎng),在第四個(gè)步驟606,它將經(jīng)過(guò)鏈路管理計(jì)算機(jī)118的輸出端口發(fā)送到鏈路以及到用戶120的接收實(shí)體。如第一個(gè)實(shí)施例,這時(shí)鏈路管理器處理114將再次測(cè)試鏈路120的容量以發(fā)送在優(yōu)先次序隊(duì)列116最前面的分組消息。
應(yīng)該理解對(duì)于在窄帶寬鏈路上可利用帶寬的優(yōu)化使用來(lái)說(shuō),可以進(jìn)行標(biāo)題壓縮的步驟(未示出)。因?yàn)榉纸M消息經(jīng)過(guò)窄帶寬鏈路120發(fā)出,標(biāo)題302部分不再需要,例如,優(yōu)先次序設(shè)置可以被去掉。
如第一個(gè)實(shí)施例,只要由鏈路管理計(jì)算機(jī)110接收的分組消息的瞬時(shí)總帶寬小于已知的通訊鏈路120的(低)帶寬,放置在鏈路管理器處理隊(duì)列116的所有分組消息將沒(méi)有排隊(duì)延遲地在鏈路上發(fā)送。接收實(shí)體124將接收從所有源實(shí)體100、100’發(fā)送的分組消息。然而,同樣如第一個(gè)實(shí)施例,隨著分組消息業(yè)務(wù)量的增加,當(dāng)輸入的分組消息業(yè)務(wù)量總的帶寬超過(guò)通訊鏈路120的帶寬時(shí)產(chǎn)生一個(gè)關(guān)鍵點(diǎn)。在該點(diǎn)上將不再可能同時(shí)發(fā)送所有預(yù)定給接收實(shí)體的分組消息。
當(dāng)總的業(yè)務(wù)量帶寬超過(guò)窄帶寬鏈路容量時(shí),根據(jù)周期性的優(yōu)先次序設(shè)置能夠提供優(yōu)化和適度的降級(jí)服務(wù),在這方面本發(fā)明第二個(gè)實(shí)施例將提供本發(fā)明第一個(gè)實(shí)施例所有的優(yōu)點(diǎn)。然而,如現(xiàn)在將解釋的,本發(fā)明第二個(gè)實(shí)施例將提供優(yōu)于第一個(gè)實(shí)施例性能的另外的優(yōu)點(diǎn)。
對(duì)于每個(gè)消息的激活時(shí)間的分配使得避免下面對(duì)消息的錯(cuò)誤的重新排序。
第一個(gè)位置分組消息采用優(yōu)先次序設(shè)置為0,在標(biāo)稱t=0時(shí)由給定源實(shí)體發(fā)送。第二個(gè)分組消息采用優(yōu)先次序設(shè)置為7,在標(biāo)稱t=1時(shí)發(fā)送。第三個(gè)分組消息采用優(yōu)先次序?yàn)?,在標(biāo)稱t=2時(shí)發(fā)送。如果由于窄帶寬鏈路120上阻塞的程度,當(dāng)接收第一個(gè)分組消息時(shí)具有最低優(yōu)先次序設(shè)置為0的第一個(gè)分組消息不能由鏈路管理器處理114通過(guò)鏈路發(fā)送,它將被排隊(duì)。一旦接收到分別具有7和2的優(yōu)先次序設(shè)置的第二個(gè)和第三個(gè)分組消息,鏈路管理器處理114經(jīng)過(guò)窄帶寬鏈路120直接發(fā)送第二個(gè)和第三個(gè)分組消息到接收實(shí)體主機(jī)。如果窄帶寬鏈路120上的阻塞隨后減緩,并且如果第一個(gè)分組消息不具有與它相關(guān)的限定的激活時(shí)間,則鏈路管理器處理114經(jīng)過(guò)窄帶寬鏈路將第一個(gè)消息發(fā)送到接收實(shí)體主機(jī)。
鏈路管理器處理114這樣處理之后,其結(jié)果是在用戶已經(jīng)接收第二個(gè)和第三個(gè)消息傳遞的位置更新之前,由用戶接收的最后的位置更新消息實(shí)際上已經(jīng)分別開(kāi)始一個(gè)和兩個(gè)時(shí)間周期。代之以,對(duì)于消息的激活時(shí)間設(shè)置將使得消息在可以經(jīng)過(guò)窄帶寬鏈路120發(fā)送之前被從鏈路管理器處理隊(duì)列116丟棄。
如上所述,應(yīng)該理解分組消息在傳輸之前經(jīng)受的最長(zhǎng)的延遲,實(shí)際上只有明顯的延遲來(lái)自于排隊(duì)。如上面解釋的,除了防止分組消息被錯(cuò)誤的重新排序的優(yōu)點(diǎn)以外,激活時(shí)間設(shè)置還可以更全面的幫助排隊(duì)存儲(chǔ)管理。例如,當(dāng)隊(duì)列116達(dá)到某一預(yù)定長(zhǎng)度時(shí),可以掃描分組消息隊(duì)列116。否則,由超時(shí)分組消息占用的存儲(chǔ)器空間可以因此釋放。然而,仍然需要檢查每個(gè)分組發(fā)送的超時(shí)。在另一種情況,在隊(duì)列116到達(dá)某個(gè)長(zhǎng)度之前它可以被掃描。否則,將釋放被超時(shí)分組占用的存儲(chǔ)器空間,這些分組在小于某個(gè)長(zhǎng)度時(shí)在隊(duì)列116中排隊(duì)。
根據(jù)圖7和圖8,描述和討論通過(guò)鏈路管理器處理的、結(jié)合周期性優(yōu)先次序設(shè)置和激活時(shí)間設(shè)置的這種窄帶寬鏈路管理的優(yōu)點(diǎn)。
根據(jù)如下步驟產(chǎn)生一個(gè)模擬。在單個(gè)PC機(jī)上建立一個(gè)‘服務(wù)器’處理,具有少量的初始實(shí)體,其中每一個(gè)擁有位置狀態(tài)。在同一個(gè)機(jī)器上建立具有相同狀態(tài)的‘用戶’處理,并且這兩個(gè)機(jī)器通過(guò)‘反射器(reflector)’機(jī)器(簡(jiǎn)單地將分組從服務(wù)器‘反射’回用戶)經(jīng)過(guò)28.8 Kbit/s UDP/IP的鏈路連接。
服務(wù)器以恒定速率并且以對(duì)于每個(gè)實(shí)體固定的周期在隨機(jī)的方向上移動(dòng)所有的實(shí)體(因此,對(duì)于每個(gè)實(shí)體的分組消息分配激活時(shí)間),每個(gè)實(shí)體給用戶發(fā)送位置更新。這個(gè)例子中的周期性優(yōu)先次序設(shè)置使用n=3,即四個(gè)級(jí)別的優(yōu)先次序方案。狀態(tài)傳送的效率可以隨后通過(guò)估計(jì)服務(wù)器和用戶狀態(tài)之間的差別來(lái)測(cè)量。對(duì)于理想的鏈路(無(wú)限帶寬和零延遲),其狀態(tài)將是相同的。而非理想的鏈路,其狀態(tài)將是不同的,并且這種不同可以通過(guò)應(yīng)用Pythagoras的規(guī)則來(lái)測(cè)量,以確定服務(wù)器和用戶實(shí)體位置之間的距離。
對(duì)于給定實(shí)體數(shù)量的這種狀態(tài)差別可以采用下面任一個(gè)來(lái)表示。
1.在長(zhǎng)時(shí)間周期上所有服務(wù)器一用戶位置差別的平均值。
2.在長(zhǎng)時(shí)間周期上最大服務(wù)器一用戶位置差別的平均值。
隨著實(shí)體數(shù)量的增加,產(chǎn)生的狀態(tài)更新量也增加了,因此施加在服務(wù)器到用戶鏈路的負(fù)載也更大。
沒(méi)有優(yōu)先次序的發(fā)送和具有四個(gè)級(jí)別的周期性優(yōu)先次序發(fā)送的方法與多達(dá)25個(gè)實(shí)體發(fā)送數(shù)據(jù)的表現(xiàn)十分相同。這是因?yàn)樾∮?5個(gè)實(shí)體在固定時(shí)間周期內(nèi)產(chǎn)生的所有狀態(tài)更新可以在相同的周期經(jīng)過(guò)服務(wù)器發(fā)送到用戶鏈路。
隨著實(shí)體數(shù)量的增加,以及由此發(fā)送給用戶的業(yè)務(wù)量的增加,沒(méi)有優(yōu)先次序時(shí)檢測(cè)的誤差迅速地惡化。這是因?yàn)閁DP鏈路丟棄過(guò)多的數(shù)據(jù),基本上對(duì)提供的更新進(jìn)行隨機(jī)選擇。一個(gè)實(shí)體可以成功地控制傳送10個(gè)位置更新的序列,同時(shí)另一個(gè)實(shí)體在相同的周期上控制不進(jìn)行任何傳送。
相反,在25和95個(gè)實(shí)體之間的周期性優(yōu)先次序方案表明在檢測(cè)的平均和最大誤差上有很大的改進(jìn)。這是因?yàn)橹芷谛詢?yōu)先次序的使用確保當(dāng)超過(guò)鏈路帶寬時(shí),每個(gè)發(fā)送實(shí)體獲得可利用的公平的一部分。例如,當(dāng)產(chǎn)生的業(yè)務(wù)量是可利用帶寬的三倍(75個(gè)實(shí)體)時(shí),最大的誤差大約是沒(méi)有優(yōu)先次序時(shí)的4倍。
當(dāng)產(chǎn)生的業(yè)務(wù)量等于鏈路帶寬乘以優(yōu)先次序級(jí)別的數(shù)量時(shí),優(yōu)先次序方案方法降低到如沒(méi)有優(yōu)先次序方法相同的誤差級(jí)別。這是因?yàn)闆](méi)有足夠的帶寬可用于傳遞所有最高優(yōu)先次序狀態(tài)更新,因此再次選擇更新成為網(wǎng)絡(luò)的功能。這可以清楚地在最大誤差圖上看到,如實(shí)體方法100的數(shù)量。
現(xiàn)在根據(jù)圖1、圖2、圖3、圖9、圖10和圖11討論本發(fā)明的第三個(gè)實(shí)施例。第三個(gè)實(shí)施例與第一個(gè)和第二個(gè)實(shí)施例的不同僅僅在于通過(guò)源實(shí)體發(fā)送的分組消息的結(jié)構(gòu)和鏈路管理器處理的功能,所以應(yīng)該再次適當(dāng)?shù)貐⒄請(qǐng)D1、圖2和圖3。圖9說(shuō)明本發(fā)明第二個(gè)實(shí)施例的功能各方面的程序流程圖。同樣通過(guò)運(yùn)行在鏈路管理計(jì)算機(jī)上的軟件應(yīng)用程序的執(zhí)行實(shí)現(xiàn)程序流程圖的步驟。
根據(jù)第三個(gè)實(shí)施例并且特別參照?qǐng)D3,源實(shí)體100、100’采用下面的結(jié)構(gòu)傳送分組消息300。分組標(biāo)題302的第一個(gè)字段306將設(shè)置為發(fā)送源實(shí)體的標(biāo)識(shí)。識(shí)別目的地實(shí)體的分組標(biāo)題302的第二個(gè)字段308不需要設(shè)置,因?yàn)樵谶@個(gè)例子中僅有一個(gè)目的地實(shí)體。
識(shí)別優(yōu)先次序設(shè)置的第三個(gè)字段310將再次如第一個(gè)和第二個(gè)實(shí)施例進(jìn)行設(shè)置。每個(gè)單獨(dú)的分組消息根據(jù)例如0(最低優(yōu)先次序)到n(最高優(yōu)先次序)的范圍被分配一個(gè)優(yōu)先次序設(shè)置。同樣關(guān)鍵的是n+1個(gè)這種消息的序列從源實(shí)體發(fā)出,不采用上述分配給源實(shí)體固定的優(yōu)先次序,而是采用周期性變化的優(yōu)先次序。周期性優(yōu)先次序改變使得如果分組根據(jù)優(yōu)先次序被丟棄,序列中剩余的分組將盡可能均勻間隔地留下。
再次,對(duì)于n=7的簡(jiǎn)單例子,在優(yōu)先次序中相應(yīng)的適當(dāng)周期變化是分別具有設(shè)置為0、7、2、4、1、6、3、5的優(yōu)先次序的八個(gè)消息的序列。0、7、2、4、1、6、3、5序列將確保逐個(gè)低優(yōu)先次序消息必須被丟棄,具有優(yōu)先次序?yàn)?的消息被首先丟棄,接著是具有優(yōu)先次序?yàn)?的消息等等,剩余的分組將是盡可能均勻的間隔。
在第三個(gè)實(shí)施例中,假定為激活時(shí)間周期的第四個(gè)字段312將不設(shè)置。然而,在第三個(gè)實(shí)施例中,假定為分組有效負(fù)載類型表示的分組標(biāo)題302中第五個(gè)字段314被設(shè)置。
由上面第二個(gè)實(shí)施例的討論可以回想起通過(guò)與源實(shí)體周期相應(yīng)的發(fā)送源實(shí)體的激活時(shí)間的設(shè)置。上面給出的例子具有每20個(gè)標(biāo)稱時(shí)間單位發(fā)送分組消息的源實(shí)體,具有相應(yīng)的20個(gè)標(biāo)稱時(shí)間單位的激活時(shí)間。攜帶狀態(tài)更新的每個(gè)分組消息不需要比源實(shí)體發(fā)送周期更長(zhǎng)的激活時(shí)間,因?yàn)樵诹硪粋€(gè)這樣的時(shí)間周期之后,新?tīng)顟B(tài)更新分組消息將已經(jīng)發(fā)送。
在第三個(gè)實(shí)施例中,不設(shè)置激活時(shí)間周期。代之以,每個(gè)源實(shí)體采用以分組有效負(fù)載類型的標(biāo)識(shí)設(shè)置的分組標(biāo)題302的第五個(gè)字段314發(fā)出狀態(tài)更新消息,在這個(gè)例子中它將是位置表示。這樣,僅當(dāng)需要時(shí),每個(gè)源實(shí)體將發(fā)出狀態(tài)更新分組消息。
根據(jù)第三個(gè)實(shí)施例,鏈路管理器鏈路114屏蔽輸入的非周期的分組消息,使得來(lái)自具有相同有效負(fù)載類型的相同源實(shí)體的分組消息可以被組合,以形成具有最后可能狀態(tài)更新的新的分組消息。
這樣,如上面討論的,再次具有周期性優(yōu)先次序設(shè)置的這種分組消息流從源實(shí)體100、100’發(fā)出。如第一個(gè)實(shí)施例,這些分組消息隨后經(jīng)過(guò)相應(yīng)的服務(wù)器計(jì)算機(jī)104、104’傳遞到鏈路管理計(jì)算機(jī)110。
參照?qǐng)D9,在第一個(gè)步驟900,在第一個(gè)和第二個(gè)鏈路管理計(jì)算機(jī)輸入端口112、112’接收這些分組消息之后,它們被隨后傳遞到鏈路管理器處理114。
在第二個(gè)步驟902,當(dāng)鏈路管理計(jì)算機(jī)輸入端口112、112’中的一個(gè)接收新的分組消息時(shí),鏈路管理器處理114將讀出分組標(biāo)題302的第一個(gè)字段306,以確定發(fā)送源實(shí)體的標(biāo)識(shí)??梢曰叵肫鹪谶@個(gè)實(shí)施例中,識(shí)別目的地實(shí)體的分組標(biāo)題302的第二個(gè)字段308不用設(shè)置,因?yàn)樵谶@個(gè)例子中僅有一個(gè)目的地實(shí)體。在第三個(gè)步驟904,鏈路管理器處理114還讀出分組標(biāo)題302的第五個(gè)字段314,假定是分組有效負(fù)載類型的表示,在這個(gè)例子中它將是位置表示。在第四個(gè)步驟906,鏈路管理器處理114還讀出分組標(biāo)題302的第三個(gè)字段310,假定為分配的優(yōu)先次序設(shè)置。
鏈路管理器處理114將再次保持簡(jiǎn)單的分組消息隊(duì)列116,如第一個(gè)和第二個(gè)實(shí)施例根據(jù)優(yōu)先次序排隊(duì)。
在第五個(gè)步驟908,鏈路管理器處理114隨后將掃描這個(gè)分組隊(duì)列116,讀出排隊(duì)的分組消息的分組標(biāo)題中第一個(gè)和第五個(gè)字段306、314,以確定是否從該源實(shí)體已經(jīng)接收分組消息,并且具有的該類型有效負(fù)載當(dāng)前被排隊(duì)。因?yàn)榧僭O(shè)從源實(shí)體發(fā)送的分組消息沒(méi)有明顯延遲地到達(dá)鏈路管理計(jì)算機(jī)110,可以假設(shè)較后到達(dá)的分組消息比較早到達(dá)的分組消息攜帶更近的狀態(tài)更新。
應(yīng)該注意因?yàn)楦鶕?jù)至少發(fā)送源標(biāo)識(shí)和有效負(fù)載類型來(lái)實(shí)現(xiàn)這種匹配,每個(gè)發(fā)送源實(shí)體將自由地表示它要求哪種有效負(fù)載類型,希望哪種有效負(fù)載類型的指示器(即,源A可以選擇表示具有類型=1的位置有效負(fù)載,而源B可以表示例如具有相同類型的類型=1的溫度有效負(fù)載)。
因此,如果鏈路管理器處理114定位這樣一個(gè)來(lái)自相同源實(shí)體的較早分組消息,并且具有仍然排隊(duì)的相同類型有效負(fù)載,則在第六個(gè)步驟910,鏈路管理器處理將讀出排隊(duì)的分組消息的分組標(biāo)題302的第三個(gè)字段310,假定為分配的優(yōu)先次序設(shè)置。
在第七個(gè)步驟912,鏈路管理器處理114可以如下創(chuàng)建一個(gè)新的分組消息。參照?qǐng)D2,鏈路管理器處理將從新接收的分組消息和排隊(duì)的分組消息的分組標(biāo)題302第一個(gè)字段306讀出的公共源實(shí)體標(biāo)識(shí)寫到新分組消息的分組標(biāo)題302的第一個(gè)字段306。鏈路管理器處理114將剛從鏈路管理計(jì)算機(jī)接收的分組消息的有效負(fù)載寫入這個(gè)新分組消息的有效負(fù)載部分304,換句話說(shuō)是可利用的最近的狀態(tài)更新。鏈路管理器處理114將比較排隊(duì)的分組消息和新接收的分組消息的分組標(biāo)題302中第三個(gè)字段310的優(yōu)先次序設(shè)置,并且將排隊(duì)的分組消息和新接收的分組消息的兩個(gè)優(yōu)先次序中較高的一個(gè)寫入新的分組消息的分組標(biāo)題302中第三個(gè)字段310。
在第八個(gè)步驟914,鏈路管理器處理114創(chuàng)建了這樣一個(gè)新的分組消息,然后將這個(gè)新的分組消息分類到簡(jiǎn)單的優(yōu)先次序序列的隊(duì)列116。
在第九個(gè)步驟916,鏈路管理器處理114將丟棄新接收的分組消息和排隊(duì)的分組消息。
通過(guò)另一種方法,代替第七個(gè)和第八個(gè)步驟912、914的處理可以如下實(shí)現(xiàn)。如果排隊(duì)的分組消息具有比新接收的分組更高的優(yōu)先次序,則新接收的分組消息的有效負(fù)載可以簡(jiǎn)單地復(fù)制到排隊(duì)的分組消息有效負(fù)載,新接收的分組消息隨后被丟棄。然而,如果新接收的分組具有比排隊(duì)的分組消息更高的優(yōu)先次序,則排隊(duì)的分組消息可以簡(jiǎn)單地丟棄,并且將新接收的分組消息分類到優(yōu)先次序隊(duì)列116。
當(dāng)鏈路管理器處理114根據(jù)準(zhǔn)則沒(méi)有找到匹配時(shí),則在第十個(gè)步驟918將接收的分組消息簡(jiǎn)單地直接分類到隊(duì)列116。
如第一個(gè)和第二個(gè)實(shí)施例,借助于本發(fā)明的第三個(gè)實(shí)施例,鏈路管理器處理114將在發(fā)送之前再次測(cè)試鏈路120的容量,以發(fā)送在優(yōu)先次序隊(duì)列116最前面的分組消息。
如第一個(gè)和第二個(gè)實(shí)施例,只要鏈路管理計(jì)算機(jī)110接收的分組消息業(yè)務(wù)量的瞬時(shí)總帶寬小于己知的通訊鏈路120的(低)帶寬,放置在鏈路管理器處理隊(duì)列116的所有分組消息將沒(méi)有排隊(duì)延遲地經(jīng)過(guò)鏈路120發(fā)出。接收實(shí)體將接收從所有源實(shí)體發(fā)送的所有分組消息。同樣,如第一個(gè)和第二個(gè)實(shí)施例,隨著分組消息業(yè)務(wù)量的增加,當(dāng)輸入分組消息業(yè)務(wù)量的總帶寬超過(guò)通訊鏈路120的帶寬時(shí)產(chǎn)生一個(gè)關(guān)鍵點(diǎn)。在這個(gè)點(diǎn)將不再可能同時(shí)發(fā)送預(yù)定給接收實(shí)體的所有分組消息。
當(dāng)總的業(yè)務(wù)量帶寬超過(guò)窄帶寬鏈路容量時(shí),根據(jù)周期性優(yōu)先次序設(shè)置能夠提供優(yōu)化和適度的降級(jí)服務(wù),在這方面本發(fā)明的第三個(gè)實(shí)施例將提供本發(fā)明第一個(gè)實(shí)施例的所有優(yōu)點(diǎn)。然而,如現(xiàn)在將要解釋的,本發(fā)明第三個(gè)實(shí)施例還將提供優(yōu)于第一個(gè)實(shí)施例性能的優(yōu)點(diǎn)。
參照?qǐng)D10和圖11,將更好地表示和討論本發(fā)明第三個(gè)實(shí)施例通過(guò)鏈路管理器處理的窄帶寬鏈路管理方法的優(yōu)點(diǎn)。
參照?qǐng)D7和圖8的討論進(jìn)行類似的模擬。這個(gè)實(shí)驗(yàn)示出完全不使用優(yōu)先次序方案、根據(jù)它自己的周期性優(yōu)先次序方案、以及采用消息組合方式的周期性優(yōu)先次序方案的結(jié)果。在這個(gè)例子中,使用了具有n=7的周期性優(yōu)先次序方案,即八個(gè)級(jí)別優(yōu)先次序方案。
不使用任何優(yōu)先次序方案足以完成到某一點(diǎn),在該點(diǎn)服務(wù)器產(chǎn)生的業(yè)務(wù)量超過(guò)為了更新用戶(30個(gè)實(shí)體)可利用的帶寬。從這一點(diǎn)開(kāi)始,隨著狀態(tài)更新被網(wǎng)絡(luò)隨機(jī)地丟棄,平均和最大誤差增加。
使用根據(jù)它自己的8個(gè)級(jí)別優(yōu)先次序方案的結(jié)果如兩個(gè)圖形的虛線示出。在某些業(yè)務(wù)量(例如,70個(gè)實(shí)體和90個(gè)實(shí)體)時(shí)它明顯地比沒(méi)有優(yōu)先次序的情況完成得好,而在其他業(yè)務(wù)量(例如,35個(gè)實(shí)體)時(shí)明顯地完成得不好。來(lái)自這個(gè)數(shù)據(jù)集合誤差峰值中的每一個(gè)相應(yīng)于產(chǎn)生的業(yè)務(wù)量等于能夠在服務(wù)器和用戶之間傳遞的某一限定容量的整數(shù)倍數(shù)時(shí)。如上面例子所述,引起這些峰值的事件序列是1.在時(shí)間t,實(shí)體X產(chǎn)生具有優(yōu)先次序P的狀態(tài)更新St。
2. St被排隊(duì),因?yàn)樵撴溌樊?dāng)前被較高的優(yōu)先次序更新完全利用。
3.在時(shí)間t+1,實(shí)體X產(chǎn)生具有優(yōu)先次序大于P的St+1的狀態(tài)更新。
4.St+1被發(fā)送,因?yàn)樗哂凶銐蚋叩膬?yōu)先次序來(lái)代替任何其它的排隊(duì)業(yè)務(wù)量。
5.在新的狀態(tài)更新階段的波動(dòng)允許已經(jīng)排隊(duì)的較低優(yōu)先次序的更新被發(fā)送,St被發(fā)送,在用戶的接收實(shí)體將這看作更新St+2。
因此,僅當(dāng)狀態(tài)更新階段產(chǎn)生的速率波動(dòng)可以引起上面的重新排序情況時(shí),即產(chǎn)生的業(yè)務(wù)量接近于可利用帶寬的某一整數(shù)倍時(shí)才產(chǎn)生這些誤差峰值,一個(gè)特定的優(yōu)先次序級(jí)別只是偶爾使得它進(jìn)入窄帶寬鏈路。
如兩個(gè)圖形的虛線所示,通過(guò)本發(fā)明的第三個(gè)實(shí)施例解決了這個(gè)問(wèn)題,其中新的消息與來(lái)自相同實(shí)體的任何舊的排隊(duì)消息組合。因此,上面描述的重新排序問(wèn)題的類型被去除,并且該方案在所有的業(yè)務(wù)量級(jí)別上完成得很好。
參照?qǐng)D3,特別是分組標(biāo)題302的第二個(gè)字段308,應(yīng)該理解如果提供了相應(yīng)的不同目的地實(shí)體標(biāo)識(shí),則可能從單個(gè)鏈路管理器發(fā)送給多個(gè)用戶。然后,根據(jù)例如每個(gè)用戶一個(gè)這樣的隊(duì)列,鏈路管理器處理可以保持多個(gè)分類的優(yōu)先次序分組消息隊(duì)列。
這樣,目的地實(shí)體標(biāo)識(shí)字段可以由鏈路管理器使用,以確定任何輸入分組應(yīng)該放置在哪個(gè)隊(duì)列。使用分組目的地字段以確定相關(guān)的隊(duì)列,鏈路管理器可以隨后使用先前描述的方式以將該分組放置在隊(duì)列中并且隨后提供它或丟棄它。應(yīng)該理解一旦鏈路管理器支持多個(gè)用戶、以及由此的多個(gè)優(yōu)先次序分類的分組隊(duì)列,它將需要在這些隊(duì)列之間循環(huán),允許在它們每一個(gè)的處理時(shí)間發(fā)送來(lái)自它們隊(duì)列最前面的任何分組,到它們用戶的鏈路可以及時(shí)地在該時(shí)刻傳遞。
圖12說(shuō)明根據(jù)本發(fā)明的第四個(gè)實(shí)施例。
每個(gè)用戶1200、1202、1204被認(rèn)為是單個(gè)接收實(shí)體1206,具有駐留在它上面的零個(gè)或多個(gè)發(fā)送實(shí)體1208。所有的用戶連接到鏈路管理器1210。每個(gè)用戶1200、1202、1204可以產(chǎn)生來(lái)自任何它的發(fā)送實(shí)體的任何數(shù)量的更新,并且將這些交給任何其他用戶接收實(shí)體。每個(gè)更新被發(fā)送到鏈路管理器1210,它具有將輸入更新分配給相關(guān)的用戶1200、1202、1204的任務(wù)。因?yàn)槿魏螁蝹€(gè)用戶1200、1202、1204可以接收來(lái)自許多其他用戶1200、1202、1204的更新,輸入端數(shù)類型問(wèn)題產(chǎn)生,因此每個(gè)用戶僅僅產(chǎn)生有限數(shù)量的更新,但特定的用戶正在發(fā)送比它們網(wǎng)絡(luò)連接允許帶寬更大數(shù)量的更新。
為了有效地處理這個(gè)問(wèn)題,鏈路管理器1210保持對(duì)于每個(gè)用戶的優(yōu)先次序分類的隊(duì)列1212、1214、1216,這個(gè)隊(duì)列1212、1214、1216以鏈路管理器對(duì)于用戶鏈路可以支持的帶寬向下騰空用于用戶1200、1202、1204。使用先前描述的周期性優(yōu)先次序方案來(lái)管理這些隊(duì)列1212、1214、1216,因此隨著每次更新的產(chǎn)生由用戶對(duì)每個(gè)更新分配一個(gè)優(yōu)先次序,以及激活時(shí)間或有效負(fù)載類型。因此,如果任何用戶比它的鏈路帶寬允許接收的被發(fā)送更多的更新,鏈路管理器將起作用,以確保在接收更新的周期中產(chǎn)生適當(dāng)?shù)慕导?jí)。
這種方法假設(shè)從用戶到鏈路管理器產(chǎn)生的上行業(yè)務(wù)量將不會(huì)超過(guò)可利用的鏈路帶寬,即該用戶能夠調(diào)節(jié)由發(fā)送實(shí)體產(chǎn)生的更新周期,以確保在任何單個(gè)時(shí)間周期產(chǎn)生的總業(yè)務(wù)量保持在它能夠在該相同周期內(nèi)傳送的最大量以下。如果不是這種情況,則在鏈路管理器使用的相同的方案可以用于用戶,即采用優(yōu)先次序分類的隊(duì)列、以鏈路帶寬允許的速率從它最前面發(fā)送的消息、用于限制隊(duì)列大小并且防止消息重新排序的激活時(shí)間或數(shù)據(jù)組合方法。
在這個(gè)實(shí)現(xiàn)中,每個(gè)消息將經(jīng)過(guò)多到兩個(gè)隊(duì)列傳遞,一個(gè)在離開(kāi)用戶之前,一個(gè)在鏈路管理器等待提供給用戶。注意如果使用具有這個(gè)雙排隊(duì)方案的激活時(shí)間的方法,消息中激活時(shí)間必須在消息被發(fā)送之前正確地調(diào)節(jié)。例如,如果在t=0產(chǎn)生具有20個(gè)TTL的消息,并且保留在用戶一側(cè)隊(duì)列5個(gè)時(shí)間周期,則它應(yīng)該被發(fā)送到具有15個(gè)TTL的鏈路管理器(即最初的TTL減去在隊(duì)列里花費(fèi)的時(shí)間)。
盡管上面的實(shí)施例已經(jīng)說(shuō)明了通過(guò)源將優(yōu)先次序標(biāo)記分配給每個(gè)分組消息的技術(shù),但并不總是這種情況。只要由源傳送的分組消息的序列次序被保留(例如,一個(gè)序列次序字段),優(yōu)先次序標(biāo)記的分配可以完成源的下行。的確,假定優(yōu)先次序標(biāo)記被分配用于決定將接收的分組消息分類到分組消息隊(duì)列的哪個(gè)部分,如上面在兩個(gè)步驟完成的,分類算法(使用如上的周期性標(biāo)記序列技術(shù)并且了解來(lái)自給定源的給定接收分組消息的序列位置)可以用于將接收的分組消息分類到隊(duì)列的相同部分,具有適當(dāng)?shù)膬?yōu)先次序標(biāo)記的分配和基于優(yōu)先次序分類到隊(duì)列。
權(quán)利要求
1.分組消息源包括用于在分組消息序列的每個(gè)分組消息中包括相應(yīng)的分組消息有效負(fù)載的裝置;用于根據(jù)這種標(biāo)記的預(yù)定周期性序列將優(yōu)先次序標(biāo)記與所述序列的每個(gè)連續(xù)的分組消息相聯(lián)系的裝置;所述優(yōu)先次序標(biāo)記的每一個(gè)表示若干個(gè)優(yōu)先次序級(jí)別中的一個(gè)和周期性序列中每個(gè)標(biāo)記的位置,使得該標(biāo)記和具有相等或較高優(yōu)先次序的最近標(biāo)記之間的連續(xù)的較低優(yōu)先次序的數(shù)字實(shí)際上是最大的;以及用于發(fā)送這種分組消息的裝置。
2.如權(quán)利要求1所述的分組消息源,其中所述分組消息源具有相關(guān)的動(dòng)態(tài)狀態(tài),并且所述相應(yīng)的分組消息有效負(fù)載包括源狀態(tài)更新消息。
3.如權(quán)利要求1或2所述的分組消息源還包括用于將激活時(shí)間設(shè)置與每個(gè)分組消息相聯(lián)系的裝置。
4.如權(quán)利要求1到3中任何一個(gè)所述的分組消息源還包括用于將分組消息源標(biāo)識(shí)與每個(gè)分組消息相聯(lián)系的裝置;以及用于將分組消息有效負(fù)載類型設(shè)置與每個(gè)分組消息相聯(lián)系的裝置。
5.分組通知系統(tǒng)包括如權(quán)利要求1到4中任何一個(gè)所述的若干個(gè)分組消息源,以及通訊鏈路接口;所述通訊鏈路接口包括用于從所述若干個(gè)分組消息源接收分組消息的輸入端口;用于讀出與每個(gè)接收的分組消息相聯(lián)系的優(yōu)先次序標(biāo)記的裝置;用于按照它們相關(guān)的優(yōu)先次序標(biāo)記的次序?qū)⒔邮盏姆纸M消息排隊(duì)的隊(duì)列;以及用于發(fā)送在所述隊(duì)列最前面的每個(gè)分組消息到通訊鏈路的輸出端口。
6.如權(quán)利要求5所述的分組通知系統(tǒng),其中根據(jù)權(quán)利要求3,所述通訊鏈路接口還包括用于讀出與每個(gè)接收的分組消息有關(guān)的分組消息激活時(shí)間設(shè)置的裝置;用于與每個(gè)相應(yīng)的分組消息相關(guān)、表示分組消息已經(jīng)排隊(duì)的時(shí)間周期的裝置;以及用于放棄每個(gè)分組消息的裝置,該消息的相關(guān)表示說(shuō)明該分組消息排隊(duì)的時(shí)間周期已經(jīng)大于相關(guān)的分組消息激活時(shí)間設(shè)置。
7.如權(quán)利要求5所述的分組通知系統(tǒng),其中根據(jù)權(quán)利要求3,所述通訊鏈路接口還包括時(shí)鐘;以及用于將從分組消息讀出的激活時(shí)間設(shè)置加上接收分組的本地時(shí)間產(chǎn)生的調(diào)節(jié)的激活時(shí)間設(shè)置代替與每個(gè)分組消息相關(guān)的分組消息激活時(shí)間設(shè)置的裝置;用于將時(shí)間周期的表示與每個(gè)分組消息相關(guān)的裝置與至少一個(gè)分組消息相關(guān),從每個(gè)所述分組消息讀出的所述調(diào)節(jié)的激活時(shí)間減去所述分組消息到達(dá)的本地時(shí)間的結(jié)果,使得用于丟棄每個(gè)分組消息的裝置被這樣安排,如果所述相關(guān)的總和小于或等于零則丟棄分組消息。
8.如權(quán)利要求5所述的分組通知系統(tǒng),其中根據(jù)權(quán)利要求4,所述通訊鏈路接口還包括用于從每個(gè)接收的分組消息讀出分組消息源標(biāo)識(shí)的裝置;用于讀出與每個(gè)接收的分組消息相關(guān)的分組消息有效負(fù)載類型設(shè)置的裝置;用于對(duì)排隊(duì)的分組消息測(cè)試分組消息隊(duì)列的裝置,該分組消息具有匹配于接收的分組消息的相關(guān)源標(biāo)識(shí);用于讀出與匹配的排隊(duì)分組消息相關(guān)的優(yōu)先次序標(biāo)記的裝置;用于根據(jù)優(yōu)先次序標(biāo)記,將代替匹配的接收和排隊(duì)的分組消息的分組消息分類到隊(duì)列的裝置,具有匹配的接收和排隊(duì)的分組消息的相關(guān)源標(biāo)識(shí),接收的分組消息的有效負(fù)載以及無(wú)論哪個(gè)匹配的接收和排隊(duì)的分組消息的相關(guān)優(yōu)先次序標(biāo)記表示較高的優(yōu)先次序。
9.分組通知系統(tǒng)包括若干個(gè)分組消息源,每個(gè)包括用于在分組消息序列的每個(gè)分組消息中包括相應(yīng)的分組消息有效負(fù)載的裝置;以及用于發(fā)送這樣的分組消息的裝置;以及通訊鏈路接口包括用于從所述若干個(gè)分組消息源接收分組消息的輸入端口;根據(jù)相應(yīng)分配的優(yōu)先次序標(biāo)記將分組消息排隊(duì)的隊(duì)列;考慮所述若干個(gè)分組消息源每一個(gè)的所述序列,根據(jù)這種標(biāo)記的預(yù)定周期性序列已經(jīng)分配所述優(yōu)先次序標(biāo)記;所述優(yōu)先次序標(biāo)記的每一個(gè)表示若干個(gè)優(yōu)先次序級(jí)別中的一個(gè)和周期性序列中每個(gè)標(biāo)記的位置,使得它和相等或較高優(yōu)先次序的最近標(biāo)記之間的連續(xù)較低優(yōu)先次序標(biāo)記的數(shù)字實(shí)際上是最大的;以及發(fā)送所述隊(duì)列最前面的每個(gè)分組消息到通訊鏈路的輸出端口。
10.分組通知的方法包括在分組消息序列的每個(gè)分組消息中包括相應(yīng)的分組消息有效負(fù)載;根據(jù)這種標(biāo)記的預(yù)定周期性序列,將優(yōu)先次序標(biāo)記與所述序列的每個(gè)連續(xù)的分組消息相關(guān);所述優(yōu)先次序標(biāo)記的每一個(gè)表示若干個(gè)優(yōu)先次序級(jí)別中的一個(gè)和周期性序列中每個(gè)標(biāo)記的位置,使得所述標(biāo)記和相等或較高優(yōu)先次序的最近標(biāo)記之間的連續(xù)較低優(yōu)先次序標(biāo)記的數(shù)字實(shí)際上是最大的;以及發(fā)送這樣的分組消息。
11.一種操作包括若干個(gè)分組消息源和通訊鏈路接口的分組通知系統(tǒng)的方法,所述方法包括根據(jù)這種標(biāo)記的預(yù)定周期性序列,考慮分組消息源中每一個(gè)的最初序列,將優(yōu)先次序的標(biāo)記分配給連續(xù)的分組;所述優(yōu)先次序標(biāo)記的每一個(gè)表示若干個(gè)優(yōu)先次序級(jí)別中的一個(gè)和周期性序列中每個(gè)標(biāo)記的位置,使得它和相等或較高優(yōu)先次序之間的連續(xù)較低優(yōu)先次序標(biāo)記的數(shù)字實(shí)際上是最大的;根據(jù)在所述通訊鏈路接口相應(yīng)分配的優(yōu)先次序標(biāo)記將所述分組消息在隊(duì)列中排隊(duì);以及發(fā)送所述隊(duì)列最前面的每個(gè)分組消息到通訊鏈路。
12.計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述介質(zhì)包括讀入計(jì)算機(jī)并且可以由所述計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可讀代碼,用于完成權(quán)利要求10或11所述的方法。
13.用于管理鏈路上分組消息的發(fā)送的鏈路管理器;由若干個(gè)分組消息源產(chǎn)生的分組消息;每個(gè)分組消息源具有相關(guān)的狀態(tài);每個(gè)分組消息包括在n到m范圍中相關(guān)的分組消息優(yōu)先次序設(shè)置和分組消息源狀態(tài)更新;每個(gè)分組消息周期性地通過(guò)所述優(yōu)先次序設(shè)置范圍的每個(gè)優(yōu)先次序設(shè)置,由m-n+1個(gè)分組消息的源發(fā)送序列發(fā)送,使得根據(jù)優(yōu)先次序從序列逐個(gè)丟棄分組消息,該序列剩余的分組消息盡可能均勻地間隔;鏈路管理器包括至少一個(gè)分組消息輸入端口,用于接收這樣的分組消息;用于讀出與每個(gè)這樣接收的分組消息相關(guān)的優(yōu)先次序設(shè)置的裝置;用于根據(jù)與每個(gè)這樣接收的分組消息有關(guān)的優(yōu)先次序設(shè)置,將每個(gè)這樣接收的分組消息分類到分組消息隊(duì)列的裝置;用于測(cè)試鏈路是否有足夠容量以發(fā)送在隊(duì)列最前面的分組消息的裝置;以及用于當(dāng)鏈路具有足夠的容量時(shí),經(jīng)過(guò)至少一個(gè)輸出端口發(fā)送在隊(duì)列最前面的分組消息到鏈路的裝置。
14.一種發(fā)送來(lái)自鏈路上若干個(gè)源的分組消息的管理方法;分組消息由若干個(gè)分組消息源產(chǎn)生;每個(gè)分組消息源具有相關(guān)的狀態(tài);每個(gè)分組消息包括在n到m范圍的相關(guān)的分組消息優(yōu)先次序設(shè)置和分組消息源狀態(tài)更新;每個(gè)分組消息周期性地通過(guò)所述優(yōu)先次序設(shè)置范圍的每個(gè)優(yōu)先次序設(shè)置,由m-n+1個(gè)分組消息的源發(fā)送序列發(fā)送,使得根據(jù)優(yōu)先次序從序列逐個(gè)丟棄分組消息,該序列剩余的分組消息盡可能均勻地間隔;該方法包括接收在鏈路管理器至少一個(gè)輸入端口的這種分組消息;讀出與每個(gè)這樣接收的分組消息有關(guān)的優(yōu)先次序設(shè)置;根據(jù)與每個(gè)這樣接收的分組消息相關(guān)的優(yōu)先次序設(shè)置,將每個(gè)這樣接收的分組消息分類到分組消息隊(duì)列;以及經(jīng)過(guò)鏈路管理器至少一個(gè)輸出端口,發(fā)送在隊(duì)列最前面的分組消息到鏈路。
全文摘要
根據(jù)本發(fā)明,分組消息序列的每個(gè)分組消息根據(jù)這樣標(biāo)記的預(yù)定周期性序列,以相關(guān)的分組消息優(yōu)先次序標(biāo)記發(fā)送。這些優(yōu)先次序標(biāo)記的每一個(gè)表示若干個(gè)優(yōu)先次序級(jí)別中的一個(gè)和周期性序列中每個(gè)標(biāo)記的位置,使得該標(biāo)記和相等或較高優(yōu)先次序的最近標(biāo)記之間的連續(xù)較低優(yōu)先次序的數(shù)字實(shí)際上是最大的。這樣,如果由于阻塞根據(jù)優(yōu)先次序從序列中丟棄分組消息,根據(jù)本發(fā)明的分組通知方法和設(shè)備確保,只要可能,有規(guī)律的更新分組消息將仍然從所有的分組消息源接收。
文檔編號(hào)H04L29/06GK1345503SQ0080585
公開(kāi)日2002年4月17日 申請(qǐng)日期2000年3月24日 優(yōu)先權(quán)日1999年3月31日
發(fā)明者西蒙·尤里安·鮑爾斯, 邁克爾·勒登·海因絲 申請(qǐng)人:英國(guó)電訊有限公司