專利名稱:具有時效性的動態(tài)雙向環(huán)行tcp流緩沖區(qū)建立和執(zhí)行方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)測量方法領(lǐng)域,尤其涉及一種TCP流緩沖區(qū)建立和執(zhí)行方法。
背景技術(shù):
隨著Internet重要性的日益提高和網(wǎng)絡(luò)結(jié)構(gòu)的日益復(fù)雜,越來越有必要對網(wǎng) 絡(luò)的整體拓撲結(jié)構(gòu)和網(wǎng)絡(luò)行為進行深入的了解、分析,以利于發(fā)現(xiàn)網(wǎng)絡(luò)瓶頸,優(yōu) 化網(wǎng)絡(luò)配置,并進一步發(fā)現(xiàn)網(wǎng)絡(luò)中可能存在的潛在危險。為此,需要對大規(guī)模網(wǎng) 絡(luò)結(jié)構(gòu)進行動態(tài)描述,并根據(jù)網(wǎng)絡(luò)流量的變化分析網(wǎng)絡(luò)的性能,為加強網(wǎng)絡(luò)管理、 提高網(wǎng)絡(luò)利用率、防范大規(guī)模網(wǎng)絡(luò)攻擊提供技術(shù)平臺。Internet的測量與分析已成 為學術(shù)界、企業(yè)界和國家政府部門普遍關(guān)心的重要問題之一。
網(wǎng)絡(luò)測量的分類標準有多種。根據(jù)測量的方式,分為主動測量和被動測量; 根據(jù)測量點的多少,分為單點測量與多點測量;根據(jù)被測量者知情與否,分為協(xié) 作式測量與非協(xié)作式測量;根據(jù)測量所釆用的協(xié)議,分為基于BGP協(xié)議的測量、 基于TCP/IP協(xié)議的測量以及基于SNMP協(xié)議的測量;根據(jù)測量的內(nèi)容,分為拓 撲測量與性能測量。
在被動測量方式中,記錄網(wǎng)絡(luò)活動的探針被接入到網(wǎng)絡(luò)中,在大多數(shù)情況下 探接到網(wǎng)絡(luò)節(jié)點之間的連接上,匯總和記錄那條連接上業(yè)務(wù)流量的信息。被動測 量主要在一個特殊點觀察網(wǎng)絡(luò)的行為,不增加和修改通過網(wǎng)絡(luò)的數(shù)據(jù)負載,因此 對網(wǎng)絡(luò)的行為沒有影響。這種方法能夠達到對觀察點網(wǎng)絡(luò)行為的詳盡理解,但難 以獲得對網(wǎng)絡(luò)的整體理解,或者對網(wǎng)絡(luò)的端到端行為的理解。被動測量經(jīng)常用于 測量業(yè)務(wù)量的特征。
基于TCP/IP協(xié)議的網(wǎng)絡(luò)性能測量與分析的目的是考察網(wǎng)絡(luò)的穩(wěn)定性、可達 性、可靠性及網(wǎng)絡(luò)服務(wù)質(zhì)量。需周期性、連續(xù)測量的性能參數(shù)包括丟包率、RTT、
流量、路徑的平均跳數(shù)等;在此基礎(chǔ)上,以時間為主線分析各路徑上各項指標的 動態(tài)變化,以空間為主線統(tǒng)計分析某一時刻整個網(wǎng)絡(luò)的整體態(tài)勢,如處于不同量 級時延的節(jié)點總體數(shù)量分布等,分析端到端路由變化(或跳數(shù)的路由變化)。其他 分析還包括,對探測得到的數(shù)據(jù)進行數(shù)據(jù)挖掘,或者利用已有的模型研究其自相 似特征。由于對網(wǎng)絡(luò)性能測量的實時性要求較高,所以探測頻率往往很大,但必 須保證不要由此對網(wǎng)絡(luò)造成較大的額外負荷,同時注意隱藏探測蹤跡。
現(xiàn)在的網(wǎng)絡(luò)測量方法中對流量進行測量時都采用離散的數(shù)據(jù)幀捕獲與分析引 擎,使用這種引擎的優(yōu)勢是與現(xiàn)有計算機網(wǎng)絡(luò)的數(shù)據(jù)傳輸構(gòu)架一致,都是基于獨 立數(shù)據(jù)報結(jié)構(gòu)的通信方式。隨著計算機網(wǎng)絡(luò)技術(shù)的快速發(fā)展,大量的應(yīng)用級協(xié)議 都建立在穩(wěn)定、可靠、無重復(fù)的TCP協(xié)議基礎(chǔ)上。對于這些基于TCP協(xié)議的應(yīng) 用協(xié)議,采用離散的流量分析方法,同樣也只能識別出流頭部的特征數(shù)據(jù)報,而 不能識別流中的大量中間數(shù)據(jù)報,導(dǎo)致分析效果大打折扣。
發(fā)明內(nèi)容
為了克服已有的網(wǎng)絡(luò)測量方法的只能識別流頭部的特征數(shù)據(jù)報、不能識別流 中的大量數(shù)據(jù)、分析效果較差的不足,本發(fā)明提供一種能夠識別大量基于TCP協(xié) 議的、具有流特征的應(yīng)用協(xié)議數(shù)據(jù),還能識別出流頭部的特征數(shù)據(jù)報和流傳輸過 程中的大量中間數(shù)據(jù)報,極大的提高分析效果的具有時效性的動態(tài)雙向環(huán)行TCP 流緩沖區(qū)建立和執(zhí)行方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是
一種具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)建立和執(zhí)行方法,所述的方法 主要包括以下步驟
(l)監(jiān)聽并捕獲網(wǎng)絡(luò)數(shù)據(jù)幀直接從硬件驅(qū)動程序中獲得原始的網(wǎng)絡(luò)數(shù)據(jù)幀,原 始硬件設(shè)備可以是以太網(wǎng)網(wǎng)卡、802.11無線網(wǎng)卡等;捕獲到原始網(wǎng)絡(luò)數(shù)據(jù)幀后對 數(shù)據(jù)幀進行分析,判斷是否是具有TCP協(xié)議頭,如果不是則不處理;
(2) 提取并分析TCP協(xié)議頭
(2. 1)取得源IP地址和端口從TCP協(xié)議頭中將源IP地址和源端口提取出 來;其中源端口存儲方式為網(wǎng)絡(luò)格式的無符號短整形,需要將其前后兩個字節(jié)的 數(shù)據(jù)對調(diào),以轉(zhuǎn)換為本地格式的無符號短整形;
(2. 2)取得目的IP地址和端口從TCP協(xié)議頭中將目的IP地址和目的端口 提取出來;其中目的端口存儲方式為網(wǎng)絡(luò)格式的無符號短整形,需要將其前后兩 個字節(jié)的數(shù)據(jù)對調(diào),以轉(zhuǎn)換為本地格式的無符號短整形;
(3) 建立流標志以源IP地址、源端口、目的IP地址和目的端口為基礎(chǔ)數(shù)據(jù), 組合為一組標志,該標志用于唯一的描述一個TCP流。其中,與標志一致的為正 向TCP流,源地址和目的地址對換后的標志用于描述反向TCP流;
(4) 判斷緩沖區(qū)是否存在依據(jù)流標志,查找是否已經(jīng)建立了對應(yīng)的緩沖區(qū),如 果己經(jīng)存在,則至(6)。
(5) 建立流緩沖區(qū)
(5. 1)建立正向和反向流緩沖區(qū)在內(nèi)存中申請兩個等長度的空間作為正向 和反向流緩沖區(qū)。正向流緩沖區(qū)用于緩存從源IP地址發(fā)向目的IP地址的TCP數(shù) 據(jù),反向流緩沖區(qū)用于緩存從目的IP地址發(fā)向源IP地址的TCP數(shù)據(jù)。緩沖區(qū)長 度是固定的;
(5. 2)設(shè)置緩沖區(qū)有效時間取得當前的系統(tǒng)時鐘的時刻,精度至秒。把當 前時刻加上超時時間后設(shè)置為緩沖區(qū)的有效時間,即如果該緩沖區(qū)在有效時間內(nèi) 沒有更新,則認為該TCP流已經(jīng)斷開,即緩沖區(qū)處于無效狀態(tài);
(5. 3)初始化正向和反向緩沖區(qū)的流位置分別設(shè)置正向和反向緩沖區(qū)的流 位置為0;在剛建立緩沖區(qū)的時候,必然還沒有緩存到任何數(shù)據(jù),所以對于這個 流來說,位置是處于開頭位置;
(6) 記錄數(shù)據(jù)至緩沖區(qū)(6. 1)把數(shù)據(jù)幀負載數(shù)據(jù)加入緩沖區(qū)末尾把捕獲到的TCP協(xié)議數(shù)據(jù)報的負 載數(shù)據(jù)加入到緩沖區(qū)的末尾;
(6. 2)計算新的流位置把流的當前位置加上新加入到緩沖區(qū)的數(shù)據(jù)的長度 的數(shù)值作為最新的流位置,即流位置始終表示整個TCP流在傳輸過程中的當前位 置;
(6. 3)檢査緩沖區(qū)內(nèi)容是否溢出由于緩沖區(qū)的大小是固定的,因此當流的 數(shù)據(jù)超過緩沖區(qū)長度的時候,在把負載數(shù)據(jù)加入到緩沖后必然會導(dǎo)致緩沖區(qū)溢出; 這個時候就需要檢査緩沖區(qū)內(nèi)容是否出現(xiàn)溢出,如果出現(xiàn)溢出則要對緩沖區(qū)頭部 的數(shù)據(jù)進行裁剪;
(6. 4)刪除緩沖區(qū)頭部數(shù)據(jù)以緩沖區(qū)溢出部分長度為標準刪除緩沖區(qū)頭部 的對應(yīng)數(shù)據(jù),并將緩沖區(qū)溢出部分的數(shù)據(jù)移入緩沖區(qū)中;
(7) 檢査緩沖區(qū)是否過期獲取當前系統(tǒng)時刻,精度到秒。把該系統(tǒng)當前時刻與 緩沖區(qū)有效時間進行比較,如果大于緩沖區(qū)有效時間,則表示該緩沖區(qū)已經(jīng)超時,
至(9)。
(8) 設(shè)置緩沖區(qū)有效時間獲取當前系統(tǒng)時刻,精度到秒。把系統(tǒng)當前時刻加上 緩沖區(qū)超時時間作為新的緩沖區(qū)有效時間。循環(huán)至(1)處理。
(9) 銷毀緩沖區(qū)該TCP流已經(jīng)中止,則對應(yīng)的緩沖區(qū)也就不再有作用,所以 釋放相關(guān)的緩沖區(qū)內(nèi)存,中止緩沖區(qū)的工作。
本發(fā)明的技術(shù)構(gòu)思為在現(xiàn)有流量分析的離散分析方法基礎(chǔ)上,對TCP協(xié)議
以及基于TCP協(xié)議的應(yīng)用協(xié)議中流式數(shù)據(jù)進行具有時效性的動態(tài)雙向緩存,達到
更好的分析效果?,F(xiàn)在的網(wǎng)絡(luò)測量方法中對流量進行測量時都釆用離散的數(shù)據(jù)幀
捕獲與分析引擎。在分析TCP數(shù)據(jù)流的時候,現(xiàn)有的離散分析方法只能識別出 TCP流前面部分的一個或幾個數(shù)據(jù)報,而不能識別出整個數(shù)據(jù)流在傳輸過程中的 所有數(shù)據(jù)報。隨著計算機網(wǎng)絡(luò)技術(shù)的快速發(fā)展,大量的應(yīng)用級協(xié)議都建立在穩(wěn)定、
可靠、無重復(fù)的TCP協(xié)議基礎(chǔ)上。對于這些基于TCP協(xié)議的應(yīng)用協(xié)議,采用離 散的流量分析方法,同樣也只能識別出流頭部的特征數(shù)據(jù)報,而不能識別流中的 大量中間數(shù)據(jù)報,導(dǎo)致分析效果大打折扣。
本發(fā)明提出了一種具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)建立方法。該方 法能夠在進行流量分析的時候,對具有流特征的大量TCP協(xié)議以及以TCP協(xié)議 為基礎(chǔ)的應(yīng)用協(xié)議的數(shù)據(jù)流進行部分緩存,并階段性的保存整個流的雙向傳輸狀 態(tài),記錄特定時間段內(nèi)的協(xié)議特征。能夠識別大量基于TCP協(xié)議的、具有流特征 的應(yīng)用協(xié)議數(shù)據(jù),還能識別出流頭部的特征數(shù)據(jù)報和流傳輸過程中的大量中間數(shù) 據(jù)報,極大的提高分析效果。
本發(fā)明的有益效果主要表現(xiàn)在1、使TCP流緩沖區(qū)具有時效性,能夠適應(yīng)狀 態(tài)控制數(shù)據(jù)丟失的情況;2、采用雙向緩沖區(qū)結(jié)構(gòu),能對正向和反向的TCP流進行 統(tǒng)一管理;3、采用環(huán)形緩沖區(qū)存儲,可以有效的節(jié)約內(nèi)存開銷,提高數(shù)據(jù)存取速 度。
圖1是具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)建立和執(zhí)行方法的流程圖。 圖2是具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)分析軟件的結(jié)構(gòu)圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作進一步描述。
一種具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)建立和執(zhí)行方法,所述的方法 主要包括以下步驟
(1) 監(jiān)聽并捕獲網(wǎng)絡(luò)數(shù)據(jù)幀直接從硬件驅(qū)動程序中獲得原始的網(wǎng)絡(luò)數(shù)據(jù)幀,原 始硬件設(shè)備可以是以太網(wǎng)網(wǎng)卡、802.11無線網(wǎng)卡等;捕獲到原始網(wǎng)絡(luò)數(shù)據(jù)幀后對 數(shù)據(jù)幀進行分析,判斷是否是具有TCP協(xié)議頭,如果不是則不處理;
(2) 提取并分析TCP協(xié)議頭
(2.1)取得源IP地址和端口 從TCP協(xié)議頭中將源IP地址和源端口提取出 來;其中源端口存儲方式為網(wǎng)絡(luò)格式的無符號短整形,需要將其前后兩個字節(jié)的 數(shù)據(jù)對調(diào),以轉(zhuǎn)換為本地格式的無符號短整形;
(2. 2)取得目的IP地址和端口從TCP協(xié)議頭中將目的IP地址和目的端口 提取出來;其中目的端口存儲方式為網(wǎng)絡(luò)格式的無符號短整形,需要將其前后兩 個字節(jié)的數(shù)據(jù)對調(diào),以轉(zhuǎn)換為本地格式的無符號短整形;
(3) 建立流標志以源IP地址、源端口、目的IP地址和目的端口為基礎(chǔ)數(shù)據(jù), 組合為一組標志,該標志用于唯一的描述一個TCP流。其中,與標志一致的為正 向TCP流,源地址和目的地址對換后的標志用于描述反向TCP流;
(4) 判斷緩沖區(qū)是否存在依據(jù)流標志,査找是否己經(jīng)建立了對應(yīng)的緩沖區(qū),如
果已經(jīng)存在,則至(6)。
(5) 建立流緩沖區(qū)
(5. 1)建立正向和反向流緩沖區(qū)在內(nèi)存中申請兩個等長度的空間作為正向 和反向流緩沖區(qū)。正向流緩沖區(qū)用于緩存從源IP地址發(fā)向目的IP地址的TCP數(shù) 據(jù),反向流緩沖區(qū)用于緩存從目的IP地址發(fā)向源IP地址的TCP數(shù)據(jù)。緩沖區(qū)長 度是固定的;
(5. 2)設(shè)置緩沖區(qū)有效時間取得當前的系統(tǒng)時鐘的時刻,精度至秒。把當 前時刻加上超時時間后設(shè)置為緩沖區(qū)的有效時間,即如果該緩沖區(qū)在有效時間內(nèi) 沒有更新,則認為該TCP流已經(jīng)斷開,即緩沖區(qū)處于無效狀態(tài);
(5. 3)初始化正向和反向緩沖區(qū)的流位置分別設(shè)置正向和反向緩沖區(qū)的流 位置為0;在剛建立緩沖區(qū)的時候,必然還沒有緩存到任何數(shù)據(jù),所以對于這個 流來說,位置是處于開頭位置;
(6) 記錄數(shù)據(jù)至緩沖區(qū)
(6. 1)把數(shù)據(jù)幀負載數(shù)據(jù)加入緩沖區(qū)末尾把捕獲到的TCP協(xié)議數(shù)據(jù)報的負載數(shù)據(jù)加入到緩沖區(qū)的末尾;
(6. 2)計算新的流位置把流的當前位置加上新加入到緩沖區(qū)的數(shù)據(jù)的長度 的數(shù)值作為最新的流位置,即流位置始終表示整個TCP流在傳輸過程中的當前位 置;
(6. 3)檢査緩沖區(qū)內(nèi)容是否溢出由于緩沖區(qū)的大小是固定的,因此當流的 數(shù)據(jù)超過緩沖區(qū)長度的時候,在把負載數(shù)據(jù)加入到緩沖后必然會導(dǎo)致緩沖區(qū)溢出; 這個時候就需要檢查緩沖區(qū)內(nèi)容是否出現(xiàn)溢出,如果出現(xiàn)溢出則要對緩沖區(qū)頭部 的數(shù)據(jù)進行裁剪;
(6. 4)刪除緩沖區(qū)頭部數(shù)據(jù)以緩沖區(qū)溢出部分長度為標準刪除緩沖區(qū)頭部 的對應(yīng)數(shù)據(jù),并將緩沖區(qū)溢出部分的數(shù)據(jù)移入緩沖區(qū)中;
(7) 檢査緩沖區(qū)是否過期獲取當前系統(tǒng)時刻,精度到秒。把該系統(tǒng)當前時刻與 緩沖區(qū)有效時間進行比較,如果大于緩沖區(qū)有效時間,則表示該緩沖區(qū)已經(jīng)超時, 至(9)。
(8) 設(shè)置緩沖區(qū)有效時間獲取當前系統(tǒng)時刻,精度到秒。把系統(tǒng)當前時刻加上 緩沖區(qū)超時時間作為新的緩沖區(qū)有效時間。循環(huán)至(1)處理。
(9) 銷毀緩沖區(qū)該TCP流已經(jīng)中止,則對應(yīng)的緩沖區(qū)也就不再有作用,所以 釋放相關(guān)的緩沖區(qū)內(nèi)存,中止緩沖區(qū)的工作。
參照圖1,本實施例的具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)建立和執(zhí)行
方法,包括以下步驟
第一步直接從硬件驅(qū)動程序中獲得原始的網(wǎng)絡(luò)數(shù)據(jù)幀。捕獲到原始網(wǎng)絡(luò)數(shù) 據(jù)幀后對數(shù)據(jù)幀進行分析。
第二步判斷捕獲到的網(wǎng)絡(luò)數(shù)據(jù)幀是否是具有TCP協(xié)議頭,如果不是則不處理。
第三步從TCP協(xié)議頭中將源IP地址和源端口提取出來。其中源端口存儲
方式為網(wǎng)絡(luò)格式的無符號短整形,需要將其前后兩個字節(jié)的數(shù)據(jù)對調(diào),以轉(zhuǎn)換為 本地格式的無符號短整形。
第四步從TCP協(xié)議頭中將目的IP地址和目的端口提取出來。其中目的端 口存儲方式為網(wǎng)絡(luò)格式的無符號短整形,需要將其前后兩個字節(jié)的數(shù)據(jù)對調(diào),以 轉(zhuǎn)換為本地格式的無符號短整形。
第五步以源IP地址、源端口、目的IP地址和目的端口為基礎(chǔ)數(shù)據(jù),組合 為一組標志,該標志用于唯一的描述一個TCP流。
第六步依據(jù)流標志,査找是否已經(jīng)建立了對應(yīng)的緩沖區(qū),如果已經(jīng)存在, 則跳轉(zhuǎn)至第十步。
第七步在內(nèi)存中申請兩個等長度的空間作為正向和反向流緩沖區(qū)。正向流 緩沖區(qū)用于緩存從源IP地址發(fā)向目的IP地址的TCP數(shù)據(jù),反向流緩沖區(qū)用于緩 存從目的IP地址發(fā)向源IP地址的TCP數(shù)據(jù)。
第八步取得當前的系統(tǒng)時鐘的時刻(單位秒)。把當前時刻加上超時時間 后設(shè)置為緩沖區(qū)的有效時間。
第九步初始化正向和反向緩沖區(qū)的流位置分別設(shè)置正向和反向緩沖區(qū)的 流位置為0。
第十步把捕獲到的TCP協(xié)議數(shù)據(jù)報的負載數(shù)據(jù)加入到緩沖區(qū)的末尾。 第十一步把流的當前位置加上最新加入到緩沖區(qū)的數(shù)據(jù)的長度的數(shù)值作為 最新的流位置。
第十二步檢査緩沖區(qū)內(nèi)容是否出現(xiàn)溢出,如果出現(xiàn)溢出則要對緩沖區(qū)頭部 的數(shù)據(jù)進行裁剪。如果沒有溢出,則跳轉(zhuǎn)至第十四步。
第十三步以緩沖區(qū)溢出部分長度為標準刪除緩沖區(qū)頭部的對應(yīng)數(shù)據(jù),并將 緩沖區(qū)溢出部分的數(shù)據(jù)移入緩沖區(qū)中。
第十四步獲取當前系統(tǒng)時刻(單位秒)。把該系統(tǒng)當前時刻與緩沖區(qū)有效
時間進行比較,如果大于緩沖區(qū)有效時間,則表示該緩沖區(qū)已經(jīng)超時,跳轉(zhuǎn)至第丄i卜.
卞八少。
第十五步獲取當前系統(tǒng)時刻,精度到秒。把系統(tǒng)當前時刻加上緩沖區(qū)超時 時間作為新的緩沖區(qū)有效時間。循環(huán)至第二步處理。
第十六步對應(yīng)TCP流的緩沖區(qū)不再發(fā)揮作用,釋放相關(guān)的緩沖區(qū)內(nèi)存,中 止緩沖區(qū)工作。
參照圖2,應(yīng)用本方法實現(xiàn)的具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)分析 軟件,主要包括網(wǎng)絡(luò)監(jiān)聽模塊和流緩沖模塊。 所述的網(wǎng)絡(luò)監(jiān)聽模塊包括
(1) 網(wǎng)絡(luò)數(shù)據(jù)幀捕獲模塊用于從網(wǎng)絡(luò)適配器硬件直接抓取原始網(wǎng)絡(luò)數(shù)據(jù)幀, 給分析軟件提供原始數(shù)據(jù)。
(2) TCP協(xié)議頭提取模塊分析提取到的原始數(shù)據(jù),從中提取TCP協(xié)議頭, 并獲得所需的流信息。
所述的流緩沖模塊包括
(1) 內(nèi)存管理模塊管理緩沖區(qū)所需內(nèi)存的分配與釋放。
(2) 計時器管理模塊負責獲取系統(tǒng)的時鐘,并定時觸發(fā)緩沖區(qū)有效性檢測事件。
(3) 緩沖區(qū)管理模塊管理每個與TCP流對應(yīng)的雙向環(huán)形緩沖區(qū)。包括緩沖 區(qū)建立、維護與銷毀。
(4) 數(shù)據(jù)存儲模塊用于把TCP數(shù)據(jù)報的負載數(shù)據(jù)寫入緩沖區(qū),并檢測緩沖 區(qū)溢出和數(shù)據(jù)循環(huán)刪除。
權(quán)利要求
1、一種具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)建立和執(zhí)行方法,其特征在于所述的方法主要包括以下步驟(1)、監(jiān)聽并捕獲網(wǎng)絡(luò)數(shù)據(jù)幀直接從硬件驅(qū)動程序中獲得原始的網(wǎng)絡(luò)數(shù)據(jù)幀,原始硬件設(shè)備包括以太網(wǎng)網(wǎng)卡、802.11無線網(wǎng)卡;捕獲到原始網(wǎng)絡(luò)數(shù)據(jù)幀后對數(shù)據(jù)幀進行分析,判斷是否是具有TCP協(xié)議頭,如果不是則不處理;(2)、提取并分析TCP協(xié)議頭(2.1)、取得源IP地址和端口從TCP協(xié)議頭中將源IP地址和源端口提取出來;其中源端口存儲方式為網(wǎng)絡(luò)格式的無符號短整形,需要將其前后兩個字節(jié)的數(shù)據(jù)對調(diào),以轉(zhuǎn)換為本地格式的無符號短整形;(2.2)、取得目的IP地址和端口從TCP協(xié)議頭中將目的IP地址和目的端口提取出來;其中目的端口存儲方式為網(wǎng)絡(luò)格式的無符號短整形,需要將其前后兩個字節(jié)的數(shù)據(jù)對調(diào),以轉(zhuǎn)換為本地格式的無符號短整形;(3)、建立流標志以源IP地址、源端口、目的IP地址和目的端口為基礎(chǔ)數(shù)據(jù),組合為一組標志,該標志用于唯一的描述一個TCP流;其中,與標志一致的為正向TCP流,源地址和目的地址對換后的標志用于描述反向TCP流;(4)、判斷緩沖區(qū)是否存在依據(jù)流標志,查找是否已經(jīng)建立了對應(yīng)的緩沖區(qū),如果已經(jīng)存在,則至(6);(5)、建立流緩沖區(qū)(5.1)、建立正向和反向流緩沖區(qū)在內(nèi)存中申請兩個等長度的空間作為正向和反向流緩沖區(qū);正向流緩沖區(qū)用于緩存從源IP地址發(fā)向目的IP地址的TCP數(shù)據(jù),反向流緩沖區(qū)用于緩存從目的IP地址發(fā)向源IP地址的TCP數(shù)據(jù);(5.2)、設(shè)置緩沖區(qū)有效時間取得當前的系統(tǒng)時鐘的時刻,精度至秒;把當前時刻加上超時時間后設(shè)置為緩沖區(qū)的有效時間,即如果該緩沖區(qū)在有效時間內(nèi)沒有更新,則認為該TCP流已經(jīng)斷開,即緩沖區(qū)處于無效狀態(tài);(5.3)、初始化正向和反向緩沖區(qū)的流位置分別設(shè)置正向和反向緩沖區(qū)的流位置為0;在剛建立緩沖區(qū)的時候,位置是處于開頭位置;(6)、記錄數(shù)據(jù)至緩沖區(qū)(6.1)、把數(shù)據(jù)幀負載數(shù)據(jù)加入緩沖區(qū)末尾把捕獲到的TCP協(xié)議數(shù)據(jù)報的負載數(shù)據(jù)加入到緩沖區(qū)的末尾;(6.2)、計算新的流位置把流的當前位置加上新加入到緩沖區(qū)的數(shù)據(jù)的長度的數(shù)值作為最新的流位置,即流位置始終表示整個TCP流在傳輸過程中的當前位置;(6.3)、檢查緩沖區(qū)內(nèi)容是否溢出由于緩沖區(qū)的大小是固定的,因此當流的數(shù)據(jù)超過緩沖區(qū)長度的時候,在把負載數(shù)據(jù)加入到緩沖后必然會導(dǎo)致緩沖區(qū)溢出;檢查緩沖區(qū)內(nèi)容是否出現(xiàn)溢出,如果出現(xiàn)溢出則要對緩沖區(qū)頭部的數(shù)據(jù)進行裁剪;(6.4)、刪除緩沖區(qū)頭部數(shù)據(jù)以緩沖區(qū)溢出部分長度為標準刪除緩沖區(qū)頭部的對應(yīng)數(shù)據(jù),并將緩沖區(qū)溢出部分的數(shù)據(jù)移入緩沖區(qū)中;(7)、檢查緩沖區(qū)是否過期獲取當前系統(tǒng)時刻,精度到秒;把該系統(tǒng)當前時刻與緩沖區(qū)有效時間進行比較,如果大于緩沖區(qū)有效時間,則表示該緩沖區(qū)已經(jīng)超時,至(9)。(8)、設(shè)置緩沖區(qū)有效時間獲取當前系統(tǒng)時刻,精度到秒;把系統(tǒng)當前時刻加上緩沖區(qū)超時時間作為新的緩沖區(qū)有效時間;循環(huán)至(1)處理。(9)、銷毀緩沖區(qū)該TCP流已經(jīng)中止,則對應(yīng)的緩沖區(qū)也就不再有作用,所以釋放相關(guān)的緩沖區(qū)內(nèi)存,中止緩沖區(qū)的工作。
全文摘要
一種具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)建立和執(zhí)行方法。該方法能夠在進行流量分析的時候,對具有流特征的大量TCP協(xié)議以及以TCP協(xié)議為基礎(chǔ)的應(yīng)用協(xié)議的數(shù)據(jù)流進行部分緩存,并階段性的保存整個流的雙向傳輸狀態(tài),記錄特定時間段內(nèi)的協(xié)議特征。本發(fā)明提供一種能夠識別大量基于TCP協(xié)議的、具有流特征的應(yīng)用協(xié)議數(shù)據(jù),還能識別出流頭部的特征數(shù)據(jù)報和流傳輸過程中的大量中間數(shù)據(jù)報,極大的提高分析效果的具有時效性的動態(tài)雙向環(huán)行TCP流緩沖區(qū)建立和執(zhí)行方法。
文檔編號H04L12/26GK101183998SQ20071016024
公開日2008年5月21日 申請日期2007年12月14日 優(yōu)先權(quán)日2007年12月14日
發(fā)明者徐新黎, 王萬良, 王海燕, 蔣一波, 澄 趙, 趙燕偉, 陳偉杰 申請人:浙江工業(yè)大學