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

正文內(nèi)容

局域網(wǎng)抓包軟件的設(shè)計(jì)與實(shí)現(xiàn)—計(jì)算機(jī)畢業(yè)設(shè)計(jì)-在線瀏覽

2025-02-03 21:49本頁(yè)面
  

【正文】 此應(yīng)用層可以忽略所有這些細(xì)節(jié)。它只是把稱(chēng)作數(shù)據(jù)報(bào)的分組從一臺(tái)主機(jī)發(fā)送到另一臺(tái)主機(jī),但并不保證該數(shù)據(jù)報(bào)能到達(dá)另一端。 應(yīng)用層:它負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。 第 5 頁(yè) 共 25 頁(yè) 通常應(yīng)用程序是一個(gè)用戶(hù)進(jìn)程,而下面的三層進(jìn)程則是一般在內(nèi)核中執(zhí)行的。下三層對(duì)應(yīng)用程序一無(wú) 所知,但卻要處理所有的通信細(xì)節(jié)。 TCP和 UDP是兩種最為著名的運(yùn)輸層協(xié)議,二者都使用 IP作為網(wǎng)絡(luò)層協(xié)議。除了以上提到的協(xié)議,還有下面幾個(gè)協(xié)議: IPARP(地址解析協(xié)議)、 RARP(逆向地址解析協(xié)議 )、動(dòng)態(tài)選路協(xié)議( RIP、 OSPF、 BGP、 CIDR)、 DNS(域名系統(tǒng))、 TFTP(簡(jiǎn)單文件傳送協(xié)議)等。 圖 4 TCP/IP協(xié)議族中不同層次 的協(xié)議 從圖的模型中可以看到,應(yīng)用層的大多數(shù)應(yīng)用程序通過(guò) TCP、 UDP來(lái)訪問(wèn)網(wǎng)絡(luò)層,或者通過(guò) ICMP來(lái)使用網(wǎng)絡(luò)層,如 Ping、 Trace Route等也可以使用 IP直接訪問(wèn)網(wǎng)絡(luò)層。網(wǎng)絡(luò)層的 ICMP是 IP協(xié)議的附屬協(xié)議, IP協(xié)議用它與路由器之間交換錯(cuò)誤報(bào)文或其它控制信息。 數(shù)據(jù)封裝與分用過(guò)程 以用戶(hù)用 TCP協(xié)議傳送數(shù)據(jù)為例, 數(shù)據(jù)被送入?yún)f(xié)議棧 中,然后逐個(gè)通過(guò)每一層直到被當(dāng)作一串比特流送入網(wǎng)絡(luò) 。其中每一層對(duì)收到的數(shù)據(jù)都要增加一些首部信息(有時(shí)還要增加尾部信息)。IP傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱(chēng)作 IP數(shù)據(jù)報(bào)。這就是通常說(shuō)的數(shù)據(jù)的封裝過(guò)程,如圖 5所示。每層協(xié)議盒都要去檢查報(bào)文首部中的協(xié)議標(biāo)識(shí),以確定接收數(shù)據(jù)的上層協(xié)議。 圖 6 數(shù)據(jù) 幀 的分用過(guò)程 第 7 頁(yè) 共 25 頁(yè) IP 協(xié)議 IP是 TCP/IP協(xié)議族中最為核心的協(xié)議。 IP提供不可靠、無(wú)連接的數(shù)據(jù)報(bào)傳送服務(wù)。 首部長(zhǎng)度 : 以 32bit為單位的包頭長(zhǎng)度 。 總長(zhǎng) : 以 Byte為單位的整個(gè) IP數(shù)據(jù)報(bào)長(zhǎng)度 。 標(biāo)志和片偏移 : 同樣用于控制分片及其重組 。 協(xié)議 : 表示創(chuàng)建本 IP數(shù)據(jù)報(bào)數(shù)據(jù)區(qū)數(shù)據(jù)的高層協(xié)議的類(lèi)型,如 TCP,UDP等 。 源 IP地址和目的 IP地址 : 分別指發(fā)送本數(shù)據(jù)報(bào)的主機(jī) IP地址和接受本數(shù)據(jù)報(bào)的主機(jī)的 IP地址 。 TCP協(xié)議是網(wǎng)絡(luò)中應(yīng)用最為廣泛的協(xié)議,許多的應(yīng)用層協(xié)議都是在建立在 TCP協(xié)議之上的。 目的端口 : 接收端 TCP端口號(hào) 。 確認(rèn)號(hào) : 指出本機(jī)希望下一個(gè)接收的字節(jié)的序號(hào) 。 碼位 : 指出段的目的與內(nèi)容,不同的各碼位置位有不同的含義 。 校驗(yàn)和 : 這是可選域,置 0表示未選,全 1表示校驗(yàn)和為伍 緊急指針 : 當(dāng)碼位的 URG置位時(shí),指出緊急指針的序號(hào)。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶(hù) /服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用 UDP協(xié)議。 UDP數(shù)據(jù)報(bào)各域的意義與 TCP段中相應(yīng)的域相同。這個(gè)偽頭標(biāo)來(lái)自于 IP報(bào)頭,包括 : 源 IP地址、信宿 IP地址、協(xié)議類(lèi)型、 UDP長(zhǎng)度及填充域。 但 是由于網(wǎng)絡(luò)是一個(gè)面向大眾的開(kāi)放系統(tǒng),對(duì) 數(shù)據(jù) 信息的保密和系統(tǒng)的 安全 性 考慮得并不完備,存在著 許多的 安全 隱患 。 網(wǎng)絡(luò)的 安全形勢(shì)日 趨嚴(yán)峻。 本軟件的設(shè)計(jì)就是為了達(dá)到基本的維護(hù)網(wǎng)絡(luò)安全的作用,對(duì)網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)進(jìn)行捕獲,然后從中得到所有的網(wǎng)絡(luò)數(shù)據(jù)包,并對(duì)其 進(jìn)行簡(jiǎn)單的分析操作。 IP是 TCP/IP協(xié)議族中最為核心的協(xié)議。這些數(shù)據(jù)類(lèi)型中又以 TCP和 UDP兩種數(shù)據(jù)類(lèi)型為多數(shù)。同時(shí)本軟件還還應(yīng)當(dāng)具有一種過(guò)濾功能,那就是當(dāng)我們知道某個(gè) IP地址發(fā)送的數(shù)據(jù)包信息都是屬于一些不良,反動(dòng)等等 內(nèi)容的信息,那么,我們可以通過(guò)在軟件上輸出這臺(tái)主機(jī) IP地址,來(lái)過(guò)濾從這臺(tái)主機(jī)上發(fā)送的所有 TCP和 UDP協(xié)議類(lèi)型的數(shù)據(jù)。 性能要求 由于本設(shè)計(jì)是安裝在個(gè)人電腦上,所以要求用戶(hù)界面簡(jiǎn)潔,友好,方便使用 第 10 頁(yè) 共 25 頁(yè) 和操作。一方面,網(wǎng)絡(luò)檢測(cè)部分的數(shù)據(jù)源是網(wǎng)絡(luò)上的數(shù)據(jù)包,需要經(jīng)過(guò)捕獲后方可以提交給分析系統(tǒng) ; 另一方面,捕獲數(shù)據(jù)包效率的高低直接影響著網(wǎng)絡(luò)探測(cè)部分的性能的好壞,如果發(fā)生丟包現(xiàn)象,則有可能丟掉的包就是攻擊包。一款好的信息過(guò)濾軟件,都是將在一個(gè)長(zhǎng)時(shí)間工作的環(huán)境中運(yùn)行。那么這款軟件就不會(huì)具備同其他同類(lèi)似軟件的競(jìng)爭(zhēng)力,更不會(huì)有市場(chǎng),那么它就注定成為一款失敗的軟件。 4 局域網(wǎng)信息 捕獲 器 的設(shè)計(jì) 功能概述 通過(guò)前面的敘述可以知道,這款軟件具有的功能,那就是:能夠分別 捕獲 局域網(wǎng)中的 TCP 協(xié)議類(lèi)型數(shù)據(jù), UDP 協(xié)議類(lèi)型數(shù)據(jù) 和從某 一特定的 IP 地址發(fā)送出來(lái)的 TCP 協(xié)議類(lèi)型數(shù)據(jù)和 UDP 協(xié)議數(shù)據(jù)類(lèi)型。 系統(tǒng)流程圖如下圖: 開(kāi) 始捕 獲 數(shù)據(jù)分 析 協(xié)議 類(lèi) 型數(shù) 據(jù) 庫(kù)處 理結(jié) 束結(jié) 束Y E SY E SN ON O 圖 10 系統(tǒng)流程圖 第 11 頁(yè) 共 25 頁(yè) 本系統(tǒng)包括三個(gè)基本模塊,分別是數(shù)據(jù)包捕獲模塊,數(shù)據(jù)分析模塊和數(shù)據(jù)庫(kù)模塊。 系統(tǒng)功能模塊的設(shè)計(jì) 數(shù)據(jù)包 捕獲模塊 數(shù)據(jù)包捕獲模塊主要用 Winpcap軟件實(shí)現(xiàn),模塊的設(shè)計(jì)思想遵循 Winpcap捕獲數(shù)據(jù)包的流程,流程分三步:查找設(shè)備,打開(kāi)設(shè)備和捕獲數(shù)據(jù)的函數(shù)。流程圖如下: 查 找 網(wǎng) 卡 設(shè) 備獲 取 網(wǎng) 卡 設(shè) 備打 開(kāi) 網(wǎng) 卡 設(shè) 備捕 獲 網(wǎng) 絡(luò) 數(shù) 據(jù) 包結(jié) 束Y E SN O開(kāi) 始 圖 11 數(shù)據(jù)捕獲模塊 流程圖 這里給出其主要過(guò)程 : 先確定要在其上進(jìn)行監(jiān)測(cè)的網(wǎng)絡(luò)適配器,得到現(xiàn)有的網(wǎng)絡(luò)適配器的列表和他們的描述,從而獲得該 NIC的相關(guān)信息。alldevs,errbuf) == 1) { MessageBox(查找設(shè)備出錯(cuò) ,提示 )。 第 12 頁(yè) 共 25 頁(yè) } 接下來(lái)打開(kāi)所獲得的網(wǎng)絡(luò)適配器,其中 pcap_open函數(shù)的參數(shù) 1為上面獲得的NIC名稱(chēng),參數(shù) 2定義了網(wǎng)絡(luò)監(jiān)測(cè)程序所捕捉的最大字節(jié)數(shù)。參數(shù) 4為捕獲時(shí)間限制,單位為毫秒。該函數(shù)負(fù)責(zé)按照用戶(hù)指定參數(shù)和其它系統(tǒng)默認(rèn)值初始化 WinPcap,并返回會(huì)話句柄 //打開(kāi)設(shè)備 adhandle = pcap_open(dname, 65536, PCAP_OPENFLAG_PROMISCUOUS, 1000, NULL, errbuf)??紤]到系統(tǒng)資料的占用等問(wèn)題,利用了線程來(lái)解決此問(wèn)題,捕獲數(shù)據(jù)是新建一個(gè)線程,來(lái)實(shí)現(xiàn)數(shù)據(jù)的捕獲,再在線程中處理數(shù)據(jù)的解析和特征碼的提取,其 中 CreateThread 函數(shù)的參數(shù) 1 為指向 SECURITY_ATTRIBUTES 結(jié)構(gòu)體的指針,參數(shù) 2 指定線程堆棧大小,參數(shù) 3 指定線程執(zhí)行函數(shù)名稱(chēng),參數(shù) 4 表示給新線程的參數(shù),參數(shù) 5 為線程指定的更多控制參數(shù),參數(shù) 6 為新線 ID。 m_handle=CreateThread(NULL,0,ThreadProc,this,0,ThID)。 } //線程處理函數(shù) DWORD WINAPI ThreadProc( LPVOID lpParameter ) { CLjDlg * m_dlg = (CLjDlg *)lpParameter。 //捕獲數(shù)據(jù)包的頭 const u_char *pkt_data。 //pcap_next_ex 的返回值 m_dlgSetDlgItemText(IDC_STATIC_TIP,線程開(kāi)始捕獲數(shù)據(jù) .)。header,amp。 //處理捕獲的數(shù)據(jù)包 m_dlgSaveDate(header,pkt_data)。 } 數(shù)據(jù)分析模塊實(shí)現(xiàn) 數(shù)據(jù)分析模塊的設(shè)計(jì)思想是將 Winpcap 捕獲到的數(shù)據(jù)對(duì)應(yīng)網(wǎng)絡(luò)數(shù)據(jù)包的格式進(jìn)行初始化,取得具體的值。 將網(wǎng)絡(luò)中捕獲的數(shù)據(jù)包進(jìn)行格式化 數(shù)據(jù)分析模塊的主要實(shí)現(xiàn)數(shù)據(jù)的解析。 其流程圖如下: 第 14 頁(yè) 共 25 頁(yè) 捕 獲 的 數(shù) 據(jù) 包分 析 以 太 網(wǎng) 協(xié)議判 斷 是 否 為I P 協(xié) 議 數(shù) 據(jù)分 析 I P 協(xié) 議 數(shù)據(jù)判 斷 是 否 是T C P , U D P協(xié) 議 類(lèi) 型 字段分 析 T C P ,U D P 協(xié) 議 類(lèi) 型數(shù) 據(jù) 包傳 入 數(shù) 據(jù) 庫(kù) 處理 模 塊Y E SN OY E SN O 圖 12 數(shù)據(jù)包分析流程圖 數(shù)據(jù)分析模塊實(shí)現(xiàn)時(shí),本系統(tǒng)提取的數(shù)據(jù)包中主要的一些信息,如 IP 數(shù)據(jù)包中的 IP 地址,端口信息等。 tcp* tcph。 CString temp。 //時(shí)間 struct tm *ltime。header)。 //IP ih=(ipheader*)(pkt_data+14)。 0xf)*4。 sprintf(IPDateLength,%d,headerlen)。//生存時(shí)間 sprintf(SIP,%d.%d.%d.%d,ih,ih,ih,ih)。 u_short u_sport,u_dport。 //協(xié)議類(lèi)型 tcph=(tcp*)((u_char*)ih + iplen)。 //源端口 u_dport = ntohs(tcphdport)。 //源端口 // sprintf(Dport,%d,tcphdport)。 sprintf(tcp_hLength,%d,chang)。 //TCP 數(shù)據(jù) } else if(ihproto == 17) //這里是 UDP 數(shù)據(jù)包 { strcpy(proto,UDP)。 u_sport = ntohs(udphsport)。 //目的端口 // sprintf(Sport,%d,udphsport)。 //目的端口 sprintf(udplength,%d,udphlen)。 //TCP 數(shù)據(jù) } sprintf(Sport,%d,u_sport)。 //目的端口 AccessWrite(ihproto)。本系統(tǒng)使用的是ado 數(shù)據(jù)庫(kù)連接方式, ado 是 Microsoft 開(kāi)發(fā)的一個(gè)連接數(shù)據(jù)庫(kù)方式,由于本系統(tǒng)的使用平臺(tái),開(kāi)發(fā)環(huán)境都為 Microsoft 的軟件,所以本系統(tǒng)使用 ado 方式。Data Source=,adModeUnknown)。 return FALSE。 數(shù)據(jù)包信息寫(xiě)入數(shù) 據(jù)庫(kù)代碼如下: AccessWrite(int Type) { …… if(m_bOneIP) //指定 IP 地址模式 { (__uuidof(Recordset))。 try { m_pRecordsetAddNew()。 第 17 頁(yè) 共 25 頁(yè) m_pRecordsetPutCollect(IP 首部長(zhǎng)度 , _variant_t(IPLength))。 m_pRecordsetPutCollect(生存時(shí)間 , _variant_t(TTL))。 m_pRecordsetPutCollect(源 IP 地址 , _variant_t(SIP))。 m_pRecordsetPutCollect(源端口 , _variant_t(Sport))。 } …… m_pRecordsetUpdate()。 } return 。 ()。pColumn)。 (10,amp。 (11,amp。 = TCP 數(shù)據(jù) 。pColumn)。 } catch(__error *e) { AfxMessageBox(eErrorMessage())。 } //讀取數(shù)據(jù) try { if(!m_pRecordsetBOF) m_pRecordsetMoveFirst()。 return。 if( != VT_NULL) { str= __util::ConvertBSTRToString((_bstr_t)var)。 (num1,0,str)。 在為 Winpcap 指定一個(gè)具體的網(wǎng)絡(luò)適配器方面, 有幾種方式可以實(shí)現(xiàn)。 ,讓用戶(hù)選擇具體的網(wǎng)卡設(shè)備。 在為程序指定具體的捕獲方式時(shí),在程序中分別設(shè)置了三個(gè) BOOL 型變量來(lái)分別控制所選中的狀態(tài)。當(dāng)選中IP 這個(gè)單選框是,需要用戶(hù)手動(dòng)輸入需要 捕獲 的源 IP 地址。默認(rèn)選中列表第一項(xiàng)。分別對(duì)應(yīng)的是按 TCP 協(xié)議類(lèi)型, UDP 協(xié)議類(lèi)型和特定 IP 地址來(lái) 捕獲 數(shù)據(jù)信息。 3 種過(guò)濾類(lèi)型中默認(rèn)選中的是 TCP 類(lèi)型。分別是開(kāi)始,停止 ,顯示數(shù)據(jù) 和退出。 第 20 頁(yè) 共 25 頁(yè) 圖 14查看選項(xiàng) 5 局域網(wǎng)信息 捕獲 測(cè)試和測(cè)試結(jié)果 測(cè)試環(huán)境 在編寫(xiě)本軟件前,作者首先確定了所使用的語(yǔ)言 VC++。在此,本軟件必須首先安裝 Winpcap, ++編程環(huán)境中設(shè)置好相關(guān)配置,值得注意的是, Winpcap 都是開(kāi)源的,所以在很多地方可以查詢(xún)到它們的使用方式。具體的實(shí)驗(yàn)環(huán)境:個(gè)人電腦 2 臺(tái)或 2 臺(tái)以上,交換機(jī)一個(gè),網(wǎng)線若干,電腦通過(guò)交換機(jī)組成一個(gè)局域網(wǎng)環(huán)境。 結(jié) 論 經(jīng)過(guò)三個(gè)多月的努力, 局域網(wǎng)抓包軟件終于完成了 。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1