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-01-19 02:48本頁面

【導(dǎo)讀】程序的主要功能包括網(wǎng)絡(luò)數(shù)據(jù)包捕獲和常用網(wǎng)絡(luò)協(xié)議分析。輸出模塊、規(guī)則匹配模塊、數(shù)據(jù)捕獲模塊、協(xié)議分析模塊組成。其次進(jìn)行了程序的總體設(shè)計(jì):確定了程序的功能,給出了程序的結(jié)構(gòu)圖和層次圖,描述了程序的工作流程,對(duì)實(shí)現(xiàn)程序的關(guān)鍵技術(shù)做出了分析。接著,介紹完數(shù)據(jù)

  

【正文】 ,表示 IP頭的長(zhǎng)度。典型的 IP頭不包括任何選項(xiàng),長(zhǎng)度為 20字節(jié)。 (3)服務(wù)類型 (type of service):長(zhǎng)度為 8位,表示按照優(yōu)先權(quán)、安全性以及吞吐量等數(shù)據(jù)包的服務(wù)類型。 第 16 頁 共 23 頁 (4)數(shù)據(jù)包總長(zhǎng) (total length):長(zhǎng)度為 2位,表示 IP數(shù)據(jù)報(bào)總的字節(jié)數(shù),包括 IP頭和有效載荷。 (5)標(biāo)識(shí) (identifier):長(zhǎng)度為 2位,作為分割以及組裝數(shù)據(jù)包時(shí)的識(shí)別標(biāo)志來使用,被分割的數(shù)據(jù)包被分配有同一數(shù)值標(biāo)識(shí)。 (6)標(biāo)志 (flags):長(zhǎng)度為 3位,包含兩個(gè)用于分片的標(biāo)志。其中一個(gè)標(biāo)志是用于表示 IP有效載荷是否符合分片的標(biāo)準(zhǔn),而另一個(gè)是表示對(duì)于已分片的 IP數(shù)據(jù)報(bào)是否還有更多的分片。 (7)片偏移 (fragment offset):長(zhǎng)度為 13位,表示分片相對(duì)于原始 IP數(shù)據(jù)報(bào)有效載荷的偏移量。 (8)生存時(shí)間( time to live):長(zhǎng)度為 1字節(jié),表示 IP數(shù)據(jù)包的壽命,目的是廢棄掉在網(wǎng)絡(luò)中循環(huán)著的 IP數(shù)據(jù)包,一 般地,每通過一次路由器,生存時(shí)間就被減去 1,當(dāng)生存時(shí)間為 0時(shí),數(shù)據(jù)包將被拋棄。 (9)協(xié)議 (protocol):長(zhǎng)度為 1字節(jié),表示包含在有效載荷中的上層協(xié)議。 IP協(xié)議字段的一般值有: 1表示 ICMP, 2表示 IGMP, 6表示 TCP, 17表示 UDP等等。 (10)報(bào)頭校驗(yàn)和 (header checksum):長(zhǎng)度為 2字節(jié),是用于確認(rèn) IP數(shù)據(jù)包是否己毀壞的字段。 (11)源目的 IP地址 (source/destination address):長(zhǎng)度為 4字節(jié),包含源 /目的主機(jī)的 IP地址。 (12)選項(xiàng)和填充:此字段跟在 IP頭之后,但必須是以 4個(gè)字節(jié)為增量單位,以使 IP頭的大小能用報(bào)頭長(zhǎng)度字段表示。 TCP/UDP 首部的分析與提取 TCP/UDP報(bào)文頭部的獲取跟 IP報(bào)文頭部的獲取類似,將 P指針的位置向后移 IP報(bào)文長(zhǎng)度個(gè)位置即可 (struct tcphdr *) (p + sizeof (struct ether_header) + 4 * iphip_hl)。然后就可以對(duì) TCP/UDP數(shù)據(jù)包進(jìn)行分析了。 TCP(傳輸控制協(xié)議 )為面向事務(wù)的應(yīng)用提供了可靠的面向連接的傳輸協(xié)議。TCP正為目前 Intemet上幾乎所有的應(yīng)用 協(xié)議所利用,這是因?yàn)榇蟛糠謶?yīng)用程序都需要可靠的、可糾錯(cuò)的傳輸協(xié)議以保證不丟失或破壞數(shù)據(jù)。盡管 IP已經(jīng)做了大部分的搜集工作,并且根據(jù)需要在 Inter上發(fā)送數(shù)據(jù)報(bào)和數(shù)據(jù)包,但是 IP是不可靠的協(xié)議,并不能保證數(shù)據(jù)報(bào)或者數(shù)據(jù)包能夠原封不動(dòng)的到達(dá)其目的地, TCP作為 IP的上層協(xié)議,為 IP提供了可靠性服務(wù),確保了 IP數(shù)據(jù)報(bào)中的數(shù)據(jù)的正確性。如圖 45所示,是 TCP段的封裝結(jié)構(gòu) 。 第 17 頁 共 23 頁 比特 0 8 16 24 31 源端口 目的端口 順序號(hào) 確認(rèn)號(hào) 數(shù)據(jù)偏移 保留 標(biāo)志 窗口 校驗(yàn)和 緊急指示符 選項(xiàng)(長(zhǎng)度可變) 填充 數(shù)據(jù) 圖 45 TCP數(shù)據(jù) 報(bào) 格式 其中,每一段的含義如下: (1)源端口 (source port):指示發(fā)送 TCP段的源應(yīng)用層協(xié)議,是一個(gè) 2字節(jié)的字段。 IP頭中的源地址和 TCP頭中的源端口聯(lián)合起來提供一個(gè)源套接字。 TCP端口為 TCP連接數(shù)據(jù)的傳送定義了一種位置,表明段被發(fā)送至的應(yīng)用層進(jìn)程的一個(gè)目的端口。在一般情況下,應(yīng)用層協(xié)議的 服務(wù)器端在己知的端口上偵聽。表 41顯示了常用的應(yīng)用層協(xié)議對(duì)應(yīng)的端口號(hào)。 (2)目的端口 (destination port):指示目的應(yīng)用層協(xié)議,是一個(gè) 2字節(jié)字段。IP頭中的目的 IP地址和 TCP頭中的端口聯(lián)合起來提供一個(gè)目的套接字。 (3)序列號(hào) (sequence number):指示段的第一個(gè) 8位組的輸出字節(jié)流的序列號(hào),是一個(gè) 4字節(jié)字段。用于保證數(shù)據(jù)的到達(dá)順序與可靠性。利用隨機(jī)值確定初始值,以字節(jié)為單位表示所發(fā)送數(shù)據(jù)的位置。 (4)確認(rèn)號(hào) (acknowledgment number):一個(gè) 4位的字段,指示 接收方希望收到的輸入字節(jié)流中下一個(gè) 8位組的序列號(hào)。是用于保證可靠性的確認(rèn)號(hào)碼。 (5)數(shù)據(jù)偏移 (data offset):表示 TCP數(shù)據(jù)的起始位置,以 4字節(jié)的整數(shù)倍表示,數(shù)據(jù)偏移字段也是 TCP頭的大小。在不包括選項(xiàng)的情況下, TCP報(bào)頭是 20個(gè)字節(jié), offset的值為 5。 (6)保留 (reserved):一個(gè) 6字節(jié)字段,為了未來的使用而保留。 (7)標(biāo)志 (flags):一個(gè) 6字節(jié)字段,指示 6個(gè) TCP標(biāo)志。這 6個(gè)標(biāo)志是: URG(緊急 )、 ACK(確訓(xùn) )、 PSH(推 )、 RST(復(fù)句 )、 SYN(同步 )、 FIN(結(jié)束 )。 (8)窗口 (window):一個(gè) 2字節(jié)的字段,表明該段的發(fā)送方的接收緩沖區(qū)中可供使用的空間有多少字節(jié)數(shù)。窗口大小的廣告是一種實(shí)現(xiàn)接收流流控制的方式。 (9)校驗(yàn)和 (checksum):一個(gè) 2字節(jié)的字段,為 TCP段提供位級(jí)別的完整性校驗(yàn)。 (10)緊急指針 (urgent pointer):一個(gè) 2字節(jié)字段,它表明段中緊急數(shù)據(jù)的位置。 第 18 頁 共 23 頁 (11)選項(xiàng) (option):為提高利用 TCP的通信性能所準(zhǔn)備的選項(xiàng)。 用戶數(shù)據(jù)報(bào)協(xié)議 (UDP)是定義用來在互連網(wǎng)絡(luò)環(huán)境中提供包交換的計(jì)算機(jī)通信的協(xié)議。此協(xié)議默認(rèn)認(rèn)為網(wǎng)路協(xié)議 (IP)是其下層協(xié)議。此協(xié)議提供了向另一用戶程序發(fā)送信息的最簡(jiǎn)便的協(xié)議機(jī)制。此協(xié)議是面向操作的,未提供提交和復(fù)制保護(hù)。以下是 UDP協(xié)議的報(bào)文頭 格式 : 比特 0 16 31 圖 46 TCP數(shù)據(jù)包格式 (1)源端口 — 16 位。源端口是可選字段。當(dāng)使用時(shí),它表示發(fā)送程序的端口,同時(shí)它還被認(rèn)為是沒有其它信息的情況下需要被尋址的答復(fù)端口。如果不使用,設(shè)置值為 0。 (2)目的端口 — 16 位。目標(biāo)端口在特殊因特網(wǎng)目標(biāo)地址的情況下具有意義。 (3)長(zhǎng)度 — 16 位。該用戶數(shù)據(jù)報(bào)的八位長(zhǎng)度,包括協(xié)議頭和數(shù)據(jù)。長(zhǎng)度最小值為 8。 (4)校驗(yàn)和 — 16 位。 IP 協(xié)議頭、 UDP協(xié)議頭和數(shù)據(jù)位,最后用 0填補(bǔ)的信息假協(xié)議頭總和。如果必要的話,可以由兩個(gè)八位復(fù)合而成。 應(yīng)用層協(xié)議的識(shí)別與分析 對(duì)于應(yīng)用層協(xié)議本程序采用的是端口識(shí)別技術(shù)。端口是應(yīng)用程序在網(wǎng)絡(luò)通信上使用的數(shù)據(jù)輸入輸出口。端口分為兩種。一種為公認(rèn)端口,另一種為短暫端口。公認(rèn)端口被分配給網(wǎng)絡(luò)上的服務(wù)程序。當(dāng)某一網(wǎng)絡(luò)客戶端利用其他計(jì)算機(jī)上的服務(wù)程序時(shí),在根據(jù) IP地址指定服務(wù)計(jì)算機(jī)的同時(shí),也指定了被分配的服務(wù)程序的公 認(rèn)端口號(hào)。由此,可以利用與端口號(hào)對(duì)應(yīng)的特定的網(wǎng)絡(luò)服務(wù)。公認(rèn)端口號(hào)有很多,工人端口號(hào)被定義在 unix類操作系統(tǒng)下的 /etc/services文件中下表列出了其中的一部分。 表 41 常用協(xié)議和對(duì)應(yīng)的端口號(hào) 上層協(xié)議 端口號(hào) /協(xié)議 上層協(xié)議的意義 Echo 7/dup 回應(yīng)請(qǐng)求 ftpdata 20/tcp,20/udp 在 ftp上數(shù)據(jù)傳送路徑 ftp 21/tcp,21/udp 在 ftp上控制數(shù)據(jù)通信路徑 tel 23/tcp,23/udp 用于遠(yuǎn)程終端連接的標(biāo)準(zhǔn) Smtp 25/tcp,25/udp 郵件發(fā)送服務(wù) 源端口 目的端口 長(zhǎng)度 校驗(yàn)和 第 19 頁 共 23 頁 Time 37/tcp,37/udp 計(jì)時(shí)服務(wù)器 Nameserver 42/tcp,42/udp 主機(jī)名服務(wù)器 Niame 43/tcp,43/udp Whois服務(wù) Domain 53/tcp,53/udp 域名服務(wù)器 Tftp 69/tcp,69/udp 小型文件傳輸協(xié)議 Gopher 70/tcp,70/udp 信息服務(wù) Finger 79/tcp,79/udp 用戶信息 80/tcp,80/udp Pop3 110/tcp,110/udp 郵局協(xié)議 Sqlserv 118/tcp,118/udp SQL服務(wù) nntp 119/tcp,119/udp 網(wǎng)絡(luò)新聞傳輸協(xié)議 Ntp 123/tcp,123/udp 網(wǎng)絡(luò)時(shí)間協(xié)議 Netbiosns 137/tcp,137/udp Netbios名稱服務(wù) Netbiosdgm 138/tcp,138/udp Netbios會(huì)議服務(wù) 短暫端口號(hào)是客服端程序與服務(wù)器程序進(jìn)行通信時(shí) , 短暫使用端口號(hào)。短暫端口號(hào)是不可再生的,被運(yùn)行系統(tǒng)分配給客戶端程序。因?yàn)槌S枚丝诤统S脜f(xié)議對(duì)應(yīng),我們可以 利用這個(gè)原理來識(shí)別應(yīng)用層協(xié)議。關(guān)鍵代碼如下 void getportname (int portn, char portch[], char *protocol){ if (getservbyport (htons (portn), protocol) != NULL){ strcpy(portch, getservbyport(htons(portn),protocol)s_name)。 } else{ //短暫端口等找不到名稱時(shí) sprintf (portch, e)。 } } 現(xiàn)在介紹一下 getportname()函數(shù)。此函數(shù)完成的是取得端口號(hào)和區(qū)別 TCP/UDP類別的兩個(gè)參數(shù)并返回端口名稱的工作。 getportname()函數(shù)的核心是調(diào)用getservbyport()函數(shù)。用這個(gè)函數(shù)來檢索與端口相關(guān)的信息,吧結(jié)果作為指向servent型的結(jié)構(gòu)體的指針并返回。 servent型的結(jié)構(gòu)體在 明。在這里使用的 s_name成員。把端口名稱賦給 s_name。 getportname()函數(shù)檢索端口名稱失敗時(shí),返回 NULL。這是因?yàn)榈玫降亩丝谔?hào)是短暫端口號(hào),沒有檢索到它的端口名稱。這時(shí),常把端口號(hào)作為端口的名稱來用。 第 20 頁 共 23 頁 5 程序運(yùn)行與測(cè)試 測(cè)試環(huán)境 硬件環(huán)境 處理器 P3 800Mhz 以上;內(nèi)存 128M 以上;多臺(tái)普通搭載網(wǎng)卡的 PC、經(jīng)過 集線器 互聯(lián)。 程序 運(yùn)行環(huán)境 安裝有 Libpcap 以上版本的 Linux 操作系統(tǒng)。 測(cè)試步驟 首先,用多臺(tái) PC搭建局域網(wǎng)絡(luò)。其次,選定一臺(tái) PC 對(duì) 數(shù)據(jù)包捕獲 模塊、 規(guī)則過濾 模塊 、協(xié)議分析模塊 進(jìn)行功能測(cè)試 。 然后 對(duì)每個(gè)功能模塊進(jìn)行數(shù)據(jù)合法性檢查、數(shù)據(jù)一致性檢查。 最后 對(duì)關(guān)鍵模塊進(jìn)行回歸測(cè)試。 測(cè)試結(jié)果評(píng)價(jià) 本設(shè)計(jì)在 Fedora Core 4 環(huán)境試運(yùn)行下,編碼后經(jīng)過多次測(cè)試并將發(fā)現(xiàn)的錯(cuò)誤及時(shí)修改,系統(tǒng)運(yùn)行正常,基本達(dá)到設(shè)計(jì)目標(biāo),運(yùn)行結(jié)果比較良好。圖 51是程序 運(yùn)行時(shí)的 界面。 圖 51 程序運(yùn)行界面
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1