本發(fā)明涉及基于保持服務(wù)順序(service?order-preserving)的全局完成時間的網(wǎng)絡(luò)時延保障系統(tǒng)和方法,并且更具體涉及保障網(wǎng)絡(luò)時延的系統(tǒng)和方法,該系統(tǒng)和方法基于在首節(jié)點處生成的全局完成時間信息,在無需管理每個流的狀態(tài)信息的情況下,在獲取網(wǎng)絡(luò)核心節(jié)點處的數(shù)據(jù)包的完成時間并據(jù)此設(shè)定時間表,從而保障網(wǎng)絡(luò)時延的上限。
背景技術(shù):
1、自1990年代以來,已經(jīng)提出了如下一種技術(shù),該技術(shù)將流視為流體(將屬于同一應(yīng)用、具有相同源和目的地的數(shù)據(jù)包視為整體),并在此基礎(chǔ)上通過中繼節(jié)點處的適當(dāng)調(diào)度,為所有流精確地提供所請求的服務(wù)量,從而保障時延。時延保障和流保護(hù)(flowprotection)緊密相關(guān)。流保護(hù)的程度與時延的上限成反比。流保護(hù)技術(shù)存在三個等級。
2、第一級流保護(hù)技術(shù)是將流之間的干擾限制在數(shù)據(jù)包大小的最大水平的技術(shù)。當(dāng)應(yīng)用該技術(shù)時,每個節(jié)點處的時延上限與最大數(shù)據(jù)包長度成正比。然而,管理和記錄每個流的大量狀態(tài)信息的復(fù)雜性存在問題,因此第一級流保護(hù)技術(shù)實際上并未得到應(yīng)用。
3、第二級流保護(hù)技術(shù)并不保持反映流特征的詳細(xì)個體狀態(tài),而是僅記錄流的固定需求和服務(wù)歷史,并據(jù)此規(guī)定未來的服務(wù)。當(dāng)應(yīng)用該技術(shù)時,每個節(jié)點處的時延上限與每個流的最大數(shù)據(jù)包大小的總和成正比。
4、第三級流保護(hù)技術(shù)將流存儲在按照優(yōu)先級分組的隊列中,并簡單地按照優(yōu)先級為隊列提供服務(wù)。當(dāng)應(yīng)用該技術(shù)時,時延上限由每個流的最大突發(fā)大小的總和決定。最大突發(fā)大小是指每個流允許從初始源一次發(fā)送的數(shù)據(jù)總量。最大突發(fā)大小通常表示可允許的一組大量數(shù)據(jù)包的概念。因此,在某些情況下,可能難以接受與數(shù)據(jù)包總和成比例的時延上限。此外,當(dāng)應(yīng)用這些技術(shù)的網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中存在循環(huán)時,最大時延會在通過節(jié)點時被放大,并且可能會出現(xiàn)無法保障時延上限的情況,這取決于網(wǎng)絡(luò)利用率水平。
5、因此,人們研究了將性能最優(yōu)的第一級技術(shù)應(yīng)用于互聯(lián)網(wǎng)的方法。廣義處理器共享(generalized?processor?sharing,gps)為作為流體的流的公平服務(wù)提供了范例,而在分組環(huán)境中實現(xiàn)該范例的分組化gps(pgps,或加權(quán)公平隊列)在這種基于分組的調(diào)度器中發(fā)揮了先鋒作用。這些被統(tǒng)稱為公平隊列調(diào)度器。公平隊列按照如下公式1獲取的完成時間的升序來決定數(shù)據(jù)包的服務(wù)順序。
6、[公式1]
7、f(p)=max{f(p-1),v(a(p))}+l(p)/r
8、這里,p是流的第p個數(shù)據(jù)包,a(p)是數(shù)據(jù)包p到達(dá)節(jié)點的時間,l(p)是p的長度,并且r是分配給p所屬的流的服務(wù)速率。v(t)被稱為虛擬時間函數(shù),并且可以通過多種方式計算,例如實際時間t與正被服務(wù)的流的r總和和鏈路容量的比值的乘積,或者當(dāng)前時間。虛擬時間可防止不公平的情況,即在流的服務(wù)速度快于分配速度的狀態(tài)下,開始較晚的流具有較小的完成時間,并因而在相當(dāng)長的時間內(nèi)被提供優(yōu)于現(xiàn)有流的服務(wù)。f(p)表示公平計算的p的完成時間,并且節(jié)點按最小值的順序接收服務(wù)??梢栽跀?shù)據(jù)包到達(dá)節(jié)點時計算完成時間,因此,在將其存儲在緩沖區(qū)中之前,可以將其作為數(shù)據(jù)包的元數(shù)據(jù)在節(jié)點中記錄和使用。一般情況下,針對每個流提供隊列,并且隊列以fifo或pifo的方式進(jìn)行管理,并且調(diào)度器以檢查每個流的隊列報頭(head?of?queue,hoq)并對具有最短完成時間的隊列進(jìn)行服務(wù)的形式實現(xiàn)。替代地,可以將所有數(shù)據(jù)包放入一個隊列,并根據(jù)完成時間值將數(shù)據(jù)包插入隊列中間。完成時間是數(shù)據(jù)包得到公平服務(wù)時的預(yù)期完成時間。公式1的關(guān)鍵在于,在最壞情況下,即當(dāng)所有流都激活并且鏈路被充分使用時,與屬于該流的前一個數(shù)據(jù)包相比,以間隔l(p)/r提供服務(wù)。同時,通過使用工作保持調(diào)度器,可以防止鏈路資源被閑置和浪費。
9、為了計算公式1,必須記住流的f(p-1),即前一個數(shù)據(jù)包的完成時間。當(dāng)接收數(shù)據(jù)包時,必須找出該數(shù)據(jù)包屬于哪個流,并找出相應(yīng)流的最近一個數(shù)據(jù)包的完成時間。最近一個數(shù)據(jù)包的完成時間f(p-1)是表示所謂“流狀態(tài)”的值。對于管理數(shù)百萬個流的核心節(jié)點來說,必須記住和讀取狀態(tài)信息這一事實意味著相當(dāng)大的復(fù)雜性,這已成為公平隊列調(diào)度程序?qū)嶋H上未在互聯(lián)網(wǎng)上使用的主要原因。在核心節(jié)點中實時管理數(shù)百萬個流狀態(tài)是不可能的。
10、為了解決這個問題,已經(jīng)提出了如下一種方法,其中,在無需在核心節(jié)點處管理流的狀態(tài)信息的情況下,通過允許在首節(jié)點處寫入必要的信息,并且修改必要的信息,可以在核心節(jié)點處僅使用數(shù)據(jù)包狀態(tài)來獲取流狀態(tài)。
11、然而,先前的研究試圖在每個節(jié)點處將數(shù)據(jù)包服務(wù)所需的時間信息反映在完成時間上,這意味著同一流中不同大小的數(shù)據(jù)包的服務(wù)順序可能顛倒。
12、為了防止這種情況,引入了數(shù)據(jù)包服務(wù)的合格時間(eligible?time)的概念,以保障數(shù)據(jù)包之間的服務(wù)順序。因此,數(shù)據(jù)包以非工作保持方式運行。這可以保障時延的上限,但缺點是平均時延會顯著增加,因此需要解決這種問題的方案。
13、同時,將這種與數(shù)據(jù)包相關(guān)的信息記錄在數(shù)據(jù)包報頭中并且在每個節(jié)點上修改該信息的方法由于其復(fù)雜性尚未被接受為互聯(lián)網(wǎng)標(biāo)準(zhǔn)。
技術(shù)實現(xiàn)思路
1、技術(shù)問題
2、本發(fā)明所要實現(xiàn)的技術(shù)目的是提供保障網(wǎng)絡(luò)時延的系統(tǒng)和方法,該系統(tǒng)和方法基于在首節(jié)點處生成的全局完成時間信息,在無需管理每個流的狀態(tài)信息的情況下,從網(wǎng)絡(luò)核心節(jié)點獲取數(shù)據(jù)包的完成時間并據(jù)此設(shè)置時間表,從而保障網(wǎng)絡(luò)延遲的上限。
3、技術(shù)方案
4、根據(jù)本發(fā)明的實施例,一種基于保持服務(wù)順序的全局完成時間的網(wǎng)絡(luò)時延保障系統(tǒng)包括:數(shù)據(jù)包處理單元,其被配置為通過存儲到達(dá)的數(shù)據(jù)包并計算存儲的數(shù)據(jù)包的完成時間來生成新的元數(shù)據(jù);調(diào)度單元,其被配置為通過比較所述存儲的數(shù)據(jù)包的所述完成時間來提取具有最小完成時間的數(shù)據(jù)包;以及數(shù)據(jù)包輸出單元,其被配置為通過輸出端口輸出經(jīng)調(diào)度的數(shù)據(jù)包。
5、所述調(diào)度單元可以通過將按照預(yù)定義標(biāo)準(zhǔn)分類的多個流集合存儲在單獨的fifo(先進(jìn)先出)隊列中并通過相互比較所述多個fifo隊列的報頭(head?of?queue,hoq)的完成時間來提取具有最小完成時間的數(shù)據(jù)包。
6、這里,在所述預(yù)定義標(biāo)準(zhǔn)中,可以對在最大突發(fā)大小、最大數(shù)據(jù)包大小和平均服務(wù)速率中至少有一項在預(yù)設(shè)誤差范圍內(nèi)相同的流進(jìn)行分類。
7、所述調(diào)度單元可以使用優(yōu)先級隊列來提取所述具有最小完成時間的數(shù)據(jù)包。
8、所述數(shù)據(jù)包處理單元可以采用公平隊列方法使用如下公式計算首節(jié)點的完成時間。
9、f0(p)=max{f0(p-1),a0(p)}+l(p)/r
10、這里,f0(p)是數(shù)據(jù)包p進(jìn)入首節(jié)點0時計算出的完成時間,a0(p)表示所述數(shù)據(jù)包p進(jìn)入所述首節(jié)點0時的實際時間或虛擬時間,l(p)表示所述數(shù)據(jù)包p的長度,并且r表示分配給所述數(shù)據(jù)包p所屬的流的服務(wù)速率。
11、所述數(shù)據(jù)包處理單元可以使用如下公式計算核心節(jié)點h處的完成時間(fh(p))。
12、fh(p)=fh-1(p)+dh(p)
13、這里,dh(p)表示核心節(jié)點h和數(shù)據(jù)包的函數(shù)并且被定義為根據(jù)所述核心節(jié)點h計算出的完成時間的增量,所述核心節(jié)點h和核心節(jié)點h-1是指所述數(shù)據(jù)包p所經(jīng)過的節(jié)點,并且所述數(shù)據(jù)包p在經(jīng)過所述核心節(jié)點h-1之后立即經(jīng)過所述核心節(jié)點h。
14、另外,dh(p)可以根據(jù)在值wh-1(p)和uh-1(p)之間定義的規(guī)則來確定,wh-1(p)表示在所述核心節(jié)點h-1處所述數(shù)據(jù)包p的最小時延,并且uh-1(p)表示在所述核心節(jié)點h-1處所述數(shù)據(jù)包p能夠經(jīng)歷的最大時延。
15、另外,dh(p)可以根據(jù)如下公式來確定。
16、
17、這里,表示所述核心節(jié)點h-1中的所有流的最大數(shù)據(jù)包長度,rh-1表示所述核心節(jié)點h-1中的鏈路容量,li表示流i的最大數(shù)據(jù)包長度,并且ri表示分配給所述數(shù)據(jù)包p所屬的所述流i的服務(wù)速率。
18、同時,dh(p)可以根據(jù)在值wh-1和uh-1之間定義的規(guī)則來確定,wh-1表示在所述核心節(jié)點h-1中任意數(shù)據(jù)包的最小時延,并且uh-1表示在所述核心節(jié)點h-1中任意數(shù)據(jù)包能夠經(jīng)歷的最大時延。
19、根據(jù)本發(fā)明的另一實施例,一種使用網(wǎng)絡(luò)時延保障系統(tǒng)的網(wǎng)絡(luò)時延保障方法包括:通過存儲到達(dá)的數(shù)據(jù)包并計算存儲的數(shù)據(jù)包的完成時間(ft)來生成新的元數(shù)據(jù)的步驟;通過相互比較所述存儲的數(shù)據(jù)包的完成時間來提取具有最小完成時間的數(shù)據(jù)包的步驟;以及通過輸出端口輸出經(jīng)調(diào)度的數(shù)據(jù)包的步驟。
20、有益效果
21、以此方式,根據(jù)本發(fā)明,從首節(jié)點獲取的完成時間被作為元數(shù)據(jù)記錄在數(shù)據(jù)包中,并且基于此完成時間,可以在無需管理每個流的狀態(tài)信息的情況下,在下游節(jié)點中以簡單的方式更新完成時間,從而可以確定數(shù)據(jù)包的調(diào)度順序。因此,可以在無需管理流狀態(tài)信息的情況下保障網(wǎng)絡(luò)時延的上限。
22、此外,根據(jù)本發(fā)明,調(diào)度器具有通過在首節(jié)點處的完成時間上僅添加特定于節(jié)點的狀態(tài)信息來操作的特性,因此,經(jīng)過相同路徑的所有流的數(shù)據(jù)包的服務(wù)順序可以保持不變,并且優(yōu)點在于,只需比較多個fifo隊列的hoq或使用優(yōu)先級隊列,可以輕松找出具有最小完成時間的數(shù)據(jù)包。