TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG)

在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG

其中,对于我们日常的分析有用的就是前面的五个字段。

它们的含义是:

SYN表示建立连接,

FIN表示关闭连接,

ACK表示响应,

PSH表示有 DATA数据传输,

RST表示连接重置。

其中,ACK是可能与SYN,FIN等同时使用的,比如SYN和ACK可能同时为1,它表示的就是建立连接之后的响应,

如果只是单个的一个SYN,它表示的只是建立连接。

TCP的几次握手就是通过这样的ACK表现出来的。

但SYN与FIN是不会同时为1的,因为前者表示的是建立连接,而后者表示的是断开连接。

RST一般是在FIN之后才会出现为1的情况,表示的是连接重置。

一般地,当出现FIN包或RST包时,我们便认为客户端与服务器端断开了连接;而当出现SYN和SYN+ACK包时,我们认为客户端与服务器建立了一个连接。

PSH为1的情况,一般只出现在 DATA内容不为0的包中,也就是说PSH为1表示的是有真正的TCP数据包内容被传递。

TCP的连接建立和连接关闭,都是通过请求-响应的模式完成的。

TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG)

TCP三次握手

TCP(Transmission Control Protocol)传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:

位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急)Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:

主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机;

第二次握手:

主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包;

第三次握手:

主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG)

TCP 四次挥手

当数据传输完成后,两台主机需要通过四次会话断开连接,这个过程我们称为四次挥手。

第一次挥手:

客户端向服务端请求断开连接,

FIN=1(断开连接),

seq=u(序列号),

客户端进入 FIN_WAIT_1 状态。

第二次挥手:

服务端向客户端返回确认报文,

ACK=1 (已收到),

ack=u+1(确认号为收到的序列号加一),

seq=v(序列号),

服务端进入 CLOSE_WAIT 状态,客户端进入 FIN_WAIT_2 状态。

第三次挥手:

服务端完成数据传输后,向客户端发送断开连接请求,

FIN=1(断开连接),

ACK=1 (已收到),

ack=u+1(确认号为收到的序列号加一),

seq=w(序列号),

服务端进入 LAST_ACK 状态。

第四次挥手:

客户端向服务端返回确认报文,

ACK=1 (已收到),

ack=w+1(确认号为收到的序列号加一),

seq=u+1(序列号),

客户端进入 TIME_WAIT 状态,服务端进入 CLOSED 状态。

客户端处于 TIME_WAIT 状态时,TCP 连接还未释放掉,等待 2 个 MSL(Maximum Segment Lifetime,最大段生命周期)的时长后,客户端进入 CLOSE 状态。

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/6159

(0)
郭靖的头像郭靖
上一篇 2022年11月19日 下午12:10
下一篇 2022年11月19日 下午5:43

相关推荐

  • 路由策略

    1、网络拓扑图 2、网络目的 需求 1)市场部不能访问财务部 2)市场部可以访问公司总部 3)财务部可以访问公司总部 4)技术部不能对外访问 3、实现的技术1)filter-policy 技术 filter-policy 2000 import acl number 2000 rule 5 deny source 10.1.1.0 0.0.0.255 rul…

    2024年6月20日
    1.2K00
  • 将 COS 作为本地磁盘挂载到 Windows 服务器

    下载与安装 本案例实践使用到以下三种软件,您可选择安装适用于自己所使用系统的软件版本: 说明: Github 下载速度可能比较慢甚至打不开,可自行在其他官方渠道进行下载。 配置 Rclone 注意: 以下配置步骤以 rclone-v1.60.1-windows-amd64 版本为例,其他版本的配置过程可能存在一定差异,请注意相应调整。 修改配置文件 以上步骤…

    2023年3月8日
    1.5K00
  • 小型企业网络组网与配置仿真实验

     实验要求如下: 我这里以学号46为例 一、IP 地址规划表 (一)主类网络 (二)子网划分需要自己计算有效ip范围 在C类主网络192.168.46.0/24中,我们需要先了解这个网络的子网掩码为255.255.255.0,其二进制表示为11111111.11111111.11111111.00000000。这个网络包含了从192.168.46.1到192…

    2024年7月3日
    2.5K00
  • 网管最后的倔强——你要上网可以,但是走哪条链路由我说了算

    作为一名合格的网管,除了修得了电脑,还要换得了灯泡;除了能折腾服务器,还得做好物业服务,要么擅长通下水道,要么会修中央空调。 但是,千万别说网管没脾气,他们也有倔强的时候,比如说,你想要上网,那没问题,但是走哪条链路(上高速还是走国道),那就是网管说了算。 如上图所示,公司有两条外部网络链,其中,左边一条是高速链路,网关为10.1.10.1/24;右边一条是…

    2024年5月22日
    1.1K00
  • 宝塔面板下,打开phpmyadmin显示空白页的解决方法

    在宝塔面板里装完phpmyadmin但是进不去数据库的这种情况太常见了 1. 没开放888端口 当我们进phpmyadmin的时候,端口默认为888,这时,我们就要检查宝塔面板和阿里云或腾讯云等控制器里的安全组的888端口是否开放。 2. 环境不兼容 如果是纯静态,选择php版本即可。 如果PHP版本较高,则可以切换到低版本的PHP。

    2022年6月11日
    2.5K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信