计算机网络如何帮我理解「人们难以相互理解」?
题中所指的「计算机网络」并非「互联网」,而是每个计算机学生都一定会修读的《计算机网络》中涵盖的相关知识。本文不谈社交媒体、同温层、信息茧房和推荐算法如何让人们陷入不能相互理解的困境和情绪化的骂战——我的确会谈此类现象,但不是通过这种方式。
人们把互联网想象得太具破坏性,而鲜少自省。在极客和书呆子们修建好虚拟广场之前,人们就已经在其他的广场上建好巴别塔了,而互联网只是让巴别塔伸手可及,也让人们建立起对它的病态依赖,是放大因素而非万恶之源。本文基于我自己的观察和总结,试图分析为什么人们无法相互理解。我并不会把话题下降到情绪层面(对应的问题是「为什么人们不想相互理解?」),我只在理性的领域讨论。
开胃小菜
倘若读者接受过像样的计算机本科教育,或者自己研究过相关知识,就可以跳过这一节。我并不会讲太深刻的内容,尽力让所有人都能读懂。
架设计算机网络很复杂,人们要考虑的问题很多:用什么媒介传输数据?数据用什么格式表示?数据包里需要包含什么信息?计算机之前怎么建立连接?一台计算机怎么找到庞大网络中的另一台计算机?仔细审视一番就不难发现,这些问题之间还存在依赖关系,比方说,计算机之间建立连接的方式很大程度上决定了数据包里应该包含什么信息。想象一下,一台计算机收到一个数据包之后,应该先看看里面包含的 IP 地址和客户端信息,才决定要不要接受这个连接请求。
计算机领域解决复杂问题的方式往往是分离职责和隔离信息,最常见的解决方案是分层架构,把软件分成几个层次,每个层次关注一个问题,低层次为高层次提供服务,高层次使用低层次提供的服务而不必关注底层细节,比方说,在高层次的网络编程中,程序员就不需要考虑怎么把 10010110... 解码成有意义的数据格式了,可以直接使用被下层解码的数据格式。
最常用的计算机网络模型是 TCP/IP 四层模型。TCP 是传输控制协议(Transmission Control Protocol),IP 是网际协议(Internet Protocol)。后者是人们常说的 IP 地址,所有的 IP 地址都使用同一种格式(只要是同一个版本的协议),这样一台计算机才能找到另一台计算机在网络中的位置,使用什么格式、如何分配地址、如何进行数据交换就是计算机之间(以及程序员之间)建立起的一套「协议」。
接下来我们自顶向下地审视这四层模型。
最顶端的是应用层,在这一层常见的协议有 HTTP(超文本传输协议),读者正是通过支持 HTTP 协议的浏览器或别的客户端(比如 RSS 阅读器)读到这篇文章的,还有 SMTP(简单邮件发送协议)、FTP(文件传输协议)和 Telnet(远程登录协议)等等。HTTP 协议包含请求(Request)和响应(Response)两个部分,客户端像服务端发送请求,服务端处理请求之后向客户端发送响应。为了顺利通信,我们应该制定一套固定的请求格式和响应格式。比方说,客户端可能想向服务端请求一个页面的内容,按照规定,客户端应该在请求体里指定使用 GET 方法,并附上要访问的页面的路径,此外,我们还规定,客户端可以指定它想要接收什么语言的页面(Accept-Language)、要第几个字节到第几个字节的页面内容(Range),为了证明身份,客户端可能还要附上令牌(Authorization: Bearer ...)。相应地,一个符合要求的 HTTP 服务器应该能处理这些信息,做出合适的响应。有了这样的规定,客户端无须每访问一台新服务器时都搞清楚服务器需要什么信息,服务器也几乎不会收到令人意想不到的信息。
显然,在这个层次上,我们假设连接已经建立了,只考虑两台机器用什么样的「格式」通信。建立连接的工作由下一层完成了,也就是传输层。读者可能知道 HTTP 协议是基于 TCP 协议的,TCP 就是传输层协议,另一种传输层协议是 UDP。我不教计网知识,所以只谈 TCP,让读者明白这一层是做什么的就好。HTTP 之所以不需要考虑连接问题,是因为 TCP 已经建立了相当可靠且稳定的连接。它规定机器之间应该进行三次握手:服务器启动后监听某个端口,客户端发送一条名为 SYN(Synchronize,「同步」的意思)的消息,服务器收到并处理这个消息之后,向客户端发送 SYN-ACK(SYN Acknowledgement,表示知悉用户传来的同步信号),用户收到回应之后,再发送 ACK,此时 TCP 连接就建立了。我们可以把这条连接想象成一条「管道」,把「管道」提供给上层的 HTTP 协议之后,机器就在这条「管道」内发送请求和响应。
不难发现,网络层依然假设了一些东西,它假设我们已经找到了目标机器,只考虑如何商定连接。寻址和路由的问题通过网络层解决,前文提到的 IP 就是网络层协议。由于网络层已经开始接近计算机底层,涉及到路由算法、网关协议以及物理地址和逻辑地址的转换,再加上我的计网知识没有很扎实,就不展开细讲了。上面两层我们都把网络连接当成是点对点的,而网络层看到的不是建立连接的两台机器,而是复杂的网状结构,考虑数据包如何在子网、公网以及各个路由器之间流转,到达目标地址。
即便是网络层,我们也做了最终极的假设:机器收到的数据包是完整的、一体的,拿过来就能用,并且不需要考虑光纤和铜线等媒介的差异。在网络接口层,数据包被封装成帧,拆成多个帧,标上序号从网络中传递,接收方将这些帧暂存起来,之后再根据序号重新组装。此外,一条网线同时只能发送一个帧,在使用这条网线之前,应该侦听并确保线路是空闲的,才能发送帧,否则可能发生碰撞。由于需要等待线路空闲,网络繁忙时可能发生拥塞,这也是要做控制和处理的网络现象。
计算机网络其实还有很多有趣的地方,比方说客户端在请求服务器时,是先在应用层构造好了 HTTP 请求体,包含要访问的页面路径、接收的语言和格式、验证身份的令牌等等,然后把 HTTP 请求体交给传输层封装成 TCP 报文,报文中附带了某些控制信号,然后把 TCP 包含交给网络层封装成 IP 数据报,里面附加了网络层才考虑的信息,最后交给网络接口层,分装成一个个的帧,打上编号和控制信息,数据就可以出发了。当路由器收到帧时,先将它还原为 IP 数据包,拿到地址之后通过路由算法找到下一跳的地址,再包装成帧发往下一站。最终到达服务器时,机器将帧最终还原为 HTTP 请求体交给 Web 服务器,服务器再将响应体以同样的方式发出。
开胃小菜结束,记住「层次」「假设」「还原」这几个关键词,继续往下读。
为何一切尚未消失?
据说西方哲学起源于那句刻在德尔斐的阿波罗神庙上的「认识你自己」,自我这个概念一直是哲学研究的重要对象,也是非常棘手的话题,尤其是在哲学(乃至整个文科)都不被大众待见的当今。现在没有什么人在乎哲学家说「自我」是什么,但有不少人研读弗洛伊德所写的本我(id)、自我(ego)和超我(super-ego),不过,更多的人并不考虑「自我」这个概念,信仰科学的民众们更愿意把脑子里产生的想法当成某种生物化学反应,不在乎意识层面的活动,也不在乎自己做出某些行为是不是因为某种想要爬回妈妈子宫里的原始欲望。
人们用自然科学解释一切的方式,就和以前的人们用上帝的存在和圣经里的故事解释一切没什么两样,都在很浅显的地方停止了思考。现代人唯一的优势是,更接近事实的说法被呈现到了他们面前,而呈现在古代人面前的只有被误解的神迹。
比起精神分析,人们更在乎心理咨询,因为后者能解决问题。至于哲学,到处都能见到说它无用的声音,包括哲学学生的自嘲。除了功用不明,哲学不被待见和精神分析受到质疑的另一层原因是,人们摒弃了「明见性」,要求理论证明自己。更受人赞誉的行为心理学就是例子,因为一切都是能被观察和记录的行为,一切都是外在的,人们不关心说不清、道不明的内心活动(不如交给脑科学家去解释),只关心什么样的外部刺激会导致什么样的行为外显出来。一切都是在外的、可见的、清晰的,人们关注行为的解析,而不是《梦的解析》。对于后者,人们往往表示怀疑和不屑,只当作是让人看不明白的胡说八道。
这一切都起源于笛卡尔(René Descartes),这个发明了直角坐标系和解析几何的阴险的数学家。他说过一句经常被人错误地挪用,拿去说明思考的重要性(这不是废话吗?)的话:Cogito ergo sum.——我思故我在。这句话用来说明笛卡尔的怀疑论,他认为人无法证明任何东西的存在,周边的一切(书本、电脑、桌子和地面)都有可能是虚假的,就连自己的身体都可能不存在。人完全有可能是缸中之脑,我们所感受到的一切都是被喂给我们的信号。然而,无论怎么怀疑,人都无法怀疑自己的思想是虚假的,当下正在怀疑一切的自我是实实在在存在的,否则我就不可能进行这样的怀疑了。这才是「我思故我在」的意思,人通过理性只能证明自己的存在,而其他的一切都是被感觉到的,属于感性的范畴。笛卡尔认为感受是不可靠的,比方说人无法完全区分梦境中的经验和现实中的经验。现代人对感性的排斥,对理性的推崇,极大程度上受到了笛卡尔哲学的影响。
笛卡尔的怀疑论促使人们反思一切,并要求所有理论都得到证明。我之前写过一篇《 不脱裤子如何证明自己屌更大? 》,我即便没有提出什么严谨的理论,也被要求证明。一位评论者说我文章讨论的东西很没意思,因为没有办法证明,我没有办法窥见别人内心的想法,认定某人就是以某种方式思考的。
可是,无法证明、无法看见,就不能讨论了吗?所有的观点都是没有价值的吗?人类的意识只能由脑科学家以生物学知识解释吗?所有的理论都只能出自科学的一家之言吗?而科学理论的内部又有诸多分歧,科学不也给不出唯一的答案吗?科学难道不也是建立在各种各样的假设和不能证明的存在之上?怀疑论的回旋镖最终不还是砸到自己了吗?这样一来,是不是一切都没有意义?我们必须陷入到一切都不能被言说的困境当中?为何我们建立起的一切理论,都还没有因此消失?
为世界建模
是的,我从计算机科学谈到哲学,现在要来谈物理学。当然,我只懂高中物理,所以不必担心。我已经留了不少引子,我之后会把他们串起来的,我保证。
在中学物理的语境下做力学分析时,人们鲜少考虑摩擦力和空气阻力,而且,人们往往把物体理想化为标准的球体或立方体,表面非常平整。人们更不会考虑时间因素,不然,除了搞清楚某个轮子是定滑轮还是动滑轮,我们还要考虑磨损对受力的影响。可以说,物理建立起了一套简单且理想化的现实模型,使得力学研究变得可能。这类模型假设空气阻力和机械磨损等因素不存在,至少不影响眼前的问题,使得我们可以只考虑一部分变量和结果。
除了物理模型,其他领域也有不少这样的思想模型。比方说类型学领域的 MBTI,它基于荣格的八种心理类型,通过区分主导功能和辅助功能,划分出了十六种人格类型。实际上 MBTI 的内部逻辑很通畅,在这套模型之下思考时,的确能对各种概念在现实中的对照物产生新的认识。
至此,我们可以提出一个非常有趣的问题:为什么没有人指责物理学模型太理想,不能反映真实的现实,“现实世界怎么可能没有空气阻力?”,而有相当多的人指责 MBTI 简直搞笑,“人怎么可能只有十六种?”。
一部分原因是,「物理学」这个词所指的对象是明晰的,我们所说的物理就是课本上和科学家口中所说的物理,而 MBTI 这个词除了指代迈尔斯-布里格斯类型指标,还指代 16Personalities 这个常被误以为是官网的网站绘制的十六个小人(他们还添加了第五个名叫 Turbulance 的维度,做了很多自己的阐释),还指代已经被娱乐化的网络迷因,还指代不少非学术的心理学社群或机构造出来衍生概念(比方说认知功能堆栈,Fi、Te、Ni 之类的缩写),还指代几十家来路不明的心理测评机构发布的自测问卷,还指代身边人或网友通过他们的经验做出的主张(比如:INTP 永远不会做这种事情……)。MBTI 这个词的含义是模糊的,人们没有察觉到这种模糊性,于是把各种指代都当作一个整体,MBTI 当然成了怪物。
另一个原因是,人们并没有站在同一个层次讨论问题。想象,当提出「计算机网络中传输的数据是什么?」这个问题时,第一个人说「传输的是 10110100 这样的比特流!」,第二个人说「传输的是包含 IP 地址的 IP 数据报」,第三个人说「传输的是 HTTP 请求体和响应体!」,第四个人说「传输的是带有控制信息的 TCP 报文!」。然后,他们就吵了起来,第四个人质问第一个人「笑死我了,要是网络里传的全是 0 和 1 的话,我怎么知道连接有没有建立?我问你,SYN 怎么发?怎么握手?」;第二个人质问第四个人「我真觉得有些人是义务教育漏网之鱼,没计算机基础的人动动脑子都能想到,要是数据里只有控制信息没有地址,我数据丢出去发给谁?」;第一个人嘲笑第三个人「嘻嘻,真觉得计算机里存的就是文字和图片啊,二进制听说过没?你响应体里的网页和图片不编码成比特能直接传?」。
抱歉,我刻意使用了社交媒体平台上常见的令人不适的语气。如果读者分析过互联网上的某些对话,就会发现他们时常站在同一个体系结构下而不自知,明明讨论的是同一个事情,却因为不能意识到自己和对方所处的层次不同而陷入争执。不少理中客自以为理性讨论,实际上做的也是同样的事情,只不过语气温和了很多。
没搞清楚自己和对方所处的层次也是模糊性导致的,与词语指代不明导致的概念模糊同源。在进一步阐述思想模型和模型的层次之前,还要进一步讨论「模糊性」这个问题。
范畴意向性和模糊性
允许我再次回到哲学,审视哲学的一个分支——现象学(Phenomenology)。有译者认为现象学应该译作「显象学」,因为它研究的是外物在意识中的显现(appearance)。这门哲学复兴了古典哲学中的「明见性」(一些存在无需证明便明晰可见),与笛卡尔式的怀疑论直接对抗,并且现象学复兴古典哲学和抵抗现代科学的方式相当优雅。经院哲学认为一切思想都源于感受,理性始于感性,认知基于经验,真理是可以被经验和感知到的;笛卡尔认为真理是用数学定理推导出的,感受不可靠,智力的抽象依赖于脱离实体的感知。此外,人们对与心灵和肉体有着二元的认识,人们认为心灵是封闭的,与肉体不同但紧密相联,意识活动发生在封闭的内心中,而我们的身体以某种神奇的方式与它建立连接,我的知觉到的东西、记忆里的东西、想象里的东西,都被「投影」到封闭的内心当中。
胡塞尔说,我们认识到的对象不存在于封闭的内心中,所有的对象都在外界,我们的意识仅仅是「意向」着这些对象。意向性就是胡塞尔现象学的核心。当我们观察一个立方体时,立方体并没有被投影到我们的内心当中,而是我们的意识意向着这个外在的立方体,而且我们意向着的是它的一个外形,当我们转动视角,这个立方体原本缺席的部分现在也被我们意向着,而已经从我们视角中移出的部分也以缺席的状态被我们意向着。立方体的不同外形,和它缺席和在场的各个部分,显现出一种多样性,而多样性当中又有一种同一性(oneness),我们知道这些多样的表现都属于同一个立方体。
意向性理论复兴了古典哲学中的明见性,立方体就在那儿,被我意向着,我的意识还能发觉它表现出的多样性和同一性。由于意向活动的对象都是外在的,不存在难以被阐明和解释的神秘内心活动,也就避免了被要求证明其存在的难题。意向性活动是发生在意识内的思维活动,是「我思故我在」的。胡塞尔的另一套「现象学还原」理论还借用了笛卡尔的怀疑论,当我们进行现象学还原时(顺带一提,现象学还原其实就是对「悬搁」(Epoché)这个古希腊哲学概念的复兴),除了采用现象学的终止判断的态度(比如:我正在知觉这个立方体,我意向着它在场的几个侧面,同时也意向着缺席的那些侧面),还能采用怀疑论的态度(比如:我眼前的真的是立方体吗?有没有可能,缺席的侧面其实比我想的要多?这可能是个八面体?)。
意向性理论把非实体也纳入到意向对象当中。主张、对事态的陈述、判断,也是外在的的对象,这种对象叫作范畴对象,对范畴对象的意向叫作范畴意向性。一个范畴对象可以像立方体一样有着多样性的表现,真理可以有不同的陈述方式和修辞,可以用不同的语言言说,但这些多样性之下是同一性,真理仍然是真理,说的是一件事情。现象学还通过范畴意向性复兴了古希腊中的逻格斯这一概念,逻格斯既是语言也是理性的意思。范畴对象往往就是一个句子,把不同的词项用系词、介词和连接词等句法要素连接起来。当人们通过理性做出了思考和判断,便会用语言表述出来,比如:当我围着立方体转了一圈,拿起来从各个角度观察之后,所有的侧面都被我知觉到,于是我得出结论「我眼前的立方体是真的立方体」。
可见,语言和词句往往是伴随着范畴意向性活动的。当我们完成了范畴意向性活动,便可以把用语言表示的范畴对象传递给其他人。当词句被传递、重复和宣称之后,伴随语言的范畴意向性活动可能就不会被完成。比方说,有人说某某立方体是真的立方体,他可能并没有通过观察和思考得出这个结论,仅仅是听闻而已。这便是模糊性的来源:应该伴随语言的范畴意向性活动没有被完成。
我之前写过一篇《 论遣词造句 》,被指责傲慢。如今我在现象学的理论中看到了某种同一性,我的确有错,错在只关注遣词造句,而没有关注本应伴随词句发生的范畴意向性活动。我一直想要倡导的的确就是「应该先思考再用词」,而不是像语文老师一样教人用正确的词。哪怕是离大众最远的互联网角落,我也能看到不伴随思考的词句和模糊性飞来飞去,除非是非常实在和简单的话题,人们鲜少理解对方究竟在说什么。
要回答人们之间如何相互理解的问题,要求助胡塞尔的主体间性(Intersubjectivity)理论。我对此的认识还十分浅薄,打算暂时推迟讨论。今天只回答「为什么人们不能相互理解?」这个问题就好。
认知的形状
人们即便脱离互联网也难以做到相互理解的原因,暂且不谈个体差异和情绪化反应的话,大致可以在认知层面这样总结:人们习惯了语言的模糊性,继而不再思考语言本身的含义,以及这些含义能反映的自己当前使用的思想模型和思维层次;人们在不同的层次上模糊地讨论同一件事情,抑或是用相同的词语模糊地指代不同的事情,并且对正在阻碍自己与他者相互理解的模糊性毫无感知。
我有必要阐明自己做出这个结论的出发点,否则可能遭到这样的回应:
- 「人们不能相互理解是因为社交媒体总是给人推荐煽动情绪的内容,大家都变得很情绪化,所以无法进行理性思考了,这也是你说的模糊性的来源吧。我觉得还是互联网的问题。」
- 「和用词清晰还是模糊没有关系,人们不能相互理解是因为现在大家工作压力都太大了,不想相互理解,模糊性不过是症状之一。」
- 「MBTI 本身就是有问题,就算指代清晰,也没有物理模型那么科学。荣格心理学不也经常被批评?」
- 「被误解是表达者的宿命。」
这些说法在某个层面上都是对的,但问题在于,我这篇文章的大前提和这些回应的前提都对不上。我刻意避开互联网和情绪化的影响,从哲学和认知层面回答「人们为什么不能相互理解?」这个问题,而一些人可能完全抛开这个前提来反驳我的结论。并不是说前提不能被丢掉,而是说,如果我们决定在另一个层面讨论问题,那么就不该从这另一个层面阐释前一个层面已经得出的结论。我们当然可以从应用层离开,去讨论网络接口层传输的是什么样的数据,但不能站在网络接口层这一层次,用「数据是 1 和 0 组成的比特流」这个事实反驳应用层这个层次得出的「数据是 HTTP 响应体和请求体」这个结论。恰当的反驳是,「HTTP 请求和响应除了各自的 Body,还包括 Headers,即请求头和响应头,你说的不完全对。」,因为这也是站在应用层上的反驳。
去年我写文批评过一种被我称作《 前提重掷 》的现象,也与观点的前提有关。我在与一些人讨论问题时,他们能够意识到讨论的前提、我们所处的层次,但他们试图赢得辩论的方式不是直接反驳我的观点,而是重新抛掷前提。比方说,我和朋友讨论一部电影究竟讲了什么的时候,对方不赞同我的解读却不知道如何反驳,于是说「我觉得我们之所以能够讨论这么多,就说明着的确是部好电影」,然后以这句废话结束了讨论,看起来就像他压制了这场对谈一样,实际上他没有对我的想法做出任何回应。有趣的是,这篇文章下我收到了这样的评论:「比起前提重掷,完全不回应观点,我觉得阴阳怪气的人更讨厌。」同样地,话题又被转移到「互联网上人们太情绪化」上面了,前提被更换了,我们讨论的完全不是一件事情。
还有一类讨论聚焦于文中一带而过的例子,或者是丢出一句相关的陈词滥调,但并不做更多的阐释,言之无物。顺带一提,我关闭评论区的原因之一,就是因为我时常收到这样的评论。我知道,这样摸不清前提,搞不清楚层次的讨论(有的甚至算不上是讨论)是大多数,真正清晰明了的讨论(并不需要有多深刻)在无论在什么地方都难能可贵。我还知道,真正有思想的人往往不多言,他们很少出现在这样的讨论中的原因是,他们基本不出席任何鱼龙混杂的讨论。他们相互交谈,或是写作来交换观点。我不应该指望向所有人公开的讨论区能出现清晰明了的讨论,我应当关注与我有一定交往,能够私下通信的朋友和小社群。
尽管如此,我还是想呼吁。如果一定要进行公开讨论,明确前提和出发点,知晓自己用什么样的方式思考,采取什么样的态度,位于什么样的层次,是非常重要的,除非自己的目的就是利用模糊性为自己塑造某种形象,而不是为了真诚地表达自己,听见别人。
- 相关文章:《 科学的无知信徒 》