成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺談Ethereal網絡協議

網絡 網絡管理
這里我們講解的是Ethereal網絡協議的內容,其中對于其應用做了一個簡單的實例分析,望對大家有所幫助。下面來看具體內容吧。

互聯網功能日益全面,也導致了網絡協議的繁雜化。就Ethereal網絡協議所識別的500多種協議來說,為了使協議和協議間層次關系明顯。從而對數據流里的各個層次的協議能夠逐層處理。Ethereal系統采用了協議樹的方式。上圖就是一個簡單的協議樹。如果協議A的所有數據都是封裝在協議B里的,那么這個協議A就是協議B是另外一個協議的兒子節點。我們將***層的無結構數據流作為根接點。那么具有相同父節點的協議成為兄弟節點。那么這些擁有同樣父協議兄弟節點協議如何互相區分了?Ethereal系統采用協議的特征字來識別。每個協議會注冊自己的特征字。這些特征字給自己的子節點協議提供可以互相區分開來的標識。比如tcp協議的port字段注冊后。 Tcp.port=21就可以認為是ftp協議, 特征字可以是協議規范定義的任何一個字段。比如ip協議就可以定義proto字段為一個特征字。

在Ethereal中注冊一個協議解析器首先要指出它的父協議是什么。另外還要指出自己區別于父節點下的兄弟接點協議的特征。比如ftp協議。在Ethereal網絡協議中他的父接點是tcp協議,它的特征就是tcp協議的port字段為21。

這樣當一個端口為21的tcp數據流來到時。首先由tcp協議注冊的解析模塊處理,處理完之后通過查找協議樹找到自己協議下面的子協議,判斷應該由那個子協議來執行,找到正確的子協議后,就轉交給ftp注冊的解析模塊處理。這樣由根節點開始一層層解析下去。

由于采用了協議樹加特征字的設計,這個系統在協議解析上由了很強的擴展性,增加一個協議解析器只需要將解析函數掛到協議樹的相應節點上即可。

基于插件技術的協議分析器

所謂插件技術,就是在程序的設計開發過程中,把整個應用程序分成宿主程序和插件兩個部分,宿主程序與插件能夠相互通信,并且,在宿主程序不變的情況下,可以通過增減插件或修改插件來調整應用程序的功能。運用插件技術可以開發出伸縮性良好、便于維護的應用程序。它著名的應用實例有:媒體播放器winamp、微軟的網絡瀏覽器ie等。

由于現在網絡協議種類繁多,為了可以隨時增加新的協議分析器,一般的協議分析器都采用插件技術,這樣如果需要對一個新的協議分析只需要開發編寫這個協議分析器并調用注冊函數在系統注冊就可以使用了。通過增加插件使程序有很強的可擴展性,各個功能模塊內聚。

在協議分析器中新增加一個協議插件一般需要插件安裝或者注冊,插件初始化,插件處理3個步驟,下面以Ethereal網絡協議為例進行分析如何利用插件技術新增加一個協議分析模塊。

Ethereal由于采用插件技術,一個新加入開發的程序員開發一種新的協議分析模塊的時候不需要了解所有的代碼,他只需要寫好這個協議模塊的函數后,寫一個格式為proto_reg_handoff_XXX的函數,在函數內調用注冊函數告訴系統在什么時候需要調用這個協議模塊。比如

你事先寫好了一個名為dissect_myprot的協議解析模塊,它是用來解析tcp協議端口為250的數據。可以利用這些語句來將這個解析器注冊到系統中

  1. proto_reg_handoff_myprot(void)  
  2. {dissector_handle_t myprot_handle;  
  3. myprot_handle = create_dissector_handle(dissect_myprot,proto_myprot);  
  4. dissector_add("tcp.port", 250, myprot_handle);} 

這段代碼告訴系統當tcp協議數據流端口為250的時候要調用dissect_myprot這個函數模塊。

在Ethereal中有一個角本專門來發現開發者定義的類式proto_reg_handoff_xxx這樣的注冊函數名,然后自動生成調用這些注冊函數的代碼。這樣開發者不需要知道自己的注冊函數如何被調用的。這樣一個新的協議分析模塊就加入到系統中了。

由于采用了插件方式,Ethereal良好的結構設計讓開發者只需要關系自己開發的協議模塊,不需要關心整個系統結構,需要將模塊整合進系統只需要寫一個注冊函數即可,連初始化時調用這個注冊函數都由腳本自動完成了。正是因為有很好的體系結構,這個系統才能夠開發出如此多的協議解析器

盡管Ethereal是目前***的開放源碼的網絡分析系統,但Ethereal仍然有一些可以改進的地方,一個優秀的網絡分析器,盡可能的正確分析出數據協議和高效的處理數據是兩個重要的指標。在協議識別方面Ethereal大多采用端口識別,有少量協議采用內容識別。這就讓一些非標準端口的協議數據沒有正確解析出來。比如ftp協議如果不是21端口的話,Ethereal就無法識別出來,只能作為tcp數據處理。另外對于內容識別式。Ethereal網絡協議是將所以內容識別的函數組成一張入口表。每次協議數據需要內容識別時,按字母順序逐個調用表里的每個識別函數。比如對于識別yahoo massanger協議。主要是看數據前幾個字節是不是’ymsg’.由于協議名為y開頭。所以當識別出協議時已經把所有內容識別函數調用了一遍。這些都是由于Ethereal沒有實現tcp協議棧,無法做到流級別的識別。導致在協議識別方面有點缺陷。
 

責任編輯:佟健 來源: hi.baidu.com
相關推薦

2010-09-03 13:58:02

Ethereal網絡協

2010-09-09 15:30:45

ethereal網絡協議分析軟件

2009-09-17 17:14:54

EtherealLinuxwindows

2010-09-17 15:12:28

2010-09-09 15:25:35

網絡協議

2023-03-06 08:42:45

KCP移動開發

2010-07-13 14:41:14

2010-09-10 14:15:19

daytime協議時間協議

2010-09-08 15:06:26

藍牙協議棧

2010-07-12 17:13:12

SNMP協議管理

2010-09-08 20:53:14

WinPCap計算機網絡協議

2010-07-01 16:33:08

UDP協議

2010-07-09 10:28:48

距離向量路由協議

2023-12-29 20:25:51

2010-06-12 17:28:35

協議封裝

2010-07-07 17:56:21

2014-09-03 09:52:45

開源

2010-06-10 12:48:47

IPv6網絡協議

2010-06-10 14:10:58

安全電子郵件協議

2023-06-01 13:15:23

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品成人品 | 粉嫩粉嫩芽的虎白女18在线视频 | 激情 一区 | 精品欧美一区免费观看α√ | www.中文字幕av | 国产精品99久久久久久宅男 | 亚洲在线一区 | 国产中文字幕在线观看 | 亚洲人成一区二区三区性色 | 97色在线视频 | 国产精品九九九 | 国产一区二区三区久久 | 亚洲国产精品suv | 欧美一区二区三区在线播放 | 性欧美hd| 亚洲成av片人久久久 | 黄色在线免费观看 | 久久久精品视频一区二区三区 | 欧美日韩精品一区二区天天拍 | 国产一区二区在线免费播放 | 成人不卡在线 | 久久大| 久久久日韩精品一区二区三区 | www.亚洲精品 | 国产69精品久久久久777 | 在线看av网址 | 91国产视频在线 | 精品国产一区二区三区久久久蜜月 | 国产精品九九九 | 成人av激情 | 亚洲欧美日韩一区 | 日韩欧美成人精品 | 亚洲国产精品一区二区久久 | 国产一级特黄视频 | 欧美日韩一区在线 | 国产精品亚洲二区 | 国产精品视频一区二区三区四蜜臂 | 亚洲精品一二三区 | 黄色国产 | 人成在线| 久草青青|