TCP连接建立及结束过程详解


一、FTP命令数据包的捕获
1、搭建网络环境。建立一台FTP服务器,设置IP地址为:76.88.16.16。建立一台FTP客户端,IP地址设为76.88.16.104,在其上安装Sniffer软件。将这两台设备通过集线器连接起来。
2、定义过滤器。在FTP客户端上运行Sniffer软件,进入系统,点“Monitor”-“Matrixa”,选中本机,点鼠标右健,选择“Define Filter…”,在“Define Filter…”窗口,点“Advanced”,选择IP->TCP->FTP,点“确定”,即已定义好过滤器,如图1所示。
图1
3、捕获FTP命令数据包。首先,在Sniffer中选择“Monitor”-“Matrix”,点击“Capture”命令开始捉包。然后,在FTP客户端上进入DOS提示符下,输入“FTP76.88.16.16”命令,输入FTP用户名和口令,登录FTP服务器,进行文件的下载,最后输入“bye”命令退出FTP程序,完成整个FTP命令操作过程。最后,点击Sniffer中的“停止捕捉”,选择“Decode”选项,完成FTP命令操作过程数据包的捕获,并显示在屏幕上。  二、TCP连接建立过程详解

图2

图2是通过Sniffer工具捕获的FTP客户端与FTP服务器之间一个TCP连接的建立过程。从图中可以看到Sniffer首先捕获了1、2、3三行记录。其中:
第1行表示:FTP客户端76.88.16.104从1038端口向FTP服务器76.88.16.16的21端口发起一个带有SYN标志的连接请求,初始序列号SEQ=1791872318。
第2行表示:FTP服务器76.88.16.16从21端口向FTP客户端76.88.16.104的1038端口返回一个同时带有SYN标志和ACK标志的应答包,ACK应答序列号SEQ=1791872318+1,SYN请求序列号SEQ=3880988084。
第3行表示:FTP客户端76.88.16.104再向FTP服务器76.88.16.16返回一个包含ACK标志的应答包,应答序列号SEQ=3880988084+1。
至此,FTP客户端和FTP服务器之间就建立了一个安全的可靠的TCP连接。TCP连接建立的三次握手过程示意图如图3所示。
图3
三、TCP连接结束过程详解  
图4
图4是Sniffer捕获到的一个FTP客户端与FTP服务器之间一个TCP连接结束的过程。从图中可以看到在TCP连接结束的过程中Sniffer共捕获到了17、18、19、20四行记录。其中:
第17行表示:FTP服务器76.88.16.16先从21端口向FTP客户端76.88.16.104的1028端口发送一个带有FIN结束标志的连接请求,初始序列号SEQ=1803774978。
第18行表示:FTP客户端76.88.16.104从1028端口向FTP服务器76.88.16.16的21端口返回一个包含ACK标志的应答包,应答序列号SEQ=1803774978+1。
第19行表示:同时,FTP客户端76.88.16.104又从1028端口向FTP服务器76.88.16.16的21端口发送一个同时带有FIN标志和ACK标志的包,FIN序列号SEQ=846902939,ACKSEQ=1803774978+1。
第20行表示:FTP服务器76.88.16.16从21端口向FTP客户端76.88.16.104的1028端口返回一个包含ACK标志的应答包,应答序列号SEQ=846902939+1。
至此,FTP客户端与FTP服务器之间的一个TCP连接就结束了。TCP连接结束的四次过程示意图如图5所示。
图5
四、小结
Sniffer工具是一个功能很强的底层抓包工具,作为一名网络管理人员,应学会熟练使用本工具进行网络数据的分析,发现异常数据及时处理,不断提高网络数据分析能力和处理能力。

相关内容