專利名稱:一種計算機網(wǎng)絡tcp流量控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機網(wǎng)絡控制方法,尤其是一種計算機網(wǎng)絡TCP流量控制方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)用戶規(guī)模急劇增大、網(wǎng)絡新應用的不斷發(fā)展,網(wǎng)絡帶寬資源被以P2P為代表的高突發(fā)流量大量侵占,一些關(guān)鍵業(yè)務無法得到保證,完成旨在提高網(wǎng)絡服務質(zhì)量的網(wǎng)絡管理日益困難。在這種背景之下,流量控制技術(shù)作為一種有效的網(wǎng)絡管理手段越來越被網(wǎng)絡研究者和產(chǎn)業(yè)界所重視。流量控制將業(yè)務流進入網(wǎng)絡的流量速率控制在限制范圍內(nèi)。通過流量控制,可以緩解網(wǎng)絡擁塞、為網(wǎng)絡安全提供防御手段以及保證關(guān)鍵業(yè)務的服務質(zhì)量,從而達到優(yōu)化網(wǎng)絡性能、增加可用網(wǎng)絡帶寬、提高網(wǎng)絡服務質(zhì)量的目的。傳統(tǒng)流量控制方法大多數(shù)是基于隊列模型的流量控制算法,例如RED、WFQ,通過緩存或丟棄數(shù)據(jù)包調(diào)節(jié)業(yè)務流速率,并通過隊列的優(yōu)先級調(diào)度完成不同類型業(yè)務流的帶寬分配,對不同業(yè)務流提供不同服務并實現(xiàn)關(guān)鍵業(yè)務的服務質(zhì)量保證。傳統(tǒng)方法存在以下一些不足:1.隊列的排隊延時和調(diào)度延時增加了數(shù)據(jù)包的往返時延。尤其是隊列的規(guī)模較大時,產(chǎn)生的延時將增加,可能會對高實時性要求的業(yè)務流造成影響;2.丟包會造成TCP流的數(shù)據(jù)包重傳,浪費網(wǎng)絡帶寬,降低網(wǎng)絡帶寬的利用率。同時由于TCP協(xié)議的擁塞控制機制會對丟包采取抑制發(fā)送速率的措施,TCP發(fā)送速率會自主下降,導致UDP流過多的占用帶寬,造成了 TCP流和UDP流的不公平性;3.流量控制策略的設(shè)置不夠靈活,所依賴的策略指標不夠全面。大部分流量控制系統(tǒng)不能區(qū)分不同層次上的協(xié)議,尤其是不能針對應用層的業(yè)務類型進行區(qū)分;4.難以保證業(yè)務流之間的流量控制相互獨立,不能針對單個業(yè)務流采用獨立的流量控制結(jié)構(gòu)(以基于隊列的流量控制方法為例,多個業(yè)務流共用一個隊列緩存,業(yè)務流之間的流量控制相互干擾,降低了控制精度)。
發(fā)明內(nèi)容
本發(fā)明提供了一種低延時、控制策略靈活配置、不丟包的計算機網(wǎng)絡TCP流量控制方法。實現(xiàn)本發(fā)明目的的計算機網(wǎng)絡TCP流量控制方法,包括如下步驟:(I)將數(shù)據(jù)包采集后按照自定義格式封裝:在數(shù)據(jù)包原有頭部封裝數(shù)據(jù)包有關(guān)信息、時間戳以及根據(jù)五元組計算的Hash值,封裝完成的數(shù)據(jù)包將送入用戶空間供用戶程序進行解析;(2)根據(jù)用戶配置,構(gòu)建一個五元組規(guī)則庫:該五元組規(guī)則庫主要包括源IP、目的IP、源端口、目的端口和協(xié)議,同時還需要對出入境流量進行區(qū)分,增加對進入物理端口的匹配,匹配成功后得到流量控制策略號;(3)根據(jù)用戶配置,構(gòu)建流表:流表按照業(yè)務流五元組Hash值索引,表項中寫入內(nèi)容為用戶配置的流量控制策略號;(4)比較步驟(2)和步驟(3)分別得到的流量控制策略號,如果二者不等,則選擇步驟(3)所得到的流量控制策略號作為最終結(jié)果;(5)根據(jù)得到的流量控制策略號,系統(tǒng)將業(yè)務流送入對應的速率控制管道,同時用戶將速率管道配置到約定的速率閾值,從而保證業(yè)務流的通過速率不會超過這個速率閾值。本發(fā)明的計算機網(wǎng)絡TCP流量控制方法的有益效果如下:(I)不需要通過緩存通過的數(shù)據(jù)包來降低其速率,因此降低了數(shù)據(jù)包的處理延時;(2)提供了多樣的業(yè)務流匹配方式,既能后完成基于五元組規(guī)則的匹配識別,同時能夠配合上層軟件根據(jù)流量識別特征庫完成業(yè)務流應用協(xié)議的匹配識別。(3)在流量控制過程中,本發(fā)明通過修改ACK確認包中接收端窗口值大小,達到發(fā)送端自主調(diào)節(jié)其發(fā)送速率的目的,從而實現(xiàn)了對TCP流的流量控制。并且在動態(tài)修改接收端窗口過程,對發(fā)送端TCP報文長度實時采樣來估算當前TCP報文段長度,并以此作為修改接收端窗口值的最小單位,以提高控制粒度。由于流量控制過程中不丟棄數(shù)據(jù)包,較好地克服數(shù)據(jù)包重傳問題,提高了網(wǎng)絡帶寬的利用率。(4)通過速率控制管道陣列結(jié)構(gòu)的設(shè)計,使并發(fā)業(yè)務流的速率控制相互獨立,并提供了業(yè)務流級的精確速率控制效果。
圖1為本發(fā)明的計算機網(wǎng)絡TCP流量控制方法的流程圖。
具體實施例方式本發(fā)明的計算機網(wǎng)絡TCP流量控制方法,包括如下步驟:(1)將數(shù)據(jù)包采集后按照自定義格式封裝:在數(shù)據(jù)包原有頭部封裝數(shù)據(jù)包有關(guān)信息、時間戳以及根據(jù)五元組計算的Hash值,封裝完成的數(shù)據(jù)包將送入用戶空間供用戶程序進行解析;(2)根據(jù)用戶配置,構(gòu)建一個五元組規(guī)則庫:該五元組規(guī)則庫主要包括源IP、目的IP、源端口、目的端口和協(xié)議,同時還需要對出入境流量進行區(qū)分,增加對進入物理端口的匹配,匹配成功后得到流量控制策略號;(3)根據(jù)用戶配置,構(gòu)建流表:流表按照業(yè)務流五元組Hash值索引,表項中寫入內(nèi)容為用戶配置的流量控制策略號;(4)比較步驟(2)和步驟(3)分別得到的流量控制策略號,如果二者不等,則選擇步驟(3)所得到的流量控制策略號作為最終結(jié)果;(5)根據(jù)得到的流量控制策略號,系統(tǒng)將業(yè)務流送入對應的速率控制管道,同時用戶將速率管道配置到約定的速率閾值,從而保證業(yè)務流的通過速率不會超過這個速率閾值。如圖1所示,本發(fā)明的計算機網(wǎng)絡TCP流量控制方法的具體實施的步驟如下:(I)為速率管道設(shè)置速率閾值;(2)設(shè)置速率高門限thresholdhig和速率低門限thresholdlow ;
(3)截獲業(yè)務流接收端返回確認包,獲得其接收端窗口值大小;(4)根據(jù)最近Is截獲的返回確認包接收端窗口值大小計算平均接收端窗口大小,作為修改接收端窗口的單位長度,以下稱為單位長度;(5)計算當前業(yè)務流通過速率;(6)當前速率是否超出速率高門限thresholdhigh,如果是,跳轉(zhuǎn)(8);(7)當前速率是否小于速率低門限thresholdlow,如果是,跳轉(zhuǎn)(12);否則跳轉(zhuǎn)
(9);(8)擬修改接收端窗口大小減小至一個單元長度,跳轉(zhuǎn)(10);(9)擬修改接收端窗口大小增加一個單元長度;跳轉(zhuǎn)(10);(10)判斷擬修改后接收端窗口大小是否大于實際接收端窗口值大小,如果小于,跳轉(zhuǎn)(12)算法結(jié)束;(11)修改接收端窗口值;(12)修改結(jié)束;對以上步驟可以概括為:當實際速率大于預約速率閾值時,減小接收端窗口 ;當實際速率小于預約速率閾值時,逐步增加接收端窗口。同時,對超出速率低門限和超出速率高門限兩種越界情況分別采取了不同程度的控制力度,當實際速率超出速率高門限時,接收端窗口馬上降至一個單元長度,目的是保證實際速率不能超出預約速率閾值,當實際速率低于速率低門限時,接收端窗口增加一個單元長度,逐步恢復傳輸速率。在這種控制機制的作用下,實際的速率被控制在速率低門限thresholdlow和速率高門限thresholdhigh兩個門限值之間。本發(fā)明的一種計算機網(wǎng)絡TCP流量控制方法,通過硬件加速處理的方式降低處理延時,通過采取不丟包的方式克服TCP不公平性問題和TCP數(shù)據(jù)包重傳問題,并且提供了靈活的策略制定方式,除此之外設(shè)計了速率控制管道陣列結(jié)構(gòu)保證各個TCP業(yè)務流的速率控制相互獨立。上面所述的實施例僅僅是對本發(fā)明的優(yōu)選實施方式進行描述,并非對本發(fā)明的范圍進行限定,在不脫離本發(fā)明設(shè)計精神前提下,本領(lǐng)域普通工程技術(shù)人員對本發(fā)明技術(shù)方案做出的各種變形和改進,均應落入本發(fā)明的權(quán)利要求書確定的保護范圍內(nèi)。技術(shù)術(shù)語解釋:業(yè)務流:指一個包括通信雙方的源IP、目的IP、源端口、目的端口和協(xié)議的五元組。流量控制策略號:指定速率控制管道的標識。數(shù)據(jù)包捕獲設(shè)備:指計算機系統(tǒng)中,可以從互聯(lián)網(wǎng)上像用戶空間提供數(shù)據(jù)包數(shù)據(jù)的專用硬件設(shè)備。Hash函數(shù):指滿足下列特征的一類函數(shù):1)將有限的定義域映射到有限的值域。2)對于某一確定的輸入,存在一確定的輸出與之對應。3)對于不同的輸入數(shù)據(jù),其輸出結(jié)果也不同。流表:根據(jù)業(yè)務流特征建立數(shù)據(jù)結(jié)構(gòu),流表按照業(yè)務流五元組按照特定Hash函數(shù)(如CRC32)計算的Hash值索引,在流表表項中記錄業(yè)務流有關(guān)信息,在本發(fā)明中流表用于記錄業(yè)務流的流量控制策略號。
權(quán)利要求
1.一種計算機網(wǎng)絡TCP流量控制方法,包括如下步驟: (1)將數(shù)據(jù)包采集后按照自定義格式封裝:在數(shù)據(jù)包原有頭部封裝數(shù)據(jù)包有關(guān)信息、時間戳以及根據(jù)五元組計算的Hash值,封裝完成的數(shù)據(jù)包將送入用戶空間供用戶程序進行解析; (2)根據(jù)用戶配置,構(gòu)建一個五元組規(guī)則庫:該五元組規(guī)則庫主要包括源IP、目的IP、源端口、目的端口和協(xié)議,同時還需要對出入境流量進行區(qū)分,增加對進入物理端口的匹配,匹配成功后得到流量控制策略號; (3)根據(jù)用戶配置,構(gòu)建流表:流表按照業(yè)務流五元組Hash值索引,表項中寫入內(nèi)容為用戶配置的流量控制策略號; (4)比較步驟(2)和步驟(3)分別得到的流量控制策略號,如果二者不等,則選擇步驟(3)所得到的流量控制策略號作為最終結(jié)果; (5)根據(jù)得到的流量控制策略號,系統(tǒng)將業(yè)務流送入對應的速率控制管道,同時用戶將速率管道配置到約定的速率閾值,從而保證業(yè)務流的通過速率不會超過這個速率閾值。
全文摘要
本發(fā)明提供了一種低延時、控制策略靈活配置、不丟包的計算機網(wǎng)絡TCP流量控制方法,包括如下步驟(1)將數(shù)據(jù)包采集后按照自定義格式封裝在數(shù)據(jù)包原有頭部封裝數(shù)據(jù)包有關(guān)信息、時間戳以及根據(jù)五元組計算的Hash值,封裝完成的數(shù)據(jù)包將送入用戶空間供用戶程序進行解析;(2)根據(jù)用戶配置,構(gòu)建一個五元組規(guī)則庫;(3)根據(jù)用戶配置,構(gòu)建流表;(4)比較步驟(2)和步驟(3)分別得到的流量控制策略號,如果二者不等,則選擇步驟(3)所得到的流量控制策略號作為最終結(jié)果;(5)系統(tǒng)將業(yè)務流送入對應的速率控制管道,同時用戶將速率管道配置到約定的速率閾值,從而保證業(yè)務流的通過速率不會超過這個速率閾值。
文檔編號H04L12/801GK103200112SQ201210002440
公開日2013年7月10日 申請日期2012年1月6日 優(yōu)先權(quán)日2012年1月6日
發(fā)明者彭策力, 謝海燕, 王建東 申請人:北京奇策科技有限公司