999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在Windows平臺(tái)下開發(fā)Ethereal插件的方法與實(shí)現(xiàn)

2006-12-31 00:00:00石美紅毛江輝延偉偉吳戴明
計(jì)算機(jī)應(yīng)用研究 2006年10期

摘 要:Ethereal是一個(gè)UNIX和類UNIX操作系統(tǒng)下的基于圖形用戶接口庫GTK+和包捕獲、過濾庫Libpcap(Windows平臺(tái)下使用Winpcap庫)的網(wǎng)絡(luò)協(xié)議分析器或嗅探器。它具有很好的跨平臺(tái)捕獲性能,且支持第三方插件。詳細(xì)闡述了在Windows平臺(tái)下開發(fā)Ethereal插件的方法,并結(jié)合CORBA協(xié)議解析器的生成實(shí)例介紹了其實(shí)現(xiàn)技術(shù)。

關(guān)鍵詞:Ethereal;插件;協(xié)議解析;Winpcap

中圖法分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1001-3695(2006)10-0234-04

Method and Implementation of Ethereal Plugin under Windows Platform

SHI Meihong,MAO Jianghui,YAN Weiwei,WU Daiming

(College of Computer Science, Xi’an University of Engineering Science Technology, Xi’an Shanxi 710048, China)

Abstract:Ethereal is a network traffic analyzer or sniffer based on GTK+ and Libpcap (Winpcap under Windows platform) for UNIX and UNIXlike operating systems. It has a better capability of crossplatform packet capture and permits the third party plugin. A method and implementation skills of developing Ethereal plugin under Windows platform is presented in details with producing a CORBA protocol dissectors.

Key words:Ethereal;Plugin;Protocol Dissectors;Winpcap

1 引言

網(wǎng)絡(luò)協(xié)議解析已成為網(wǎng)絡(luò)安全和網(wǎng)絡(luò)管理的重要應(yīng)用基礎(chǔ)。Ethereal是著名的開放源碼的網(wǎng)絡(luò)協(xié)議解析器或者說是網(wǎng)絡(luò)嗅探器(Sniffer),它能夠運(yùn)行在所有流行的操作系統(tǒng)平臺(tái)上。由于它具有直觀、易于操作的人機(jī)接口界面和通用流行網(wǎng)絡(luò)協(xié)議解析等特點(diǎn),所以被廣泛地應(yīng)用于網(wǎng)絡(luò)故障的診斷和分析、網(wǎng)絡(luò)測試軟件工具和網(wǎng)絡(luò)協(xié)議的開發(fā)及研究等領(lǐng)域中。另外,Ethereal支持第三方插件。由于現(xiàn)在網(wǎng)絡(luò)協(xié)議種類繁多,尤其是面向用戶的應(yīng)用層通信協(xié)議。盡管最新版本的Ethereal 0.10.12已經(jīng)可以支持多達(dá)706種協(xié)議或媒介的解析,但也難以滿足日益增加或變更的新協(xié)議以及用戶特定的協(xié)議。正是由于Ethereal的這種特性,使得人們可以很方便地開發(fā)自己所需要的協(xié)議解析器。目前,在網(wǎng)絡(luò)化應(yīng)用的主流時(shí)代,Windows仍然是普及流行的一種通用操作系統(tǒng)平臺(tái)。為此,本文從Ethereal網(wǎng)絡(luò)協(xié)議解析的角度分析并討論了在Windows平臺(tái)下開發(fā)Ethereal插件的方法,結(jié)合CORBA協(xié)議解析器的生成實(shí)例介紹了其實(shí)現(xiàn)技術(shù)。

2 Ethereal網(wǎng)絡(luò)協(xié)議解析系統(tǒng)結(jié)構(gòu)

插件技術(shù)就是在程序設(shè)計(jì)開發(fā)過程中,將整個(gè)應(yīng)用程序分成宿主程序和插件兩個(gè)部分,宿主程序與插件能夠相互通信,并且在宿主程序不變的情況下,可以通過增減插件或修改插件來調(diào)整應(yīng)用程序的功能。為了便于理解Ethereal的插件技術(shù),我們有必要先了解一下Ethereal網(wǎng)絡(luò)協(xié)議解析系統(tǒng)的結(jié)構(gòu)(圖1)。它是由數(shù)據(jù)包捕獲接口Capture(包括包過濾引擎)、數(shù)據(jù)訪問接口Wiretap、Ethereal數(shù)據(jù)包分析引擎Epan和圖形用戶接口GTK等模塊組成。其中,Capture是在獨(dú)立于系統(tǒng)平臺(tái)的Winpcap/Libpcap捕獲函數(shù)庫的基礎(chǔ)上開發(fā)的,它可以從網(wǎng)卡捕獲、過濾原始數(shù)據(jù),并且存儲(chǔ)數(shù)據(jù)包;Wiretap用于讀寫數(shù)據(jù)包捕獲文件;圖形用戶接口是基于GTK+工具包編程實(shí)現(xiàn)的,用于提供人機(jī)交互的接口界面,處理用戶的輸入和輸出;Epan用于完成網(wǎng)絡(luò)協(xié)議的解析,它又是由協(xié)議樹ProtocolTree(用于保存需解析的協(xié)議相關(guān)信息)、通用協(xié)議解析器Dissectors、以插件Plugin形式存在的協(xié)議解析器、顯示過濾引擎DisplayFilters四部分構(gòu)成[1]。

從Ethereal網(wǎng)絡(luò)協(xié)議解析系統(tǒng)結(jié)構(gòu)圖中可以清楚地看到,以插件形式存在的協(xié)議解析器是位于通用網(wǎng)絡(luò)協(xié)議解析器之上的。也就是說,插件對(duì)象是在通用協(xié)議解析的基礎(chǔ)上進(jìn)行協(xié)議分析的。這是因?yàn)橛脩糸_發(fā)的協(xié)議解析插件一般均是針對(duì)應(yīng)用層對(duì)象,然而它們又都是以底層的網(wǎng)絡(luò)協(xié)議為基礎(chǔ)的。以本文介紹的CORBA通信協(xié)議解析器為例,CORBA通信機(jī)制是建立在GIOP/IIOP網(wǎng)絡(luò)協(xié)議基礎(chǔ)之上的。當(dāng)Ethereal系統(tǒng)捕獲到GIOP/IIOP協(xié)議數(shù)據(jù)包時(shí),就

會(huì)自動(dòng)調(diào)用相應(yīng)的插件模塊以確定通信應(yīng)用對(duì)象,并對(duì)其進(jìn)行通信協(xié)議解析。

3 Ethereal插件的開發(fā)方法

Ethereal的價(jià)值在于它為創(chuàng)建可擴(kuò)展的系統(tǒng)功能提供了一個(gè)基于插件技術(shù)的開放源碼平臺(tái)。基于上述分析,當(dāng)人們?cè)陂_發(fā)一種新的應(yīng)用通信協(xié)議解析插件模塊時(shí),不需要了解Ethereal中的源代碼,只需針對(duì)應(yīng)用對(duì)象的通信機(jī)制編寫相應(yīng)的協(xié)議分析器,并調(diào)用注冊(cè)函數(shù)在系統(tǒng)中注冊(cè)就可以使用了。其具體的方法是:

(1)在開發(fā)Ethereal插件之前,針對(duì)解析的對(duì)象,搭建實(shí)驗(yàn)所需的環(huán)境,獲取Ethereal源碼(從http://www.ethereal.com/download.html下載)和必要的工具。

(2)針對(duì)應(yīng)用對(duì)象的通信機(jī)制編寫出相應(yīng)的通信程序。

(3)針對(duì)通信實(shí)體間定義的通信接口,運(yùn)用相應(yīng)的工具將其轉(zhuǎn)換為Ethereal標(biāo)準(zhǔn)插件的源代碼文件。其中,包括此協(xié)議的完整解析規(guī)則;調(diào)用plugin_init,proto_register_protocol等函數(shù)注冊(cè)協(xié)議的頭域、子樹域以及插件模塊名和描述符;調(diào)用plugin_reg_handoff函數(shù)將其注冊(cè)成為Dissectors層的接口處理程序,并告知系統(tǒng)在什么時(shí)候需要調(diào)用該通信協(xié)議解析插件。

(4)將生成的插件源代碼放入Ethereal源代碼所支持的對(duì)應(yīng)底層協(xié)議目錄下(如\Ethereal*.*.*\plugin\YYY,其中YYY是應(yīng)用對(duì)象間通信所基于的底層協(xié)議名),然后編輯、運(yùn)行配置文件,并將生成的插件源代碼連同Ethereal源碼一起編譯。

編譯成功完成后,啟動(dòng)Ethereal捕獲,運(yùn)行編寫的應(yīng)用通信程序,即可實(shí)現(xiàn)對(duì)該通信數(shù)據(jù)包的捕獲和協(xié)議的解析。

下面我們?cè)赪indows XP中運(yùn)用VC++6.0作為編譯器而構(gòu)建的實(shí)驗(yàn)平臺(tái)下,以開發(fā)CORBA通信協(xié)議解析插件模塊為例來驗(yàn)證整個(gè)過程。

4 Ethereal插件的實(shí)現(xiàn)

4.1 必要的工具

4.1.1 包捕獲庫——Winpcap

Winpcap(從http://www.winpcap.org/下載)是由意大利人Fulvio Risso和Loris Degioanni等人提出并實(shí)現(xiàn)的。整個(gè)系統(tǒng)架構(gòu)的基礎(chǔ)是NDIS(Network Driver Interface Specification)網(wǎng)絡(luò)驅(qū)動(dòng)器接口規(guī)范[2]。其目的是為Win32應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力,主要功能是:①可捕獲網(wǎng)絡(luò)交換的原始數(shù)據(jù);②按照用戶自定義的規(guī)則對(duì)捕獲的數(shù)據(jù)包進(jìn)行過濾;③可向網(wǎng)絡(luò)發(fā)送或重復(fù)發(fā)送鏈路層數(shù)據(jù)包;④提供了網(wǎng)絡(luò)通信過程中的統(tǒng)計(jì)信息[3]。

4.1.2 圖形用戶接口庫——GTK+

由于Ethereal是一個(gè)基于GTK+圖形化的網(wǎng)絡(luò)嗅探器,所以需要安裝GTK+的開發(fā)庫[4]。GTK+(從http://www.gtk.org/下載)是一個(gè)多平臺(tái)下用來生成圖形用戶接口的工具包,它主要由三個(gè)庫構(gòu)成,即底層核心庫Glib(提供了處理C語言的數(shù)據(jù)結(jié)構(gòu));文本信息版面設(shè)計(jì)庫Pango(關(guān)于文本信息的布局和渲染);圖形接口工具庫ATK提供了一系列人機(jī)交互的接口函數(shù)。

4.1.3 模擬Linux環(huán)境的軟件——Cygwin

Cygwin(從http://www.cygwin.com/下載)是一個(gè)在Windows平臺(tái)下運(yùn)行的仿Linux環(huán)境的軟件包。它包含兩部分:①基于Win32 API的一個(gè)Linux系統(tǒng)庫的模擬層Cygwin1.dll;②提供Linux下的一系列工具集。因?yàn)樵诰幾gEthereal的過程中,需要使用一些特殊的工具,如Gcc,Python,Sed,Yacc,Lexx等,而Windows操作系統(tǒng)和VC++6.0并沒有提供這些工具,所以,還需要Cygwin的支持。但我們無需使用其環(huán)境,只需使用其中的一些工具而已。

4.2 編寫通信程序代碼

CORBA (Common Object Request Broker Architecture,公共對(duì)象請(qǐng)求代理體系結(jié)構(gòu))是由OMG(Object Management Group,對(duì)象管理組織)提出的應(yīng)用軟件體系結(jié)構(gòu)和對(duì)象技術(shù)規(guī)范[5],其核心是一套標(biāo)準(zhǔn)的語言、接口和協(xié)議,以支持異構(gòu)分布應(yīng)用程序間的互操作性及獨(dú)立于平臺(tái)和編程語言的對(duì)象重用。其主要特點(diǎn)在于:①引入中間件完成客戶機(jī)向服務(wù)對(duì)象方提出的業(yè)務(wù)請(qǐng)求;②實(shí)現(xiàn)客戶與服務(wù)對(duì)象的完全分開,客戶不需要了解服務(wù)對(duì)象的實(shí)現(xiàn)過程以及具體位置;③提供了軟總線機(jī)制,使得在任何環(huán)境下,采用任何語言開發(fā)的軟件只要符合接口規(guī)范的定義,均能互相通信和提供服務(wù)。

CORBA指定了用于定義對(duì)象接口的語言——IDL(Interface Description Language),該語言說明了公用的對(duì)象數(shù)據(jù)、對(duì)象可執(zhí)行的操作以及例外,通過提供IDL,使得開發(fā)人員可以使用不同語言來實(shí)現(xiàn)CORBA組件。由于在OMG IDL文件中定義了CORBA應(yīng)用實(shí)體間通信的接口和規(guī)范,所以,要實(shí)現(xiàn)其通信協(xié)議的解析,就需要針對(duì)它所使用的IDL接口定義文件進(jìn)行處理,編譯生成插件。

4.2.1 編寫IDL代碼

我們自定義了一個(gè)Hello.idl文件,清單如下:

module HelloApp

{

interface Hello

{

string sayHello();//定義sayHello()方法

};

interface ServerTime

{//定義getServerTime()方法

string getServerTime();

};

};

4.2.2 編寫基于CORBA的通信程序

(1)服務(wù)器端。上述IDL文件中定義了兩個(gè)方法,即sayHello()和getServerTime(),其返回類型均是一個(gè)字符串。由于IDL文件是描述性語言,去掉了涉及語義的部分,因而兩個(gè)方法在本文件中均無具體的實(shí)現(xiàn)過程。其具體實(shí)現(xiàn)是在CORBA程序的服務(wù)端程序中完成的。這里我們使用了Java語言在HelloServer.java文件中分別實(shí)現(xiàn)了sayHello()和getServerTime()方法,其中,sayHello()方法返回一個(gè)“Hello world !!”的字符串;getServerTime()方法以字符串類型返回服務(wù)器端的系統(tǒng)時(shí)間。

(2)客戶端。調(diào)用服務(wù)器端對(duì)象的任務(wù),服務(wù)端與客戶端的代碼如下。

①服務(wù)器端程序代碼清單如下:

//HelloServer.java

import HelloApp.*;

import org.omg.CosNaming.*;

import org.omg.CosNaming.NamingContextPackage.*;

import org.omg.CORBA.*;

import java.io.*;

import java.util.Date;

class HelloServant extends _HelloImplBase

{

public String sayHello()

{

return \"\nHello world !!\n\";

}

}

class ServerTimeServant extends _ServerTimeImplBase

{

public String getServerTime()

{

return new Date()+\"\n\";

}

};

public class HelloServer {

public static void main(String args[])

{

try{

ORB orb=ORB.init(args,1);//創(chuàng)建并初始化ORB

HelloServant helloRef=new HelloServant();

orb.connect(helloRef);//創(chuàng)建一個(gè)Servant并用ORB注冊(cè)

//得到根命名上下文

org.omg.CORBA.Object objRef =orb.resolve_initial_references(\"NameService\");

NamingContext ncRef = NamingContextHelper.narrow(objRef);

/*得到一個(gè)NameComponent類型的對(duì)象,并在命名上下文對(duì)象中捆綁對(duì)象引用*/

NameComponent nc=new NameComponent(\"Hello\", \"\");

NameComponent path[]={nc};

ncRef.rebind(path, helloRef);

ORB orb2=ORB.init(args, 1);//創(chuàng)建并初始化ORB

ServerTimeServant servertimeRef=new ServerTimeServant();

orb2.connect(servertimeRef);//創(chuàng)建一個(gè)Servant并用ORB注冊(cè)

//得到根命名上下文

org.omg.CORBA.Object objRef2=orb2.resolve_initial_references(\"NameService\");

NamingContext ncRef2 = NamingContextHelper.narrow(objRef2);

/*得到一個(gè)NameComponent類型的對(duì)象,并在命名上下文對(duì)象中捆綁對(duì)象引用*/

NameComponent nc2=new NameComponent(\"ServerTime\", \"\");

NameComponent path2[]={nc2};

ncRef2.rebind(path2, servertimeRef);

System.out.println(\"\nServer is running…\");

System.out.println(\"\nNote:Press Ctrl+C to terminate\");

//提示輸出

java.lang.Object sync=new java.lang.Object();

synchronized (sync){

sync.wait();//等待客戶機(jī)的調(diào)用

}

}catch (Exception e) {

System.err.println(\"ERROR:\"+e);

e.printStackTrace(System.out);

}

}

}

②客戶端程序代碼如下:

// HelloClient.java

import HelloApp.*;

import org.omg.CosNaming.*;

import org.omg.CORBA.*;

public class HelloClient

{

public static void main(String args[])

{

try{

ORB orb=ORB.init(args,1);//創(chuàng)建并初始化ORB

//得到根命名上下文

org.omg.CORBA.Object objRef=orb.resolve_initial_references(\"NameService\");

NamingContext ncRef=NamingContextHelper.narrow(objRef);

NameComponent nc=new NameComponent(\"Hello\", \"\");

NameComponent path[]={nc};

//得到一個(gè)NameComponent類型的對(duì)象

Hello helloRef=HelloHelper.narrow(ncRef.resolve(path));

//解析命名中的對(duì)象引用

ORB orb2=ORB.init(args,1);//創(chuàng)建并初始化ORB

//得到根命名上下文!

org.omg.CORBA.Object objRef2=orb2.resolve_initial_references(\"NameService\");

NamingContext ncRef2=NamingContextHelper.narrow(objRef2);

System.out.println(\"Server is OK…\");//測試

NameComponent nc2=new NameComponent(\"ServerTime\",\"\");

NameComponent path2[]={nc2};

/*得到一個(gè)NameComponent類型的對(duì)象解析命名中的對(duì)象引用!*/

ServerTime servertimeRef=ServerTimeHelper.narrow(ncRef2.resolve(path2));

String Hello=helloRef.sayHello();

System.out.println(Hello);

System.out.print(\"The Server Time is:\");

String ServerTime = servertimeRef.getServerTime();

System.out.println(ServerTime);

//按Ctrl+C關(guān)閉客戶機(jī)的DOS進(jìn)程

int ch1=′0′;

System.out.println(\"Press Ctrl+C to terminate\");

while((ch1=System.in.read())!=-1);

{

}

}catch (Exception e){

System.out.println(\"ERROR:\"+e);

e.printStackTrace(System.out);

}

}

}

4.3 生成并編譯CORBA通信協(xié)議解析器插件

4.3.1 生成插件源代碼

為實(shí)現(xiàn)對(duì)IDL文件的編譯,需要安裝兩個(gè)重要的文件包,即解釋性、交互式、可移植的面向?qū)ο蟮木幊陶Z言——Python(從http://www.python.org/下載)和符合CORBA2.1規(guī)范的ORB工具包——omniORB(從http://omniorb.sourceforge.net/下載)[6]。其中,omniORB工具的開發(fā)使用到了Python語言。除此之外,還需要用到Ethereal目錄下的兩個(gè)文件,即Ethereal_be.py和Ethereal_gen.py,它們也都是用Python語言編寫的,在這里是作為Omniidl(omniORB中轉(zhuǎn)換IDL文件的工具)的后端將CORBA IDL文件轉(zhuǎn)換為標(biāo)準(zhǔn)的Ethereal協(xié)議解析器的源代碼。隨后,輸入如下的編譯執(zhí)行命令[7]:

omniidlp/b ethereal_be*.idl>packet*.c

其中,*.idl為用戶自定義的OMG IDL文件,packet*.c為由C語言代碼描述的目標(biāo)文件。在本例中,編譯的執(zhí)行命令為

omniidlp/b ethereal_behello.idl>packethello.c

其結(jié)果將用戶定義的Hello.idl文件編譯為Packethello.c的目標(biāo)文件,即為該CORBA通信協(xié)議解析器插件的源代碼。

4.3.2 編譯插件源代碼

為了使Ethereal能識(shí)別用戶自定義的插件,實(shí)現(xiàn)其數(shù)據(jù)包捕獲和協(xié)議解析,還必須將上一步所得到的插件源代碼連同Ethereal源代碼一起進(jìn)行編譯,即

(1)將生成的源代碼Packethello.c復(fù)制到\Ethereal*.*.*\plugin\giop目錄下(其中g(shù)iop是其底層支持的協(xié)議名);

(2)編輯\Ethereal*.*.*\plugin\giop目錄下的編譯配置文件Makefile.nmake[1],代碼如下:

//指定編譯中需要鏈接的OBJ文件

OBJECTS=packethello.obj

//在插件的共享庫列表中添加庫文件Hello.dll

all:hello.dll

//指定要輸出的一些文件

hello.dll hello.exp hello.lib:packethello.obj S(LINK_PLUGIN_WITH)

linkdll/out:hello.dll S(LDFLAGS) packethello.obj S(LINK_PLUGIN_WITH)\S(GLIB_LIBS)

//指定需要自動(dòng)清除的文件規(guī)則

clean:rmf S(OBJECTS) hello.dll hello.exp hello.lib *.pdb

(3)運(yùn)行配置,編譯并安裝。將GTK+庫和Winpcap庫放入“C:\etherealwin32libs”目錄下,之后將所需的工具等設(shè)置好正確的路徑,然后在命令窗口中輸入:

nmakef makefile.nmake all

編譯完成后,將生成的hello.dll文件拷貝到\Ethereal*.*.*\plugin\*.*.*目錄下,同時(shí)正確安裝運(yùn)行時(shí)所需的一些動(dòng)態(tài)鏈接庫文件。經(jīng)過以上步驟處理后,Ethereal具有對(duì)基于GIOP/IIOP的CORBA通信協(xié)議的解析功能。

5 實(shí)驗(yàn)結(jié)果

為了更形象地說明經(jīng)過插件擴(kuò)展后的Ethereal對(duì)CORBA通信協(xié)議的解析能力,在Windows XP平臺(tái)下,我們以Hello.idl作為接口定義語言文件編寫的CORBA程序?yàn)槔M(jìn)行了測試。其具體步驟如下:

(1)啟動(dòng)Ethereal。Ethereal運(yùn)行后,點(diǎn)擊Help菜單中的Plugin,可以瀏覽系統(tǒng)中已經(jīng)安裝好的插件,同樣我們生成的Hello.dll插件也位于其中,如圖2所示。

(2)點(diǎn)擊Capture菜單中的Start,在彈出窗口中選擇OK,Ethereal開始捕獲。

(3)運(yùn)行CORBA通信程序。首先啟動(dòng)瞬態(tài)名字服務(wù)器,運(yùn)行CORBA服務(wù)器組件,接著運(yùn)行CORBA客戶機(jī)組件。根據(jù)通信程序的功能,客戶機(jī)首先判斷服務(wù)器的運(yùn)行狀態(tài),然后返回一個(gè)“Hello World !!”的字符串,同時(shí)獲取并返回服務(wù)器端的系統(tǒng)時(shí)間,運(yùn)行結(jié)果如圖3所示。

(4)捕獲結(jié)果過濾。在數(shù)據(jù)包捕獲過程中,Ethereal將會(huì)解析它所支持的所有網(wǎng)絡(luò)協(xié)議。這就需要對(duì)捕獲結(jié)果進(jìn)行過濾,通過在顯示過濾(Display Filter)字段中輸入所要過濾的字段,如giop或giop.type,即可限定在包列表窗口中只顯示與GIOP協(xié)議有關(guān)的數(shù)據(jù)包,如圖4所示。

從顯示結(jié)果中可以看到,Ethereal捕獲并解析了上述的CORBA通信數(shù)據(jù)包。在包列表窗口中,有詳細(xì)的捕獲包的各種信息,包括序號(hào)、時(shí)間、源地址、目標(biāo)地址、所屬協(xié)議和描述。中間的樹型視圖窗口描述了當(dāng)前捕獲包的詳細(xì)信息,圖中的高亮部分是getServerTime方法的返回值,即GIOP消息的Reply,序號(hào)為26的捕獲包是getServerTime方法的請(qǐng)求信息,即GIOP消息的Request。數(shù)據(jù)視圖窗口中的高亮部分顯示了樹型視圖窗口中所選擇內(nèi)容的ASCII碼。

6 結(jié)論

本文通過對(duì)Ethereal網(wǎng)絡(luò)協(xié)議解析系統(tǒng)結(jié)構(gòu)的分析和研究,介紹了在Windows平臺(tái)下開發(fā)Ethereal通信協(xié)議解析插件的方法和實(shí)現(xiàn)技術(shù),并通過示例進(jìn)行了驗(yàn)證。結(jié)果表明,基于插件技術(shù)可為人們開發(fā)各種網(wǎng)絡(luò)應(yīng)用協(xié)議的解析提供一種便捷手段,同時(shí)也為網(wǎng)絡(luò)檢測以及網(wǎng)絡(luò)協(xié)議的學(xué)習(xí)和理解提供了一種快捷、便利的途徑。

參考文獻(xiàn):

[1]Ulf Lamping.Ethereal Developer’s Guide[Z].2004.

[2]Fulvio Risse,Lofts,Degioanni. Development of an Architecture for Packet Capture and Network Traffic Analysis[EB/OL].http://netgroupserv.polito.it/winpcap,2000.

[3]Fulvio Risso, Loris Degioanni. An Architecture for High Performance Network Analysis[EB/OL].http://www.winpcap.org/docs/default.htm,2005.

[4] Richard Sharpe, Ed Warnicke,Ulf Lamping.Ethereal User’s Guide[Z].2005.

[5]Object Management Group .Common Object Request Broker Architecture: Core Specification[EB/OL].http://www.omg.org/technology/documents/corba_spec_catalog.htm,2005-02.

[6]Duncan Grisby,Apasphere Ltd.OmniORB User’s Guide[Z].2004.

[7]肖文鵬,張麗芬.基于Python和CORBA的分布式程序設(shè)計(jì)[J]. 北京理工大學(xué)學(xué)報(bào),2003,23(2):215-218.

作者簡介:

石美紅(1956-),女,江蘇儀征人,教授,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)應(yīng)用技術(shù)、圖像處理與模式識(shí)別、智能信息處理等;毛江輝(1983-),男,江蘇丹陽人,碩士研究生,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)和分布式計(jì)算;延偉偉(1981-),男,山西陽城人,碩士研究生,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)應(yīng)用技術(shù);吳戴明(1963-),男,廣東人,講師,主要研究方向?yàn)橛?jì)算機(jī)接口技術(shù)及網(wǎng)絡(luò)應(yīng)用技術(shù)。

注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文

主站蜘蛛池模板: 一区二区三区成人| 国产免费好大好硬视频| 国产丝袜一区二区三区视频免下载| 国产91小视频| 自拍亚洲欧美精品| 日本高清有码人妻| 中文字幕久久亚洲一区| 蝌蚪国产精品视频第一页| 国产真实乱子伦视频播放| 无码国内精品人妻少妇蜜桃视频| 国产在线视频自拍| 在线国产综合一区二区三区| 色综合五月婷婷| 亚洲精品动漫| 真实国产乱子伦高清| 色婷婷成人| 韩国福利一区| 国内精品视频| 欧美a在线视频| 91 九色视频丝袜| 国产精品亚洲va在线观看| 精品视频免费在线| 亚洲精品无码人妻无码| 国产精品黑色丝袜的老师| 日本三区视频| 色综合综合网| 国产午夜在线观看视频| 在线中文字幕网| 无码精品国产VA在线观看DVD| 老色鬼欧美精品| 亚洲人成在线精品| 中文精品久久久久国产网址| 在线视频一区二区三区不卡| 欧洲av毛片| 日韩激情成人| 国产爽爽视频| 婷婷五月在线| 91久久大香线蕉| 在线观看视频一区二区| 狂欢视频在线观看不卡| 精品国产aⅴ一区二区三区| 日韩久草视频| 国产内射一区亚洲| 91成人在线免费观看| 国产又大又粗又猛又爽的视频| 中文字幕66页| 免费在线一区| 国产成人三级| 国内精品一区二区在线观看| 91区国产福利在线观看午夜| 手机在线看片不卡中文字幕| 亚洲无线一二三四区男男| 国产超碰一区二区三区| 久久久久青草线综合超碰| 亚洲成人黄色在线| 九九香蕉视频| 四虎国产永久在线观看| 亚洲一道AV无码午夜福利| 青青草国产一区二区三区| 亚洲婷婷丁香| 99久久性生片| 伊人成色综合网| 国产SUV精品一区二区| 久久这里只有精品国产99| 曰AV在线无码| 一区二区日韩国产精久久| 91av国产在线| 国内毛片视频| 国产成人91精品免费网址在线 | 亚洲h视频在线| 国产成人精品一区二区秒拍1o| 中文字幕2区| 国产精品无码作爱| 国产精品一区二区无码免费看片| 欧美成人第一页| 亚洲男人天堂久久| 亚洲午夜福利精品无码不卡 | 午夜不卡视频| 人妻精品全国免费视频| 国产精品自拍合集| 精品人妻无码中字系列| 试看120秒男女啪啪免费|