TCP的三次握手与四次挥手

TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手 文章目录TCP介绍三次握手四次挥手滑动窗口拥塞避免算法 TCP介绍 三次握手 四次挥手 阅读详情

TCP(Transmission Control Protocol)协议是一种面向连接的、相对可靠的传输控制协议(虽说是面向连接,其实也就是通信双方保持一个‘连接’状态)

三次握手和四次挥手是TCP协议中比较重要的部分,它们都是为数据传输而服务的,一个是在数据传输开始之前建立连接,一个是在数据传输结束之后关闭连接
接下来就简单说一下这个过程:
TCP传输

关于各种状态以及发送的报文信息,上图已经表现的很清楚,就不详述了

三次握手

必须是client先发起请求

  1. Client向Server发起建立请求信息,“我想给你发数据,可以吗?”
    (此步是为了让Server端知道Client能够发送数据)
  2. Server端确认Client发来的请求信息,同时向Client返回确认信息,“可以,你什么时候发?”
    (此步是为了让Client知道Server既能接收到数据也能发送数据)
  3. Client收到Server的确认信息,并向Server发送确认信息,“我现在就发,你接着吧!”
    (此步是为了让Server知道Client能够接收数据)

经过上面的三次握手,会让Client和Server确认彼此双方既能接收数据又能发送数据,然后便可以进入数据传输进程了,一般来说,握手次数达到3就可以保证通信信息被正确传达。
网上发现一个形象化的图例

四次挥手

谁先发起请求都可以

因为Client和Server都能发起请求,所以我们此处用A和B替代通讯双方

  1. A发起请求结束信号(A表示自己不会再传输数据了,请求断开)
  2. B向A发送确认收到A发起的结束请求的确认信号(B知道了A的请求,但是还有数据要处理,暂时还不能断开)
  3. B向A发送请求结束信号(数据发送完成,B同意断开)
  4. A向B发送确认结束信号(A同意断开,很愉快的中断这次TCP连接)

由于TCP是全双工的协议,也就是说两端可以同时进行数据传输,所以,TCP连接的关闭在两端都关闭之后才正式关闭。

网上发现一个形象化的图例


相关疑问点:

  • 建立连接的第二次握手为什么要传回SYN?
    接收端传回发送端所发送的SYN是为了告诉发送端,我接收到的信息确实就是你所发送的信号了。
  • 传了SYN,为啥还要传ACK?
    双方通信无误必须是两者互相发送信息都无误。传了SYN,证明发送方到接收方的通道没有问题,但是接收方到发送方的通道还需要ACK信号来进行验证。
  • 为什么要三次握手?
    为了防止已失效的连接请求报文段突然又传送到了服务端,导致服务器端的一直等待而浪费资源。
    引用书中一个例子:

“已失效的连接请求报文段”的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞留了,以致延误到连接释放以后的某个时间才到达server。本来这是一个早已失效的报文段。但server收到此失效的连接请求报文段后,就误认为是client再次发出的一个新的连接请求。于是就向client发出确认报文段,同意建立连接。假设不采用“三次握手”,那么只要server发出确认,新的连接就建立了。由于现在client并没有发出建立连接的请求,因此不会理睬server的确认,也不会向server发送数据。但server却以为新的运输连接已经建立,并一直等待client发来数据。这样,server的很多资源就白白浪费掉了。采用“三次握手”的办法可以防止上述现象发生。例如刚才那种情况,client不会向server的确认发出确认。server由于收不到确认,就知道client并没有要求建立连接。”


end~
欢迎交流

TCP三次握手,四次挥手问题总结 TCP三次握手,四次挥手问题总结 文章目录TCP三次握手,四次挥手问题总结TCP三次握手,四次挥手解释TCP协议基础TCP服务模型TCP头部状态转换为什么要“三次握手,四次挥手”三次握手四次挥手扩展可以了解的知识: TCP三次握手,四次挥手解释 SYN 包:建立连接请求的包 FIN 包:切断TCP 连接的包 ACK 包:针对SYN 包和FIN 包的确认应答包 1、TCP 的特点及其目的: (1)... 阅读详情

相关推荐

TCP三次握手及四次挥手详细图解

TCP三次握手及四次挥手详细图解。

dvlinker的技术专栏 1万+

第2次握手传回了ACK,为什么还要传回SYN?

第2次握手传回了ACK,为什么还要传回SYN?

C_x_330的博客 965

基于51单片机的通讯聊天系统

通过编写51单片机通讯聊天程序,掌握51单片机的各个模块的知识点和运用C语言编写51单片机的能力。用51单片机与口袋开发板设计实现一个单片机与电脑串口助手实现通讯功能的程序。程序的主要功能如下: 1 OLED初始化显示Welcome to Bluetooth communication! 字符串。 2 程序开始时处于接收信息模式, 电脑串口助手发送信息时,将从初始化字符第一个开始显示,电脑串口助手发送信息后,蜂鸣器响铃2秒左右。 3 每次同时按下左右键时,可以轮流切换接收/发送信息模式 4 在发送信息模式时

m0_47419053的博客 3639

TCP的三次握手和四次挥手

三次握手 客户端–发送带有 SYN 标志的数据包–一次握手–服务端 服务端–发送带有 SYN/ACK 标志的数据包–二次握手–客户端 客户端–发送带有带有 ACK 标志的数据包–三次握手–服务端 三次握手的目的是建立可靠的通信信道,说到通讯,简单来说就是数据的发送与接收,而三次握手最主要的目的就是双方确认自己与对方的发送与接收是正常的。 第一次握手:Client 什么都不能确认;Server 确认了对方发送正常...

yyswit的博客 248

Utrust4701F与Utrust2700R读写器在银河麒麟系统的安装及测试步骤说明

Utrust4701F与Utrust2700R读写器支持银河麒麟系统,广泛应用会员管理、支付管理等领域。本文将重点介绍Utrust4701F与Utrust2700R读写器在银河麒麟系统的安装及测试步骤说明。以上方法适用于主流国产操作系统,如 优麒麟(UbuntuKylin)/ 中标麒麟(NeoKylin) / UOS(统信操作系统)/ 中兴新支点 / 红旗 linux(redflag linux)/ 普华 Linux(I-soft OS) / 威科乐恩 Linux(WiOS)等

华翔天诚科技 1834

两轮差速机器人运动学模型

两轮差速底盘 1.1、底盘说明 两轮差速底盘由两个动力轮位于底盘左右两侧,两轮独立控制速度,通过给定不同速度实现底盘转向控制。一般会配有一到两个辅助支撑的万向轮。 主要底盘有: 1、Turtlebot; 2、扫地机器人; 3、无人仓AGV小车; 4、轮椅; 底盘主要特点: 1、控制简单、里程计计算简单。 2、只能给定X方向速度、Z轴方向角速度。 1.2、底盘运动学分析 1.2.1、底盘模型 图1.2.1 常见的两轮差速底盘模型 1.2.2、机器人本身约束方程(物理特性) 图1.2.2 a 左侧是车的两个

su_fei_ma_su的博客 3万+

【TCP协议】(2)---TCP三次握手和四次挥手

TCP三次握手和四次挥手 有关TCP协议详解,请看博客:【TCP协议】(1)---TCP协议详解 TCP有6种标示:SYN(建立联机) ACK(确认) PSH(传送) FIN(结束) RST(重置) URG(紧急) 一、TCP三次握手 第一次握手 客户端向服务器发出连接请求报文,这时报文首部中的同...

a8892117的博客 250

Hierarchical-Localization 环境配置与依赖管理全攻略

本文提供了Hierarchical-Localization(hloc)视觉定位工具箱从零开始的环境配置与依赖管理全攻略。针对Windows、Ubuntu和macOS三大操作系统,详细解析了Python版本选择、PyTorch与CUDA版本匹配、pycolmap版本锁定等核心依赖的安装步骤,并汇总了权重文件格式、NumPy版本、路径配置等常见问题的排查与解决方案,旨在帮助用户高效搭建稳定的hloc开发环境。

weixin_29066781的博客 335

计算机网络知识点复习

计算机网络 三次握手的目的 建立可靠的通信通道,确认客户端和服务器端双方的接收发送功能都正常。 第一次握手:客户端什么也不能确认,服务器端确认对方发送正常,自己接收正常 第二次握手:客户端确认自己发送、接收正常,对方接收、发送正常;服务器端确认对方发送正常,自己接收正常 第三次握手:客户端确认自己发送、接收正常,对方接收、发送正常;服务器端确认自己发送、接收正常,对放接收、发送正常。 第二次握手为什么要传回SYN和ACK? 第二次握手接收端传回发送端发送的SYN是为了告诉客户端,我接收到的消息就是你所传

weixin_45490396的博客 365

复用浏览器之跳过扫码登录

复用浏览器 1、通过命令启动浏览器:chrome --remote-debugging-port=9222(前提是退出所有的chrome浏览器) 2、启动浏览器之后,在地址栏输入127.0.01:9222,成功复用如下图所示:

qq_43911915的博客 2035

YOLO26优化:注意力魔改 | SKAttention注意力,自适应地调整其感受野大小,效果优于SENet

SKAttention输入自适应地调整其感受野大小的能力

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 250

TCP第二次握手发送SYN标志的数据包原因

同步:SYN标志的数据包还包含一个序列号,这个序列号是服务器为自己的数据流生成的。通过这个序列号,客户端和服务器可以同步它们的数据流,确保数据的正确传输。确认:SYN标志的数据包可以让客户端知道服务器已经准备好建立连接。这是一个确认信号,告诉客户端服务器已经收到了它的SYN包。TCP(传输控制协议)的三次握手过程是为了在数据传输前建立可靠的连接。因此,第二次握手中的SYN标志既是一个确认信号,也是一个同步信号,是建立可靠连接的重要步骤。

qq_36180663的博客 709

开关电源中的高频振荡噪声及其抑制方法

在开关电源的工作过程中,随着开关管的开关动作,电流和电压波形会出现剧烈的波动,尤其是在开关管切换的瞬间,往往会导致较强的过冲现象。开关电源中的高频振荡噪声是导致电磁兼容问题的主要源头之一,尤其是MOS管的通断和整流二极管的反向恢复过程中,会产生较强的高频振荡噪声。通过合理调节R和C的值,可以大大缓解高频振荡带来的EMC问题,从而有效提升电源的电磁兼容性。整流二极管反向恢复时的振荡会导致高频噪声产生,这些高频噪声源可被传导到电源的输出端,甚至可能通过电源的共地路径扩散到其他电路,影响系统的稳定性和可靠性。

硬核科技 1531

TCP 三次握手和四次挥手

TCP 三次握手和四次挥手

We choose to go to the moon in this decade and do the other things, not because they are easy, but beacase they are hard. 2万+

基于单片机设计的智能消防排烟窗控制系统_422

随着城市化进程的不断加快,高层建筑、大型商业综合体以及地下空间的数量迅速增加,建筑内部结构日趋复杂,一旦发生火灾,烟雾和有毒气体往往比明火更具威胁性。大量研究表明,在火灾事故中,人员伤亡的主要原因并非直接烧伤,而是由于吸入烟雾及一氧化碳等有毒气体导致窒息。因此,如何在火灾初期快速排烟、降低有害气体浓度,并及时进行预警,成为现代消防系统设计中的关键问题。传统的消防排烟系统多依赖人工操作或简单的联动控制方式,存在响应滞后、自动化程度低、信息反馈不及时等问题。在实际应用中,当火灾发生时,如果不能第一时间开启排烟窗

400

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

TCP的三次握手、四次挥手

TCP三次握手与四次挥手;为什么要等2MSL;拔网线后TCP连接还存在吗?TCP与UDP的区别几应用场景;SYN报文什么情况下会被丢弃; TCP如何提高传输效率 什么是滑动窗口机制? 服务端不进行accept接收新连接,那么最多可以有多少个连接建立成功? TCP的序号一定是从0开始吗? 通过三次握手最多可以建立多少个TCP连接

qzt__l0ve的博客 3408

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

TCP 三次握手四次挥手

三次握手的关键是要确认对方收到了自己的数据包 ,这个目标就是通过“确认号(Ack)”字段实现的。计算机会记录下自己发送的数据包序号Seq,待收到对方的数据包后,检测“确认号(Ack)”字段, 看 Ack = Seq + 1 是否成立,如果成立说明对方正确收到了自己的数据包 。

路星辞*的博客 2509

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TCP的三次握手和四次挥手实现过程。以及为什么需要三次握手?四次挥手?

TCP连接的三次握手和四次挥手实现原理

weixin_51380508的博客 6002

TCP三次握手四次挥手

TCP三次握手四次挥手的实现流程 为什么有三次握手四次挥手

CC_clear的博客 2793

详解TCP三次握手四次挥手

详解TCP三次握手四次挥手 1.TCP报文格式 在了解三次握手和四次挥手之前,先知道TCP报文内部包含了哪些东西。 TCP报头中的源端口号和目的端口号同IP数据报中的源IP与目的IP唯一确定一条TCP连接。TCP在发送数据前必须在彼此间建立连接,这里连接意思是:双方需要内保存对方信息(例如:IP,Port…) 报文主要段的意思 序号:表示发送的数据字节流,确保TCP传输有序,对每个字节编...

nigar_的博客 2543

深入浅出理解TCP三次握手与四次挥手

通过三次握手,TCP确保双方能够可靠地建立连接,开始数据传输;通过四次挥手,TCP安全地终止连接,避免数据丢失和混乱。理解三次握手和四次挥手机制不仅有助于我们深入掌握TCP协议,还能帮助我们在网络调试与优化中,正确分析和解决连接问题。这个过程虽然看似简单,但其背后蕴含了许多设计上的精妙之处,比如对序列号的管理、对状态的控制以及对数据传输可靠性的保证。希望这篇文章能帮助你更好地理解TCP中的三次握手与四次挥手!三次握手。

XMYX-0 2029

TCP三次握手和四次挥手过程

TCP三次和四次挥手过程1、TCP报文段首部2、TCP三次握手过程及常见问题2.1 TCP三次握手过程2.2 常见问题2、TCP四次挥手过程及问题2.1 TCP四次挥手过程2.2 常见问题 1、TCP报文段首部          要理解TCP三次握手和四次挥手的过程,首先需要了解TCP报文段的某些首部的含义...

weixin_39754631的博客 1589

TCP协议——三次握手和四次挥手

理解tcp三次握手、四次挥手及相关问题

Dirty_artist的博客 1488

TCP三次握手,四次挥手

相信大家比较常回答的是:“因为三次握手才能保证双方具有接收和发送的能力。这回答是没问题,但这回答是片面的,并没有说出主要的原因。在前面我们知道了什么是TCP 连接用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括Socket、序列号和窗口大小称为连接。所以,重要的是为什么三次握手才可以初始化 Socket、序列号和窗口大小并建立 TCP 连接。接下来,以三个方面分析三次握手的原因:三次握手才可以阻止重复历史连接的初始化(主要原因)三次握手才可以同步双方的初始序列号。

qq_62097431的博客 1404
上一篇: 实现表格的固定列和表头的效果
下一篇: token验证机制
励公子
博客等级 码龄9年 11粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值