《智取威虎山》这部电影想必很多人都看过,即使没看过,也知道里面有个孤胆英雄杨子荣。有些朋友还能像模像样地模仿几句:“天王盖地虎,宝塔镇河妖。莫哈莫哈,正晌午时说话,谁也没有家。脸红什么?精神焕发!怎么又黄了?防冷涂的蜡!”
通过这句暗语,我们的英雄得以顺利打进敌人内部做卧底并圆满完成任务。
其实,当人们在电脑上打开浏览器,输入网址并按下回车键的时候;当人们打开手机,点开微信,和好友聊天的时候;当人们打开智能电视,按下遥控器上的选择键并点击OK的时候,机器(电脑、手机、电视都是计算机,也都是机器)就会接受指令,并把这些指令转化为「暗语」,告诉其他机器。整个过程大概会是这样的(用具体的技术形式表达会过于复杂,也没必要,咱只需要知道是怎么回事就行):
计算机之间的「暗语」虽然形式复杂,有众多识别标记,但整个过程跟上面那段对话没啥本质区别。这种交流方式、交流内容和交流过程,用官方或者专业的说法,统称为「通信协议」。
虽然,科学家们发明了编程语言,可以指挥计算机完成各种各样的任务,但是要让计算机之间能够互相交流,理解对方在“说”什么,其难度不亚于再发明一种编程语言。功夫不负有「芯」人——在众多科学大牛的撮合下,计算机之间终于可以互说再见了!——从浏览器、APP、小程序、光猫、电视节目,到机器人、无人机、卫星,它们之间的通讯交流,都离不开协议的支持。而且,科学家们还给不同的协议分门别类,形成了庞大的协议家族(专业的说法叫「协议簇」,「花团锦簇」的「簇」),并划分了不同的七大层级。这些协议簇在各自地盘里发挥作用,各司其职,共同组成了热闹的互联网!
这有点类似于不甘寂寞的武林门派——比如处于物理层和数据链路层,离硬件最近的一系列协议簇(如NB-IoT、802.11、PPP)其实类似于丐帮;高一点的,在网络层和传输层里转悠的协议簇(如IPv4、ICMP)有点类似于逍遥派和长乐帮;再高一点,在用户和网络之间的协议簇(如TELNET、SNMP)就是峨眉派、崆峒派的势力范围了;而最高一级,直接和用户打交道的协议簇(如HTTP、AMQP),就属于少林派或武当派了。