计算机网络 运输层TCP连接管理

120 阅读2分钟

一、TCP链接管理的过程

TCP连接管理的过程包含三个部分:创建连接(三次握手)、进行通信、断开链接(四次挥手)

二、创建TCP连接(三次握手)

三次握手首先由客户端发起,客户端首先给服务端发送一个SYN(synchronization同步)为1的报文(第一次握手),当服务端收到报文之后,服务端就知道客户端想要创建一个新的连接,于是服务端会给客户端发送一个ACK为1,SYN为1的消息报文(第二次握手)。当客户端收到确认报文之后,客户端就能知道自己即能发送报文,也能接收报文了,但是服务端只知道自己能发送数据,不知道自己之前发送给客户端的数据有没有被客户端接收到。所以这个时候要第三次握手,客户端需要给服务端发送一个ACK为1的报文(第三次握手),给服务端一个确认说我收到你的报文了。服务端接收到之后,知道自己能发送也能接收报文。这时,TCP连接完成。

image-20220317093203125.png

三、TCP连接释放(四次挥手)

四次挥手可以由任意一方发起,这里暂且由客户端发起连接释放。客户端首先发送一个FIN为1的报文,当服务端收到该报文之后,服务端就知道客户端想要与自己断开链接,但是此时服务端可能还没准备好(服务端有相应任务未完成或者自己之前还与客户端的数据传输没有完成),这个时候服务端只能进行一个消息的确认(确认知道了客户端想要与自己断开链接的情况),发送一个ACK为1的报文。当服务端的事务完成后,服务端会向客户端发送一个FIN为1的报文,当客户端收到该报文之后,客户端需要给服务端发送一个ACK为1的确认报文,确认已经收到了服务端发来的报文。服务端接收到客户端的确认报文之后,TCP链接释放完毕。

image-20220317094256649.png