版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
-27-基于WinPcap的開源網(wǎng)絡(luò)數(shù)據(jù)處理工具程序的設(shè)計(jì)與實(shí)現(xiàn)目錄TOC\o"1-3"\h\u18146基于WinPcap的開源網(wǎng)絡(luò)數(shù)據(jù)處理工具程序的設(shè)計(jì)與實(shí)現(xiàn) -1-15087摘要 -2-186291緒論 -2-261751.1論文的選題背景 -2-271531.2研究意義 -3-302811.3本文的主要研究內(nèi)容 -3-177332網(wǎng)絡(luò)數(shù)據(jù)處理工具需求分析 -5-34152.1網(wǎng)絡(luò)數(shù)據(jù)處理工具的需求分析 -5-97902.2網(wǎng)絡(luò)數(shù)據(jù)處理工具的可行性分析 -6-60501.2.2.1經(jīng)濟(jì)可行性 -6-84132.2.2.2運(yùn)行可行性 -6-306993.2.2.3技術(shù)可行性 -6-147744.2.2.4操作可行性分析 -7-4823網(wǎng)絡(luò)數(shù)據(jù)處理工具開發(fā)相關(guān)知識 -7-64983.1OSI模型簡介 -7-309173.2網(wǎng)絡(luò)協(xié)議簡介 -8-182155.3.2.1數(shù)據(jù)包嵌套形式 -9-153146.3.2.2以太網(wǎng)協(xié)議首部說明 -9-35997.3.2.3IP協(xié)議首部說明 -10-224118.3.2.4ICMP協(xié)議首部說明 -11-19699.3.2.5TCP協(xié)議首部說明 -11-1071610.3.2.6UDP協(xié)議首部說明 -12-2513811.3.2.7ARP協(xié)議首部說明 -12-308793.3winpacp -13-254084程序開發(fā)流程 -14-53954.1QTcreator的簡介 -14-3075712.4.1.1QT環(huán)境的配置 -14-1542713.4.1.2winpacp庫的添加 -14-253704.2模塊結(jié)構(gòu) -15-90754.3程序界面設(shè)計(jì) -16-226564.4程序代碼的編寫 -16-227854.5編譯和調(diào)試 -17-129804.6流程關(guān)系 -18-229255運(yùn)行和測試 -18-136425.1功能設(shè)計(jì)與實(shí)現(xiàn) -18-890614.5.1.1主界面展示 -18-2370215.5.1.2網(wǎng)卡的掃描/選擇 -19-2329216.5.1.3主機(jī)信息掃描 -20-111717.5.1.4局域網(wǎng)主機(jī)掃描 -21-2526218.5.1.5過濾抓包 -21-814419.5.1.7實(shí)時網(wǎng)速顯示功能 -23-270965.2測試的意義及目的 -23-108585.3測試步驟 -24-255695.4測試數(shù)據(jù) -24-105結(jié)論 -25-24762參考文獻(xiàn) -25-摘要本文課題設(shè)計(jì)為基于WinPcap的開源網(wǎng)絡(luò)數(shù)據(jù)處理工具程序的設(shè)計(jì)與實(shí)現(xiàn),使用QT5.8.0和winpacp庫來實(shí)現(xiàn)本文首先說明了課題研究的目的、意義和網(wǎng)絡(luò)監(jiān)聽的背景,討論了在網(wǎng)絡(luò)數(shù)據(jù)處理領(lǐng)域領(lǐng)先的工具以及當(dāng)前網(wǎng)絡(luò)學(xué)習(xí)的困難,以此引出了本課題研究的需求和可行性分析。然后分析了網(wǎng)絡(luò)結(jié)構(gòu),重要網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)幕驹?,介紹基于WinPcap、QT5.8.0實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)聽。接著羅列了本程序設(shè)計(jì)思路和架構(gòu),功能流程及其實(shí)現(xiàn)邏輯,自頂向下,結(jié)合源碼逐一展開描述。最后將程序的功能測試及其結(jié)果進(jìn)行展示。關(guān)鍵詞:網(wǎng)絡(luò)協(xié)議,數(shù)據(jù)包,TCP/UDP,ARP,WinPcap,QT1緒論1.1論文的選題背景互聯(lián)網(wǎng)的到來,便利了人們的生活,讓信息的傳遞變得迅如閃電,同時這也讓人與人、人與社會的關(guān)系更加密切了起來。信息的不平等是這個時代不平等的最大歸因,而互聯(lián)網(wǎng)讓我們掌握了最新最全的信息,也讓我們每一個人都擁有了縮小人與人之間不平等的能力,所以我們必須知道互聯(lián)網(wǎng)的體系和模式和數(shù)據(jù)包傳輸?shù)膮f(xié)議和方式,從而提供效率更高和有用的信息截獲方式?,F(xiàn)如今,計(jì)算機(jī)的普及也引發(fā)了更多的網(wǎng)絡(luò)安全問題,一些不法分子利用以太網(wǎng)的廣播方式非法入侵計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng),當(dāng)期在某個廣播域中監(jiān)聽到所有的信息包的時候,利用一定的技術(shù)手段,向其他的網(wǎng)絡(luò)拓展和入侵。網(wǎng)絡(luò)監(jiān)聽是一種以監(jiān)聽當(dāng)前網(wǎng)絡(luò)狀態(tài)和數(shù)據(jù)傳輸為主的網(wǎng)絡(luò)管理工具,它可以將計(jì)算機(jī)的網(wǎng)卡設(shè)定為監(jiān)聽模式,從而獲取所傳輸在該域網(wǎng)絡(luò)上傳輸?shù)男畔?shù)據(jù),對于網(wǎng)絡(luò)管理員和入侵者來說,都可以通過網(wǎng)絡(luò)監(jiān)聽技術(shù)了解到網(wǎng)絡(luò)數(shù)據(jù)的實(shí)時動態(tài),為了保護(hù)網(wǎng)絡(luò)安全,維護(hù)網(wǎng)絡(luò)環(huán)境,我們必須先下手為強(qiáng),運(yùn)用網(wǎng)絡(luò)反向追蹤技術(shù)對其進(jìn)行追蹤,從而第一時間掌握網(wǎng)絡(luò)的安全情況。同時也只有把握先機(jī),我們才能保證網(wǎng)絡(luò)的信息安全?,F(xiàn)在市場中最受歡迎的網(wǎng)絡(luò)嗅探器:Sniffer,是利用計(jì)算機(jī)的網(wǎng)絡(luò)接口截獲目的地為其他計(jì)算機(jī)的數(shù)據(jù)報(bào)文的一種工具Sniffer技術(shù)雖然常常被黑客們用來截獲用戶的口令,但同時也被廣泛地應(yīng)用于網(wǎng)絡(luò)故障診斷、協(xié)議分析、應(yīng)用性能分析和網(wǎng)絡(luò)安全保障等各個領(lǐng)域。本文旨在對嗅探器的實(shí)現(xiàn)原理進(jìn)行深入的了解,這對防范黑客攻擊、提高網(wǎng)絡(luò)安全具有重要意義1.2研究意義網(wǎng)絡(luò)數(shù)據(jù)處理工具的開發(fā)主要是用來監(jiān)聽網(wǎng)絡(luò)上流經(jīng)的數(shù)據(jù)包,一般來說像網(wǎng)絡(luò)中數(shù)據(jù)的傳輸和網(wǎng)絡(luò)協(xié)議以及網(wǎng)絡(luò)結(jié)構(gòu)對于計(jì)算機(jī)用戶來說都是明晰的。同時這些也是非常復(fù)雜的,需要我們的初學(xué)者進(jìn)行大量的學(xué)習(xí)和理解,在課堂上的學(xué)習(xí)終歸是紙上得來終覺淺,絕知此事要躬行。如果無法直觀的獲得網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù),那就不能真正將網(wǎng)絡(luò)安全的觀念具象化,也不能真正的做到讓初學(xué)者理解接受網(wǎng)絡(luò)安全的重要性,然而網(wǎng)絡(luò)數(shù)據(jù)處理工具能克服這個問題。但是現(xiàn)在市面上諸多的優(yōu)秀工具使用起來太過復(fù)雜,不適合初學(xué)者使用。因此,本著開源的精神來做一款工具,幫助了解、學(xué)習(xí)網(wǎng)絡(luò)數(shù)據(jù)的傳輸、網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)結(jié)構(gòu)。本畢業(yè)設(shè)計(jì)軟件是基于OSI(OpenSystemInterconnection)參考模型以及一些的網(wǎng)絡(luò)協(xié)議,采用C++語言,使用WinPcap庫和QT5.8.0作為開發(fā)工具編寫本軟件。本系統(tǒng)操作界面簡單大方,功能較為齊備。是一個簡單實(shí)用的網(wǎng)絡(luò)數(shù)據(jù)處理軟件,本系統(tǒng)具有以下基本功能:(1)本機(jī)適配器掃描(2)局域網(wǎng)各主機(jī)掃描(3)類似于WinShark的抓包工具,能夠簡單的過濾Tcp、Udp、Arp等包(4)統(tǒng)計(jì)實(shí)時網(wǎng)速本軟件的目的重在抓取經(jīng)過本機(jī)網(wǎng)卡的數(shù)據(jù)包,對其進(jìn)行加工處理、分析展示,供初學(xué)者學(xué)習(xí)、參考。1.3本文的主要研究內(nèi)容本文首要介紹了論文的選題背景,即在當(dāng)下這個計(jì)算機(jī)日益普及的社會里,網(wǎng)絡(luò)安全的學(xué)習(xí)和維護(hù)刻不容緩。我們的生活萬物都開始與互聯(lián)網(wǎng)相關(guān),小到聊天購物,大到國家大事,都離不開網(wǎng)絡(luò)的運(yùn)作。所以如果不加強(qiáng)網(wǎng)絡(luò)安全意識,我們很有可能會釀成大禍,最后追悔莫及。所以要做一款網(wǎng)絡(luò)數(shù)據(jù)分析工具,這款工具可以幫助我們及時的發(fā)現(xiàn)網(wǎng)絡(luò)問題并解決。接著,我們分析了想要制作這款數(shù)據(jù)處理工具可行性。分別從經(jīng)濟(jì)方面、技術(shù)層面以及運(yùn)行和操作方面對此進(jìn)行了分析。分析結(jié)果是,此次開發(fā)從各個方面來說都完全可行。接下來就是要查找資料文獻(xiàn),學(xué)習(xí)和總結(jié)想要開發(fā)這款網(wǎng)絡(luò)數(shù)據(jù)處理工具所需要掌握的知識。除了學(xué)習(xí)各大網(wǎng)絡(luò)協(xié)議的內(nèi)容,還要充分的掌握本次開發(fā)必須要用到的WinPcap庫。學(xué)習(xí)掌握并且得融會貫通它的框架結(jié)構(gòu)的構(gòu)成成分,為本次順利開發(fā)打下堅(jiān)實(shí)的基礎(chǔ)。做好上述工作后,就開始著手軟件的開發(fā)了。先是學(xué)習(xí)QTCreator的應(yīng)用,然后進(jìn)行軟件編程的步驟,這一步是最重要的一步,除了要很熟練的掌握編程知識以外,還要學(xué)習(xí)如何將QT和WinPcap進(jìn)行配置和聯(lián)合使用,只有掌握了WinPcap中各個模塊和函數(shù)的作用,才能編寫出我們想要實(shí)現(xiàn)的網(wǎng)絡(luò)數(shù)據(jù)處理功能。只有做好上述步驟,最后才能實(shí)現(xiàn)該工具的實(shí)現(xiàn)。最后我們對軟件從不同角度進(jìn)行測試,測試的結(jié)果和我們之前預(yù)期的結(jié)果相同,軟件沒有任何的問題,我們本次的運(yùn)行測試也增強(qiáng)了軟件的穩(wěn)定性。至此,本次論文完結(jié)了,我們成功開發(fā)出了這款界面簡潔干凈、容易上手操作的網(wǎng)絡(luò)數(shù)據(jù)處理工具。文章最后對本次開發(fā)過程做了一個總結(jié)和致謝。總結(jié)了本次開發(fā)中所遇到的實(shí)際問題的解決方法,并學(xué)會了堅(jiān)持不懈、永不延期的科研態(tài)度;同時對在本次論文編寫的過程中幫助我的老師和同學(xué)表達(dá)了我誠摯的謝意。2網(wǎng)絡(luò)數(shù)據(jù)處理工具需求分析2.1網(wǎng)絡(luò)數(shù)據(jù)處理工具的需求分析對于網(wǎng)絡(luò)數(shù)據(jù)的處理,大部分軟件或系統(tǒng)是不會直接讀寫該數(shù)據(jù)包的每一位的,因?yàn)橛辛烁鞔髤f(xié)議的存在,它們只需要建立在OSI七層模型中的應(yīng)用層就足夠了。通過協(xié)議的轉(zhuǎn)換,軟件或系統(tǒng)可以從整個數(shù)據(jù)包中只讀取需要的相應(yīng)字段,之后再進(jìn)行相應(yīng)的數(shù)據(jù)處理。因此,在這里要說的是很重要的一部分功能,即捕獲數(shù)據(jù)包。業(yè)務(wù)需求:滿足網(wǎng)絡(luò)管理員對網(wǎng)絡(luò)的實(shí)時監(jiān)控滿足對網(wǎng)卡的讀寫操作。掃描本機(jī)適配器在本網(wǎng)段內(nèi)活躍主機(jī)信息。滿足對網(wǎng)卡內(nèi)流過的數(shù)據(jù)讀寫操作。性能需求:網(wǎng)卡混雜式捕獲不造成2G內(nèi)存計(jì)算機(jī)宕機(jī)。文件磁盤IO操作不造成軟件奔潰。任何操作不造成GUI交互無響應(yīng)。并發(fā)不造成內(nèi)存泄露等問題。程序流程合理,不會造成邏輯上的死循環(huán)??煽俊⒖捎眯孕枨螅很浖跁r間和條件的限制下,不導(dǎo)致起系統(tǒng)崩潰的概率。在規(guī)定的時間和一定的條件限制下,軟件執(zhí)行所需求的功能的能力;2.2網(wǎng)絡(luò)數(shù)據(jù)處理工具的可行性分析在大部分傳輸介質(zhì)上,截獲和監(jiān)聽網(wǎng)絡(luò)的信息是很容易的,以往時有發(fā)生。作為網(wǎng)絡(luò)數(shù)據(jù)的匯聚節(jié)點(diǎn),網(wǎng)關(guān)和防火墻以及路由器中時有大量數(shù)據(jù)流過這些節(jié)點(diǎn)。所以,他們就是網(wǎng)絡(luò)犯罪者和網(wǎng)絡(luò)維護(hù)者之間的兵家必爭之地。鑒于此,我們必須加固這些地方,增強(qiáng)這些地方的防御能力。大多數(shù)黑客都喜歡在以太網(wǎng)中的某個主機(jī)上來監(jiān)聽網(wǎng)絡(luò)傳輸上的數(shù)據(jù),因?yàn)檫@是最容易做到這些的地方,網(wǎng)絡(luò)黑客喜歡稱這些主機(jī)為“肉雞”,數(shù)量多、防御能力低是他們的共性。因此,本工具也打算從個人計(jì)算機(jī)入手,進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)處理的第一步:網(wǎng)絡(luò)監(jiān)聽。下面,將主要從經(jīng)濟(jì)方面、技術(shù)層面、運(yùn)行可行性和操作可行性等方面進(jìn)行分析本此次的畢業(yè)設(shè)計(jì)實(shí)驗(yàn)。2.2.1經(jīng)濟(jì)可行性本此開發(fā)的網(wǎng)絡(luò)數(shù)據(jù)處理工具所需的資料都可以從網(wǎng)絡(luò)上找到,實(shí)在不行就可以到圖書館里去查找。開發(fā)軟件所需要的系統(tǒng)和平臺等都是很好獲得的。不需要特殊的工具實(shí)現(xiàn)起來也很簡單,而且它的開發(fā)成本足夠廉價(jià),所以從經(jīng)濟(jì)角度看,開發(fā)這款網(wǎng)絡(luò)數(shù)據(jù)處理工具可行。而且在開發(fā)之余,我們可以將它進(jìn)行商業(yè)開發(fā),用它來產(chǎn)生一定的商業(yè)價(jià)值,從而再次降低我們的開發(fā)成本。2.2.2運(yùn)行可行性我們對它的運(yùn)行性進(jìn)行分析,就是考慮到它對系統(tǒng)結(jié)構(gòu)的影響。該網(wǎng)絡(luò)數(shù)據(jù)處理工具的界面十分的大氣美觀,操作也是極易上手的。運(yùn)行所需的庫也就是WinPacp靜態(tài)庫和QT自帶的庫以及Windows本身所帶的動態(tài)庫。而且它可以在諸多的操作系統(tǒng)中運(yùn)行,所以從技術(shù)角度來說,該系統(tǒng)可行。因?yàn)橐蕴W(wǎng)是一種廣播型的網(wǎng)絡(luò),且目前人們使用的因特網(wǎng)多是使用以太網(wǎng)技術(shù)來實(shí)現(xiàn)的,所以大多數(shù)網(wǎng)絡(luò)數(shù)據(jù)的截獲是可以在以太網(wǎng)上實(shí)現(xiàn)的,其中可以分為共享式以太網(wǎng)監(jiān)聽和交換式以太網(wǎng)監(jiān)聽。因此,從技術(shù)角度來說,以某一網(wǎng)絡(luò)域中的計(jì)算機(jī)為節(jié)點(diǎn),監(jiān)聽該域網(wǎng)絡(luò),這種方式是可行的。2.2.3技術(shù)可行性放眼世界,現(xiàn)在的因特網(wǎng)是由以太網(wǎng)技術(shù)來支撐的。以太網(wǎng)是一種廣播型的網(wǎng)絡(luò)系統(tǒng),現(xiàn)在很多的網(wǎng)絡(luò)數(shù)據(jù)包的抓取都是在該網(wǎng)上實(shí)現(xiàn)的。而以太網(wǎng)的監(jiān)聽又可以分為交換式和共享型。只要我們在網(wǎng)絡(luò)中的任何一個計(jì)算機(jī)節(jié)點(diǎn)上,就能實(shí)現(xiàn)對整個網(wǎng)段數(shù)據(jù)的監(jiān)聽。綜上所述,該系統(tǒng)的開發(fā)從經(jīng)濟(jì)、技術(shù)、運(yùn)行等方面完全可行。2.2.4操作可行性分析開發(fā)所采用的工具是QT5.8.0,所開發(fā)的工具很符合現(xiàn)在的計(jì)算機(jī)用戶的使用習(xí)慣,它可以運(yùn)行在各個版本的Windows系統(tǒng)上。當(dāng)用戶單擊軟件時,會彈出一個窗口,我們可以通過鼠標(biāo)和鍵盤對各種參數(shù)進(jìn)行設(shè)置,以實(shí)現(xiàn)我們所想要實(shí)現(xiàn)的功能。網(wǎng)絡(luò)管理員們可以通過這款軟件實(shí)時的對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行監(jiān)聽和處理。所以從操作角度來講,此軟件也是可行的。3網(wǎng)絡(luò)數(shù)據(jù)處理工具開發(fā)相關(guān)知識3.1OSI模型簡介OSI(OpenSystemInterconnection,開放系統(tǒng)互連)七層網(wǎng)絡(luò)模型被稱為開放式系統(tǒng)互聯(lián)參考模型,是一個人為抽象的定義,它把網(wǎng)絡(luò)概念從邏輯上分為了七層。如圖3.1所示,OSI七層模型是被設(shè)計(jì)為一種框架,這七層模型的建立在很大程度上克服了網(wǎng)絡(luò)連接中的兼容問題,諸如以太網(wǎng)和局域網(wǎng)以及其他網(wǎng)絡(luò)之間的兼容性問題。這樣進(jìn)行分層的最大優(yōu)點(diǎn)就是它能將服務(wù)和接口以及協(xié)議的觀念具象化的分別開來。OSI的最大功能就是使得數(shù)據(jù)包能夠在不同類別的計(jì)算機(jī)之間進(jìn)行傳輸。也正因如此,不同的系統(tǒng)間、網(wǎng)絡(luò)間所進(jìn)行的可靠的設(shè)備通訊也得益于OSI的七個分層結(jié)構(gòu)。圖3.1OSI七層模型及常見協(xié)議物理層:提供為建立、維護(hù)和拆除物理鏈路所需要的機(jī)械的、電氣的、功能的和規(guī)程的特性。數(shù)據(jù)鏈路層:負(fù)責(zé)網(wǎng)絡(luò)尋址、錯誤偵測和修正等;提供數(shù)據(jù)鏈路的流控。網(wǎng)絡(luò)層:決定數(shù)據(jù)的傳輸目的和寄轉(zhuǎn),添加網(wǎng)絡(luò)表頭(NH),如IP協(xié)議首部。傳輸層:添加傳輸表頭(TH)形成數(shù)據(jù)包,如TCP協(xié)議首部。會話層:提供兩進(jìn)程之間建立、維護(hù)和結(jié)束會話連接的功能。表示層:轉(zhuǎn)換數(shù)據(jù)格式使其與接收者系統(tǒng)兼容;完成數(shù)據(jù)轉(zhuǎn)換、格式化和文本壓縮。應(yīng)用層:為應(yīng)用軟件而設(shè)定的層,不同軟件有不同的通訊方式,如HTTP,F(xiàn)TP等。3.2網(wǎng)絡(luò)協(xié)議簡介網(wǎng)絡(luò)協(xié)議是為在計(jì)算機(jī)網(wǎng)絡(luò)中進(jìn)行數(shù)據(jù)交換而建立的規(guī)則、標(biāo)準(zhǔn)或約定的集合,由三個要素組成:(1)時序:對網(wǎng)絡(luò)中事件發(fā)生的順序和協(xié)議發(fā)生順序的具體說明。(2)語義:語義主要規(guī)定了計(jì)算機(jī)在運(yùn)行時所需要發(fā)出的控制信息的內(nèi)容以及實(shí)現(xiàn)的過程,還有它做出的反應(yīng)內(nèi)容。(3)語法:用戶數(shù)據(jù)與控制信息的相關(guān)結(jié)構(gòu)、格式,以及各種意義數(shù)據(jù)出現(xiàn)的順序。綜上所述,人們形象地把這三個要素通俗的描述為:語義表示要做什么,語法表示要怎么做,時序表示什么時候做。結(jié)合OSI模型,我們可以更加快速的理解很多的網(wǎng)絡(luò)協(xié)議,人們在結(jié)合了硬件和軟件的兩種規(guī)定而制定了各種各樣的網(wǎng)絡(luò)協(xié)議。只有掌握了各個網(wǎng)絡(luò)協(xié)議,再能打好網(wǎng)絡(luò)數(shù)據(jù)處理工具的設(shè)計(jì)基礎(chǔ),網(wǎng)絡(luò)協(xié)議的用途就是為數(shù)據(jù)的交換建立規(guī)則和標(biāo)準(zhǔn),一般的網(wǎng)絡(luò)協(xié)議包括重要的五個部分,它們分別是傳輸服務(wù)、信息的編碼的格式、詞匯表、通信環(huán)境和時序規(guī)則,這些部分都是構(gòu)成一個完整的網(wǎng)絡(luò)協(xié)議的基礎(chǔ)。在本次的網(wǎng)絡(luò)數(shù)據(jù)處理工具設(shè)計(jì)中,我們運(yùn)用了大量的網(wǎng)絡(luò)協(xié)議,其中的TCP(TransmissionControlProtocol)即網(wǎng)絡(luò)數(shù)據(jù)傳輸控制協(xié)議,當(dāng)我們在進(jìn)行數(shù)據(jù)包傳送時,會將數(shù)據(jù)包分割成小的IP包,之后再將它們送達(dá)之后,再進(jìn)行重組還原。雙方“握手”后,將兩個應(yīng)用程序之間建立的一種端對端的一種協(xié)議。應(yīng)用程序在發(fā)送了通信請求之后,這個請求會被送到一個確切的地址上,雙方經(jīng)過“握手”之后,就會通過TCP建立一個端對端的通信通道,所以這種協(xié)議更加的安全。HTTP協(xié)議是標(biāo)準(zhǔn)的網(wǎng)絡(luò)傳輸協(xié)議。該協(xié)議指定了客戶機(jī)可以發(fā)送給服務(wù)器的內(nèi)容,并得到相應(yīng)的回應(yīng);ICMP協(xié)議是路由器為了嚴(yán)密地監(jiān)視互聯(lián)網(wǎng)的操作提供的,該協(xié)議可以報(bào)告相關(guān)的事件,比如ping程序就是用了它來報(bào)告網(wǎng)絡(luò)的連通性;ARP協(xié)議被提出來是因?yàn)樵诰W(wǎng)絡(luò)上發(fā)送分組的時候并不是用的IP地址,且主機(jī)不能理解這樣的地址?;ヂ?lián)上所有的機(jī)器都要用該協(xié)議;FTR協(xié)議與HTTP協(xié)議很相似,都是文件傳輸協(xié)議,它們都有共同點(diǎn),都是用在了TCP上,然而它們之間也有很多的不同點(diǎn),其中最大的不同就是,F(xiàn)TR傳輸文件的時候,使用的是兩個并行的TCP連接,其中這兩個分別是數(shù)據(jù)連接和控制連接。它們兩個的具體工作是,數(shù)據(jù)連接被用于準(zhǔn)確的傳輸文件,而控制連接用于傳輸兩臺計(jì)算機(jī)之間的傳輸控制協(xié)議。3.2.1數(shù)據(jù)包嵌套形式數(shù)據(jù)通過OSI模型,被分片、包裝、嵌套處理之后,最后形成了一個完整、符合以太網(wǎng)協(xié)議的數(shù)據(jù)包。以太網(wǎng)驅(qū)動以太網(wǎng)驅(qū)動IPTCP應(yīng)用程序用戶數(shù)據(jù)用戶數(shù)據(jù)APPL首部用戶數(shù)據(jù)用戶數(shù)據(jù)首部IP首部TCP首部IP首部TCP首部TCP首部用戶數(shù)據(jù)圖STYLEREF1\s0.2數(shù)據(jù)包嵌套模型3.2.2以太網(wǎng)協(xié)議首部說明以太網(wǎng)協(xié)議是現(xiàn)如今的局域網(wǎng)使用中最普遍的通信協(xié)議標(biāo)準(zhǔn),最建于上世紀(jì)七十年代。它的傳輸速率為10Mbps,在以太網(wǎng)中,所有的主機(jī)連接在同一條同軸電纜上,采用競爭機(jī)制和總線拓?fù)浣Y(jié)構(gòu),當(dāng)檢測到數(shù)據(jù)沖突時,會進(jìn)行載波感應(yīng)多處訪問。以太網(wǎng)協(xié)議首部說明表如圖3.3所示。圖IP協(xié)議首部說明IP是主機(jī)在網(wǎng)絡(luò)中的標(biāo)識,網(wǎng)絡(luò)上的所有主機(jī)都有IP地址,這種標(biāo)識是唯一的,不可能存在兩個一摸一樣的IP。IP地址包含網(wǎng)絡(luò)號和主機(jī)號,網(wǎng)絡(luò)號和主機(jī)號表示的意思分別是,前者表示主機(jī)在互聯(lián)網(wǎng)中的地址,后者表示主機(jī)在網(wǎng)絡(luò)中所處的位置。IP協(xié)議首部說明如圖3.4所示。圖3.4(1)網(wǎng)絡(luò)存儲的時候是從左及右,按照次序由低位到高位,而字節(jié)和字?jǐn)?shù)的存儲順序與其相反,依次從低位到高位。(2)版本:占第一個字節(jié)的高四位。頭長度:占第一個字節(jié)的低四位。(3)服務(wù)類型:前三位為優(yōu)先字段權(quán),現(xiàn)已忽略。(4)封包總長度:說明整個IP報(bào)的長度,單位為字節(jié)。(5)存活時間:就是封包的生存時間。(6)協(xié)議:定義了數(shù)據(jù)的協(xié)議,分別為:TCP、UDP、ICMP和IGMP。(7)檢驗(yàn)和:首先將該字段設(shè)置為0,然后將IP頭的每16位進(jìn)行二進(jìn)制取反求和,將結(jié)果保存在校驗(yàn)和字段。(8)來源IP地址:將來源IP地址看作是32位數(shù)值則需要將網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)化位主機(jī)字節(jié)順序。(9)目的IP地址:將目的IP地址看作是32位數(shù)值則需要將網(wǎng)絡(luò)字節(jié)順序轉(zhuǎn)化位主機(jī)字節(jié)順序。在網(wǎng)絡(luò)協(xié)議里,IP協(xié)議是不可靠的數(shù)據(jù)報(bào)協(xié)議,因?yàn)樗轻槍Ψ沁B接的數(shù)據(jù)報(bào)協(xié)議。當(dāng)傳遞數(shù)據(jù)時,它并不檢測網(wǎng)絡(luò)有沒有連通,所以它只負(fù)責(zé)在各個計(jì)算機(jī)之間尋找地址和選擇數(shù)據(jù)包路由的工作。3.2.4ICMP協(xié)議首部說明如圖3.5所示,ICMP協(xié)議首部說明詳解。(1)從類型來說ICMP是一個8位的類型字段,ICMP數(shù)據(jù)包類型還有很多,這里不再贅述。(2)ICMP有一個八位的代碼域,當(dāng)與類型組合時,它表示指定類型中的一個功能。當(dāng)它的代碼域值為0時,表示它只有一個功能。(3)校驗(yàn)和是一個數(shù)據(jù)包中有關(guān)ICMP上的一個8位的校驗(yàn)和。路由器為了嚴(yán)密地監(jiān)視互聯(lián)網(wǎng)的操作,提供了ICMP(InternetControlMessageProtocol)協(xié)議。該協(xié)議可以報(bào)告有關(guān)的事件,也可以用于測試互聯(lián)網(wǎng)的連通性,如常用的Ping程序就使用了該協(xié)議來報(bào)告網(wǎng)絡(luò)的連通性。已經(jīng)定義的ICMP消息類型有10種左右,表1.1列出了其中最重要的一部分。圖TCP協(xié)議首部說明TCP協(xié)議是為了在不可靠的網(wǎng)絡(luò)上提供一個可靠的端與端字節(jié)流而設(shè)計(jì)的。圖3.6為其首部說明。圖3.6(1)TCP的目的端口是16位的,它以報(bào)文的方式接收源端口和IP地址的是用來標(biāo)識報(bào)文的發(fā)送地址。(2)TCP的源端口和IP地址的作用是標(biāo)記和識別16位的目的端口域指明報(bào)文接收計(jì)算機(jī)上的應(yīng)用程序端口地址。(3)頭長度表明TCP的頭的字節(jié)數(shù),如果要轉(zhuǎn)化為字節(jié)個數(shù)需乘四。(4)TCP的緊急指針標(biāo)志位是URG。(5)窗口大小表明當(dāng)目的主機(jī)使用16位的域時,會告訴源主機(jī)。(6)TCP首部說明表中的FIN表明結(jié)束連線標(biāo)志位(7)這個校驗(yàn)和會對首部數(shù)據(jù)以及封包內(nèi)容都會校驗(yàn),所以它和IP校驗(yàn)不同。:(8)TCP協(xié)議首部說明表中的SYN用來建立連線。(9)TCP協(xié)議首部說明表中的緊急指針要起作用的話,URG的值得為1。(10)TCP協(xié)議首部說明表中的PSH表明以最快的速度傳輸數(shù)據(jù)標(biāo)志位。(11)TCP協(xié)議首部說明表中的ACK是應(yīng)答/請求標(biāo)志位(12)確認(rèn)序號表明TCP數(shù)據(jù)包傳輸中的接收一方的應(yīng)答順序號。(13)TCP協(xié)議首部說明表中的RST位是連接復(fù)位標(biāo)志位。(14)序列號表明接受方主機(jī)的封包順序號。3.2.6UDP協(xié)議首部說明UDP協(xié)議是應(yīng)用程序發(fā)送經(jīng)過封裝的IP數(shù)據(jù)包的一種方法。其首部說明如圖3.7所示。圖3.7(1)UDP協(xié)議首部說明中的目的端口是六位的,定義了傳輸?shù)哪康牡兀?)UDP協(xié)議首部說明表中的封包長度表明了UDP首部的總長度和封包數(shù)據(jù)的總長度。(3)UDP協(xié)議首部說明表中的源端口是16位的包含了初發(fā)送方端的端口號。(4)UDP的校驗(yàn)號和TCP的一樣,會對首部數(shù)據(jù)和封包內(nèi)容進(jìn)行校驗(yàn)。3.2.7ARP協(xié)議首部說明圖3.8ARP協(xié)議首部說明如圖3.8所示,以下是詳細(xì)說明。(1)ARP協(xié)議首部說明表中的硬件類型指明了硬件接口類型。(2)ARP協(xié)議首部說明表中的發(fā)送方硬件地址(0-3字節(jié))表示的是源主機(jī)硬件地址的前3個字節(jié)。(3)ARP協(xié)議首部說明表中的發(fā)送方硬件地址(4-5字節(jié))表明的含義是源主機(jī)硬件地址的后3個字節(jié)。(4)ARP協(xié)議首部說明表中的發(fā)送方IP地址(0-1字節(jié))表明的含義是源主機(jī)硬件地址的前2個字節(jié);(5)ARP協(xié)議首部說明表中的協(xié)議類型表明的含義是高層協(xié)議類型;(6)ARP協(xié)議首部說明表中的硬件地址長度,協(xié)議長度表明的含義是硬件地址和高層協(xié)議地址的長度;(7)ARP協(xié)議首部說明表中的操作字段表明的含義是報(bào)文的類型;(8)ARP協(xié)議首部說明表中的發(fā)送方IP地址(2-3字節(jié))表明的含義是源主機(jī)硬件地址的后2個字節(jié);(9)ARP協(xié)議首部說明表中的目的硬件地址(0-1字節(jié))表明的含義是目的主機(jī)硬件地址的前2個字節(jié);(10)ARP協(xié)議首部說明表中的目的IP地址(0-3字節(jié))表明的含義是目的主機(jī)的IP地址;(11)ARP協(xié)議首部說明表中的目的硬件地址(2-5字節(jié))表明的含義是目的主機(jī)硬件地址的后4個字節(jié)。3.3winpacp本工具所使用的WinPcap庫大大降低了本軟件的開發(fā)難度。因?yàn)閃indows操作系統(tǒng)提供的API并不能直接用來獲取網(wǎng)絡(luò)傳輸上的數(shù)據(jù)。即便是提供的一些內(nèi)核接口的模塊也是有著它的局限性。舉個例子說明,IP過濾驅(qū)動只運(yùn)行在Windows2000的造作系統(tǒng)下,且僅支持IP協(xié)議;對內(nèi)核的操作和對文件I/O的操作都帶來了設(shè)計(jì)上和使用上的復(fù)雜度飆升;Windows內(nèi)核的不透明等。由于這方面的限制,使得Windows平臺與Unix相比,前者的網(wǎng)絡(luò)安全管理和分析方面的軟件在數(shù)量上和質(zhì)量上都遠(yuǎn)不如后者。鑒于此,意大利一家開發(fā)機(jī)構(gòu)在借助微軟公司的資助下,開發(fā)出了一套功能齊全且易擴(kuò)展的體系結(jié)構(gòu)——WinPcap,它能夠被專業(yè)的應(yīng)用在Win32平臺的底層網(wǎng)絡(luò)分析中。WinPcap最大的優(yōu)點(diǎn)就是它可以在Windows32上實(shí)現(xiàn)捕獲數(shù)據(jù)包的功能,在此之前Windows操作系統(tǒng)并不具有這方面的網(wǎng)絡(luò)分析能力。迪岑的包過濾驅(qū)動程序,通過對NDIS中函數(shù)的調(diào)用為Win95、WinNT提供一類類似
于Berkeley
Packet
Filter
的捕獲及發(fā)送數(shù)據(jù)包的能力。如圖3.9所示,是WinPcap的框架結(jié)構(gòu)圖。ApplicationApplicationWpcap.dllPacket.dllNPFDeviceDriverPacketsUserLevelKernelLevelNetwork圖3.9WinPcap框架結(jié)構(gòu)圖NPF(核心部分):NPF的全稱為NetgrouppacketFliter,是一種驅(qū)動網(wǎng)絡(luò)協(xié)議的程序,它可以為所有的操作系統(tǒng)提供一種截獲和發(fā)送原始數(shù)據(jù)包的功能,但是這種功能是基于它調(diào)用NDIS來實(shí)現(xiàn)的,NPF一般被用來過濾一些數(shù)據(jù)包,同時它也可以被用來驅(qū)動虛擬設(shè)備。
Wpcap.dll:是一個包含了公共WinPcapAPI的動態(tài)鏈接庫,當(dāng)Wpcap.dll進(jìn)行捕獲和分析網(wǎng)絡(luò)流量數(shù)據(jù)時,它是通過輸出一組依賴于系統(tǒng)的函數(shù)來實(shí)現(xiàn)目的。Wpcap.dll與Libpcap兼容。Packetdll:包括訪問BPF的一個應(yīng)用接口和符合高層函數(shù)庫接口的函數(shù)庫。這一部分為平臺提供了一個通用的接口,這個接口可以應(yīng)對不同操作系統(tǒng)的內(nèi)核和用戶模塊不盡近相同的現(xiàn)象,事實(shí)上,這樣做也節(jié)省了再次進(jìn)行編譯的時間。4程序開發(fā)流程4.1QTcreator的簡介QtCreator是跨平臺的QtIDE,當(dāng)QT被Nokia收購之后,隨即推出了QtCreator,它是一款全新的輕量級的集成開發(fā)環(huán)境。這種開發(fā)環(huán)境能夠在多種平臺上運(yùn)行,根據(jù)官網(wǎng)描述,Qt的應(yīng)用程序框架可以讓開發(fā)人員更加快速的完成開發(fā)設(shè)計(jì)的任務(wù)。在本次的程序開發(fā)中,我使用的是QT5.8.0版本。4.1.1QT環(huán)境的配置下載安裝好QT5.8.0之后,將C盤下的system32文件夾和SysWOW64文件添加到系統(tǒng)變量的path里。然后將QT安裝路徑下的qt5.8\5.8\mingw53_32\bin和qt5.8\Tools\mingw530_32\bin以及qt5.8\Tools\QtCreator\bin分別加到環(huán)境變量和系統(tǒng)變量的path中。具體操作就是:右擊計(jì)算機(jī)>單機(jī)屬性>單擊高級屬性>單擊環(huán)境變量,在下邊找到Path變量,單擊一下,然后點(diǎn)編輯新建。4.1.2winpacp庫的添加下載WinPcap_4_1_3.exe驅(qū)動,下載開發(fā)包WpdPack_4_1_2.zip,然后解壓在任意盤里,然后在工程文件里的.pro文件中加入所需的include和lib文件夾,再添加所對應(yīng)的靜態(tài)庫,這里用到了三個靜態(tài)庫:wpack.lib,packet.lib和libnet.lib。然后找到其中相對應(yīng)的dll動態(tài)庫,將它們添加到工程文件的目錄下,如圖4.1所示。圖4.14.2模塊結(jié)構(gòu)本網(wǎng)絡(luò)數(shù)據(jù)處理工具是一般的PC桌面軟件,由于都是二進(jìn)制的數(shù)據(jù)分包,不適合使用數(shù)據(jù)庫來存儲數(shù)據(jù),因此沒有使用數(shù)據(jù)庫,而是直接轉(zhuǎn)儲為.CAP后綴文件。開發(fā)之初,在構(gòu)思軟件時設(shè)計(jì)了一套軟件架構(gòu),從底層的適配器端口得到數(shù)據(jù)之后,由WinPcap的混雜模式得到相應(yīng)的數(shù)據(jù)包,交由Filter層過濾數(shù)據(jù),經(jīng)過過濾層之后的數(shù)據(jù)由提供給用戶界面的各個功能模塊進(jìn)行相應(yīng)的數(shù)據(jù)處理:過濾、展示、包裝等。模塊結(jié)構(gòu)設(shè)計(jì)圖如圖4.2所示。網(wǎng)卡網(wǎng)卡捕捉程序數(shù)據(jù)發(fā)送過濾層數(shù)據(jù)導(dǎo)出數(shù)據(jù)讀取數(shù)據(jù)封裝圖4.2模塊結(jié)構(gòu)流程圖4.3程序界面設(shè)計(jì)本次抓包程序的設(shè)計(jì),我使用了QT5.8.0的界面開發(fā)工具QTDesigner。直接使用代碼來編寫GUI無疑是非常痛苦的,QTDesigner的功能非常齊全,它的界面類似于VB,而且提供了大量可供編程使用的組件。在應(yīng)用QtDesigner程序開發(fā)時,一般要涉及到下面幾個步驟:(1)創(chuàng)建和初始化子部件(2)設(shè)置子部件布局(3)設(shè)置Tab鍵次序(4)建立信號與插槽的連接(5)編寫事件處理函數(shù)QQTDesignerForm.uiuicmain.cppform.h圖4.3QTDesigner功能框圖4.4程序代碼的編寫(1)獲取設(shè)備列表一般來說,我們編寫網(wǎng)絡(luò)數(shù)據(jù)處理工具的第一步,就是獲得已經(jīng)連接的網(wǎng)絡(luò)適配器列表。WinPcap庫里提供的pcap_findalldevs_ex()函數(shù)可以實(shí)現(xiàn)以上的功能。這個函數(shù)會返回一個pcap_if結(jié)構(gòu)的鏈表。在程序中的關(guān)鍵代碼如下://掃描本機(jī)所有的適配器,并獲取每個適配器的信息QVector<DEVInfo>PcapCommon::findAllDev(){QVector<DEVInfo>allDev;DEVInfotempDevInfo;pcap_if_t*p;charerrbuf[PCAP_ERRBUF_SIZE];}(2)打開適配器并捕獲數(shù)據(jù)包并進(jìn)行流量監(jiān)控第一步的時候我們已經(jīng)掃描到了適配器列表,現(xiàn)在進(jìn)行的是打開適配器捕獲數(shù)據(jù)包。這里用到的函數(shù)是pcap_open()在程序中的關(guān)鍵代碼為://1打開適配器pcap->openLiveDev(devName);//2獲取本機(jī)ip和netmaskpcap->setHostInfo(devName);//3線程獲取本機(jī)MACpcap->getSelfMac();//開啟流量監(jiān)控線程pcap->trafficStatistic(devName);//開始捕獲pcap_loop(adhandle,0,packet_handler,NULL);(3)數(shù)據(jù)包的過濾WinPcap最強(qiáng)大的特性之一,是擁有過濾數(shù)據(jù)包的引擎。用到的函數(shù)為pcap_compile()和pcap_setfilter(),pcap_compile()會將一個高層的布爾過濾表達(dá)式編譯成一個能夠被過濾引擎所解釋的低層的字節(jié)碼;pcap_setfilter()將一個過濾器與內(nèi)核捕獲會話向關(guān)聯(lián)。當(dāng)pcap_setfilter()被調(diào)用時,這個過濾器將被應(yīng)用到來自網(wǎng)絡(luò)的所有數(shù)據(jù)包,并且,所有的符合要求的數(shù)據(jù)包(即那些經(jīng)過過濾器以后,布爾表達(dá)式為真的包),將會立即復(fù)制給應(yīng)用程序。至此,程序代碼編寫好了,因?yàn)槠邢捱@里只是枚舉了幾個重要函數(shù)功能的代碼。4.5編譯和調(diào)試將程序代碼編寫好,界面設(shè)計(jì)之后就可以開始進(jìn)行程序的編譯和調(diào)試了。編譯的時候先進(jìn)行qmake操作生成生成Qt項(xiàng)目文件(*.pro),用.pro文件產(chǎn)生平臺相關(guān)的Makefile文件,對包含Q_OBJECT宏的頭文件生成調(diào)用moc的make規(guī)則。然后單擊QT的構(gòu)建按鈕,程序就開始編譯了,在經(jīng)過Debug的調(diào)試和Release的封裝之后,抓包工具就編譯成功了。4.6流程關(guān)系打開適配器打開適配器適配器是否就緒結(jié)束工具初始化局域主機(jī)掃描數(shù)據(jù)過濾抓包關(guān)閉操作獲取主機(jī)信息實(shí)時網(wǎng)速顯示開始否是圖4.4網(wǎng)路數(shù)據(jù)處理工具流程圖5運(yùn)行和測試5.1功能設(shè)計(jì)與實(shí)現(xiàn)5.1.1主界面展示網(wǎng)絡(luò)數(shù)據(jù)處理工具的界面如圖5.1所示圖5.1正如上圖所示,這是本次畢業(yè)設(shè)計(jì)中我本人設(shè)計(jì)并實(shí)現(xiàn)的軟件界面,最上面的橫向菜單欄是掃描到的網(wǎng)卡列表。有藍(lán)牙的網(wǎng)卡接口、虛擬機(jī)的網(wǎng)卡端口、有線網(wǎng)卡端口和無線網(wǎng)卡端口。我們這里選擇無線網(wǎng)卡端口進(jìn)行測試。左側(cè)豎向的按鍵代表了該軟件所能實(shí)現(xiàn)的功能。P2PTerminator是對連接在該局域網(wǎng)中的主機(jī)進(jìn)行掃描的,掃描到的信息包含主機(jī)的ip地址、主機(jī)名、MAC地址以及主機(jī)的現(xiàn)時狀態(tài);winshark可以實(shí)現(xiàn)過濾抓包的功能,可以簡單的過濾Tcp包、Udp包、Arp和http包等。一般過濾的默認(rèn)格式是srchost00andtcp,改變IP地址和過濾方式,就可以進(jìn)行個性化過濾抓包。5.1.2網(wǎng)卡的掃描/選擇打開上面的橫向菜單欄,選擇WinPcap掃描出來的本機(jī)網(wǎng)卡。只有在選擇了網(wǎng)卡之后,才能進(jìn)行相應(yīng)的數(shù)據(jù)操作。下拉條中列出了本機(jī)的所有網(wǎng)卡,選中其中的一種網(wǎng)卡,點(diǎn)擊右上角的‘打開適配器’按鍵,就可以打開相應(yīng)的網(wǎng)卡端口,掃描結(jié)果如圖5.2所示。圖主機(jī)信息掃描圖5.3當(dāng)選定網(wǎng)卡打開適配器的時候,左下角就會開始獲取本機(jī)的信息,直到顯示獲取本機(jī)信息完畢字樣。此次獲取的本機(jī)信息包含下方的本機(jī)ip、掩碼、MAC地址、和主機(jī)數(shù),網(wǎng)關(guān)以及實(shí)時網(wǎng)速,如圖5.3中的紅色標(biāo)框所示。5.1.4局域網(wǎng)主機(jī)掃描圖5.4如圖5.4所示,本軟件利用ARP協(xié)議,自動遍歷本網(wǎng)段內(nèi)的所有活躍主機(jī),并把它們的MAC值和IP地址列出來。對于本網(wǎng)段內(nèi)主機(jī)的掃描,采用了發(fā)送UDP報(bào)文給本網(wǎng)段內(nèi)所有主機(jī),在規(guī)定時間內(nèi)查看是否有響應(yīng)的方式來判斷5.1.5過濾抓包圖5.6圖5.7如圖5.6、5.7所示,就是網(wǎng)絡(luò)數(shù)據(jù)處理工具對tcp包過濾抓取的過程展示。圖5.8圖5.9同樣如圖5.8、5.9所示,也可以對arp包、udp包進(jìn)行過濾抓取過程展示。5.1.7實(shí)時網(wǎng)速顯示功能圖5.10上方圖片中標(biāo)記為紅色方框的就是掃描到的端口網(wǎng)速的實(shí)時顯示。5.2測試的意義及目的一般的對于一個實(shí)現(xiàn)了的軟件,我們需要在不同的操作系統(tǒng)上對它進(jìn)行調(diào)試和運(yùn)行,只有這樣,才能增加軟件的成熟度,供客戶更好的使用。而且從長遠(yuǎn)來看,軟件的測試也可以更好地分析軟件與它的子軟件之間的矛盾,同時也可以分析出軟件與合同文件上的要求是否符合。5.3測試步驟測試是一種值得探討的事,有多門分類和很多的技巧。由于本軟件的所有功能都不需要對其他的用戶開放,涉及到的與別的主機(jī)的交互方面的事我們在本次的實(shí)驗(yàn)中不做升入了解。本次實(shí)驗(yàn)中我們只是設(shè)計(jì)的功能是對個人主機(jī)的適配器端口進(jìn)行數(shù)據(jù)處理,其中包括主機(jī)掃描、網(wǎng)速實(shí)時顯示、過濾抓包等功能,該軟件也不會對其他的用戶主機(jī)開放。鑒于此,本論文的結(jié)尾我想對軟件進(jìn)行四個方面的測試,其中包括了手工調(diào)試、單元調(diào)試、集成調(diào)試和系統(tǒng)調(diào)試等。只有這樣,我們才能對軟件在各個系統(tǒng)中的正常運(yùn)行做出保證。開始進(jìn)行的是單元測試,主要是利用斷點(diǎn)對程序的各個功能模塊進(jìn)行測試,盡量做到將每一個函數(shù)的測試完,檢查每一個單元,從而以保證他們能夠?qū)崿F(xiàn)它們相應(yīng)的功能用途。第二部就是進(jìn)行手工測試,手工測試就是逐步對軟件的參數(shù)進(jìn)行設(shè)置,然后運(yùn)行調(diào)試。例如,在局域網(wǎng)主機(jī)掃描的時候,我們可以對它的起始IP進(jìn)行設(shè)置,當(dāng)超過0~255的區(qū)間時,軟件會提示起始結(jié)束IP地址設(shè)置不規(guī)范。系統(tǒng)測試把已經(jīng)經(jīng)過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 儀表人員培訓(xùn)制度
- 注重班主任教師培訓(xùn)制度
- 最佳培訓(xùn)師激勵制度
- 輔導(dǎo)員培訓(xùn)獎懲制度
- 節(jié)水培訓(xùn)制度
- 醫(yī)院總務(wù)科教育培訓(xùn)制度
- 安全培訓(xùn)處罰制度
- 警校培訓(xùn)制度
- 物理教師培訓(xùn)制度
- 教師培訓(xùn)質(zhì)量監(jiān)控制度
- 酒店清欠協(xié)議書模板模板
- 2025沈陽市消防救援支隊(duì)政府專職消防員招聘160人考試備考試題及答案解析
- 鐵路鐵鞋管理辦法
- 安防監(jiān)控系統(tǒng)維護(hù)與管理方案
- 2025屆重慶八中學(xué)七上數(shù)學(xué)期末復(fù)習(xí)檢測模擬試題含解析
- 2025年廣東省中考語文試卷真題(含答案解析)
- 燙熨治療法講課件
- 2025至2030中國模塊化變電站行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 電廠清潔生產(chǎn)管理制度
- 2025年江蘇省事業(yè)單位招聘考試教師招聘體育學(xué)科專業(yè)知識試題
- 機(jī)械設(shè)計(jì)年終述職報(bào)告
評論
0/150
提交評論