Transmission control protocol


TCP协议是传输层为数据提供可靠的端到端传输,它的目的也是为了让数据能够完整到达目的地,是一个面向连接的协议。

TCP在传输数据之前会发起连接,当传输结束时候它会关闭会话通道,多数高层协议都会利用TCP来传输可靠性数据。

三次握手

TCP协议发起连接的过程就是三次握手,因为TCP发起连接需要三个步骤。

1.客户端向服务端发送SYN标志的数据包,通知服务端自己想要建立连接。

2.服务端收到客户端发过来的SYN标志的数据包,然后再附带SYN标志发给客户端一个ACK标志的数据包。

3.客户端接到服务端发过来的[SYN,ACK]标志的数据包,再发给服务端ACK标志的数据包。

上面这三次传输,主要目的是为了让双方知道自己是否能够成功的建立通道。

被框住的三个数据包就是三次握手建立连接的过程,建立连接后就会正常传输数据。

异常断开

在理想情况下TCP会保持到双方数据传输后断开,但是在通信过程中会因为不可抗拒因素导致连接异常

或者被终止等,会发送RST标志告知另一方。

四次分手

在数据传输结束后,TCP协议会通过四次分手的过程来关闭建立的通道,在这个过程中,客户端向服务端发出FIN,ACK标志的数据包,告知通信完成。服务端会通过ACK标志的包来响应。随后服务端再发出FIN,ACK标志的数据包,客户端发送ACK标志的包来响应服务端。然后结束通信。


在TCP协议中,还存在重传、异常断开、流控制、保活、快速重传等各种机制,因实际情况复杂和篇幅有限,暂不说明。