TCP的四次挥手与TCP状态转换

news2024/11/24 15:04:26

文章目录

    • 四次挥手场景
    • 步骤
    • TCP状态转换

四次挥手场景

TCP客户端与服务器断开连接的时候,在程序中使用close()函数,会使用TCP协议四次挥手。

客户端和服务端都可以主动发起。

因TCP连接时候是双向的,所以断开的时候也是双向的。

步骤

在这里插入图片描述
三次挥手可以吗?可以是可以,和状态有关。
四次挥手是用于客户端和服务器断开连接的时候,可以由客户端或者服务器任一方主动发起断开请求。
第一次挥手主动方发起,如客户端发起断开连接请求,服务器同意请求但还有数据发送的时候,可以继续发送,当服务器想断开连接的时候进行第三次挥手,发送断开连接请求,然后客户端应答。

三次握手为什么是三次不是四次?
三次握手由客户端主动发起,客户端请求连接的时候,服务器若不同意直接拒绝,若同意说明肯定也要请求和客户端建立连接,所以同意和请求连接一起传输,进行第二次握手,然后客户端同意服务器请求进行第三次握手。

在这里插入图片描述

TCP状态转换

在这里插入图片描述
在这里插入图片描述
等2MSL目的是确保另一方收到同意断开请求,被动方发送FIN后没有收到ACK会重传FIN,直到收到ACK。

在这里插入图片描述

握手与挥手/状态ClientServer
LISTEN
第一次握手SYN_SENT–>LISTEN->SYN_RCVD
第二次握手SYN_SENT->ESTABLISHED<–SYN_RCVD
第三次握手ESTABLISHED–>SYN_RCVD->ESTABLISHED
数据传输
第一次挥手->FIN_WAIT_1–>CLOSE_WAIT
第二次挥手FIN_WAIT_1->FIN_WAIT_2<–CLOSE_WAIT
第三次挥手TIME_WAIT<–CLOSE_WAIT->LAST_ACK
第四次挥手TIME_WAIT–>LAST_ACK

注意:

  • 连接三次握手主动发起方需要是客户端。
  • 断开连接请求的四次挥手主动发起方可以是客户端或者服务器的任一方。

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

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

相关文章

dueling network原理和实现

算法原理&#xff1a; Q ( s , a ; θ , α , β ) V ( s ; θ , β ) ( A ( s , a ; θ , α ) − max ⁡ a ′ ∈ ∣ A ∣ A ( s , a ′ ; θ , α ) ) . \begin{gathered}Q(s,a;\theta,\alpha,\beta)V(s;\theta,\beta)\left(A(s,a;\theta,\alpha)-\max_{a\in|\mathcal{A}…

网络编程(JavaEE初阶系列10)

目录 前言&#xff1a; 1.网络编程的基础 1.1为什么需要网络编程 1.2什么是网络编程 1.3网络编程中的基本概念 1.3.1发送端和接收端 1.3.2请求和响应 1.3.3客户端和服务端 2.Socket套接字 2.1概念 2.2分类 3.UDP数据报套接字编程 3.1DataGramSocket API 3.2Datagr…

【刷题笔记8.8】LeetCode题目:两数之和

LeetCode&#xff08;Hot100&#xff09;&#xff1a;两个数之和 题目描述及示例&#xff1a; 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会…

《合成孔径雷达成像算法与实现》Figure3.3

代码复现如下&#xff1a; clc clear all close all%参数设置 TBP [25,50,100,200,400]; %时间带宽积 T 1e-6; %脉冲持续时间H figure; for i 1:5% 参数计算B TBP(i)/T; % 信号带宽K B/T; % 线性调频频率alp…

分布式协议与算法——Paxos算法

目录 Paxos算法Basic Paxos算法三种角色如何达成共识&#xff08;协商过程&#xff09;小结&#xff1a; Multi-Paxos算法关于 Multi-Paxos 的思考领导者优化Basic PaxosChubby 的 Multi-Paxos 实现小结 参考 Paxos算法 Paxos论文 Paxos Made Simple 、author&#xff1a;Lesli…

中电金信发布源启·数字构建平台 全面跃升应用研发全生命周期数字生产力

6月28日&#xff0c;中电金信发布源启数字构建平台。源启数字构建平台是企业级研发全生命周期支持管理平台、工程平台、工具链平台。 面向金融等重点行业超大规模、超复杂度的数字化应用&#xff0c;源启数字构建平台通过灵活、强大的平台赋能&#xff0c;端到端支持应用研发全…

[Vulnhub] matrix-breakout-2-morpheus

目录 <1> 信息收集 <2> getshell <3> Privilege Escalation&#xff08;提权&#xff09; <1> 信息收集 nmap -sP 192.168.236.0/24 扫描一下靶机ip 靶机ip: 192.168.236.154 nmap -A -p 1-65535 192.168.236.154 扫描一下靶机开放哪些服务 开放…

SpringMVC与三层架构

目录 一、SpringMVC1.1 概述1.2 SpringMVC核心组件1.3 SpringMVC工作原理1.4 统一异常处理 二、三层架构三、MVC与三层架构3.1 三层架构与MVC的关系3.2 SSM与三层架构的对应关系 一、SpringMVC 1.1 概述 MVC 是模型(Model)、视图(View)、控制器(Controller)的简写&#xff0c…

单元测试用例分组 demo

文章目录 目标1、使用 Category 进行用例分组&#xff08;1&#xff09;设置用例组&#xff08;2&#xff09;编写测试类&#xff0c;case设置对应的用例组&#xff08;3&#xff09;编写执行类&#xff08;4&#xff09;查看运行结果&#xff08;5&#xff09;联系项目 2、参数…

一文搞懂IS-IS报文通用格式

报文格式 IS-IS报文是直接封装在数据链路层的帧结构中的。PDU可以分为两个部分&#xff0c;报文头和变长字段部分。其中头部又可分为通用头部和专用头部。对于所有PDU来说&#xff0c;通用报头都是相同的&#xff0c;但专用报头根据PDU类型不同而有所差别。 IS-IS的PDU有4种类…

Crond计划任务与用户权限提升

目录 一、Crond计划任务 二、用户权限提升 一、Crond计划任务 1&#xff09;一次性任务&#xff1a; at实现&#xff0c;atd服务 查看atd服务的状态&#xff1a;systemctl status atd 书写at任务之前要查看系统时间&#xff1a;date或者hwclock 案例&#xff1a; at ti…

git教程(第一次使用)

一、gitee和github区别 二、git使用 下载地址 windows&#xff1a;https://gitforwindows.org/ mac&#xff1a;http://sourceforge.net/projects/git-osx-installer/ 1.git初次运行前的配置 &#xff08;1&#xff09;配置用户信息 git config --global user.name "…

C#调用百度翻译API自动将中文转化为英文,按行转换

我们可以使用百度翻译API获取到翻译结果 翻译API地址&#xff1a; http://api.fanyi.baidu.com/api/trans/vip/translate 一、新建窗体应用程序TranslatorDemo&#xff0c;将默认的Form1重命名为FormTranslator。 窗体FormTranslator设计器如图&#xff1a; 窗体设计器源代码…

最强“双非”!所有专业爆冷!最低273分上岸!

一、学校及专业介绍 深圳大学&#xff08;Shenzhen University&#xff09;&#xff0c;简称“深大”&#xff0c;位于广东省深圳市。入选广东省高水平大学重点建设高校&#xff0c;粤港澳高校联盟成员单位。深圳大学于1983年经中华人民共和国国务院批准创办。北京大学援建中文…

笛卡尔积文本的python处理

一 背景 大致背景是这样的&#xff0c;笔者在做数据处理时&#xff0c;遇到一个棘手的事情&#xff0c;主要遇到如下字符串拼接变动的场景&#xff0c;场景主要为&#xff0c;需要考虑如下两张表的组合&#xff1a; 表1-原始文本样式 序号文本样式1A变量B2A变量C3A变量CD4E变…

Promise详细版

promise基础原理到难点分析 常见的Promise的方法解读 扩展async和await深入分析 逐步分析Promise底层逻辑代码 一、Promise基础 1.什么是promise 为了解决回调地狱&#xff1a; //2.设置点击事件btn.onclick function() {//3.创建ajax实例化对象let xhr new XMLHttpRe…

RocketMQ Learning(一)

目录 一、RocketMQ 0、RocketMQ的产品发展 1、RocketMQ安装 1.1、windows下的安装 注意事项 1.2、Linux下的安装 1.3、源码的安装 1.4、控制台 2、消息发送方式 2.1、发送同步消息 2.2、发送异步消息 2.3、单向发送 3、消息消费方式 3.1、负载均衡模式&#xff0…

生活小妙招之UE custom Decal

因为这几年大部分时间都在搞美术&#xff0c;所以博客相关的可能会鸽的比较多&#xff0c;阿巴阿巴 https://twitter.com/Tuatara_Games/status/1674034744084905986 之前正好看到一个贴花相关的小技巧&#xff0c;正好做一个记录&#xff0c;也在这个的基础上做一些小的拓展…

子集——力扣78

文章目录 题目描述法一 迭代法实现子集枚举题目描述 法一 迭代法实现子集枚举 class Solution {public:vector<int> t;vector<vector<

【C++基础】友元总结一些坑

友元类 友元类&#xff08;Friend Class&#xff09;是一种在C中用于实现类之间访问权限的特殊机制。通过友元类&#xff0c;一个类可以允许另一个类访问其私有成员&#xff0c;甚至可以使另一个类成为其友元&#xff0c;使其能够访问所有成员&#xff0c;包括私有成员。这种机…