实例解说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工具是一个功能很强的底层抓包工具,作为一名网络管理人员,应学会熟练使用本工具进行网络数据的分析,发现异常数据及时处理,不断提高网络数据分析能力和处理能力。

(0)

相关推荐

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

    [简 介] TCP连接是面向可靠的连接,它通过建立可靠连接实现数据的可靠传输,在应用程序中被广泛使用.由于FTP命令采用的连接就是TCP连接,下面给大家介绍一下如何使用Sniffer工具捕获FTP命令数据包,分析TCP连接建立和结束的详细过程,使大家更好地理解和详细掌握TCP连接建立的三次握手过程和四次结束的过程.   一.FTP命令数据包的捕获 1.搭建网络环境.建立一台FTP服务器,设置IP地址为:76.88.16.16.建立一台FTP客户端,IP地址设为76.88.16.104,在其上安装

  • python 利用pyttsx3文字转语音过程详解

    这篇文章主要介绍了python 利用pyttsx3文字转语音过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 # -*- coding: utf-8 -*- import pyttsx3 engine = pyttsx3.init() with open("all.txt",'r',encoding='utf-8') as f: while 1: line = f.readline() print(line, end = '')

  • Python守护进程实现过程详解

    这篇文章主要介绍了Python守护进程实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 如果你设置一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出.如果你的主线程在退出的时候,不用等待那些子线程完成,那就设置这些线程的daemon属性.即在线程开始(thread.start())之前,调用setDeamon()函数,设定线程的daemon标志.(thread.setDaemon(True))就

  • 从web到内网渗透的一次过程详解

    目录 记一次从web到内网的渗透 拓扑图 环境介绍 渗透过程 target1 target2 taget3 记一次从web到内网的渗透 拓扑图 环境介绍 现在有三台机器,分别为target1,target2,target3,里面分别有三个flag,每个flag的分值不同,需要通过拿下一个已知IP(target1)进而向内网里面进行渗透,最终要成功获得三台主机权限 渗透过程 target1 使用nmap进行扫描 可以看到开启了80端口 浏览器访问目标靶机80端口 可以看到就是apache的默认页面

  • Elasticsearches的集群搭建及数据分片过程详解

    目录 Elasticsearch高级之集群搭建,数据分片 广播方式 单播方式 选取主节点 什么是脑裂 错误识别 Elasticsearch高级之集群搭建,数据分片 es使用两种不同的方式来发现对方: 广播 单播 也可以同时使用两者,但默认的广播,单播需要已知节点列表来完成 广播方式 当es实例启动的时候,它发送了广播的ping请求到地址224.2.2.4:54328.而其他的es实例使用同样的集群名称响应了这个请求. 一般这个默认的集群名称就是上面的cluster_name对应的elastics

  • DBA_Oracle Startup / Shutdown启动和关闭过程详解(概念)(对数据库进行各种维护操作)

    一.摘要 Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤: 启动实例-->加载数据库-->打开数据库 因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库. 1. Oracle启动需要经历四个状态:SHUTDOWN .NOMOUNT .MOUNT .OPEN 2. Oracle关闭的四种方式:Normal, Immediate, Transactional, Abort 3. 启动和关闭过程详解   二.数

  • JavaScript处理解析JSON数据过程详解

    JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScript 原生格式,这意味着在 JavaScript 中处理 JSON 数据不需要任何特殊的 API 或工具包. JSON的规则很简单: 对象是一个无序的"'名称/值'对"集合.一个对象以"{"(左括号)开始,"}"(右括号)结束.每个"名称"后跟一个":"(冒号):"

  • linux中了minerd之后的完全清理过程(详解)

    一不小心装了一个Redis服务,开了一个全网的默认端口,一开始以为这台服务器没有公网ip,结果发现之后悔之莫及啊 某天发现cpu load高的出奇,发现一个minerd进程 占了大量cpu,google了一下,发现自己中招了 下面就是清理过程 第一步 1.立即停止redis服务,修改端口权限,增加密码措施 2.按照网上的资料 删除 crontab 里的两个内容 sudo rm /var/spool/cron/root sudo rm /var/spool/cron/crontabs/root 3

  • Android4.X中SIM卡信息初始化过程详解

    本文实例讲述了Android4.X中SIM卡信息初始化过程详解.分享给大家供大家参考,具体如下: Phone 对象初始化的过程中,会加载SIM卡的部分数据信息,这些信息会保存在IccRecords 和 AdnRecordCache 中.SIM卡的数据信息的初始化过程主要分为如下几个步骤 1.RIL 和 UiccController 建立监听关系 ,SIM卡状态发生变化时,UiccController 第一个去处理. Phone 应用初始化 Phone 对象时会建立一个 RIL 和UiccCont

  • 基于vue cli重构多页面脚手架过程详解

    官方提供的项目生成工具vue-cli没有对多页面webApp的支持,但是在实际的项目中,我们需要这样的脚手架,参考了很多大牛的方法,这里提供了一种我的单页面脚手架转换为多页面脚手架的方案,供大家参考.不好的地方也请大家指正. 准备 使用vue-cli生成一个你需要的单页面项目脚手架,然后我们就要开始我们的改装工程了. 重构过程 步骤一 改变目录结构 step1 在src目录下面新建views文件夹,然后再views文件夹下新建index文件夹 step2 将src目录下的main.js和App.

随机推荐