版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、安徽工業(yè)大學畢業(yè)設計(論文)說明書專 業(yè)網絡工程班 級網12*班姓 名學 號129074*指導教師二 O 一 六 年 六 月 十六 日安徽工業(yè)大學畢業(yè)設計(論文)任務書課題名稱*設計與實現學 院計算機科學與技術學院專業(yè)班級網絡工程12*班姓 名學 號129074*畢業(yè)設計(論文)的主要內容及要求: 1)熟悉相關技術和原理; 2)熟練掌握; 3)理解; 4)完成畢業(yè)設計說明書(畢業(yè)論文)一份; 5)完成3000字左右與設計內容相關的外文資料翻譯。 指導教師簽字: 安徽工業(yè)大學畢業(yè)設計(論文)說明書摘 要網絡技術的發(fā)展使社會進入了信息時代。在網絡技術高速發(fā)展的同時,其存在的一些安全問題也困擾著工程
2、人員和廣大網民。因此,研發(fā)一種可實時捕獲網絡數據包并進行分析的軟件具有重要的意義。本軟件在Linux環(huán)境下開發(fā),使用Qt Creator開發(fā)工具和Libpcap函數庫,實現了對以太網數據包的抓取和結構分析,能將數據包內部協議分層在界面以樹狀顯示并打印數據包字符信息,且可將捕獲的數據包寫入文件或解析一個數據包文件,同時實現了一些簡單的統計功能,包括抓包總體情況、IP流量統計和TCP流跟蹤。本文針對網絡數據包的捕獲和分析問題進行了研究和探討,介紹了數據包捕獲中的相關技術,并對數據包捕獲、數據包分析、數據包信息顯示、統計等模塊進行了詳細敘述和說明。關鍵詞:Linux;Qt Creator;libpc
3、ap;協議分層;數據包捕獲【注意:中文摘要一般在200-300字以內,關鍵詞3-5個】IAbstractThe development of network technique urged the society passed into age of information. The network technique developed at a rapid speed, meanwhile, nternet users and engineers were plagued by the security issue the network technique may exists. The
4、refore, it makes sence to develop a software which can capture network packets timely and analyze it.This software is developed in the Linux environment, using Qt Creator IDE and licbpcap library, accomplishing capture and structural analysis to ethernet data packet. It can show the internal protoco
5、l layer information in the form of tree in the GUI and print character information of packet. Also this software can dump packet into file and resolve a packet file. At the same time, it is able to implement some simple statistic functions, including summary, IP traffic statistic and follow TCP stre
6、am.This paper carried out study and inquiry aiming at the capture and analysis of ethernet packet, introduced some technology related to capture of packet and explicated module of packet capture, packet analysis, packet infomation display and statistic in detail.Keywords: Linux; Qt Creator; libpcap;
7、 protocal layer; packet capture【各位同學請注意:英文摘要中應采用英文標點,標點后面要跟一個空格!】II安徽工業(yè)大學畢業(yè)設計(論文)說明書目 錄1.緒論11.1課題背景11.2課題意義11.3論文結構22.開發(fā)環(huán)境及相關技術介紹32.1開發(fā)環(huán)境32.2相關技術32.2.1信號和槽機制33.需求分析54.軟件的總體設計64.1軟件的功能分析64.2軟件的流程分析74.2.1抓包分析和保存文件流程74.2.2抓包線程的流程85.軟件的具體實現95.1項目配置95.2重要數據結構說明9結束語10參考文獻11致謝12附錄一 部分代碼13附錄二 系統開發(fā)環(huán)境16【注意:目錄
8、的字體采用自動生成的字體】I1. 緒論1.1 課題背景Internet的最早起源于美國國防部高級研究計劃署DARPA(Defence Advanced Research Projects Agency)的前身ARPAnet,當時主要用于軍事用途。20世紀下半葉以來,聯合計算機公司和大學加入研究,共同研制發(fā)展起來的ARPAnet網絡,推動了網絡技術的發(fā)展和商業(yè)化。20世紀末期,互聯網在中國長出萌芽,一些科研部門和高等院校開始研究Internet聯網技術。1997年至今,互聯網在中國已得到了迅速的發(fā)展。在網絡技術不斷取得進步與普及的同時,信息化的迅猛發(fā)展也帶來諸多網絡安全威脅等伴生性問題,網絡安全
9、和信息安全問題引起了廣大網名和互聯網公司的注意和擔憂。國家計算機網絡應急技術處理協調中心于2014發(fā)布的2014年中國互聯網網絡安全報告顯示,2014年CNCERT/CC協調處置涉及基礎電信企業(yè)的漏洞事件1578起,是2013年的3倍。CNVD8收錄與基礎電信企業(yè)軟硬件資產相關的漏洞825個,其中與路由器、交換機等網絡設備相關的漏洞占比達66.2%,主要包括內置后門、遠程代碼執(zhí)行等類型。我國基礎網絡仍存在較多漏洞風險,云服務日益成為網絡攻擊的重點目標。域名系統面臨嚴峻的拒絕服務攻擊,針對重要網站的域名解析篡改攻擊頻發(fā)。網絡攻擊威脅日益向工業(yè)互聯網領域滲透,已發(fā)現我國部分地址感染專門針對工業(yè)控制
10、系統的惡意程序事件。分布式反射型的拒絕服務攻擊日趨頻繁,大量偽造攻擊數據包來自境外網絡。針對重要信息統、基礎應用和通用軟硬件漏洞的攻擊利用活躍,漏洞風險向傳統領域、智能終端領域泛化演進。網站數據和個人信息泄露現象依然嚴重,移動應用程序成為數據泄露的新主體。移動惡意程序不斷發(fā)展演化,環(huán)境治理仍然面臨挑戰(zhàn)。 見參考文獻2.1.2 課題意義通過本課題,可以了解到TCP/IP協議棧中對各層PDU的封裝格式,并通過對各層SDU的定義和解析,加深了對計算機網絡中數據包封裝的理解;通過抓包并分析的過程,加深了對線程的理解并提高了使用能力;通過前臺界面Qt Creator開發(fā)環(huán)境的使用,提高了對Qt各種控件和
11、界面設計的理解。通過在Qt下對C和C+代碼的整合與使用,加深了對面向對象思想和模塊化軟件設計的理解;通過本課題,可以加強發(fā)現、分析、解決和綜合處理問題的能力。1.3 論文結構本論文正文內容共分為五個部分:1)緒論,主要介紹了本課題的研究背景和意義。2)相關技術介紹,主要介紹了系統開發(fā)所用相關技術。3)軟件需求分析。4)軟件的總體設計,主要包括各個模塊(抓包模塊,分析模塊,打印模塊等)的大體介紹。5)軟件具體實現,是論文的主體部分。這部分從界面到后臺詳細介紹了抓包、分析、打印和統計的實現過程。第 17 頁 共 16 頁2. 開發(fā)環(huán)境及相關技術介紹2.1 開發(fā)環(huán)境本軟件在Linux環(huán)境下開發(fā),采用
12、的Linux發(fā)行版本為Ubuntu15.10。所使用的Qt版本為Qt Creator 3.5.0。2.2 相關技術2.2.1 信號和槽機制信號是Qt中對事件的一種抽象,當一個事件發(fā)生時,會發(fā)射信號,并執(zhí)行與其相關聯的槽函數。信號采用函數的形式,當所有與信號關聯的函數全部返回時,信號函數才會返回。此外,信號函數只有頭文件中函數的聲明,而沒有函數的定義??梢匀绱寺暶饕粋€信號:signal: void Mysignal(parameter list.);可以使用emit Mysignal() 來手動發(fā)射此信號。槽是Qt中負責處理信號的實體函數。當有信號發(fā)射時,與信號相關聯的槽函數會依次執(zhí)行。槽也是采
13、用函數的形式,不過需要實際的定義。槽的聲明形式如下:slot: void Myslot(parameter list);在Qt的基類QObject中有一個成員函數來完成信號和槽的映射,其函數原型如下:#include <QObject>Static bool QObject:connect(const QObject *sender, const char *signal,const QObject *receiver, const char *member);表2-1 部門信息表列名數據類型描述是否主鍵是否外鍵是否為空IDInt(4)編號(自增)是NumberChar(4)部門號
14、(唯一)是Namevarchar(10)部門名稱SexChar(1)性別AgeInt(4)年齡 UserIDvarchar(10)身份證號否續(xù)表2-1列名數據類型描述是否主鍵是否外鍵是否為空Addressvarchar(50)家庭住址Firmvarchar(50)公司名稱Hobbyvarchar(10)個人愛好3. 需求分析隨著計算機成本的不斷下降和性能的不斷提升,以及互聯網在世界范圍內的普及,網絡成為了在信息交換過程中被使用的最多的媒介。網絡在帶給人們極大的便利同時,存在著許多安全的隱患。有些不法分子,利用一些木馬軟件,挾持計算機的通信端口,訪問一些含有不良內容的網站,或者盜取用戶的個人隱私
15、和信息,這在很大程度影響了網名的生活,甚至可能造成重大的損失,如個人賬戶密碼泄露、銀行卡被盜刷、隱私泄露等。網絡安全的形勢不容樂觀。在此情況下,網絡數據抓包分析軟件的重要性不言而喻。本軟件的設計的目的主要在于對網卡上傳輸的數據包進行捕獲,從中得到經過所有被監(jiān)聽網卡的數據包,并對數據包的各協議首部字段進行解析以大致了解數據包的內容,從而達到基本的維護網絡安全的作用。PC用戶和網絡管理員只有對捕獲的數據進行一系列的分析,才能進行可靠的網絡管理。IP協議是TCP/IP協議族中最為核心的協議。所有的TCP、UDP、ICMP及IGMP協議的數據都封裝在IP報文中進行傳輸,而且傳輸層中TCP和UDP兩種類
16、型的數據占絕大多數。本軟件著重對TCP和UDP的報文進行了解析。同時,因為ARP攻擊能夠在網絡中產生大量的ARP通信量使網絡阻塞,本軟件專門針對ARP包進行了解析。同時本軟件還具有完備的過濾功能,可以接收到想要的數據包而過濾掉一些無用的數據包,從而高效地進行分析。IP流量的統計算法以偽代碼描述如下:while(還有數據包)從PktList中取出數據包;If 沒有數據包或數據包不完整 break;If 不是IP數據包 continue;從數據包中取出源IP地址和目的IP地址;計算該數據包的IP數據報的長度size_ip;將size_ip累加到mapIn目的IP中;將size_ip累加到mapOu
17、t源IP中;下一個數據包;4. 軟件的總體設計軟件總體設計的主要任務就是根據總體目標和功能,劃分好對應的模塊,實現各自模塊的功能,協調好處理模塊之間的關系,并向主界面?zhèn)鬟f數據以顯示。4.1 軟件的功能分析本軟件需要實現的功能主要有:(1) 在以太網接口上捕獲數據包;(2) 可以設置過濾器對捕獲到的數據包進行過濾;(3) 將捕獲到的數據包的主要信息填入到QTablewiget中并在界面上顯示,顯示的主要信息包括:源MAC地址,目的MAC地址,源IP地址,目的IP地址,協議,報文長度。目前已能識別的協議主要有:TCP、UDP、IP、ICMP、IGMP、ARP、PPP。(4) 通過點擊數據包可以在Q
18、TreeView中生成相應數據包的樹形的協議字段解析。目前能夠解析的數據包首部類型為:以太網數據幀首部、ARP報文、IP報文首部、TCP報文首部、UDP報文首部。(5) 在QTextEdit中顯示整個數據包的十六進制信息及相應的ASCII碼,使用戶能夠對數據包有大致的了解。(6) 能夠將捕獲的數據包保存至文件中,并且保存的文件可以被其他抓包分析軟件(如Wireshark等)打開。(7) 可以打開其他抓包軟件保存下來的數據包,并顯示在界面上,并能夠響應點擊事件以顯示協議字段的解析和數據包內容打印。(8) 實現一些簡易的統計功能,主要包括:數據包文件地址及大小信息、數據包捕獲時間、捕獲時間跨度、操
19、作系統信息、抓包接口信息、數據包流量統計等,并能夠統計各個IP地址上經過的數據包流量。(9) 可以對TCP連接進行跟蹤,以觀察分析TCP建立連接的3次握手、數據傳輸和中斷連接的4次握手過程。(10) 提供一份簡易的軟件使用說明書。4.2 軟件的流程分析4.2.1 抓包分析和保存文件流程為了更清楚地說明本軟件的運行流程,使用戶對本軟件有一個整體上的初步認識,在此處特意給出本軟件的運行流程圖,如圖4-1所示。主界面QTextEdit保存為文件,后綴為.pcapQTableWidget接收線程傳遞過來的數據并以行的表格的形式顯示數據包信息QTreeviewstart運行由Qt線程和libpcap庫實
20、現的抓包線程當QTableWiget中的項目被點擊時,在Tree中樹狀顯示數據包的封裝層次響應點擊事件打印整個數據包的十六進制信息和ASCII碼信息將線程傳遞過來的數據包保存在一個數據包數組中以實現隨機訪問。圖4-1 本軟件的主要運行流程當點擊工具欄中的start按鈕時,會生成一個Qt線程,該線程會監(jiān)聽選擇的網卡接口,負責抓包并對數據包做簡單的解析。每抓到一個包,線程會將與該數據包相關的數據通過信號傳遞給主界面,以填充QTableWidget。同時,該線程會將抓到的數據包寫入文件,已供其他抓包軟件分析。當點擊QTableWidget中的某一項時,會在QTreeview中以樹形目錄的形式顯示每一
21、層的封裝的首部信息,并解析對應的字段信息。同時會在QTextEdit中打印整個數據包的十六進制信息和ASCII碼。4.2.2 抓包線程的流程抓包線程接收從主界面中傳來的參數,包括選擇的網卡接口、過濾器和已經打開的數據包捕獲句柄,然后執(zhí)行。每接收到一個數據包就發(fā)送一個信號給主函數,信號中包含了捕獲到的數據包的部分信息。主界面中有一個與該信號相連接的槽函數,負責處理線程抓到的數據包,并予以保存和解析。其流程如圖4-2所示。圖4-2 抓包線程流程圖 5. 軟件的具體實現本部分主要介紹本軟件的主要功能的實現。5.1 項目配置由于許多Linux的發(fā)行版本不自帶Libpcap庫,需要先安裝Libpcap函
22、數庫。在/下載libpcap源碼(tcpdump的源碼也可以從這個網站下載),解壓之后用命令行安裝:./configuremakesudo make install用Qt Creator創(chuàng)建項目后,因為Qt沒有連接我們需要的Libpcap庫,需要在工程配置文件中添加如下一行以手動連接到LIbpcap庫:LIBS += -L/usr/local/lib -lpcap 同時,由于LIbpcap庫函數的執(zhí)行需要root權限,用Qt Creator編譯生成可執(zhí)行文件后,需進入工程的bulid目錄,以sudo運行可執(zhí)行文件方可正常運行。5.2 重要數據結構說明為
23、了實現對已捕獲數據包的隨機訪問,以在QTreeView和QTextEdit中顯示數據包內容,需將已捕獲的數據包及某些攜帶信息保存在數組中。一些重要的數據定義如下:#include “capture.h” u_char PktListMAX_CAPSNAP_LEN;int LenthOfPktMAX_CAP;struct pcap_pkthdr HeadersMAX_CAPsizeof(struct pcap_pkthdr);其中字符串數組PktList存放所有已捕獲數據的字符流信息,MAX_CAP和SNAP_LEN為定義在頭文件capture.h中的宏,MAX_CAP等于65535,表示最大抓
24、包數為65536,即一次最多捕獲這個數量的包;SNAP_LEN等于1518,為以太網幀的最大長度。Int型數組LenthOfPkt保存與其下標相對應的數據包的長度。數據包首部數組Headers保存的是與其下標相對應的數據包的一些攜帶信息,如數據包長度、已捕獲的長度以及數據包到達的時間戳等。結束語因為大四下學期開始忙著考研復試,沒有時間準備畢業(yè)設計,而且考研的一年中代碼碰的很少,導致畢設的進度十分緩慢。后來在振華圖書館找了很多有關Qt編程和計算機網絡方面的書,經過一段時間的編程學習,以及老師的幫助,逐漸找回了編程的感覺,畢設的工作也逐漸走上了正軌。此次畢業(yè)設計,對我來說是一次很好的磨練。從開始的
25、心浮氣躁到后來的沉下心,我得到了很多提高。能夠憑借自己的努力和老師的幫助完成這個軟件,我得到了極大的鼓舞,不僅學到了很多新的知識,還復試了很多計算機網絡方面的知識,同時我的實踐操作能力也得到了很大的提高。這將對我研究生階段的學習產生很大的幫助,包括技術方面和個人素質方面。參考文獻1 (英)馬修(Matthew, N.), (英)斯通斯(Stones). Linux程序設計M. 人民郵電出版社, 2015.06.2 國家計算機網絡應急技術處理協調中心.2014年中國互聯網網絡安全報R. /AnnualReport.pdf,2015.06.3 W. Richard Stevens & St
26、ephen A.Rago. Advanced Programming in the UNIX Environment,Third EditionM.Addison-Wesley,2013-05.4 W. Richard Stevens & Bill Fenner & Andrew M. Rudoff.Unix Network Programming, Volume 1M.Addison-Wesley Professional, 2003-11.5 邱鐵,周玉,張民壘.Linux環(huán)境下Qt4圖形界面與MySQL編程M. 北京:機械工業(yè)出版社,2012.3.6 陸文周.Qt5開發(fā)及
27、實例M. 北京:電子工業(yè)出版社,2014.1.7 Han X, Kong X. The Designing of Serial Communication Based on RS232C Cryptography, and Network Security, Data Mining and Knowledge Discovery, E-Commerce and Its Applications, and Embedded Systems, IACIS International Symposium on. IEEE, 2010:382-384.8 謝希仁.計算機網絡(第6版)M. 北京:電子工
28、業(yè)出版社,2013.6.9 閆麗麗,涂天祿,周興濤.Libpcap數據包捕獲機制剖析與研究J.網絡安全技術與應用,2006(4):38-40【要求:參考文獻8篇以上,其中近三年參考文獻不少于3篇,外文文獻不少于2篇?!俊疽螅和馕姆g的文獻應列入參考文獻】致謝隨著畢業(yè)設計進度逐漸完成和畢業(yè)論文字數的節(jié)節(jié)攀升,我的大學生活馬上就要結束了。前一陣子拍完了畢業(yè)照,或許那是全班同學最后的一次齊聚了。在完成畢設很論文的幾個月里,我在代碼的世界里摸索爬行,跌跌撞撞。首先要感謝我的指導老師*老師。在畢業(yè)設計開始階段,我跟老師說我要準備考研復試,畢設可能要推遲一點了,老師爽快的說你這個月先不用管畢設的事了,這
29、讓我十分感動。在被錄取后,我開始了畢業(yè)設計的工作,老師對我的工作十分關心,會定期檢查我的進度。在完成畢設的過程中,遇到問題時我會積極與老師交流,老師也給我提出了很多有用的意見。其次我要感謝大學四年中每一個教導我的老師和學長學姐。他們在學習和生活上教給我很多有用的知識,提高了我的能力,這讓我有能力完成畢業(yè)設計。我也要感謝我的父母,感謝他們的關心和教育。最后,我由衷的感謝評閱老師*老師,謝謝您!附錄一 部分代碼1. 獲取網卡接口:for (device = alldevsp; device != NULL; device = device->next) sprintf(info,"
30、%d. %s - %sn", count, device->name, device->description); if (device->name != NULL) strcpy(devscount, device->name); QStandardItem *item = new QStandardItem(info); if(count % 2 = 1) QLinearGradient lg(QPointF(0,0), QPointF(200,200); lg.setColorAt(0,Qt:gray); QBrush brush(lg); item-&
31、gt;setBackground(brush); model->appendRow(item); count+; ui->listView->setModel(model);2. 抓包線程主體部分 while (1) if(run_flag = false) break; pcap_loop(g_phandle,1,pcap_handle,(u_char *)fileptr); pcap_dump_flush(fileptr); /write to file emit signalpcap(msStrSurIpInfo,msStrSurMacInfo, msStrDestIp
32、Info,msStrDestMacInfo, msStrProto,msStrPackLen,g_pPktdata,g_pHeader); 3. IP流量統計算法實現while(i < pkt_count) const u_char *packet = PktListi+; /data packet if(LenthOfPkti < 14) break; ETHHEADER *ether = (ETHHEADER*)packet; if(ntohs(ether->Etype) != PRO_IP ) continue; /build a IP packet IPHEADER
33、*iphdr = (IPHEADER*)(packet + SIZE_ETHERNET); /get src ip and dst ip QString srcIP = QString(inet_ntoa(iphdr->ip_src); QString dstIP = QString(inet_ntoa(iphdr->ip_dst); /get size of packet int ipSize = ntohs(iphdr->ip_len); /make map from ip addr and traffic if(mapIn.contains(dstIP) mapIndstIP += ipSize; else / first time mapIndstIP = 0; map
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度廣場物業(yè)管理服務承包合同
- 2025合同模板農副產品購銷合同
- 2025年一般干掛石材采購合同模板(三篇)
- 2025廣告制作安裝合同
- 二零二五年度碎石行業(yè)風險管理合同
- 2025年個人委托人事代合同范文(2篇)
- 2025幼兒園租賃合同樣板
- 2025出租車承包合同范文
- 2025藥品集中招標采購合同范本(試行)
- 二零二五年度停薪留職員工保密協議合同
- 【人教版化學】必修1 知識點默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學年八年級上學期期末數學試題(原卷版)
- 《奧特萊斯業(yè)態(tài)淺析》課件
- 老年癡呆癥患者生活陪護協議
- 2024年-急診氣道管理共識課件
- 小學語文中段整本書閱讀的指導策略研究 中期報告
- 浙教版2023-2024學年數學八年級上冊期末復習卷(含答案)
- 運動訓練與康復治療培訓資料
- 小班繪本教學《藏在哪里了》課件
- 老師呀請你別生氣教學反思
評論
0/150
提交評論