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

下载本文档

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

文档简介

1、山东建筑大学计算机科学与技术学院课程设计说明书题 目:收集并统计网络TCP流量课程:计算机网络院(部):计算机科学与技术专 业:网络工程班 级:学生姓名:学 号:指导教师: 完成日期:目录课程设计任务书 收集并统计网络TCP流量 0一、问题描述 0二、基本要求 0三、设计思想 0四、系统结构 0五、程序流程 0六、源程序 2七、测试数据 7八、测试情况 7结 论 8课程设计任务书设计题目收集并统计网络TCP流量已知技术 参数和设 计要求1. 利用WinPCap进行网络监控。2. 系统完成以下功能:(1)利用WinPCap收集流经网卡的数据。(2)对其中的TCP流量进行统计并显示统计结果。(3)

2、向用户提供友好的交互界面。(4)用户可以方便地中止或继续 TCP流量的统计。(5)系统必须对出现的问题或错误做出响应。3. 建议该系统利用VC+实现。设计内容 与步骤1. 回顾幵发工具的基本使用方法;2. 学习WinPCap编程的基本方法;3. TCP流量统计系统框架结构设计;4. TCP流量统计系统的设计与实现6.课程设计任务说明书设计工作计划与进度安排设计考核要求1. 学习WinPcap流量统计编程的基本方法4小时2. 程序设计以及调试方法2小时3. TCP流量统计系统框架结构设计4小时4. TCP流量统计系统设计16小时5. 课程设计说明书14小时1. 出勤20 %2. 答辩或演示30%

3、3. 课程设计说明书50 %收集并统计网络TCP流量一、问题描述编程实现简单的TCP流量统计器,TCP流量统计器通过各种科学的方式,准确的 纪录来访某一页面的访问者的流量信息 ,它从局域网中抓取IP数据包,并对它进行 分析得到相应的头部信息,过滤 TCP包进行分析,得到TCP流量信息。二、基本要求1. 利用WinPCap进行网络监控。2. 系统完成以下功能:(1)利用WinPCap收集流经网卡的数据。(2)对其中的TCP流量进行统计并显示统计结果。(3)向用户提供友好的交互界面。(4)用户可以方便地中止或继续 TCP流量的统计。(5)系统必须对出现的问题或错误做出响应。3. 建议该系统利用VC

4、+实现。三、设计思想TCP 流量统计器通过Jpacp与winpcap来进行抓包,JPCAP调用wineap,而给JAVA语言 提供一个公共的接口, WinPcap是用于网络圭寸包抓取的一套工具,调用 loopPackage获取数 据包。四、系统结构首先用getDeviceList ()方法获取网卡设备号,在用openDevice ()方法打开指定设备,然后开始用loopPacket ()方法获取数据包,最后进行输出。五、程序流程首先获取设备然后打开设备之后获取数据包最后进行输出,具体的流程图如下:获取设final备列表:Network In terfacedevicesJpcapCaptor.

5、getDeviceList();打幵指定设备:JpcapCaptor jpcap = JpcapCaptor.ope nDevice( ni, 2000, true,20);获取数据包:输出信息:*此数据包的源IP地址:” + tcp.src_ip+n);*此数据包的目的IP地址:” + tcp.dst_ip+n);*此数据包的发送端口号:+ tcp.src_port+n);T*此数据包的接收端口号:+ tcp.dst_port+n);* 此数据包的源 MAC地址:” + ethernetPacket.getSourceAddress()+n);* 此 数 据 包 的 目 的 MAC 地 址

6、:+ethernetPacket.getDestinationAddress()+n); *此数据包的传输层协议类型: + tocol + (TCP)+n);*此数据包的长度: + tcp.len+n);六、源程序public class Tcpflowstatistics private static Tcpflowstatistics ts; private boolean flag = true;JFrame jf;JButton bt1, bt2, bt3, bt4;static JTextArea jta;JScrollPane jsp;JPanel jp1;Tcpfl

7、owstatistics() jf = new JFrame(TGP 流量统计器 );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 = new JButton( 终止 );jsp = new JScrollPane();jsp.setViewportView(j

8、ta);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(jp1, BorderLayout.NORTH);jf.add(jsp, BorderLayout.CENTER);pub

9、lic static void main(String args) / 启动统计线程new Tcpflowstatistics();public void init() / 获取本机上的网络接口对象final NetworkInterface devices = JpcapCaptor.getDeviceList();/获取设备列表for (int i = 0; i devices.length; i+) NetworkInterface ni = devicesi;/ 大于零时为有效地址;不抓本机地址/ 一个网卡可能有多个地址,只获取第一个String addr = ni.addresses

10、0.address.toString();try / 创建卡口上的抓取对象JpcapCaptor jpcap = JpcapCaptor.openDevice(ni, 2000, true,20);LoopPacketThread lpt = new LoopPacketThread(jpcap, addr);lpt.start();jta.append(addr + 上的采集线程已启动! + n); catch (IOException e) e.printStackTrace();public void bt1Action(ActionEvent e) init();public void

11、 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() public class ReceivePacket im

12、plements PacketReceiver private String ipAddr = public ReceivePacket(String ipAddr) this.ipAddr = ipAddr;public void receivePacket(Packet packet) /如果截获的包为TCP包TCPPacket tcp = (TCPPacket) packet;/ 转化为响应实例 EthernetPacket ethernetPacket=(EthernetPacket)packet.datalink; *此数据包的源 IP 地址: + tcp.src_ip+n); *此

13、数据包的目的 IP 地址: + tcp.dst_ip+n); *此数据包的发送端口号: + tcp.src_port+n); *此数据包的接收端口号: + tcp.dst_port+n); * 此 数 据 包 的 源 MAC 地 址 :ethernetPacket.getSourceAddress()+n); * 此 数 据 包 的 目 的 MAC 地 址 :ethernetPacket.getDestinationAddress()+n); *此数据包的传输层协议类型: + tocol + (TCP)+n); *此数据包的长度: + tcp.len+n);七、测试数据TCPPa

14、cket| | | * 此数据包的发送端口号: 64060| * 此数据包的接收端口号: 80| *此数据包的源 MAC地址:f4:6d:04:23:a9:da| *此数据包的目的 MAC地址:14:14:4b:19:ec:3b| *此数据包的传输层协议类型: 6(TCP)| *此数据包的长度: 66TCPPacket| | | *此数据包的发送端口号: 64061| *此数据包的接收端口号: 80| *此数据包的源 MAC地址:f4:6d:04:23:a9:da| *此数据包的目的 MAC地址:14:14:4b:19:ec:3b| *此数据包的传输层协议类型: 6(TCP)| *此数据包的长

15、度: 66八、测试情况程序运行结果图:结论为期两周的课程设计在老师和自己的努力下很快地结束了,在此期间老师给了我们很大 的帮助 ,在老师的指导之余我还认真学习了其它课本上未曾提到过的知识, 比如说网络编程方 面的知识,这是我们以前所没有接触过的,虽然说这给了我们很大的一个问题但是也同时给 了我们一个很好的挑战自己的机会,以前从未听过Winpcap,现在道了它对于捕我知获网络上的一些数据信息很有帮助,从而丰富了我的知识,同时也知道了如何去利用它来为自己服 务,这是一个很大的进步。在自己查找资料的同时也锻炼了我及时捕获有用知识的能力,我想这是我现在乃至以后 最大的一个财富,一个人最重要的就是要懂得

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

温馨提示

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

评论

0/150

提交评论