【HCIA】TCP三次握手、4次断开详解

        TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP/IP协议族中,TCP负责在两个网络实体之间建立、维护和终止连接。TCP连接的建立和终止分别通过三次握手和四次断开来完成。

一、三次挥手

        TCP三次握手是建立TCP连接的过程,它确保了通信双方都准备好进行数据传输。过程如下:

客户端 -> 服务器: SYN, ISN = x

服务器 -> 客户端: SYN, ACK, ISN = y, ACK(x+1)

客户端 -> 服务器: ACK, ACK(y+1)

 

1.1.第一次握手:SYN(同步序列编号)

        客户端发送SYN报文段:客户端选择一个初始序列号(ISN,Initial Sequence Number),并发送一个带有SYN标志位的TCP报文段给服务器。这个报文段不携带数据,仅用于建立连接。客户端进入SYN_SEND状态。

1.2.第二次握手:SYN-ACK(同步确认)

        服务器响应SYN-ACK报文段:服务器收到客户端的SYN报文段后,会为该连接分配资源,并发送一个带有SYN和ACK标志位的TCP报文段作为响应。这个报文段同样不携带数据,但会确认客户端的SYN请求(ACK客户端的ISN+1),并提供服务器的初始序列号(ISN)。服务器进入SYN_RECV状态。

1.3.第三次握手:ACK(确认)

        客户端发送ACK报文段:客户端收到服务器的SYN-ACK报文段后,会发送一个ACK报文段来确认服务器的ISN(ACK服务器的ISN+1)。这个报文段也不携带数据,但标志着客户端已经准备好进行数据传输。客户端进入ESTABLISHED状态,表明连接已经建立。当服务器收到这个ACK报文段后,它也会进入ESTABLISHED状态,连接建立完成。

二、四次断开

        TCP四次断开(也称为四次挥手)是终止TCP连接的过程,确保双方都能正确地释放连接资源。过程如下:

主动关闭方 -> 被动关闭方: FIN

被动关闭方 -> 主动关闭方: ACK

被动关闭方 -> 主动关闭方: FIN

主动关闭方 -> 被动关闭方: ACK

 

2.1.第一次断开:FIN(结束)

        主动关闭方发送FIN报文段:当一方(主动关闭方)完成数据发送任务后,它会发送一个带有FIN标志位的TCP报文段给另一方(被动关闭方),表示它没有数据要发送了。发送完这个FIN报文段后,主动关闭方进入FIN_WAIT_1状态。

        简述为:客户端发送FIN报文,请求关闭连接。

2.2.第二次断开:ACK(确认)

        被动关闭方发送ACK报文段:被动关闭方收到主动关闭方的FIN报文段后,发送一个ACK报文段作为确认。这个ACK报文段不携带数据,仅确认主动关闭方的FIN请求。被动关闭方进入CLOSE_WAIT状态,而主动关闭方收到ACK后进入FIN_WAIT_2状态。

        简述为:服务端发送ACK报文,确认客户端的FIN请求。

2.3.第三次断开:FIN(结束)

        被动关闭方发送FIN报文段:被动关闭方在完成所有数据发送任务后,发送一个带有FIN标志位的TCP报文段给主动关闭方,请求关闭连接。被动关闭方进入LAST_ACK状态。

          简述为:服务端发送FIN报文,请求关闭连接。

2.4.第四次断开:ACK(确认)

        主动关闭方发送ACK报文段:主动关闭方收到被动关闭方的FIN报文段后,发送一个ACK报文段作为确认。这个ACK报文段不携带数据,仅确认被动关闭方的FIN请求。主动关闭方进入TIME_WAIT状态,等待足够长的时间(通常是两倍的MSL,即最大报文段寿命)以确保被动关闭方收到了ACK。之后,主动关闭方关闭连接。被动关闭方收到ACK后,也关闭连接。

        简述为:客户端发送ACK报文,确认服务端的FIN请求。

三、注意事项

        TCP三次握手和四次断开的设计确保了TCP连接的可靠性和稳定性,通过同步序列号和确认机制来防止数据丢失和错误的连接建立或终止。这些过程是TCP协议中非常关键的部分,使得TCP成为一个可靠的传输层协议。

  • 在实际网络环境中,由于网络延迟、丢包等问题,TCP三次握手的过程可能会出现重传和超时的情况。
  • TCP三次握手是建立连接的基础,确保了数据传输的可靠性和顺序性。
  • 在TCP连接的建立和终止过程中,FIN和ACK标志位的正确使用是确保数据传输可靠性和连接正确关闭的关键。
  • 在实际网络环境中,由于网络延迟、丢包等问题,TCP连接的建立和终止过程可能会出现重传和超时的情况。
  • TIME_WAIT状态是TCP连接终止过程中的一个特殊状态,它确保了即使在极端情况下,连接也能被正确关闭。

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值