2020-11-16

三次握手四次挥手的理解

三次握手

在TCP/IP协议中,TCP 协议提供可靠的连接服务,连接是通过三次握手进行初始化的。

  • 第一次握手:Client将同步标志位SYN设置为1,随机生成一个序列号(seq)x,并将数据包发送给Server。此时Client进入SYN_SENT状态,等待Server确认。
  • 第二次握手:Server接收到数据包之后,由SYN=1得知这是Client请求建立连接。Server将同步标志位SYN设置为1,将确认标志位ACK设置为1,ack = x+1,随机生成一个序列号(seq)y,并将数据包发送给Client确认请求。此时Server进入SYN_RCVD状态。(半连接列队)
  • 第三次握手:Client接收到数据包后,确认ack是否为x+1,如果是则将确认标志位ACK设置为1,ack=y+1,发送给Server。此时Client状态为ESTABLISHED。Server接收到数据包之后检查ack是否为y+1,如果是则成功建立连接,Server进入ESTABLISHED状态,完成三次握手。(全连接列队)

四次挥手

  • 第一次挥手:Client向Server发送FIN标志,用于关闭Client到Server的数据传送,并发送序列号a,进入FIN_WAIT_1状态。这表示Client告诉Server我已经没有数据要发给你了。

  • 第二次挥手:Server接收到FIN标志后,发送一个ack=a+1,告知Client它已经接收到了关闭请求,进入CLOSE_WAIT状态。Clinet接收到回应后进入FIN_WAIT_2状态。

  • 第三次挥手:Server发送FIN标志,用于关闭Server到Client的数据传送,并发出序列号b,进入LAST_ACK状态。这表示Server告诉Client我也没有数据要发送给你了。

  • 第四次挥手:Client接收到FIN标志后,发送一个ack=b+1,告知Server它已经接收到请求关闭,进入TIME_WAIT状态。Server接收到回应进入CLOSED状态。等待2MSL后,Client依然没有收到其他回复,则也进入CLOSED。

附注:TCP 有6中标志位:
SYN(synchronous 建立连接)
ACK(acknowledgement 确认)
PSH(push 传送)
FIN(finish 结束)
RST(reset 重置)
URG(urgent 紧急)

TCP Header

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值