HCIA---TCP的三次握手与四次挥手

本文详细解析了TCP协议中建立连接的三次握手过程和终止连接的四次挥手过程,包括每个阶段的标志位、序列号和确认号,以及连接状态的变化。通过图例和过程详解,帮助理解TCP连接的生命周期。
摘要由CSDN通过智能技术生成

HCIA---TCP的三次握手与四次挥手

目录

三次握手

图例

在这里插入图片描述
SYN:同步序列编号,表示请求建立连接。建立连接初始值为 1 。

ACK:表示确认号是否有效,一般值为 1 。

seq:4 个字节大小,表示序列号,用来标记数据段的顺序。

ack:4 个字节大小,表示确认号,值期望接收到下一个字节的编号,因此受到的报文段最后一个字节编号值 =1 表示确认。

过程详解

第一次握手:
客户端发送发送 SYN 包(seq = x)到服务器,并进入 SYN - SENT 状态,等待服务器确认;

第二次握手:
服务器收到 SYN 包,确认客户端的 SYN(ack = x + 1),同时自己也发送一个 SYN + ACK 包(seq = y),请求与客户端建立连接,此时服务器会进入 SYN - RECV 状态;

第三次握手:
客户端收到服务器的 SYN + ACK 包,会向服务器发送确认包 ACK(ack = y + 1),发送完毕之后客户端和服务器便会进入 ESTABLISHED (TCP 连接成功)状态,完成三次握手。

PS:大写的单词表示标志位,其值要么是 1 要么是 0 ,而小写单词表示序列号。

四次挥手

图例

在这里插入图片描述FIN:请求断开连接。

过程详解

第一次挥手:
客户端发出连接释放报文 FIN(seq = u),停止发送数据,并进入 FIN - WAIT - 1 (终止等待 1)状态。

第二次挥手:
服务器收到连接释放报文,会发送出确认报文 ACK(ack = u + 1),并且带上自己的序列号 seq = v ,此时服务器会进入 CLOSE - WAIT(关闭等待)状态。

第三次挥手:
客户端收到服务器的确认请求之后,会进入 FIN - WAIT - 2(终止等待2)状态,等待服务器发送连接释放报文。在此之前客户端属于半封闭状态,即客户端已经有没有数据给服务器发送了,但是还能接收到来自服务器的数据。
服务器发送完最后的数据,就会向客户端发送连接释放报文 FIN(ack = u + 1)以及自己的序列号 seq = w ,此时服务器进入 LAST - ACK(最后确认)状态,等待客户端的确认。

第四次挥手:
客户端收到服务器的连接释放报文后,便会发送确认报文 ACK(ack = w + 1),然后客户端进入 TIME - WITE(时间等待)状态。
此时客户端的 TCP 连接还没有被释放,必须经过 2MSL(最长报文段寿命)的时间后,才会进入 CLOSED 状态。
服务器收到客户端的确认报文便会立即进入 CLOSED 状态,结束此次的 TCP 连接。

PS:TCP 规定,即使 FIN 包不携带任何数据,也要消耗掉一个序列号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值