计算机网络课程设计报告实验报告

(21页)

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

24.9 积分

中南大学课程设计报告课程:计算机网络课程设计 题目:基于Winpcap的网络流量统计分析指导教师:张伟目录第1章 总体设计 1、 实体类设计 --------P32、 功能类设计 --------P33、 界面设计 --------P3第2章 详细设计 1、 实体类实现 --------P42、 功能类实现 --------P43、 界面实现 --------P5第3章 源代码清单及说明 一、CaptureUtil.java --------P7 二、MyPcapPacketHandler.java --------P9 三、PacketMatch.java --------P9 四、Windows.java --------P13第4章 运行结果 --------P19第五章 心得体会 --------P21第1章 总体设计1、 实体类设计TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计2、 功能类设计(1) 网卡获取(2) 包的抓捕(3) 包的处理3、 界面设计(1) 布局(2) 按钮功能连接第2章 第二章 详细设计一、实体类实现TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计。本程序采用Java编写,基于win10pcap。Win10pcap是winpcap在win10系统上的适用版本。Java对于winpcap使用jnetpcap进行支持。对于TCP、UPD、ICMP、ARP、广播数据包五种类型的包,在jnetpcap的jar包中大部分已经封装好了相关的实体类型。对应如下:ARP 实体类:org.jnetpcap.protocol.network.Arp;UPD 实体类:org.jnetpcap.protocol.network.Icmp;IP 实体类:org.jnetpcap.protocol.network.Ip4;TCP 实体类:org.jnetpcap.protocol.tcpip.Tcp;UDP 实体类:org.jnetpcap.protocol.tcpip.Udp; 而对于其中的广播数据包,其判断我利用捕获到的IP包的目的地址进行判断,若其目的地址为255.255.255.255,则认为其为广播数据包。2、 功能类实现(1)网卡获取电脑上的包的发送与接受都得通过网卡来进行,所以为了完成局域网数据包的捕获和统计,我首先要做的是获取到电脑上的网卡列表,然后选择一个网卡进行包的捕获。而相关代码在jnetpcap的官网的示例代码1中可以找到,从中可以学习到的是jnetpcap的各种使用方法。在我电脑上可以捕获到三个网卡,一个是本机自身的物理网卡,另外两个是虚拟机模拟出的虚拟网卡。(2) 包的抓捕Jnetpcap中包的抓捕也是有着固定的格式的,这在官网的示例代码中也是可以找到的,只要设置好相关的参数,就可以进行抓捕具体方法如下,利用Pcap对象的loop方法。就是实例化一个Pcap对象,然后调用其loop方法。第一个参数arg0 代表循环次数,第二个参数就是传入一个PcapPaketHandler或其子类的对象,这个对象类型是要由我们自己编写的对包处理的方法。(3) 包的处理在这里对捕获的包的处理我是编写了一个PcapPacketHandler的子类,然后重写了nextPacket()方法。在这个方法里我把捕获到的包当作参数传递个具体的处理方法packetMatch.handlePacket(packet)。packetMatch.handlePacket(packet)方法是由我自己编写的。handlePacket是packetMatch的一个静态方法,可以直接调用。在这个方法里面,它会把捕获到的包的包头和TCP、UPD、ICMP、ARP、广播数据包五种类型的包的包头进行一一比较,以确认是否抓到了了相对应的包。这儿还用到的就是jnetpcap的内部的一个方法,就是packet.hasHeader(arg0),通过在arg0传入已在jnetpcap里封装好的包的类型的实例,可以很好的判断该包是属于什么包类型的,是TCP、UPD、ICMP、ARP还是广播数据包。然后内部对于各种包的信息的输出也有很好的支持,可以直接使用相应的toString方法,就可以输出各种相关信息。(4) 网络流量统计对于各个捕获到的包,分别针对各种类型的包设计了一个Double变量用于统计其传送过来相应包头的大小,并在停止抓包后将统计的数据输出在最下方的TextArea里面。3、 界面实现本程序在设计GUI时使用了Java的一个很好的插件WindowBuilder。(1)布局一开始使用Border Layout布局,安排好各个按钮位置,文本框位置。后来采用Absolute layout,并将窗口大小固定化。在布局的最上方是一个JToolBar的实例对象,其中放置有选择网卡、开始抓包、停止抓包、清空记录等四个选项,中间是两个带滚动条的多行文本框,左边的用于显示捕获的包的列表,右边用于显示左边的我们选中的包的具体信息。最下方会在停止抓包按钮生效后输出总的抓包情况。(2) 按钮功能连接在布局的最上方是一个JToolBar的实例对象,其中放置有选择网卡、开始抓包、停止抓包、清空记录等四个选项,其中选择网卡的功能具体由JComboBox(多文本选择框)上的选项决定,这个多文本选择框监听着 网卡获取的方法,它会从该方法获得一个网卡列表,然后将其文本输出。开始抓包的方法所对应的事件是抓包的事件,并且该抓包事件是个并发的进程。因为如果不将其设置为并发进程,其会使其它事件一直阻塞,甚至连停止抓包都做不到。停止抓包的事件其实是改变了开始抓包中的一个标志位,让其为假。该标志为为真,抓包程序会一直进行,该标志为为假,抓包停止。下方两个文本框,左边的文本框监听的是开始抓包这个事件,当这个事件开始,这个事件会向文本框传输捕获到的包的列表,然后让其显示。而右边的文本框监听的是左边文本框 关 键 词: 计算机网络 课程设计 报告 实验

 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

计算机网络课程设计综合实验,计算机网络课程设计报告实验报告相关推荐

  1. 0497计算机组成原理在线作业,0497《 综合实践活动课程设计》20秋西南大学在线作业答案...

    0497 综合实践活动课程设计 ) t9 U! \; N. I. l8 W0 Y( w1.[判断题] 综合实践活动课程应鼓励学生自己生成知识. 4 p3 s) z5 Y+ T, O& m无忧答 ...

  2. 计算机课程设计参考文献,计算机课程设计专著参考文献 计算机课程设计论文参考文献哪里找...

    [100个]关于计算机课程设计专著参考文献汇总,作为大学生的毕业生应该明白了计算机课程设计论文参考文献哪里找,收集好参考文献后的计算机课程设计论文写作起来会更轻松! 一.计算机课程设计论文参考文献范文 ...

  3. 400+考研 北京航空航天大学4系能源动力与工程学院942机械设计综合资料合辑

    400+考研唯一官方淘宝店400plus.taobao.com 副标题:北航本科课件+笔记+<材料力学><机械设计基础>期末试题+942历年真题及答案解析 400+考研根植于北 ...

  4. 综合实践活动教案计算机做实验,综合实践活动教学反思(精选10篇)

    综合实践活动教学反思(精选10篇) 作为一名优秀的教师,我们要有一流的课堂教学能力,对学到的教学技巧,我们可以记录在教学反思中,教学反思我们应该怎么写呢?以下是小编精心整理的综合实践活动教学反思(精选 ...

  5. 计算机网络课程设计之网络嗅探器的设计与实现

    前言 本实验难点是在于Windows下的raw socket有太多的限制,因此用winpcap编程功能更加强大,但是根据指导书要求要用原始套接字,原始套接字在Linux系统下也十分强大,结尾附上Lin ...

  6. 计算机网络课程设计的总结,计算机网络课程设计工作体会总结

    <计算机网络课程设计工作体会总结>由会员分享,可在线阅读,更多相关<计算机网络课程设计工作体会总结(4页珍藏版)>请在人人文库网上搜索. 1.计算机网络课程设计工作体会总结 课 ...

  7. 计算机网络设计一个网络游戏,计算机网络编程课程设计-- 猜数游戏.doc

    软 件 学 院 课程设计报告书 课程名称 计算机网络编程课程设计 设计题目 猜数游戏 专业班级 学 号 姓 名 指导教师 2011 年 12 月 目录 1 设计时间1 2 设计目的1 3 设计任务1 ...

  8. 南通大学计算机网络及应用,南通大学《计算机网络》课程设计资料.pdf

    南 通 大 学 课 设 计 报 告 课程名称 : _____ 课题名称 : 课设二 学 号 : ___ 姓 名 : 梁博生 ________ 班 级 : 网工 131________ 计算机科学与技术 ...

  9. 计算机网络课程设计之网络代理服务器的设计与实现

    前言 本实验因为时间有限,写的比较草率... 白嫖容易,创作不易,本文原创,转载请注明!!! 源码和可运行程序: 链接:https://pan.baidu.com/s/1A9KctmpP2JJgyW2 ...

最新文章

  1. python使用matplotlib对比多个模型在测试集上的效果并可视化、设置模型性能可视化结果柱状图(bar plot)标签的小数点位数(例如,强制柱状图标签0.7显示为两位小数0.70)
  2. java frame paint_一个简单的java frame画图(paint)问题
  3. DWZ+Uploadify +JSON 多文件上传
  4. OpenCASCADE:使用扩展数据交换 XDE之自定义注释note
  5. Mysql semi-sync VS group replication, 谁快?
  6. 工作23:vue---封装request做数据请求
  7. 【C语言简介】C语言的前世今生
  8. 【2017-12-12】Winform----Datagirdview使用
  9. Eclipse中使用Junit编写测试用例
  10. 支撑抖音“跳动”数年后,火山引擎新一代视频点播服务正式对外开放
  11. 音频放大电路_集成电路技术汇总:检测技巧
  12. 2021上半年ICPC各类赛事时间日程
  13. 苹果耳机无线真假测试软件,苹果耳机“真伪”终极鉴别来了,原来,区别如此大!...
  14. SQL Server 日期 字符串 格式转换 函数 datetime convert
  15. c语言switch猜拳游戏,js回顾,用if语句,和switch语句来编写猜拳小游戏。
  16. UEFI 编程(一)
  17. 大学生php实训总结_php实训报告心得体会
  18. JAVA基础(12.Java中的常用类String)
  19. Java中的statis用法
  20. Android应用优化指南

热门文章

  1. yate学习--yatesip.h--class YSIP_API SIPMessage : public RefObject
  2. 运算符,流程控制语句
  3. 链路聚合_使用nmcli配置主备模式链路聚合
  4. Android通过代码模拟物理、屏幕点击事件
  5. 36氪专访 | Tripio CEO沈巍:在OTA行业,区块链技术只适合创业公司
  6. SpringBoot实践(十七):与vue-element-admin登录集成
  7. poj 3126 Prime Path
  8. 传输视频的带宽如何计算?传输4K视频需要多少带宽?
  9. cad拖动有残影,在AUTOCAD拖动光标或图形时出现重影是怎么回事?
  10. Inception net