freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

網(wǎng)絡(luò)數(shù)據(jù)包的協(xié)議分析程序的設(shè)計(jì)開發(fā)畢業(yè)設(shè)計(jì)-畢業(yè)設(shè)計(jì)-在線瀏覽

2025-03-24 02:48本頁面
  

【正文】 統(tǒng)管理員是 至關(guān)重要 的,系統(tǒng)管理員通過 網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析程序 可以診斷出大量的不可見模糊問題,這些問題涉及兩臺(tái)乃至多臺(tái)計(jì)算機(jī)之間的異常通 訊 ,有些甚至牽涉到各種的協(xié)議,借助于 網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析程序 系統(tǒng)管理員可以方便的確定出多少的通訊量屬于哪個(gè)網(wǎng)絡(luò)協(xié)議、占主要通訊協(xié)議的主機(jī)是哪一臺(tái)、大多數(shù)通訊目的地是哪臺(tái)主機(jī)、報(bào) 文發(fā)送占用多少時(shí)間、或著相互主機(jī)的報(bào)文傳送間隔時(shí)間等等,這些 信息 為管理員判斷網(wǎng)絡(luò)問題、管理網(wǎng)絡(luò)區(qū)域提供了非常寶貴的信息。比較著名的網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析軟件有:開源軟件: Wireshark、 TcpDump。 Wireshark 起初由Gerald Combs 開發(fā),隨后由一個(gè)松散的 Wireshark 團(tuán)隊(duì)組織進(jìn)行維護(hù)開發(fā)。很難想象如此多的人開發(fā)的代碼可以很好的融入系 統(tǒng)中;并且在系統(tǒng)中加入一個(gè)新的協(xié)議解析器很簡(jiǎn)單,一個(gè)不了解系統(tǒng)的結(jié)構(gòu)的新手也可以根據(jù)留出的接口進(jìn)行自己的協(xié)議開發(fā)。事實(shí)上由于網(wǎng)絡(luò)上各種協(xié)議種類繁多,各種新的協(xié)議層出不窮。這樣才能適應(yīng)網(wǎng)絡(luò)發(fā)展的需要不斷加入新的協(xié)議解析器。它支持針對(duì)網(wǎng)絡(luò)層、協(xié)議、主機(jī)、網(wǎng)絡(luò)或端口的過濾,并提供and、 or、 not 等邏輯語句來幫助你去掉無用的信息 。 TcpDump 以其強(qiáng)大的功能,靈活的截取策略,成為每個(gè)高級(jí)的系統(tǒng)管理員分析網(wǎng)絡(luò),排查問題等所必備的工具之一。是一個(gè)直觀 ,功能強(qiáng)大的以太網(wǎng)網(wǎng)絡(luò)和協(xié)議分析器。 EtherPeek 把查找和修復(fù)多平臺(tái)上的復(fù)雜網(wǎng)絡(luò)任務(wù)變得簡(jiǎn)單化。以友好圖形界面出名, EtherPeek 提供非常詳細(xì)且多樣化的網(wǎng)絡(luò)使用信息,網(wǎng)絡(luò)結(jié)點(diǎn)的會(huì)話和數(shù)據(jù)包內(nèi)容。 2 網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析程序的總體設(shè)計(jì) 網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析程序的 功能分析 對(duì)于網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析程序進(jìn)行功能分析的第一步是要確立程序所要實(shí)現(xiàn)的目標(biāo),也就是程序最終要解決的問題。 網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析程序必須完成對(duì)常用協(xié)議的識(shí)別和分析:要求至少實(shí)現(xiàn)TCP/IP協(xié)議簇幾個(gè)基本協(xié)議的分析( ARP、 RARP、 TCP、 UDP),以及應(yīng)用層的常用協(xié)議分析。對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲、規(guī)則過濾和對(duì)數(shù)據(jù)包的分析是本程序的主要功能。 第 4 頁 共 23 頁 圖 21網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析程序結(jié)構(gòu)框圖 下面對(duì)該程序的整體結(jié)構(gòu)進(jìn)行一下描述 : 該程序的運(yùn)行環(huán)境是 Fedora Core 4 linux。本程序通過調(diào)用安裝在 linux上的 Libpcap函數(shù)庫(kù)抓取經(jīng)過本地網(wǎng)卡的數(shù)據(jù)包 , 從而完成數(shù)據(jù)包的捕獲。最后將分析后的數(shù)據(jù)顯示在用戶界面上。該模塊主要功能是接收用戶輸入用于捕獲數(shù)據(jù)包的信息。 數(shù)據(jù)捕獲模塊。其Fedora Core Linux 4 數(shù)據(jù)包捕獲 應(yīng)用程序接口 數(shù)據(jù)包處理 網(wǎng)絡(luò)數(shù)據(jù)報(bào)協(xié)議 分析程序 輸入 數(shù)據(jù)捕獲 規(guī)則匹配 數(shù)據(jù)處理 協(xié)議分析 輸出 第 5 頁 共 23 頁 原理是通過把網(wǎng)卡設(shè)置為混雜模式,使得網(wǎng)卡對(duì)所有流經(jīng) 它 的數(shù)據(jù)包都交給上 層程序處理。因?yàn)椴皇撬薪?jīng)過本地網(wǎng)卡的數(shù)據(jù) 報(bào) 都 對(duì)我們分析網(wǎng)絡(luò)有用 ,而且如果將所有經(jīng)過網(wǎng)卡的數(shù)據(jù)捕獲會(huì)增加系統(tǒng) 的開銷。 數(shù)據(jù)處理模塊。主要是調(diào)用協(xié)議分析模塊和顯示模塊。該模塊的主要功能是對(duì)捕獲的數(shù)據(jù)包進(jìn)行協(xié)議分析。該模塊主要是對(duì) TCP/IP各層的協(xié)議進(jìn)行分析。該模塊的主要功能是將分析的結(jié)果顯示給用戶。因?yàn)閿?shù)據(jù)包中包含的信息太多,如果全部顯示給用戶有所不便,所以我們挑選其中比較重要的信息輸出給用戶。 用戶輸入用于捕獲數(shù)據(jù)包的網(wǎng)卡和過濾規(guī)則。 程序判斷該網(wǎng)卡所在的網(wǎng)絡(luò)是否為以太網(wǎng), 不是 則中止,是則繼續(xù)。 編譯用戶設(shè)置的過濾規(guī)則。當(dāng)用戶停止時(shí)就結(jié)束程序,否則繼續(xù)捕獲。要實(shí)現(xiàn)程序預(yù)定的功能,就必須解決實(shí)現(xiàn)程序的關(guān)鍵技術(shù)。 數(shù)據(jù)包捕獲技術(shù):本程序要對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行分析,首先就要將網(wǎng)絡(luò)中的數(shù)據(jù)包捕獲下來。要實(shí)現(xiàn)共享以太網(wǎng)中的數(shù)據(jù)捕獲,各個(gè)平臺(tái)有不同的技術(shù)。 Libpcap是用戶態(tài)的數(shù)據(jù)包截獲 API, 具有 獨(dú)立 性 和可移植 性 ,支持 BPF過濾機(jī)制等。 Libpcap是一個(gè)基于 BPF查找所有可用的網(wǎng)卡 是否是以 太網(wǎng) 編譯并且設(shè)置過濾規(guī)則 開始捕獲數(shù)據(jù) 并分析顯示結(jié)果 結(jié)束程序 用戶中止嗎? 選擇用于捕獲的網(wǎng)卡和過濾規(guī)則 開始 N Y N Y 第 7 頁 共 23 頁 的開放源碼的捕包函數(shù)庫(kù)。 對(duì) TCP/IP各層基本協(xié)議分析的技術(shù):要對(duì) TCP/IP各層的基本協(xié)議進(jìn)行分析,主要是要對(duì)所要分析的協(xié)議有充分的了解,特別是對(duì)各種協(xié)議的報(bào)頭格式要有深入的了解。 協(xié)議識(shí)別技術(shù) : 由于 OSI 的 7 層協(xié)議模型,協(xié)議 數(shù)據(jù)是從上到下封裝后發(fā)送的。例如,首先對(duì)網(wǎng)絡(luò)層的協(xié)議識(shí)別后進(jìn)行脫去網(wǎng)絡(luò)層協(xié)議頭。 應(yīng)用層以下的各種協(xié)議一般都可以通過下一層的協(xié)議中的關(guān)鍵信息來識(shí)別。對(duì)于應(yīng)用層協(xié)議識(shí)別的方法目前有幾種技術(shù): 基于特征串的應(yīng)用層協(xié)議識(shí)別 、 Venus Fast Protocol Recognition、以及端口識(shí)別。端口 識(shí)別 的原理是常用協(xié)議使用固定端口來進(jìn)行通信 。缺點(diǎn)是:一些不常用協(xié)議不能被識(shí)別,常用協(xié)議修改端口后也無法識(shí)別。一方面要,網(wǎng)絡(luò)截取模塊要能保證截取到所有網(wǎng)絡(luò)上的數(shù)據(jù)包,尤其是檢測(cè)到被分片的數(shù)據(jù)包(這可能蘊(yùn)涵著攻擊)。它直接影響整個(gè)入侵檢測(cè)系統(tǒng)的運(yùn)行速度。不同的操作系統(tǒng)實(shí)現(xiàn)的底層包捕獲機(jī)制可能是不一樣的,但從形式上看大同小異。而數(shù)據(jù)包捕獲機(jī)制是在數(shù)據(jù)鏈路層增加一個(gè)旁路處理,對(duì)發(fā)送和接收到的數(shù)據(jù)包做過濾 /緩沖等相關(guān)處理,最后直接傳遞到應(yīng)用程序。對(duì)用戶程序而言,包捕獲機(jī)制提供 了一個(gè)統(tǒng)一的接口,使用戶程序只需要簡(jiǎn)單的調(diào)用若干函數(shù)就能獲得所期望的數(shù)據(jù)包。包過濾機(jī)制是對(duì)所捕獲到的數(shù)據(jù)包根據(jù)用戶的要求進(jìn)行篩選,最終只把滿足過濾條件的數(shù)據(jù)包傳遞給用戶程序。 Libpcap可以在絕大多數(shù)類 unix平臺(tái)下工作。 ./configure make make install 但如果希望 Libpcap能在 linux上正常工作,則必須使內(nèi)核支持 “packet” 協(xié)議,也即在編譯內(nèi)核時(shí)打開配置選項(xiàng) CONFIG_PACKET(選項(xiàng)缺省為打 開 )。 Errbuf:存儲(chǔ)錯(cuò)誤信息的字符串。 pcap_t *pcap_open_live(char *device, int snaplen, int promisc, int to_ms, char *ebuf) 功能:設(shè)置一個(gè)抓包描述符 參數(shù):其第一個(gè)參數(shù)是我們?cè)谏弦还?jié)中指定的設(shè)備, snaplen 是整形的,它定義了將被 pcap 捕獲的最大字節(jié)數(shù)。 to_ms 是讀取時(shí)的超時(shí)值,單位是毫秒 (如果為 0則一直嗅探直到錯(cuò)誤發(fā)生,為 1 則不確定 )。 int pcap_pile(pcap_t *p, struct bpf_program *fp, char *str, int optimize, bpf_u_int32 mask) 功能:編譯過濾規(guī)則 參數(shù):第一個(gè)參數(shù)是會(huì)話句柄( pcap_t *handle 在前一節(jié)的示例中)。再接下來的則是表達(dá)式本身,存儲(chǔ)在規(guī)定的字符串格式里。最后,我們必須指定應(yīng)用此過濾器的網(wǎng)絡(luò)掩碼。 int pcap_setfilter(pcap_t *p, struct bpf_program *fp) 功能:設(shè)置過濾規(guī)則。 int pcap_loop(pcap_t *p, int t, pcap_handler callback, u_char *user) 功能:循環(huán)抓包直到用戶中止。第三個(gè)參數(shù)是回調(diào)函數(shù)的名稱(正像其標(biāo)識(shí)符所指,無括號(hào))。 數(shù)據(jù)結(jié)構(gòu): struct pcap_if{ struct pcap_if *next。 char *description。 u_int flags。 pcap_if *next。如果為空是鏈的最后一個(gè)元素。 指向一個(gè)字符串,該字符串是傳給 pcap_open_live()函數(shù)的設(shè)備名; char *description。 pcap_addr *addresses。 u_int flags。 現(xiàn) 在 唯 一 可 用 的 標(biāo) 識(shí) 是PCAP_IF_LOOKBACK,它被用來標(biāo)識(shí)網(wǎng)卡是不是 lookback 網(wǎng)卡。/*time stamp*/ 第 10 頁 共 23 頁 bpf_u_int32 caplen。 /*length this packet(off wire)*/ }。 數(shù)據(jù)報(bào)時(shí)間戳; bpf_u_int32 caplen。 這個(gè)數(shù)據(jù)報(bào)的長(zhǎng)度; 細(xì)節(jié)描述:在 dump 文件 中的每個(gè)數(shù)據(jù)報(bào)都有這樣一個(gè)報(bào)頭。 struct pcap_stat { u_int ps_recv。 /* number of packets dropped */ u_int ps_ifdrop。 u_int ps_recv。 被驅(qū)動(dòng)程序丟棄的數(shù)據(jù)報(bào)的數(shù)目; u_int ps_ifdrop。 sockaddr * addr。 sockaddr *broadaddr。 }。 如果非空,指向鏈表中一個(gè)元素的指針;空表示鏈表中的最后一個(gè)元素。 指向包含一個(gè)地址的 sockaddr 的結(jié)構(gòu)的 指針。 如果非空,指向包含相對(duì)于 addr 指向的地址的一個(gè)網(wǎng)絡(luò)掩碼的結(jié)構(gòu)。 如果非空,指向包含相對(duì)于 addr 指向的地址的一個(gè)廣播地址,如果網(wǎng)絡(luò)不支持廣播可能為空。 如果非空,指向一個(gè)相對(duì)于 addr 指向的源地址的目的地址,如果網(wǎng)絡(luò)不支持點(diǎn)對(duì)點(diǎn)通訊,則為空。 第二步用戶輸入用于 捕獲數(shù)據(jù)包的網(wǎng)卡后,調(diào)用 pcap_open_live生成一個(gè)抓包描述符。 第四步接收用戶輸入的過濾條件,調(diào)用 pcap_pile和 pcap_setfilter生成過濾規(guī)則。 具體流程入下圖所示: 圖 31數(shù)據(jù)捕獲模塊流程圖 4 協(xié)議分析模塊的實(shí)現(xiàn) 雖然到此為止 已經(jīng)可以順利完成數(shù)據(jù)包的監(jiān)聽工作,但這并不意味著己經(jīng)大功告成了,因?yàn)閺那懊娴臄?shù)據(jù)包監(jiān)聽的原理中可以知道,數(shù)據(jù)包捕獲程序工作在網(wǎng)絡(luò)底層,將網(wǎng)卡設(shè)置 為混雜模式以后,從網(wǎng)絡(luò)底層捕獲到的數(shù)據(jù)包會(huì)直接往上發(fā)給應(yīng)用程序 進(jìn)行 處理,而不再像普通的數(shù)據(jù)包那樣經(jīng)過操作系統(tǒng)的層層過濾。 網(wǎng)絡(luò)協(xié)議分析的總體流程 網(wǎng)絡(luò)功能的分層帶來了網(wǎng)絡(luò)協(xié)議的層次結(jié)構(gòu),網(wǎng)絡(luò)數(shù)據(jù)在傳送時(shí),同樣也是被分解成一個(gè)個(gè)的數(shù)據(jù)報(bào)逐層傳送的 ,在兩臺(tái)主機(jī)的實(shí)際通信過程中,從邏輯上講,是兩臺(tái)主機(jī)的對(duì)等層直接通信。 當(dāng)數(shù)據(jù)包被傳輸?shù)侥骋粚拥臅r(shí)候,該層都會(huì)對(duì)數(shù)據(jù)包進(jìn)行加工,在發(fā)送方通常是加上一個(gè)與該層 協(xié)議有關(guān)的控制或標(biāo)志信息,即數(shù)據(jù)包的包頭或包尾;而在接受方則是需要逐層拆下本層標(biāo)志,即去掉數(shù)據(jù)包的包頭或包尾,根據(jù)控制信息進(jìn)行相應(yīng)的處理,將分解后的數(shù)據(jù)報(bào)逐層上傳,直至應(yīng)用程序獲得最終數(shù)據(jù)。數(shù)據(jù)包的加工工作 如圖41所示 : 圖 41 數(shù)據(jù)封裝示意 TCP傳給 IP的數(shù)據(jù)單元稱作 TCP報(bào)文段或簡(jiǎn) 稱為 TCP段 (TCP Se
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1