三次握手
先看一下三次握手的过程:
这里有一个问题需要阐述一下:为什么client在收到server的SYN ACK报文之后还需要回复一个ACK报文呢?
四次挥手
由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。
看一下四次挥手的过程:
这里面涉及到几个问题:
在整个四次挥手过程中,client的状态变化如图:
server端状态变化: