TCP三次握手四次挥手

kyaa111 2年前 ⋅ 958 阅读

三次握手是为了证明双方都有发送响应消息的能力

比如

A 要向 B 建立连接

假如 A B 双方都是正常的

1.png

  1. A向B发送syn, B接收到, 此时B知道A能正常发消息

  2. B向A发送syn和ack, A接收到, 此时A知道B能正常收到(ack), 也能正常发送(syn), 但B还不知道A能不能正常收到

  3. 最后A向B发送ack, 证明自己能收到. 至此 A B 双方都确认了对方可以正常发送消息

四次挥手是为了保证数据已经完整的发送完成

1.png

  1. A向B发送, 我要关闭了, 那此时的A肯定没有数据要向B发送的

  2. B向A发送ack表示收到关闭请求, 但此时B可能还有没发送完的数据

  3. B主动向A发送fin表示我数据完全发完了, 断开吧. 此时双方都已经没有数据要向对方发送了

  4. A发送ack表示确认, 即将断开连接