写一个java的网络数据包分析程序(一)

需要写一个工具监控我所负责项目中的服务器与客户端的交易事件,而我又不方便修改系统代码(因为此工具只是我自己为了工作方便而作),因此需要通过监听并分析网络数据包来获取信息。

    原本打算将tcpdump的C源码翻译成java代码,因为只是要分析TCP/IP协议数据包,并不需要将整个tcpdump的功能用java实现,所以一开始认为不需要太长时间。但真的做的时候发现里面有不少的数据结构,有不少指针和sizeof等C语言特有的东东,真的搞起来还是要花不少心思的。搞出来后其他人维护也麻烦,因为过几个月就要跳槽了。

    到网上找了下发现有个好东东。加利福尼亚大学信息与计算机科学学院的Keita Fujii(http://netresearch.ics.uci.edu/kfujii/)写了两个基于libpcap/winpcap的java的网络数据包分析程序(jpcap和jpcapdumper分别在http://netresearch.ics.uci.edu/kfujii/jpcap/doc/index.htmlhttp://netresearch.ics.uci.edu/kfujii/jpcapdumper/doc/index.html上)。实际也就是一个,jpcap是工具包,jpcapdumper是为jpcap提供了gui。


jpcap:
Jpcap是一个支持Java程序抓取和/或发送网络数据包Java类包。它基于libpcap/winpcap和原生Socket API。因此,Jpcap应该在提供了libpcap/winpcap实现的操作系统平台上都能工作。目前,Jpcap已经在FreeBSD 3.x, Linux RedHat 6.1, Fedora Core 4, Solaris和Microsoft Windows 2000/XP上测试过.
Jpcap支持如下数据包类型:Ethernet, IPv4, IPv6, ARP/RARP, TCP, UDP和ICMPv4。其它类型的数据包被抓成原生数据包(如Packet类的实例),包含包内的所有数据。这样Java程序可以分析任何不支持类型的数据包。

libpcap:
libpcap是加利福尼亚州的劳伦斯伯克利国家实验室所属信息和计算科学部下的网络研究工程组提供的用于抓取网络包的工具库。该工程组的主页为: http://ee.lbl.gov/
相关的链接:

winpcap:

    WinPcap是windows环境下用于访问网络链路层的符合工业标准的工具:它支持应用抓取和转发通过协议栈的数据包,还有另外一些有用的特性,包括内核级别的包过滤、一个网络统计引擎以及对远程报抓取的支持。
    WinPcap包括一个驱动和一个库。驱动对操作系统进行了扩展以便提供对底层网络的访问支持。库提供对底层网络层的方便访问。库中还包含了有名的libpcap的windows版本。
    多亏了WinPcap提供的这组特性,为很多开源的和商业的网络工具提供了包抓取和过滤引擎。这些网络工具包括协议分析器、网络监视器、网络入侵检测系统、嗅探器、网络流量生成器和网络测试工具等等。其中的一些工具,比如Wireshark、Nmap、Snort、ntop,都是在网络社区闻名和通用的。
    Winpcap.org也是WinDump的主页,这是一个很受欢迎的Windows版tcpdump工具。WinDump可根据复杂的规则进行察看、诊断和保存网络流量到磁盘中等工作。
原文:

    WinPcap is the industry-standard tool for link-layer network access in Windows environments: it allows applications to capture and transmit network packets bypassing the protocol stack, and has additional useful features, including kernel-level packet filtering, a network statistics engine and support for remote packet capture.

    WinPcap consists of a driver, that extends the operating system to provide low-level network access, and a library that is used to easily access the low-level network layers. This library also contains the Windows version of the well known libpcap Unix API.

    Thanks to its set of features, WinPcap is the packet capture and filtering engine of many open source and commercial network tools, including protocol analyzers, network monitors, network intrusion detection systems, sniffers, traffic generators and network testers. Some of these tools, like Wireshark, Nmap, Snort, ntop are known and used throughout the networking community.

    Winpcap.org is also the home of WinDump, the Windows version of the popular tcpdump tool. WinDump can be used to watch, diagnose and save to disk network traffic according to various complex rules.

相关的链接: http://www.winpcap.org/
 
本篇对jpcap/jpcapdumper及其底层库libpcap/winpcap做了介绍,后面的文章将对具体技术细节进行讲解。
 
备注:
加利福尼亚州的劳伦斯伯克利国家实验室所属信息和计算科学部下的网络研究工程组(the Network Research Group (NRG) of the Information and Computing Sciences Division (ICSD) at Lawrence Berkeley National Laboratory (LBNL) in Berkeley, California.)( http://ee.lbl.gov/)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值