01 为什么要学习网络协议?

【其中S表示原文,A表示我的个人解释】

【请注意,这里面充满大量不成熟的、主观推测的看法】

【大家可以去极客时间支持各位老师的专栏,都是很不错的内容】

S1:只有通过这种协议,计算机才知道我们想让它做什么……计算机语言作为程序员控制一台计算机工作的协议,具备了协议的三要素。
语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。
语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。
顺序,就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。
会了计算机语言,你就能够教给一台计算机完成你的工作了……教给一大片机器做什么。这就需要网络协议。只有通过网络协议,才能使一大片机器互相协作、共同完成一件事。

A1:所谓协议,就是一段人为设计的格式文本。所谓能够使一大片机器互相协作的协议,就是一种机器在生产设计时就预先设计好了相关的文本解析程序。也就说,必须先有人设计出协议,且有生产厂家将解析协议的程序内置在设备中,才能让协议事实上生效。也就是说,协议并非是一种天然如牛顿定律般的机器间的自然规律,协议是人为制定的规则体系,区别于自然界的法则,它是基于人类共识建立起来的信息交流标准。只要生产厂家使用的解析程序的解析逻辑发生改变,协议也就随之更改了。并且,并非是因为有了协议,所以计算机之间才能传输数据,计算机之间本身就可以通过各种物理线路进行传输,并不需要什么网络分层和它囊括的协议,而是因为仅仅能够传输数据是不够的,当一段数据从A电脑传输到B电脑,也许它在A电脑上是我发送的有意义的数据,但是这种有意义是主观的,B电脑作为一个没有思想的机器,它只能按照客观接受到的数据以及它固有的解析数据的程序进行解析,结果可能只是一堆乱码,我们需要通过人为规范交流的格式,并将这种格式内置成设备的程序,才能让主观变成客观,让你所理解的,正是我所传达的。所以,计算机之间可以物理层面传输数据,所以协议存在的根本原因就是确保数据的语义被正确解析,从而实现有效的信息交流。通过协议,将主观意图转化为客观可识别的格式,保证了通信的准确性。以此来理解协议的三要素——语法、语义、顺序,语法强调规则,这是解析程序进行数据解析的根基,语义强调意义,但这种意义对于计算机而言是没有意义,它是向人类强调的,顺序就是语法框架下的工作流程。前一者是属机器的,这是它客观运作的基础,后两者是人的,这是程序员主观意图的强调。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值