TCP连接过程及状态

概念

TCP协议是面向连接的传输层协议,基于字节流。它可以保证数据从网络的一端到另一端不丢失、不重复、不乱序。TCP协议是全双工的协议。

三次握手

TCP连接是可靠连接,连接的建立需要进行三次握手。Server被动打开监听端口,Client主动发送请求连接。

这里写图片描述

  1. Client端发送SYN,请求与Server端相连;
  2. Server端回复ACK,同时发送自己的SYN;
  3. Client端回复ACK,连接建立。

在三次挥手的过程中,有三种TCP状态:

  • LISTEN;Server端的状态,表示正在监听连接请求;
  • SYN-SENT;Client端的状态,表示已经发送了SYN,等待Server端ACK;
  • SYN-RECEIVED;Server端的状态,表示已经发送了ACK和SYN,等待Client端ACK;

四次挥手

TCP连接时可靠连接,连接的断开需要四次挥手。

这里写图片描述

四次挥手和三次握手不同,不管是Client,还是Server,都能主动提出断开连接请求。以Client主动断开为例,其典型的步骤如下:

  1. Client端发送FIN,请求与Server端断开连接;
  2. Server端回复ACK,表明已收到Client端的断开连接请求;
  3. Serve端发送完剩余的数据流后,发送自身的FIN;
  4. Client端回复ACK,等待一段时间后,终止连接;

在四次挥手过程中,有七种TCP状态:

  • FIN-WAIT-1;主动方发送FIN后,等待被动方回复;
  • FIN-WAIT-2;主动方接收到被动方ACK后,等待被动方发送FIN;
  • CLOSE-WAIT;被动方接收到FIN,但自己还未发送FIN;
  • CLOSING;比较特殊,主动方发送FIN后,在未收到ACK之前,先收到对方发送的FIN,基本上是双方同时发送断开连接请求的状态;
  • LAST-ACK;被动方发送FIN,等待主动方的ACK;
  • TIME-WAIT;主动方回复ACK后,等待2MSL才可进入CLOSED,MSL为最大分节时间,推荐为2分钟;
  • CLOSED;完全关闭状态;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值