收集并統(tǒng)計(jì)網(wǎng)絡(luò)TCP流量_第1頁(yè)
收集并統(tǒng)計(jì)網(wǎng)絡(luò)TCP流量_第2頁(yè)
收集并統(tǒng)計(jì)網(wǎng)絡(luò)TCP流量_第3頁(yè)
收集并統(tǒng)計(jì)網(wǎng)絡(luò)TCP流量_第4頁(yè)
收集并統(tǒng)計(jì)網(wǎng)絡(luò)TCP流量_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、山東建筑大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計(jì)說(shuō)明書題 目: 收集并統(tǒng)計(jì)網(wǎng)絡(luò)TCP流量課 程: 計(jì)算機(jī)網(wǎng)絡(luò)院 (部): 計(jì)算機(jī)科學(xué)與技術(shù)專 業(yè): 網(wǎng)絡(luò)工程班 級(jí): 學(xué)生姓名: 學(xué) 號(hào): 指導(dǎo)教師: 完成日期: 目 錄課程設(shè)計(jì)任務(wù)書I收集并統(tǒng)計(jì)網(wǎng)絡(luò)TCP流量1一、問(wèn)題描述1二、基本要求1三、設(shè)計(jì)思想1四、系統(tǒng)結(jié)構(gòu)1五、程序流程1六、源程序3七、測(cè)試數(shù)據(jù)5八、測(cè)試情況6結(jié) 論7山東建筑大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計(jì)任務(wù)書設(shè)計(jì)題目收集并統(tǒng)計(jì)網(wǎng)絡(luò)TCP流量已知技術(shù)參數(shù)和設(shè)計(jì)要求1.利用WinPCap進(jìn)行網(wǎng)絡(luò)監(jiān)控。2.系統(tǒng)完成以下功能: (1)利用WinPCap收集流經(jīng)網(wǎng)卡的數(shù)據(jù)。 (2)對(duì)其中的TCP流量

2、進(jìn)行統(tǒng)計(jì)并顯示統(tǒng)計(jì)結(jié)果。 (3)向用戶提供友好的交互界面。 (4)用戶可以方便地中止或繼續(xù)TCP流量的統(tǒng)計(jì)。 (5)系統(tǒng)必須對(duì)出現(xiàn)的問(wèn)題或錯(cuò)誤做出響應(yīng)。3.建議該系統(tǒng)利用VC+實(shí)現(xiàn)。設(shè)計(jì)內(nèi)容與步驟1.回顧開發(fā)工具的基本使用方法;2.學(xué)習(xí)WinPCap編程的基本方法;3.TCP流量統(tǒng)計(jì)系統(tǒng)框架結(jié)構(gòu)設(shè)計(jì);4.TCP流量統(tǒng)計(jì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)6.課程設(shè)計(jì)任務(wù)說(shuō)明書設(shè)計(jì)工作計(jì)劃與進(jìn)度安排1.學(xué)習(xí)WinPcap流量統(tǒng)計(jì)編程的基本方法 4小時(shí)2.程序設(shè)計(jì)以及調(diào)試方法 2小時(shí)3.TCP流量統(tǒng)計(jì)系統(tǒng)框架結(jié)構(gòu)設(shè)計(jì) 4小時(shí)4.TCP流量統(tǒng)計(jì)系統(tǒng)設(shè)計(jì) 16小時(shí) 5.課程設(shè)計(jì)說(shuō)明書 14小時(shí)設(shè)計(jì)考核要求1.出勤 202

3、.答辯或演示303.課程設(shè)計(jì)說(shuō)明書 50收集并統(tǒng)計(jì)網(wǎng)絡(luò)TCP流量一、問(wèn)題描述編程實(shí)現(xiàn)簡(jiǎn)單的TCP流量統(tǒng)計(jì)器,TCP流量統(tǒng)計(jì)器通過(guò)各種科學(xué)的方式,準(zhǔn)確的紀(jì)錄來(lái)訪某一頁(yè)面的訪問(wèn)者的流量信息,它從局域網(wǎng)中抓取IP數(shù)據(jù)包,并對(duì)它進(jìn)行分析得到相應(yīng)的頭部信息,過(guò)濾TCP包進(jìn)行分析,得到TCP流量信息。二、基本要求1.利用WinPCap進(jìn)行網(wǎng)絡(luò)監(jiān)控。2.系統(tǒng)完成以下功能: (1)利用WinPCap收集流經(jīng)網(wǎng)卡的數(shù)據(jù)。 (2)對(duì)其中的TCP流量進(jìn)行統(tǒng)計(jì)并顯示統(tǒng)計(jì)結(jié)果。 (3)向用戶提供友好的交互界面。 (4)用戶可以方便地中止或繼續(xù)TCP流量的統(tǒng)計(jì)。 (5)系統(tǒng)必須對(duì)出現(xiàn)的問(wèn)題或錯(cuò)誤做出響應(yīng)。3.建議該系統(tǒng)利

4、用VC+實(shí)現(xiàn)。三、設(shè)計(jì)思想 TCP流量統(tǒng)計(jì)器通過(guò)Jpacp與winpcap來(lái)進(jìn)行抓包,JPCAP調(diào)用wincap,而給 JAVA語(yǔ)言提供一個(gè)公共的接口,WinPcap是用于網(wǎng)絡(luò)封包抓取的一套工具,調(diào)用loopPackage獲取數(shù)據(jù)包。四、系統(tǒng)結(jié)構(gòu) 首先用getDeviceList()方法獲取網(wǎng)卡設(shè)備號(hào),在用openDevice()方法打開指定設(shè)備,然后開始用loopPacket()方法獲取數(shù)據(jù)包,最后進(jìn)行輸出。五、程序流程首先獲取設(shè)備然后打開設(shè)備之后獲取數(shù)據(jù)包最后進(jìn)行輸出,具體的流程圖如下:編寫構(gòu)造方法監(jiān)聽動(dòng)作事件獲取設(shè)備列表監(jiān)聽動(dòng)作事件終止 開始 打開指定設(shè)備獲取數(shù)據(jù)包輸出開始獲取設(shè)備列表:

5、final NetworkInterface devices = JpcapCaptor.getDeviceList();打開指定設(shè)備:JpcapCaptor jpcap = JpcapCaptor.openDevice(ni, 2000, true,20);獲取數(shù)據(jù)包:this.jpcap.loopPacket(-1, new ReceivePacket(this.ipAddr);輸出信息:Tcpflowstatistics.jta.append(TCPPacket+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的源IP地址: + tcp.src_ip+n);T

6、cpflowstatistics.jta.append(|*此數(shù)據(jù)包的目的IP地址: + tcp.dst_ip+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的發(fā)送端口號(hào): + tcp.src_port+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的接收端口號(hào): + tcp.dst_port+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的源MAC地址: + ethernetPacket.getSourceAddress()+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的

7、目的MAC地址: + ethernetPacket.getDestinationAddress()+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的傳輸層協(xié)議類型: + tocol + (TCP)+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的長(zhǎng)度: + tcp.len+n);六、源程序public class Tcpflowstatistics private static Tcpflowstatistics ts;private boolean flag = true;JFrame jf;JButton bt1,

8、bt2, bt3, bt4;static JTextArea jta;JScrollPane jsp;JPanel jp1;Tcpflowstatistics() jf = new JFrame(TGP流量統(tǒng)計(jì)器);jf.setLayout(new BorderLayout();jf.setVisible(true);jf.setSize(800, 600);jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jta = new JTextArea();jp1 = new JPanel();bt1 = new JButton(開始);bt2 =

9、new JButton(終止);jsp = new JScrollPane();jsp.setViewportView(jta);jp1.add(bt1);jp1.add(bt2);bt1.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) bt1Action(e););bt2.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) bt2Action(e););jf.add(

10、jp1, BorderLayout.NORTH);jf.add(jsp, BorderLayout.CENTER);public static void main(String args) / 啟動(dòng)統(tǒng)計(jì)線程new Tcpflowstatistics();public void init() / 獲取本機(jī)上的網(wǎng)絡(luò)接口對(duì)象final NetworkInterface devices = JpcapCaptor.getDeviceList();/獲取設(shè)備列表for (int i = 0; i 0) / 一個(gè)網(wǎng)卡可能有多個(gè)地址,只獲取第一個(gè)String addr = ni.addresses0.add

11、ress.toString();try / 創(chuàng)建卡口上的抓取對(duì)象JpcapCaptor jpcap = JpcapCaptor.openDevice(ni, 2000, true,20);LoopPacketThread lpt = new LoopPacketThread(jpcap, addr);lpt.start();jta.append(addr + 上的采集線程已啟動(dòng)! + n); catch (IOException e) e.printStackTrace();System.out.println(抓取數(shù)據(jù)包時(shí)出現(xiàn)異常!);public void bt1Action(Action

12、Event e) init();public void bt2Action(ActionEvent e) System.exit(0);public class LoopPacketThread extends Thread private JpcapCaptor jpcap = null;private String ipAddr = ;public LoopPacketThread(JpcapCaptor jpcap, String ipAddr) this.jpcap = jpcap;this.ipAddr = ipAddr;/ -1表示永久抓包public void run() thi

13、s.jpcap.loopPacket(-1, new ReceivePacket(this.ipAddr);/監(jiān)聽捕獲包public class ReceivePacket implements PacketReceiver private String ipAddr = ;public ReceivePacket(String ipAddr) this.ipAddr = ipAddr;public void receivePacket(Packet packet) / 如果截獲的包為TCP包if (packet instanceof jpcap.packet.TCPPacket) /判斷其左

14、邊對(duì)象是否為其右邊類的實(shí)例,返回boolean類型的數(shù)據(jù)TCPPacket tcp = (TCPPacket) packet;/轉(zhuǎn)化為響應(yīng)實(shí)例EthernetPacket ethernetPacket=(EthernetPacket)packet.datalink;Tcpflowstatistics.jta.append(=+n);Tcpflowstatistics.jta.append(TCPPacket+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的源IP地址: + tcp.src_ip+n);Tcpflowstatistics.jta.append(|*此

15、數(shù)據(jù)包的目的IP地址: + tcp.dst_ip+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的發(fā)送端口號(hào): + tcp.src_port+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的接收端口號(hào): + tcp.dst_port+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的源MAC地址: + ethernetPacket.getSourceAddress()+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的目的MAC地址: + ethernetPacket.getDe

16、stinationAddress()+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的傳輸層協(xié)議類型: + tocol + (TCP)+n);Tcpflowstatistics.jta.append(|*此數(shù)據(jù)包的長(zhǎng)度: + tcp.len+n);七、測(cè)試數(shù)據(jù)TCPPacket|*此數(shù)據(jù)包的源IP地址:5|*此數(shù)據(jù)包的目的IP地址:34|*此數(shù)據(jù)包的發(fā)送端口號(hào):64060|*此數(shù)據(jù)包的接收端口號(hào):80|*此數(shù)據(jù)包的源MAC地址:f4:6d:04:23:a9:da|*此數(shù)據(jù)包的目的MAC地址:14:14:4b

17、:19:ec:3b|*此數(shù)據(jù)包的傳輸層協(xié)議類型:6(TCP)|*此數(shù)據(jù)包的長(zhǎng)度:66=TCPPacket|*此數(shù)據(jù)包的源IP地址:5|*此數(shù)據(jù)包的目的IP地址:34|*此數(shù)據(jù)包的發(fā)送端口號(hào):64061|*此數(shù)據(jù)包的接收端口號(hào):80|*此數(shù)據(jù)包的源MAC地址:f4:6d:04:23:a9:da|*此數(shù)據(jù)包的目的MAC地址:14:14:4b:19:ec:3b|*此數(shù)據(jù)包的傳輸層協(xié)議類型:6(TCP)|*此數(shù)據(jù)包的長(zhǎng)度:66=八、測(cè)試情況 程序運(yùn)行結(jié)果圖: 結(jié) 論為期兩周的課程設(shè)計(jì)在老師和自己的努力下很快地結(jié)束了,在此期間老師給了我們很大的幫助,在老師的指

18、導(dǎo)之余我還認(rèn)真學(xué)習(xí)了其它課本上未曾提到過(guò)的知識(shí),比如說(shuō)網(wǎng)絡(luò)編程方面的知識(shí),這是我們以前所沒(méi)有接觸過(guò)的,雖然說(shuō)這給了我們很大的一個(gè)問(wèn)題但是也同時(shí)給了我們一個(gè)很好的挑戰(zhàn)自己的機(jī)會(huì),以前從未聽過(guò)Winpcap,現(xiàn)在道了它對(duì)于捕我知獲網(wǎng)絡(luò)上的一些數(shù)據(jù)信息很有幫助,從而豐富了我的知識(shí),同時(shí)也知道了如何去利用它來(lái)為自己服務(wù),這是一個(gè)很大的進(jìn)步。在自己查找資料的同時(shí)也鍛煉了我及時(shí)捕獲有用知識(shí)的能力,我想這是我現(xiàn)在乃至以后最大的一個(gè)財(cái)富,一個(gè)人最重要的就是要懂得如何去學(xué),學(xué)習(xí)不是被動(dòng)的,而是主動(dòng)的,只有這樣我們才能學(xué)得到對(duì)于我們自己有幫助的東西,用JAVA編程實(shí)現(xiàn)TCP數(shù)據(jù)報(bào)流量統(tǒng)計(jì),開始這對(duì)于我來(lái)說(shuō)是是一個(gè)很模糊的概念,但是當(dāng)我在查找了很多資料之后我不再迷茫,而是慢

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論