亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種多語言的網(wǎng)絡(luò)數(shù)據(jù)包高效過濾的方法

文檔序號:7684338閱讀:326來源:國知局

專利名稱::一種多語言的網(wǎng)絡(luò)數(shù)據(jù)包高效過濾的方法
技術(shù)領(lǐng)域
:本發(fā)明是一種網(wǎng)絡(luò)安全和軟件開發(fā)技術(shù)的解決方案,主要用于解決網(wǎng)絡(luò)數(shù)據(jù)包處理程序的開發(fā)和應(yīng)用問題,屬于計算機(jī)網(wǎng)絡(luò)和軟件工程學(xué)技術(shù)交叉領(lǐng)域。
背景技術(shù)
:防火墻被用來保護(hù)計算機(jī)網(wǎng)絡(luò)免受非授權(quán)人員的騷擾與黑客的入侵。它在內(nèi)部網(wǎng)絡(luò)(專用網(wǎng)絡(luò))與外部網(wǎng)絡(luò)之間形成一道安全保護(hù)屏障,防止非法用戶訪問內(nèi)部網(wǎng)絡(luò)上的資源和非法向外傳遞內(nèi)部信息。防火墻可以是非常簡單的過濾器,也可以是精心配置的網(wǎng)關(guān),但原理都是監(jiān)測并過濾所有內(nèi)部網(wǎng)和外部網(wǎng)之間的信息。包過濾是防火墻的最基本的功能之一,許多路由器上常常有包過濾功能。在如今專門的防火墻產(chǎn)品中,在此基礎(chǔ)上又增加了擴(kuò)展功能,如狀態(tài)檢測等。防火墻技術(shù)經(jīng)歷了五個發(fā)展階段包過濾、代理、狀態(tài)檢測、DMZ、NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)。包過濾技術(shù)一般在網(wǎng)絡(luò)層對數(shù)據(jù)包進(jìn)行選擇,選擇的依據(jù)是系統(tǒng)內(nèi)設(shè)置的過濾邏輯;代理技術(shù)是針對數(shù)據(jù)包過濾和應(yīng)用網(wǎng)關(guān)技術(shù)存在的缺陷而引入的,工作在應(yīng)用層,特點(diǎn)是進(jìn)行兩次連接;狀態(tài)檢測技術(shù)通過檢査應(yīng)用程序信息,來做出過濾的選擇;DMZ是將需要對外提供服務(wù)的服務(wù)器集中放在一個單獨(dú)的網(wǎng)段中;NAT分為源地址轉(zhuǎn)換和目的地址轉(zhuǎn)換,前者叫地址偽裝,后者實(shí)現(xiàn)負(fù)載平衡。其實(shí),無論防火墻發(fā)展到哪個階段,都需要一種高效的數(shù)據(jù)包處理方式,特別是在某個存在大容量數(shù)據(jù)流的網(wǎng)段中,過濾的效率是至關(guān)重要的。例如在對抗大規(guī)模的Syn-Flood的DDoS攻擊上,防火墻過濾的效率都不怎么理想。根據(jù)調(diào)研,專用抗攻擊設(shè)備大約支持兩至三萬個數(shù)據(jù)包不等。而對于普通的路由產(chǎn)品來說,如何在沒有專門設(shè)備的情況下提高防火墻過濾的性能,是一個必須要解決的問題。
發(fā)明內(nèi)容技術(shù)問題本發(fā)明的目的是提供一種多語言的網(wǎng)絡(luò)數(shù)據(jù)包高效過濾方法,同時,又必須是高效的。如何在不增加設(shè)備投資、操作可適用領(lǐng)域大的情況下完成,是本發(fā)明要解決的問題。即充分利用現(xiàn)有技術(shù)和現(xiàn)有設(shè)備,解決問題的方式也必須具有可推廣性。技術(shù)方案本發(fā)明提供了一種多語言的網(wǎng)絡(luò)數(shù)據(jù)包高效過濾方法,在此方法上,可以方便、快捷、有效地設(shè)計出不同目的的防火墻產(chǎn)品,且也可用于其他涉及到網(wǎng)絡(luò)數(shù)據(jù)包處理的程序設(shè)計任務(wù)中。首先,本方法是可多語言實(shí)現(xiàn)的,具有良好的平臺移植性;其次,本方法可利用了許多優(yōu)秀的開源代碼,包括了0++STL、C++Pthread、多個Unix平臺下的工具等,目的就是要達(dá)到高效率處理網(wǎng)絡(luò)數(shù)據(jù)包的任務(wù)。同時,提出了一個可用在路由器產(chǎn)品上的過濾器設(shè)計。實(shí)驗(yàn)表明,過濾器的參數(shù)指標(biāo)是符合正常工作要求的。既使在一些突發(fā)性的大數(shù)據(jù)流量存在情況下,也能很好的工作。本發(fā)明一是提供了一種可在多個編程語言環(huán)境下實(shí)現(xiàn)的數(shù)據(jù)包處理方法;同時又提供了一個具體的過濾器設(shè)計實(shí)現(xiàn)。方法流程該數(shù)據(jù)包處理方法具體描述如下1.)確定軟件項(xiàng)目需求,分析易采用的編程語言及編程環(huán)境;2.)在步驟l)的基礎(chǔ)上,根據(jù)編程環(huán)境選擇適用于網(wǎng)絡(luò)數(shù)據(jù)處理的策略,并根據(jù)該策略選擇在此環(huán)境下的系統(tǒng)工具;3.)通常,這些系統(tǒng)工具由于與底層結(jié)合緊密,是由低級語言寫成的,它們包含了一系列的系統(tǒng)調(diào)用函數(shù),這些系統(tǒng)調(diào)用函數(shù)都與一個指針有關(guān),該指針指向獲取內(nèi)核協(xié)議棧中數(shù)據(jù)包的地址,設(shè)它為指針變量A;4.)根據(jù)步驟1)中分析軟件易采用的編程語言,對這些系統(tǒng)工具進(jìn)行封裝,即〔++對(:語言的封裝,將指針變量A設(shè)為一個類B的成員變量,類B就是對數(shù)據(jù)包進(jìn)行操作的對象類;5.)依據(jù)步驟2)中確定的網(wǎng)絡(luò)數(shù)據(jù)包處理策略,用高級語言進(jìn)行統(tǒng)一建模,并用模塊化設(shè)計思想編寫處理策略的代碼級程序;6.)在以上步驟完成以后,就可以借鑒高級語言和低級語言中的各自優(yōu)點(diǎn),根據(jù)軟件項(xiàng)目書中給出的要求,分析從低層獲得數(shù)據(jù)包并進(jìn)行策略過濾的處理流程,找出策略過濾的效率瓶頸;對效率低的瓶頸部分增加并行處理、多線程、信號調(diào)用等措施。在網(wǎng)絡(luò)數(shù)據(jù)處理的策略中,利用高級編程語言與低級編程語言各自的優(yōu)缺點(diǎn),對網(wǎng)絡(luò)數(shù)據(jù)處理過程中影響性能的瓶頸部分進(jìn)行了改進(jìn)基于多語言的數(shù)據(jù)包處理-1.)選擇具有內(nèi)核空間與用戶空間通信功能的Netlink作為過濾策略實(shí)施的低層模塊,并對其進(jìn)行再次封裝,定義一個面向?qū)ο蟮臄?shù)據(jù)包類,將它的一個屬性變量賦予內(nèi)核協(xié)議棧中數(shù)據(jù)包的地址;通過在數(shù)據(jù)包類中自定義類處理函數(shù),依據(jù)資源的使用需求重新對內(nèi)核系統(tǒng)函數(shù)進(jìn)行流程再分配;2.)對網(wǎng)絡(luò)數(shù)據(jù)包處理流程進(jìn)行性能分析,找出影響整體處理效率的瓶頸部分,在這些瓶頸部分增加高級語言的模板庫、線程庫支持,在對數(shù)據(jù)依賴的瓶頸處增加多線程處理和緩沖區(qū)處理;規(guī)則鏈表的設(shè)計規(guī)則鏈表對己經(jīng)明確性質(zhì)的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行處理,屬于DDoS攻擊的數(shù)據(jù)包將進(jìn)行丟棄,屬于正常請求的連接報文將允許通過;規(guī)則鏈表釆用協(xié)議號和端口號為基礎(chǔ)的結(jié)構(gòu),依據(jù)攻擊的不同方式首先進(jìn)行協(xié)議號和端口號的匹配檢測;采用開源環(huán)境下的內(nèi)核規(guī)則過濾模式,避免大多數(shù)數(shù)據(jù)包經(jīng)過內(nèi)核與用戶空間的轉(zhuǎn)換,提高實(shí)際規(guī)則匹配的效率;內(nèi)核規(guī)則鏈表采用樹形結(jié)構(gòu)設(shè)計,允許多個子規(guī)則節(jié)點(diǎn)屬于一個父親規(guī)則節(jié)點(diǎn),這樣前項(xiàng)和后項(xiàng)搜索效率很高,對于具有特定協(xié)議或端口特性的攻擊報文規(guī)則鏈表匹配速度是很快的??梢钥闯?,本發(fā)明所提出的這一個數(shù)據(jù)包處理方法,就是圍繞著高級語言與低級語言的差別,以及高級語言所提供的大量優(yōu)秀標(biāo)準(zhǔn)庫和模板而設(shè)計的。高級語言由于在系統(tǒng)體系結(jié)構(gòu)中處于離應(yīng)用程序較近的范疇,因此往往比較適合高效率軟件的開發(fā)。高級語言通常有低級語言不具有的特征,例如,JAVA語言就是一個解釋型語言,當(dāng)我們要執(zhí)行程序時,才將程序動態(tài)地轉(zhuǎn)換成某個操作平臺能執(zhí)行的機(jī)器碼,具有跨平臺性。同時,很多高級語言也是面向?qū)ο蟮?,其最大好處就是允許我們編寫更復(fù)雜的程序以解決現(xiàn)實(shí)世界中所有問題。設(shè)計實(shí)現(xiàn)本發(fā)明給出了一個可移植到路由器上的過濾器的代碼實(shí)現(xiàn)。當(dāng)然,這個過濾器的實(shí)現(xiàn)是依據(jù)上述數(shù)據(jù)包處理方法流程完成的,是該方法的可行性理論驗(yàn)證。首先,我們分析了常用路由器上對數(shù)據(jù)包的操作需求,發(fā)現(xiàn)一般都需要高級語言來實(shí)現(xiàn)。我們就采用最普遍的〔++語言來作為軟件實(shí)現(xiàn)語言。確定了所要實(shí)現(xiàn)的編程語言以后,我們就可以利用多種高級語言系統(tǒng)分析方法來完成任務(wù)的建模。例如,最常用的就是UML統(tǒng)一建模語言,它是一個圖形化描述語言,提供對系統(tǒng)各個主要要素的語義描述。其次,我們要選擇數(shù)據(jù)包抓取的系統(tǒng)工具。為了完成過濾的任務(wù),必須是基于內(nèi)核的。我們選擇了Linux平臺下的Netlink(用戶空間與系統(tǒng)空間通信機(jī)制),來作為網(wǎng)絡(luò)數(shù)據(jù)包抓取的底層平臺。Netlink提供了多個內(nèi)核-用戶雙向通信連接,是一套完整的內(nèi)核消息隊(duì)列的無阻塞支持。在Linux2.4以后的版本的內(nèi)核中,幾乎全部的中斷過程與用戶態(tài)進(jìn)程的通信都是使用Netlink套接字實(shí)現(xiàn)的。它的系統(tǒng)調(diào)用函數(shù),可以完成一般的防火墻策略決策,例如,丟棄、允許通過、排隊(duì)處理等操作,是實(shí)現(xiàn)過濾任務(wù)的良好底層平臺。然后,我們査看Netlink的協(xié)議簇定義,以及涉及到Netlink的系統(tǒng)調(diào)用函數(shù),找到指向數(shù)據(jù)包地址的指針,并把它設(shè)定為指針變量A。定義類名稱Data,用來處理數(shù)據(jù)包相關(guān)操作。設(shè)定Data的成員變量B,為Netlink的數(shù)據(jù)包地址指針類型。這樣,以后所有需要對數(shù)據(jù)包進(jìn)行操作的函數(shù),只要先定義一個Data的對象,就可以用成員變量B,來獲取數(shù)據(jù)包的地址,從而對該數(shù)據(jù)進(jìn)行分析處理。一般的基于過濾技術(shù)的防火墻,它們選擇的依據(jù)是系統(tǒng)內(nèi)設(shè)置的過濾邏輯,就是被稱為訪問控制表的機(jī)制。當(dāng)然,我們可以自己編程實(shí)現(xiàn)一個訪問控制表,但往往性能比不上一些開源的產(chǎn)品,自己編寫的這部分代碼常常成為了整個軟件運(yùn)行性能的瓶頸,大大影響過濾的性能。在本發(fā)明提出的這個過濾器設(shè)計中,訪問控制列表采用內(nèi)核自帶的iptables工具,設(shè)計了一個依據(jù)數(shù)據(jù)包協(xié)議號與端口號為基礎(chǔ)的訪問控制鏈表,如圖l、2所示。它充分利用了Linux操作平臺下防火墻開發(fā)規(guī)程,在通往本機(jī)和轉(zhuǎn)發(fā)的鏈表上,設(shè)立了一系列子鏈表,將軟件其他模塊產(chǎn)生的訪問控制規(guī)則加入到這些子鏈表中,由系統(tǒng)內(nèi)核自動完成對數(shù)據(jù)包相關(guān)規(guī)則的處理。系統(tǒng)中iptables有一系列調(diào)用函數(shù),為了更好地便于上層〔++程序?qū)Φ蛯釉L問控制規(guī)則的操作,我們用"externC"的形式將iptables中需要的規(guī)則系統(tǒng)調(diào)用函數(shù)在〔++代碼中進(jìn)行聲明。在完成了以上任務(wù)以后,就可以利用0++語言的特點(diǎn),以及0++標(biāo)準(zhǔn)庫和標(biāo)準(zhǔn)模板來優(yōu)化過濾的性能。我們借鑒并行處理的原理,在從內(nèi)核協(xié)議棧上取得網(wǎng)絡(luò)數(shù)據(jù)包以后,不是馬上處理該數(shù)據(jù)包,而是將它放入到〔++標(biāo)準(zhǔn)模板定義好的一個Vector結(jié)構(gòu)中,之所以這么做是考慮到底層Netlink的工作效率是影響整個過濾器發(fā)揮作用的關(guān)鍵因素。參考的這部分結(jié)構(gòu)視圖如圖3所示。在軟件結(jié)構(gòu)前端與后端運(yùn)行部分,采用了多線程的編寫技術(shù),使得軟件的運(yùn)行效率更高,過濾的速度更快,不受數(shù)據(jù)處理過程的影響。移植性上面給出的網(wǎng)絡(luò)數(shù)據(jù)包過濾器可移植到大多數(shù)安裝了iptables防火墻框架的服務(wù)器或個人主機(jī)上,用戶可以此為基礎(chǔ)設(shè)計不同要求的防火墻產(chǎn)品?;谠撨^濾器的防火墻開發(fā)步驟可如下(采用高級語言實(shí)現(xiàn))(1)明確所設(shè)計防火墻應(yīng)具有的功能,各功能之間的聯(lián)系。(2)將各個功能組合成一個個模塊,模塊之間的聯(lián)系也就是各個功能之間的聯(lián)系。(3)設(shè)計防火墻策略生成的算法,并用高級語言實(shí)現(xiàn)之。(4)將策略算法生成模塊、各個功能模塊和本發(fā)明所提出的過濾器模塊根據(jù)各自之間的聯(lián)系,組合成一個完整的防火墻代碼。(5)在服務(wù)器或個人主機(jī)上部署該防火墻代碼,并依據(jù)實(shí)際情況初始化內(nèi)核規(guī)則鏈表。設(shè)置安全數(shù)據(jù)包的規(guī)則項(xiàng),添加一些熟知的網(wǎng)絡(luò)數(shù)據(jù)包攻擊特征規(guī)則。策略算法各個網(wǎng)絡(luò)攻擊都有自己的特征,這需要不同的策略算法來識別,對數(shù)據(jù)包進(jìn)行判斷。例如,當(dāng)收到的是Syn報文,且包的源地址和目的地址都被設(shè)置成同一個服務(wù)器地址,就很可能是Land攻擊。這就需要過濾器能很快的判斷出來,并動態(tài)地將應(yīng)有的規(guī)則加入到內(nèi)核規(guī)則鏈表中。又例如,當(dāng)過濾器收到大量的Syn同步報文,就應(yīng)當(dāng)調(diào)用有關(guān)處理Syn-Flood洪水攻擊的策略算法,并根據(jù)該算法指定相應(yīng)內(nèi)核規(guī)則的生成。圖4就是一個比較實(shí)用、且可行的抗DDOS攻擊策略算法。該策略算法包含以下模塊。Cookie生成器每收到一個Syn報文,按MD5算法生成一個報文源地址的Cookie。ACK報文生成器當(dāng)該模塊收到Syn報文時,會根據(jù)報文中的sequence和IP地址,生成一個ACK回去。有效性驗(yàn)證器當(dāng)模塊收到RST報文時,會檢驗(yàn)該報文的合法性。TCPCookie庫保存有已經(jīng)建立的TCPCookie,同時負(fù)責(zé)對TCPCookie進(jìn)行計時,超時就生成禁止規(guī)則。該算法的基本思想就是在服務(wù)器與客戶端設(shè)置一個保護(hù)層,來攔截所有從客戶端發(fā)來的TCPSYN報文。保護(hù)層不保留任何TCP的狀態(tài)信息。正因?yàn)槿绱?,保護(hù)層才能比一般的服務(wù)器接受流量大得多的TCP網(wǎng)絡(luò)流量。而且保護(hù)層也能做到對正常的網(wǎng)絡(luò)流量和DDOS的網(wǎng)絡(luò)流量的區(qū)分,保證讓正常的網(wǎng)絡(luò)流量通過,而拒絕讓DDOS的網(wǎng)絡(luò)攻擊流量到達(dá)服務(wù)器。從上面具體的例子看出,一個防火墻,其性能的優(yōu)越與否,關(guān)鍵取決于策略算法是否是快捷的、靈活的、簡便的。策略算法是防火墻設(shè)計的核心。當(dāng)然,在基于本過濾器基礎(chǔ)上的防火墻,其策略算法模塊是可以靜態(tài)加載的,只需要用高級語言編寫好代碼,重新編譯、連接一下各個模塊,就完成了防火墻功能的升級。有益效果本發(fā)明提出一種多語言環(huán)境下的網(wǎng)絡(luò)數(shù)據(jù)包高效過濾方法,以及用該方法實(shí)現(xiàn)的可移植到路由器上的過濾器。實(shí)驗(yàn)表明,該過濾器能很好地完成網(wǎng)絡(luò)數(shù)據(jù)包的處理任務(wù),達(dá)到了防火墻設(shè)計的需求。它所具有的優(yōu)點(diǎn)如下1.)實(shí)現(xiàn)方式的多樣性。在不同平臺下,只要能很好的封裝底層的系統(tǒng)調(diào)用,上層應(yīng)用協(xié)議的開發(fā)就顯得簡便、快捷、高效。上層代碼的開發(fā)可釆用多種高級的面向?qū)ο蟮恼Z言來編寫,目的就是適用于不同功能的軟件的設(shè)計。結(jié)合了不同語言的編程風(fēng)格、編程優(yōu)勢,相比軟件產(chǎn)品用單一語言或單一編程方式來實(shí)現(xiàn)的話,有許多顯著的優(yōu)點(diǎn)。2.)編程思路清晰。上層應(yīng)用代碼的編寫是采用模塊化編程思想,模塊化操作有利于功能的合理分解,減少各個任務(wù)的開發(fā)難度,提高軟件的可利用性,降低開發(fā)周期。3.)技術(shù)的擴(kuò)展性。采用本發(fā)明提供的過濾器,可方便地添加新的策略算法,因此,選擇如何編寫代碼不再是關(guān)鍵的因素,程序員會更多的關(guān)注于如何應(yīng)對具體的網(wǎng)絡(luò)侵犯行為,把更多的精力放在策略算法的構(gòu)造方面,這也就不斷地促使防火墻軟件的功能升級。4.)與系統(tǒng)關(guān)聯(lián)的緊密性。由于過濾器是采用訪問控制表的機(jī)制來進(jìn)行規(guī)則的匹配,而本發(fā)明提供的過濾器采用內(nèi)核自帶的規(guī)則鏈表,以m叉樹結(jié)構(gòu)作為規(guī)則搜索、匹配的數(shù)據(jù)類型,相比其他防火墻產(chǎn)品中的該結(jié)構(gòu),往往更容易實(shí)現(xiàn)規(guī)則匹配的高效率性、準(zhǔn)確性和實(shí)時性。且采用基于協(xié)議號和端口號的規(guī)則鏈表,大大縮短了匹配的時間和處理的開銷。5.)實(shí)驗(yàn)效果比較理想。在網(wǎng)絡(luò)正常繁忙的時間段內(nèi),處理網(wǎng)絡(luò)數(shù)據(jù)包的效率基本符合需求,各個子功能模塊都能正常工作。在加入了某些突發(fā)性的攻擊流量以后,過濾器仍能順利地執(zhí)行下去,不受外界的干擾。圖1是iptable防火墻框架中輸入鏈表(INPUT)的體系結(jié)構(gòu)圖,采用協(xié)議號與端口號為劃分基礎(chǔ)的鏈表結(jié)構(gòu)。圖2是iptable防火墻框架中轉(zhuǎn)發(fā)鏈表(FORWARD)的體系結(jié)構(gòu)圖,采用協(xié)議號與端口號為劃分基礎(chǔ)的鏈表結(jié)構(gòu)。圖3是本發(fā)明提出的一個可移植到路由器上的過濾器實(shí)現(xiàn)部分框架圖,說明怎樣通過增加并行處理元素和并行算法來改進(jìn)過濾的性能。圖4是一個比較實(shí)用、且可行的抗DD0S攻擊策略算法,該算法采用了TcpCookie技術(shù)和智能過濾算法,是一個成熟的、可行的技術(shù)。具體實(shí)施方式下面就對本發(fā)明中過濾器的設(shè)計做一個全面的描述,并給出了基于該過濾器的防火墻軟件開發(fā)??梢钥闯?,本項(xiàng)目的設(shè)計框架比傳統(tǒng)網(wǎng)絡(luò)安全產(chǎn)品來的簡捷,且更易于實(shí)現(xiàn)。'1.)傳統(tǒng)的相關(guān)網(wǎng)絡(luò)數(shù)據(jù)包軟件,通常采用面向過程的軟件分析方法,對項(xiàng)目書中各個功能需求進(jìn)行結(jié)構(gòu)劃分,分層的來完成功能的實(shí)現(xiàn)。這種設(shè)計思路不利于軟件的擴(kuò)展性,不利于新的功能的添加,也很難改進(jìn)過濾的性能。采用高級語言的面向?qū)ο蟮臋C(jī)制,可以大大簡化復(fù)雜的軟件結(jié)構(gòu)的設(shè)計,同時,釆用模塊化的編程思想,對于新功能的添加、性能的改善都有很大的幫助,這也就是本發(fā)明提出多語言環(huán)境下編寫代碼的原因。2.)在說明了采用多語言編寫程序的優(yōu)勢后,我們開始考慮對整個過濾器的體系結(jié)構(gòu)進(jìn)行設(shè)計。底層平臺Netlink有一系列的函數(shù)調(diào)用,它們分別完成了Netlink協(xié)議的注冊、抓取內(nèi)核協(xié)議部分的數(shù)據(jù)包、回送相關(guān)信息給內(nèi)核和完成Netlink協(xié)議的注銷。為了能對底層平臺數(shù)據(jù)包抓取部分進(jìn)行優(yōu)化,我們對其調(diào)用函數(shù)進(jìn)行0++封裝,提取相關(guān)的參數(shù)作為封裝中類的成員變量。例如,提取數(shù)據(jù)包函數(shù)中的地址作為地址指針,提取協(xié)議注冊函數(shù)中的協(xié)議注冊符為類的成員函數(shù),這些都有利于類內(nèi)部的操作。3.)增加過濾器對并行處理的支持。并行處理往往在網(wǎng)絡(luò)數(shù)據(jù)包過濾效率的提高方面有很重要的作用;同時,并行計算理論也會對過濾器的效率產(chǎn)生重要的影響。我們給出了一個簡單的并行以及并行計算的模型,在此模型上,設(shè)計了過濾器的整體結(jié)構(gòu)。它結(jié)合了C++STL標(biāo)準(zhǔn)模板技術(shù)和C++Pthread的多線程調(diào)用,以及并行計算的設(shè)計思想,很好的解決了數(shù)據(jù)包接收和處理的關(guān)系。4.)過濾執(zhí)行前還要先向內(nèi)核的防火墻框架初始化過濾鏈表,過濾鏈表的設(shè)計是采用協(xié)議號和端口號為基礎(chǔ)的結(jié)構(gòu)。之所以采用這種結(jié)構(gòu)作為防火墻的訪問控制鏈表,是因?yàn)槭紫?,防火墻框架中?guī)則鏈表是采用m叉樹結(jié)構(gòu),前項(xiàng)和后項(xiàng)搜索效率很高,按協(xié)議號和端口號來劃分規(guī)則有利于快速的規(guī)則匹配;其次,網(wǎng)絡(luò)攻擊常常都有顯著的協(xié)議特征和端口特征,規(guī)則鏈表的設(shè)計也必須符合這個原則。過濾器的設(shè)計只是防火墻能正常有效工作的基礎(chǔ),當(dāng)要完成更復(fù)雜的防火墻軟件的設(shè)計,還需要更加復(fù)雜的步驟5.)按面向?qū)ο蟮能浖O(shè)計思想,分析軟件的需求,從中識別出問題域的對象,定義這些對象和類的屬性與服務(wù),以及它們之間所形成的結(jié)構(gòu)、靜態(tài)聯(lián)系和動態(tài)聯(lián)系。6.)生成對問題域的表示,把數(shù)據(jù)對象和處理操作連接起來,把數(shù)據(jù)和處理一起模塊化。同時,在面向?qū)ο蟮脑O(shè)計中,要考慮四個方面的問題,即問題域部分、人-機(jī)接口部分、任務(wù)管理部分和數(shù)據(jù)庫管理部分。7.)在完成了面向?qū)ο蟮姆治龊驮O(shè)計以后,就可以為軟件建立模型,通??刹捎肬ML進(jìn)行這部分工作??梢詷?gòu)建相應(yīng)的User-case圖、類圖、狀態(tài)圖等。8.)為策略算法建立模型,構(gòu)造相應(yīng)的類和對象。9.)在建模的基礎(chǔ)上,以類圖為編程的藍(lán)本,構(gòu)建軟件各個功能的模塊。10.)可以考慮其他模塊編程,例如,人-機(jī)接口模塊、數(shù)據(jù)庫模塊等。權(quán)利要求1.一種多語言的網(wǎng)絡(luò)數(shù)據(jù)包高效過濾方法,其特征在于該過濾方法的步驟如下1.)確定軟件項(xiàng)目需求,分析易采用的編程語言及編程環(huán)境;2.)在步驟1)的基礎(chǔ)上,根據(jù)編程環(huán)境選擇適用于網(wǎng)絡(luò)數(shù)據(jù)處理的策略,并根據(jù)該策略選擇在此環(huán)境下的系統(tǒng)工具;3.)通常,這些系統(tǒng)工具由于與底層結(jié)合緊密,是由低級語言寫成的,它們包含了一系列的系統(tǒng)調(diào)用函數(shù),這些系統(tǒng)調(diào)用函數(shù)都與一個指針有關(guān),該指針指向獲取內(nèi)核協(xié)議棧中數(shù)據(jù)包的地址,設(shè)它為指針變量A;4.)根據(jù)步驟1)中分析軟件易采用的編程語言,對這些系統(tǒng)工具進(jìn)行封裝,即C++對C語言的封裝,將指針變量A設(shè)為一個類B的成員變量,類B就是對數(shù)據(jù)包進(jìn)行操作的對象類;5.)依據(jù)步驟2)中確定的網(wǎng)絡(luò)數(shù)據(jù)包處理策略,用高級語言進(jìn)行統(tǒng)一建模,并用模塊化設(shè)計思想編寫處理策略的代碼級程序;6.)在以上步驟完成以后,就可以借鑒高級語言和低級語言中的各自優(yōu)點(diǎn),根據(jù)軟件項(xiàng)目書中給出的要求,分析從低層獲得數(shù)據(jù)包并進(jìn)行策略過濾的處理流程,找出策略過濾的效率瓶頸;對效率低的瓶頸部分增加并行處理、多線程、信號調(diào)用等措施。2.根據(jù)權(quán)利要求1所述的多語言的網(wǎng)絡(luò)數(shù)據(jù)包高效過濾方法,其特征在于在網(wǎng)絡(luò)數(shù)據(jù)處理的策略中,利用高級編程語言與低級編程語言各自的優(yōu)缺點(diǎn),對網(wǎng)絡(luò)數(shù)據(jù)處理過程中影響性能的瓶頸部分進(jìn)行了改進(jìn)基于多語言的數(shù)據(jù)包處理-1.)選擇具有內(nèi)核空間與用戶空間通信功能的Netlink作為過濾策略實(shí)施的低層模塊,并對其進(jìn)行再次封裝,定義一個面向?qū)ο蟮臄?shù)據(jù)包類,將它的一個屬性變量賦予內(nèi)核協(xié)議棧中數(shù)據(jù)包的地址;通過在數(shù)據(jù)包類中自定義類處理函數(shù),依據(jù)資源的使用需求重新對內(nèi)核系統(tǒng)函數(shù)進(jìn)行流程再分配;2.)對網(wǎng)絡(luò)數(shù)據(jù)包處理流程進(jìn)行性能分析,找出影響整體處理效率的瓶頸部分,在這些瓶頸部分增加高級語言的模板庫、線程庫支持,在對數(shù)據(jù)依賴的瓶頸處增加多線程處理和緩沖區(qū)處理;規(guī)則鏈表的設(shè)計規(guī)則鏈表對已經(jīng)明確性質(zhì)的網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行處理,屬于DDoS攻擊的數(shù)據(jù)包將進(jìn)行丟棄,屬于正常請求的連接報文將允許通過;規(guī)則鏈表釆用協(xié)議號和端口號為基礎(chǔ)的結(jié)構(gòu),依據(jù)攻擊的不同方式首先進(jìn)行協(xié)議號和端口號的匹配檢測;采用開源環(huán)境下的內(nèi)核規(guī)則過濾模式,避免大多數(shù)數(shù)據(jù)包經(jīng)過內(nèi)核與用戶空間的轉(zhuǎn)換,提高實(shí)際規(guī)則匹配的效率;內(nèi)核規(guī)則鏈表采用樹形結(jié)構(gòu)設(shè)計,允許多個子規(guī)則節(jié)點(diǎn)屬于一個父親規(guī)則節(jié)點(diǎn),這樣前項(xiàng)和后項(xiàng)搜索效率很高,對于具有特定協(xié)議或端口特性的攻擊報文規(guī)則鏈表匹配速度是很快的。全文摘要可在多個編程語言環(huán)境下實(shí)現(xiàn)的數(shù)據(jù)包處理方法是一種網(wǎng)絡(luò)安全和軟件開發(fā)技術(shù)的解決方案,主要用于解決網(wǎng)絡(luò)數(shù)據(jù)包處理程序的開發(fā)和應(yīng)用問題,屬于計算機(jī)網(wǎng)絡(luò)和軟件工程學(xué)技術(shù)交叉領(lǐng)域。同時又給出了一個可移植到路由器上的過濾器的代碼實(shí)現(xiàn)。對網(wǎng)絡(luò)數(shù)據(jù)包的監(jiān)測與處理一直都是網(wǎng)絡(luò)安全領(lǐng)域重要且關(guān)鍵的技術(shù),本發(fā)明提出的這個處理方案,就是為了能更快捷、高效地處理網(wǎng)絡(luò)數(shù)據(jù)包,保護(hù)我們的服務(wù)器與主機(jī)免受網(wǎng)絡(luò)攻擊的影響。因此,采用多語言實(shí)現(xiàn),并增加了優(yōu)化過濾的因素,使得過濾的效率得到最大的提高。所給出的過濾器的代碼實(shí)現(xiàn),可用在多個復(fù)雜網(wǎng)絡(luò)環(huán)境下的服務(wù)器與個人主機(jī)上,作為相關(guān)網(wǎng)絡(luò)數(shù)據(jù)包處理軟件的基礎(chǔ)。文檔編號H04L9/36GK101242409SQ20081001928公開日2008年8月13日申請日期2008年1月18日優(yōu)先權(quán)日2008年1月18日發(fā)明者任勛益,勇張,張登銀,王汝傳,祝世雄申請人:南京郵電大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1