TCP三次握手和四次挥手的理解

三次握手


第一次握手:

客户端发出 请求报文其中SYN应=1,选择一个序列号x

第二次握手:

服务端接收到之后回复 确认报文,其中SYN应=1,ACK=1,确认号是x+1,同时为自己初始化序列号y

第三次握手:

客户端收到请求之后给出 确认报文,ACK=1,ack=y+1,自己的序列号x+1,

为什么要进行三次握手呢?

简单来说就是通过三次握手可以证明客户端和服务端的收发能力均正常

第一次握手证明客户端发送能力正常

第二次握手证明服务器的接收能力和发送能力正常

第三次握手证明客户端接收能力正常

四次挥手

第一次挥手

客户端发出 释放报文,释放数据报文首部FIN=1,其序列号为seq=x

第二次挥手

服务器端接收到连接释放报文后,发出确认报文,ACK=1,ack=x+1,并且带上自己的序列号seq=y

第三次挥手

客户端接收到服务器端的确认请求后,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文FIN=1,发送序列码w,企ack=x+1

第四次挥手

客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=x+1,经过2MSL后(最长报文寿命),客户端进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成

 等待2MSL的意义是防止新连接上不会出现旧的连接请求报文

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值