△:四次挥手的核心:发完了,知道发完了,收完了,知道收完了。
比如吃饭,A给B一勺一勺的喂饭,A喂B的过程相当于两台机器之间互相通信的过程,每喂一勺,相当于一次数据传递。
1.当A喂完最后一勺的时候,说喂完了,没有了。这个时候相当于A向B传输数据,数据传递完了,但是数据传递完了之后,不能直接断开,因为B并不知道数据传递完了,所以必须A告诉B数据传递完了。这就是第一次挥手,A告诉B数据发送完了。
2.当A 喂完了,但是B还没有吃完只能点头表示吃完了,这个时候,因为B还没有接收完数据,所以虽然知道A把数据传完了,只能先回复我知道你传完了。这就是第二次回收,B知道A发完了。
3.当A看到B吃完最后一口,说:终于吃完了。这时,虽然A已经发送了数据但是并不确定B都咽下去了,所以A还是要等着,因为一旦B没有接收成功,A还要继续发送,所以A要等着B反馈做完了,才能真正的断开连接。所以这时候B接受完数据的时候,B要告诉A接受完了。这就是第三次挥手,B告诉A接收完了。
4.A说好的,这时A知道了B接受完数据了,可以放心的断开连接了。这就是第四次挥手,A知道B接收完了。
为什么是三次握手四次挥手呢:
因为当A告诉B发完了的时候,B还有可能没有接受完消息,所以只能先回复一部分,告诉A已经收到发完了的消息了,当消息完全接收完毕后,才会告诉A已经接收完了。