【TCP】状态转换

news2024/11/24 18:35:01

TCP状态转换

这个图N多人都知道,它排除和定位网络或系统故障时大有帮助,但是怎样牢牢地将这张图刻在脑中呢?那么你就一定要对这张图的每一个状态,及转换的过程有深刻的认识,不能只停留在一知半解之中。下面对这张图的11种状态详细解析一下,以便加强记忆!不过在这之前,先回顾一下TCP建立连接的三次握手过程,以及 关闭连接的四次握手过程。

CLOSED:表示初始状态。

LISTEN:该状态表示服务器端的某个SOCKET处于监听状态,可以接受连接。

SYN_SENT:这个状态与SYN_RCVD遥相呼应,当客户端SOCKET执行CONNECT连接时,它首先发送SYN报文,随即进入到了SYN_SENT状态,并等待服务端的发送三次握手中的第2个报文。SYN_SENT状态表示客户端已发送SYN报文。

SYN_RCVD: 该状态表示接收到SYN报文,在正常情况下,这个状态是服务器端的SOCKET在建立TCP连接时的三次握手会话过程中的一个中间状态,很短暂。此种状态时,当收到客户端的ACK报文后,会进入到ESTABLISHED状态。

ESTABLISHED:表示连接已经建立。

FIN_WAIT_1: FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。区别是:

FIN_WAIT_1状态是当socket在ESTABLISHED状态时,想主动关闭连接,向对方发送了FIN报文,此时该socket进入到FIN_WAIT_1状态。

FIN_WAIT_2状态是当对方回应ACK后,该socket进入到FIN_WAIT_2状态,正常情况下,对方应马上回应ACK报文,所以FIN_WAIT_1状态一般较难见到,而FIN_WAIT_2状态可用netstat看到。

FIN_WAIT_2:**主动关闭链接的一方,发出FIN收到ACK以后进入该状态。称之为半连接或半关闭状态。**该状态下的socket只能接收数据,不能发。

TIME_WAIT: 表示收到了对方的FIN报文,并发送出了ACK报文,等2MSL后即可回到CLOSED可用状态。如果FIN_WAIT_1状态下,收到对方同时带 FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。

CLOSING: 这种状态较特殊,属于一种较罕见的状态。正常情况下,当你发送FIN报文后,按理来说是应该先收到(或同时收到)对方的 ACK报文,再收到对方的FIN报文。但是CLOSING状态表示你发送FIN报文后,并没有收到对方的ACK报文,反而却也收到了对方的FIN报文。什么情况下会出现此种情况呢?如果双方几乎在同时close一个SOCKET的话,那么就出现了双方同时发送FIN报文的情况,也即会出现CLOSING状态,表示双方都正在关闭SOCKET连接。

CLOSE_WAIT: 此种状态表示在等待关闭。当对方关闭一个SOCKET后发送FIN报文给自己,系统会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,察看是否还有数据发送给对方,如果没有可以 close这个SOCKET,发送FIN报文给对方,即关闭连接。所以在CLOSE_WAIT状态下,需要关闭连接。

LAST_ACK: 该状态是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,即可以进入到CLOSED可用状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/559887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Blender 建模风扇(UV贴图、图像纹理、环境纹理、伽玛、Cycles渲染)

目录 1. 风扇建模1.1 风扇外壳1.2 风扇内壳1.3 前盖1.4 后盖1.5 风扇叶1.6 扇叶连接部分1.7 其他细节 2. UV、材质、渲染2.1 材质属性:图像纹理2.2 UV贴图2.3 基础材质2.4 伽玛值2.5 世界属性:环境纹理2.6 背景平面2.7 灯光、摄像机2.8 渲染属性2.9 渲染…

COCO-Annotator安装和使用 [非常详细]

COCO-Annotator安装和使用 1.所需环境 安装COCO-Annotator前需要先安装Docker,有需要可以参考这篇文章:Windows下安装docker 2.安装 在要安装的目录下进入cmd输入命令 git clone https://github.com/jsbroks/coco-annotatorcd命令进入文件夹 cd co…

DICOM通信协议标准解析

DICOM通信协议的特点和内容概述 DICOM标准的主要特点 DICOM标准的主要特点 是一种上层网络协议 只有在建立“关联”之后,才能进行DICOM命令和数据的发送和接收。 DICOM编码的特点 标准定义了26中内部数据类型像素数据的编码支持JPEG的图像压缩图像可以包含缩略…

《元宇宙之声》:Meta MCDH

为下一代建造未来就绪的校园。 在本期节目中,我们访问了香港路德会马锦明慈善基金马陈端喜纪念中学(MCDH)的陈婉玲校长,讨论了 MCDH 改革教育的愿景,通过培养年轻的创作者,让他们迈出进入 The Sandbox 的第…

【谷粒商城之秒杀服务】

本笔记内容为尚硅谷谷粒商城秒杀服务部分 目录 一、秒杀业务的介绍 秒杀设计 秒杀流程 二、搭建秒杀服务环境 1、秒杀服务后台管理系统 2、搭建秒杀服务环境 二、定时任务 1、cron 表达式 2、测试 三、商品上架 1、远程查询秒杀的活动以及关联的商品信息 2、在R…

「一本通 1.2 练习 3」灯泡

题目描述 相比 w i l d l e o p a r d wildleopard wildleopard 的家,他的弟弟 m i l d l e o p a r d mildleopard mildleopard 比较穷。他的房子是狭窄的而且在他的房间里面仅有一个灯泡。每天晚上,他徘徊在自己狭小的房子里,思考如何赚…

探索Kotlin 1.8.20新特性

探索Kotlin 1.8.20新特性 Kotlin 1.8.20已经发布,我们将探索一些新功能和改进。 我们将仅涵盖新的语言功能和标准库更新。请参考参考资料部分以了解此版本的完整详情。 语言更新 Enum 类entries函数 为什么需要这个函数? values() - 返回数组&#x…

电商数仓建模案例

目录 一、数据仓库分层规划二、数据仓库构建流程2.1 数据调研2.2 明确数据域2.3 构建业务总线矩阵2.4 明确统计指标2.4 维度模型设计2.5 汇总模型设计 三、数仓建模之ODS层3.1 日志表3.1.1 日志表表结构 3.2 业务表3.2.1 业务表表结构 四、数仓开发之DIM层4.1 商品维度表4.2 优…

The Sandbox 与 Biconomy 合作,达成交易里程碑

双方将继续合作利用 Polygon Labs 来降低用户的成本和 The Sandbox 的碳足迹。 我们团队继续推动更好的整体项目生态系统的可持续性,同时沿途的里程碑向我们展示这些进展产生的影响。我们很高兴地宣布,自从在 Biconomy.io 的帮助下首次在 Polygon 上部署…

网络地址转换:DNAT和SNAT有啥区别?分别用于什么场景?

什么是网络地址转换(NAT)? 网络地址转换(Network Address Translation,简称NAT)是一种常见的网络技术,用于在私有网络(如家庭或办公室网络)与公共网络(如互联…

POI Excel 基础(一)

POI 5.2.3 官网 github POI-HSSF and POI-XSSF/SXSSF 用于访问Microsoft Excel格式文件的Java API HSSF:是Horrible SpreadSheet Format的缩写,也即“可怕的电子表格格式” 是操作Excel97-2003版本,扩展名为.xls。XSSF: 是操作…

【JavaSE】Java基础语法(三)

文章目录 1. 🍼流程控制语句1.1 流程控制语句分类1.2 分支结构之if语句1.2.1 if语句格式3案例 2. 🍼switch语句2.1 分支语句switch语句2.2 switch案例-减肥计划2.3 switch语句case穿透 3. 🍼for 循环3.1 循环语句-for循环3.2 for循环案例-求1…

项目集管理—项目集相关方参与

项目集相关方参与是识别和分析相关方需求、管理期望和沟通,以促进相关方支持的绩效领域。 本章内容包括: 1 项目集相关方识别2 项目集相关方分析3 项目集相关方参与规划4 项目集相关方参与5 项目集相关方沟通 相关方是指能够影响项目、项目集或项目组合…

Java 实现实时监听MySQL数据库变更MySQLBinListener

目录 1、导出需要的类和接口 2、 定义 MySQLBinlogListener类 3、私有方法,启动重连定时器 4、完整代码 编写一个MySQL数据库实时变更的监听器。 为什么要编写这个一个监听器:为了实时监测和响应MySQL数据库中的变更事件 实时数据同步:通…

运营-12.转化

用户注册、登录、浏览、发布、购买等行为都可以视为转化;而对于电商产品而言,狭义的转化即为获取 收入,就是要用户买单、消费,把免费用户转化为付费用户; 转化的重要性 1.转化意味着用户有投入,投入即沉没成…

Serverless冷扩机器在压测中被击穿问题 | 京东云技术团队

一、现象回顾 在今天ForceBot全链路压测中,有位同事负责的服务做Serverless扩容(负载达到50%之后自动扩容并上线接入流量)中,发现新扩容的机器被击穿,监控如下(关注2:40-3:15时间段的数据)&…

人工智能AI 计算平台介绍

人工智能AI计算平台介绍 产品及服务: 标准模块开源 核心模块及服务收费 资源齐全 服务支持 产品使用者: 自行扩充组件 快速二次开发 轻松搭建企业级 数据挖掘应用 自…

linux0.12-10-1-总体功能

第10章 字符设备驱动程序 [466页] 10-1 总体功能 本章的程序可分成三部分: 第一部分是是关于RS-232串行线路驱动程序,包括程序rs_io.s和serial.c; 第二部分是涉及控制台的驱动程序,包括键盘中断驱动程序keyboard.S和控制台显示驱动程序con…

人工智能AI会话+文字转为markdown格式/思维导图的工具的介绍和使用

AI会话工具和文字转换为markdown格式 1、这里首先要有一个xmind思维导图软件,下载链接在下方。XMind: 2、本章中列举的AI工具是近期国内交火的prompt(文心一言 作者还没排上队) https://chat.givemeprompt.com/3、首先运用此工具生成你想要的…

leetcode刷题之数组问题总结,二分法,移除元素,

目录 一、二分查找相关应用704.二分查找35.搜索插入位置方法一:二分法暴力解法 34.在排序数组中查找元素的开始位置和最后一个位置方法一:暴力解法方法二:二分法,确定左右两侧的边界 69.x的平方根方法一:二分法方法二:暴力解法错解…