- 三次握手连接建立阶段
1、客户端发送请求连接报文(SYN=1,seq=client_isn),SYN=1表示请求连接,seq序列号随机生成
2、服务端收到请求后,回复ACK报文,ACK为源seq=client_isc +1,以便回复给客户端后知晓自己的请求得到了回复
3、客户端回复ACK报文确认建立连接,ACK报文为服务端seq=server_isc +1
- 四次挥手(断开连接过程)
1、假设断开过程由客户端提出,则客户端发送FIN报文,意思说“我的clinet客户端没有数据要发 送给你了,我要断开了”,状态变为(FIN_WAIT1)此时应用程序不会立即关闭socket,如果还 有数据没传完可以继续传
2、服务端收到FIN报文后,发送ACK,说“你的请求我知道了,但是我还没准备好,请等我消息”
此时服务端状态变为(CLOSE_WAIT),客户端收到状态变为(FIN_WAIT1),服务端继续传输数 据
3、等服务端忙完了,就会发送FIN报文给客户端,表示“我忙完了,可以断开了”状态变为 (LAST_ACK)
4、客户端收到断开FIN报文后,就知道要关闭网络了,但是他还是不太相信网络,就会再次发送一 个ACK给服务端,服务端收到以后就知道可以断开了,于是关闭连接;而客户端在等待2MSL(生命 周期)大概1~4分钟时间后如果没再收到回复,就会主动关闭SOCKET关闭连接。
时间: 2024-10-09 23:55:26