【网络面试篇】三次握⼿、四次挥手综述

目录

一、三次握手

1. 过程描述

2. 为什么不是四次握手?为什么不能两次握手?

二、四次挥手

1. 过程描述

2. 为什么是四次挥手?


一、三次握手

1. 过程描述

  • ① 客户端 向 服务器 发送 SYN 报文、初始化序列号 ISN(seq=x),然后 客户端 进入 SYN_SEND 状态,等待 服务器确认。
  • ② 服务端发送 ACK 确认 服务端的 SYN 报文(ack=x+1),同时 发出一个 SYN 报文,带上 自己的初始化 序列号(seq=y),然后 服务端 进入 SYN_RECV 状态。
  • ③ 客户端 接收到 服务端的 SYN、ACK 报文,ACK 确认 服务端的 SYNC 报文(ACK=y+1),然后客户端 和 服务器端 都进入 ESTABLISHED 状态,完成 TCP 三次握手。

2. 为什么不是四次握手?为什么不能两次握手?

        因为 三次握手 才能 保证双方 具有 接收和发送的 能力。两次握手 可能导致 资源的浪费,由于 没有第三次握手,服务端就 无法确认客户端是 否收到了 自己的回复,所以 每收到 一个 SYN,服务器 都会主动去 建立一个 连接,而 四次握手 可以优化为 三次。

二、四次挥手

1. 过程描述

  • 客户端 发送一个 FIN 报文给 服务端,表示 自己要 断开数据传送,报文中 会指定一个 序列号(Seq=x)。然后,客户端进入 FIN_WAIT_1 状态。
  • ② 服务端 收到 FIN 报文后,回复 ACK 报文给 客户端,且把 客户端的 序列号值 +1,作为ACK+1 报文的 序列号(Seq=x+1)。然后,服务端进入 CLOSE_WAIT(Seq=x+1)状态,客户端进入 FIN_WAIT_2 状态。
  • 服务端 也要 断开连接时,发送 FIN 报文给 客户端,且 指定一个 序列号(Seq=y+1),随后服务端进入 LAST-ACK 状态。
  • ④ 客户端收到 FIN 报文后,发出 ACK 报文 进行 应答,并 把服务端的 序列号值 +1 作 ACK 报文序列号(Seq=y+2)。此时 客户端 进入 TIME_WAIT 状态。服务端 在 收到客户端的 ACK 报文 后进入 CLOSE 状态。如果 客户端 等待 2MSL 没有 收到回复,才 关闭连接。

2. 为什么是四次挥手?

        TCP 是 全双工通信,可以 双向 传输数据。任何一方 都可以 在数据传送结束后 发出连接释放的 通知,待 对方确认 后进入 半关闭状态。当 另一方也 没有数据 再发送的时候,则发出 连接释放通知,对方 确认后 才会完全 关闭了 TCP 连接。

        总的来说,两次握手 可以 释放一端到 另一端的 TCP 连接,完全释放 连接一共 需要 四次握手。

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

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

相关文章

JavaSet集合

无序(指的是添加顺序和获取出的数据顺序不一致,不重复,无索引 既然Set没有索引,因此功能同上一篇Connection的功能,几乎没有额外的功能 HashSet的原理 为什么是无序(要构建红黑树)&#xff0…

【测试平台】Odin-ws 工程环境部署

背景: 这个是我4年半以前接受测试平台过程中遇到问题记录,因为交接成都这边,拿出来直接用了。这里做个记录。 一、美东测试服务器相关 1.主服务器部署机器 该机器是美东服务器。 机器配置:t5.xlarge cpu 4核, 内存…

ubuntu常用基本指令简记

一、在线帮助 1、help Linux命令可以分为内部命令和外部命令,内部命令就是由Linux默认Shell-bash提供的命令,而非bash提供的命令就是外部命令。 对于内部命令,可以使用help命令来获取帮助 形式为 help 指令 2、man 在日常使用中碰到的绝…

Android Junit 单元测试 | 依赖配置和编译报错解决

问题 为什么在依赖中添加了testImplement在build APK的时候还是会报错?是因为没有识别到test文件夹是test源代码路径吗? 最常见的配置有: implementation - 所有源代码集(包括test源代码集)中都有该依赖库.testImplementation - 依赖关系仅在test源代码…

如何将png格式的图片做成序列帧

类似以上的图片&#xff0c;根据图片的总长度和图片总数进行计算 <div class"frogeggitem"></div>.frogeggitem {width: 900rpx;height: 1000rpx;background: url(https://frog-skin.haoxgame.com/status2/frog/frogegg.png)no-repeat;background-size:…

学习笔记——动态路由——OSPF(距离矢量协议)OSPF路由类型

OSPF路由类型 在OSPF中&#xff0c;路由类型指的是不同种类的路由&#xff0c;用于描述网络中不同的路由信息及其传输方式。 1、Intra Area路由(区域内路由) Intra Area路由(区域内路由/本地路由/内部路由)是OSPF协议中的一种路由类型&#xff0c;用于描述在同一个OSPF区域内…

图像处理 -- AWB白平衡中的QX与QY的原理与用法

ISP AWB 中的 QX 与 QY 1. QX 与 QY 的含义与作用 在 ISP&#xff08;图像信号处理器&#xff09;自动白平衡&#xff08;AWB&#xff09;中&#xff0c;QX 和 QY 通常指的是色彩平面的两个坐标轴&#xff0c;用于描述不同光照条件下的颜色分布。 QX (Quadrant X)&#xff1…

信息安全中的数论速通

信息安全中的数论速通 此版数论增加了&#xff0c;丰富了相关内容&#xff0c;更加精炼 md文档自取&#xff0c;可以私我&#xff0c;公式懒得调了&#xff0c;vsc打开没问题 数论中重要定理速览 算术基本定理&#xff1a;每一个大于1的自然数都可以唯一地分解为素数的乘积。…

G - Add and Multiply Queries

G - Add and Multiply Queries 思路 开始直接用的线段树&#xff0c;写完才意识到是假的 由于题目说答案不会超过 1 0 18 10^{18} 1018&#xff0c;所以一个询问区间内的大于2的b的个数不超过64个&#xff0c;这样一个区间内大于2的b的就可以把a分成不超过64个连续的区间&a…

Android Studio Dolphin 下载、安装与配置教程

文章目录 Android Studio Dolphin简介一、核心特性二、新增功能三、用户体验优化 一&#xff0c;下载百度网盘迅雷云盘 二&#xff0c;安装三&#xff0c;下载组件四&#xff0c;添加SDK五&#xff0c;创建项目六&#xff0c;安装 Device模拟器运行项目 Android Studio Dolphin…

磁盘分区工具 DiskGenius Pro v5.5.0.1488 中文汉化版

DiskGenius 是一款专家级数据恢复软件&#xff0c;集数据恢复、硬盘分区、系统备份还原等多种功能于一身的超级工具软件&#xff0c;功能全面&#xff0c;安全可靠。可以提供磁盘的数据找回、备份、分区、修复、删除、格式化等操作&#xff0c;也能帮助用户修复磁盘坏道、彻底删…

ES 自定义排序方式

es默认score是根据query的相关度进行打分的&#xff0c;具体打分机制可以参见&#xff1a;官方文档。如果召回时既希望有相关性又能根据其他信息进行排序。 例如小红书搜索的时候&#xff0c;可能既希望有召回相关度又能根据热度信息&#xff08;如果喜欢、收藏等等参数去进行召…

OpenCV KeyPoint与描述子编解码

前言&#xff1a;OpenCV中的特征点对象与描述子对象分别由cv2.KeyPoint类与np.array类封装&#xff0c;与之相关的特征点检测与匹配等相关算法的输出、输入亦为cv2.KeyPoint对象与np.array描述子对象。因此&#xff0c;若使用OpenCV封装好的特征点检测与匹配算法不可避免的需要…

Shiro会话管理和加密

会话管理 Shiro提供了完整的企业级会话管理功能&#xff0c;不依赖于底层容器&#xff08;如Tomcat&#xff09;&#xff0c;不管是J2SE还是J2EE环境都可以使用&#xff0c;提供了会话管理&#xff0c;会话事件监听&#xff0c;会话存储/持久化&#xff0c;容器无关的集群&…

python开发工具是选择vscode还是pycharm?两款软件优缺点对照!

Pycharm和VSCode是两款流行的代码编辑器&#xff0c;它们都有各自的优缺点和适用情况。本文将从以下几个方面对它们进行比较和分析&#xff1a; 功能和扩展性性能和稳定性用户体验和界面价格和支持 功能和扩展性 Pycharm是一款专为Python开发而设计的集成开发环境&#xff08;…

《一人公司:失业潮中的高新技术工作者》读书笔记

基本信息 书名&#xff1a;一人公司&#xff1a;失业潮中的高新技术工作者作者&#xff1a;[美]卡丽莱恩&#xff08;Carrie M. Lane&#xff09;出版社&#xff1a;广东人民出版社出版时间&#xff1a;2023年11月 内容简介 本书通过18个月的田野调查和9年的跟踪寻访&#…

部署DNS主从服务器

一。DNS主从服务器作用&#xff1a; DNS作为重要的互联网基础设施服务&#xff0c;保证DNS域名解析服务的正常运转至关重要&#xff0c;只有这样才能提供稳定、快速日不间断的域名查询服务 DNS 域名解析服务中&#xff0c;从服务器可以从主服务器上获取指定的区域数据文件&…

es(1)(仅供自己参考)

elasticsearch&#xff08;ES&#xff09;是一款非常强大的开源搜索引擎&#xff0c;可以帮助我们从海量的数据中快速找到需要的内容。 elastic stack&#xff08;ELK&#xff09;&#xff1a;elasticsearch结合kibana、Logstash、Beats。被广泛的应用在日志数据分析、实时监控…

关于k8s的cilium网络插件踩坑记

cilium状态为CrashLoopBackOff coredns状态为Pending 使用的系统镜像为centos7.6 内核是3.*** 然后用的工具来部署集群&#xff0c;开始以为是调度啥的&#xff0c;然后单节点试也出现CrashLoopBackOff、Pending等状态&#xff0c;更新内核在到5 集群自己就好了 注意&am…

设计模式(三)

设计模式(三) 某些情况&#xff0c;可能会过度地使用继承来扩展对象的功能&#xff1b; 由于继承为类型引入的静态特质&#xff0c;使得这种扩展方式缺乏灵活性&#xff1b; 随着子类增多&#xff0c; 各种子类的组合会导致更多子类的膨胀 需要使用对象功能的扩展&#xff…