为什么是3次握手?
3次是确保client和server收发数据都没问题的最小次数:
- client发送消息给server,告诉server,client具有发送消息的能力
- server回复消息给client,告诉client,server具有收发消息的能力
- client收到后再回复给server,告诉server,client具有接受消息的能力
期间,每次发送消息,都会带有seq,保证此次握手是延续上次握手
为什么是4次挥手?
因为TCP是全双工同道:客户端和服务端之间有两条通道 一条通道是客户端输出服务端的输入 一条通道是客户端输入服务端的输出 两条通道可以同时工作,也就是客户端给服务端发消息的同时,服务端也可以给客户端发消息 所以关闭的时候是这样的:
- 客户端告诉服务端,我要关闭这个输入通道了
- 服务端回复客户端,好的,我也关闭这个通道
- 服务端告诉客户端,我要关闭输入通道了
- 客户端回复,好的,我也关闭