标题：Windump
用法
驱动下载我们正式开始介绍Windump。该软件是免费软件，命令行下面使用，需要WinPcap驱动，Windump的下载非常方便，很多站点都有，扩展链接里也提供了一个地址。运行现在我们打开一个命令提示符，运行windump后出现：   
D:\tools>windump   
windump:     listening     on     \Device\NPF_{3B4C19BE-6A7E-4A20-9518-F7CA659886F3}   
这表示windump正在监听我的网卡，网卡的设备名称是：   
\Device\NPF_{3B4C19BE-6A7E-4A20-9518-F7CA659886F3}   
如果你看见屏幕上显示出这个信息，说明你的winpcap驱动已经正常安装，否则请下载并安装正确的驱动。参数Windump的参数很多，运行windump     -h可以看到：   
Usage:     windump   
[-aAdDeflnNOpqRStuvxX]   
[-B     size] 
[-c     count]   
[    -C     file_size     ]  
[    -F     file    ]   
[    -i     interface     ] 
[     -r     file     ]   
[   -s     snaplen   ]
[     -T     type    ]   
[    -w     file    ]
[    -E     algo:secret   ]  
[  expression   ]
使用
TCP的三步握手下面我来结合TCP的三步握手来介绍Windump的使用，请接着往下看：   
D:\tools>windump     -n   
windump:     listening     on     \Device\NPF_{3B4C19BE-6A7E-4A20-9518-F7CA659886F3}   
09:32:30.977290     IP     192.168.0.226.3295     >     192.168.0.10.80:     S     912144276:912144276(0)     win     64240     <mss     1460,nop,nop,sackOK>     (DF)//第一行   
09:32:30.978165     IP     192.168.0.10.80     >     192.168.0.226.3295:     S     2733950406:2733950406(0)     ack     912144277     win     8760     <nop,nop,sackOK,mss     1460>     (DF)//第二行   
09:32:30.978191     IP     192.168.0.226.3295     >     192.168.0.10.80:     .     ack     1     win     64240     (DF)//第三行第一行先看第一行。
其中09:32:30.977290表示时间；
192.168.0.226为源IP地址，端口3295，其实就是我自己的那台电脑；192.168.0.10是目的地址，端口80，我们可以判断这是连接在远程主机的WEB服务上面；
S     912144276:912144276(0)表示我的电脑主动发起了一个SYN请求，这是第一步握手，912144276是请求端的初始序列号；
win     64240     表示发端通告的窗口大小；
mss     1460表示由发端指明的最大报文段长度。
这一行所表示的含义是IP地址为192.168.0.226的电脑向IP地址为61.133.136.34的电脑发起一个TCP的连接请求。第二行接下来我们看第二行，时间不说了；
源IP地址为192.168.0.10，而目的IP地址变为192.168.0.226；
后面是S     2733950406:2733950406(0)     ack     912144277，这是第二步握手，2733950406是服务器端所给的初始序列号，ack     912144277是确认序号，是对第一行中客户端发起请求的初始序列号加1。
该行表示服务器端接受客户端发起的TCP连接请求，并发出自己的初始序列号。第三行再看第三行，这是三步握手的最后一步，客户端发送ack     1，表示三步握手已经正常结束，下面就可以传送数据了。握手不成功在这个例子里面，我们使用了-n的参数，表示源地址和目的地址不采用主机名的形式显示而采用IP地址的形式。下面我们再来看看如果三步握手不成功会是怎么样。我先telnet到一台没有开telnet服务的计算机上面：   
C:\Documents     and     Settings\Administrator>telnet     192.168.0.10   
正在连接到192.168.0.10...不能打开到主机的连接，     在端口     23.   
由于目标机器积极拒绝，无法连接。   
这个时候我们再看windump所抓获的数据包：   
D:\tools>windump     -n   
windump:     listening     on     \Device\NPF_{3B4C19BE-6A7E-4A20-9518-F7CA659886F3}   
10:38:22.006930     arp     who-has     192.168.0.10     tell     192.168.0.226//第三行   
10:38:22.007150     arp     reply     192.168.0.10     is-at     0:60:8:92:e2:d//第四行   
10:38:22.007158     IP     192.168.0.226.3324     >     192.168.0.10.23:     S     1898244210:1898244210   
(0)     win     64240     <mss     1460,nop,nop,sackOK>     (DF)   
//第五行   
10:38:22.007344     IP     192.168.0.10.23     >     192.168.0.226.3324:     R     0:0(0)     ack     1898244211     win     0   
//第六行   
10:38:22.478431     IP     192.168.0.226.3324     >     192.168.0.10.23:     S     1898244210:1898244210(0)     win     64240     <mss     1460,nop,nop,sackOK>     (DF)   
10:38:22.478654     IP     192.168.0.10.23     >     192.168.0.226.3324:     R     0:0(0)     ack     1     win     0   
10:38:22.979156     IP     192.168.0.226.3324     >     192.168.0.10.23:     S     1898244210:1898244210   
(0)     win     64240     <mss     1460,nop,nop,sackOK>     (DF)   
10:38:22.979380     IP     192.168.0.10.23     >     192.168.0.226.3324:     R     0:0(0)     ack     1     win     0   
从第三行中，我们可以看见192.168.0.226因为不知道192.168.0.10的MAC地址，所以首先发送ARP广播包；在第四行中，192.168.0.10回应192.168.0.226的请求，告诉192.168.0.226它的MAC地址是0:60:8:92:e2:d。   
第五行中，192.168.0.226向192.168.0.10发起SYN请求，但在第六行中，我们可以看见，因为目标主机拒绝了这一请求，故发送R     0:0(0)的响应，表示不接受192.168.0.226的请求。在接下来的几行中我们看见192.168.0.226连续向192.168.0.10发送SYN请求，但都被目标主机拒绝。