TCP的三次握⼿与四次挥⼿过程,各个状态名称与含义,TIMEWAIT的作⽤

浏览量:1543
时间: 2024-01-30 15:45:20

三次握⼿

第⼀次握⼿:客户机⾸先向服务器的TCP发送⼀个连接请求报文段,这个特殊的报文段不含应⽤层数据, 其⾸部中同步位SYN被设置为1。另外,客户机会随机选择⼀个起始序号seq=x(连接请求报文不携带数 据,但要消耗⼀个序号).

第⼆次握⼿:服务器的TCP收到连接请求报文段后,如果同意建立连接,就向客户机发回确认,并为该TCP连接分配TCP缓存和变量。在确认报文段中,SYNACK位都被设置为1,确认号字段值为ack=x+1,并 且服务器随机产⽣起始序号seq=y. 确认包同样不包含应⽤层数据。

 第三次握⼿:当客户机收到确认报文段后,还要向服务器给出确认,并且也要给该连接分配缓存和变 量。这个报文段的确认为ACK被设置为1,序号段被设置为seq=x+1,确认号字段ack=y+1. 该报文段可以 携带数据,如果不携带数据则不消耗序号。 理想状态下,TCP连接⼀旦建立,在通信双⽅中的任何⼀⽅ 主动关闭连接之前,TCP 连接都将被⼀直保持下去。因为TCP提供全双⼯通信,因此双⽅任何时候都可以 发送数据。四次挥⼿第⼀次挥⼿:客户机打算关闭连接,就向其TCP发送⼀个连接释放报文,并停⽌再发送数据,主动关闭TCP连接。该报文段的FIN标志位被设置为1seq=u,它等于前⾯已经发送过的数据的最后⼀个字节的序号 加1第⼆次挥⼿:服务器收到连接释放报文段后即发出确认,确认号是ack=u+1,序号为v,等于它前⾯已经发 送过的数据的最后⼀个字节序号加1.此时客户机到服务器这个⽅向的连接就释放了,TCP处于半关闭状 态。ACK=1seq=v,ack=u+1第三次挥⼿:若服务器已经没有要向客户机发送的数据,就通知TCP释放连接,此时发出FIN=1,确认号ack= u+1,序号seq =w,已经发送过的数据最后⼀个字节加1。确认为ACK=1. (FIN = 1, ACK=1,seq = w, ack


四次挥⼿

第⼀次挥⼿:客户机打算关闭连接,就向其TCP发送⼀个连接释放报文,并停⽌再发送数据,主动关闭TCP连接。该报文段的FIN标志位被设置为1seq=u,它等于前⾯已经发送过的数据的最后⼀个字节的序号 加1

第⼆次挥⼿:服务器收到连接释放报文段后即发出确认,确认号是ack=u+1,序号为v,等于它前⾯已经发 送过的数据的最后⼀个字节序号加1.此时客户机到服务器这个⽅向的连接就释放了,TCP处于半关闭状 态。ACK=1seq=v,ack=u+1

第三次挥⼿:若服务器已经没有要向客户机发送的数据,就通知TCP释放连接,此时发出FIN=1,确认号ack= u+1,序号seq =w,已经发送过的数据最后⼀个字节加1。确认为ACK=1. (FIN = 1, ACK=1,seq = w, ack=u+1) 

第四次挥⼿:客户机收到连接释放报文段后,必须发出确认。在确认报文段中,确认位ACK=1序号seq=u+1,确认号ack=w+1. 此时连接还没有释放掉,必须经过实践等待计时器设置的时间2MSL(Max Segment Lifetime),后,客户机才进入连接关闭状态。 (ACK=1,seq=u+1,ack=w+1) 如下图所⽰: 

image.png

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
PCB布局中晶振下方为什么不能走信号线?PCB工程师面试要从辐射机理讲起

分类:PCB设计工程师面试题经验级别:中级难度:中级题型:布局设计/EMC📖 本文概述晶振下方不能走信号线是PCB设计工程师面试中的经典考题。本文从晶振辐射机... 详情>>

2026-08-06 16:59:32
嵌入式工程师面试项目经验怎么讲?3种结构让你讲出技术深度

分类:嵌入式工程师面试准备经验级别:基础难度:基础题型:面试准备/项目表达📖 本文概述嵌入式工程师面试中,项目经验是决定能否拿到offer的关键。很多人讲项目... 详情>>

2026-08-08 16:44:40
100 MHz频率的电磁波通过5mm厚度,相对介电常数εr = 8的透明玻璃,请问玻璃的屏蔽效能为多少?

100 MHz频率的电磁波通过5mm厚度,相对介电常数εr = 8的透明玻璃,请问玻璃的屏蔽效能为多少?a. 0 dBb. -3 dBc. 3 dBd. 6 d... 详情>>

2024-03-20 14:26:10
STM32串口接收不定长数据怎么实现?嵌入式面试空闲中断与DMA方案

STM32串口接收不定长数据怎么实现?嵌入式面试空闲中断与DMA方案嵌入式单片机中级技术基础题本文概述串口接收不定长数据是嵌入式开发的常见需求(如接收AT指令、... 详情>>

2026-09-01 13:49:01
以太网接口硬件电路怎么设计?PHY、网络变压器与RJ45怎么做?硬件工程师面试

硬件设计中高级技术基础题本文概述以太网接口是工业、物联网和嵌入式产品最常见的网络硬件,PHY+变压器+RJ45的链路设计是硬件面试高频题。面试官想听的不是“接个... 详情>>

2026-09-12 15:15:01
开班信息