网络数据包监视程序开发日志(一)

来源:互联网 发布:启信宝是个什么软件 编辑:程序博客网 时间:2024/05/04 19:38

  这不是一篇技术日志,只是开发刚开始写的一些心情,以及这些天来找资料的情况。  

  经过这几天来的材料收集,原来还犹豫选择哪一种语言作为开发语言的问题基本上已经解决了。我决定选择JAVA作为这个程序的开发语言。

  其实在刚拿到这个设计题目的时候,我就想过可能要用C/C++来做,也已经打算好进一步地学习C++了。在开始找资料的时候,我也着手找一些与C++相关的东西,呵呵。。。当然,我也没找到什么与开发这款小软件有关的、并且是基于JAVA的资料。这方面的东西太少了。在我的blog上,都是一些与C++有关的,这些都是前些天来在网上找到的并且我想可以有很大帮助的东西。在学校图书馆也找到一本比较有价值的书:<<TCP/IP数据包分析程序篇>>,是一个日本人写的,叫小高知宏。在网上去搜了一下与数据包分析或拦截有关的书,没什么成果。

  如果是用C/C++来写,还是得用到别人已经开发好的库,如libpcap类库。看了一些与libpcap有关的文章,看来如果用到它的话,程序似乎也不会太复杂,对于一个对C++十分熟悉的的人来说。不过我对C++一点都不熟悉,除了一点基本语法之外,我一窍不通。

  另外一种方法我知道的似乎要更复杂一些,至少看起来是这样的。就是编写IM DRIVER在NDIS中间层
对MINIPORT(网卡驱动程序)和协议驱动程序之间的数据包进行拦截,这是微软提供的一种技术,不过据某些blogger说,编写该过滤程序拦截程序非常的复杂,安装也很麻烦。所以我放弃了这种想法。

  我想还有很多方法我没有涉及到,比如说什么NDIS截获数据包之类。

  还是谈谈我决定使用的方法吧。我决定用到用JAVA语言开发的JPCAP类包。起初并不知道有用JAVA写的这个包,可以说我对JAVA还是比较熟悉的,因为一直用JAVA写一些东西。我清楚的知道对于较底层的工作,JAVA还是不如C/C++,核心的JAVA API没有提供访问底层网络数据的方法。所以,很显然的,JPCAP也不是一种纯粹的Java解决方案,它依赖本地库的使用。在Windows 或 UNIX上,必须有必要的第三方库,分别是WinPcap或libpcap。

  基于对JAVA的熟悉与信心,我最后选择了用JAVA开发。继续上网找资料,才发现,与JPCAP相关的东西太少,只发现它的官方网上有些介绍,然后其他地方的东西也都大多相同,且没有什么大太的参考价值。找书,似乎也没什么结果。看来,这次开发并不轻松。

  其实,决定选择哪些方法来开发并不是目前最大的问题,最大的问题是我现在有点困惑,不是因为资料少,而是因为导师和我说的一句话,他说截取TCP连接的数据包不像UDP那么简单,我要考虑到什么时候进行截取,于是困惑来了:我现在还领会不到他的意思。

原创粉丝点击