计算机与原始人砸核桃用的石头是不是一样的?

计算机与类人猿用来敲坚果的石头是不是一样的?当然不一样,两者有质的差别,但我们可以讲本质上是一样的,他们都是人类再进化过程中使用的工具。我们不讨论计算机他是什么操作系统,用的什么CPU,CPU的制程是14nm还是7nm,还是3nm还是5nm。我们讨论一个问题,计算机是不是工具?

计算机当然是工具,他是为了解决问题而发明的,就像原始人用石头一样,为了解决问题发明的。那么好了,既然是为了解决问题而发明的,那么解决问题的工具,就不应该比问题还复杂。这么讲很多人可能不同意,我们这里不讨论哲学问题。要解决问题我们当然是要一种简单好用的工具来解决问题,而不是去解决提出问题的人。好了,这里我们不讨论政治。

既然是工具,我们只在工具这个维度讨论问题。工具嘛,简单好用是他的核心。这就引申出了“又不知道哪,听说的一个”面试题,为什么“http协议需要三次握手?”,“为什么需要三次握手,而不是四次、五次、或两次?”。首先我们要肯定一下面试官,他肯定是研究网络通信、网络协议的这块的,看过什么ACK,REC什么的这些专业的术语。这种学术研究的思维值得认可。但淡蛋蛋蛋是,他跑偏了。

我们先来研究一下,网络通信、协议呀,之类的它们是为了解决什么问题?他是为了解决什么问题而发明的,很明显通信嘛,就是通信嘛,对不对?既然是通信那么好,我们推演一下最简单的场景,接下来可能比较像剧本:

你好,我是苏小和?你收到了吗?          //////////////////////////////////////这是请求ACK

你好,我是小苏和,我收到你发的消息?你收到我发的消息了吗?///////////////////////////////////这是REQ加ACK

收到了,那我请你出去玩呀,明天25:78分怎么样,我发送了9个字,你收的时候验证一下

////////////其实这个时候通信已经建立起来了

balabalabala。。。。。。

如果这个时候非要来四次握手或五次握手,我们看看看:

你好,我是苏小和?你收到了吗?          //////////////////////////////////////这是请求ACK

你好,我是小苏和,我收到你发的消息?你收到我发的消息了吗?///////////////////////////////////这是Response加ACK

收到了,你收到了收到了你信息的信息了吗?

我收到了你收到了我收到你的信息?你收到了我收到了你收到我的信息了吗?

你有病吗?

你才有病?                                      ///////////这里包含response加Ack

大家看懂四次握手和五次握手和三次握手的区别了?当然您愿意这么握也没人拦着,只要有人愿意和你握就行。

我们再推演两次握手

你好,我是苏小和?你收到了吗?

你好,我是苏小和?你收到了吗?

哦个屁呀,你收到了吗?

你有病吗?

你才有病?

。。。。。。。。。

大家看懂了,至于什么请求头呀,编码呀,验证呀,都是基于简单、高效、安全的通信协议或者叫工具的基础上衍生出来的,合理的规则。如果你不是专门从事网络相关工作的人员,我觉的你了解到这个层面就够了。等到用的时候再去找资料再去看就可以了。如果我们有机会去当面是官,不要问这种为什么不是四次握手和五次握手的问题了。你说你这样问就如同孔乙己的“茴香豆的茴有几个写法?”是一样的。

文中的回复不叫Response。

 

猜你喜欢

转载自blog.csdn.net/s15948703868/article/details/107874031