来源:雪球App,作者: 迪朗达尔,(https://xueqiu.com/8419566813/158106786)
TCP/IP协议的三次握手是客户端和服务端通信前的连接,作用就是双方都能明确自己和对方的收、发能力是正常的。
第一次握手:客户端发送网络包,服务端收到了。这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。 从客户端的视角来看,我接到了服务端发送过来的响应数据包,说明服务端接收到了我在第一次握手时发送的网络包,并且成功发送了响应数据包,这就说明,服务端的接收、发送能力正常。而另一方面,我收到了服务端的响应数据包,说明我第一次发送的网络包成功到达服务端,这样,我自己的发送和接收能力也是正常的。
第三次握手:客户端发包,服务端收到了。这样服务端就能得出结论:客户端的接收、发送能力,服务端的发送、接收能力是正常的。 第一、二次握手后,服务端并不知道客户端的接收能力以及自己的发送能力是否正常。而在第三次握手时,服务端收到了客户端对第二次握手作的回应。从服务端的角度,我在第二次握手时的响应数据发送出去了,客户端接收到了。所以,我的发送能力是正常的。而客户端的接收能力也是正常的。
经历了上面的三次握手过程,客户端和服务端都确认了自己的接收、发送能力是正常的。之后就可以正常通信了。
每次都是接收到数据包的一方可以得到一些结论,发送的一方其实没有任何头绪。我虽然有发包的动作,但是我怎么知道我有没有发出去,而对方有没有接收到呢?
而从上面的过程可以看到,最少是需要三次握手过程的。两次达不到让双方都得出自己、对方的接收、发送能力都正常的结论。其实每次收到网络包的一方至少是可以得到:对方的发送、我方的接收是正常的。而每一步都是有关联的,下一次的“响应”是由于第一次的“请求”触发,因此每次握手其实是可以得到额外的结论的。比如第三次握手时,服务端收到数据包,表明看服务端只能得到客户端的发送能力、服务端的接收能力是正常的,但是结合第二次,说明服务端在第二次发送的响应包,客户端接收到了,并且作出了响应,从而得到额外的结论:客户端的接收、服务端的发送是正常的。
以上这套规则可以做到明确对方正确接收信息,缺失任何一个环节都可以产生错误。这和我们平常会议沟通或者是教学沟通很类似,如果是简单地将知识输出给对方,对方如果没有反馈则是常见的沟通失败。对方反馈不理想说明信息消化机制有错误,这个时候通过其他信息纠正机制即可。如果对方反馈正确,我们再次进行正反馈,让对方知道自己说的是对的,这样完整的沟通就完成了。
实际上沟通中误会是由于思考逻辑与表达两块系统有传输损失造成,就像A吸收了原始数据,然后消化后告诉B,B实际上接受的是一次消化后的数据与原始数据是有区别的,随后B消化了A消化后的数据表达出了2次消化后的数据,这个时候我们如果加入一条由A分析2次消化后的数据是否接近原始数据的判断可以非常有效地纠正偏差。
上述方法的核心理念【让消化后的知识接近原始数据】是和费曼学习法类似的。简单介绍下费曼学习法的步骤:
第一步获取:即获得并初步吸收自己获得的知识
第二步教学:向他人讲解你所获得的知识/或者也可以想象给别人讲解的自言自语
第三步回顾:由他人或者自己对自己的教学进行评价,并回顾讲的不好的地方
第四步简化:简化=划重点 提炼并升华知识