1、TCP三次握手简介,为什么TCP握手需要三次?

一、TCP三次握手简介:

第一次握手:客户端-->服务端,发送SYN=1,ACK=0(表示请求建立连接),seq=x。发送后客户端进入SYN-SEND状态;

第二次握手:服务端-->客户端,发送SYN=1,ACK=1(表示可以建立连接),ack=x+1,seq=y。发送后服务端由LISTEN状态进入STN-RCVD状态;

第三次握手:客户端-->服务端,发送ACK=1(表示确认报文),seq=x+1,ack=y+1。服务端检查ACK=1,ack=y+1,无误后双方进入ESTABLISHED状态。

注意:标志位SYN置1,ACK置0表示请求建立连接;标志位SYN置1,ACK置1表示确认建立连接。

          SYN、ACK是标志位,而ack是确认序号,只有当标志位ACK置1,确认序号字段才有效。

二、为什么TCP握手需要三次:

   防止已失效的请求连接报文(可能在某个节点长时间停滞,以至于已经释放连接后才到达服务端),到达服务端B后,服务端B以为客户端A要建立新的连接,随即发送确认报文,同意建立连接。若是没有第三次握手,新的连接就建立了,而B一直等待A发送数据,A则不理会B的确认,造成资源浪费。

追问:为什么不能四次握手?

答:三次握手已经确认了双方收发功能都正常,是client与server是否确定连接的最小值,四次握手也可以,但是多余,浪费时间,浪费资源。

 

 

 

 

 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值