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

正文內(nèi)容

基于tcpip的協(xié)議分析器設(shè)計畢業(yè)論文(參考版)

2024-08-29 14:13本頁面
  

【正文】 對于 Win32 平臺來說, winpcap 確實是一個非常便捷的網(wǎng)絡(luò)編程工具,但是, winpcap有不同的版本,在。如此一來,不僅可以實現(xiàn)網(wǎng)絡(luò)的管理和維護,還 可以防止網(wǎng)絡(luò)遭到非法入侵和破壞。而基于Windows 平臺的 winpcap 函數(shù)庫以完成底層的功能驅(qū)動為基礎(chǔ),簡化了編程者實現(xiàn)數(shù)據(jù)包的捕獲和協(xié)議的分析工作難度。而且,以太網(wǎng)是一種傳輸速率為 10Mbps 的常用局域網(wǎng)標準,它采用具有沖突檢 測的 CSMA/CD 的方法。 3) 設(shè)置嚴格的過濾條件,比如可以設(shè)置基于 IP 地址捕獲范圍等。 2) pcap_open()函數(shù)中的讀操作等待時間可按需調(diào)整。 還可以對程序做以下調(diào)整: 1) 調(diào)整 使用 pcap_next_ex()函數(shù),這個函數(shù)只有 被調(diào)用了 才會開始捕獲數(shù)據(jù)包,在一定程度上改善網(wǎng)絡(luò)。 基于 TCP/IP 的協(xié)議分析器設(shè)計 29 圖 414 ARP 信息報文的分析 捕獲程序性能的調(diào)整 本系統(tǒng)實現(xiàn)了 基于 TCP/IP 協(xié)議的網(wǎng)絡(luò) 數(shù)據(jù)包捕獲和 統(tǒng)計 分析。 基于 TCP/IP 的協(xié)議分析器設(shè)計 28 圖 412 ping 操作測試連通性的結(jié)果 圖 413 對 ICMP 報文 的分析結(jié)果 網(wǎng)絡(luò)中的每個主機都設(shè)有一個 ARP 高速緩存,里面有本局域網(wǎng)上的 每 個主機和路由器的 IP 地址到硬件地址的映射表,如果說映射表中沒有需要的信息,那么本機就會在網(wǎng)絡(luò)中廣播發(fā)送 ARP 請求信息以獲取對方的硬件地址。同時,系統(tǒng)程序捕獲到的差錯報文分析如圖 413 所示。 圖 411 UDP 數(shù)據(jù)包的判斷分析 對 ICMP 協(xié)議的 分析 結(jié)合了 ICMP 的一個重要應(yīng)用就是分組網(wǎng)間探測 PING,用來測試兩個主機之間的連通性 。 圖 410 數(shù)據(jù)包 的判斷 DNS 基于 TCP 或 UDP 的 端口號都是 53, 客戶機 主要 是 使用 UDP 協(xié)議類型 , 而 服務(wù)器之間備份 才 使用 TCP 協(xié)議類型 。 圖 46 登錄校園 ftp 服務(wù)器的網(wǎng)頁 基于 TCP/IP 的協(xié)議分析器設(shè)計 26 圖 47 FTP 的分析結(jié)果 圖 48 訪問遠程 FTP 系統(tǒng)的網(wǎng)頁 圖 49 本機向遠程 FTP 服務(wù)器發(fā)送命令 基于 TCP/IP 的協(xié)議分析器設(shè)計 27 而對于 數(shù)據(jù)包,本系統(tǒng)程序主要是通過端口號來判斷 數(shù)據(jù)包。登錄FTP 網(wǎng)站后,可隨后完成一些操作。圖 46 顯示的本機在 13:17 分以匿名形式登錄校園 FTP 服務(wù)網(wǎng)站,站點地址為 用戶進程 向遠程 FTP服務(wù)器發(fā)送用戶名及登錄密碼。 圖 43 本機訪問的圖書館主頁 圖 44 本機發(fā)出的請求報文的分析結(jié)果 基于 TCP/IP 的協(xié)議分析器設(shè)計 25 圖 45 服務(wù)器返回的響應(yīng)報文的解析結(jié)果 運行 FTP 服務(wù)的許多站點都開放匿名服務(wù)。測試如下: 10:59 分,本機訪問圖書館網(wǎng)站主頁,如圖 43 所 示,網(wǎng)頁地址為 10:59 分,精確到毫秒捕獲到 HTTP 請求報文,并解包分析,結(jié)果如圖 44 所示。系統(tǒng)程序有設(shè)計程序分鐘,該時鐘與本機上的時鐘同步。也就是說,在捕獲數(shù)據(jù)包時,系統(tǒng)會受到銳捷軟件的影響,從而降低了系統(tǒng)捕獲數(shù)據(jù)包的實時性。由于本系統(tǒng)中捕獲與分析同步,所以每捕獲到一個數(shù)據(jù)包,系統(tǒng)就會對捕獲到的數(shù)據(jù)包進行分析。如果想捕獲基于 IP 協(xié)議的數(shù)據(jù)包,即可選擇 IP 選項,如圖 42 所示。本程序利用文件讀寫函數(shù) freopen()將運行結(jié)果寫到記事本 中,便于用戶讀取信息。 圖 41 本機網(wǎng)卡信息 圖中顯示的本機所有已連接網(wǎng)卡的詳細信息,看起來非常直觀。 其次是向 VC++ 中添加一個新 include 包含文件所在的路徑,方法一樣是打開工具菜單,選擇選項 ,然后選擇目錄選項卡,在顯示目錄下拉框中選擇 include files,并將 winpcap develop’s packet開發(fā)包中的 include 庫文件路徑添加到顯 示目錄中去。 而且,本次設(shè)計需要在已創(chuàng)建的工作空間中添加新庫,所以必須打開 工程 菜單項,選擇 設(shè)置中的 連接選項卡,把新庫的名字添加到 對象 /庫模塊中 。 而且要使用 winpcap 開源包,所以需要添加幾個預(yù)處理定義。這些文件分布于 C 的編譯器,并且包含了 Windows 的一些 socket 函數(shù)。 ? 設(shè)置 VC++的連接器,把 庫文件包含進來。 ? 如果程序中使用了 winpcap 的遠程捕獲功能,那么在預(yù)處理中必須加入HAVE_REMOTE。 2) 配置 Microsoft Visual C++的 開發(fā)環(huán)境 要使用 Microsoft Visual C++創(chuàng)建一個可以使用 的應(yīng)用程序,需要按照以下步驟完成基 本配置 [16]: ? 在每個使用了庫的源程序中,將 頭文件包含進來。 圖 314 客戶端的登錄設(shè)置界面基于 TCP/IP 的協(xié)議分析器設(shè)計 22 第四章 程序的實現(xiàn) Winpcap 的安裝使用方法 1) 下載 Winpcap 驅(qū)動程序安裝包和程序員開發(fā)包 winpcap develop’s packet。本機中可以對 客戶端做如圖 314 的設(shè)置。 數(shù)據(jù)包裝成以太網(wǎng)幀之后就通過本地端口傳輸出去,而且基于 TCP 協(xié)議類型的 包與基于 UDP 協(xié)議的 包在格式上存在差異?;?TCP/IP 的協(xié)議分析器設(shè)計 21 該函數(shù)可以返回一個以 主機字節(jié)順序表達的數(shù),那么這個數(shù)就可以被 C 程序所識別,以完成數(shù)據(jù)的輸出和判斷 [17]。 開 始 解 析計 算 數(shù) 據(jù) 幀 的 類 型 值A(chǔ) R P 協(xié) 議解 析R A R P 協(xié) 議 I P v 6 協(xié) 議 I P 協(xié) 議 解 析0 x 0 8 0 6 0 x 8 0 3 5 0 x 8 6 d d 0 x 0 8 0 0檢 測 上 一 層 協(xié) 議 類 型I C M P 協(xié) 議解 析I G M P協(xié) 議T C P 協(xié) 議解 析U D P 協(xié) 議解 析類 型 值 = 1 類 型 值 = 2 類 型 值 = 6類 型 值 = 1 7檢 測 端 口 號F T P 協(xié) 議分 析D N S 協(xié) 議 S M T P 協(xié) 議H T T P 協(xié) 議分 析端 口 號 = 2 1端 口 號 = 5 3 端 口 號 = 2 5 端 口 號 = 8 0解 析 以 太 網(wǎng) 幀判 斷 以 太 網(wǎng) 幀 格 式E t h e r n e t V 2 . 0 圖 313 協(xié)議解析流程 在該解析過程中,要注意一些數(shù)據(jù)結(jié)構(gòu)體的定義,本系統(tǒng)中要分析的協(xié)議的數(shù)據(jù)報結(jié)構(gòu)體定義要求對于結(jié)構(gòu)體中的成員數(shù)據(jù)類型要定義到位。 在數(shù)據(jù)鏈路層,可以根據(jù)以太網(wǎng)幀結(jié)構(gòu)中的協(xié)議類型字段值來判斷上層的協(xié)議類型,其中 IP 協(xié)議的字段值為 0x0800;在網(wǎng)際層,一樣是根據(jù)類型值判斷所屬協(xié)議;當(dāng)數(shù)據(jù)包解包到運輸層后,可以根據(jù)端口號 來 判斷應(yīng)用層協(xié)議。所以對于數(shù)據(jù)包的解析,就要以 TCP/IP 協(xié)議簇 為基礎(chǔ),從數(shù)據(jù)鏈路層開始由下至上層層解析。本系統(tǒng)不采用多線程編寫代碼,所以使用 pcap_loop 函數(shù)實現(xiàn)數(shù)據(jù)包的捕獲。在這種情況下, 使用非回調(diào)函數(shù) pcap_next_ex 會更好一些。 基于 TCP/IP 的協(xié)議分析器設(shè)計 20 使用 pcap_loop 函數(shù)有時可能會遇到障礙,主要是因為它直接由數(shù)據(jù)包捕獲驅(qū)動所調(diào)用。 pcap_loop 函數(shù)的原型如下: int pcap_loop (pcap_t *p, int t, pcap_handle callback, u_char *user) 其中,參數(shù) t 表示讀取的數(shù)據(jù)包的個數(shù)到達 t 個時,函數(shù)將返回。 pcap_dispatch函數(shù)和 pcap_loop 函數(shù)是具有回調(diào)功能的兩個函數(shù),它們用于捕獲并處理一組 NPF 驅(qū)動程序所接收的數(shù)據(jù)包。打 開適配器后,就可以對數(shù)據(jù)包進行捕獲了。 開始捕獲數(shù)據(jù)包 捕獲數(shù)據(jù)包的前提條件是要打開本機已連接的網(wǎng)絡(luò)適配器。 } 其中, packet_filter 是回調(diào)函數(shù) packet_handle()中的一個參數(shù),用于寫入過濾表達式。 Break。 Break。 Break。 Break。 Break。若只想捕獲基于 IP 協(xié)議的數(shù)據(jù)報,可編寫過濾表達式 char packet_filter[]=“ IP” ?;?TCP/IP 協(xié)議的過濾使用了網(wǎng)絡(luò)中常用的協(xié)議作為限定基于 TCP/IP 的協(xié)議分析器設(shè)計 19 符。包括 IP 協(xié)議, ARP 協(xié)議等。如果表達式?jīng)]有給出,那么網(wǎng)絡(luò)上的所有數(shù)據(jù)包都會被過濾引擎所認可。 winpcap 的過濾器是以符合標準語法的語句為基礎(chǔ),它包含一個過濾表達式。 數(shù)據(jù)包到達網(wǎng)絡(luò)接口時,數(shù)據(jù)鏈路層的設(shè)備驅(qū)動將數(shù)據(jù)包直接傳送給協(xié)議棧, 也傳送給 winpcap 的底層驅(qū)動程序 NPF。 而且這種功能直接源自 BSD Packet Filter,簡稱 BPF。 } 數(shù)據(jù)包的過濾設(shè)定 當(dāng)網(wǎng)絡(luò)管理員需要監(jiān)聽 HTTP 服務(wù)時,一般情況下只想捕獲基于 HTTP 端口的數(shù)據(jù),這時,設(shè)定數(shù)據(jù)過濾規(guī)則是非常有必要的。 return 1。而且只在 10Mbps 的以太網(wǎng)中實現(xiàn)捕獲。大多數(shù)用于數(shù)據(jù)捕獲的應(yīng)用程序都會將適配器設(shè)置成混雜模式。 Pcap_open 函數(shù)的原型如下 [16]: pcap_t* pcap_open (const char* source, int snaplen, int flag, int read_timeout, struct pcap_rmtauth *auth, char *errbuf)。部分程序如下所示: 打開網(wǎng)卡準備捕獲數(shù)據(jù)包 庫為打開與關(guān)閉網(wǎng)絡(luò)適配器提供了下列函數(shù) : pcap_open 函數(shù)用于打開一個通用的數(shù)據(jù)捕獲源(包括本地主句、遠程主機、文件三種類型),以便進行捕獲或發(fā)送操作。 其包含的成員有一個地址列表、一個掩碼列表、一個廣播地址列表和一個目的地址列表 [16]。 Struct sockaddr *dstaddr。 Struct sockaddr *mask。其結(jié)構(gòu)如下所示: Struct pcap_addr { Struct pcap_addr *next。 事實上, winpcap 提供了獲得網(wǎng)絡(luò)設(shè)備的其他更高級的信息的功能。 return 1。 d=dnext,i++) { ifprint (d, i+1)。 } // 輸出網(wǎng)卡信息 for (i=0, d=alldevs。alldevs, errbuf)== 1) { fprintf(stderr,pcap_findalldevs 發(fā)生錯誤 : %s\n, errbuf)。部分程序如下所示, ifprint 函數(shù)用于打印網(wǎng)卡信息。 每個 鏈表中 都包含了一個適配器的詳細信息。 bpf_u_int32 flags。 char *description。 pcap_findalldevs_ex()就是這樣一個 函數(shù) ,它 返回一個 pcap_if 結(jié)構(gòu)的鏈表,其數(shù)據(jù)結(jié)構(gòu)類型如下所示: struct pcap_if { struct pcap_if *next。同時,在程序結(jié)束時確保釋放了所獲取的設(shè)備列表。其中,數(shù)據(jù)包具體的捕獲過程如圖 312 所示。有些內(nèi)核并沒有對數(shù)據(jù)包進行過濾,那么,程序員在編寫代碼時,就要加入數(shù)據(jù)包過濾的環(huán)節(jié)。用戶只要在程序界面中完成一些有目的的數(shù)據(jù)分析工作即可。 基于 winpcap 的網(wǎng)絡(luò)數(shù)據(jù)捕獲程序 本系統(tǒng)的設(shè)計是以 winpcap 開源包為基礎(chǔ)。 PASS 向遠程系統(tǒng)發(fā)送用戶的密碼,該命令在 USER 后使用。 TYPE 確定數(shù)據(jù)的傳輸方式。 PWD 在應(yīng)答中將當(dāng)前的工作目錄的名稱返回。 表 34 常見的 FTP 命令 FTP 命令 說明 CWD 將當(dāng)前目錄改為遠程文件系統(tǒng)指定的路徑,并且登錄、賬號信息或傳輸參數(shù)等都不改變。 方 法U R L版 本C R L F? ? ? ? ?C R L F:值實 體 主 體 ( 通 常 不 用 )首 部 字 段 名C R L F:值首 部 字 段 名C R L F請 求 行 圖 310 HTTP 的請求報文結(jié)構(gòu) 版 本 狀 態(tài) 碼 短 語C R L F? ? ? ? ?C R L F:值實 體 主 體 ( 有 些 響 應(yīng) 報 文 不 用 )首 部 字 段 名C R L F:值首 部 字 段 名C R L F狀 態(tài) 行 圖 311 HTTP 的響應(yīng)報文結(jié)構(gòu) 基于 TCP/IP 的協(xié)議分析器設(shè)計 15 表 33 HTTP 請求報文的一些方法 7) FTP 文件傳輸命令 FTP 采用一系列簡單的協(xié)議來完成文件傳輸?shù)母鞣N任務(wù),在發(fā)送命令時總是在命令的最后加上一個回車換行符。實體主體部分在請求報文中一般不用,而在響應(yīng)報文中也可能沒有這個字段 [15]。開始行主要用于區(qū)分是請求報文還是響應(yīng)報文。 表 32 端口字段對照表 端口號 應(yīng)用層協(xié)
點擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1