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-02-12 02:48 上一頁面

下一頁面
 

【正文】 p 可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包的 “ 頭 ” 完全截獲下來提供分析。 EtherPeek:這個(gè)工具軟件開始只是一個(gè)網(wǎng)絡(luò)分析器型的數(shù)據(jù)包監(jiān)測軟件,經(jīng)過這些年的發(fā)展已經(jīng)成為一個(gè)真正的網(wǎng)絡(luò)管理工具并具有網(wǎng)站監(jiān)視和分析等新的功能,被美國聯(lián)邦調(diào)查局用來追蹤逃犯、販賣毒品的人、電腦黑客和一些被懷疑為外國間諜的人。 EtherPeek 采用工業(yè)標(biāo)準(zhǔn),非常容易使用,提供解碼、過濾和診斷網(wǎng)絡(luò)的功能。本程序所要實(shí)現(xiàn)的目標(biāo)就是在共享式以太網(wǎng)中捕獲根據(jù)過濾規(guī)則設(shè)置的流經(jīng)本地網(wǎng)卡的數(shù)據(jù)包,并且對數(shù)據(jù)包中的信息進(jìn)行分析。 系統(tǒng)的組成結(jié) 構(gòu)和工作流程 系統(tǒng)的結(jié)構(gòu)框圖 基于以上分析,本文設(shè)計(jì)了網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析程序,圖 21是程序的結(jié)構(gòu)框圖 。然后將捕獲后的數(shù)據(jù)包交給上層的數(shù)據(jù)處理模塊,進(jìn) 行協(xié)議分析。其中包括選擇用于捕獲的網(wǎng)絡(luò)接口和需要過濾的內(nèi)容。 規(guī)則匹配模塊,該模塊的主要功能是根據(jù)用戶的需求對需要捕獲的數(shù)據(jù)包進(jìn)行過濾設(shè)置。該模塊的主要功能是對捕獲的數(shù)據(jù)進(jìn)行分析顯示處理。把數(shù)據(jù)包捕獲下來后,我們需要對其 分析才能知道網(wǎng)絡(luò)中存在的安全問題。對數(shù)據(jù)包進(jìn)行協(xié)議分析后要把結(jié)果顯示給用戶本程序才結(jié)束。只過濾用戶所關(guān)心的信息 。 開始進(jìn)行捕獲,并分析數(shù)據(jù),將數(shù)據(jù)顯示給用戶。網(wǎng)絡(luò)數(shù)據(jù)包協(xié)議分析程序要實(shí)現(xiàn)的關(guān)鍵技 術(shù)包括:數(shù)據(jù)包捕獲技術(shù)、對 TCP/IP各層基本協(xié)議進(jìn)行分析的技術(shù)、協(xié)議識別技術(shù)。在 Linux有一個(gè)專門為程序員編寫數(shù)據(jù)包捕獲程序而開發(fā)的庫: Libpcap?,F(xiàn)有的大部分 Linux捕包系統(tǒng)都是基于這套函數(shù)庫或者是在它基礎(chǔ)上做一些針對性的改進(jìn)。對于協(xié)議的識別需要從下至上進(jìn)行。但是應(yīng)用層的協(xié)議種類相當(dāng)多,無法從下層協(xié)議中識別。端口識別的優(yōu)點(diǎn)是:簡單、容易實(shí)現(xiàn)。另方面,數(shù)據(jù)截取模塊截取數(shù)據(jù)包的效率也是很重要的。數(shù)據(jù)包常規(guī)的傳輸路徑依次為網(wǎng)卡、設(shè)備驅(qū)動層、數(shù)據(jù)鏈路層、 IP層、傳輸層、最后到達(dá)應(yīng)用程序。這樣一來,針對特定操作系統(tǒng)的捕獲機(jī)制對用戶透明,使用戶程序有比較好的可移植性。在 windows平臺下,一個(gè)與 Libpcap很類似的函 數(shù)包 winpcap提供捕獲功能,其官方網(wǎng)站是 Libpcap軟件包可從 載,解壓后依此執(zhí)行下列三條命令即可安裝。返回值: int,如果返回 0則執(zhí)行成功,錯誤返回 1。最后, ebuf 是一個(gè)我們可以存入 任何錯誤信息的字符串(就像上面的 errbuf)。再下邊是一個(gè)定義表達(dá)式是否被優(yōu)化的整形量( 0 為 false, 1為 true,標(biāo)準(zhǔn)規(guī)定)。 參數(shù):這非常直觀,第一個(gè)參數(shù)是會話句柄,第二個(gè)參數(shù)是被編譯表達(dá)式版本的引用(可推測出它與 pcap_pile()的第二個(gè)參數(shù)相同)。最后一個(gè)參數(shù)在有些應(yīng)用里有用,但更多時(shí)候則置為 NULL。 struct pcap_addr *addresses。 如果非空,指向鏈的下一個(gè)元素。 如果非空,指向一個(gè)對設(shè)備的人性化的描述字符串。 PCAP_IF_ 網(wǎng) 卡 的 標(biāo) 志 。 /*length of portion present*/ bpf_u_int32 len。 當(dāng)前分片的長度; dpf_u_int32 len。 /* number of packets received */ u_int ps_drop。 接受數(shù)據(jù)報(bào)的數(shù)目; u_int ps_drop。 sockaddr * mask。 pcap_addr * next。 sockaddr * mask。 sockaddr * dstaddr。 第三步通過調(diào)用 pcap_datalink檢查該網(wǎng)卡所在網(wǎng)絡(luò)是不是以太網(wǎng),如果不是則中止程序。pcap_findalldevs () pcap_open_live () pcap_datalink () pcap_pile() pcap_setfilter() pcap_loop() end Begin N Y 第 12 頁 共 23 頁 這樣一來,應(yīng)用程序收到的數(shù)據(jù)包是最原始的數(shù)據(jù)包,也就是說監(jiān)聽主機(jī)接收到的數(shù)據(jù)包中,除了數(shù)據(jù)包本身的內(nèi)容之外,還帶有從對方主機(jī)中的傳輸層、網(wǎng)絡(luò)層以及數(shù)據(jù)鏈路層的數(shù)據(jù)包頭信息,所以要想獲得數(shù)據(jù)包里的應(yīng)用數(shù)據(jù),是需要我們自己來按照每一層的協(xié)議剝離數(shù)據(jù)包頭中的每一層首部內(nèi)容的,這就是協(xié)議分析需要完成的工作。比如發(fā)送方在數(shù)據(jù)鏈路層通常會在包頭加上目的 MAC地址、源 MAC地址、其他一些具體網(wǎng)絡(luò)信息及幀定界符,在包尾加上循環(huán)冗余碼,并使用字節(jié)填充或位填充,由接收方數(shù)據(jù)鏈路層去掉包頭與包尾進(jìn)行相關(guān)解釋工作。 (2)然后 需要去掉數(shù)據(jù)鏈層的 報(bào) 頭,此時(shí)可以獲得 IP數(shù)據(jù)報(bào)、 arp、 rarp數(shù)據(jù)包,在這一層中可以對 IP數(shù)據(jù)報(bào)做一定的統(tǒng)計(jì)和分析等等;對 arp、 rarp數(shù)據(jù)包可以獲得發(fā)送端 IP和目的 IP等重要信息。 對 TCP/IP 模型中各層協(xié)議的分析 前面的內(nèi)容已經(jīng)提到過,我們在對數(shù)據(jù)包根據(jù)應(yīng)用層協(xié)議進(jìn)行分析的時(shí)候都需要首先剝離數(shù)據(jù)包中的包頭并且需要根據(jù)包頭信息判斷是何種應(yīng)用層協(xié)議。把這個(gè)指針強(qiáng)制轉(zhuǎn)換為以太幀 格式: (struct ether_header *) p。在以太網(wǎng)內(nèi)的 IP和 ARP數(shù)據(jù)報(bào)或者使用以太網(wǎng) II的或者使用 IEEE: 子網(wǎng)訪問協(xié)議 (SNAP)來封裝數(shù)據(jù)。目的地址可以是單播、多播 或者以太網(wǎng)的廣播地址。這個(gè)字段被用來將以太網(wǎng)的有效載荷傳給正確的上層協(xié)議實(shí)體。 (5)有效載荷 (Payload):以太網(wǎng) II的幀的有效載荷由上層協(xié)議 的協(xié)議數(shù)據(jù)單元組成,是數(shù)據(jù)包本身的具體內(nèi)容。 (6)幀校驗(yàn)序列 (Frame Check Sequence, FCS): 4字節(jié)長,提供位級別的完整性校驗(yàn),也被稱為循環(huán)冗余校驗(yàn) (CRC)。就得到了指向 IP報(bào)頭的指針,我們就可以進(jìn)行相應(yīng)的分析了。雖 然很多時(shí)候一個(gè) IP數(shù)據(jù)報(bào)就是一個(gè) IP包,但它們在概念上是不同 的 實(shí)體。典型的 IP頭不包括任何選項(xiàng),長度為 20字節(jié)。 (6)標(biāo)志 (flags):長度為 3位,包含兩個(gè)用于分片的標(biāo)志。 (9)協(xié)議 (protocol):長度為 1字節(jié),表示包含在有效載荷中的上層協(xié)議。 (12)選項(xiàng)和填充:此字段跟在 IP頭之后,但必須是以 4個(gè)字節(jié)為增量單位,以使 IP頭的大小能用報(bào)頭長度字段表示。TCP正為目前 Intemet上幾乎所有的應(yīng)用 協(xié)議所利用,這是因?yàn)榇蟛糠謶?yīng)用程序都需要可靠的、可糾錯的傳輸協(xié)議以保證不丟失或破壞數(shù)據(jù)。 IP頭中的源地址和 TCP頭中的源端口聯(lián)合起來提供一個(gè)源套接字。 (2)目的端口 (destination port):指示目的應(yīng)用層協(xié)議,是一個(gè) 2字節(jié)字段。利用隨機(jī)值確定初始值,以字節(jié)為單位表示所發(fā)送數(shù)據(jù)的位置。在不包括選項(xiàng)的情況下, TCP報(bào)頭是 20個(gè)字節(jié), offset的值為 5。 (8)窗口 (window):一個(gè) 2字節(jié)的字段,表明該段的發(fā)送方的接收緩沖區(qū)中可供使用的空間有多少字節(jié)數(shù)。 第 18 頁 共 23 頁 (11)選項(xiàng) (option):為提高利用 TCP的通信性能所準(zhǔn)備的選項(xiàng)。此協(xié)議是面向操作的,未提供提交和復(fù)制保護(hù)。如果不使用,設(shè)置值為 0。該用戶數(shù)據(jù)報(bào)的八位長度,包括協(xié)議頭和數(shù)據(jù)。如果必要的話,可以由兩個(gè)八位復(fù)合而成。一種為公認(rèn)端口,另一種為短暫端口。公認(rèn)端口號有很多,工人端口號被定義在 unix類操作系統(tǒng)下的 /etc/services文件中下表列出了其中的一部分。關(guān)鍵代碼如下 void getportname (int portn, char portch[], char *protocol){ if (getservbyport (htons (portn), protocol) != NULL){ strcpy(portch, getservbyport(htons(portn),protocol)s_name)。 getportname()函數(shù)的核心是調(diào)用getservbyport()函數(shù)。把端口名稱賦給 s_name。 第 20 頁 共 23 頁 5 程序運(yùn)行與測試 測試環(huán)境 硬件環(huán)境 處理器 P3 800Mhz 以上;內(nèi)存 128M 以上;多臺普通搭載網(wǎng)卡的 PC、經(jīng)過 集線器 互聯(lián)。 然后 對每個(gè)功能模塊進(jìn)行數(shù)據(jù)合法性檢查、數(shù)據(jù)一致性檢查。 圖 51 程序運(yùn)行界面 。 測試結(jié)果評價(jià) 本設(shè)計(jì)在 Fedora Core 4 環(huán)境試運(yùn)行下,編碼后經(jīng)過多次測試并將發(fā)現(xiàn)的錯誤及時(shí)修改,系統(tǒng)運(yùn)行正常,基本達(dá)到設(shè)計(jì)目標(biāo),運(yùn)行結(jié)果比較良好。 測試步驟 首先,用多臺 PC搭建局域網(wǎng)絡(luò)。這是因?yàn)榈玫降亩丝谔柺嵌虝憾丝谔?,沒有檢索到它的端口名稱。 servent型的結(jié)構(gòu)體在 明。 } } 現(xiàn)在介紹一下 getportname()函數(shù)。短暫端口號是不可再生的,被運(yùn)行系統(tǒng)分配給客戶端程序。當(dāng)某一網(wǎng)絡(luò)客戶端利用其他計(jì)算機(jī)上的服務(wù)程序時(shí),在根據(jù) IP地址指定服務(wù)計(jì)算機(jī)的同時(shí),也指定了被分配的服務(wù)程序的公 認(rèn)端口號。端口是應(yīng)用程序在網(wǎng)絡(luò)通信上使用的數(shù)據(jù)輸入輸出口。 (4)校驗(yàn)和 — 16 位。目標(biāo)端口在特殊因特網(wǎng)目標(biāo)地址的情況下具有意義。源端口是可選字段。此協(xié)議默認(rèn)認(rèn)為網(wǎng)路協(xié)議 (IP)是其下層協(xié)議。 (9)校驗(yàn)和 (checksum):一個(gè) 2字節(jié)的字段,為 TCP段提供位級別的完整性校驗(yàn)。 (7)標(biāo)志 (flags):一個(gè) 6字節(jié)字段,指示 6個(gè) TCP標(biāo)志。是用于保證可靠性的確認(rèn)號碼。 (3)序列號 (sequence number):指示段的第一個(gè) 8位組的輸出字節(jié)流的序列號,是一個(gè) 4字節(jié)字段。在一般情況下,應(yīng)用層協(xié)議的 服務(wù)器端在己知的端口上偵聽。如圖 45所示,是 TCP段的封裝結(jié)構(gòu) 。然后就可以對 TCP/UDP數(shù)據(jù)包進(jìn)行分析了。 (10)報(bào)頭校驗(yàn)和 (header checksum):長度為 2字節(jié),是用于確認(rèn) IP數(shù)據(jù)包是否己毀壞的字段。 (7)片偏移 (fragment offset):長度為 13位,表示分片相對于原始 IP數(shù)據(jù)報(bào)有效載荷的偏移量。 第 16 頁 共 23 頁 (4)數(shù)據(jù)包總長 (total length):長度為 2位,表示 IP數(shù)據(jù)報(bào)總的字節(jié)數(shù),包括 IP頭和有效載荷。目前在所有互聯(lián)網(wǎng)絡(luò)和 Inter中使用的標(biāo)準(zhǔn) IP版本 號 是 4(即 IPv4) 。只要設(shè)備需要通過 IP網(wǎng)絡(luò)向其他網(wǎng)絡(luò)發(fā)送數(shù)據(jù),它就會創(chuàng)建一個(gè) 數(shù)據(jù)報(bào)來發(fā)送數(shù)據(jù)。 IP 首部的分析與提取 因?yàn)橐蕴珟瑘?bào)頭的長度都是一樣的。 第 15 頁 共 23 頁 因?yàn)橐蕴W(wǎng)具有沖突檢測機(jī)制,以太網(wǎng) II的最小幀有效載荷為 46字節(jié)。該幀將被丟棄。 (3)源地址 ((Source Address): 6字節(jié)長,指明發(fā)送節(jié)點(diǎn)的單播地址。需要注意的是,幀初始同步字段在網(wǎng)絡(luò)監(jiān)視器中是不可見的。 由于在定義 IEEE ,以太網(wǎng)就存在,因?yàn)橛卸鄠€(gè)以太網(wǎng)標(biāo)準(zhǔn),所以TCP/IP可以支持多種不同的鏈路層協(xié)議,如以太網(wǎng)、令牌環(huán)網(wǎng)、 FDDI(光纖 分布式數(shù)據(jù)接口 )等。 以太網(wǎng)首部的分析與提取 因?yàn)槊恳粋€(gè)使用 Libpcap捕獲的數(shù)據(jù)包,都會有一個(gè)指向原始報(bào)文頭的指針。 (4)對數(shù)傳輸層數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1