当前位置: 首页 > news >正文

TCP状态转换

在这里插入图片描述

欢迎关注博主 Mindtechnist 或加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。


TCP状态转换


专栏:《Linux从小白到大神》《网络编程》


TCP状态转换示意图如下

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KZxzKi3z-1677484783567)(Typora_picture_reference/1661863972737.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9JEz7mY8-1677484783568)(Typora_picture_reference/1661864004183.png)]

针对上面的示意图,主要对以下几点进行解析

  • 有哪些进程状态是可以捕捉到的?

    • LISTEN、ESTABLISHED、等,其他状态时间很短暂,捕捉不到。
    • netstat命令可以捕捉状态。
  • 2MSL是什么?

    • 2MSL是等待时长,主动关闭连接的一方将会处于TIME_WAIT状态。
    • 1MSL大概是30S,处于TIME_WAIT状态的进程(主动断开连接的进程)不会立即终止,而是会等待2MSL的时间;而被动断开连接的一方,在LAST_ACK状态,一旦收到对方的ACK就会立即终止进程。
  • 为什么主动断开的一方要等2MSL而被动断开的一方不需要等呢?

    • 因为有可能会出现这种情况,主动断开的一方(比如是client)属于TIME_WAIT时,向被断开的一方(比如说server)发送ACK,有可能对方没有收到,这时侯server会再发一次FIN,也就需要client再回复一次ACK(如果client没有等待就终止了,那么server发送的FIN就发送不到了,四次挥手就失败了),所以主动断开连接的一方要等待,来保证正常断开连接,而被断开的一方收到ACK就可以终止进程了,此时连接正常断开。
  • 什么是半关闭?

    • 如何理解半关闭

      • A给B发送FIN(A调用了close函数), 但是B没有给A发送FIN(B没有调用close)
      • A断开了与B的连接, B没有断开与A的连接
    • 特点:

      • A不能给B发送数据, A可以收B发送的数据
      • B可以给A发送数据
    • 函数: int shutdown(int sockfd, int how);

      • sockfd: 要半关闭的一方对应的文件描述符

      • 通信的文件描述符

      • how:(可以只关读、只关写,或读写都关)

        • SHUT_RD - 0 - 读
        • SHUT_WR - 1 - 写
        • SHUT_RDWR - 2 - 读写
  • 使用close()函数能否实现半关闭?

    • 不能。使用dup2函数可以复制一个文件描述符fd指向和sfd一样的内容,如果使用close(fd)关闭了对内核缓冲区的读写,但是还存在一个文件描述符sfd可以读写内核缓冲区,也就是说通信依然可以进行,这样并不能实现真正的半关闭。使用shutdown函数可以实现半关闭,是因为shutdown(fd, SHUT_RD)虽然在函数中只对fd关闭了读,但是它实际上是将缓冲区的读给关闭了,所有文件描述符(不管有多少个),都不能再读缓冲区了。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9YpOxO0n-1677484783569)(Typora_picture_reference/1661865063373.png)]

在使用套接字通信时,可以使用netstat命令捕捉进程状态或使用netstat查看网络相关状态信息,netstat的常用参数如下:

  • -a (all)显示所有选项,默认不显示LISTEN相关进程,不加-a就不显示LISTEN进程。

  • -p 显示建立相关链接的程序名。

  • -n 拒绝显示别名,能显示数字的全部转化成数字。

  • -t (tcp)仅显示tcp相关选项。

  • -u (udp)仅显示udp相关选项。

  • -l 仅列出有在 Listen (监听) 的服务状态。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Nhn1aBx-1677484783569)(Typora_picture_reference/1661865408314.png)]


在这里插入图片描述
在这里插入图片描述


相关文章:

TCP状态转换

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起探讨和分享Linux C/C/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。 TCP状态转换专栏:《Linux从小白到大神》《网络编程》 TCP状态转换示意图如下 针对上面的示…...

3500年里,印度被11个文明征服

转自:3500年里,印度被11个文明征服,如今看似统一,实际上却是缝合怪 (qq.com)今天的印度是亚洲第二大国,南亚第一大国,世界第二人口大国。如果我们将时间线拉长,纵观历史的长河,就会惊…...

Java编程问题top100---基础语法系列(一)

Java编程问题top100---基础语法系列一一、Java 操作符实质二、将InputStream转换为String使用IOUtils自己写轮子三、将数组转换为List四、如何遍历map对象使用For-Each迭代entries(方法一)使用For-Each迭代keys和values(方法二)使…...

【C#基础】C# 异常处理操作

序号系列文章6【C#基础】C# 常用语句讲解7【C#基础】C# 常用数据结构8【C#基础】C# 面向对象编程文章目录前言1,异常的概念2,处理异常3,自定义异常4,编译器异常结语前言 🌷大家好,我是writer桑,…...

系统分析师---操作系统思维导图

进程管理(5星) 进程与线程:共享:内存地址空间、代码、数据、文件等不能共享:独立的cpu运行上下文和栈指针、寄存器 信号量与PV操作:信号量,一种特殊的变量分为:信号量可以表示资源数…...

Linux | Ubuntu20.04系统使用命令从移动硬盘/U盘拷贝文件到服务器上

*确认自己移动硬盘、U盘的格式,本文为exfat格式STEP1:把移动硬盘插到Ubuntu系统的主机上查看disk默认位置#查看移动硬盘/U盘在哪个位置命令 fdisk -l #查询后出现了包含电脑系统的所有硬盘查看最后的位置,我的显示为Device, 位置为 /dev/sdb1…...

【经验总结】10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的?

【经验总结】一位近10年的嵌入式开发老手,到底是如何快速学习和使用RT-Thread的? RT-Thread绝对可以称得上国内优秀且排名靠前的操作系统,在嵌入式IoT领域一直享有盛名。近些年,物联网产业的大热,更是直接将RT-Thread这…...

一起Talk Android吧(第五百零九回:约束布局中的组功能一)

文章目录功能介绍使用方法GroupLayer对比总结各位看官们大家好,上一回中咱们说的例子是"多层布局功能",这一回中咱们说的例子是"约束布局中的组功能"。闲话休提,言归正转, 让我们一起Talk Android吧! 功能介…...

2023安徽省“中银杯”职业技能大赛“网络安全” 项目比赛任务书

2023安徽省“中银杯”职业技能大赛“网络安全” 项目比赛任务书2023安徽省“中银杯”职业技能大赛“网络安全” 项目比赛任务书A模块基础设施设置/安全加固(200分)A-1:登录安全加固(Windows, Linux)A-2:Ngi…...

观测云产品更新|新增用户访问监测自动化追踪;新增 CDN 质量分析;新增自定义查看器导航菜单等

观测云更新 用户访问监测优化 新增用户访问监测自动化追踪 用户访问监测新增自动化追踪,通过“浏览器插件”的实现方式,使用浏览器记录用户访问行为,创建无代码的端到端测试。更多详情可参考文档【 自动化追踪 】https://docs.guance.com/…...

大数据技术生态全景一览

大数据技术生态全景一览大数据平台ETL数据接入大数据平台海量数据存储大数据平台通用计算大数据平台各场景的分析运算分布式协调服务任务流调度引擎大数据平台ETL数据接入 大数据有很多的产品,琳琅满目。从架构图上就能看出产品很多。这些产品它们各自的功能是什么…...

CI/CD | 深入研究Jenkins后,我挖掘出了找到了摆脱低效率低下的方法

在本系列的第一篇文章中,您已经了解了一些关于如何管理Jenkins的内容,主要是为无序的人带来秩序。在这篇文章中,我将更深入地探讨我效率低下的问题,提出我们工作流中一些安全性、治理和合规性的挑战。这不仅仅是你在网站上或展览横…...

刷LeetCode

文章目录滑动窗口算法1 涉及知识点 :unordered_set 容器2 参数详情3 例题滑动窗口算法 滑动的窗口,每次记录下窗口的状态,再找出符合条件的窗口使用滑动窗口减少时间复杂度 1 涉及知识点 :unordered_set 容器 说明:…...

Spring 大白话系列:工厂

Spring 大白话系列:工厂 “工厂模式,大家都很熟悉了。说到底,就是解除创建对象和使用对象之间的耦合。这东西没啥啊。” 教室里,老师傅听到小明在嘀嘀咕咕的。老师走过去问: “有什么问题呢小明同学?” 小…...

喜讯!华秋电子荣获第六届“蓝点奖”十佳分销商奖

2 月 25 日,由深圳市电子商会主办的2023 中国电子信息产业创新发展交流大会暨第六届蓝点奖颁奖盛典在深圳隆重举行。 图:华秋商城渠道总监杨阳(右三) 深圳市电子商会连续六年举办“蓝点奖”评选活动,旨在表彰对电子信…...

Linux概述

1:Linux概述1.1:操作系统常见操作系统有:Windows、MacOS、Linux。名称描述Windows微软公司研发的收费操作系统。分为两类:用户操作系统、Server操作系统。用户操作系统:win 95、win 98、win NT、win Me、win xp、vista…...

中级嵌入式系统设计师2015下半年上午试题及答案解析

中级嵌入式系统设计师2015下半年上午试题 单项选择题 1、CPU是在______结束时响应DMA请求的。 A.一条指令执行 B.一段程序 C.一个时钟周期 D.一个总线周期 2、虚拟存储体系由______两级存储器构成。 A.主存-辅存 B.寄存器-Cache C.寄存器-主存...

华为OD机试模拟题 用 C++ 实现 - 删除指定目录(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 最多获得的短信条数(2023.Q1)) 文章目录 最近更新的博客使用说明删除指定目录题目输入输出示例一输入输出说明Code使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为…...

【正点原子FPGA连载】第二十章AXI4接口之DDR读写实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第二十章AXI4接口…...

超出认知的数据压缩 用1-bit数据来表示32-bit的梯度 语音识别分布式机器学习 梯度压缩 论文精读

说明 介绍1−bit1-bit1−bit论文内容。 原文链接:1-bit stochastic gradient descent and its application to data-parallel distributed training of speech DNNs | Semantic Scholar ABS 实验证明在分布式机器学习的过程中能够通过将同步所传递的梯度进行量化…...

深度剖析指针(上)——“C”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是指针噢,在学习C语言的过程中,指针算是一个比较重要的内容,当然,难度也是比较大的,那么现在就让小雅兰来带大家进入指针的世界吧 字符指针 数组指针…...

学习 Python 之 Pygame 开发魂斗罗(六)

学习 Python 之 Pygame 开发魂斗罗(六)继续编写魂斗罗1. 创建碰撞类2. 给地图添加碰撞体3. 让人物可以掉下去4. 实现人物向下跳跃5. 完整的代码继续编写魂斗罗 在上次的博客学习 Python 之 Pygame 开发魂斗罗(五)中,我…...

LeetCode题解:1238. 循环码排列,归纳法,详细注释

原题链接: https://leetcode.cn/problems/circular-permutation-in-binary-representation/ 前置条件: 在解题之前,请先一定要阅读89.格雷编码的题解格雷编码可以满足题目的条件“p[i] 和 p[i1] 的二进制表示形式只有一位不同”&#xff0c…...

全新后门文件Nev-3.exe分析

一、 样本发现: 蜜罐 二、 内容简介: 通过公司的蜜罐告警发现一个Nev-3.exe可执行文件文件,对该样本文件进行分析发现,该可执行程序执行后会从远程服务器http://194.146.84.2:4395/下载一个名为“3”的压缩包,解压后…...

线性回归系数解释

线性回归系数解释线性回归系数1、R2R^2R2(R方,R-Square)2、Adj−R2Adj-R^2Adj−R2(调整后的 R 方)3、标准误差4、FFF 值5、FFF 显著度6、置信区间7、PPP 值线性回归系数 回归模型得到后会有多个系数,这些系…...

22.2.27打卡 Codeforces Round #852 (Div. 2) A~D

A Yet Another Promotion 题面翻译 题目描述 共 ttt 组数据,每组数据中,你需要买 nnn 公斤苹果,第一天单价为 aaa ,但每买 mmm 公斤赠送一公斤;第二天单价为 bbb 。求最小花费。 输入输出格式 第一行一个正整数 …...

如何查看Spring Boot各版本的变化

目录 1.版本 2.基础特性和使用 3.新增特性和Bug修复 1.版本 打开Spring官网,点进Spring Boot项目我们会发现在不同版本后面会跟着不同的标签: 这些标签对应不同的版本,其意思如下: GA正式版本,通常意味着该版本已…...

程序员是否要加入创业公司?

我从1月份入职到2月份离职,历时一个半月。短暂的体验了一段创业生活,更准确的说是一段“待在”创业团队的生活,因为我发现创业本身跟我关系不大。一个半月的就业经历,对任何人来说都不是一个好选择,当然也不是我所期望…...

2023软件测试工程师全新技术栈,吃透这些,起薪就是25k~

相信每个准备软件测试面试的同学,不管你是大学刚毕业,满心憧憬着进入公司实习、非计算机行业转行软件测试、自学测试就业还是培训后就业,都会面临着众多的疑问和不解,那就是该怎么走出着第一步,今天本文一次性告诉你&a…...

【ChatGPT情商大考验】ChatGPT教我谈恋爱

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…...

企业网站托管一个月多少钱/什么是关键词排名优化

经常有小伙伴有这样的疑问:为什么线上Kafka机器各个磁盘间的占用不均匀,经常出现“一边倒”的情形? 这是因为Kafka只保证分区数量在各个磁盘上均匀分布,但它无法知晓每个分区实际占用空间,故很有可能出现某些分区消息数…...

礼县建设局网站/深圳网络推广培训中心

几句话掌握子网掩码、ip地址、主机号、网络号、网络地址、广播地址191.172.16.10.33/27 中的/27也就是说子网掩码是255.255.255.224 即27个全12.从子网掩码255.255.255.252得出其网络位为30位,所以只有剩下的2位为主机位,主机位全零的为网络地址&#xf…...

dwcs2018怎么做动态网站/高明公司搜索seo

EG&#xff1a;打印文件结果打印出一片空白 原因&#xff1a;使用了null的数据源而不是JREmptyDataSource 以下为正确代码 public <T> List<JasperPrint> createJasperPrint_1(List<T> list, Map<String, Object> imgMap, Map<String, Object>…...

惠州网络公司网站建设/营销技巧

1 简介之前已经讲过TextView的基础知识&#xff0c;现在在这进一步进行讲解&#xff0c;这篇文字主要讲解如何给TextView设置段落级别的Span。如果一个Span想要影响段落层次的文本格式&#xff0c;则需要实现ParagraphStyle。2 ParagraphStyleParagraphStyle是一个接口&#xf…...

新开传奇网站195合击/网站优化内容

父类和子类 子类对象也是是父类的对象。 子类继承所有父类的属性。 父类的属性&#xff0c;在子类中都有&#xff0c;各子类中还有自己特有的属性。 父类上的关联关系&#xff0c;会体现在每个子类身上。子类身上的关联关系仅仅体现在子类自己身上。 这里&#xff0c;每个病人…...

有经验的合肥网站建设/软件公司

XSS的原理分析与解剖 001 前言: 《xss攻击手法》一开始在互联网上资料并不多(都是现成的代码&#xff0c;没有从基础的开始)&#xff0c;直到刺的《白帽子讲WEB安全》和cn4rry的《XSS跨站脚本攻击剖析与防御》才开始好转。 我这里就不说什么xss的历史什么东西了&#xff0c;xss…...