点击抓包后,主机上登录ftp,输入用户名、密码,登录成功后,停止抓包并显示
五 分析协议
1. 进入“捕获”――“定义过滤器”。在定义过滤器窗口中,点击“文件”――“新建”。 2. 在“新建捕获文件”窗口中,确认新文件的名称(TCP)并点击OK,然后点击“完成”。 3. 转到“高级”卷标,你会看到系统提供的协议列表。点击IP协议标题旁边的“+”号,到下面找到TCP,然后选中TCP。 4. 点击OK,关闭定义过滤器窗口。 5. 按F10开始捕获TCP流量。 6. 分析捕获到的结果(即解释数据包的内容和协议具体实现过程)。
从上图可以得知TCP的工作方式,因为TCP是提供面向连接的可靠的传输服务。
第1、2、3个数据包是HTTP协议使用下层TCP协议通过三次握手原则建立连接的过程,上图所示,选中三个数据包描述的是TCP三次握手的过程。这样我们可以知道,HTTP通讯是发生在TCP协议之上,缺省端口是TCP的80端口,所以HTTP是一个可靠的协议。第1、2个数据包的长度为66字节,第3个数据包的长度为60字节
下面先对第一个TCP包进行数据分析。 第一行(Source port):2字节,源端口号,即发送这个TCP包的计算机所使用的端口号。 第二行(Destination port):2字节,目标端口号,即接受这个TCP包计算机所使用的端口号。
第三行(Initial Sequence number):4字节,表示发送数据包的排序序列。用以接收的时候按顺序组合和排序。
第四行(Next expected seq number):大小不定,用以表示当前接受到数据包的序号。 第五行(Date offset):1字节,用来说明数据包的大小,从哪里开始哪里结束。 第六行(Reserved Bit):保留空间,以作未来用。 第七至第十三行(Flags):6字节,标志位,有控制功能。分别为URG,紧急指针;ACK,确认指针;PUSH,不用等待缓冲区装满而直接把报文交给应用层;RST,复位指针;SYN,同步信号;FIN,完成或释放指针。 第十四行(Windows):2字节,发送方希望被接受的数据大小。 第十五行(Checksum):2字节,是根据报头和数据字段计算出的校验和,一定由发送端计算和存储的。
第十六行(Urgent pointer):2字节,紧急指针,告知紧急资料所在的位置。 接下来的是任意选项,里面包含了一些选项,如最大数据段大小等
上面三个图分别为前三个数据包中的TCP标记信息,反映了TCP的三次握手过程:客户端向Web服务器发送一个SYN同步连接请求,Web服务器收到请求后向客户端发送一个SYN/ACK数据包,同意客户端的连接请并向客端发起同步,客户端收到该数据包后再次确认,从而成功建立TCP连接。 如上面第一幅图,本机发送一个初始序号(SEQ)455908395给服务器。标志位SYN置为1。 上面第二幅图,服务器收到这个序号后,将应答信号(ACK)和随机产生一个初始序号(SEQ)259161551发回到请求端本机,因为有应答信号和初始序号,所以标志位ACK和SYN都置为1。
上面第三幅图,本机收到服务器的信号后,发回信息给服务器。标志位ACK置为1,其它标志为都为0。注意此时SYN值为0,SYN是标示发起连接的,上两部连接已经完成。