收集并统计网络TCP流量winpcap_第1页
收集并统计网络TCP流量winpcap_第2页
收集并统计网络TCP流量winpcap_第3页
收集并统计网络TCP流量winpcap_第4页
收集并统计网络TCP流量winpcap_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、欣集并统计网络TCPTCP流itit winpcapwinpcap文档编制序号:KK8qyKK8qy LL9IO69LL9IO69 TTO6M3TTO6M3 MTOL89MTOL89 FTT688FTT688山东建筑大学计算机科学与技术学院山东建筑大学计算机科学与技术学院目:程:(部八业:级:学生姓名:学 号:指导教师:完成日期:课程设计说明书收集并统计网络 TCP 流量计算机网络计算机科学与技术网络工程山东建筑大学计算机科学与技术学院课程设计任务书设计题目收集并统计网络TCPTCP流量已知技术 参数和设 计要求1.利用 WinPCap 进行网络监控。2. 系统完成以下功能:(1)利用 Win

2、PCap 收集流经网卡的数据。(2)对其中的 TCP 流量进行统计并显示统计结果。(3)向用户提供友好的交互界面。(4)用户可以方便地中止或继续 TCP 流量的统计。(5)系统必须对出现的问题或错误做出响应。3.建议该系统利用 VC+实现。设计内容 与步骤1.回顾开发工具的基本使用方法;2. 学习 WinPCap 编程的基本方法;3.TCP 流量统计系统框架结构设计:4.TCP 流量统计系统的设计与实现6.课程设计任务说明书设计工作计划与进度安排1. 学习 WinPcap 流量统计编程的基本方法 4 小时2.程序设计以及调试方法2 小时3.TCP 流量统计系统框架结构设计4 小时4.TCP 流

3、量统计系统设计16 小时5.课程设计说明书14 小时山东建筑大学计算机科学与技术学院设计考核要求1.出勤20%2. 答辩或演示 30%3.课程设计说明书 50%收集并统计网络TCPTCP流量一、问题描述编程实现简单的 TCP 流量统计器,TCP 流量统计器通过各种科学的方式,准确的 纪录来访某一页面的访问者的流量信息, 它从局域网中抓取 IP 数据包, 并对它进行 分析得到相应的头部信息,过滤 TCP 包进行分析,得到 TCP 流量信息。二、基本要求1. 利用 WinPCap 进行网络监控。2. 系统完成以下功能:利用 WinPCap 收集流经网卡的数据。对其中的 TCP 流量进行统计并显示统

4、计结果。 向用户提供友好的交互界面。用户可以方便地中止或继续 TCP 流量的统计。系统必须对出现的问题或错误做出响应。3.建议该系统利用 VC 卄实现。三. 设计思想TCP 流量统计器通过 Jpacp 与 winpcap来进行抓包,JPCAP 调用 wincap,而给 JAVA 语言提供一个公共的接口,WinPcap 是用于网络封包抓取的一套工具,调用 loopPackage 获取数据包。四. 系统结构首先用 getDeviceList ()方法获取网卡设备号,在用 openDevice ()方法打开 指定设备,然后开始用 loopPacket ()方法获取数据包,最后进行输出。五. 程序流程

5、首先获取设备然后打开设备之后获取数据包最后进行输出,具体的流程图如下:(1)(2)(3)(4)(5)winpcapJpcapCaptor. getDeviceList();打开指定设备:JpcapCaptor jpcap = JpcapCaptor, openDevice(ni, 2000, 获取数据包: 输出信息:*此数据包的源 IP 地址: + tcp. src_ip/r/)水此数据包的目的 IP 地址:” + tcp. dst_ip/):*此数据包的发送端口号: + tcp. src_port+);T*此数据包的接收端口号: + tcp. dst_pgt/r);*此数据包的源 MAC 地

6、址 J + ethernetPacket. getSourceAddress()+An);获取设备列表:Networkinterface finaldevices =true, 20);*此数据包的目的 MAC 地址: + ethernetPacket. getDestinationAddress ()+n);*此数据包的传输层协议类型: + tcp. protocol + (TCP)+r);*此数据包的长度:十 tcp.;六、源程序public class Tcpflowstatisties private static Tepflowstatistics ts: private boole

7、an flag = true:JFrame jf;JButton btl, bt2, bt3, bt4;static JTextArea jta;JScrollPane jsp;JPanel jpl;Tepflowstatistics () jf = new JFrame CTGP 流量统计器“); jf. setLayout(new BorderLayout();jf.setVisible(true);jf.setSize(800, 600);jf. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);jta = new JTextArea();j

8、sp. setViewportView(jta);jpL add(btl): jpL add(bt2);btl. addActionListener (new ActionListener() public void actionPerformed(ActionEvent e) btlAction(e);bt2. addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) bt2Action(e):jf. add(jpl, BorderLayout. NORTH): jf. add (jsp

9、, BorderLayout. CENTER):public static void main(String args) /启动统计线程btlbt2jspnewnewnewnewJPanelO;JButtonC 开始 0 ;JButtonC 终止);JScrollPane();new Tcpflowstatistics0:public void init () /获取本机上的网络接口对象 final Networkinterface devices =JpcapCaptor. getDeviceList () ;/获取设备列表for (int i = 0; i devices, length;

10、 i+) Networkinterface ni = devicesEi:/大于零时为有效地址:不抓本机地址/ 一个网卡可能有多个地址,只获取第一个String addr = ni. addresses O. address. toStringO ;try /创建卡口上的抓取对象JpcapCaptor jpcap = JpcapCaptor. openDevice(ni,2000, true,20):LoopPacketThread Ipt = newLoopPacketThread(jpcap, addr);Ipt. start 0;jta. append(addr + 上的米集线程己启 c

11、atch (lOException e) e, printStackTrace ();public void b11Action(ActionEvent e) initO;public void bt2Act ion (Act ionEvent e) System, exit(0);public class LoopPacketThread extends Thread private JpcapCaptor jpcap = null: private String ipAddr = publicLoopPacketThread(JpcapCaptor jpcap, String ipAddr

12、) this, jpcap = jpcap;this. ipAddr = ipAddr:/ -1 表示永久抓包 public void run() public class ReceivePacket implements PacketReceiver private String ipAddr = public ReceivePacket (String ipAddr) this. ipAddr = ipAddr:public void receivePacket(Packet packet) /如果截获的包为 TCP 包TCPPacket tcp = (TCPPacket) packet:

13、/转化为响应实例EthernetPacketethernetPacket=(EthernetPacket)packet, datalink;*此数据包的源 IP 地址: + tcp. src_ip/r)*此数据包的目的 IP 地址: + tcp. dst_ip+Qr);*此数据包的源 MAC 地址:ethernetPacket. getSourceAddress () +n9 ;ethernetPacket. getDestinationAddress () +n9 ;仃 CP)*此数据包的发送端口号:tcp. src_po2rt+n);*此数据包的接收端口号:tcp. dst_po2rt+n

14、);*此数据包的目的 MAC 地址:ff*此数据包的传输层协议类型:+ tcp. protocol +*此数据包的长度: + tcp ;七. 测试数据TCPPacket*此数据包的目的 MAC 地址:14:14:4b:19:ec:3b *此数据包的传输层协议类型:6 仃CP) *此数据包的长度:66*此数据包的发送端口号:64060*此数据包的接收端口号:80*此数据包的源 MAC 地址:f4:6d:04:23:a9:da*此数据包的目的 MAC 地址:14:14:4b:19:ec:3b*此数据包的传输层协议类型:6 仃 CP)*此数据包的长度:66TCPPacket*此数据包的发送端口号:6

15、4061*此数据包的接收端口号:80*此数据包的源 MAC 地址:f4:6d:04:23:a9:da八、测试情况程序运行结果图:为期两周的课程设计在老师和自己的努力下很快地结束了,在此期间老师给了我 们很大的帮助,在老师的指导之余我还认真学习了其它课本上未曾提到过的知识,比 如说网络编程方面的知识,这是我们以前所没有接触过的,虽然说这给了我们很大的 一个问题但是也同时给了我们一个很好的挑战 H 己的机会,以前从未听过 Winpcap, 现在道了它对于捕我知获网络上的一些数据信息很有帮助,从而丰富了我的知识,同 时也知道了如何去利用它来为自己服务,这是一个很大的进步。在自己查找资料的同时也锻炼了

16、我及时捕获有用知识的能力,我想这是我现在乃 至以后最大的一个财富,一个人最重要的就是要懂得如何去学,学习不是被动的,而 是主动的,只有这样我们才能学得到对于我们自己有帮助的东西,用 JAVA 编程实现TCP 数据报流量统计,开始这对于我来说是是一个很模糊的概念,但是当我在查找了 很多资料之后我不再迷茫,而是慢慢跟着我所要找的资料來靠近我所要达到的目标。这是我们每个人所要学会的。这次的课程设计也使我意识到了理论与实践相结合的重要作用,学习到知识应 该应用到实践中。在此次的课程设计过程中,告诉我们要不断地学习计算机方面的知 识,精益求精,如今是信息化的时代,在 Internet 相当发达的今天,网络编程技术 也变的越来越重要,我们更应不断地提高自己的水平,在每次的程序中能够有更多的 领悟。也让自己在程序的编译和应用上可以有更大一步的提高。在这两周的课程设计中我学到了很多知识,首先,要有理论做实践的指导才会很 快很好地达到自己的目的,而且勤于学习和思考是一个很好的习惯,要将知识学得很 扎实才会灵活运用,这同时也是我们所必须的,一切新科技的发现都是这样的:再 次,一切事情都要勤于向有经验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论