1.TCP协议中的三次握手和四次挥手
(TCP连接时全双工的,每个方向都必须单向进行关闭)
关闭连接时可能有数据还需要传递,所以需要四次挥手.而建立连接就没有此过程.
三次握手:
client发送连接请求报文,server接受连接后回复ACK报文,并为此连接分配资源.
client收到ACK报文后,向server发出ACK报文,并为此连接分配资源.这样TCP连接就建立了.
四次挥手:
client发起中断连接请求,就是发送FIN报文(client已经没有数据要发送,server可以关闭socket,也可以继续发送数据).
server收到FIN报文后发出ACK(告诉client,你的请求我收到了,但是我没有准备好,请继续等我消息),client进入FIN_WAIT状态继续等待server端的FIN报文.
当server端确认数据已经发送完毕后,向client发送FIN报文(我这边的数据已经发送完成,准备关闭连接).
client收到FIN报文后,向server发送ACK后进入TIME_WAIT状态,server收到ACK后就知道可以断开连接.client等待2sml后没有收到回复就证明server已经关闭连接,client也可以关闭连接.