版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、山东建筑大学计算机科学与技术学院课程设计说明书题 目: 收集并统计网络TCP流量课 程: 计算机网络院 (部): 计算机科学与技术专 业: 网络工程班 级: 学生姓名: 学 号: 指导教师: 完成日期: 目 录课程设计任务书I收集并统计网络TCP流量1一、问题描述1二、基本要求1三、设计思想1四、系统结构1五、程序流程1六、源程序3七、测试数据5八、测试情况6结 论7山东建筑大学计算机科学与技术学院课程设计任务书设计题目收集并统计网络TCP流量已知技术参数和设计要求1.利用WinPCap进行网络监控。2.系统完成以下功能: (1)利用WinPCap收集流经网卡的数据。 (2)对其中的TCP流量
2、进行统计并显示统计结果。 (3)向用户提供友好的交互界面。 (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.出勤 202
3、.答辩或演示303.课程设计说明书 50收集并统计网络TCP流量一、问题描述编程实现简单的TCP流量统计器,TCP流量统计器通过各种科学的方式,准确的纪录来访某一页面的访问者的流量信息,它从局域网中抓取IP数据包,并对它进行分析得到相应的头部信息,过滤TCP包进行分析,得到TCP流量信息。二、基本要求1.利用WinPCap进行网络监控。2.系统完成以下功能: (1)利用WinPCap收集流经网卡的数据。 (2)对其中的TCP流量进行统计并显示统计结果。 (3)向用户提供友好的交互界面。 (4)用户可以方便地中止或继续TCP流量的统计。 (5)系统必须对出现的问题或错误做出响应。3.建议该系统利
4、用VC+实现。三、设计思想 TCP流量统计器通过Jpacp与winpcap来进行抓包,JPCAP调用wincap,而给 JAVA语言提供一个公共的接口,WinPcap是用于网络封包抓取的一套工具,调用loopPackage获取数据包。四、系统结构 首先用getDeviceList()方法获取网卡设备号,在用openDevice()方法打开指定设备,然后开始用loopPacket()方法获取数据包,最后进行输出。五、程序流程首先获取设备然后打开设备之后获取数据包最后进行输出,具体的流程图如下:编写构造方法监听动作事件获取设备列表监听动作事件终止 开始 打开指定设备获取数据包输出开始获取设备列表:
5、final NetworkInterface devices = JpcapCaptor.getDeviceList();打开指定设备:JpcapCaptor jpcap = JpcapCaptor.openDevice(ni, 2000, true,20);获取数据包:this.jpcap.loopPacket(-1, new ReceivePacket(this.ipAddr);输出信息:Tcpflowstatistics.jta.append(TCPPacket+n);Tcpflowstatistics.jta.append(|*此数据包的源IP地址: + tcp.src_ip+n);T
6、cpflowstatistics.jta.append(|*此数据包的目的IP地址: + tcp.dst_ip+n);Tcpflowstatistics.jta.append(|*此数据包的发送端口号: + tcp.src_port+n);Tcpflowstatistics.jta.append(|*此数据包的接收端口号: + tcp.dst_port+n);Tcpflowstatistics.jta.append(|*此数据包的源MAC地址: + ethernetPacket.getSourceAddress()+n);Tcpflowstatistics.jta.append(|*此数据包的
7、目的MAC地址: + ethernetPacket.getDestinationAddress()+n);Tcpflowstatistics.jta.append(|*此数据包的传输层协议类型: + tocol + (TCP)+n);Tcpflowstatistics.jta.append(|*此数据包的长度: + 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流量统计器);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) / 启动统计线程new Tcpflowstatistics();public void init() / 获取本机上的网络接口对象final NetworkInterface devices = JpcapCaptor.getDeviceList();/获取设备列表for (int i = 0; i 0) / 一个网卡可能有多个地址,只获取第一个String addr = ni.addresses0.add
11、ress.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();System.out.println(抓取数据包时出现异常!);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);/监听捕获包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、边对象是否为其右边类的实例,返回boolean类型的数据TCPPacket tcp = (TCPPacket) packet;/转化为响应实例EthernetPacket ethernetPacket=(EthernetPacket)packet.datalink;Tcpflowstatistics.jta.append(=+n);Tcpflowstatistics.jta.append(TCPPacket+n);Tcpflowstatistics.jta.append(|*此数据包的源IP地址: + tcp.src_ip+n);Tcpflowstatistics.jta.append(|*此
15、数据包的目的IP地址: + tcp.dst_ip+n);Tcpflowstatistics.jta.append(|*此数据包的发送端口号: + tcp.src_port+n);Tcpflowstatistics.jta.append(|*此数据包的接收端口号: + tcp.dst_port+n);Tcpflowstatistics.jta.append(|*此数据包的源MAC地址: + ethernetPacket.getSourceAddress()+n);Tcpflowstatistics.jta.append(|*此数据包的目的MAC地址: + ethernetPacket.getDe
16、stinationAddress()+n);Tcpflowstatistics.jta.append(|*此数据包的传输层协议类型: + tocol + (TCP)+n);Tcpflowstatistics.jta.append(|*此数据包的长度: + tcp.len+n);七、测试数据TCPPacket|*此数据包的源IP地址:5|*此数据包的目的IP地址:34|*此数据包的发送端口号:64060|*此数据包的接收端口号:80|*此数据包的源MAC地址:f4:6d:04:23:a9:da|*此数据包的目的MAC地址:14:14:4b
17、:19:ec:3b|*此数据包的传输层协议类型:6(TCP)|*此数据包的长度:66=TCPPacket|*此数据包的源IP地址:5|*此数据包的目的IP地址:34|*此数据包的发送端口号:64061|*此数据包的接收端口号:80|*此数据包的源MAC地址:f4:6d:04:23:a9:da|*此数据包的目的MAC地址:14:14:4b:19:ec:3b|*此数据包的传输层协议类型:6(TCP)|*此数据包的长度:66=八、测试情况 程序运行结果图: 结 论为期两周的课程设计在老师和自己的努力下很快地结束了,在此期间老师给了我们很大的帮助,在老师的指
18、导之余我还认真学习了其它课本上未曾提到过的知识,比如说网络编程方面的知识,这是我们以前所没有接触过的,虽然说这给了我们很大的一个问题但是也同时给了我们一个很好的挑战自己的机会,以前从未听过Winpcap,现在道了它对于捕我知获网络上的一些数据信息很有帮助,从而丰富了我的知识,同时也知道了如何去利用它来为自己服务,这是一个很大的进步。在自己查找资料的同时也锻炼了我及时捕获有用知识的能力,我想这是我现在乃至以后最大的一个财富,一个人最重要的就是要懂得如何去学,学习不是被动的,而是主动的,只有这样我们才能学得到对于我们自己有帮助的东西,用JAVA编程实现TCP数据报流量统计,开始这对于我来说是是一个很模糊的概念,但是当我在查找了很多资料之后我不再迷茫,而是慢
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高职混凝土结构工程技术(混凝土强度控制)试题及答案
- 2025年大学艺术史论(艺术史研究)试题及答案
- 2025年大学大一(机械电子工程)数控技术综合测试题及答案
- 2025年中职药品食品检验(食品感官检验)试题及答案
- 2026年游戏运营(用户维护)试题及答案
- 2025年中职大气污染化学和物理(大气环境监测)试题及答案
- 2025年大学烹饪(烹饪学研究)试题及答案
- 2026年快餐食品加工机维修(加工机调试技术)试题及答案
- 2025年大学大四(材料成型及控制工程)材料成型综合实训阶段测试题及答案
- 2025年大学建筑工程造价(工程预算编制)试题及答案
- 小学生急救心肺复苏知识科普
- 《审计学》全套课件
- DL∕T 5106-2017 跨越电力线路架线施工规程
- 城市会SOP基础讲义
- DL-T976-2017带电作业工具、装置和设备预防性试验规程
- 新能源并网系统短路比指标分析及临界短路比计算方法
- DB32T3916-2020建筑地基基础检测规程
- 换电柜维护培训课件
- GB/T 15153.1-2024远动设备及系统第2部分:工作条件第1篇:电源和电磁兼容性
- 初中语文 送别诗练习题(含答案)
- 企业标准-格式模板
评论
0/150
提交评论