TCP的三次握手,四次断开(挥手)详细解释

TCP简介

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF和RFC 793 定义。 TCP旨在适应支持多网络应用的分层协议层次结构。 连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。 原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。

三次握手和四次挥手简单解释:

在TCP中,三次握手(Three-Way Handshake)用于建立一个连接,而四次挥手(Four-Way Wave)用于终止一个连接。

三次握手(建立连接)详解


目的:三次握手的主要目的是确保数据传输的双方能够正确地发送和接收数据,并且协商好初始序列号。

过程:1. 第一次握手:
        发送方(通常是客户端):发送一个带有`SYN`标志的数据段(SYN=1,Seq=x),其中`Seq`是初始序列号x。目的是告诉接收方(通常是服务器),我想要开始建立连接,请准备好。
2.第二次握手:
        接收方(通常是服务器):接收到`SYN`数据段后,回应一个带有`SYN`和`ACK`标志的数据段(SYN=1,ACK=1,Ack=x+1,Seq=y),其中`Ack`是确认应答,应答的是接收到的序列号加1,而`Seq`是接收方的初始序列号y。 这一步不仅确认了接收到发送方的`SYN`,还发送了自己的`SYN`,告知发送方准备好了。
3. 第三次握手:
        发送方(通常是客户端):接收到带有`SYN`和`ACK`的数据段后,发送一个仅带`ACK`标志的数据段(ACK=1,Ack=y+1,Seq=x+1),确认接收到了接收方的`SYN`。这一步确认了接收方的`SYN`,至此,连接建立完成,双方都可以开始发送数据。

图解:

四次挥手(终止连接)详解


目的:四次挥手涉及两个方向的连接关闭,因为TCP是全双工的,所以每个方向上的连接都需要单独关闭。

1. 第一次挥手:
        主动关闭方(可能是客户端或服务器):发送一个带有`FIN`标志的数据段(FIN=1,Seq=u),表示此方向上的数据发送完毕。

2. 第二次挥手:
        被动关闭方:接收到`FIN`后,发送一个带有`ACK`标志的数据段(ACK=1,Ack=u+1,Seq=v),确认接收到`FIN`,但可能还会发送一些数据。

3. 第三次挥手:
        被动关闭方:当被动关闭方完成所有数据发送后,也会发送一个带有`FIN`标志的数据段(FIN=1,ACK=1,Ack=u+1,Seq=w),表示其方向上的数据发送完毕。

4. 第四次挥手:
        主动关闭方:接收到`FIN`后,发送一个带有`ACK`标志的数据段(ACK=1,Ack=w+1,Seq=u+1),确认接收到`FIN`,至此,连接完全关闭。

图解:

在TCP中,连接的关闭可能发生在任意一方,而且在最后一次挥手前,连接仍然可以用于数据传输。这是因为TCP设计的初衷是为了提供可靠的传输服务,确保所有的数据都被正确发送和接收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值