專利名稱:一種基于ipv6的tcp流匯聚方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)數(shù)據(jù)處理,尤其涉及一種基于IPV6的TCP流匯聚方法及系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的普及和快速發(fā)展,現(xiàn)有的網(wǎng)絡(luò)帶寬往往達(dá)到千兆,甚至萬(wàn)兆,網(wǎng)絡(luò)帶寬的擴(kuò)大,改善了用戶使用網(wǎng)絡(luò)的體驗(yàn),同時(shí)也減少了網(wǎng)絡(luò)連接的時(shí)間長(zhǎng)度。實(shí)際應(yīng)用中,傳輸?shù)臄?shù)據(jù)量并不大,所以有著大量的傳輸時(shí)間長(zhǎng)度很短的連接。在IPv6中,地址域空間的擴(kuò)大,帶來流的四元組地址范圍的急劇增大。由于網(wǎng)絡(luò)威脅和網(wǎng)絡(luò)攻擊的成熟,僅靠單個(gè)數(shù)據(jù)包所承載的數(shù)據(jù),網(wǎng)絡(luò)安全設(shè)備往往無法判別是否存在威脅或者是否屬于攻擊。現(xiàn)行的網(wǎng)絡(luò)安全設(shè)備往往采用流匯聚作為其檢測(cè)的前置環(huán)節(jié),實(shí)現(xiàn)基于流的檢測(cè)技術(shù),這種方式對(duì)比單數(shù)據(jù)包的檢測(cè)方式有著更高的檢出率和準(zhǔn)確率。網(wǎng)絡(luò)中·的并發(fā)TCP連接數(shù)量與網(wǎng)絡(luò)流量成正比,大流量的網(wǎng)絡(luò)環(huán)境同時(shí)也存在高并發(fā)的TCP連接數(shù),尤其是萬(wàn)兆網(wǎng)絡(luò)環(huán)境中。如果現(xiàn)有的安全設(shè)備使用單一流匯聚機(jī)制應(yīng)對(duì)當(dāng)前的網(wǎng)絡(luò)情況顯得有些力不從心,所以,如何能夠高效解決網(wǎng)絡(luò)攻擊與網(wǎng)絡(luò)威脅等事件成為當(dāng)前急需要解決的問題。
發(fā)明內(nèi)容
針對(duì)上述所需要解決的問題,本發(fā)明提出一種基于IPV6的TCP流匯聚方法及系統(tǒng),具體發(fā)明如下:
一種基于IPV6的TCP流匯聚方法,包括:
捕獲網(wǎng)絡(luò)數(shù)據(jù)包;
對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼并分離出TCP協(xié)議數(shù)據(jù)包;
根據(jù)TCP標(biāo)志位將TCP協(xié)議數(shù)據(jù)包進(jìn)行TCP連接分類,其中,
所述的TCP連接分類包括:TCP連接建立的三次握手?jǐn)?shù)據(jù)包、TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包;
根據(jù)TCP連接建立的三次握手?jǐn)?shù)據(jù)包判斷是否能夠建立合法TCP連接;
如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序不相同,則不能夠建立合法TCP連接終止TCP協(xié)議數(shù)據(jù)包處理,并調(diào)用外部的D0S/DD0S分析模塊判斷是否屬于D0S/DD0S 攻擊;
如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序相同,則能夠建立合法TCP連接;
根據(jù)合法TCP連接建立合法TCP連接列表,并將TCP連接四元組作插入到合法TCP連接列表中建立TCP流信息,其中:
所述的TCP連接四元組包括:源IP、目的IP、源端口、目的端口;
所述的TCP流信息包括:TCP連接四元組、傳輸字節(jié)數(shù)、第一個(gè)承載數(shù)據(jù)包指針、數(shù)據(jù)包指針、連接建立時(shí)間、完整流信息結(jié)構(gòu)指針;
所述的合法TCP連接列表包括:TCP連接四元組名單、TCP流信息;
根據(jù)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息;
如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理;
如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包;
根據(jù)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息;
如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理;
如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包。所述的對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼分離出TCP協(xié)議數(shù)據(jù)包,是根據(jù)IPV4和IPV6的IP協(xié)議頭信息進(jìn)行分離。所述的對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理包括:
根據(jù)TCP流信息 中的數(shù)據(jù)包指針建立順序指針鏈表;
更改已存儲(chǔ)的TCP流信息中的數(shù)據(jù)包指針為正在處理數(shù)據(jù)包指針并將正在處理數(shù)據(jù)包長(zhǎng)度累加到TCP流信息中的傳輸字節(jié)數(shù)中;
判斷TCP流信息中的第一個(gè)承載數(shù)據(jù)包指針是否為空;
如果為空,則將當(dāng)前承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包指針設(shè)置為TCP流信息中的第一個(gè)承載數(shù)據(jù)包的指針;
如果不為空,則計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差并判斷時(shí)間差是否大于預(yù)定閥值;
如果大于預(yù)定閥值,則申請(qǐng)新的TCP流信息結(jié)構(gòu),并賦值完整流信息結(jié)構(gòu)指針,將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理;
如果小于或等于預(yù)定閥值,則將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理。所述的承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理包括:
讀取待處理緩存的待處理緩存數(shù)據(jù)包;
計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與TCP流信息中的連接建立時(shí)間的時(shí)間差,并判斷時(shí)間差是否超出預(yù)設(shè)時(shí)間值;
如果未超出預(yù)設(shè)時(shí)間值,則停止處理待處理緩存數(shù)據(jù)包直到超出預(yù)設(shè)時(shí)間值;
如果超出預(yù)設(shè)時(shí)間值,則將申請(qǐng)新的TCP流信息結(jié)構(gòu)中當(dāng)前的數(shù)據(jù)包指針改為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到申請(qǐng)新的TCP流信息結(jié)構(gòu)的傳輸字節(jié)數(shù)中。所述的對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理包括:
計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差,得出合法TCP連接的時(shí)間長(zhǎng)度,并判斷合法TCP連接的時(shí)間長(zhǎng)度是否超出預(yù)設(shè)時(shí)間長(zhǎng)度值;
如果合法TCP連接的時(shí)間長(zhǎng)度小于預(yù)設(shè)時(shí)間長(zhǎng)度值,則根據(jù)第一個(gè)承載數(shù)據(jù)包指針和數(shù)據(jù)包指針清除所有TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包,并刪除在合法TCP連接列表中的TCP流息;
如果合法TCP連接的時(shí)間長(zhǎng)度大于預(yù)設(shè)值,則將TCP流信息中當(dāng)前的數(shù)據(jù)包指針為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到TCP流信息的傳輸字節(jié)數(shù)中。一種基于IPV6的TCP流匯聚的系統(tǒng),包括:
捕獲模塊,用于捕獲網(wǎng)絡(luò)數(shù)據(jù)包;
分離模塊,用于對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼并分離出TCP協(xié)議數(shù)據(jù)包;
解析模塊,根據(jù)TCP標(biāo)志位將TCP協(xié)議數(shù)據(jù)包進(jìn)行TCP連接分類,其中所述的TCP連接分類包括=TCP連接建立的三次握手?jǐn)?shù)據(jù)包、TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包;
確定連接模塊,根據(jù)TCP連接建立的三次握手?jǐn)?shù)據(jù)包判斷是否能夠建立合法TCP連
接;
如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序不相同,則不能夠建立合法TCP連接終止TCP協(xié)議數(shù)據(jù)包處理,并調(diào)用外部的D0S/DD0S分析模塊判斷是否屬于D0S/DD0S 攻擊;
如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序相同,則能夠建立合法TCP連接;
建立模塊,根據(jù)合法TCP連接建立合法TCP連接列表,并將TCP連接四元組插入到合法TCP連接列表中建立TCP流信息,其中:
所述的TCP連接四元組包括:源IP、目的IP、源端口、目的端口; 所述的TCP流信息包括:TCP連接四元組、傳輸字節(jié)數(shù)、第一個(gè)承載數(shù)據(jù)包指針、數(shù)據(jù)包指針、連接建立時(shí)間、完整流信息結(jié)構(gòu)指針;
所述的合法TCP連接列表包括:TCP連接四元組名單、TCP流信息;
第一查找處理模塊,用于根據(jù)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息;
如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理;
如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包;
第二查找處理模塊,用于根據(jù)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息;
如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理;
如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包。所述的對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼分離出TCP協(xié)議數(shù)據(jù)包,是根據(jù)IPV4和IPV6的IP協(xié)議頭信息進(jìn)行分離。所述的對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理包括:
根據(jù)TCP流信息中的數(shù)據(jù)包指針建立順序指針鏈表;
更改已存儲(chǔ)的TCP流信息中的數(shù)據(jù)包指針為正在處理數(shù)據(jù)包指針并將正在處理數(shù)據(jù)包指針長(zhǎng)度累加到TCP流信息中的傳輸字節(jié)數(shù)中;
判斷TCP流信息中的第一個(gè)承載數(shù)據(jù)包指針是否為空;
如果為空,則將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包指針設(shè)置為TCP流信息中的第一個(gè)承載數(shù)據(jù)包的指針;
如果不為空,則計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差并判斷時(shí)間差是否大于預(yù)定閥值;
如果大于預(yù)定閥值,則申請(qǐng)新的TCP流信息結(jié)構(gòu),并賦值完整流信息結(jié)構(gòu)指針,將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理;
如果小于或等于預(yù)定閥值,則將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理。所述的承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理包括:
讀取待處理緩存的待處理緩存數(shù)據(jù)包;
計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與TCP流信息中的連接建立時(shí)間的時(shí)間差,并判斷時(shí)間差是否超出預(yù)設(shè)時(shí)間值;
如果未超出預(yù)設(shè)時(shí)間值,則停止處理待處理緩存數(shù)據(jù)包直到超出預(yù)設(shè)時(shí)間值;
如果超出預(yù)設(shè)時(shí)間值,則將申請(qǐng)新的TCP流信息結(jié)構(gòu)中當(dāng)前的數(shù)據(jù)包指針改為當(dāng)前正在處理的數(shù)據(jù)包指針,并將 當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到申請(qǐng)新的TCP流信息結(jié)構(gòu)的傳輸字節(jié)數(shù)中。所述的對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理包括:
計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差,得出合法TCP連接的時(shí)間長(zhǎng)度,并判斷合法TCP連接的時(shí)間長(zhǎng)度是否超出預(yù)設(shè)時(shí)間長(zhǎng)度值;
如果合法TCP連接的時(shí)間長(zhǎng)度小于預(yù)設(shè)時(shí)間長(zhǎng)度值,則根據(jù)第一個(gè)承載數(shù)據(jù)包指針和數(shù)據(jù)包指針清除所有TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包,并刪除在合法TCP連接列表中的TCP流息;
如果合法TCP連接的時(shí)間長(zhǎng)度大于預(yù)設(shè)值,則將TCP流信息中當(dāng)前的數(shù)據(jù)包指針為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到TCP流信息的傳輸字節(jié)數(shù)中。本發(fā)明提出一種基于IPV6的TCP流匯聚方法及系統(tǒng),根據(jù)TCP協(xié)議解碼分析出三類數(shù)據(jù)包=TCP連接建立的三次握手?jǐn)?shù)據(jù)包、TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包。針對(duì)TCP連接建立的三次握手?jǐn)?shù)據(jù)包進(jìn)行連接的有效性判斷確保TCP連接的合法性;通過建立TCP流信息進(jìn)行對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包的處理;還提出一種基二 IPV6的TCP流匯聚系統(tǒng),由捕獲模塊、分離模塊、解析模塊、確定連接模塊、建立模塊、第一查找處理模塊、第二查找處理模塊組成。
為了更清楚地說明本發(fā)明或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為一種基于IPV6的TCP流匯聚方法的流程 圖2為承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包處理的方法流程 圖3為TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包處理的方法流程 圖4為待處理緩存數(shù)據(jù)包處理的方法流程圖;圖5為一種基于IPV6的TCP流匯聚系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明中技術(shù)方案作進(jìn)一步詳細(xì)的說明。一種基于IPV6的TCP流匯聚方法,如圖1所示,包括:
5101:捕獲網(wǎng)絡(luò)數(shù)據(jù)包;
5102:對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼并分離出TCP協(xié)議數(shù)據(jù)包;
5103:根據(jù)TCP標(biāo)志位將TCP協(xié)議數(shù)據(jù)包進(jìn)行TCP連接分類,其中,
所述的TCP連接分類包括:TCP連接建立的三次握手?jǐn)?shù)據(jù)包、TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包;
例如,TCP標(biāo)志位由URG\ACK\PUSH\REST\SYN\FIN組成,TCP連接建立的三次握手?jǐn)?shù)據(jù)包可以表示為SYN/ACK-SYN/ACK,在傳輸過程中如果出現(xiàn)ACK則將直接忽略;TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包可表示為FIN/ACK-FIN/ACK數(shù)據(jù)包,緊急關(guān)閉的重置REST數(shù)據(jù)包,以及連同與承載數(shù)據(jù)一起發(fā)的PUSH-FIN數(shù)據(jù)包;承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包則可以為當(dāng)不滿足上述兩種情況時(shí)都可以歸類為承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包;
5104:根據(jù)TCP連接建立的三次握手?jǐn)?shù)據(jù)包判斷是否能夠建立合法TCP連接;
如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序不相同,則執(zhí)行S106:不能夠建立合法TCP連接終止TCP協(xié)議數(shù)據(jù)包處理,并調(diào)用外部的D0S/DD0S分析模塊判斷是否屬于D0S/DD0S攻擊;此處是接入外部任何一種對(duì)D0S/DD0S攻擊的分析模塊;
如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序相同,則S105:能夠建立合法TCP連接;
例如,根據(jù)TCP連接是否順序收到SYN/ACK-SYN/ACK數(shù)據(jù)包,如果收到的順序不對(duì),則認(rèn)為不能建立合法TCP連接。S105:能夠建立合法TCP連接;
5106:不能夠建立合法TCP連接終止TCP協(xié)議數(shù)據(jù)包處理,并調(diào)用外部的D0S/DD0S分析模塊判斷是否屬于D0S/DD0S攻擊;此時(shí)的終止TCP協(xié)議數(shù)據(jù)包處理直接進(jìn)行用戶需要的后續(xù)處理;
5107:根據(jù)合法TCP連接建立合法TCP連接列表,并將TCP連接四元組插入到合法TCP連接列表中建立TCP流信息,其中:
所述的TCP連接四元組包括:源IP、目的IP、源端口、目的端口 ;
所述的TCP流信息包括:TCP連接四元組、傳輸字節(jié)數(shù)、第一個(gè)承載數(shù)據(jù)包指針、數(shù)據(jù)包指針、連接建立時(shí)間、完整流信息結(jié)構(gòu)指針;
所述的合法TCP連接列表包括:TCP連接四元組名單、TCP流信息;
5108:根據(jù)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息; 如果查找到對(duì)應(yīng)的TCP流信息,則執(zhí)行S109,承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處
理; 如果沒有查找到對(duì)應(yīng)的TCP流信息,則執(zhí)行SI 12,直接拋棄TCP協(xié)議數(shù)據(jù)包;5109:承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理;
5110:根據(jù)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息; 如果查找到對(duì)應(yīng)的TCP流信息,則執(zhí)行Slll,TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處
理;
如果沒有查找到對(duì)應(yīng)的TCP流信息,則執(zhí)行S112,直接拋棄TCP協(xié)議數(shù)據(jù)包。Slll =TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理;
SI 12:直接拋棄TCP協(xié)議數(shù)據(jù)包。所述的對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼分離出TCP協(xié)議數(shù)據(jù)包,是根據(jù)IPV4和IPV6的IP協(xié)議頭信息進(jìn)行分離。所述的對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理,如圖2所示,包括:
5201:根據(jù)TCP流信息中的數(shù)據(jù)包指針建立順序指針鏈表;
5202:更改已存儲(chǔ)的TCP流信息中的數(shù)據(jù)包指針為正在處理數(shù)據(jù)包指針并將正在處理數(shù)據(jù)包指針長(zhǎng)度累加到TCP流信息中的傳輸字節(jié)數(shù)中;
5203:判斷TCP流信息中的第一個(gè)承載數(shù)據(jù)包指針是否為空;
如果為空,則執(zhí)行S205,將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包指針設(shè)置為TCP流信息中的第一個(gè)承載數(shù)據(jù)包的指針;
如果不為空,則執(zhí)行S204,計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差;
5204:計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差;
5205:將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包設(shè)置為第一個(gè)承載數(shù)據(jù)包的指針;
5206:判斷時(shí)間差是否大于預(yù)定閥值;
如果大于預(yù)定閥值,則執(zhí)行S207,申請(qǐng)新的TCP流信息結(jié)構(gòu),并賦值完整流信息結(jié)構(gòu)指針,將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理;如果小于或等于預(yù)定閥值,則執(zhí)行S208,將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理;
5207:申請(qǐng)新的TCP流信息結(jié)構(gòu)并賦值完整流信息結(jié)構(gòu)指針,將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理;
5208:將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理。所述的對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理,如圖3所示,包括:
5301:計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差,得出合法TCP連接的時(shí)間長(zhǎng)度;
5302:判斷合法TCP連接的時(shí)間長(zhǎng)度是否超出預(yù)設(shè)時(shí)間長(zhǎng)度值;
如果合法TCP連接的時(shí)間長(zhǎng)度小于預(yù)設(shè)時(shí)間長(zhǎng)度值,則執(zhí)行S303,根據(jù)第一個(gè)承載數(shù)據(jù)包指針和數(shù)據(jù)包指針清除所有TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包,并刪除在合法TCP連接列表中的TCP流信息;
如果合法TCP連接的時(shí)間長(zhǎng)度大于預(yù)設(shè)值,則執(zhí)行S304,更改TCP流信息中當(dāng)前的數(shù)據(jù)包指針為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到TCP流信息的傳輸字節(jié)數(shù) 中;5303:根據(jù)第一個(gè)承載數(shù)據(jù)包指針和數(shù)據(jù)包指針清除所有TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包,并刪除在合法TCP連接列表中的TCP流信息;
5304:更改TCP流信息中當(dāng)前的數(shù)據(jù)包指針為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到TCP流信息的傳輸字節(jié)數(shù)中。所述的承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理,如圖4所示,包括:
5401:讀取待處理緩存的待處理緩存數(shù)據(jù)包;
5402:計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與TCP流信息中的連接建立時(shí)間的時(shí)間差;
5403:判斷時(shí)間差是否超出預(yù)設(shè)時(shí)間值;
如果未超出預(yù)設(shè)時(shí)間值,則執(zhí)行S405,停止處理待處理緩存數(shù)據(jù)包直到超出預(yù)設(shè)時(shí)間 值;
如果超出預(yù)設(shè)時(shí)間值,則執(zhí)行S404,更改申請(qǐng)新的TCP流信息結(jié)構(gòu)中當(dāng)前的數(shù)據(jù)包指針改為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到申請(qǐng)新的TCP流信息結(jié)構(gòu)的傳輸字節(jié)數(shù)中;
5404:更改申請(qǐng)新的TCP流信息結(jié)構(gòu)中當(dāng)前的數(shù)據(jù)包指針改為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到申請(qǐng)新的TCP流信息結(jié)構(gòu)的傳輸字節(jié)數(shù)中;
5405:停止處理待處理緩存數(shù)據(jù)包直到超出預(yù)設(shè)時(shí)間值?!N基于IPV6的TCP流匯聚的系統(tǒng),如圖5所不,包括:
501:捕獲模塊,用于捕獲網(wǎng)絡(luò)數(shù)據(jù)包;
502:分離模塊,用于對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼并分離出TCP協(xié)議數(shù)據(jù)包;
503:解析模塊,根據(jù)TCP標(biāo)志位將TCP協(xié)議數(shù)據(jù)包進(jìn)行TCP連接分類,其中所述的TCP連接分類包括=TCP連接建立的三次握手?jǐn)?shù)據(jù)包、TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包;
504:確定連接模塊,根據(jù)TCP連接建立的三次握手?jǐn)?shù)據(jù)包判斷是否能夠建立合法TCP連接;
如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序不相同,則不能夠建立合法TCP連接終止TCP協(xié)議數(shù)據(jù)包處理,并調(diào)用外部的D0S/DD0S分析模塊判斷是否屬于D0S/DD0S 攻擊;
如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序相同,則能夠建立合法TCP連接;
505:建立模塊,根據(jù)合法TCP連接建立合法TCP連接列表,并將TCP連接四元組插入到合法TCP連接列表中建立TCP 流信息,其中:
所述的TCP連接四元組包括:源IP、目的IP、源端口、目的端口 ;
所述的TCP流信息包括:TCP連接四元組、傳輸字節(jié)數(shù)、第一個(gè)承載數(shù)據(jù)包指針、數(shù)據(jù)包指針、連接建立時(shí)間、完整流信息結(jié)構(gòu)指針;
所述的合法TCP連接列表包括:TCP連接四元組名單、TCP流信息;
506:第一查找處理模塊,用于根據(jù)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息;如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理;
如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包;
507:第二查找處理模塊,用于根據(jù)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息;
如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理;
如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包。所述的對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼分離出TCP協(xié)議數(shù)據(jù)包,是根據(jù)IPV4和IPV6的IP協(xié)議頭信息進(jìn)行分離。所述的對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理包括:
根據(jù)TCP流信息中的數(shù)據(jù)包指針建立順序指針鏈表;
更改已存儲(chǔ)的TCP流信息中的數(shù)據(jù)包指針為正在處理數(shù)據(jù)包指針并將正在處理數(shù)據(jù)包指針長(zhǎng)度累加到TCP流信息中的傳輸字節(jié)數(shù)中;
判斷TCP流信息中的第一個(gè)承載數(shù)據(jù)包指針是否為空;
如果為空,則將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包指針設(shè)置為TCP流信息中的第一個(gè)承載數(shù)據(jù)包的指針;
如果不為空,則計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差并判斷時(shí)間差是否大于預(yù)定閥值; 如果大于預(yù)定閥值,則申請(qǐng)新的TCP流信息結(jié)構(gòu),并賦值完整流信息結(jié)構(gòu)指針,將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理;
如果小于或等于預(yù)定閥值,則將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理。所述的承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理包括:
讀取待處理緩存的待處理緩存數(shù)據(jù)包;
計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與TCP流信息中的連接建立時(shí)間的時(shí)間差,并判斷時(shí)間差是否超出預(yù)設(shè)時(shí)間值;
如果未超出預(yù)設(shè)時(shí)間值,則停止處理待處理緩存數(shù)據(jù)包直到超出預(yù)設(shè)時(shí)間值;
如果超出預(yù)設(shè)時(shí)間值,則更改申請(qǐng)新的TCP流信息結(jié)構(gòu)中當(dāng)前的數(shù)據(jù)包指針為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到申請(qǐng)新的TCP流信息結(jié)構(gòu)的傳輸字節(jié)數(shù)中。所述的對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理包括:
計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差,得出合法TCP連接的時(shí)間長(zhǎng)度,并判斷合法TCP連接的時(shí)間長(zhǎng)度是否超出預(yù)設(shè)時(shí)間長(zhǎng)度值;
如果合法TCP連接的時(shí)間長(zhǎng)度小于預(yù)設(shè)時(shí)間長(zhǎng)度值,則根據(jù)第一個(gè)承載數(shù)據(jù)包指針和數(shù)據(jù)包指針清除所有TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包,并刪除在合法TCP連接列表中的TCP流息;
如果合法TCP連接的時(shí)間長(zhǎng)度大于預(yù)設(shè)值,則更改TCP流信息中當(dāng)前的數(shù)據(jù)包指針為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到TCP流信息的傳輸字節(jié)數(shù)中。
本發(fā)明提出一種基于IPV6的TCP流匯聚方法及系統(tǒng),其中實(shí)施的方法根據(jù)TCP協(xié)議解碼分析出三類數(shù)據(jù)包=TCP連接建立的三次握手?jǐn)?shù)據(jù)包、TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包。針對(duì)TCP連接建立的三次握手?jǐn)?shù)據(jù)包進(jìn)行連接的有效性判斷確保TCP連接的合法性;通過建立TCP流信息進(jìn)行對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包的處理;所提出一種基二 IPV6的TCP流匯聚系統(tǒng),由捕獲模塊、分離模塊、解析模塊、確定連接模塊、建立模塊、第一查找處理模塊、第二查找處理模塊組成進(jìn)一步實(shí)現(xiàn)在IPv6網(wǎng)絡(luò)環(huán)境中檢測(cè)病毒文件傳輸及過濾大量的網(wǎng)絡(luò)數(shù)據(jù)。雖然通過實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神?!?br>
權(quán)利要求
1.一種基于IPV6的TCP流匯聚方法,包括: 捕獲網(wǎng)絡(luò)數(shù)據(jù)包; 對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼并分離出TCP協(xié)議數(shù)據(jù)包; 根據(jù)TCP標(biāo)志位將TCP協(xié)議數(shù)據(jù)包進(jìn)行TCP連接分類,其中, 所述的TCP連接分類包括:TCP連接建立的三次握手?jǐn)?shù)據(jù)包、TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包; 根據(jù)TCP連接建立的三次握手?jǐn)?shù)據(jù)包判斷是否能夠建立合法TCP連接; 如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序不相同,則不能夠建立合法TCP連接終止TCP協(xié)議數(shù)據(jù)包處理,并調(diào)用外部的DOS/DDOS分析模塊判斷是否屬于DOS/DDOS 攻擊; 如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序相同,則能夠建立合法TCP連接; 根據(jù)合法TCP連接建立合法TCP連接列表,并將TCP連接四元組作插入到合法TCP連接列表中建立TCP流信息,其中: 所述的TCP連接四元 組包括:源IP、目的IP、源端口、目的端口 ; 所述的TCP流信息包括:TCP連接四元組、傳輸字節(jié)數(shù)、第一個(gè)承載數(shù)據(jù)包指針、數(shù)據(jù)包指針、連接建立時(shí)間、完整流信息結(jié)構(gòu)指針; 所述的合法TCP連接列表包括:TCP連接四元組名單、TCP流信息; 根據(jù)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息; 如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理; 如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包; 根據(jù)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息; 如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理; 如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包。
2.如權(quán)利要求1所述的方法,其特征在于,所述的對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼分離出TCP協(xié)議數(shù)據(jù)包,是根據(jù)IPV4和IPV6的IP協(xié)議頭信息進(jìn)行分離。
3.如權(quán)利要求1所述的方法,其特征在于,所述的對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理包括: 根據(jù)TCP流信息中的數(shù)據(jù)包指針建立順序指針鏈表; 更改已存儲(chǔ)的TCP流信息中的數(shù)據(jù)包指針為正在處理數(shù)據(jù)包指針并將正在處理數(shù)據(jù)包長(zhǎng)度累加到TCP流信息中的傳輸字節(jié)數(shù)中; 判斷TCP流信息中的第一個(gè)承載數(shù)據(jù)包指針是否為空; 如果為空,則將當(dāng)前承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包指針設(shè)置為TCP流信息中的第一個(gè)承載數(shù)據(jù)包的指針; 如果不為空,則計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與合法TCP連接的時(shí)間的時(shí)間差是否大于預(yù)定閥值; 如果大于預(yù)定閥值,則申請(qǐng)新的TCP流信息結(jié)構(gòu),并賦值完整流信息結(jié)構(gòu)指針,將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理; 如果小于或等于預(yù)定閥值,則將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理。
4.如權(quán)利要求3所述的方法,其特征在于,所述的承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理包括: 讀取待處理緩存的待處理緩存數(shù)據(jù)包; 計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與TCP流信息中的連接建立時(shí)間的時(shí)間差,并判斷時(shí)間差是否超出預(yù)設(shè)時(shí)間值; 如果未超出預(yù)設(shè)時(shí)間值,則停止處理待處理緩存數(shù)據(jù)包直到超出預(yù)設(shè)時(shí)間值; 如果超出預(yù)設(shè)時(shí)間值,則將申請(qǐng)新的TCP流信息結(jié)構(gòu)中當(dāng)前的數(shù)據(jù)包指針改為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到申請(qǐng)新的TCP流信息結(jié)構(gòu)的傳輸字節(jié)數(shù)中。
5.如權(quán)利要求1所述的方法,其特征在于,所述的對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理包括: 計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差,得出合法TCP連接的時(shí)間長(zhǎng)度,并判斷合法TCP連接的時(shí)間長(zhǎng)度是否超出預(yù)設(shè)時(shí)間長(zhǎng)度值; 如果合法TCP連接的時(shí)間長(zhǎng)度小于預(yù)設(shè)時(shí)間長(zhǎng)度值,則根據(jù)第一個(gè)承載數(shù)據(jù)包指針和數(shù)據(jù)包指針清除所有TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包,并刪除在合法TCP連接列表中的TCP流息; 如果合法TCP連接的時(shí)間長(zhǎng)度大于預(yù)設(shè)值,則將TCP流信息中當(dāng)前的數(shù)據(jù)包指針為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到TCP流信息的傳輸字節(jié)數(shù)中。
6.一種基于IPV6的TCP流匯聚的系統(tǒng),包括: 捕獲模塊,用于捕獲網(wǎng)絡(luò)數(shù)據(jù)包; 分離模塊,用于對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼并分離出TCP協(xié)議數(shù)據(jù)包; 解析模塊,根據(jù)TCP標(biāo)志位將TCP協(xié)議數(shù)據(jù)包進(jìn)行TCP連接分類,其中所述的TCP連接分類包括=TCP連接建立的三次握手?jǐn)?shù)據(jù)包、TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包; 確定連接模塊,根據(jù)TCP連接建立的三次握手?jǐn)?shù)據(jù)包判斷是否能夠建立合法TCP連接; 如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序不相同,則不能夠建立合法TCP連接終止TCP協(xié)議數(shù)據(jù)包處理,并調(diào)用外部的DOS/DDOS分析模塊判斷是否屬于DOS/DDOS 攻擊; 如果接收的TCP連接順序與TCP連接建立的三次握手?jǐn)?shù)據(jù)包順序相同,則能夠建立合法TCP連接; 建立模塊,根據(jù)合法TCP連接建立合法TCP連接列表,并將TCP連接四元組插入到合法TCP連接列表中建立TCP流信息,其中: 所述的TCP連接四元組包括:源IP、目的IP、源端口、目的端口 ; 所述的TCP流信息包括:TCP連接四元組、傳輸字節(jié)數(shù)、第一個(gè)承載數(shù)據(jù)包指針、數(shù)據(jù)包指針、連接建立時(shí)間、完整流信息結(jié)構(gòu)指針; 所述的合法TCP連接列表包括:TCP連接四元組名單、TCP流信息;第一查找處理模塊,用于根據(jù)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息; 如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理; 如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包; 第二查找處理模塊,用于根據(jù)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包中的TCP連接四元組查找對(duì)應(yīng)TCP流信息; 如果查找到對(duì)應(yīng)的TCP流信息,則對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理; 如果沒有查找到對(duì)應(yīng)的TCP流信息,則直接拋棄TCP協(xié)議數(shù)據(jù)包。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述的對(duì)捕獲的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行協(xié)議解碼分離出TCP協(xié)議數(shù)據(jù)包,是根據(jù)IPV4和IPV6的IP協(xié)議頭信息進(jìn)行分離。
8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述的對(duì)承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包進(jìn)行處理包括: 根據(jù)TCP流信息中的數(shù)據(jù)包指針建立順序指針鏈表; 更改已存儲(chǔ)的TCP流信息中的數(shù)據(jù)包指針為正在處理數(shù)據(jù)包指針并將正在處理數(shù)據(jù)包指針長(zhǎng)度累加到TCP流信息中的傳輸字節(jié)數(shù)中; 判斷TCP流信息中的第一個(gè)承載數(shù)據(jù)包指針是否為空; 如果為空,則將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包指針設(shè)置為TCP流信息中的第一個(gè)承載數(shù)據(jù)包的指針;· 如果不為空,則計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差并判斷時(shí)間差是否大于預(yù)定閥值; 如果大于預(yù)定閥值,則申請(qǐng)新的TCP流信息結(jié)構(gòu),并賦值完整流信息結(jié)構(gòu)指針,將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理; 如果小于或等于預(yù)定閥值,則將承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述的承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包存儲(chǔ)到待處理緩存進(jìn)行待處理緩存數(shù)據(jù)包處理包括: 讀取待處理緩存的待處理緩存數(shù)據(jù)包; 計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與TCP流信息中的連接建立時(shí)間的時(shí)間差,并判斷時(shí)間差是否超出預(yù)設(shè)時(shí)間值; 如果未超出預(yù)設(shè)時(shí)間值,則停止處理待處理緩存數(shù)據(jù)包直到超出預(yù)設(shè)時(shí)間值; 如果超出預(yù)設(shè)時(shí)間值,則將申請(qǐng)新的TCP流信息結(jié)構(gòu)中當(dāng)前的數(shù)據(jù)包指針為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到申請(qǐng)新的TCP流信息結(jié)構(gòu)的傳輸字節(jié)數(shù)中。
10.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述的對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包進(jìn)行處理包括: 計(jì)算捕獲網(wǎng)絡(luò)數(shù)據(jù)包時(shí)間與建立合法TCP連接的時(shí)間的時(shí)間差,得出合法TCP連接的時(shí)間長(zhǎng)度,并判斷合法TCP連接的時(shí)間長(zhǎng)度是否超出預(yù)設(shè)時(shí)間長(zhǎng)度值; 如果合法TCP連接的時(shí)間長(zhǎng)度小于預(yù)設(shè)時(shí)間長(zhǎng)度值,則根據(jù)第一個(gè)承載數(shù)據(jù)包指針和數(shù)據(jù)包指針清除所有TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包,并刪除在合法TCP連接列表中的TCP流息; 如果合法TCP連接的時(shí)間長(zhǎng)度大于預(yù) 設(shè)值,則將TCP流信息中當(dāng)前的數(shù)據(jù)包指針為當(dāng)前正在處理的數(shù)據(jù)包指針,并將當(dāng)前正在處理的數(shù)據(jù)包的長(zhǎng)度累加到TCP流信息的傳輸字節(jié)數(shù)中。
全文摘要
本發(fā)明提出一種基于IPV6的TCP流匯聚方法及系統(tǒng),根據(jù)TCP協(xié)議解碼分析出三類數(shù)據(jù)包TCP連接建立的三次握手?jǐn)?shù)據(jù)包、TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包。針對(duì)TCP連接建立的三次握手?jǐn)?shù)據(jù)包進(jìn)行連接的有效性判斷確保TCP連接的合法性;通過建立TCP流信息進(jìn)行對(duì)TCP連接關(guān)閉的三次握手?jǐn)?shù)據(jù)包、承載應(yīng)用協(xié)議數(shù)據(jù)的TCP數(shù)據(jù)包的處理;還提出一種基二IPV6的TCP流匯聚系統(tǒng),由捕獲模塊、分離模塊、解析模塊、確定連接模塊、建立模塊、第一查找處理模塊、第二查找處理模塊組成。
文檔編號(hào)H04L29/08GK103248605SQ201210022590
公開日2013年8月14日 申請(qǐng)日期2012年2月2日 優(yōu)先權(quán)日2012年2月2日
發(fā)明者邱勇良 申請(qǐng)人:哈爾濱安天科技股份有限公司