基于RAW SOCKET的sniffer的开发实战(一)

前段时间学习网络协议的时候下载了一个开源软件的Ethreal源代码在VC中编译了一下,然后根据公司的需要在其中添加了本公司网络程序的协议的分析器。Ethreal的开源目的是让所有使用的人更加了解网络协议和学习网络协议,通过这次对Ethreal软件的扩展确实增加对网络协议的了解,让我从一个对网络协议无知的人渐渐的变成了了解和熟悉网络协议。其实在后来扩展的时候并不需要太多的编程功夫,Ethreal已经建立了很好的框架,协议是一层层的破解的,这也正好符合网络协议特别是TCP/IP的层层叠加的原则;后来为了更换好的学习WINDOWS下的网络编程和TCP/IP协议,就自己动手实现了一个类似的软件,当然我的这个软件仅仅是基于RAW SOCKET的,不象Ethreal是通过hook 住网络驱动来实现;我为软件增加了基本方便的功能,例如:对使用TCP往返时间的计算,网络连接的统计功能等。下面我将和那些刚开始学习网络编程的人一起来实战使用RAW SOCKET实现sniffer。

首先我们来分析一下网络协议捕获器的基本组成吧。

通过学习和理解,我认为任何一个sniffer应该至少有两部分组成:数据包捕获器和数据包分析器。数据包捕获器实际上是根据用户的需要(例如,捕获某种协议,某种端口等),将网络上流动到本地网卡的网络数据包抓取下来,保存到内存或磁盘上。数据包分析器就是从第一步得到的数据包分析,分析它的协议类型、内容等,并以一定的方式显示给用户。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值