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

應(yīng)用層協(xié)議識(shí)別方法

文檔序號(hào):7655591閱讀:279來(lái)源:國(guó)知局

專利名稱::應(yīng)用層協(xié)議識(shí)別方法
技術(shù)領(lǐng)域
:本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)流量監(jiān)控領(lǐng)域,更具體地,本發(fā)明涉及一種計(jì)算機(jī)網(wǎng)絡(luò)的應(yīng)用層協(xié)議識(shí)別方法,優(yōu)選地,本發(fā)明還涉及一種采用一次匹配、被動(dòng)FTP(PASV-FTP)匹配與上述方法相結(jié)合的應(yīng)用層協(xié)議識(shí)別方法。
背景技術(shù)
:為了控制網(wǎng)絡(luò)應(yīng)用對(duì)帶寬的占用,必須首先對(duì)數(shù)據(jù)流量進(jìn)行有效分析和監(jiān)控,它涉及到流量采集、流量識(shí)別和流量控制等三個(gè)問(wèn)題。其中,流量的采集與現(xiàn)有網(wǎng)絡(luò)監(jiān)測(cè)方式采用的技術(shù)完全一致,流量控制則取決不同的網(wǎng)絡(luò)管理策略,由網(wǎng)絡(luò)管理人員進(jìn)行相應(yīng)的設(shè)置,因此,對(duì)網(wǎng)絡(luò)流量分析與監(jiān)控的關(guān)鍵部分是流量識(shí)別技術(shù)。對(duì)TCP或者UDP協(xié)議網(wǎng)絡(luò)的流量識(shí)別主要是在應(yīng)用層下進(jìn)行,稱為應(yīng)用層協(xié)議識(shí)別。傳統(tǒng)的應(yīng)用層協(xié)議識(shí)別技術(shù)主要有2種,基于端口的識(shí)別技術(shù)和基于應(yīng)用層協(xié)議特征碼的識(shí)別技術(shù)?;诙丝诘淖R(shí)別技術(shù),是對(duì)端口號(hào)進(jìn)行匹配的一種協(xié)議識(shí)別技術(shù)。這種技術(shù)一般針對(duì)知名端口進(jìn)行識(shí)別,該識(shí)別方法最大的優(yōu)點(diǎn)就是簡(jiǎn)單易行,它不需要進(jìn)行復(fù)雜的分組處理即可得出結(jié)論,目前有相當(dāng)部分流控產(chǎn)品及防火墻都是基于這種技術(shù)實(shí)現(xiàn)的。下面對(duì)需要識(shí)別的端口按照其性質(zhì)進(jìn)行分類說(shuō)明(1)、知名端口(WellKnownPorts),也常稱為"常用端口",這類端口的端口號(hào)從O到1024,固定分配給一些特定的服務(wù),明確表明了某種服務(wù)的協(xié)議,不可再重新定義它的作用對(duì)象。例如80端口實(shí)際上總是HTTP通信所使用的,而23號(hào)端口則是Telnet服務(wù)專用的。(2)、注冊(cè)端口(RegisteredPorts):端口號(hào)從1025到49151,此類端口一般不固定分配給某個(gè)服務(wù),而是松散地綁定一些服務(wù),也就是說(shuō)許多服務(wù)都可以使用這些端口。這些端口多數(shù)沒(méi)有明確的定義服務(wù)對(duì)象,不同程序可根據(jù)需要自己定義。比如1024端口就是分配給第一個(gè)向系統(tǒng)發(fā)出申請(qǐng)的程序,在關(guān)閉程序進(jìn)程后,就會(huì)釋放所占用的端口號(hào)。(3)、動(dòng)態(tài)和/或私有端口(Dynamicand/orPrivatePorts):端口號(hào)從49152到65535,此類端口不被引起注意,容易隱蔽,有些較為特殊的程序,特別是一些木馬程序就非常喜歡使用這些端口。基于應(yīng)用層協(xié)議特征碼的識(shí)別技術(shù),是對(duì)接收的每一個(gè)數(shù)據(jù)包進(jìn)行特征碼的匹配,分析數(shù)據(jù)包的應(yīng)用層(Layer7of0SI)信息,對(duì)TCP或UDP的有效載荷(payload)進(jìn)行檢查,精確匹配協(xié)議數(shù)據(jù)包中出現(xiàn)的特征碼?,F(xiàn)有的協(xié)議識(shí)別技術(shù)方案中,一種是基于端口的識(shí)別,一種是基于端口和基于應(yīng)用層協(xié)議特征碼兩者識(shí)別的簡(jiǎn)單組合(即部分應(yīng)用層協(xié)議通過(guò)基于知名端口進(jìn)行識(shí)別,部分應(yīng)用層協(xié)議通過(guò)基于應(yīng)用層協(xié)議特征碼進(jìn)行識(shí)別)。目前,基于端口的識(shí)別技術(shù)僅應(yīng)用于知名端口的識(shí)別,優(yōu)點(diǎn)是實(shí)現(xiàn)筒單、消耗系統(tǒng)資源少,但識(shí)別范圍窄,前景不容樂(lè)觀,由于大多數(shù)P2P應(yīng)用都使用動(dòng)態(tài)端口進(jìn)行傳輸,所以簡(jiǎn)單地通過(guò)基于端口的識(shí)別技術(shù)對(duì)它們進(jìn)行識(shí)別通常會(huì)失效。而基于應(yīng)用層協(xié)議特征碼的識(shí)別技術(shù),在識(shí)別一些應(yīng)用層協(xié)議時(shí),由于單一特征碼對(duì)于協(xié)議而言攜帶信息不完全,則難以通過(guò)其會(huì)話中的某一個(gè)數(shù)據(jù)包所攜帶的特征碼進(jìn)行識(shí)別;或者對(duì)于某些協(xié)議,例如要求識(shí)別統(tǒng)計(jì)80端口的某類P2P協(xié)議(如KaZaA),由于協(xié)議特征碼的相似性,利用筒單的基于應(yīng)用層協(xié)議特征碼的識(shí)別技術(shù)不能精確識(shí)別。
發(fā)明內(nèi)容為了克服傳統(tǒng)識(shí)別方法誤識(shí)別率高、擴(kuò)展性差的缺陷,本發(fā)明提出了一種應(yīng)用層協(xié)議識(shí)別方法,本發(fā)明還提出一種采用一次匹配、被動(dòng)FTP(PASV_FTP)匹配與上述一種應(yīng)用層協(xié)i^識(shí)別方法相結(jié)合的應(yīng)用層協(xié)^^義識(shí)別方法。一種應(yīng)用層協(xié)議識(shí)別方法,包括以下步驟步驟110)對(duì)連接進(jìn)行一次基于端口的匹配或者一次基于特征碼的匹配,一次匹配成功后,對(duì)該連接進(jìn)行標(biāo)記或者統(tǒng)計(jì);步驟120)對(duì)連接進(jìn)行第二次匹配,此時(shí)第二次匹配為基于特征碼的匹配;步驟130)才艮據(jù)第一次匹配的標(biāo)記或統(tǒng)計(jì)結(jié)果和第二次匹配成功的特征碼,識(shí)別出該連接的對(duì)應(yīng)協(xié)議。其中步驟120)中對(duì)連接進(jìn)行第二次匹配是指對(duì)一次匹配成功的連接通過(guò)遍歷之前存儲(chǔ)的已知協(xié)議的特征碼進(jìn)行特征碼匹配。一種采用一次匹配、被動(dòng)FTP(PASV-FTP)匹配與上述一種應(yīng)用層協(xié)議識(shí)別方法相結(jié)合的應(yīng)用層協(xié)議識(shí)別方法,包括以下步驟步驟210)、根據(jù)數(shù)據(jù)結(jié)構(gòu)信息,若需要對(duì)連接進(jìn)行兩次匹配,同時(shí)若需要提取被動(dòng)FTP信息,則提取被動(dòng)FTP的IP地址和端口號(hào)信息,更新被動(dòng)FTP的數(shù)據(jù)結(jié)構(gòu);步驟220)、根據(jù)數(shù)據(jù)結(jié)構(gòu)信息,若需要對(duì)連接進(jìn)行兩次匹配,同時(shí)若不需要提取被動(dòng)FTP信息,則按照權(quán)利要求1的所述方法執(zhí)行;步驟230)、根據(jù)動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)信息,若不需要進(jìn)行兩次匹配,則只進(jìn)行一次匹配;步驟240)、如果以上匹配識(shí)別沒(méi)有成功進(jìn)行,則遍歷被動(dòng)FTP動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),進(jìn)行被動(dòng)FTP匹配;步驟250)、更新數(shù)據(jù)結(jié)構(gòu)信息;步驟260)若該連接所進(jìn)行的一次匹配或^皮動(dòng)FTP匹配超過(guò)了所設(shè)定的數(shù)據(jù)包個(gè)數(shù)(如8或16等),但該連接所屬的應(yīng)用層協(xié)議還未被識(shí)別,則不再對(duì)該連接進(jìn)行匹配識(shí)別,而進(jìn)行統(tǒng)計(jì)、阻斷或放行操作。在使用兩方法的后者進(jìn)行識(shí)別之前,分別建立一次匹配、兩次匹配和被動(dòng)FTP匹配對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)中的字段包括應(yīng)用層協(xié)議名、識(shí)別該應(yīng)用層協(xié)議的端口號(hào)、統(tǒng)計(jì)該應(yīng)用層協(xié)議或其分組的流量計(jì)數(shù)器、應(yīng)用層協(xié)議的特征碼、應(yīng)用層協(xié)議分組名、對(duì)應(yīng)用層協(xié)議流量進(jìn)行限速的閾值,數(shù)據(jù)結(jié)構(gòu)包括但不限于鏈表結(jié)構(gòu)、樹(shù)結(jié)構(gòu)。兩方法中所述的一次匹配包括基于端口的一次匹配和基于特征碼的一次匹配兩者。使用兩方法的后者進(jìn)行識(shí)別中,通過(guò)配置文件操作、調(diào)用相應(yīng)的API操作或者通過(guò)用戶終端命令^作,實(shí)現(xiàn)一次匹配數(shù)據(jù)結(jié)構(gòu)、兩次匹配數(shù)據(jù)結(jié)構(gòu)、被動(dòng)FTP匹配數(shù)據(jù)結(jié)構(gòu)的建立或者更新。其中配置文件中包括所需識(shí)別協(xié)議的特征碼與所述連接是否需要進(jìn)行一次匹配、兩次匹配或被動(dòng)FTP匹配的需求。其中,步驟250)中更新數(shù)據(jù)結(jié)構(gòu)信息,優(yōu)選地,一次匹配后識(shí)別成功,更新一次匹配數(shù)據(jù)結(jié)構(gòu);第二次匹配后識(shí)別成功,更新一次匹配數(shù)據(jù)結(jié)構(gòu)和兩次匹配數(shù)據(jù)結(jié)構(gòu);被動(dòng)FTP匹配進(jìn)行后,更新被動(dòng)FTP匹配數(shù)據(jù)結(jié)構(gòu)。其中,步驟260)還包括步驟若所述應(yīng)用層協(xié)議沒(méi)有被識(shí)別,則不再對(duì)該連接進(jìn)行識(shí)別,而進(jìn)行統(tǒng)計(jì)將其視為未識(shí)別應(yīng)用層協(xié)議,并且若是TCP協(xié)議,則進(jìn)行阻斷處理,若是UDP協(xié)議,則進(jìn)行放行操作。本發(fā)明對(duì)應(yīng)用層協(xié)議的識(shí)別進(jìn)行了分類優(yōu)化處理,便于系統(tǒng)維護(hù),有較好的可擴(kuò)展性,對(duì)應(yīng)用層協(xié)議的識(shí)別采取了按需動(dòng)態(tài)調(diào)整、按需擴(kuò)展的策略,實(shí)現(xiàn)了對(duì)應(yīng)用層協(xié)議的按需識(shí)別,并且可以用來(lái)識(shí)別多特征碼的應(yīng)用層協(xié)議,也能較好的跟蹤某些通過(guò)知名端口通信的P2P應(yīng)用。圖l是系統(tǒng)內(nèi)建一次匹配、二次匹配及PASV-FTP鏈表關(guān)系圖;圖2是鏈表的初始化及節(jié)點(diǎn)信息讀取與節(jié)點(diǎn)信息寫(xiě)入圖;圖3是應(yīng)用層協(xié)議匹配分析總體結(jié)構(gòu)圖;圖4是應(yīng)用層協(xié)議匹配分析方法實(shí)現(xiàn)流程圖。具體實(shí)施例方式當(dāng)前的應(yīng)用層協(xié)議紛繁復(fù)雜,尤其是快速增長(zhǎng)的P2P應(yīng)用協(xié)議。有些P2P應(yīng)用層協(xié)議使用動(dòng)態(tài)端口號(hào),而有些P2P應(yīng)用層協(xié)議為了規(guī)避封堵,使用知名端口號(hào)。另外由于某些P2P協(xié)議特征碼的相似性,使得其中部分應(yīng)用層協(xié)議難以用基于特征碼的一次匹配對(duì)其進(jìn)行準(zhǔn)確識(shí)別。另外由于應(yīng)用層協(xié)議本身的特征碼信息有多個(gè),而每單個(gè)特征碼不足以識(shí)別該應(yīng)用層協(xié)議,或不足以達(dá)到識(shí)別該應(yīng)用層協(xié)議所要求的精度,此時(shí)必須通過(guò)提取該應(yīng)用層協(xié)議通信連接中的兩個(gè)或兩個(gè)以上的數(shù)據(jù)包所攜帶的特征碼來(lái)對(duì)其進(jìn)行識(shí)別(目前可由兩個(gè)數(shù)據(jù)包所攜帶的特征碼信息達(dá)到準(zhǔn)確識(shí)別某一應(yīng)用層協(xié)議,暫時(shí)不需進(jìn)行多個(gè)數(shù)據(jù)包的特征碼識(shí)別)?;谝陨峡紤],本發(fā)明提出一種應(yīng)用層協(xié)議識(shí)別方法,稱為二次匹配方法,也就是二次匹配技術(shù)。二次匹配方法,是指在一次端口匹配或一次特征碼匹配的基礎(chǔ)上,對(duì)應(yīng)用層協(xié)議再次進(jìn)行特征碼匹配的方法。具體步驟為(1)對(duì)連接進(jìn)行一次基于端口的匹配或者一次基于特征碼的匹配,一次匹配成功后,對(duì)該連接進(jìn)行標(biāo)記或者統(tǒng)計(jì);(2)對(duì)連接進(jìn)行第二次匹配,此時(shí)第二次匹配為基于特征碼的匹配;(3)根據(jù)第一次匹配的標(biāo)記和第二次匹配成功的特征碼,識(shí)別出該連接的對(duì)應(yīng)協(xié)議。一次匹配成功之后,可能識(shí)別出部分協(xié)議,但是未識(shí)別出的連接,可以通過(guò)一次匹配限定其協(xié)議范圍,增加在二次匹配時(shí)的一個(gè)匹配對(duì)象。在二次匹配時(shí),可根據(jù)具體需求處理其第一次的匹配結(jié)果第一次匹配識(shí)別結(jié)果作為一個(gè)大的范疇進(jìn)行統(tǒng)計(jì),第二次匹配的結(jié)果可作為第一次匹配結(jié)果中的一個(gè)子集進(jìn)行識(shí)別統(tǒng)計(jì);或者只對(duì)第一次匹配成功的連接進(jìn)行標(biāo)記,第二次匹配僅僅針對(duì)有此標(biāo)記的連接進(jìn)行識(shí)別,再次識(shí)別成功才確認(rèn)應(yīng)用層協(xié)議。二次匹配方法分為兩種基于一次端口識(shí)別的二次特征碼匹配方法和基于一次特征碼識(shí)別的二次特征碼匹配方法,二者在進(jìn)行二次識(shí)別過(guò)程中沒(méi)有差別。而部分應(yīng)用層協(xié)議可以通過(guò)現(xiàn)有技術(shù)中的一次匹配技術(shù)和被動(dòng)FTP匹配技術(shù)識(shí)別。一次匹配技術(shù)包括基于端口的一次匹配技術(shù)和基于特征碼的一次匹配技術(shù)兩者,基于端口的一次匹配技術(shù)為基于卸名端口對(duì)于傳統(tǒng)的應(yīng)用層協(xié)議(如activeFTP、HTTP、SMTP、P0P3等)的識(shí)別技術(shù);基于特征碼的一次匹配技術(shù)為基于應(yīng)用層(Layer7ofOSI)協(xié)議特征碼信息對(duì)于P2P應(yīng)用協(xié)議的識(shí)別技術(shù)。FTP服務(wù)器使用2個(gè)端口,一個(gè)數(shù)據(jù)端口和一個(gè)命令端口(也稱為控制端口),通常數(shù)據(jù)端口的端口號(hào)是20,命令端口的端口號(hào)是21。由于FTP工作方式的不同,被動(dòng)FTP(PASV—FTP)不同于主動(dòng)FTP,其數(shù)據(jù)端口一般并不總是20。使用被動(dòng)FTP時(shí),命令連接和數(shù)據(jù)連接都由客戶端發(fā)起,當(dāng)開(kāi)啟一個(gè)FTP連接時(shí),客戶端打開(kāi)任意兩個(gè)非特權(quán)本地端口(N>1024和N+l),第一個(gè)端口連接服務(wù)器的21端口,但與主動(dòng)FTP不同,客戶端不提交PORT命令,而是提交PASV命令,并允許FTP服務(wù)器回連客戶端的數(shù)據(jù)端口。這樣做的結(jié)果是FTP服務(wù)器會(huì)開(kāi)啟任意一個(gè)非特權(quán)端口(P>1024),并發(fā)送PORT命令給客戶端,然后客戶端發(fā)起從本地端口N+l到服務(wù)器的端口P的連接用來(lái)傳送數(shù)據(jù)。被動(dòng)FTP匹配技術(shù)就是經(jīng)過(guò)提取FTP服務(wù)器21端口通信時(shí)的應(yīng)用層信息,知道4皮動(dòng)FTP的數(shù)據(jù)傳輸端口,然后纟艮據(jù)此端口號(hào)對(duì)被動(dòng)FTP傳輸進(jìn)行端口匹配。另外,傳統(tǒng)識(shí)別技術(shù)的實(shí)現(xiàn)都是將應(yīng)用層協(xié)議的端口號(hào)或者特征碼固化到模塊或者代碼中,沒(méi)有良好的可擴(kuò)展性、實(shí)時(shí)性,如果添加新的應(yīng)用層協(xié)議,則需要重新編寫(xiě)、添加新的模塊或重寫(xiě)代碼。本發(fā)明在實(shí)現(xiàn)時(shí),采用框架模式,建立數(shù)據(jù)結(jié)構(gòu)框架,在本實(shí)施例中以鏈表為例,一次匹配鏈表、二次匹配鏈表、被動(dòng)FTP匹配鏈表,如需要添加、刪除或修改識(shí)別應(yīng)用層協(xié)議的策略,可通過(guò)配置文件操作、調(diào)用相應(yīng)的API操作或者通過(guò)用戶終端命令操作來(lái)實(shí)現(xiàn),此即應(yīng)用層協(xié)議識(shí)別的動(dòng)態(tài)策略技術(shù)。本發(fā)明提出的結(jié)合一次匹配技術(shù)、二次匹配技術(shù)、被動(dòng)FTP匹配技術(shù)的應(yīng)用層協(xié)"R識(shí)別方法,包括以下步驟步驟10)、為一次匹配、二次匹配和被動(dòng)FTP匹配分別建立諸如鏈表、樹(shù)的數(shù)據(jù)結(jié)構(gòu),通過(guò)各自的配置文件進(jìn)行初始化、更新數(shù)據(jù)結(jié)構(gòu),將配置文件的信息寫(xiě)入各自的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)中的字段包括應(yīng)用層協(xié)議名、識(shí)別該應(yīng)用層協(xié)議的端口號(hào)、統(tǒng)計(jì)該應(yīng)用層協(xié)議或其分組的流量計(jì)數(shù)器、應(yīng)用層協(xié)議的特征碼、應(yīng)用層協(xié)議分組名、對(duì)應(yīng)用層協(xié)議流量進(jìn)行限速的閾值,數(shù)據(jù)結(jié)構(gòu)包括但不限于鏈表結(jié)構(gòu)、樹(shù)結(jié)構(gòu),其中配置文件中包括所需識(shí)別協(xié)議的特征碼與所述連接是否需要進(jìn)行一次匹配、兩次匹配或被動(dòng)FTP匹配的需求;步驟20)、根據(jù)數(shù)據(jù)結(jié)構(gòu)信息,若需要對(duì)連接進(jìn)行兩次匹配,同時(shí)若需要提取被動(dòng)FTP信息,則提取被動(dòng)FTP的IP地址和端口號(hào)信息,更新被動(dòng)FTP的數(shù)據(jù)結(jié)構(gòu);步驟30)、根據(jù)數(shù)據(jù)結(jié)構(gòu)信息,若需要對(duì)連接進(jìn)行兩次匹配,同時(shí)若不需要提取被動(dòng)FTP信息,則按照權(quán)利要求1的所述方法執(zhí)行;步驟40)、根據(jù)動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)信息,若不需要進(jìn)行兩次匹配,則只進(jìn)行一次匹配;步驟50)、如果以上匹配識(shí)別沒(méi)有成功進(jìn)行,則遍歷被動(dòng)FTP動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),進(jìn)行^皮動(dòng)FTP匹配;步驟60)、更新數(shù)據(jù)結(jié)構(gòu)信息,優(yōu)選地,一次匹配后識(shí)別成功,更新一次匹配數(shù)據(jù)結(jié)構(gòu);第二次匹配后識(shí)別成功,更新一次匹配數(shù)據(jù)結(jié)構(gòu)和二次匹配數(shù)據(jù)結(jié)構(gòu);被動(dòng)FTP匹配進(jìn)行后,更新被動(dòng)FTP匹配數(shù)據(jù)結(jié)構(gòu)。;步驟70)若該連接所進(jìn)行的一次匹配或被動(dòng)FTP匹配超過(guò)了所設(shè)定的數(shù)據(jù)包個(gè)數(shù)(如8或16等),但該連接所屬的應(yīng)用層協(xié)議還未被識(shí)別,則不再對(duì)該連接進(jìn)行匹配識(shí)別,而進(jìn)行統(tǒng)計(jì)、阻斷或放行操作,優(yōu)選地,若所述應(yīng)用層協(xié)議沒(méi)有被識(shí)別,則不再對(duì)該連接進(jìn)行識(shí)別,而進(jìn)行統(tǒng)計(jì)將其視為未識(shí)別應(yīng)用層協(xié)議,并且若是TCP協(xié)議,則進(jìn)行阻斷處理,若是UDP協(xié)議,則進(jìn)行放行操作。。其中,一次匹配包括基于端口的一次匹配和基于特征碼的一次匹配兩者。本發(fā)明對(duì)應(yīng)用層協(xié)議的識(shí)別使用內(nèi)建的一次匹配、二次匹配和PASV-FTP匹配鏈表(也可用其他動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)代替鏈表結(jié)構(gòu),如樹(shù)結(jié)構(gòu)等),用來(lái)支撐應(yīng)用層協(xié)議識(shí)別的動(dòng)態(tài)策略框架模式,如附圖1所示。其中字段包括應(yīng)用層協(xié)議名(protocol)、識(shí)別該應(yīng)用層協(xié)議的端口號(hào)(port[])(可有5個(gè))、統(tǒng)計(jì)該應(yīng)用層協(xié)議或其分組的流量計(jì)數(shù)器(counter)、應(yīng)用層協(xié)議的特征碼(string)、指向應(yīng)用層協(xié)議分組(如P2P、IM等)的指針(group-point)、應(yīng)用層協(xié)議分組名(Group—protocol)如P2P,IM等、對(duì)應(yīng)用層協(xié)議流量進(jìn)行限速的閾值(tc-speed)、應(yīng)用層協(xié)議的索引號(hào)(idx),還包括一次匹配的info[]:info[O]取值n或y,其中n表示只進(jìn)行一次匹配,y表示需要進(jìn)行二次匹配,info[l]取值n或y,其中n表示不更新應(yīng)用層協(xié)"R流量計(jì)數(shù)器(counter),y表示需更新應(yīng)用層協(xié)議流量計(jì)數(shù)器(counter),info[2]取值0、n或y,其中0為初始化值,表示只進(jìn)行一次匹配,n表示進(jìn)行二次匹配,y表示提取被動(dòng)FTP信息(源IP和端口號(hào));還包括字段指向應(yīng)用層協(xié)議流量計(jì)數(shù)器的指針(protocol-point-c)、指向應(yīng)用層協(xié)議分組流量計(jì)數(shù)器的指針(group-point—c)、二次匹配的info[O]取值為n或者y,其中,n表示進(jìn)行二次匹配,y表示提取被動(dòng)FTP信息(源IP和端口號(hào));還包括被動(dòng)FTP連接的服務(wù)器IP地址(src-ip)、被動(dòng)FTP連接的服務(wù)器端口(port)、4皮動(dòng)FTP信息(src-ip,port)插入鏈表的時(shí)間(creationTime)。一次匹配、二次匹配以及PASV-FTP鏈表通過(guò)協(xié)議配置文件進(jìn)行初始化。<table>tableseeoriginaldocumentpage14</column></row><table>表l為一次端口匹配初始化配置文件,其中,protocol是指應(yīng)用層協(xié)議名;port是指將其流量歸結(jié)到該協(xié)議的端口;tc_speed是對(duì)該協(xié)議的流量控制指標(biāo)(負(fù)值表示對(duì)該協(xié)議不進(jìn)行流量限制;零值表示完全阻止該協(xié)議;正值表示對(duì)該協(xié)議流量的限制,其最大值不超過(guò)該正值);Group-protocol是對(duì)該應(yīng)用層協(xié)i義的分組標(biāo)記名,用于對(duì)應(yīng)用層協(xié){義進(jìn)4亍分組統(tǒng)計(jì)。管理員把protocol域?qū)?yīng)的協(xié)i5C故到此字段對(duì)應(yīng)的類中,以《更更新協(xié)i義分組圖,Group—protocol與用于識(shí)別應(yīng)用層協(xié)i義的特征碼配置文件下的相同的值進(jìn)行合并,以便統(tǒng)計(jì)應(yīng)用層協(xié)議的類流量(如P2P、IM等)。表2<table>tableseeoriginaldocumentpage15</column></row><table>表2為一次特征碼匹配初始化配置文件,其中,string是指識(shí)別該協(xié)議的特征值5protocol、tc-speed、Group—protocol與字段在表1中定義相同。系統(tǒng)初始化時(shí)要讀取該配置文件信息,然后建立或者更新一次匹配結(jié)構(gòu)鏈表,并將該列表調(diào)入內(nèi)存,對(duì)TCP連接和UDP數(shù)據(jù)傳輸進(jìn)行基于端口或特征碼的應(yīng)用層協(xié)議識(shí)別。二次匹配,首先要匹配一個(gè)端口或者是特征碼;被動(dòng)FTP的端口號(hào)是FTP信令數(shù)據(jù)包中的一部分,因此,需找到攜帶被動(dòng)FTP信息的信令數(shù)據(jù)包,然后提取相應(yīng)的IP地址和被動(dòng)端口號(hào),根據(jù)提取到的信息對(duì)后來(lái)新建連接進(jìn)行識(shí)別,類似于二次匹配,但與二次匹配卻有本質(zhì)區(qū)別二次匹配是對(duì)同一應(yīng)用的同一連接而言,被動(dòng)FTP是對(duì)同一應(yīng)用的兩個(gè)不同連接而言,本發(fā)明將被動(dòng)FTP和二次匹配設(shè)計(jì)到了同一個(gè)配置文件,利用一個(gè)標(biāo)記符(y或n)即可進(jìn)行區(qū)分。<table>tableseeoriginaldocumentpage16</column></row><table>表3為被動(dòng)FTP和二次匹配初始化配置文件,其中,string是指識(shí)別該協(xié)議的特征值,字段information下符號(hào)'y,表示被動(dòng)FTP識(shí)別,符號(hào)'n,表示二次匹配,當(dāng)二次匹配成功才可標(biāo)記此連接為對(duì)應(yīng)的應(yīng)用層協(xié)議,然后更新相應(yīng)的應(yīng)用層協(xié)議流量計(jì)數(shù)器。如圖1所示,一次匹配節(jié)點(diǎn)的info[]數(shù)組初始化值為info[O]-'n,,info[l]-'y,,info[2]='0,;info='n,表示只進(jìn)行一次匹配,info[l]-'y,表示需更新應(yīng)用層協(xié)議流量計(jì)數(shù)器(counter),info[2]=40,為初始化值。如果基于端口及特征碼一次匹配節(jié)點(diǎn)對(duì)應(yīng)的應(yīng)用層協(xié)議需要分組(如P2P、IM等),則根據(jù)節(jié)點(diǎn)的字段值Group-protocol對(duì)應(yīng)到相應(yīng)的分組(通過(guò)一次匹配節(jié)點(diǎn)的group-point指針指向具有同樣Group—protocol字段值的分組節(jié)點(diǎn)),見(jiàn)圖1中的[1]和[2]。如果二次匹配節(jié)點(diǎn)的protocol字段值與基于端口及特征碼一次匹配節(jié)點(diǎn)的protocol字段值相等,則說(shuō)明需要對(duì)該應(yīng)用層協(xié)議進(jìn)行第二次匹配,此時(shí)二次匹配節(jié)點(diǎn)的protocol-point-c指針指向該應(yīng)用層協(xié)議的流量計(jì)數(shù)器counter,即一次匹配節(jié)點(diǎn)的counter,如果對(duì)該應(yīng)用層協(xié)i義進(jìn)行了分組(如P2P、IM等),則二次匹配的group-point-c指針指向?qū)?yīng)的分組節(jié)點(diǎn)的counter,同時(shí)將一次匹配節(jié)點(diǎn)對(duì)應(yīng)的應(yīng)用層協(xié)iJC索引號(hào)idx賦值給二次匹配節(jié)點(diǎn)的idx字段,最后更新一次匹配的info[]數(shù)組一次匹配節(jié)點(diǎn)的info賦值為'y,,info[l]和info[2]賦值為二次匹配的info[O](對(duì)應(yīng)于二次匹配配置文件中的"nfomation字段的值,'n,或'y,),見(jiàn)圖1中的(l)-(5)。如果二次匹配節(jié)點(diǎn)info的值為'y,,則構(gòu)建^^動(dòng)FTP鏈表,初始化時(shí)該鏈表為一空鏈表。即如果一次端口匹配配置文件、一次特征碼匹配配置文件和^皮動(dòng)FTP及二次匹配配置文件中有protocol相同的,則要進(jìn)行合并處理;如多個(gè)端口、一個(gè)特征碼,對(duì)應(yīng)一個(gè)應(yīng)用層協(xié)議protocol,或?qū)TP進(jìn)行被動(dòng)FTP處理標(biāo)記,或?qū)f(xié)議進(jìn)行二次識(shí)別標(biāo)記,然后更新一次匹配鏈表及二次匹配鏈表。系統(tǒng)啟動(dòng)后,通過(guò)讀取一次端口匹配配置文件、一次特征碼匹配配置文件和被動(dòng)FTP及二次匹配配置文件,系統(tǒng)提取配置文件信息建立或更新一次匹配鏈表、二次匹配鏈表與被動(dòng)PASV-FTP鏈表,同時(shí)將不同應(yīng)用層協(xié)議按照識(shí)別技術(shù)進(jìn)行了分類。同時(shí),系統(tǒng)啟動(dòng)后,可以通過(guò)系統(tǒng)提供的安全API或者終端用戶命令,添加、修改或刪除-皮支持的應(yīng)用層協(xié)議及其相應(yīng)的協(xié)i義信息。鏈表的初始化及節(jié)點(diǎn)信息讀取與節(jié)點(diǎn)信息寫(xiě)入如圖2所示,可以用來(lái)說(shuō)明應(yīng)用層協(xié)議識(shí)別的動(dòng)態(tài)策略。(1)系統(tǒng)初始化時(shí)從配置文件讀取所需識(shí)別的應(yīng)用層(L7)協(xié)議信息,或者系統(tǒng)處于運(yùn)行狀態(tài)時(shí)從終端讀取L7協(xié)議配置信息;(2)系統(tǒng)針對(duì)當(dāng)前網(wǎng)絡(luò)流量讀取一次匹配信息(端口port或模式pattern)j(3)對(duì)于需要進(jìn)行二次匹配的L7協(xié)議或者需處理的被動(dòng)FTP,則讀取二次匹配所需信息(pattern);(4)對(duì)于被動(dòng)FTP,需提取當(dāng)前報(bào)文數(shù)據(jù)頭部相應(yīng)信息,插入PASV-FTP鏈狄部;對(duì)本發(fā)明方法的一個(gè)具體實(shí)現(xiàn)流程步驟描述如下(總體結(jié)構(gòu)圖見(jiàn)圖3,具體實(shí)現(xiàn)流程圖見(jiàn)圖4):步驟l、將捕獲的數(shù)據(jù)包對(duì)應(yīng)到某個(gè)連接,判斷該連接是否已被識(shí)別,如果已被識(shí)別,則更新該連接對(duì)應(yīng)的參數(shù)(如連接的狀態(tài)、對(duì)應(yīng)的應(yīng)用層協(xié)議流量計(jì)數(shù)器等信息),結(jié)束流程;如果該連接沒(méi)有被識(shí)別,進(jìn)入步驟2;步驟2、判斷該數(shù)據(jù)包是否為該連接的前16(可預(yù)設(shè)為其他數(shù)量)個(gè)數(shù)據(jù)包,如果超過(guò)了16個(gè)數(shù)據(jù)包,結(jié)束流程,如果沒(méi)有超過(guò),進(jìn)入步驟3;步驟3、判斷是否需要對(duì)該數(shù)據(jù)包所屬連接進(jìn)行二次匹配,(l)如果需要,則遍歷二次匹配鏈表進(jìn)行匹配,CD若匹配成功,則更新該連接對(duì)應(yīng)的參數(shù)(如連接的狀態(tài)、對(duì)應(yīng)的應(yīng)用層協(xié)議流量計(jì)數(shù)器等信息),結(jié)束流程;Q)如果匹配失敗,結(jié)束流程;(2)如果不需要進(jìn)行二次匹配,進(jìn)入步驟4;步驟4、判斷是否需要提取被動(dòng)FTP的IP地址和端口號(hào)信息(IP,PORT),如果需要,則提取(IP,P0RT)信息,同時(shí)將信息插入到被動(dòng)FTP^^C部;如果不需要提取被動(dòng)FTP信息,則進(jìn)入步驟5;步驟5、遍歷一次匹配鏈表,進(jìn)行端口匹配和特征碼匹配,只要有端口匹配成功或者特征碼匹配成功,則更新該連接對(duì)應(yīng)的參數(shù)(如連接的狀態(tài)、對(duì)應(yīng)的應(yīng)用層協(xié)議流量計(jì)數(shù)器等信息),結(jié)束流程;如果端口匹配和特征碼匹配都失敗,則進(jìn)入步驟6;步驟6、判斷被動(dòng)FTP鏈表是否為空,即是否有(IP,P0RT)信息,若為空,結(jié)束流程;若不為空,則進(jìn)行;陂動(dòng)FTP的匹配,(l)如果匹配成功,則更新該連接對(duì)應(yīng)的參數(shù)(如連接的狀態(tài)、對(duì)應(yīng)的應(yīng)用層協(xié)議流量計(jì)數(shù)器等信息),更新被動(dòng)FTP鏈表,結(jié)束流程;(2)如果匹配不成功,更新被動(dòng)FTP鏈表,結(jié)束流程。本發(fā)明主要是基于動(dòng)態(tài)策略的優(yōu)化組合的應(yīng)用層協(xié)議識(shí)別方法。主要功能及特點(diǎn)包括(1)本發(fā)明提出的二次匹配識(shí)別技術(shù),不僅可以用來(lái)識(shí)別應(yīng)用層協(xié)議,也能較好的跟蹤某些通過(guò)知名端口通信的P2P應(yīng)用。(2)對(duì)應(yīng)用層協(xié)議的識(shí)別采取了按需動(dòng)態(tài)調(diào)整、按需擴(kuò)展的策略,實(shí)現(xiàn)了對(duì)應(yīng)用層協(xié)議的按需識(shí)別,及時(shí)跟蹤吞噬大量網(wǎng)絡(luò)帶寬資源的應(yīng)用,有較好的靈活性。最后應(yīng)說(shuō)明的是,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非對(duì)其限制,并且在應(yīng)用上可以延伸到其他的修改、變化、應(yīng)用和實(shí)施例,同時(shí)認(rèn)為所有這樣的修改、變化、應(yīng)用、實(shí)施例都在本發(fā)明的精神和范圍內(nèi)。權(quán)利要求1、一種應(yīng)用層協(xié)議識(shí)別方法,包括以下步驟步驟110)對(duì)連接進(jìn)行一次基于端口的匹配或者一次基于特征碼的匹配,一次匹配成功后,對(duì)該連接進(jìn)行標(biāo)記或者統(tǒng)計(jì);步驟120)對(duì)連接進(jìn)行第二次匹配,此時(shí)第二次匹配為基于特征碼的匹配;步驟130)根據(jù)第一次匹配的標(biāo)記或者統(tǒng)計(jì)結(jié)果和第二次匹配成功的特征碼,識(shí)別出該連接的對(duì)應(yīng)協(xié)議。2、權(quán)利要求l所述的方法,其中步驟120)中對(duì)連接進(jìn)行第二次匹配是指對(duì)一次匹配成功的連接通過(guò)遍歷之前存儲(chǔ)的已知協(xié)議的特征碼進(jìn)行特征碼匹配。3、一種應(yīng)用層協(xié)議識(shí)別方法,包括以下步驟步驟210)、根據(jù)數(shù)據(jù)結(jié)構(gòu)信息,若需要對(duì)連接進(jìn)行兩次匹配,同時(shí)若需要提取被動(dòng)FTP信息,則提取被動(dòng)FTP的IP地址和端口號(hào)信息,更新被動(dòng)FTP的數(shù)據(jù)結(jié)構(gòu);步驟220)、根據(jù)數(shù)據(jù)結(jié)構(gòu)信息,若需要對(duì)連接進(jìn)行兩次匹配,同時(shí)若不需要提取被動(dòng)FTP信息,則按照權(quán)利要求1的所述方法執(zhí)行;步驟230)、根據(jù)動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)信息,若不需要進(jìn)行兩次匹配,則只進(jìn)行一次匹配;步驟240)、如果以上匹配識(shí)別沒(méi)有成功進(jìn)行,則遍歷被動(dòng)FTP動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu),進(jìn)行#^動(dòng)FTP匹配;步驟250)、更新數(shù)據(jù)結(jié)構(gòu)信息;步驟260)若該連接所進(jìn)行的一次匹配或^:動(dòng)FTP匹配超過(guò)了所設(shè)定的數(shù)據(jù)包個(gè)數(shù)(如8或16等),但該連接所屬的應(yīng)用層協(xié)議還未被識(shí)別,則不再對(duì)該連接進(jìn)行匹配識(shí)別,而進(jìn)行統(tǒng)計(jì)、阻斷或放行^Mt。4、權(quán)利要求3的方法,其中,識(shí)別進(jìn)行之前,分別建立一次匹配、兩次匹配和被動(dòng)FTP匹配對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)中的字段包括應(yīng)用層協(xié)議名、識(shí)別該應(yīng)用層協(xié)議的端口號(hào)、統(tǒng)計(jì)該應(yīng)用層協(xié)議或其分組的流量計(jì)數(shù)器、應(yīng)用層協(xié)議的特征碼、應(yīng)用層協(xié)議分組名、對(duì)應(yīng)用層協(xié)議流量進(jìn)行限速的閾值,數(shù)據(jù)結(jié)構(gòu)包括但不限于鏈表結(jié)構(gòu)、樹(shù)結(jié)構(gòu)。5、權(quán)利要求1和權(quán)利要求3的方法,其中,一次匹配包括基于端口的一次匹配和基于特征碼的一次匹配兩者。6、權(quán)利要求3和權(quán)利要求4的方法,其中,通過(guò)配置文件操作、調(diào)用相應(yīng)的API操作或者通過(guò)用戶終端命令操作,實(shí)現(xiàn)一次匹配數(shù)據(jù)結(jié)構(gòu)、兩次匹配數(shù)據(jù)結(jié)構(gòu)、被動(dòng)FTP匹配數(shù)據(jù)結(jié)構(gòu)的建立或者更新。7、權(quán)利要求3和權(quán)利要求5的方法,其中配置文件中包括所需識(shí)別協(xié)議的特征碼與所述連接是否需要進(jìn)行一次匹配、兩次匹配或被動(dòng)FTP匹配的需求。8、權(quán)利要求3的方法,其中步驟250)中更新數(shù)據(jù)結(jié)構(gòu)信息,優(yōu)選地,一次匹配后識(shí)別成功,更新一次匹配數(shù)據(jù)結(jié)構(gòu);第二次匹配后識(shí)別成功,更新一次匹配數(shù)據(jù)結(jié)構(gòu)和兩次匹配數(shù)據(jù)結(jié)構(gòu);被動(dòng)FTP匹配進(jìn)行后,更新被動(dòng)FTP匹配數(shù)據(jù)結(jié)構(gòu)。9、權(quán)利要求3的方法,其中步驟260)還包括步驟若所述應(yīng)用層協(xié)議沒(méi)有被識(shí)別,則不再對(duì)該連接進(jìn)行識(shí)別,而進(jìn)行統(tǒng)計(jì)將其視為未識(shí)別應(yīng)用層協(xié)議,并且若是TCP協(xié)議,則進(jìn)行阻斷處理,若是UDP協(xié)議,則進(jìn)行放行操作。全文摘要本發(fā)明提出了一種應(yīng)用層協(xié)議識(shí)別方法,即基于一次匹配的基礎(chǔ)上進(jìn)行特征碼匹配的方法,同時(shí)本發(fā)明提出了采用一次匹配、被動(dòng)FTP匹配與上述方法相結(jié)合的基于動(dòng)態(tài)策略的應(yīng)用層協(xié)議識(shí)別方法,對(duì)應(yīng)用層協(xié)議的識(shí)別進(jìn)行了分類優(yōu)化處理,便于系統(tǒng)維護(hù),有較好的可擴(kuò)展性,對(duì)應(yīng)用層協(xié)議的識(shí)別采取了按需動(dòng)態(tài)調(diào)整、按需擴(kuò)展的策略,實(shí)現(xiàn)了對(duì)應(yīng)用層協(xié)議的按需識(shí)別,并且可以用來(lái)識(shí)別一些多特征碼的應(yīng)用層協(xié)議,也能較好的跟蹤某些通過(guò)知名端口通信的P2P應(yīng)用。文檔編號(hào)H04L12/56GK101360090SQ20071011985公開(kāi)日2009年2月4日申請(qǐng)日期2007年8月1日優(yōu)先權(quán)日2007年8月1日發(fā)明者旭周,暉唐,范鵬飛,譚紅艷,趙志軍申請(qǐng)人:中國(guó)科學(xué)院聲學(xué)研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1