网络编程

关注公众号 jb51net

关闭
首页 > 网络编程 >

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

作者:

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

【简 介】
  TCP连接是面向可靠的连接,它通过建立可靠连接实现数据的可靠传输,在应用程序中被广泛使用。由于FTP命令采用的连接就是TCP连接,下面给大家介绍一下如何使用Sniffer工具捕获FTP命令数据包,分析TCP连接建立和结束的详细过程,使大家更好地理解和详细掌握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提示符下,输入“FTP 76.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,ACK SEQ=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工具是一个功能很强的底层抓包工具,作为一名网络管理人员,应学会熟练使用本工具进行网络数据的分析,发现异常数据及时处理,不断提高网络数据分析能力和处理能力。

您可能感兴趣的文章:
阅读全文