分类: LINUX
2008-05-04 23:30:57
以太网是现在应用最广泛的计算机连网方式。以太网协议是在同一回路向所有主机发送数据包信息。数据包头包含有目标主机的正确地址。一般情况下只有具有该地址的主机会接受这个数据包。如果一台主机能够接收所有数据包,而不理会数据包头内容,这种方式通常称为”混杂”模式。与电话电路不同,计算机网络是共享通讯通道的。支持每对通讯计算机独占通道的交换机/集线器仍然过于昂贵。共享意味着计算机能够接收到发送给其它计算机的信息。捕获在网络中传输的数据信息就称为sniffing(窃听)。
具有sniffing功能的软件在各种平台都有很多,比如linux下的tcpdump,我们下面要介绍的是windows下的sniffer。如图:
下面我们来通过sniffer监听的一个DHCP过程来学习其使用方法。
在安装完成此软件之后将其运行,如图:
选择“捕获→开始”,sniffer就开始在网络当中监听了,选择“停止并显示”就可以停止监听并且显示捕获结果以供分析了。如图:
下面我们来看看捕获的结果,如图:
我们可以看到,捕获的结果可以分三部分,最上面是摘要部分,中间是数据包拆分/分析部分,最下面是数据包真正的数据。其中,在摘要部分我们可以看到sniffer捕获到一个完整的DHCP过程。我们来一步步分析下这个过程。
我们知道,数据包的封装是由上而下的,即由OSI七层模型的最上层也就是应用层开始,一层层往下封装。而我们sniffer分析包的过程的则是正好相反的,是由下往上一步步拆封的。由图,我们也可以看出来,它是由数据连路层(DLC)到网络层(IP)再到传输层(UDP)最后到应用层(DHCP)这样一个顺序来分析的。对结果的具体分析,我已经标注在图上了,这里不再赘述。