2021-07-21

TCP三次握手与四次挥手:

一、三次握手
第一次:客户端发给服务器:发送请求连接标志SYN=1,发送自己的字节流序号seq=x(服务器知道自己接收正常,客户端发送正常)
第二次:服务器收到后发给客户端:发送请求连接标志SYN=1,确认号ACK=1,客户端的确认号ack=x+1,自己的序号seq=y(客户端知道:自己发送正常,接收正常,服务器的发送正常,接收也正常)
第三次:客户端收到后回复服务器:发送确认号ACK=1,发送对方的确认号ack=y+1,发送自己的序号seq=x+1(服务器知道自己接收正常,发送正常,客户端的接收和发送也正常)

综上,需要三次握手双方才能知道自己和对方的接收发送都是正常的。(注:ACK=1表示确认号有效,ACK=0表示报文不含确认序号信息)

二、四次挥手
第一次:客户端发送释放连接标志FIN=1,自己的序列号seq=u,客户端进入FIN-WAIT-1状态
第二次:服务器收到后,向客户端发送确认号ACK=1,客户端的确认号ack=u+1,自己的序列号seq=v,进入CLOSE-WAIT状态
第三次:客户端收到服务器发来的确认号后,进入FIN-WAIT-2状态。此时,服务器发送释放连接标志FIN=1,客户端的确认序号ack=u+1,自己的序列号seq=w,服务器进入LAST-ACK状态。
第四次:客户端收到回复后,发送确认标志ACK=1,对方的确认序号ack=w+1,自己的序列号seq=u+1,客户端进入TIME-WAIT(时间等待状态)。客户端经过两个最长报文段寿命后CLOSE;服务器收到确认后,立刻CLOSE

:客户端收到服务器的确认后,进入TIME-WAIT状态 为什么要等两个最长报文寿命后才CLOSE?
答:原因有两个(简):(1)客户端time-wait是等待最后一个确认报文能到达服务器,否则服务器收不到就会重新发送连接释放的请求报文。
(2)为了让本次连接持续时间内所产生的所有报文都从网络中消失,使得下一个连接中不会出现旧的连接中的请求报文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值