專(zhuān)利名稱(chēng):應(yīng)用后確認(rèn)控制進(jìn)行tcp通信量的帶寬管理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大致系有關(guān)于TCP(傳輸控制協(xié)議)通信信道的帶寬管理,特別是有關(guān)于應(yīng)用后確認(rèn)控制(post-Acknowledgement control)的觀念以進(jìn)行TCP通信量帶寬管理的一種方法及裝置。
在互連網(wǎng)上,由于大部份的通信量皆是由TCP來(lái)承載的,因此,為了追求有效率的帶寬應(yīng)用,相關(guān)于網(wǎng)絡(luò)通信量管理所進(jìn)行的努力及嘗試,絕大部份皆是針對(duì)著TCP相關(guān)的課題而進(jìn)行的。許多商業(yè)上可以取得的,裝設(shè)在公司企業(yè)網(wǎng)絡(luò)邊緣,用以執(zhí)行網(wǎng)絡(luò)管理策略的帶寬管理裝置,多是以排隊(duì)技術(shù)為基礎(chǔ)。目前,大部份的企業(yè)網(wǎng)絡(luò)邊緣帶寬管理硬件與軟件產(chǎn)品,皆是采用在前向,或呼出方向上進(jìn)行處理的,純不知覺(jué)TCP(pure TCP-unaware)的排程器(scheduler)。其他者則采用知覺(jué)TCP的附加模塊,以主動(dòng)方式來(lái)控制TCP源的行為。其中有些產(chǎn)品,宣稱(chēng)能夠利用主動(dòng)地變動(dòng)反向的確認(rèn)中的窗口大小,并在精確的時(shí)序控制之下將此些確認(rèn)送回,而得以將TCP流調(diào)節(jié)至最佳狀態(tài)。
就某種意義而言,不知覺(jué)TCP的排程作法,乃是依賴(lài)排程器來(lái)決定下一個(gè)封包應(yīng)由那個(gè)前向隊(duì)列送出的一種簡(jiǎn)單的排隊(duì)。另一方面,知覺(jué)TCP的附加模塊,則是依據(jù)反映通信量狀況的參數(shù),而對(duì)封包的傳輸進(jìn)行主動(dòng)性的調(diào)節(jié)。
由于UDP(用戶(hù)數(shù)據(jù)報(bào)協(xié)議)通信協(xié)議存在的緣故,就帶寬管理而言,通常是一定必須應(yīng)用到一般性的,不知覺(jué)TCP的封包排程器的。目前,在公司企業(yè)領(lǐng)域內(nèi)所采用的大部份的帶寬管理策略,皆是基于群組的(class-based)。在此類(lèi)管理策略中所采用的流量分類(lèi)方式是依據(jù)預(yù)先決定的標(biāo)準(zhǔn),而將各隊(duì)列群組中的數(shù)據(jù)流加以分類(lèi),以形成群組。其每一群組(即,隊(duì)列)之中可能會(huì)包含有相當(dāng)大量的數(shù)據(jù)流。不過(guò),由于網(wǎng)絡(luò)中TCP窗口與帶寬延遲乘積(BDP)兩者之間的不匹配性的緣故,在一個(gè)排程器中共用相同一個(gè)隊(duì)列的多重TCP數(shù)據(jù)流,將無(wú)可必免地,會(huì)在邊緣裝置之中,會(huì)有大空間緩沖器的需求。
大型的緩沖器會(huì)造成較大的等待時(shí)間,以及高頻度的緩沖器溢流情形。其結(jié)果是,在此類(lèi)排程器中,隊(duì)列中的封包,在能夠經(jīng)由網(wǎng)絡(luò)進(jìn)行傳送前,必須等待相當(dāng)長(zhǎng)的時(shí)間。此外,各自具有異種往返路程時(shí)間(RTT),并在同一隊(duì)列之中互相競(jìng)爭(zhēng)的各TCP流之間的公平性問(wèn)題,仍是無(wú)法獲得適當(dāng)?shù)慕鉀Q。如同前述,較大的緩沖器以及其較長(zhǎng)的延遲需求,是因TCP窗口與BDP兩者之間的不匹配性所引起的,但公平性的問(wèn)題則是由于TCP本身的性質(zhì)所造成的。
針對(duì)此些問(wèn)題,現(xiàn)有技術(shù)中有人提出一些知覺(jué)TCP的方法,其試圖依據(jù)結(jié)合兩種主要的動(dòng)作來(lái)獲得TCP流的最佳化。其第一種是已知為窗口大小調(diào)整的作法,其中牽涉到試圖測(cè)量RTT、計(jì)算BDP后,調(diào)整TCP確認(rèn)中窗口的大小。第二種則是調(diào)節(jié)TCP所發(fā)出的確認(rèn)的定步(pacing),其即為已知的確認(rèn)定步的作法。同時(shí)采用了此兩種調(diào)節(jié)動(dòng)作的一種特別類(lèi)型的TCP流速控制技術(shù),為已知的TCR。依據(jù)此種TCR技術(shù),商業(yè)上可以購(gòu)得的一些產(chǎn)品,包括有美國(guó)加利福尼亞州P確認(rèn)eteer,Inc.的P確認(rèn)etShaper,麻薩諸塞州Sitara Networks,Inc.的QoSWorks,加利福尼亞州Allot Communications的NetEnforcer,加利福尼亞州Netreality的WiseWan,德克薩斯州NetGuard,Inc.的GuidanPro,以及中國(guó)臺(tái)灣新竹的AcuteCommunications Corporation的IPolicer等。
不過(guò),已知技術(shù)中此些以隊(duì)列排隊(duì)為基礎(chǔ),并知覺(jué)TCP的最佳化作法,仍須承受并未廣為人知的至少兩種缺點(diǎn)。首先,由于窗口縮小的緣故,當(dāng)出現(xiàn)封包失落的情況時(shí),其執(zhí)行的效率,比起純以排隊(duì)為基礎(chǔ)的作法(即不知覺(jué)TCP的該些作法),顯然要來(lái)得較差。其次,其對(duì)于TCP發(fā)送端(sender)的控制的有效性,在不同的作業(yè)系統(tǒng)之下,會(huì)有相當(dāng)?shù)牟町悺_@是由于不同的作業(yè)系統(tǒng)各皆使用了諸如重傳送計(jì)時(shí)器等不同細(xì)節(jié)作法的緣故。換句話說(shuō),此些確認(rèn)控制模塊的執(zhí)行特性,會(huì)受不同發(fā)送端OS種類(lèi)及版本的影響的。
發(fā)明目的因此,本發(fā)明的一目的即在于提供一種采用后確認(rèn)控制的TCP通信量帶寬管理方法及裝置,其可以減低由于互連網(wǎng)上封包失落情況所引起的效率減損情形。
本發(fā)明的另一目的在于提供一種采用后確認(rèn)控制的TCP通信量帶寬管理方法及裝置,其可以無(wú)關(guān)于所采用的作業(yè)系統(tǒng),而有效率地進(jìn)行操作。
本發(fā)明的再一目的在于提供一種采用后確認(rèn)控制的TCP通信量帶寬管理方法及裝置,其數(shù)據(jù)隊(duì)列只需使用遠(yuǎn)為較小的緩沖器空間。
本發(fā)明的又一目的在于提供一種采用后確認(rèn)控制的TCP通信量帶寬管理方法及裝置,其緩沖器的延遲較短。
本發(fā)明又提供利用一后確認(rèn)帶寬管理裝置而對(duì)一通信網(wǎng)絡(luò)上的TCP通信量進(jìn)行帶寬管理的一種方法,該裝置包含有一前向數(shù)據(jù)控制器,可將該TCP通信量的出離數(shù)據(jù)加以暫存排序,一反向確認(rèn)控制器,可將該TCP通信量的進(jìn)入確認(rèn)加以暫存排序,與一后確認(rèn)控制機(jī)。本發(fā)明方法的步驟包含有首先將該TCP通信量的該些進(jìn)入確認(rèn)暫存排序于該反向確認(rèn)隊(duì)列中,以及,其次當(dāng)該前向數(shù)據(jù)隊(duì)列因該些被暫時(shí)排序的出離數(shù)據(jù)被送至該出離數(shù)據(jù)的接收者而至少被局部清空時(shí),依續(xù)容許該反向確認(rèn)控制器的隊(duì)列將其中所排序的該些每一進(jìn)入確認(rèn)逐一釋回給該出離數(shù)據(jù)的發(fā)送端。
本發(fā)明的前述目的及其他特征與優(yōu)點(diǎn),在以下參考附圖,配合說(shuō)明而非限定性質(zhì)的較佳實(shí)施例而進(jìn)行詳細(xì)說(shuō)明后,當(dāng)可更易于獲得了解。附圖中
圖1為一方框圖,其以示意方式顯示一典型TCP帶寬管理系統(tǒng)的模型;圖2為一方框圖,其顯示采用了已知TCR作法的一TCP帶寬管理系統(tǒng)的模型;
圖3為一方框圖,其顯示采用了依據(jù)本發(fā)明一較佳實(shí)施例的后確認(rèn)控制作法的一TCP帶寬管理裝置的模型;圖4顯示圖3的TCP帶寬管理裝置的狀態(tài)機(jī);與圖5為一方框圖,其顯示在本發(fā)明的帶寬管理裝置中執(zhí)行后確認(rèn)控制法的后確認(rèn)控制機(jī)(control machine)的一實(shí)施例。
由TCP所執(zhí)行的另一種流量控制機(jī),可以容許接接收端(receiver),在其回送給發(fā)送端的知悉訊息中,對(duì)發(fā)送端宣告其未經(jīng)占用的緩沖器大小。此種作法,可以避免發(fā)送端造成接接收端出現(xiàn)緩沖器滿(mǎn)溢的情形。被滿(mǎn)溢的緩沖器極可能會(huì)造成傳輸封包失落的情形。在這樣的機(jī)制中,一個(gè)TCP發(fā)送端需要維護(hù)兩個(gè)窗口參數(shù)Wc(擁塞窗口)與Wr(接收端通知窗口),其分別代表網(wǎng)絡(luò)以及接收端的“容許發(fā)送但尚未被確認(rèn)送達(dá)”的最大數(shù)量的封包。為了能夠同時(shí)滿(mǎn)足網(wǎng)絡(luò)及接收端兩者的負(fù)載容量,發(fā)送端會(huì)采用兩參數(shù)中較小的值來(lái)設(shè)定其窗口,其最終可以決定即時(shí)的流率。雖然目前運(yùn)作中的有各種的TCP版本,但其基礎(chǔ)特性是相同的。
圖1為一方框圖,其以示意方式顯示一典型TCP帶寬管理系統(tǒng)的模型。在此系統(tǒng)之中,必須采用不知覺(jué)TCP的模塊,雖然其亦可以額外再采用知覺(jué)TCP的附加作法。此模型是用來(lái)顯示在一個(gè)LAN(局域網(wǎng))與一個(gè)WAN(廣域網(wǎng))之間操作的一個(gè)TCP通信量帶寬管理裝置,其用以追求網(wǎng)絡(luò)帶寬的有效率應(yīng)用的一種基礎(chǔ)系統(tǒng)。此模型亦可用來(lái)界定在此類(lèi)網(wǎng)絡(luò)環(huán)境之中的各種基本名詞定義,以利本發(fā)明的說(shuō)明。裝設(shè)在一企業(yè)網(wǎng)絡(luò)180邊緣的一個(gè)帶寬管理系統(tǒng)100,負(fù)責(zé)企業(yè)對(duì)一個(gè)WAN 170(例如互連網(wǎng))進(jìn)行擷取時(shí)的管理。當(dāng)然,由企業(yè)本身的觀點(diǎn)而言,其所進(jìn)行的擷取動(dòng)作,牽涉到進(jìn)入與離開(kāi)企業(yè)的通信量。在后面的說(shuō)明段落中,出離的方向被界定為,由一來(lái)源端(諸如位于企業(yè)網(wǎng)絡(luò)180中者),朝向一目的端(諸如位于外部的WAN 180中者),承載前送信息流的方向,而進(jìn)入的方向則被界定為,其反向承載的信息流的方向。
在某些情況之下,由于企業(yè)使用者對(duì)于外界網(wǎng)絡(luò)上的各種信息來(lái)源進(jìn)行擷取的緣故,進(jìn)入的通信量會(huì)比出離者來(lái)得繁重。在其他的情況中,例如,當(dāng)企業(yè)是為一個(gè)可為互連網(wǎng)上的使用者提供服務(wù)的網(wǎng)站時(shí),出離的通信量便會(huì)是較為繁重者。
帶寬管理系統(tǒng)100包含有一個(gè)前向數(shù)據(jù)控制器(FDC)110與一個(gè)反向確認(rèn)控制器(BAC)120。BAC 120可為每一個(gè)通過(guò)的TCP流保留一個(gè)反向確認(rèn)隊(duì)列(BAB,backward acknowledgement bucket)。每一個(gè)通信量群組皆各有其對(duì)應(yīng)的FDQ(前向數(shù)據(jù)隊(duì)列),而每一個(gè)TCP流則各自具有其對(duì)應(yīng)的BAB。由于一個(gè)通信量群組時(shí)常會(huì)在其自身中具有混合成組的TCP流,因此一個(gè)FDQ同時(shí)便會(huì)與數(shù)個(gè)BAB互相對(duì)應(yīng)。例如,F(xiàn)DC 110中的每一個(gè)FDQ 111,112,...113皆各擁有其各自對(duì)應(yīng)帶寬的通信量群組。由公司網(wǎng)絡(luò)180中的多個(gè)TCP發(fā)送端所產(chǎn)生的數(shù)據(jù)流之中的封包,由群組分類(lèi)器PCC(per-class classifier)118加以分組,以各自進(jìn)入其對(duì)應(yīng)的FDQ中。在此個(gè)一般性的例子中,F(xiàn)DC110中的各FDQ乃是在一種不知覺(jué)TCP的作法下運(yùn)作的。每一個(gè)FDQ中的數(shù)據(jù),是在某種不知覺(jué)TCP的運(yùn)作下,在一個(gè)單純的隊(duì)列之中等待被送出。
圖1中的模型顯現(xiàn)的是,企業(yè)網(wǎng)絡(luò)180中的一個(gè)數(shù)據(jù)源Si啟動(dòng)了一個(gè)TCP流i,以便傳輸?shù)竭_(dá)WAN 170中的一個(gè)目的地Di。一個(gè)前向數(shù)據(jù)串流中的出離的封包,被佇排于FDQ 111-113中,直至被以群組為基礎(chǔ)的排隊(duì)(CBQ,class-based queuing)程序進(jìn)行排程以便送出時(shí)為止。此TCP傳輸?shù)哪康牡谼i會(huì)經(jīng)由WAN 170,利用立即送回一個(gè)進(jìn)入的反向的確認(rèn)流,而通知發(fā)送源,表示其已成功地接收到數(shù)據(jù)封包。送進(jìn)來(lái)的確認(rèn)被擋于BAC 120的一個(gè)對(duì)應(yīng)的反向確認(rèn)隊(duì)列之中。BAC 120具有一個(gè)數(shù)量的確認(rèn)隊(duì)列121,其將分出連線的封包分類(lèi)器(PFC,per-flow classifier)128進(jìn)行分類(lèi)所得數(shù)據(jù)流i的確認(rèn)加以排隊(duì),以便將目的地Di所送回的確認(rèn)暫時(shí)地加以保留,并保留直到該些確認(rèn)最后終于被遞送到企業(yè)網(wǎng)絡(luò)180中的原始發(fā)送端Si時(shí)為止。注意到,對(duì)于已知的帶寬管理系統(tǒng)而言,BAC 120是選擇性而非絕對(duì)必要的。換句話說(shuō),在某些已知系統(tǒng)之中,來(lái)自于目的地Di的反向確認(rèn),可能是被直接地傳遞回到企業(yè)網(wǎng)絡(luò)中的發(fā)送端Si的。
圖2為一方框圖,其顯示采用了已知TCR作法的一TCP帶寬管理系統(tǒng)的模型。此已知技術(shù)模型,在此被用來(lái)與本發(fā)明的裝置與方法互相比較,以利用說(shuō)明本發(fā)明的細(xì)節(jié)。注意到,典型以TCR為基礎(chǔ)的帶寬管理系統(tǒng),試圖增進(jìn)圖2中反向確認(rèn)控制器BAC 220的功能。其采用一個(gè)往返路程時(shí)間測(cè)量模塊230來(lái)獲得BDP的近似值,并據(jù)以縮小確認(rèn)中所通告的窗口大小。由于此種窗口大小調(diào)整的結(jié)果,F(xiàn)DC 210及BAC 220中隊(duì)列時(shí)間便可以最小化。此種已知的TCR排程作法更進(jìn)一步利用與BAB 221,222,...與223互相配合的確認(rèn)定步控制器231,232,...與233,利用兩者間的合作,以固定的時(shí)間間隔來(lái)釋放每一個(gè)TCP流的確認(rèn)。圖中以△i來(lái)標(biāo)示的,一數(shù)據(jù)流i中的兩接續(xù)確認(rèn)的間的時(shí)間間隔,簡(jiǎn)單地利用數(shù)據(jù)封包大小MSSi除以目標(biāo)帶寬,而計(jì)算出來(lái)的(MSSi/μfi)。此種系統(tǒng)的作法,由于其對(duì)窗口大小的調(diào)整,至少會(huì)受到兩種不利副作用的影響。
首先,由于由TCR所管制的數(shù)據(jù)流中的確認(rèn)中的窗口大小已有縮小,故由一種典型以TCR為基礎(chǔ)的系統(tǒng)所管理的帶寬,在WAN上因發(fā)生封包失落的狀況時(shí),會(huì)有更顯著的縮減。由于此種窗口縮減的作法,當(dāng)發(fā)生封包失落的情況時(shí),一個(gè)TCP源會(huì)將已經(jīng)被縮小的窗口,再進(jìn)一步地予以縮小。此種窗口雙重縮減的情形會(huì)導(dǎo)致系統(tǒng)性能的額外衰減。其次,在某些情況下,當(dāng)被設(shè)定給某些流量的測(cè)得的BDP較小(小于約五個(gè)封包大小)時(shí),由于被容許進(jìn)入網(wǎng)絡(luò)管路中的封包的數(shù)量亦變得相對(duì)較少的緣故,一旦有封包失落的情況發(fā)生,極可能接收端便無(wú)法有足夠數(shù)量的確認(rèn)來(lái)觸發(fā)一次TDA(Triple Duplicate Acks,三次重復(fù)確認(rèn))事件以重新發(fā)送該封包,而必須在RTO(重傳送時(shí)間到期)信號(hào)發(fā)出以后才得以重新傳送該些封包。問(wèn)題是在于,許多BSD0S版本的RTO事件觸發(fā)時(shí)間為至少500ms(時(shí)常會(huì)大于1,000ms)。當(dāng)發(fā)生封包失落的情況時(shí),這會(huì)嚴(yán)重地遲緩發(fā)送端的再發(fā)送機(jī)制的動(dòng)作,其結(jié)果是帶寬的嚴(yán)重浪費(fèi)。
圖3為一方框圖,其顯示采用了依據(jù)本發(fā)明一較佳實(shí)施例的后確認(rèn)控制作法的一TCP帶寬管理裝置的模型。注意到,為了方便說(shuō)明本發(fā)明的緣故,此實(shí)施例中所應(yīng)用的FDC 310只顯示有一個(gè)隊(duì)列FDQ311,其對(duì)應(yīng)于網(wǎng)絡(luò)管理者所售定的某一帶寬群組。被分類(lèi)進(jìn)入FDQ 311中的TCP流,在BAC 320之中各有其對(duì)應(yīng)的BAB 321,322,...與323。帶寬管理裝置300可以被裝設(shè)在一個(gè)公司網(wǎng)絡(luò)380的邊緣390之處。其負(fù)責(zé)企業(yè)對(duì)一個(gè)WAN 370,例如互連網(wǎng),進(jìn)行擷取時(shí)的管理。其擷取動(dòng)作,如同可以理解的,由企業(yè)網(wǎng)絡(luò)380本身的觀點(diǎn)而言,可以牽涉到進(jìn)入及出離通信量的雙向流動(dòng)。如同一般可見(jiàn)的情況,進(jìn)入及出離的通信量,可能是不平衡的。其偏重依系統(tǒng)所牽涉的公司企業(yè)的擷取需求而定。換句話說(shuō),在某些情況下,進(jìn)入的通信量會(huì)比出離者來(lái)得較重,但在其他情況之中,則是相反的情形。不過(guò),依據(jù)本發(fā)明的方法及其裝置所執(zhí)行的通信量控制,一般而言,僅施加于出離的通信量上。
帶寬管理裝置300包含有(1),一前向數(shù)據(jù)控制器FDC 310,其具有一PCC 118(圖3中并未示出)與數(shù)個(gè)FDQ,諸如FDQ 311,(2),一反向確認(rèn)控制器BAC 320,其包含有數(shù)組的反向確認(rèn)隊(duì)列BAB,例如,其中一組包含有與混合在FDQ 311內(nèi)的數(shù)據(jù)流相對(duì)應(yīng)的BAB 321,322,...與323,以及(3),一后確認(rèn)控制機(jī)330。FDC 310中的FDQ 311具有由數(shù)個(gè)緩沖寄存器所組成的隊(duì)列空間,可供企業(yè)網(wǎng)絡(luò)380中的使用者的出離數(shù)據(jù)的排隊(duì)用。注意到,在此實(shí)施例中的FDQ 311是為一FDC中的FDQ中之一,其在BAC中有數(shù)個(gè)BAB對(duì)應(yīng)至此FDQ 311上,如同圖中所清楚顯示的情形。來(lái)源出自于企業(yè)網(wǎng)絡(luò)380內(nèi)的數(shù)據(jù)源S1,S2,...Sn,并且將被送至分散于外部WAN 370中對(duì)應(yīng)目的地D1,D2,...Dn的所有數(shù)據(jù)封包,皆被PCC(118)分類(lèi)進(jìn)入其對(duì)應(yīng)的FDQ,即FDQ 311之中。在一實(shí)施例之中,此些混合的封包,可利用一種單純的,先來(lái)先予服務(wù)(first-come-first-serve)的方式送出。此種FDQ程序可以減低硬件施行時(shí)的復(fù)雜度。在相反的方向上,針對(duì)由Di至Si的通過(guò)的TCP確認(rèn)流,BAC 320則包含有個(gè)別分離的隊(duì)列(BAB)。在本發(fā)明一較佳實(shí)施例之中,BAB 320中隊(duì)列的總數(shù)量,應(yīng)足夠大到可以應(yīng)付可能同時(shí)會(huì)擷取WAN 380的數(shù)據(jù)源的最大數(shù)目。在圖3的實(shí)施例的情況之中,總共必須要有至少n個(gè)確認(rèn)隊(duì)列321,322,...323,以便符合企業(yè)網(wǎng)絡(luò)380中n個(gè)數(shù)據(jù)源S1,S2,...Sn的需求。
在此應(yīng)予強(qiáng)調(diào)的是,與已知的TCR技術(shù),利用測(cè)量一數(shù)據(jù)流的RTT,并再于TCP確認(rèn)之中重寫(xiě)窗口大小參數(shù),以逼近BDP的作法有所不同的,本發(fā)明所揭示的后確認(rèn)控制的觀念,可以被認(rèn)為是確認(rèn)定步化作法的一種開(kāi)關(guān)式變化作法,其所執(zhí)行的是確認(rèn)定步化的開(kāi)關(guān)狀態(tài)的精確控制。當(dāng)確認(rèn)定步化動(dòng)作開(kāi)動(dòng)進(jìn)行時(shí),每一TCP連線的確認(rèn)皆各自由其BAB中被均勻地釋放出至Si;當(dāng)一TCP流的確認(rèn)定步化動(dòng)作關(guān)斷時(shí),其均勻釋放的動(dòng)作即停止。
圖5為一方框圖,其顯示在本發(fā)明的帶寬管理裝置中執(zhí)行后確認(rèn)控制法的后確認(rèn)控制機(jī)的一實(shí)施例。后確認(rèn)控制機(jī)330包含有一確認(rèn)定步控制器APC 332。此APC 332負(fù)責(zé)決定,由散布于WAN 370中的目的地D1,D2,...Dn所發(fā)出的每一個(gè)反向確認(rèn),何時(shí)可以被釋放回給企業(yè)網(wǎng)絡(luò)370中其所對(duì)應(yīng)的數(shù)據(jù)源S1,S2,...Sn。當(dāng)反向確認(rèn)由確認(rèn)隊(duì)列BAB 321,322,...323之中被釋放出去,觸發(fā)TCP源來(lái)充填FDQ后,新數(shù)據(jù)才得以接續(xù)地被填入FDQ 311內(nèi)。一個(gè)后確認(rèn)演算法被用來(lái)執(zhí)行此些釋放時(shí)機(jī)的決定動(dòng)作。此演算法以圖4中所顯示的狀態(tài)機(jī)的處理行為模式為基礎(chǔ)。
如同圖4中所顯示的,后確認(rèn)狀態(tài)機(jī)400系為一種二狀態(tài)的狀態(tài)機(jī)。在本發(fā)明的一較佳實(shí)施例之中,其每一個(gè)數(shù)據(jù)流各可以維持擁有其各自的狀態(tài)機(jī)。其兩個(gè)狀態(tài)包含有一個(gè)正常狀態(tài)401與一個(gè)睡眠狀態(tài)402。在正常狀態(tài)401之中,APC 332被容許在接續(xù)的釋放動(dòng)作的間,以之間隔,而由確認(rèn)隊(duì)列321,322,...323中,配以時(shí)序信號(hào)而送出確認(rèn),其中MSSi為數(shù)據(jù)流i的最大段落大小,而μfi則為數(shù)據(jù)流i的目標(biāo)流速。
另一方面,在睡眠狀態(tài)402之中,APC 332則逕自睡眠。在睡眠時(shí),APC 332并不配合時(shí)序信號(hào)送出任何的確認(rèn)至企業(yè)網(wǎng)絡(luò)380之中。其只有在APC 332之中,被以連線為精細(xì)度的統(tǒng)計(jì)機(jī)制(PFA,per-flowaccounting mechanism)將其喚醒時(shí),才會(huì)送出確認(rèn)。PFA會(huì)持續(xù)地監(jiān)控混合于FDQ中每一數(shù)據(jù)流的隊(duì)列長(zhǎng)度占用情況?!皢拘选钡膭?dòng)作會(huì)在FDQilen<1條件成真之前發(fā)生。此種情況表示,APC 332的分出連線的封包分類(lèi)器(per-flow classifier),已發(fā)現(xiàn)數(shù)據(jù)流i已至少局部地清空了其封包隊(duì)列,是為未完全滿(mǎn)注的隊(duì)列(FDQ<1)。在此種情況下,APC 332可以持續(xù)其配以時(shí)序信號(hào),由一數(shù)據(jù)流i的確認(rèn)隊(duì)列BABi之中,將確認(rèn)送出回到企業(yè)網(wǎng)絡(luò)380中的動(dòng)作,以便觸發(fā)數(shù)據(jù)源Si立即地填充FDQ。
相較之下,當(dāng)APC 332察覺(jué)FDQilen>1的條件時(shí),圖4中的狀態(tài)機(jī)便可以進(jìn)入其睡眠狀態(tài)。此種情況表示,分出連線的封包分類(lèi)器已判定,數(shù)據(jù)流i已在前向的方向之中,于其隊(duì)列之中開(kāi)始積聚其隊(duì)列的長(zhǎng)度(FDQ>1)。在此種情況之下,狀態(tài)機(jī)便由正常模態(tài)立即進(jìn)入睡眠模態(tài)。
概要而言,本發(fā)明的帶寬管理裝置所采用的后確認(rèn)控制程序的方法,其控制TCP通信量的作法,在實(shí)質(zhì)上,乃是將應(yīng)予回送到發(fā)送端的回復(fù)確認(rèn)訊息加以“延遲”。此延遲是利用將TCP的目的地所回復(fù)的確認(rèn)加以隊(duì)列暫存,或“拉住不放”而達(dá)成的,而其延遲的時(shí)間長(zhǎng)短程度,則是由后確認(rèn)控制機(jī),依據(jù)整個(gè)網(wǎng)絡(luò)系統(tǒng)的情況,包含企業(yè)網(wǎng)絡(luò)380及外部WAN 370的整體情況而決定的。
此種構(gòu)想,在一種層面上,等于是拖拉一個(gè)進(jìn)行中的行列,如同一條牛的尾巴,以使其變慢,而這表示其定步的控制是由尾端來(lái)控制進(jìn)行的。在另一種意義上,此種概念構(gòu)想可以被想像成為將一TCP傳輸過(guò)程中無(wú)可避免的數(shù)據(jù)流隊(duì)列動(dòng)作,由前端隊(duì)列的作法,改換為后端(尾端)隊(duì)列的作法。換句話說(shuō),原來(lái)在前端所進(jìn)行的TCP數(shù)據(jù)流的隊(duì)列,現(xiàn)在被改換為在后端進(jìn)行TCP確認(rèn)的隊(duì)列。本發(fā)明這樣的作法,可以容許將原先在前端進(jìn)行的數(shù)據(jù)流隊(duì)列所需空間減至最小。其結(jié)果,緩沖器所發(fā)生的延遲遲滯情形,亦可以顯著地降低。
由于一TCP確認(rèn)封包的大小僅為64位,而相較之下,一個(gè)典型的MTU(最大傳輸單位)數(shù)據(jù)封包,則有約1,500位,因此,要對(duì)確認(rèn)進(jìn)行隊(duì)列排程,比之對(duì)數(shù)據(jù)本身進(jìn)行隊(duì)列排程,其所需要的資源,要來(lái)得遠(yuǎn)為較少。此由緩沖器空間的觀點(diǎn)來(lái)觀察。在此一方面,其緩沖器空間大小的縮減是相當(dāng)巨大的,幾達(dá)95%以上(1-(64/1500)=0.957)。
由于本發(fā)明并不測(cè)量RTT來(lái)計(jì)算BDP以縮小TCP窗口大小,因此,利用本發(fā)明所揭示的后確認(rèn)控制程序來(lái)控制TCP通信量,相較之下,會(huì)不受執(zhí)行TCP時(shí)所采用的作業(yè)系統(tǒng)的影響。在實(shí)質(zhì)上,本發(fā)明的方法與裝置是與選用的作業(yè)系統(tǒng)無(wú)關(guān)的。
如此,本發(fā)明采用后確認(rèn)控制程序以進(jìn)行TCP通信量的帶寬管理方法及裝置,其優(yōu)點(diǎn)在于,當(dāng)遭遇網(wǎng)絡(luò)上封包失落的情況時(shí),其仍能有效地執(zhí)行功能。這主要是由于本發(fā)明的方法及裝置并不縮小TCP窗口的事實(shí)。此外,由于在隊(duì)列中被暫存的是TCP確認(rèn)信息,故緩沖器的空間需求便得以大幅縮減。再者,本發(fā)明的后確認(rèn)控制程序亦與作業(yè)系統(tǒng)無(wú)直接關(guān)聯(lián)。其所設(shè)立的帶寬管理策略,并不受到因?yàn)椴煌鳂I(yè)系統(tǒng)所造成的,性能特性上變動(dòng)的影響。使用者在不需顧慮到管理系統(tǒng)所需執(zhí)行于其下的作業(yè)系統(tǒng)版本的情況之下,可以擁有帶寬管理策略設(shè)計(jì)上的自由度。
雖然前面的描述是本發(fā)明特定實(shí)施例的一個(gè)完整的說(shuō)明,但其各種的修改變化,變動(dòng)的構(gòu)造及等效者的應(yīng)用仍是可能的。因此,前面的描述說(shuō)明即不應(yīng)被賴(lài)以限定本發(fā)明,其范疇?wèi)?yīng)以后附的權(quán)利要求來(lái)加以界定。
權(quán)利要求
1.一種用于通信網(wǎng)絡(luò)上TCP通信量的帶寬管理的裝置,其包含有一前向數(shù)據(jù)控制器,具有至少一隊(duì)列,可供該TCP通信量的出離數(shù)據(jù)的暫存排序;與一反向確認(rèn)控制器,具有一后確認(rèn)控制機(jī),以及各由復(fù)數(shù)個(gè)緩沖寄存器所構(gòu)成的復(fù)數(shù)個(gè)隊(duì)列,該些隊(duì)列可將該TCP通信量的進(jìn)入確認(rèn)加以暫存排序,且后確認(rèn)控制機(jī)包含有一確認(rèn)定步控制器,可控制該反向確認(rèn)控制器中隊(duì)列的排序,當(dāng)該前向數(shù)據(jù)隊(duì)列因該些被暫時(shí)排序的出離數(shù)據(jù)被送至該出離數(shù)據(jù)的接收者而至少被局部清空時(shí),該確認(rèn)定步控制器即依續(xù)容許該反向確認(rèn)控制器將其中所排序的該些每一進(jìn)入確認(rèn)逐一釋回給該出離數(shù)據(jù)的發(fā)送端。
2.根據(jù)權(quán)利要求1的裝置,其中該前向數(shù)據(jù)控制器還包含有復(fù)數(shù)個(gè)組成單一隊(duì)列的緩沖寄存器。
3.根據(jù)權(quán)利要求1的裝置,其中該反向確認(rèn)控制器所具有的復(fù)數(shù)個(gè)隊(duì)列不少于同時(shí)發(fā)送該些出離數(shù)據(jù)的數(shù)據(jù)源的最大數(shù)量。
4.根據(jù)權(quán)利要求1的裝置,其中該通信網(wǎng)絡(luò)為互連網(wǎng)。
5.根據(jù)權(quán)利要求1的裝置,其中該通信網(wǎng)絡(luò)為一公司網(wǎng)絡(luò)。
6.根據(jù)權(quán)利要求1的裝置,其中該后確認(rèn)控制機(jī)的該確認(rèn)定步控制器為一狀態(tài)機(jī),該狀態(tài)機(jī)在包含有一正常狀態(tài)及一睡眠狀態(tài)的至少二狀態(tài)中動(dòng)作,該狀態(tài)機(jī)在該前向數(shù)據(jù)隊(duì)列被至少局部清空時(shí),即由該睡眠狀態(tài)變換進(jìn)入該正常狀態(tài),且在該前向數(shù)據(jù)隊(duì)列被填滿(mǎn)時(shí),即由該正常狀態(tài)變換進(jìn)入該睡眠狀態(tài)。
7.一種用于一通信網(wǎng)絡(luò)上TCP通信量的帶寬管理的裝置,其包含有一前向數(shù)據(jù)控制器,具有至少一隊(duì)列,可供該TCP通信量的出離數(shù)據(jù)的暫存排序;與一反向確認(rèn)控制器,具有一后確認(rèn)控制機(jī),以及各由復(fù)數(shù)個(gè)緩沖寄存器所構(gòu)成的復(fù)數(shù)個(gè)隊(duì)列,該些隊(duì)列可將該TCP通信量的進(jìn)入確認(rèn)加以暫存排序,且后確認(rèn)控制機(jī)包含有一狀態(tài)機(jī),該狀態(tài)機(jī)在包含有一正常狀態(tài)及一睡眠狀態(tài)的至少二狀態(tài)之間動(dòng)作,該狀態(tài)機(jī)在該前向數(shù)據(jù)控制器被至少局部清空時(shí),即由該睡眠狀態(tài)變換進(jìn)入該正常狀態(tài),且在該前向數(shù)據(jù)隊(duì)列被填滿(mǎn)時(shí),即由該正常狀態(tài)變換進(jìn)入該睡眠狀態(tài),且該后確認(rèn)控制機(jī)利用當(dāng)該狀態(tài)機(jī)進(jìn)入該正常狀態(tài)時(shí),依續(xù)容許該反向確認(rèn)控制器將其隊(duì)列中所排序的該些每一進(jìn)入確認(rèn)逐一釋回給該出離數(shù)據(jù)的發(fā)送端,而控制該反向確認(rèn)控制器的排序。
8.根據(jù)權(quán)利要求7的裝置,其中該前向數(shù)據(jù)控制器還包含有復(fù)數(shù)個(gè)組成單一隊(duì)列的緩沖寄存器。
9.根據(jù)權(quán)利要求7的裝置,其中該反向確認(rèn)控制器所具有的復(fù)數(shù)個(gè)隊(duì)列不少于同時(shí)發(fā)送該些出離數(shù)據(jù)的數(shù)據(jù)源的最大數(shù)量。
10.根據(jù)權(quán)利要求7的裝置,其中該通信網(wǎng)絡(luò)為互連網(wǎng)。
11.根據(jù)權(quán)利要求7的裝置,其中該通信網(wǎng)絡(luò)為一公司網(wǎng)絡(luò)。
12.一種用于互連網(wǎng)上TCP通信量的帶寬管理的裝置,其包含有一前向數(shù)據(jù)控制器,具有至少一隊(duì)列,可供該TCP通信量的出離數(shù)據(jù)的暫存排序;與一反向確認(rèn)控制器,具有一后確認(rèn)控制機(jī),以及各由復(fù)數(shù)個(gè)緩沖寄存器所構(gòu)成的復(fù)數(shù)個(gè)隊(duì)列,該些隊(duì)列可將該TCP通信量的進(jìn)入確認(rèn)加以暫存排序,且后確認(rèn)控制機(jī)包含有一狀態(tài)機(jī),該狀態(tài)機(jī)系在包含有一正常狀態(tài)及一睡眠狀態(tài)的至少二狀態(tài)之間動(dòng)作,該狀態(tài)機(jī)在該前向數(shù)據(jù)控制器被至少局部清空時(shí),即由該睡眠狀態(tài)變換進(jìn)入該正常狀態(tài),且在該前向數(shù)據(jù)隊(duì)列被填滿(mǎn)時(shí),即由該正常狀態(tài)變換進(jìn)入該睡眠狀態(tài),且該后確認(rèn)控制機(jī)利用當(dāng)該狀態(tài)機(jī)進(jìn)入該正常狀態(tài)時(shí),依續(xù)容許該反向確認(rèn)控制器將其隊(duì)列中所排序的該些每一進(jìn)入確認(rèn)逐一釋回給該出離數(shù)據(jù)的發(fā)送端,而控制該反向確認(rèn)控制器的排序。
13.一種利用一后確認(rèn)帶寬管理裝置而對(duì)一通信網(wǎng)絡(luò)上的TCP通信量進(jìn)行帶寬管理的方法,該裝置包含有一前向數(shù)據(jù)控制器,可將該TCP通信量的出離數(shù)據(jù)加以暫存排序;一反向確認(rèn)控制器,可將該TCP通信量的進(jìn)入確認(rèn)加以暫存排序;與一后確認(rèn)控制機(jī);該方法包含有步驟a)將該TCP通信量的該些進(jìn)入確認(rèn)暫存排序于該反向確認(rèn)控制器的隊(duì)列中;與b)當(dāng)該前向數(shù)據(jù)控制器因該些被暫時(shí)排序的出離數(shù)據(jù)被送至該出離數(shù)據(jù)的接收者而至少被局部清空時(shí),依續(xù)容許該反向確認(rèn)控制器將其隊(duì)列中所排序的該些每一進(jìn)入確認(rèn)逐一釋回給該出離數(shù)據(jù)的發(fā)送端。
14.根據(jù)權(quán)利要求13的方法,其中將該TCP通信量的該些進(jìn)入確認(rèn)暫存排序的該步驟a)包含有步驟將該些確認(rèn)暫存排序于一單一隊(duì)列之中。
15.根據(jù)權(quán)利要求13的方法,其中將該TCP通信量的該些進(jìn)入確認(rèn)暫存排序的該步驟a)包含有步驟將該些確認(rèn)暫存排序于具有數(shù)量不少于同時(shí)發(fā)送該些出離數(shù)據(jù)的數(shù)據(jù)源的最大數(shù)量的復(fù)數(shù)個(gè)隊(duì)列的一反向確認(rèn)控制器的隊(duì)列之中。
16.根據(jù)權(quán)利要求13的方法,其中該通信網(wǎng)絡(luò)為互連網(wǎng)。
17.根據(jù)權(quán)利要求13的方法,其中該通信網(wǎng)絡(luò)為一公司網(wǎng)絡(luò)。
全文摘要
可對(duì)一通信網(wǎng)絡(luò)上TCP通信量進(jìn)行帶寬管理的一種裝置,其包含有一前向數(shù)據(jù)控制器與一反向確認(rèn)控制器。前向數(shù)據(jù)控制器具有至少一隊(duì)列,可供該TCP通信量的出離數(shù)據(jù)的暫存排序。反向確認(rèn)控制器,具有一后確認(rèn)控制機(jī),以及各由復(fù)數(shù)個(gè)緩沖寄存器所構(gòu)成的復(fù)數(shù)個(gè)隊(duì)列,可將該TCP通信量的進(jìn)入確認(rèn)加以暫存排序。后確認(rèn)控制機(jī)則包含有一確認(rèn)定步控制器,可控制使該反向確認(rèn)控制器的隊(duì)列內(nèi)封包釋出時(shí)間間隔整齊化。當(dāng)該前向數(shù)據(jù)控制器因該些被暫時(shí)等待的出離數(shù)據(jù)被送至該出離數(shù)據(jù)的接收者而至少被局部清空時(shí),該后確認(rèn)控制即讓確認(rèn)定步控制器容許該反向確認(rèn)控制器將其隊(duì)列中所等待的該些確認(rèn)時(shí)間隔地整齊地逐一釋回給該出離數(shù)據(jù)的發(fā)送端。
文檔編號(hào)H04L12/26GK1416238SQ0113438
公開(kāi)日2003年5月7日 申請(qǐng)日期2001年11月1日 優(yōu)先權(quán)日2001年11月1日
發(fā)明者魏煥云, 林盈達(dá), 曹世強(qiáng) 申請(qǐng)人:智邦科技股份有限公司, 魏煥云, 林盈達(dá), 曹世強(qiáng)