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

正文內(nèi)容

協(xié)議分析器程序的設(shè)計報告(青島理工袁超)(已修改)

2025-05-26 08:55 本頁面
 

【正文】 . . . .. .協(xié)議分析器設(shè)計報告協(xié)議分析器是一種常用的網(wǎng)絡(luò)數(shù)據(jù)收集軟件,它是在廣播式網(wǎng)絡(luò)環(huán)境下利用計算機網(wǎng)絡(luò)接口截獲目的地計算機的數(shù)據(jù)報文的一種工具。Ethernet是目前應(yīng)用最廣泛的計算機連網(wǎng)方式,它是基于總線結(jié)構(gòu)的,物理層采用廣播方式。當(dāng)一臺主機向另一臺主機發(fā)送數(shù)據(jù)時,發(fā)送主機會將包含目的主機MAC地址的數(shù)據(jù)幀發(fā)送到總線上,因此同一鏈路上所有活躍主機的網(wǎng)卡都能接收到該幀。正常情況下,網(wǎng)卡收到數(shù)據(jù)幀后,會先檢測幀頭的目的地址字段,如果該地址不是本機的MAC地址,則丟棄不管,因此只有具有該地址的目的主機會接受這個數(shù)據(jù)幀。但是,如果某個主機上的程序能夠修改網(wǎng)卡的接收方式,使其成為“混雜”模式,即程序可以接收網(wǎng)絡(luò)上所有的數(shù)據(jù)幀而不理會幀頭的目的地址,利用這一點,就可以實現(xiàn)協(xié)議分析器。因此協(xié)議分析器就是一種能將本地網(wǎng)卡狀態(tài)設(shè)成“混雜”模式并接收網(wǎng)絡(luò)上所有數(shù)據(jù)幀的軟件。協(xié)議分析器工作在網(wǎng)絡(luò)環(huán)境中的底層,攔截所有正在網(wǎng)絡(luò)上傳送的數(shù)據(jù),并且通過相應(yīng)的解析處理,可以實時分析這些數(shù)據(jù)的內(nèi)容,進而分析所處的網(wǎng)絡(luò)狀態(tài)和整體拓撲布局。當(dāng)應(yīng)用程序通過IP網(wǎng)絡(luò)傳送數(shù)據(jù)時,數(shù)據(jù)就被送入TCP/IP協(xié)議棧中,然后由上至下逐一通過每一層,直到最后被當(dāng)做一串比特流送入網(wǎng)絡(luò)。其中每一層對收到的數(shù)據(jù)都要增加一些首部信息這個過程被稱作封裝。通過以太網(wǎng)傳輸?shù)谋忍亓鞅环Q作幀。在傳輸?shù)牧硪欢?,?dāng)目的主機收到一個以太網(wǎng)數(shù)據(jù)幀時,數(shù)據(jù)就開始從協(xié)議棧有底向上逐層解析,去掉各層協(xié)議所加上的報文頭部。每層協(xié)議均要檢查報頭中的協(xié)議標識字段,以確定要接收數(shù)據(jù)的上層協(xié)議,最終從報文中解析出應(yīng)用層數(shù)據(jù)后交給應(yīng)用程序處理。協(xié)議分析器就是從網(wǎng)絡(luò)中捕獲數(shù)據(jù)包并對其進行解析的過程。因此我們需要了解每層協(xié)議所規(guī)定的報文格式,然后由底向上逐層對數(shù)據(jù)包進行解碼,最后將分析的結(jié)果顯示出來。2.協(xié)議分析器總體結(jié)構(gòu)設(shè)計此次編程的編程環(huán)境為:(1)操作系統(tǒng):Windows XP SP2;(2)開發(fā)語言:C++ / MFC;(3)編譯環(huán)境:MS Visual C++;(4)第3方函數(shù)庫:;協(xié)議分析器的整體結(jié)構(gòu)按功能分成3個部分,自底向上分別是數(shù)據(jù)捕獲模塊、協(xié)議解析模塊和用戶顯示模塊。整體結(jié)構(gòu)圖1所示。圖1 協(xié)議分析器整體結(jié)構(gòu)圖3 數(shù)據(jù)捕獲模塊設(shè)計數(shù)據(jù)捕獲模塊的主要功能是進行數(shù)據(jù)采集,這個是整個系統(tǒng)的基礎(chǔ)和數(shù)據(jù)來源。程序使用Winpcap來捕獲網(wǎng)絡(luò)中原始數(shù)據(jù)包。Winpcap是數(shù)據(jù)包捕獲的開放代碼函數(shù)庫,它可以完成以下主要功能:(1) 捕獲網(wǎng)絡(luò)中的的原始數(shù)據(jù)包。(2) 使用用戶自定義規(guī)則對數(shù)據(jù)包進行過濾。(3) 發(fā)送用戶自己構(gòu)造的數(shù)據(jù)包到網(wǎng)絡(luò)中。(4) 統(tǒng)計網(wǎng)絡(luò)流量。(5) 使用Winpcap捕獲數(shù)據(jù)包的算法使用Winpcap來捕獲數(shù)據(jù)包的算法一般分為以下幾步:(1) 獲取并列出當(dāng)前網(wǎng)絡(luò)設(shè)備列表。(2) 由用戶選擇并打開指定網(wǎng)卡。(3) 根據(jù)過濾規(guī)則設(shè)置過濾器。(4) 捕獲數(shù)據(jù)包并進行解析處理。 編程流程如圖2所示。 圖2 數(shù)據(jù)包捕獲流程圖4 協(xié)議解析模塊設(shè)計該模塊的主要功能就是對捕獲的數(shù)據(jù)包按照數(shù)據(jù)鏈路層(MAC)、網(wǎng)絡(luò)層(IP、ARP)、傳輸層(TCP、UDP、ICMP)的層次結(jié)構(gòu)自底向上進行解析,最后將解析結(jié)果顯示輸出。協(xié)議解析過程如圖3所示。圖3協(xié)議解析流程圖 解析Ethernet幀Ethernet幀結(jié)構(gòu)中,前導(dǎo)碼、幀前定界符和幀校驗和(CRC)3個字段均屬于物理層內(nèi)容,而我們使用的Winpcap抓包驅(qū)動程序不包含這些字段,因此只需解析目的地址、源地址、長度/類型和數(shù)據(jù)4個字段即可。 圖4 Ethernet幀結(jié)構(gòu) 此處不做過多說明,主要代碼分析見本文第5部分。圖5 ARP報文結(jié)構(gòu) 為了提高效率,可以使用鏈表結(jié)構(gòu)存儲 IP數(shù)據(jù)包信息,同時還可以使用模板類map來存儲IP數(shù)據(jù)包信息。圖6 IP報文結(jié)構(gòu)、TCP、和UDP數(shù)據(jù)包解析ICMP、TCP和UDP數(shù)據(jù)包與解析IP報文類似,首先定義出各報文頭部的數(shù)據(jù)結(jié)構(gòu)類型,然后使用報頭指針對結(jié)構(gòu)成員進行訪問。針對數(shù)據(jù)長度為8位的字段通過結(jié)構(gòu)成員直接存取,對于16位和32位長度的字段使用ntohs()或ntohl()轉(zhuǎn)化為主機字節(jié)序列后再做后續(xù)處理;對于長度小于8位的字段(如標志位或子字段)可以通過結(jié)構(gòu)體中定義位域存取。 圖7 ICMP報文結(jié)構(gòu)圖8 TCP報文結(jié)構(gòu)
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1