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

正文內(nèi)容

網(wǎng)絡(luò)數(shù)據(jù)包的捕獲與分析畢業(yè)設(shè)計(jì)-文庫吧資料

2025-06-10 00:32本頁面
  

【正文】 得已連接的網(wǎng)絡(luò)適配器列表。 pcap_if_t ** alldevs:返回一個(gè) pcap_if 結(jié)構(gòu)的鏈表。 This pointer keeps the 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 13 頁 共 65 頁 information required to authenticate the RPCAP connection to the remote 的資料,驗(yàn)證 RPCAP 連接到遠(yuǎn)程主機(jī)。 ( 2) pcap_findalldevs_ex( ) int pcap_findalldevs_ex ( char * source, struct pcap_rmtauth * auth, pcap_if_t ** alldevs, char * errbuf ) char * source:用來查找適配器。 char *description:如果不為空,則指向一個(gè)可讓人理解的描述字符串 。 結(jié)構(gòu)體成員個(gè)變量意義: struct pcap_if *next:如果不為空,指向下一成員列表;為空則為最后一個(gè)成員列表。 bpf_u_int32 flags。 char *description。 /* 此函數(shù)功能將數(shù)據(jù)報(bào)存儲(chǔ)到堆文件 */ } 在程序中用到的 WinPcap內(nèi)核函數(shù)詳細(xì)介紹 ( 1) pcap_if 結(jié)構(gòu)體 struct pcap_if { struct pcap_if *next。 //關(guān)閉抓包 過程 return 0。 pcap_loop(adhandle,1, packet_handler, (unsigned char *)dumpfile)。 /* 循環(huán)捕獲數(shù)據(jù)并調(diào)用 packet_handler 函數(shù)把數(shù)據(jù)存儲(chǔ)到堆文件 */ //const struct pcap_pkthdr *header。 } ( 5) 打開捕獲的數(shù)據(jù)存儲(chǔ)的文件 dumpfile = pcap_dump_open(adhandle, fileway)。 pcap_freealldevs(alldevs)。d=dnext, i++)。 } ( 4) 跳轉(zhuǎn)到選中的適配器 for(d=alldevs, i=0。 pcap_freealldevs(alldevs)。inum)。 } ( 3) 選擇網(wǎng)卡 一般的情況下都會(huì)檢測(cè)到至少兩塊網(wǎng)卡,所以我們要選擇我們正在使用的網(wǎng)卡設(shè)備。 if (ddescription) printf( (%s)\n, ddescription)。 d。值得注意的是,數(shù)據(jù)域 name 和 description 表示一個(gè)適配器名稱和一個(gè)可以讓人們理解的描述。如果采用混雜模式,網(wǎng)卡將接受同一網(wǎng)絡(luò)內(nèi)所有主機(jī)所發(fā)送的數(shù)據(jù)包,這樣就 可以到達(dá)對(duì)所有數(shù)據(jù)包進(jìn)行捕獲的目的。網(wǎng)卡具有 4 種工作模式:廣播模式,多播傳送模式,直接模式,混雜模式。 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 11 頁 共 65 頁 4 系統(tǒng)編碼實(shí)現(xiàn) 網(wǎng)絡(luò)數(shù)據(jù)包 捕獲 模塊 的 實(shí)現(xiàn) 以太網(wǎng)具有共享介質(zhì)的特征,信息是以明文的形式在以太網(wǎng)絡(luò)上傳輸?shù)?,?dāng)網(wǎng)卡被設(shè)置為混雜模式時(shí),可以捕獲任何一個(gè)在同一沖突域上傳輸?shù)臄?shù)據(jù)包。 實(shí)質(zhì)是主要實(shí)現(xiàn)一個(gè)網(wǎng)絡(luò)實(shí)時(shí)監(jiān)聽的功能,然后將捕捉到的數(shù)據(jù)包保存下來以便進(jìn)一步的分析使用。 總體設(shè)計(jì)流程圖如圖 所示 啟 動(dòng) 程 序選 擇 網(wǎng) 卡啟 動(dòng) 監(jiān) 聽不 停 的 通 過 p c a p . l o o p 抓 包 , 通 過 調(diào) 用 各P a c k e t 類 來 解 析 報(bào) 文 的 包增 加 相 應(yīng) 的 包 類 型 計(jì) 數(shù) ( t c p 或 u d p ) , 將捕 獲 到 的 包 的 分 析 結(jié) 果 插 入 l i s t 中 。這樣就可以得到各層中的報(bào)文頭信息和數(shù)據(jù)信息。 第三:對(duì)數(shù)據(jù)包信息內(nèi)容進(jìn)行解析,過程如下: 在數(shù)據(jù)包中,其前 14 個(gè)字節(jié)( Byte)表示為數(shù)據(jù)鏈路層的報(bào)文頭,其報(bào)文格式是前 6個(gè)字節(jié)( Byte)表示為目的 MAC 地址,隨后的 6個(gè)字節(jié)( Byte)表示為源 Mac 地址,最后的 2 個(gè)字節(jié)( Byte)代表上層協(xié)議類型,這些重要的數(shù)據(jù)信息,是我們分析上層協(xié)議的依據(jù)。 在概要設(shè)計(jì)中,按模型層的要求,構(gòu)造了多個(gè)用于分析不同類型數(shù)據(jù)包的分析類模型,每個(gè)模型對(duì)應(yīng)一種數(shù)據(jù)包類型,調(diào)用是按要求調(diào)用符合該數(shù)據(jù)包類型的指定模塊。 分析過程,將所獲取的當(dāng)前數(shù)據(jù)包信息轉(zhuǎn)存后進(jìn)行解析過程,步驟如下: 第一:由上一步通過 winpcap 抓包,將抓包后得到的數(shù)據(jù)包后轉(zhuǎn)存到內(nèi)存里,滿足以后的使用和操作。 第三:獲得當(dāng)前的過濾規(guī)則,決定其過濾細(xì)節(jié),但也可為空。 捕獲 過程,通過 winpcap 的調(diào)用從網(wǎng)絡(luò)中獲取數(shù)據(jù)包信息,步驟如下: 第一:初始化 Winpcap 開發(fā)庫。第二步是對(duì)所獲取的數(shù)據(jù)包文進(jìn)行分析和統(tǒng)計(jì)或是其他操作,篩選出我們所需要的信息。 void pcap_dump(u_char *user,const struct pcap_pkthdr *h,const u_char *sp) 此函數(shù)的功能是向文件中寫入網(wǎng)絡(luò)數(shù)據(jù)包內(nèi)容。 void pcap_close(pcap_t *p) 此函數(shù)的功能是關(guān)閉 winpcap 操作,并銷毀相應(yīng)資源。每捕獲一個(gè)數(shù)據(jù)包就調(diào)用 callback 指示的回調(diào)函數(shù),所以可以在回調(diào)函數(shù)中對(duì)捕獲到的數(shù)據(jù)包進(jìn)行操作。 ( 2) 規(guī)則函數(shù) : int pcap_setfilter(pcap_t *p,struct bpf_program *fp) 此函數(shù)設(shè)置 BPF 過濾規(guī)則 ,由參數(shù) fp 確定 int pcap_pile(pcap_t *p,struct bpf_program *program,char *buf,int optimize,bpf_u_int32 mask) 此函數(shù)的功能是編譯 BPF 過濾規(guī)則。 void pcap_freealldevs(pcap_if_t *alldevs); 此函數(shù)的功能是釋放網(wǎng)絡(luò)接口鏈表中的所有網(wǎng)絡(luò)接口。下面介紹一些主要的函數(shù)。 ( 3) pcap_pkthdr Pcap_pkthdr 數(shù)據(jù)結(jié)構(gòu)定義如下: Struct pcap_pkthdr{ Struct timeval ts; //時(shí)間 戳 Bpf_u_int32 caplen; //捕獲長(zhǎng)度 Bpf_u_int32 len; //數(shù)據(jù)包長(zhǎng)度 }; 此數(shù)據(jù)結(jié)構(gòu)用來描述每個(gè)捕獲到的數(shù)據(jù)包的一些基本信息,每個(gè)數(shù)據(jù)包都有此數(shù)據(jù)結(jié)構(gòu)。 ( 1) pcap_addr Pcap_addr 數(shù)據(jù)結(jié)構(gòu)的定義如下: Tpyedef struct pcap_addr pcap_addr_t; Struct pcap_addr{ Struct pcap_addr *next; //指向下一個(gè)地址結(jié)點(diǎn) Struct sockaddr *addr; //網(wǎng)絡(luò)接口地址 Struct sockaddr *mask; //地址掩碼 Struct sockaddr *broadaddr; //廣播地址 Struct sockaddr *dstaddr; //目的地址 }; 此數(shù)據(jù)結(jié)構(gòu)描述的是網(wǎng)絡(luò)接口的地址。使用 進(jìn)行數(shù)據(jù)包捕獲的編程與使用 Libpcap 一樣簡(jiǎn)單。用的最多的還是,因?yàn)樗峁┝艘粋€(gè)更高級(jí)、更方便的編程接口。 提供了很多功能復(fù)雜的編程接口,其接口形式與微軟的 DDK 提供的 差不多。 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 7 頁 共 65 頁 從圖 中也可以看到, 位于 的下層,是較低層的網(wǎng)絡(luò)編程接口。NPF 由一個(gè)網(wǎng)絡(luò)轉(zhuǎn)發(fā)部件,從網(wǎng)卡驅(qū)動(dòng)程序收集網(wǎng)絡(luò)數(shù)據(jù)包,既可以發(fā)送給過濾部件,對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行過濾,也可以發(fā)送給統(tǒng)計(jì)部件,對(duì)網(wǎng)絡(luò)進(jìn)行統(tǒng)計(jì)分析,還可以發(fā)送給存儲(chǔ)部件,把網(wǎng)絡(luò)數(shù)據(jù)包直接存儲(chǔ)到磁盤。 NPF( Netgroup Packet Filter): NPF 是 Winpcap 的核心部分,它的主要功能就是捕獲數(shù)據(jù)包,還可以發(fā)送數(shù)據(jù)包、存儲(chǔ)數(shù)據(jù)包以及對(duì)網(wǎng)絡(luò)進(jìn)行統(tǒng)計(jì)分析。 網(wǎng)絡(luò)驅(qū)動(dòng)程序接口規(guī)范( NDIS, Network Driver Interface Specification)是由微軟和 3公司共同制定的,它位于網(wǎng)卡和協(xié)議層之間,提供一個(gè)接口,為上層協(xié)議提供服務(wù),并且屏蔽了下層各種網(wǎng)卡的差別,并且支持多種網(wǎng)絡(luò)協(xié)議。它也是提供給開發(fā)者的一個(gè)接口,但它是一個(gè)更高層的編程接口,其調(diào)用與系統(tǒng)無關(guān)。它是提供給開發(fā)者的一個(gè)接口,使用它就可以調(diào)用Winpcap 的函數(shù),它是一個(gè)較低層的開發(fā)接口。此過濾模塊實(shí)際 上是一個(gè)驅(qū)動(dòng)程序,被稱為 NPF( Netgroup Packet Filter)數(shù)據(jù)包驅(qū)動(dòng)程序。 第一部分是內(nèi)核層的數(shù)據(jù)包過濾模塊。 在這里我使用的是 WinPcap 版,性能穩(wěn)定。而且提供很高的應(yīng)用效率,充分考慮了各種性能和效率的優(yōu)化,在內(nèi)核層實(shí)現(xiàn)了數(shù)據(jù)包的捕獲和過濾。 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 6 頁 共 65 頁 開發(fā) Winpcap 這個(gè)項(xiàng)目的目的在于為 Win32 應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力,其核心功能是捕獲網(wǎng)絡(luò)數(shù)據(jù)包,其他功能包括數(shù)據(jù)包過濾、數(shù)據(jù)包發(fā)送、流量統(tǒng)計(jì)和數(shù)據(jù)包存儲(chǔ)等。 Winpcap 是在 BSD 許可證下發(fā)布的,它主要是由加利福尼亞大學(xué)的 Lawrence Berkeley Laboratory 開發(fā)。在設(shè)計(jì) Winpcap 時(shí)參照了Libpcap,兩者使用方法相似。因而,這個(gè)連接是雙工的,可以用來進(jìn)行讀寫。用戶使用 Tel 客戶程序與服務(wù) 進(jìn)程建立一個(gè)連接。 PING 是最常用的基于 ICMP 的服務(wù)。 ICMP 的 ?Redirect‘信息通知主機(jī)通向其他系統(tǒng)的更準(zhǔn)確的路徑,而?Unreachable‘信息則指出路徑有問題。 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 5 頁 共 65 頁 UDP 報(bào)文格式 如圖 圖 UDP 報(bào)文格式 ( 4) ICMP ICMP 與 IP 位于同一層,它被用來傳送 IP 的的控制信息。使用 UDP 的服務(wù)包括 NTP(網(wǎng)絡(luò)時(shí)間協(xié)議)和 DNS( DNS 也使用 TCP)。因此, UDP 不被應(yīng)用于那些使用虛電路的面向連接的服務(wù), UDP 主要用于那些面向查詢 應(yīng)答的服務(wù),例如NFS。 DNS 在某些情況下使用 TCP(發(fā)送和接收域名數(shù)據(jù)庫),但使用 UDP傳送有關(guān)單個(gè)主機(jī)的信息。應(yīng)用程序輪流將信息送回 TCP 層, TCP 層便將它們向下傳送到 IP 層,設(shè)備驅(qū)動(dòng)程序和物理介質(zhì),最后到接收方。 TCP 數(shù)據(jù)包中包括序號(hào)和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以 被重傳。 IP 數(shù)據(jù)報(bào)格式如圖 陜西理工學(xué)院畢業(yè)設(shè)計(jì) 第 4 頁 共 65 頁 圖 IP 報(bào)文格式 ( 2) TCP 如果 IP 數(shù)據(jù)包中有已經(jīng)封好的 TCP 數(shù)據(jù)包,那么 IP 將把它們向 ?上 ‘傳送到 TCP 層。這個(gè)選項(xiàng)是為了測(cè)試而存在的,說明了它可以被用來欺騙系統(tǒng)來進(jìn)行平常是被禁止的連接。 IP 確認(rèn)包含一個(gè)選項(xiàng),叫作 IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。 高層的 TCP 和 UDP 服務(wù)在接收數(shù)據(jù)包時(shí),通常假設(shè)包中的源地址是有效的。 IP 數(shù)據(jù)包是不可靠的,因?yàn)?IP 并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。 TCP/IP中的協(xié)議 以下簡(jiǎn)單介紹 TCP/IP 中的協(xié)議都具備什么樣的功能,都是如何工作的: ( 1) IP 網(wǎng)際協(xié)議 IP 是 TCP/IP 的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1