JAVA实现的基于PCAP库的网络监视器

Camouflage

发布日期: 2018-10-31 09:14:43 浏览量: 235
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com

摘 要

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。本网络监视器就是模拟Wireshark的设计思想,是一个简单的网络监视分析软件。

利用pcap这个抓包库给抓包系统提供了一个高层次的接口。所有网络上的数据包,甚至是那些发送给其他主机的,通过这种机制,都是可以捕获的。当利用pcap获取到包后,再将这个包依据不同的协议进行拆分,封装的方法详细程度超过了pcap库本身的方法。

通过该网络监视器的实现,能够清晰地看到数据包里面的内容。实现触发功能,让网络监视器在发生某种或某些情况时开始或停止捕获信息。实现数据捕获筛选功能。包括:通过协议筛选、通过地址筛选、通过数据模式筛选。实现捕获数据显示功能。由用户选定显示内容,以清晰易懂的方式显示数据。分析数据功能。将捕获到的数据帧进行拆分分析。最后设计了美观易用的图形界面。

关键字:网络监视 捕捉数据包 数据帧拆分 筛选

1 引言

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包也经常被用来进行数据截取等。本实验实现了抓包过程中的截获阶段,并将数据包进行分析。在数据包的分析过程中,有助于开发者更加理解网络协议,在真正意义上实现了协议的拆分试验。目的也是让软件使用者能清晰网络捕捉包中的包数据分析以及结构。

2 总体设计

2.1 功能分析

  • 实现触发功能,让网络监视器在发生某种或某些情况时开始或停止捕获信息

  • 实现数据捕获筛选功能。通过协议筛选、通过地址筛选、通过数据模式筛选

  • 实现捕获数据显示功能。由用户选定显示内容,以清晰易懂的方式显示数据

  • 分析数据功能。将捕获到的数据帧进行拆分分析

  • 设计美观易用的图形界面。

2.2 技术分析

主要使用JAVA进行后台开发,利用pcap库获取捕捉到的数据包,然后逐一拆分成不同协议的数据。前端利用HTML展示,其中利用了vue.js实现前端数据绑定。

2.3 使用方法

在源码包中找到startCap.jar,点击启动。然后找到monitor中的index.html就可以进行操作。

3 详细设计

3.1 程序设计流程

3.2 功能模块

3.3 功能测试

初始界面

点击开始按钮捕捉包

停止

获取数据包详细数据分析

筛选协议为IP,mac地址为48-a1-95-97-65-26的包

4 总结

4.1 工作小结

此次网络监视器设计让我对网络协议有了更加清晰明了的了解,在实际上明白了一个数据包如何封装如何解析,让五层网络结构不再是纸上谈兵。“纸上得来终觉浅,绝知此事要躬行”是我这次实验的最大收获,在错误分析,bug修复中使自己的编程能力有了总体提高,在项目结构上有了清晰明了的了解。

4.2 存在的问题

此网络监视器虽然让我受益良多,但任然存在一些问题。最大的问题是,该项目采用web软件的形式,但是前后端分离不够清晰,虽然整体上采用了MVC结构,但是目前比较优秀的网站设计,应该是前后端完全分离。前端模块化,采用MV*架构,后端采用MVC架构,前后端之间的沟通可以采用遵守RESTFUL规范的API接口进行数据传输。

4.3 改进的方法

改进的方法应该是重构整个架构,细节无需改变,将前后端项目分开开发,解决跨域问题。要实现前端模块化,前端可以采用MV*架构,后端采用MVC架构,前后端之间的沟通可以采用遵守RESTFUL规范的API接口进行数据传输。

上传的附件 cloud_download JAVA实现的基于PCAP库的网络监视器.7z ( 416.36kb, 21次下载 )
error_outline 下载需要7点积分

发送私信

你有那么好的年纪,为什么不笑得更好看些

7
文章数
13
评论数
最近文章
eject