專利名稱:一種基于模板的抽象應用層業(yè)務行為回放方法
技術領域:
本發(fā)明涉及網絡中應用層業(yè)務行為的回放技術,特別涉及基于模板的應用層業(yè)務行為回放方法。
背景技術:
所謂業(yè)務行為回放是指對應用層業(yè)務的基本過程或流程的回放。業(yè)務回放對于協(xié)議設計、網絡監(jiān)測、性能評估、網絡管理以及清晰業(yè)務過程和行為的作用得到了越來越多的體現(xiàn),通過業(yè)務回放,服務提供商(Internet Service Provider,簡稱ISP)可以更好的實現(xiàn)網絡服務質量(quality of service,簡稱QOS)控制,例如對不同級別的客戶提供不同的服務,限制特定用戶的帶寬等,同時它對于新出現(xiàn)協(xié)議的發(fā)現(xiàn),未知包和未知數(shù)據(jù)流屬于何種應用的確定也有著重要的指導意義。目前,業(yè)務回放在網絡管理應用系統(tǒng)中得到了廣泛的應用,當前大部分的網絡流量檢測和分析軟件如TcpDump,WinDump、DSniff、Ethereal、Sniffer、ClearSight、Ethereal、DSniffer中都實現(xiàn)了不同程度上的業(yè)務回放,比如利用對TcpDump捕獲包格式的分析可以實現(xiàn)最基本的網絡數(shù)據(jù)包的回放,而更進一步,Ethereal可以對捕獲的數(shù)據(jù)包,按照通信雙方的IP地址來對應用做進一步的劃分,而DSniffer能對到達的網絡報文進行會話重組,能夠回放telnet http msn smtp pop3等多種會話,藉此能夠達到獲取郵件用戶名密碼的目的。
目前業(yè)務回放的實現(xiàn)具體到特定協(xié)議、特定業(yè)務流的識別、業(yè)務流的構建和回放,不同的應用系統(tǒng)提出了不同的實現(xiàn)方法,比如SNIFFER,ETHEREAL,NTOP等流量分析系統(tǒng),它們的業(yè)務回放部分最終達到的效果大致相同,采用的架構結構也都十分類似。這些已有技術的不足在于回放的實現(xiàn)是僅僅面向特定的業(yè)務或者應用,或者僅僅支持HTTP、FTP、EMAIL等傳統(tǒng)的應用,不具備靈活性和可擴展性。比如,以Ethereal系統(tǒng)為例,如果要在此類系統(tǒng)中增加非特定的業(yè)務回放的實現(xiàn),就需要根據(jù)該業(yè)務的協(xié)議特征,處理流程,實現(xiàn)對這個協(xié)議模塊分析的函數(shù),同時寫一個格式為proto_reg_handoff_XXX的函數(shù),在函數(shù)內調用注冊函數(shù)告訴系統(tǒng)在什么時候需要調用這個協(xié)議模塊。每一次增加一個非特定的業(yè)務回放,均需要增加類似的代碼。
現(xiàn)有技術的不足在于其實現(xiàn)基于的框架本身具有的缺陷。所以人們希望有一種新的,能夠更靈活,更快速的增加對新業(yè)務和原有業(yè)務新屬性和新方法進行業(yè)務回放的方法。
發(fā)明內容
本發(fā)明的目的是克服已有業(yè)務回放技術中不具備靈活性和可擴展性的不足,提供一種基于模板化的抽象應用層業(yè)務行為回放方法。
為了達到上述目的,本發(fā)明采取如下技術方案。
一種基于模板的應用層業(yè)務行為回放方法,包括如下步驟1)確定不同的回放方法和使用回放方法進行回放時所需要的關鍵字,從而構建一個規(guī)則庫;2)根據(jù)用戶基于規(guī)則庫指定的規(guī)則,建立一個規(guī)則鏈表;3)根據(jù)建立的規(guī)則鏈表進行業(yè)務回放。
進一步地,所述步驟1)中的回放方法包括隱式指定協(xié)議方法(Implicitprotocol Method),顯式指定協(xié)議方法(Explicit protocol Method),端口一時間方法(Port Time Method),特征字-時間方法(Signature Time Method),以及以上方法不適用時采取的默認方法(Default Method)。
進一步地,所述步驟2)包括如下步驟(a)初始化規(guī)則鏈表;(b)根據(jù)用戶基于規(guī)則庫制定的協(xié)議的關鍵字和回放方法來填充此類回放方法的數(shù)據(jù)結構,加入到規(guī)則鏈表;進一步地,所述步驟3)包括如下步驟(1)接收一個數(shù)據(jù)包,轉向步驟(2);(2)根據(jù)數(shù)據(jù)包中的數(shù)據(jù)鏈路層頭部和IP(Internet Protocol)頭部,檢查數(shù)據(jù)包是否完整、合理,如果是則轉向步驟(3);否則,轉向步驟(1);(3)檢查此數(shù)據(jù)包是否屬于應用列表中的一個會話,如果是,轉向步驟(4);否則,轉向步驟(6);
(4)如果該會話上已經存在數(shù)據(jù)包,則增加數(shù)據(jù)包信息到會話,并更新會話信息,轉向步驟(7);否則,轉向步驟(5);(5)初始化會話信息,加入該會話數(shù)據(jù),轉向步驟(7);(6)新建一個應用/會話列表,將此數(shù)據(jù)包加入此列表并更新相關信息,轉向步驟(7);所述相關信息包括此鏈表第一個數(shù)據(jù)包產生時間;(7)根據(jù)步驟2)中定義的規(guī)則列表中每一條規(guī)則所擁有的屬性判斷當前數(shù)據(jù)包是否滿足規(guī)則列表中某一規(guī)則,如果是則轉向步驟(8);否則,轉向步驟(1);所述屬性包括協(xié)議關鍵字;(8)如果數(shù)據(jù)包屬于規(guī)則的回放類型為(Default Method)或端口-時間方法(Port Time Method)或特征字-時間方法(Signature Time Method),將步驟(6)中建立的應用/會話列表名稱改變?yōu)榇艘?guī)則針對的協(xié)議名稱,轉向步驟(1);否則,轉向步驟(9);(9)根據(jù)預定指定的流依賴條件判斷在此數(shù)據(jù)包中是否指定了將有新的數(shù)據(jù)流到達;如果是,則從數(shù)據(jù)包中提取出所指定將要到達的數(shù)據(jù)流的標識,并將其加入到對應應用的會話列表中,轉向步驟(1);如果否,轉向步驟(1)。
本發(fā)明提出的基于模板化的應用層業(yè)務行為回放方法考察了現(xiàn)有網絡應用的流程,考慮了應用的流之間存在的關系,實現(xiàn)新的應用層業(yè)務行為回放方法。
與現(xiàn)有技術相比,本發(fā)明的有益效果在于1)本發(fā)明的業(yè)務回放方法在針對某一特定業(yè)務進行回放的實現(xiàn)上,其回放的準確度和精度較基于原有的業(yè)務回放方法有著明顯的改善。
2)本發(fā)明減少了增加新協(xié)議的業(yè)務回放的工作難度,最大限度的提高應用程序的靈活性和可重用性。
圖1為本發(fā)明的總體框架示意圖;圖2為本發(fā)明進行業(yè)務回放的流程圖;具體實施方式
下面結合附圖和具體實施方式
對本發(fā)明作進一步詳細描述基于對各種業(yè)務數(shù)據(jù)包特點和業(yè)務流程的分析,本發(fā)明總結得出一次應用的完成,例如由用戶點擊而產生的一次網頁瀏覽,或者一次基于RTP/RTCP的VoIP通話,需要n個流的參與,把這些流分別用f1,f2,...,fn(1≤n)表示(這里所指的流即是滿足標準的五元組(源地址,源端口,目的地址,目的端口,協(xié)議)定義的雙向流)。同時,定義流之間依賴關系為在完成一次應用的n個流中的后續(xù)流f2,...,fn(1≤n)與第一條流f1,以及f2,...,fn(1≤n)之間所存在的在五元組上的依賴性。例如,對于被動FTP應用,在21端口上的所產生的完成控制功能的流f1和在f1中所定義服務器端的端口號上所產生的完成數(shù)據(jù)傳輸功能的流f2,由于f2的產生必須由f1明確確定其端口號信息,其依賴關系即定義為強(Strong),TFTP、基于SIP協(xié)議所實現(xiàn)的VoIP應用、以Quicktime等的流媒體應用等皆滿足此類依賴關系;而對于主動FTP應用,在21端口上所產生的完成控制功能的流f1和在20端口上所產生的完成數(shù)據(jù)傳輸功能的流f2,兩者雖然存在邏輯上必須的先后關系,但是由于f2中五元組的確定由協(xié)議隱含確定(如在主動ftp中,隱含定義d_port為20,根據(jù)s_addr,d_addr,d_port可確定f2五元組,),而并非由f1來顯示規(guī)定,所以把這種由協(xié)議本身所隱含規(guī)定的依賴關系定義為中(Medial),基于MMS協(xié)議和RTP/RTCP協(xié)議的流媒體和VoIP協(xié)議應用皆滿足此類依賴關系;而對于基于HTTP實現(xiàn)的Web瀏覽,通常一次用戶點擊會產生的多條流f1,f2,...,fn,在f1中完成首頁面腳本文件的獲取(或者是部分獲取),流f2,...,fn緊接在f1產生之后,完成對由首頁面所指示的Javascript腳本頁、圖片、表格、動畫和音視頻以及彈出式廣告等實體(Object)的獲取工作,然而f2,...,fn的五元組信息并不由f1來顯式確定(根據(jù)協(xié)議隱含的信息_port=80并不能確定f2,...,fn流的五元組信息),定義這種依賴關系為弱(Weak),BitTorrent、eMule和Kazaa等基于P2P的文件共享應用、Counter-strike、StarCraft和Diablo等在線游戲、popdisk和webhard等網絡存儲應用以及MSN等一些即時通訊應用皆滿足此類依賴關系。特別的,對于那些僅僅由一條流的參與即可完成的應用,如Telnet、SMTP、POP、SNMP、NNTP和SSH等應用,不存在亦不需要依賴關系的定義。同時,這些應用大多是屬于傳統(tǒng)應用,在實現(xiàn)上它們一般會采用IANA的規(guī)定默認服務端口,依據(jù)五元組流的定義即可完成對其的回放。
由于滿足弱依賴關系的應用所涵蓋的應用種類更多,本發(fā)明對其做進一步劃分。例如,對于基于HTTP實現(xiàn)的Web瀏覽和部分P2P文件共享應用如Gnutella、DirectConnet所產生的n條流之間滿足具有相同服務端號的特征,如80,8080或則443等;而對于BitTorrent、eMule和Kazaa等大多數(shù)P2P文件共享應用所產生的n條流之間并非存在固定的端口號特征。但是這兩中類別的應用所產生的n條流都存在有一個共同的特點,即他們在生成時間的間隔上具有相距較短的特征。故據(jù)此,對于前者可以通過固定端口號這一特性依據(jù)時間相關等特性將相關的流關聯(lián)起來進行回放;而對于后者則可借鑒應用特征字符串進行應用層流量識別的方法獲得可以確定的流,然后根據(jù)時間相關等特性將相關的流關聯(lián)起來進行回放。
在表1中,給出了模板化的應用層業(yè)務行為回放方法所參照的基本回放分類。表2給出了應用這幾類回放方法的協(xié)議舉例。
表1
表2
在上述表1、2中回放方法,表示回放方法的分類;流數(shù)目,表示完成一次應用所需要參與的流數(shù)目n;依賴關系,表示流之間的依賴關系;源地址(s_addr),表示流中的發(fā)起者地址,即流中第一出現(xiàn)的數(shù)據(jù)包中的源地址,在傳統(tǒng)C/S模式應用中一般情況下其即相當于客戶端地址;源端口號(s_port),表示流中的發(fā)起者所用的端口,即流中第一出現(xiàn)的數(shù)據(jù)包中的源端口,在傳統(tǒng)C/S模式應用中一般情況下其即相當于客戶端端口;目的地址(s_addr),表示流中的目的端地址,即流中第一出現(xiàn)的數(shù)據(jù)包中的目的地址,在傳統(tǒng)C/S模式應用中一般情況下其即相當于服務器端地址;目的端口號(s_port),表示流中的目的端所用的端口,即流中第一出現(xiàn)的數(shù)據(jù)包中的目的端口,在傳統(tǒng)C/S模式應用中一般情況下其即相當于服務器端端口,且通常為固定的默認端口。應用舉例,表示對應回放可以針對的具體應用示例。在具體表格中,F(xiàn)表示在表格中對應項的值是固定的;A_D表示表格中對應項的值在可由在其之前所依賴的流來確定;D表示表格中對應項的值是動態(tài)的,不確定的。
表1中的各種業(yè)務回放方法的實施方法如下1、隱式指定協(xié)議方法(Implicit protocol Method),此方法適用于由一條或多條完成控制功能的流(控制流,用Cf表示,在通常的應用中控制流的數(shù)目為1)和一條或者多條的完成數(shù)據(jù)傳輸功能的流(數(shù)據(jù)流,用Df表示)協(xié)同完成的應用,其控制流和數(shù)據(jù)流中的端口號或協(xié)議信息都是由應用層協(xié)議本身來隱含規(guī)定,且數(shù)據(jù)流的五元組標志并非需要由控制流來顯式規(guī)定,可根據(jù)具體協(xié)議的規(guī)定通過預先定義的<d_port>或者<d_port,protocl>確定Cf,而通過預先定義的<s_port>或者<s_port,protocol>或者<d_port>或者<d_port,protocol>確定Df,同時滿足相同的<s_addr,d_addr>的Cf和Df相關聯(lián)進行回放。這種回放方法可以適用于對主動FTP、MMS和RTP/RTCP等業(yè)務的回放。
2、顯式指定協(xié)議方法(Explicit protocol Method),此種方法適用于由一條或多條控制流和一條或者多條數(shù)據(jù)流協(xié)同完成的應用,其控制流中的端口號或協(xié)議信息是由應用層協(xié)議本身來隱含規(guī)定,而數(shù)據(jù)流中的端口號或協(xié)議信息則需要通過在控制流中協(xié)商確定,可根據(jù)具體協(xié)議的規(guī)定通過預先定義的<d_port>或者<d_port,protocol>確定出控制流Cf,而根據(jù)按照協(xié)議的顯式規(guī)定從Cf中提取出的<s_port>或者<s_port,protocol>或者<d_port>或者<d_port,protocol>確定Df,同時滿足相同的<s_addr,d_addr>的Cf和Df相關聯(lián)進行回放。這種回放方法可以適用于對被動FTP、TFTP、基于SIP協(xié)議所實現(xiàn)的VoIP應用以及Quicktime等業(yè)務的回放。
3、端口-時間方法(Port Time Method),此類方法用Active Span Time(簡記為AST)表示活躍時間間隔,其規(guī)定了對于滿足弱依賴關系的應用中的n條流中任意相鄰的兩條流在生成時間上所相距的最大時間間隔,即AST=MAX(fi+1_start-fi_start),(1≤i<n)。對特定應用根據(jù)經驗確定AST的閾值AST_Thresh,對于滿足同一<s_addr,d_port>的連續(xù)生成的流fi和fi+1,若其滿足AST_Thresh≥fi+1_start-fi_start,則將fi+1放在fi所屬的具體應用中進行回放。這種回放方法可適用于對HTTP、Gnutella、DirectConnet和一些DDoS攻擊等業(yè)務的回放。注意,對于HTTP這里并沒有限定成使用僅比較<s_addr,d_addr,d_port>的回放方法,是因為在實際的網頁瀏覽中存在有大量的“一次點擊,連接到N個服務器端以獲取不同的Object的情況”。同時,僅由單條所完成的一次HTTP應用也劃分到此類方法中進行回放。
4、特征字-時間方法(Signature Time Method),此類仍舊采用AST的定義,對特定應用根據(jù)經驗確定AST的閾值AST_Thresh。假定對于s_addr已經存在有某條流fj滿足預先定義好的Signature,那么對于尚未確認所屬應用的滿足同一<s_addr>的流fk,若其滿足AST_Thresh≥|fk_start-fj_start|,則將fk放在fj中所屬的具體應用中進行回放。這種回放方法可適用于對QQ、MSN等即時通信應用、Counter-strike、Doom、Half-Life、Quake、World of Warcraft、Xbox Live等在線游戲、BitTorrent、BitComet、eMule、eDonkey、KaZaA、FastTrack、WinMX、SoulSeek、Ares等基于P2P的文件共享業(yè)務、PPLive、PPStream等實時流媒體業(yè)務以及CodeRed、Nimda等網絡病毒的回放。
5、默認方法(Default Method),此類回放方法依據(jù)五元組規(guī)定對滿足預先所定義的d_port相關的數(shù)據(jù)包直接進行對應流的回放。此時d_port可代表具體的應用層業(yè)務。這種回放方法可適用于對Postgre、SQLNet、Oracle、Ingres、Telnet、kLogin,rLogin,IMAP、SMTP、POP2、POP3、SNMP、NNTP、X11、DNS、IDENT、LDAP、NTP和SSH等絕大多數(shù)單條流即可完成的傳統(tǒng)應用的回放。
基于以上對各種業(yè)務回訪方法的抽象分類,結合如圖3所示的本發(fā)明實現(xiàn)業(yè)務回放系統(tǒng)的框架,基于模板化的應用層業(yè)務行為回放方法具體包括如下步驟步驟一、確定不同的回放方法和使用各種回放方法進行回放時所需要的關鍵字,從而構建一個規(guī)則庫。規(guī)則庫分為上下兩層,其中第一層關鍵字依賴層(key_wordand relation layer)給出一組過濾條件和關鍵字的定義,即業(yè)務回放中要用到的關鍵字和流之間關系的文字表示,用這些關鍵字和過濾條件來定義上述幾種抽象回放方法的應用條件和應用特定回放方法時所依據(jù)的特征值;例如對于針對Default Method這種回放方法,本方法定義了關鍵字d_port以讓用戶指定;對Implicit ProtocolMethod,本方法定義了關鍵字d_port,TimeThreshHold以讓用戶指定;第二層用戶描述層(user_description layer)則利用第一層提供的關鍵字和流之間依賴關系的定義,根據(jù)要增加應用的實現(xiàn)特征,定義出能夠標識的協(xié)議類別,確定單個的功能流,并指明一類應用的功能流之間的相互依賴關系,來形成指導數(shù)據(jù)包包分析器(packet_analyzer),流生成器(Flow_generator),應用生成器(App_generator)進行業(yè)務回放的規(guī)則列表。
步驟二、根據(jù)用戶使用該框架時基于規(guī)則庫指定的規(guī)則,建立一個規(guī)則鏈表;本發(fā)明中為用戶在用戶描述層(user_description layer)指定的規(guī)則形成規(guī)則列表的流程如下步驟所示(1)初始化規(guī)則鏈表,轉向步驟(2);(2)如果對業(yè)務使用的回放方法包括端口-時間方法(Port Time Method),則根據(jù)用戶按照對應回放模板的格式所填寫的規(guī)則庫內容填充描述此類回放方法的TPortTime_Regu,注明其type為1,加入到規(guī)則鏈表,轉向步驟(3);否則,轉向步驟(3);(3)如果對業(yè)務使用的回放方法包括特征-時間方法(Signature Time Method),則根據(jù)用戶按照對應回放模板的格式所填寫的規(guī)則庫內容填充描述此類回放方法的TSigTime_Regu結構,注明其type為2,加入到規(guī)則鏈表,轉向步驟(4);否則,轉向步驟(4);(4)如果對業(yè)務使用的回放方法包括隱式指定協(xié)議方法(Implicit protocolMethod),則根據(jù)用戶按照對應回放模板的格式所填寫的規(guī)則庫內容填充描述此類回放方法的TImplicit_Regu結構,注明其type為3,加入到規(guī)則鏈表,轉向步驟(5);否則,轉向步驟(5);(5)如果對業(yè)務使用的回放方法包括顯式指定協(xié)議方法(Explicit protocolMethod),則根據(jù)用戶按照對應回放模板的格式所填寫的規(guī)則庫內容填充描述此類回放方法的TExplicit_Regu結構,注明其type為4,加入到規(guī)則鏈表,轉向步驟(6);否則,轉向步驟(6);(6)如果對業(yè)務使用的回放方法為默認方法(Default Method),則根據(jù)用戶按照對應回放模板的格式所填寫的規(guī)則庫內容填充描述此類回放方法的TCustom_Regu結構,注明其type為5,加入到規(guī)則鏈表,結束對規(guī)則鏈表的處理處理;否則,結束對規(guī)則鏈表的處理處理。
步驟三、根據(jù)建立的規(guī)則鏈表進行業(yè)務回放;本發(fā)明所提出的框架中流生成器(Flow_generator)和應用生成器(App_generator)的工作流程,即根據(jù)用戶所填寫的規(guī)則列表進行業(yè)務回放的流程如圖4所示,具體實現(xiàn)過程如下(1)接收一個數(shù)據(jù)包,轉向步驟(2);
(2)根據(jù)數(shù)據(jù)包中的數(shù)據(jù)鏈路層頭部和IP頭部,檢查數(shù)據(jù)包是否完整、合理,如果是則轉向步驟(3);否則,轉向步驟(1);(3)檢查此數(shù)據(jù)包是否屬于應用列表中的一個會話,如果是,轉向步驟(4);否則,轉向步驟(6);(4)如果該會話上已經存在數(shù)據(jù)包,則增加數(shù)據(jù)包信息到會話,并更新會話信息,轉向步驟(7);否則,轉向步驟(5);(5)初始化會話信息,加入該會話數(shù)據(jù),轉向步驟(7);(6)新建一個應用/會話列表,將此數(shù)據(jù)包加入到此列表中并更新相關信息如此鏈表第一個數(shù)據(jù)包產生時間等,轉向步驟(7);(7)根據(jù)步驟二中預先定義的規(guī)則列表中每一條規(guī)則所擁有的協(xié)議關鍵字等屬性,判斷當前數(shù)據(jù)包是否滿足規(guī)則列表中某一規(guī)則,如果是則轉向步驟(8);否則,轉向步驟(1);(8)如果數(shù)據(jù)包屬于規(guī)則的回放類型為(Default Method)或端口-時間方法(Porr Time Method)或特征字-時間方法(Signature Time Method),將步驟(6)中建立的應用名稱改變?yōu)榇艘?guī)則針對的協(xié)議名稱,轉向步驟(1);否則,轉向步驟(9);(9)根據(jù)預定指定的流依賴條件判斷在此數(shù)據(jù)包中是否指定了將有新的數(shù)據(jù)流到達;如果是,則從數(shù)據(jù)包中提取出所指定將要到達的數(shù)據(jù)流的標識,并將其加入到對應應用的會話列表中,轉向步驟(1);如果否,轉向步驟(1)。
網絡上傳統(tǒng)應用的新屬性和新方法不斷涌現(xiàn),新的應用日益增多,原有通用框架已經成為了業(yè)務回放應用系統(tǒng)實現(xiàn)和應用的瓶頸所在,本發(fā)明給出的對基于模板化框架的網絡應用業(yè)務回放方法可以集成到相應的網絡監(jiān)測、性能分析、流量控制和管理等系統(tǒng)中去,體現(xiàn)本發(fā)明的靈活性和可擴展性。
最后所應說明的是,以上實施例僅用以說明本發(fā)明的技術方案而非限制。盡管參照實施例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,對本發(fā)明的技術方案進行修改或者等同替換,都不脫離本發(fā)明技術方案的精神和范圍,其均應涵蓋在本發(fā)明的權利要求范圍當中。
權利要求
1.一種基于模板的應用層業(yè)務行為回放方法,包括如下步驟1)確定不同的回放方法和使用回放方法進行回放時所需要的關鍵字,從而構建一個規(guī)則庫;2)根據(jù)用戶基于規(guī)則庫指定的規(guī)則,建立一個規(guī)則鏈表;3)根據(jù)建立的規(guī)則鏈表進行業(yè)務回放。
2.根據(jù)權利要求1所述基于模板化的應用層業(yè)務行為回放方法,其特征在于,所述步驟1)中的回放方法包括隱式指定協(xié)議方法,顯式指定協(xié)議方法,端口-時間方法,特征字-時間方法,和以上方法不適用時采取的默認方法。
3.根據(jù)權利要求1所述基于模板化的應用層業(yè)務行為回放方法,其特征在于,所述步驟2)包括如下步驟(a)初始化規(guī)則鏈表;(b)根據(jù)用戶基于規(guī)則庫制定的協(xié)議的關鍵字和回放方法來填充此類回放方法的數(shù)據(jù)結構,加入到規(guī)則鏈表。
4.根據(jù)權利要求1、2或3任一項所述基于模板化的應用層業(yè)務行為回放方法,其特征在于,所述步驟3)包括如下步驟(1)接收一個數(shù)據(jù)包,轉向步驟(2);(2)根據(jù)數(shù)據(jù)包中的數(shù)據(jù)鏈路層頭部和IP頭部,檢查數(shù)據(jù)包是否完整、合理,如果是則轉向步驟(3);否則,轉向步驟(1);(3)檢查此數(shù)據(jù)包是否屬于應用列表中的一個會話,如果是,轉向步驟(4);否則,轉向步驟(6);(4)如果該會話上已經存在數(shù)據(jù)包,則增加數(shù)據(jù)包信息到會話,并更新會話信息,轉向步驟(7);否則,轉向步驟(5);(5)初始化會話信息,加入該會話數(shù)據(jù),轉向步驟(7);(6)新建一個應用/會話列表,將此數(shù)據(jù)包加入此列表并更新相關信息,轉向步驟(7);(7)根據(jù)步驟2)中定義的規(guī)則列表中每一條規(guī)則所擁有的屬性判斷當前數(shù)據(jù)包是否滿足規(guī)則列表中某一規(guī)則,如果是則轉向步驟(8);否則,轉向步驟(1);(8)如果數(shù)據(jù)包屬于規(guī)則的回放類型為默認方法或端口-時間方法或特征字-時間方法,將步驟(6)中建立的應用/會話列表名稱改變?yōu)榇艘?guī)則針對的協(xié)議名稱,轉向步驟(1);否則,轉向步驟(9);(9)根據(jù)預定指定的流依賴條件判斷在此數(shù)據(jù)包中是否指定了將有新的數(shù)據(jù)流到達;如果是,則從數(shù)據(jù)包中提取出所指定將要到達的數(shù)據(jù)流的標識,并將其加入到對應應用的會話列表中,轉向步驟(1);如果否,轉向步驟(1)。
全文摘要
本發(fā)明公開了一種基于模板的抽象應用層業(yè)務行為回放方法,包括如下步驟1)確定不同的回放方法和使用各種回放方法進行回放時所需要的關鍵字,從而構建一個規(guī)則庫;2)根據(jù)用戶使用該框架時基于規(guī)則庫指定的規(guī)則,建立一個規(guī)則鏈表;3)根據(jù)建立的規(guī)則鏈表進行業(yè)務回放。本發(fā)明提高了應用程序的靈活性和可重用性。
文檔編號H04L29/08GK1889584SQ20061009939
公開日2007年1月3日 申請日期2006年7月19日 優(yōu)先權日2006年7月19日
發(fā)明者李士達, 張廣興, 楊建華, 謝高崗 申請人:中國科學院計算技術研究所