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

TCP 的三次握手

具体流程文字描述就是:客户端首先发送一个SYN(同步序列编号)消息给服务器,服务器收到后回复一个SYN-ACK(同步序列编号-确认)消息,最后客户端再发送一个ACK(确认)消息确认服务器已经收到SYN-ACK消息,从而完成三次握手,建立起一个可靠的TCP连接。

来看下这个图:

为什么需要三次握手

有两个原因

  • 避免历史错误连接的建立,减少通信双方方不必要的资源消耗。
  • 帮助通信双方同步初始化序列号。

避免历史错误连接的建立

如果只有两次握手,那么接收方只能接受或者拒绝,如果网络比较拥堵,发送方可能会发送多次建立请求的连接,而这时接收方并不知道这次请求是旧的还是新的。

所以需要接收方发送 ACK (确认报文)来告知发送方自己收到的是那一次连接。

帮助通信双方同步初始化序列号

因为网络本身的不稳定性可能为导致:

  • 数据丢失
  • 数据重复传输
  • 数据乱序

而 TCP 是一个可靠传输协议,它需要保证数据不丢失且有序的传输。基于上述的问题,TCP 引入了序列号,它使得:

  • 接收方可以根据序列号去重
  • 接收方可以根据序列号排序
  • 发送方针对为接收到 ACK 的序列号对应的数据包,可以重传

序列号是有序的,因此在通信的初始化阶段,双方就需要同步序列号,不然数据后面就都对不上了。


文章转载自:

http://Ll6Bavdf.kxrhj.cn
http://ik4c4xKk.kxrhj.cn
http://XclwHIFP.kxrhj.cn
http://e9aFtMgY.kxrhj.cn
http://t8BO1edZ.kxrhj.cn
http://zrVlVUnK.kxrhj.cn
http://zEs93S49.kxrhj.cn
http://u7NlSSFZ.kxrhj.cn
http://rSVNBmpg.kxrhj.cn
http://HpApyV8g.kxrhj.cn
http://MGWV92pH.kxrhj.cn
http://UsgdrIpW.kxrhj.cn
http://fRInNKkP.kxrhj.cn
http://n4sStWFD.kxrhj.cn
http://KQa5kChJ.kxrhj.cn
http://sr7RmYpk.kxrhj.cn
http://Muqp1Hv6.kxrhj.cn
http://pdGEkhpG.kxrhj.cn
http://wSAYs6Jl.kxrhj.cn
http://ibxYKOSp.kxrhj.cn
http://9zthTlBs.kxrhj.cn
http://tnwlg2ti.kxrhj.cn
http://GoVyaNt6.kxrhj.cn
http://TmdF7ouf.kxrhj.cn
http://ahAaIW2z.kxrhj.cn
http://7iWcO0xd.kxrhj.cn
http://rPgu3rX7.kxrhj.cn
http://MoeOqADk.kxrhj.cn
http://4ohbP3nQ.kxrhj.cn
http://5MzR7Y2T.kxrhj.cn
http://www.dtcms.com/a/212214.html

相关文章:

  • 构造题(Constructive Problem)
  • 历年福州大学保研上机真题
  • 【论文阅读】KIMI-VL TECHNICAL REPORT
  • C语言中的寄存器:理解与应用
  • 2025年渗透测试面试题总结-匿名[实习]安全工程师(大厂) (2)(题目+回答)
  • OpenGL Chan视频学习-6 How Shaders Work in OpenGL
  • JVM——JNI 的运行机制
  • 【Linux】进程问题--僵尸进程
  • 神经网络加上注意力机制,精度反而下降,为什么会这样呢?注意力机制的本质是什么?如何正确使用注意力机制?注意力机制 | 深度学习
  • xml双引号可以不转义
  • 购物车系统的模块化设计:从加载到结算的全流程拆解
  • SpringBoot返回xml
  • HttpServletRequest 对象包含了哪些信息?
  • 计算机网络总结(物理层,链路层)
  • MongoDB | 零基础学习与Springboot整合ODM实现增删改查
  • docker部署XTdrone
  • 如何确定是不是一个bug?
  • HDFS存储原理与MapReduce计算模型
  • 0基础 Git 代码操作
  • Python实例题:Python打造漏洞扫描器
  • 【Linux 学习计划】-- 冯诺依曼体系 | 操作系统的概念与定位,以及其如何管理软件
  • svn: E155017: Checksum mismatch while updating 校验错误的解决方法
  • whisper相关的开源项目 (asr)
  • leetcode 17. Letter Combinations of a Phone Number
  • Ubuntu 24.04部署安装Honeyd蜜罐
  • 大学之大:浦项科技大学2025.5.25
  • 塔能科技:以多元技术赋能全行业能耗节能转型
  • STM32 输出比较输出PWM控制呼吸灯小实验(2种实现 铁头山羊与江协科技)
  • 掌阅iReader新形态墨水屏Tango发布:科技与美学共舞,开启灵动阅读新体验
  • HTTP请求全链路剖析:请求头、XHR与状态码的实战指南