每一秒钟的时间都值得铭记

0%

TCP协议的三次握手和四次挥手

什么是TCP协议?

TCP是传输控制协议,是一个面向连接的协议,在使用TCP协议收发数据前,必须和对方建立可靠的连接,一个TCP连接必须要经过3次“对话”才能建立起来。

第一次对话:由主机A发送一个请求连接的消息报文给主机B。
第二次对话:由主机B发送同意连接和要求同步的数据包。
第三次对话:由主机A发送一个数据包确认主机B要求同步。

在这里插入图片描述

同步就是两台主机一个发送,一个接收,协调工作。

三次“对话”的目的是使数据包的发送和接受同步,经过三次“对话”之后,主机A才向主机B正式发送数据。

TCP的三次握手

TCP建立可靠连接的三次对话过程也被称作为三次握手。

在了解TCP的三次握手前,需要先了解几个概念。

  • Seq: 序列号,根据序列号标识某个操作。
  • Ack: 确认标志,如果确认某个操作,则回复Ack=对方主机Seq+1。
  • SYN: 同步标志。
  • FIN: 结束标志。

在这里插入图片描述

TCP的四次挥手

TCP的四次挥手是为了正常断开连接,并保证传输的数据的完整性。

在这里插入图片描述

TCP的四次挥手不一定是由Client发起的,Client和Server均可以发起四次挥手,断开连接。

为什么TCP是三次握手,四次挥手?

  • 当Server端接收到Client端发送的SYN(同步标志)连接请求的消息报文之后,可以直接发送Ack+SYN报文给Client,其中Ack表示应答,确认,SYN报文是表示同步。
  • 但是当被动方接受到FIN(结束标志)消息报文之后,很可能不会立即关闭Socket,所以只能先回复一个Ack表示同意结束连接。
  • 当被动方的所有报文发送完毕,发会发送FIN(结束标志)报文,所以TCP是四次挥手断开连接。

总而言之,TCP协议之所以是三次握手,四次挥手,全部都是为了保证数据传输的完整性。

坚持原创技术分享,您的支持将鼓励我继续创作!
-------------这是我的底线^_^-------------