本方案采用Jpcap.dll在数据链路层下进行数据包捕获。Jpcap提供了在Windows或UNIX系统上进行这种访问的Java API,它可以访问底层的网络数据。但Jpcap不是一种纯粹的Java解决方案;它需要依赖本地库的使用。因此,在Windows 或 UNIX上,要使用必要的第三方库,分别是WinPcap或libpcap。
利用专门用于网络监听的一个函数库Jpcap.lib提供的函数完成抓包工作,由于该库提供的函数抓到的包是数据链路层下的帧,因此,它可以被用来基于数据链路层下的流量捕获。其体系结构如下图所示。