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

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

ID:41314475

大小:284.50 KB

页数:21页

时间:2019-08-21

计算机网络课程设计实验报告资料_第1页
计算机网络课程设计实验报告资料_第2页
计算机网络课程设计实验报告资料_第3页
计算机网络课程设计实验报告资料_第4页
计算机网络课程设计实验报告资料_第5页
资源描述:

《计算机网络课程设计实验报告资料》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、中南大学课程设计报告课程:计算机网络课程设计题目:基于Winpcap的网络流量统计分析指导教师:张伟目录第一章总体设计一、实体类设计--------P3二、功能类设计--------P3三、界面设计--------P3第一章详细设计一、实体类实现--------P4二、功能类实现--------P4三、界面实现--------P5第二章源代码清单及说明一、CaptureUtil.java--------P7二、MyPcapPacketHandler.java--------P9三、PacketMatch.java--------P9四、Windows.java--------P13第

2、三章运行结果--------P19第五章心得体会--------P21第一章总体设计一、实体类设计TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计二、功能类设计(1)网卡获取(2)包的抓捕(1)包的处理一、界面设计(1)布局(2)按钮功能连接第一章第二章详细设计一、实体类实现TCP、UPD、ICMP、ARP、广播数据包五个包的数据结构设计。本程序采用Java编写,基于win10pcap。Win10pcap是winpcap在win10系统上的适用版本。Java对于winpcap使用jnetpcap进行支持。对于TCP、UPD、ICMP、ARP、广播数据包五种类型的包,在

3、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,

4、则认为其为广播数据包。二、功能类实现(1)网卡获取电脑上的包的发送与接受都得通过网卡来进行,所以为了完成局域网数据包的捕获和统计,我首先要做的是获取到电脑上的网卡列表,然后选择一个网卡进行包的捕获。而相关代码在jnetpcap的官网的示例代码1中可以找到,从中可以学习到的是jnetpcap的各种使用方法。在我电脑上可以捕获到三个网卡,一个是本机自身的物理网卡,另外两个是虚拟机模拟出的虚拟网卡。(2)包的抓捕Jnetpcap中包的抓捕也是有着固定的格式的,这在官网的示例代码中也是可以找到的,只要设置好相关的参数,就可以进行抓捕具体方法如下,利用Pcap对象的loop方法。就是实例化一个

5、Pcap对象,然后调用其loop方法。第一个参数arg0代表循环次数,第二个参数就是传入一个PcapPaketHandler或其子类的对象,这个对象类型是要由我们自己编写的对包处理的方法。(3)包的处理在这里对捕获的包的处理我是编写了一个PcapPacketHandler的子类,然后重写了nextPacket()方法。在这个方法里我把捕获到的包当作参数传递个具体的处理方法packetMatch.handlePacket(packet)。packetMatch.handlePacket(packet)方法是由我自己编写的。handlePacket是packetMatch的一个静态方法,

6、可以直接调用。在这个方法里面,它会把捕获到的包的包头和TCP、UPD、ICMP、ARP、广播数据包五种类型的包的包头进行一一比较,以确认是否抓到了了相对应的包。这儿还用到的就是jnetpcap的内部的一个方法,就是packet.hasHeader(arg0),通过在arg0传入已在jnetpcap里封装好的包的类型的实例,可以很好的判断该包是属于什么包类型的,是TCP、UPD、ICMP、ARP还是广播数据包。然后内部对于各种包的信息的输出也有很好的支持,可以直接使用相应的toString方法,就可以输出各种相关信息。(4)网络流量统计对于各个捕获到的包,分别针对各种类型的包设计了一个

7、Double变量用于统计其传送过来相应包头的大小,并在停止抓包后将统计的数据输出在最下方的TextArea里面。三、界面实现本程序在设计GUI时使用了Java的一个很好的插件WindowBuilder。(1)布局一开始使用BorderLayout布局,安排好各个按钮位置,文本框位置。后来采用Absolutelayout,并将窗口大小固定化。在布局的最上方是一个JToolBar的实例对象,其中放置有选择网卡、开始抓包、停止抓包、清空记录等四个选项,中间是两个

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。