TCP是一种面向连接可靠的字节流通信协议,其中的可靠稳定主要是对数据的确认无误。
TCP的三次握手
第一次握手:客户端向服务器发送一个请求连接的报文段,并设置SYN标志位为1,表示请求建立连接。
第二次握手:服务器收到客户端的请求后,会回复一个确认报文段作为响应。服务器将SYN和ACK标志位置为1,表示同意建立连接,并选择一个初始序列号。同时,服务器也会发送自己的SYN请求。
第三次握手:客户端收到服务器的响应后,会向服务器发送一个确认报文段。该报文段中将ACK标志位置为1,表示客户端收到了服务器的确认,并对服务器的SYN请求进行确认。
TCP的四次断开确保计算机的资源释放干净否则会导致数据传输错误还会占用资源,其工作原理是:
第1次断开:客户端发送一个FIN,用来关闭客户端到服务端的数据传送,客户端进入FIN_WAIT_1状态。
第2次断开:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),服务端进入CLOSE_WAIT状态。
第3次断开:服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态。
第4次断开:客户端收到FIN后,客户端t进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,服务端进入CLOSED状态,完成四次挥手。