通讯协议:你好,再见!

《智取威虎山》这部电影想必很多人都看过,即使没看过,也知道里面有个孤胆英雄杨子荣。有些朋友还能像模像样地模仿几句:”天王盖地虎,宝塔镇河妖。莫哈莫哈,正晌午时说话,谁也没有家。脸红什么?精神焕发!怎么又黄了?防冷涂的蜡!”

通过这句暗语,我们的英雄得以顺利打进敌人内部做卧底并圆满完成任务。

其实,当人们在电脑上打开浏览器,输入网址并按下回车键的时候;当人们打开手机,点开微信,和好友聊天的时候;当人们打开智能电视,按下遥控器上的选择键并点击OK的时候,机器(电脑、手机、电视都是计算机,也都是机器)就会接受指令,并把这些指令转化为「暗语」,告诉其他机器。整个过程大概会是这样的(用具体的技术形式表达会过于复杂,也没必要,咱只需要知道是怎么回事就行):

通讯协议:你好,再见!

计算机之间的「暗语」虽然形式复杂,有众多识别标记,但整个过程跟上面那段对话没啥本质区别。这种交流方式、交流内容和交流过程,用官方或者专业的说法,统称为「通信协议」。

虽然,科学家们发明了编程语言,可以指挥计算机完成各种各样的任务,但是要让计算机之间能够互相交流,理解对方在”说”什么,其难度不亚于再发明一种编程语言。功夫不负有「芯」人——在众多科学大牛的撮合下,计算机之间终于可以互说再见了!——从浏览器、APP、小程序、光猫、电视节目,到机器人、无人机、卫星,它们之间的通讯交流,都离不开协议的支持。而且,科学家们还给不同的协议分门别类,形成了庞大的协议家族(专业的说法叫「协议簇」,「花团锦簇」的「簇」),并划分了不同的七大层级。这些协议簇在各自地盘里发挥作用,各司其职,共同组成了热闹的互联网!

这有点类似于不甘寂寞的武林门派——比如处于物理层和数据链路层,离硬件最近的一系列协议簇(如NB-IoT 、802.11、PPP)其实类似于丐帮;高一点的,在网络层和传输层里转悠的协议簇(如IPv4、ICMP)有点类似于逍遥派和长乐帮;再高一点,在用户和网络之间的协议簇(如TELNET、SNMP)就是峨眉派、崆峒派的势力范围了;而最高一级,直接和用户打交道的协议簇(如HTTP、AMQP),就属于少林派或武当派了。

通讯协议:你好,再见!

Original: https://www.cnblogs.com/xiangwang1111/p/16721438.html
Author: 湘王
Title: 通讯协议:你好,再见!

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/585020/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • MQTT协议简记

    MQTT – MQ Telemetry Transport 轻量级的 machine-to-machine 通信协议。 publish/subscribe模式。 基于T…

    Java 2023年5月30日
    092
  • Spring Boot+Mybatis 配置多数据源

    目前业界操作数据库的框架一般是 Mybatis,但在很多业务场景下,我们需要在一个工程里配置多个数据源来实现业务逻辑。在 SpringBoot中也可以实现多数据源并配合 Mybat…

    Java 2023年5月30日
    090
  • springboot读取本地图片返回给前端

    方法一、使用指定格式 需要前端页面解析response 返回的数据类型 方法二、使用MVC映射 请求路径匹配识别即可 posted @2021-11-19 08:43 一心二念 阅…

    Java 2023年5月30日
    0110
  • 【Unity Shader学习笔记】Unity基础纹理-法线贴图

    1 高度纹理 使用一张纹理改变物体表面法线,为模型提供更多细节。有两种主要方法: 1、高度映射:使用一张高度纹理(height map)来模拟表面位移(displacement)。…

    Java 2023年6月8日
    071
  • XML解析

    使用dom4j解析xml 通过反射,如果自己能够创建好Vo文件 对应XML文件中的节点 public FaultReportVo readHdrXml(String url) th…

    Java 2023年6月16日
    082
  • java你可能不知道的事(2)–堆和栈

    在java语言的学习和使用当中你可能已经了解或者知道堆和栈,但是你可能没有完全的理解它们。今天我们就一起来学习堆、栈的特点以及它们的区别。认识了这个之后,你可能对java有更深的理…

    Java 2023年6月13日
    083
  • 最新开源分布式定时任务调度系统

    🔥2022 最新的轻量级分布式任务调度系统 🎨 Open-Job 介绍 ✨ 已实现功能点 🍪 快速开始 sql 文件在 doc/open_job.sql 需安装 node.js, …

    Java 2023年6月7日
    062
  • 具有timeout 功能的函数调用

    做项目的时候有时经常会需要一个带有timeout功能的函数调用。 比如从后台读数据并期望在给定时间内返回。借此机会包装了一个简单的C# class, 直接上代码吧. public …

    Java 2023年6月5日
    080
  • 从零开始实现放置游戏(五)——实现后台管理系统(3)实现切面日志

    上一章,我们初步实现了后台管理系统的增删查改功能。然而还有很多功能不完善。这一章,我们先把系统日志搭建起来,不管是生产问题排查,还是方便开发调试,日志都是必不可少的核心功能。所谓切…

    Java 2023年6月5日
    093
  • 介绍下Java内存区域(运行时数据区)

    介绍下Java内存区域(运行时数据区) Java 虚拟机在执行 Java 程序的过程中会把它管理的内存划分成若干个不同的数据区域。JDK 1.8 和之前的版本略有不同。 下图是 J…

    Java 2023年6月15日
    072
  • JavaWeb 08_JSP+Dao+Bean+Servlet 实现登录注册(连接数据库,验证码登录,两周内免登陆等功能)

    一.数据库db_01 表usert 字段username,password 二. 目录 三. 配置信息 四. 代码 index.jsp "charset=UTF-8&qu…

    Java 2023年6月7日
    094
  • 机器学习(5)特征值的处理总结和缺失值的处理

    数值型数据处理的方式:1,归一化 2,标准化 3,缺失值处理(pandas处理) 类别型数据:on-hot编码 时间类型数据:时间切分 posted @2018-11-19 16:…

    Java 2023年6月8日
    095
  • Java 面试题集锦

    第一阶段 1、重载(overload)和重写(overwrite)区别 重写:子类继承父类,子类重写父类的方法。重载: 2、StringBuffer、StringBuilder、S…

    Java 2023年6月9日
    064
  • nginx目录及配置语法

    一、Nginx安装目录 1、查看安装目录。 采用yum的方式安装,其实都是安装的一个一个的 pm 包,故可采用如下命令查看 rpm -ql nginx 遵循了 rpm 包管理规范。…

    Java 2023年5月30日
    090
  • 密码学入门

    原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 简介 在信息安全领域,一般会遇到”窃听”、”篡改”、…

    Java 2023年6月7日
    089
  • Java8 利用Lambda处理List集合

    List list = new ArrayList(); User user1 = new User("第一位","用户1"); list….

    Java 2023年5月29日
    073
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球