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

正文內(nèi)容

基于tcpip的協(xié)議分析器設(shè)計(jì)畢業(yè)論文(編輯修改稿)

2024-09-30 14:13 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 c a p 圖 21 程序與 winpcap 的依賴關(guān)系 1. NPF 模塊 在 winpcap 中,與操作系統(tǒng)密切相關(guān)的是名為 NPF(Netgroup Packet Filter)的設(shè)備驅(qū)動(dòng)程序。 NPF 能夠執(zhí)行許多操作,包括數(shù)據(jù)包捕獲、數(shù)據(jù)包發(fā)送、網(wǎng)絡(luò)統(tǒng)計(jì)及數(shù)據(jù)包轉(zhuǎn)儲(chǔ)到磁盤等,其中,最重要的功能是執(zhí)行數(shù)據(jù)包的捕獲。在一個(gè)捕獲過(guò)程中, NPF 驅(qū)動(dòng)程序利用網(wǎng)絡(luò)接口卡捕獲數(shù)據(jù)包,然后將捕獲到的 數(shù)據(jù)包完整無(wú)缺地傳送給 上層處理 程序 進(jìn)行處理 。數(shù)據(jù)包的捕獲過(guò)程依賴于下列兩個(gè)組件 [6]: 1) 數(shù)據(jù)包過(guò)濾器 數(shù)據(jù)包過(guò)濾器決定是否將到來(lái)的數(shù)據(jù)包接收并復(fù)制到一個(gè)應(yīng)用程序中。數(shù)據(jù)包過(guò)濾器實(shí)際上是一段代碼,它的返回值為一個(gè)布爾型的函數(shù)。對(duì)于一個(gè)數(shù)據(jù)包而言,如果 該 函數(shù)的返回值為 TRUE,則把數(shù)據(jù)包復(fù)制到應(yīng)用層中,如果返回值是 FALTE,則將數(shù)據(jù)包丟棄。NPF 驅(qū)動(dòng)采用的過(guò)濾系統(tǒng)來(lái)源于 BSD Packet Filter, 而且 這個(gè) 數(shù)據(jù)包過(guò)濾器 擁有強(qiáng)大的 功能,因?yàn)樗粌H 要 決定數(shù)據(jù)包是否應(yīng)該被保存,而且還得決定要保存的字 節(jié)數(shù)。 2) 環(huán)形緩沖區(qū) 為避免數(shù)據(jù)包的丟失, NPF 使用一個(gè)環(huán)形緩沖區(qū)用來(lái)保存 捕獲到的 數(shù)據(jù)包。 每一個(gè) 保存在緩沖區(qū)的數(shù)據(jù)包都帶有一個(gè)數(shù)據(jù)包頭,它包括如時(shí)間戳、數(shù)據(jù)包大小等消息。為了使配置更具靈活性,在運(yùn)行的時(shí)候,內(nèi)核與用戶控件緩沖區(qū)的設(shè)置也能夠被改變,而 與 庫(kù)則提供了實(shí)現(xiàn)該功能的接口函數(shù)。當(dāng)一個(gè)新的數(shù)據(jù)包到來(lái)時(shí),如果緩沖區(qū)已滿,該數(shù)據(jù)包將被丟棄,就會(huì)造成丟包。 2. 動(dòng)態(tài)鏈接庫(kù)模塊 是一個(gè)動(dòng)態(tài)鏈接庫(kù),并提供了一些低層的函數(shù),用來(lái)實(shí)現(xiàn)以下功能: 基于 TCP/IP 的協(xié)議分析器設(shè)計(jì) 7 ? 安 裝、 啟動(dòng)、設(shè)置和停止 NPF 設(shè)備驅(qū)動(dòng)程序; ? 設(shè)置 NPF 驅(qū)動(dòng)程序 實(shí)現(xiàn)數(shù)據(jù)包的 發(fā)送和接收; ? 獲取已連接 的網(wǎng)絡(luò)適配器列表; ? 獲取適配器的不同列表的所有地址信息; ? 查詢 /設(shè)置一個(gè)低層的適配器參數(shù)。 提供了對(duì) winpcap 的低層函數(shù)的訪問,這種訪問依賴于系統(tǒng)。并且它還輸出一個(gè)可以在所有 Windows 操作系統(tǒng)中通用的 API,這樣,操作系統(tǒng)和庫(kù)就可以在所有的Windows 操作系統(tǒng)下重新編譯運(yùn)行。 3. 動(dòng)態(tài)鏈接庫(kù)模塊 動(dòng)態(tài)鏈接庫(kù)模塊 層次在 之上 。它 是一個(gè)包含了公共 winpcap API的動(dòng)態(tài)鏈接庫(kù),它輸出了一組依賴于系統(tǒng) 、 用來(lái)捕獲和分析網(wǎng)絡(luò)流量的函數(shù) , 但是它的調(diào)用不依賴于操作系統(tǒng),它提供了更加高層的、抽象的函數(shù)。 庫(kù)中的接口函數(shù)分為兩部分:一部分是與 libpcap 庫(kù)兼容,另一部分 與 libpcap 庫(kù) 是 不兼容 的 。因?yàn)?winpcap是以 libpcap 為基礎(chǔ) 設(shè)計(jì)的,所以它繼承了 libpcap 的一些函數(shù),又開發(fā)出一些其他高層的函數(shù),而且這些函數(shù)的調(diào)用方法不變。在網(wǎng)絡(luò)安全工具開發(fā)的過(guò)程中,程序員有兩類的 API可以使用:一類是 中 的原始函數(shù) ;另一類是 中提供的高層函數(shù),這些函數(shù)為用戶提供了功能更加強(qiáng)大的調(diào)用。一般情況下, 能自動(dòng)調(diào)用 的函數(shù),所以程序員可以直接使用 動(dòng)態(tài)鏈接庫(kù)的函數(shù)。 winpcap 的主要函數(shù)及相關(guān)功能 本次畢業(yè)設(shè)計(jì)中用到的主要函數(shù)如表 22 所示: 1) pcap_open。用于打開本地主機(jī)的網(wǎng)絡(luò)適配器,并且可進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包的捕獲。 2) pcap_lookupdev。獲得本機(jī)的網(wǎng)絡(luò)接口。 3) pcap_freealldevs_ex。用于釋放打開函數(shù) pcap_openxxx 所獲得的相關(guān)資源。 4) pcap_dispatch 或 pcap_loop;用于接收一組數(shù)據(jù)包。 5) pcap_next_ex;用于從一個(gè)網(wǎng)絡(luò)適配器設(shè)備或從一個(gè)脫機(jī)文件中讀取一個(gè)數(shù)據(jù)包。 6) pcap_pile;用于將一個(gè)用高級(jí)語(yǔ)言描述的過(guò)濾表達(dá)式編譯成一個(gè)能夠被過(guò)濾虛擬機(jī)所執(zhí)行的低層字字節(jié)。 7) pcap_setfilter;用于將一個(gè)過(guò)濾的字節(jié)碼與一個(gè)內(nèi)核捕獲示例相關(guān)聯(lián)。 8) pcap_datalink;獲取數(shù)據(jù)鏈路層類型,如 10Mbps 以太網(wǎng)基于 TCP/IP 的協(xié)議分析器設(shè)計(jì) 8 第三章 TCP/IP 協(xié)議分析模塊 TCP/IP 分析過(guò)程 TCP/IP 模型 網(wǎng)絡(luò)協(xié)議通常 要 分 不同的 層次進(jìn)行開發(fā), 而且每一層所 負(fù)責(zé)通信功能 不同, TCP/IP 協(xié)議簇就 是一組不同層次上的多個(gè)協(xié)議的組合。在 TCP/IP 協(xié)議棧中,駐留有兩個(gè)不同的協(xié)議,即無(wú)連接的 UDP 和面向連接的 TCP 協(xié)議 [12], TCP/IP 并不完全符合 OSI 的七層協(xié)議體體系結(jié)構(gòu)。 OSI 是開放系統(tǒng)互連基本參考模型的簡(jiǎn)稱,是一種七層協(xié)議的體系結(jié)構(gòu), 該模型的目的是使各 種硬件在相同的層次上互相通信, 這七層協(xié)議由下至上分別為物 理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。而 TCP/IP 通信協(xié)議通常被認(rèn) 為是一種四層協(xié)議系統(tǒng),它包含應(yīng)用層、運(yùn)輸層、網(wǎng)際層、網(wǎng)絡(luò)接口層; 每一層分別負(fù)責(zé)不同的功能 [13]: 1) 應(yīng)用層負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。應(yīng)用層直接為用戶的進(jìn)程提供服務(wù)。在因特網(wǎng)中的應(yīng)用層協(xié)議很多,幾乎各種不同的 TCP/IP 實(shí)現(xiàn)都會(huì)提供下面這些通用的應(yīng)用程序: ? Tel 遠(yuǎn)程登錄。 ? FTP 文件傳輸協(xié)議。 ? SMTP 簡(jiǎn)單郵件傳送協(xié)議。 ? SNMP 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議。 2) 運(yùn)輸層的任務(wù)即使負(fù)責(zé)向兩個(gè)主機(jī)上的應(yīng)用程序提供端到端的通信。在 TCP/IP 協(xié)議簇中,有兩個(gè)互不相同的傳輸協(xié)議: TCP(傳輸控制協(xié)議)和 UDP(用戶數(shù)據(jù)報(bào)協(xié)議)。 3) 網(wǎng)際層負(fù)責(zé)為分組交換網(wǎng)上的不同主機(jī)提供通信服務(wù)。在 TCP/IP 協(xié)議簇中,網(wǎng)絡(luò)層協(xié)議包括 IP 協(xié)議, ICMP 協(xié)議( Inter 互聯(lián)網(wǎng)控制報(bào)文協(xié)議),以及 IGMP 協(xié)議( Inter 組管理協(xié)議)。 4) 網(wǎng)絡(luò)接口層通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序和計(jì)算機(jī)中對(duì)應(yīng)的網(wǎng)絡(luò)接口卡。它們一起處理與傳輸介質(zhì)的物理接口細(xì)節(jié)。 TCP/IP 的協(xié)議 簇分層結(jié)構(gòu)如圖 31 所示。 基于 TCP/IP 的協(xié)議分析器設(shè)計(jì) 9 應(yīng) 用 進(jìn) 程應(yīng) 用 進(jìn) 程 應(yīng) 用 進(jìn) 程 應(yīng) 用 進(jìn) 程U D PT C PI C M P I P I G M PA R P硬 件 接 口R A R P媒 體網(wǎng) 絡(luò) 接 口 層網(wǎng) 際 層運(yùn) 輸 層應(yīng) 用 層 圖 31 TCP/IP 協(xié)議簇中不同層次的協(xié)議 數(shù)據(jù)包的封裝與分用 當(dāng)應(yīng)用層的應(yīng)用程序?qū)?shù)據(jù)傳送給傳輸層的 TCP 或 UDP 時(shí),數(shù)據(jù)就被送入?yún)f(xié)議棧中。協(xié)議棧的每一層對(duì)收到的數(shù)據(jù)報(bào)都要進(jìn)行再處理,主要是增加所在層的首部信息(有時(shí)還要增加尾部信息),直到數(shù)據(jù)轉(zhuǎn)化為一串二進(jìn)制比特流送入網(wǎng)絡(luò),這個(gè)過(guò)程稱為數(shù)據(jù)的封裝 [14]。當(dāng)需要發(fā)送數(shù)據(jù)時(shí) 就要進(jìn) 行 封裝,該過(guò)程如圖 32 所示。數(shù)據(jù)封裝的過(guò)程還 是在在 TCP/IP 協(xié)議棧中進(jìn)行。首先,根據(jù) TCP 或 UDP 協(xié)議封裝的數(shù)據(jù) 要 傳給 IP,然后 根據(jù)IP 協(xié)議 將數(shù)據(jù)報(bào) 封裝并傳給網(wǎng)絡(luò)接口層 ,此時(shí)的 數(shù)據(jù)單元 被 稱作 IP 數(shù)據(jù)報(bào)。而 IP 數(shù)據(jù)報(bào)需要在以太網(wǎng)上傳輸,所以要將其封裝成以太網(wǎng)幀,通過(guò)以太網(wǎng)傳輸?shù)谋忍亓骶涂梢酝ㄟ^(guò)物理介質(zhì)發(fā)送數(shù)據(jù)了。 當(dāng)以太網(wǎng)幀到達(dá)目的主機(jī)時(shí),數(shù)據(jù)又被送入?yún)f(xié)議棧,每層的協(xié)議盒根據(jù)報(bào)文首部中的協(xié)議標(biāo)識(shí)來(lái)確定接收該數(shù)據(jù)的上層協(xié)議的類型,這個(gè)過(guò)程稱作數(shù)據(jù)包的分用。此時(shí),數(shù)據(jù)包就開始從協(xié)議棧中由數(shù)據(jù)鏈路層至應(yīng)用層,同時(shí) 去掉各層協(xié)議加上的報(bào)文首部。最后將數(shù)據(jù)交給上層的應(yīng)用程序處理。圖 33 顯示了該過(guò)程是如何發(fā)生的。 基于 TCP/IP 的協(xié)議分析器設(shè)計(jì) 10 傳輸層首部 應(yīng)用程序數(shù)據(jù)應(yīng)用層數(shù)據(jù)應(yīng)用程序數(shù)據(jù)傳輸層首部傳輸層首部應(yīng)用程序數(shù)據(jù)網(wǎng)絡(luò)層首部網(wǎng)絡(luò)層首部以太網(wǎng)首部 以太網(wǎng)首部 以太網(wǎng)幀IP數(shù)據(jù)報(bào)TCP/UDP數(shù)據(jù)報(bào)封裝過(guò)程 解析過(guò)程 圖 32 數(shù)據(jù)進(jìn)入?yún)f(xié)議棧時(shí)的封裝過(guò)程 應(yīng) 用 程 序 應(yīng) 用 程 序 應(yīng) 用 程 序 應(yīng) 用 程 序T C PU D PI C M PI G M PI PA R PR A R P以 太 網(wǎng)驅(qū) 動(dòng) 程 序進(jìn) 入 的 幀根 據(jù) 以 太 網(wǎng)幀 首 部 分 用根 據(jù) I P 首 部分 用根 據(jù) 端 口號(hào) 分 用 圖 33 以太網(wǎng)數(shù)據(jù)幀的分用過(guò)程 主要協(xié)議數(shù)據(jù)包格式 1) 以太網(wǎng)幀格式 在 TCP/IP 的世界中,由于歷史的原因,以太網(wǎng) IP 數(shù)據(jù)報(bào)的封裝產(chǎn)生了兩種標(biāo)準(zhǔn):一種是在 RFC894 中定義的,稱為 標(biāo)準(zhǔn);另一種是在 RFC1042 中定義的,其中,最常使用的封裝格式是 RFC894 定義的格式 [13]。其物理幀格式如圖 34 所示。 基于 TCP/IP 的協(xié)議分析器設(shè)計(jì) 11 目 的 地 址 源 地 址 類 型 數(shù) 據(jù)C R C6 字 節(jié)6 字 節(jié) 2 字 節(jié) 4 6 ~ 1 5 0 0 字 節(jié) 4 字 節(jié) 圖 34 以太網(wǎng)幀的數(shù)據(jù)結(jié)構(gòu) 以太網(wǎng)中的類型字段的值定義了后續(xù)數(shù)據(jù)的上層協(xié)議類型。由于 標(biāo)準(zhǔn)規(guī)定的類型字段的有效值均大于 數(shù)據(jù)的最大長(zhǎng)度 1500,所以,可以根據(jù)這個(gè)來(lái)判斷接收到的以太網(wǎng)幀是否為常用的 RFC894 的封裝格式。該類型字段的值與對(duì)應(yīng)的上層協(xié)議類型表如表 31 所示。 表 31 類型字段對(duì)照表 類型字段值 上層協(xié)議類型 0x0080 IP 0x0806 ARP 0x0835 RARP 0x86dd IPv6 2) ARP 信息格式 地址解析協(xié)議 ARP 就是將計(jì)算機(jī)中的 IP 地址轉(zhuǎn)換 成物理地址,而且地址解析只能在本地網(wǎng)絡(luò)中進(jìn)行。 ARP 中規(guī)定了兩種信息的基本類型:請(qǐng)求 (Request)和應(yīng)答 (Response)。ARP的格式如圖 35 所示。 硬 件 地 址 類 型 協(xié) 議 地 址 類 型硬 件 地 址 長(zhǎng) 度 協(xié) 議 地 址 長(zhǎng) 度 操 作 類 型發(fā) 送 方 硬 件 地 址 ( 前 3 2 位 )發(fā) 送 方 硬 件 地 址 ( 后 1 6 位 )發(fā) 送 方 硬 件 地 址 ( 后 1 6 位 )接 收 方 硬 件 地 址 ( 前 1 6 位 )發(fā) 送 方 協(xié) 議 地 址 ( 前 1 6 位 )發(fā) 送 方 協(xié) 議 地 址 ( 后 3 2 位 )接 收 方 協(xié) 議 地 址接 收 方 硬 件 地 址 ( 后 3 2 位 ) 圖 35 ARP 信息 格式 3) IP 數(shù)據(jù)報(bào)的格式 網(wǎng)際協(xié)議 IP 是 TCP/IP 體系中兩個(gè)最主要的協(xié)議之一,也是最重要的因特網(wǎng)標(biāo)準(zhǔn)協(xié)議之一。 IP 數(shù)據(jù)報(bào)的結(jié)構(gòu)類型如圖 36 所示。 基于 TCP/IP 的協(xié)議分析器設(shè)計(jì) 12 版 本 報(bào) 頭 長(zhǎng) 度 服 務(wù) 類 型 ( T O S ) 總 長(zhǎng) 度信 息 包 標(biāo) 志 標(biāo) 志 分 段 偏 移 量生 命 周 期 ( T T L ) 協(xié) 議 校 驗(yàn) 和源 I P 地 址目 的 I P 地 址I P 選 項(xiàng) 與 填 充 符 圖 36 IP 數(shù)據(jù)報(bào)結(jié)構(gòu) 不管是 運(yùn)輸層 協(xié)議還是 ICMP 和 IGMP 協(xié)議,它們 都要向 IP 傳送數(shù)據(jù) ,因此 網(wǎng)際層必須在生成的 IP 首部中加入某種標(biāo)識(shí),以表明數(shù)據(jù)屬于哪一個(gè)協(xié)議 。 該標(biāo)識(shí) 存儲(chǔ)在 IP 數(shù)據(jù)結(jié)構(gòu)的協(xié)議 域,分別是用數(shù)值 1 表示 ICMP 協(xié)議, 數(shù)值 2 表示 IGMP 協(xié)議, 數(shù)值 6 表示 TCP協(xié)議, 數(shù)值 17 表示 UDP 協(xié)議。 4) ICMP 數(shù)據(jù)報(bào)格式 ICMP 是一種差錯(cuò)報(bào)告 機(jī)制,它允許路由器向其他路由器或主機(jī)發(fā)送差錯(cuò)或控制報(bào)文以便更有效地轉(zhuǎn)發(fā) IP 數(shù)據(jù)報(bào)和提高交付成功地機(jī)會(huì)。 ICMP 的數(shù)據(jù)報(bào)格式如圖 37 所示。 類 型 代 碼 校 驗(yàn) 和( 不 同 類 型 和 代 碼 有 不 同 的 內(nèi) 容 ) 圖 37 ICMP 數(shù)據(jù)報(bào)格式 5) TCP、 UDP 數(shù)據(jù)報(bào)格式 傳輸控制協(xié)議 (TCP)定義了兩臺(tái)計(jì)算機(jī)之間進(jìn)行可靠的傳輸 和 數(shù)據(jù) 的交換,并且 確認(rèn)信息的格式 。這 是計(jì)算機(jī)為確保數(shù)據(jù)的正確到達(dá)而采取的措施。 TCP 數(shù)據(jù)報(bào)的格式如圖 38所示。 其中碼元比特為 TCP 的標(biāo)志比特。該字段的每一位置 1 時(shí)的意義如下列出: ? URG:緊急指針有效。 ? ACK:確認(rèn)序號(hào)有效。 ? PSH:接收方應(yīng)該盡快將這個(gè)報(bào)文交給應(yīng)用層。 ? RST:重建連接。 ? SYN:同步序號(hào)用來(lái)發(fā)起一個(gè)連接。 ? FIN:發(fā)端完成發(fā)送任務(wù)。 基于 TCP/IP 的協(xié)議分析器設(shè)計(jì) 13 源 端 口窗 口序 列 號(hào)確 認(rèn) 序 列 號(hào)頭 部 長(zhǎng) 度確 認(rèn) 序 列 號(hào)保 留 碼 元 比 特目 的 端 口校 驗(yàn) 和 緊 急 指 針可 選 項(xiàng) 填 充 位數(shù) 據(jù) 區(qū) 圖 38 TCP 數(shù)據(jù)報(bào)格式 為了在給定的主機(jī)上能識(shí)別多個(gè)目的地址,同時(shí)允許多個(gè)應(yīng)用程序在同一臺(tái)主機(jī)上工作并能獨(dú)立地進(jìn)行數(shù)據(jù)報(bào)的發(fā)送和接收,在 TCP/IP 協(xié)議簇中設(shè)計(jì)了用戶數(shù)據(jù)報(bào)協(xié)議 UDP。UDP 數(shù)據(jù)包格式如圖 39 所示。 源 端 口 目 的 端 口報(bào) 文 長(zhǎng) 度 校 驗(yàn) 和數(shù) 據(jù) 區(qū) 圖 39 UDP 數(shù)據(jù)報(bào)格式
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1