大白话解释为啥是3次握手,而不是2次,或者4次、5次... ?

网络分为上行、下行,比如你说你的网络通,其实是你的网络的发送( 上行 )和接收( 下行 )能力都OK。为了方便理解,用小明和小花分别表示客户端和服务端。
为什么是3次握手,而不是更少的次数,比如2次,或者更多的次数,比如4次、5次?因为3次是同时可以让小明和小花都知道自己的网络的上行、下行都ok的最少次数,2次不行( 原因参见下面的分析过程 ),
4次,5次也可以,但是太浪费了。
分析如下:
        1. 小明:吃了吗?      如果此时就结束握手过程,小明既不能知道自己的上行ok与否,也不能知道自己的下行ok与否,因为小明根本不知道对方是否收到自己的消息。

        2. 小花:吃了,你呢?    如果此时就结束握手过程,小明可以知道自己网络的上行、下行是否ok,因为小明收到( 下行 )了对方的消息 "吃了,你呢?",表示对方收到了自己发送( 上行 )的消息 "吃了吗?"。 但是小花只能知道自己网络的下行是ok的( 因为收到了消息 "吃了吗?" ),虽然发出了消息 "吃了,你呢?",但是还没收到小明的回复,所以小花无法得知自己的消息是否发送成功,所以无法证明自己的上行是否ok。

        3. 小明:我也吃了,晚安。  如果此时结束握手过程,小明可以证明自己的网络的上行和下行都是ok的,原因参见上一步。小花也可以证明自己的网络的上行和下行都是ok的,因为小花收到了消息 "吃了吗?",所以小花知道自己的网络的下行是ok的,因为小花又收到了消息 "我也吃了,晚安。",所以小花认为自己发送的消息 "吃了,你呢?" 已经成功发出去被小明知道了,否则小明怎么会发送第二条消息 "我也吃了,晚安。" 呢?证明小花的接收和发送能力都是ok的,即小花的网络的下行和上行都是ok的。

猜你喜欢

转载自blog.csdn.net/heshiyuan1406146854/article/details/131307244