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

【计算机网络】三次握手、四次挥手

问:三次握手 四次挥手

TCP 连接过程是 3 次握手,终止过程是 4 次挥手

3次握手

第一步:客户端向服务器发送一个带有 SYN(同步)标志的包,指示客户端要建立连接。
第二步:服务器收到客户端的请求后,回复一个带有 SYN(同步)和 ACK(确认)标志的包。 SYN 标志表示服务器也愿意建立连接,ACK 标志确认收到客户端的请求。
第三步:客户端收到服务器的回复后。再发送一个带有 ACK 标志的包,确认收到服务器的回复。
在这里插入图片描述

上图中的这个例子有点勉强哈,而我们还需要记住seq为初始序号,ack为确认号,保证了传输层的可靠性,当然课本里面也是这么说的。

TCP3次握手其实就是TCP应用在发送数据前通过TCP协议跟通信对方协商好连接信息,建立起TCP的连接关系,三次握手的主要作用就是为了确认双方的接收和发送能力是否正常,首先第一次握手:客户端发送syn报文,并进入syn_send同步已发送状态,等待服务器的确认;第二次握手:服务器收到syn报文,需要给客户端发送ACK确认报文,同时服务器也要向客户端发送一个syn报文,此时服务器进入syn_rcvd同步收到的状态;第三次握手:客户端收到syn加ACK报文,向服务器发送确认包,客户端进入确认连接状态,待服务器收到ack确认包也会进入确认连接状态。

4次挥手

第一步:当客户端想关闭连接时,发送一个带有 FIN(结束)标志的包给服务器。
第二步:服务器收到客户端的关闭请求时,发送一个带有 ACK 标志的包给客户端,确认收到关闭请求。
第三步:服务器进入 CLOSE_WAIT 状态,继续向客户端发送数据,直到服务器准备关闭连接。 在服务器准备关闭连接时,服务器发送一个带有 FIN 标志的包给客户端。
第四步:客户端收到服务器的关闭请求后,发送一个 ACK 标志的包给服务器,确认收到服 务器的关闭请求

在这里插入图片描述
为什么要四次挥手,因为可能存在未发送完成的数据。(参考课本,第一次挥手没有发送ACK标志)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • go selenium 使用总结
  • dbm和w的换算公式
  • FPGA开发——状态机的使用
  • 如何在C语言中实现求解超级丑数
  • 10年仓库管理经验:“管、存、发、盘”一文搞定!
  • 计网面试题
  • shell脚本自动化部署
  • 计算机网络HTTP全讲解,让你透彻掌握HTTP协议(三)http长短连接/代理/网关/缓存/内容协商机制/断点续传
  • 马尔科夫毯:信息屏障与状态独立性的守护者
  • 极速提升:SQL Server数据库性能优化的黄金法则
  • SQL labs-SQL注入(sqlmap使用)
  • CTFHUB-文件上传-双写绕过
  • Java链接Elasticsearch数据库并使用对应的方法(使用ES Java API)
  • linux在行尾添加一个study字符
  • redis雪崩问题分析
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Bootstrap JS插件Alert源码分析
  • css属性的继承、初识值、计算值、当前值、应用值
  • ES6语法详解(一)
  • EventListener原理
  • Flex布局到底解决了什么问题
  • linux学习笔记
  • mongo索引构建
  • Odoo domain写法及运用
  • Zepto.js源码学习之二
  • 基于Android乐音识别(2)
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 因为阿里,他们成了“杭漂”
  • 硬币翻转问题,区间操作
  • 怎样选择前端框架
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​软考-高级-信息系统项目管理师教程 第四版【第19章-配置与变更管理-思维导图】​
  • (13):Silverlight 2 数据与通信之WebRequest
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (第30天)二叉树阶段总结
  • (附源码)springboot电竞专题网站 毕业设计 641314
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (离散数学)逻辑连接词
  • (转)c++ std::pair 与 std::make
  • (转)四层和七层负载均衡的区别
  • (转)原始图像数据和PDF中的图像数据
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET 指南:抽象化实现的基类
  • .NET8 动态添加定时任务(CRON Expression, Whatever)
  • .NetCore项目nginx发布
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • [.net]官方水晶报表的使用以演示下载
  • [20150707]外部表与rowid.txt
  • [CF494C]Helping People
  • [FSCTF 2023]细狗2.0