TCP三次握手四次挥手
2021-04-22 09:37:04 1081
三次握手是为了证明双方都有发送响应消息的能力
比如
A 要向 B 建立连接
假如 A B 双方都是正常的
- A向B发送syn, B接收到, 此时B知道A能正常发消息
- B向A发送syn和ack, A接收到, 此时A知道B能正常收到(ack), 也能正常发送(syn), 但B还不知道A能不能正常收到
- 最后A向B发送ack, 证明自己能收到. 至此 A B 双方都确认了对方可以正常发送消息
四次挥手是为了保证数据已经完整的发送完成
- A向B发送, 我要关闭了, 那此时的A肯定没有数据要向B发送的
- B向A发送ack表示收到关闭请求, 但此时B可能还有没发送完的数据
- B主动向A发送fin表示我数据完全发完了, 断开吧. 此时双方都已经没有数据要向对方发送了
- A发送ack表示确认, 即将断开连接