三次握手:
第一次握手:客户端向服务端发送消息请求建立连接("哥们,聊聊"SYN=1)
第二次握手:服务端接收到客户端发出的消息(证明客户端发消息功能正常),服务端向客户端发出消息("知道了"ACK,"现在聊吗"SYN)
第三次握手:客户端接收到服务器返回的消息(证明服务端接收消息和发送消息的功能正常),客户端再次发出消息("现在聊"ACK),服务端接收到消息(证明客户端接收消息功能正常),连接建立
四次挥手:
第一次挥手:客户端给服务端发送消息("我完事了"FIN),此时自身形成等待结束连接的状态
第二次挥手:服务端收到消息,给客户端返回一个消息,表示服务端收到了,且还有消息未发送完毕("我知道了"ACK,“我还有话没说完”)
第三次挥手:服务端给客户端发送消息("我也完事了,咱们断了吧"FIN),此时服务器也处理等待关闭连接的状态
第四次挥手:客户端收到服务端的消息,也要给服务端返回消息("断了吧"ACK),因为连接和断开要双方都按下关闭操作才行,同时客户端给自己家定义一个定时器,因为不知道这个消息是否能准确到达服务端(网络不稳定等因素),默认时间为两个通信的最大时间之和,超出这个时间就默认服务器端已经接收到了确认信息,此时客户端就关闭自身连接,服务器端一旦接受到客户端发来的确定消息就立刻关闭自己的连接
到此为止双方整个通信过程就此终结.需要说明一下:断开连接不一定就是客户端,谁都可以先发起断开指令,令牌客户端和服务端是没有固定标准的,谁发起请求谁就是客户端