23、三次握手,四次断开过程

在TCP连接建立过程中要解决以下3个问题:
(1)要使每一方能够确知对方的存在
(2)要允许双方协商一些参数(如最大窗口值,是否使用窗口扩大选项和时间戳选项以及服务质量)
(3)能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配
TCP连接的建立采用客户服务器方式。主动发起连接建立的应用进程是客户,而被动等待连接建立的应用进程是服务器。



  • 三次握手
     1)第一次握手:客户端创建传输控制块TCB,向服务器端发送连接请求报文段。该报文段的同步位SYN=1,同时选择一个初始序号Seq=x。此时TCP客户端进入SYN-SENT(同步已发送)状态。
     2)第二次握手:服务器端收到连接请求报文段后,如同意连接,则向客户端发送确认报文段。该报文段的SYN和ACK都置1,确认号为ack=x+1,同时选择一个初始序号Seq=y。此时TCP服务器端进入SYN-RCVD(同步收到)状态。
     3)第三次握手:TCP客户端收到服务器端的的确认后,还要向服务器端给出确认报文段。该报文段的ACK置1,确认号ack=y+1,而序号为Seq=x+1。此时TCP连接已经建立,A进入ESTABLISHED(已建立连接)状态。当服务器端收到客户端的确认后,也进入ESTABLISHED(已建立连接)状态。
     第三次握手的作用:防止已失效的连接请求报文段突然有传送到了服务器。

  • 四次断开
     1)一次断开:客户端向服务器端发送连接释放报文段,并停止再发送数据,主动关闭TCP连接。该报文段的首部的FIN置1,序号为seq=u(前面已传输过的数据的最后一个字节的序号加1)。此时客户端进入FIN-WAIT-1(终止等待1)状态,等待服务器端的确认。
     2)二次断开:服务器端收到连接释放报文段后,就发出确认报文段,确认号是ack=u+1,序号是v(前面已传输过的数据的最后一个字节的序号加1)。然后服务器就进入CLOSE-WAIT(关闭等待)状态。此时从客户端到服务器这个方向的连接就释放了,此时TCP连接处于半关闭状态,因为服务器若发送数据,客户端仍要接收。
     3)三次断开:客户端收到来自服务器端的确认后,就进入FIN-WAIT-2(终止等待2)状态,等待服务器发出的连接释放报文段。若服务器已经没有要发送的数据,其应用进程就通知TCP释放连接,并且发送连接释放报文段,该报文段的首部的FIN置1。此时服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认,收到客户端的确认后,服务器就进入CLOSED状态。
     4)四次断开:客户端收到服务器的连接释放报文段后,就发出确认报文段。然后进入TIME-WAIT(时间等待)状态。此时TCP连接还未完全释放,必须经过时间等到计时器设置的时间2MSL后,客户端才进入CLOSED状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值