通过在潘老师课上得学习,我明白了TCP被称为面向连接的可靠传输协议,其中面向连接通过“三次握手”来完成,可靠传输通过“四次挥手”来实现。三次握手是为了初始化TCP连接,而“四次挥手”是为了终止TCP连接。接下来我们分别讲解一下“三次握手”与“四次挥手”的原理。
三次握手:
第一次握手:客户端向服务端发送一个SKN的确认标志的数据包,表示需要建立TCP连接
第二次握手:服务端接收成功后,向客户端回传一个带有ACK验证标志的数据包表示已收到的信息
第三次握手:客户端再给服务端发送一个ACK标志数据包,表示握手结束
四次挥手:
由于TCP是全双工连接,因此每个方向都必须进行单独关闭.这原则是当乙方完成他的数据发送任务后就能发送一个FIN来终止这个方向的连接.收到一个FINE只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据.首先进行关闭的一方将执行主动关闭,而另一个执行被动关闭.
第一次挥手:客户端向服务端发送一个FIN,用来关闭二者的数据传输,客户端进入FIN_WAIT_1状态
第二次挥手:服务端收到FIN后,向客户端发送一个ASK确认标志,服务端进入CLOSE_WAIT状态
第三次挥手:服务端向客户端发送一个FIN,用来关闭二者的数据传输,服务端进入LAST_ASK状态
第四次挥手:客户端收到FIN后,客户端进入TIME_WAIT状态.接着发送一个ACK标志给服务端,服务端进入CLOSE状态,完成四次挥手.