协议的概念+本质+作用+最终表现形式,网络问题(技术+应用+解决的协议+存在原因),主机的对称性

本文主要是介绍协议的概念+本质+作用+最终表现形式,网络问题(技术+应用+解决的协议+存在原因),主机的对称性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

协议

概念

示例 -- 摩斯密码

本质

作用

网络问题

引入

技术问题

应用问题

主机的对称性

问题对应的协议

问题出现的原因

理解协议(代码层面)

举例 -- 快递单

协议的最终表现形式

协议被双方主机认知的基础


协议

概念

  • 协议是在计算机通信和数据传输中规定通信双方之间行为和数据格式的一组规则
  • 这些规则确保了不同设备和系统之间的互操作性和正确的数据传递
  • 协议定义了通信的步骤、数据的格式、错误处理机制等,使得通信双方能够理解和解释彼此之间传递的信息

示例 -- 摩斯密码

我们以现实中存在的协议来举例子,比如摩斯密码:

  • 它规定,不同元素的排列代表了不同的含义:
  • 也就是说,不用费劲巴拉的写复杂的字母和数字,二进制就可以完整的表示它们(简洁而统一)

并且双方都知道这些规则,只需要严格按照协议规定发送消息,就可以确保对方理解

  • 它通常用于电报通信
  • 摩斯密码的点和划可以通过电流的有无来表示
  • 根据当时时代的发展限制,借助电流传导+二进制表示的方式,可以有效减少由于传输距离引起的信号衰减和失真
  • 毕竟一套东西被设计出来,一定在某些方面是有用的,不然早就被淹没在历史长河中了

本质

协议本质上是一种约定,对所有人使用某资源的一种约定(就像你如果想要和中国人说话,就得会中文)

  • 各方约定好一套规定,确保信息在参与方之间的一致性和可预测性
  • 为什么要提出规定呢?自然是为了解决某个/某些问题

作用

协议本身,就是为了降低沟通的成本->也就减少了沟通出错的概率(相当于基数小了,自然出错的概率也会减少),比如:

  • 面对不同的人/设备,统一的标准能减少问题的出现
  • 如果要进行长距离传输,途中可能会出现各种问题,提前制定好应对措施可以减少出现错误的可能性

网络问题

引入

  • 协议是为了解决某个具体问题才被提出的具体方案
  • 而这里我们讨论的是关于网络的东西,所以针对的自然是网络通信中可能会出现的问题
  • 知道了问题所在,也就能知道协议的内容和具体作用

技术问题

我们根据这张图,来思考不同主机在传递信息时会经过哪些,以及过程中会发生哪些问题:

数据传输必定通过设备来完成

  • 所以,首先要考虑的是,数据如何准确无误地到达下一个设备?

设备与设备之间并不是一对一的

  • 如何定位目标主机的位置呢?

在长距离传输中,会经过无数的设备,但我们无法确保设备不会出错,即使没有出错,也不能保证数据不出错

  • 如何解决数据丢失/损坏的问题?

应用问题

除此之外,我们要明确一点,保证数据成功传输是我们最终的目的吗?

就像你网购,货物的运输过程你真的关心吗

  • 实际上你需要的只是货物,以及拿到后我需要使用它
  • 所以说,数据运输到位后如何被处理,也是我们需要考虑的(因为发来后,解码得到的只是二进制数据,并不是我们真正想要的形式)
  • 比如,发来的视频数据可以被播放,图片数据可以被查看

主机的对称性

以上这些问题,在双方主机上都会存在,收发正常才能算可以通信

所以,需要在双方电脑上都解决这些问题,才能保证正常通信

问题对应的协议

上面说过,协议是为了解决某个具体问题提出的,所以针对这里的每个问题,都会有对应的协议

  • 数据链路层协议 -- 解决设备之间的传输问题
  • ip协议 -- 解决主机定位的问题
  • tcp协议 -- 解决数据丢失/损坏的问题
  • https/http/smtp/ftp -- 解决数据应用层面的问题

问题出现的原因

究其根本,为什么会出现这些问题呢?

  • 如果我与你之间只有几十厘米,交流自然不成问题
  • 扩大到几十米,就得喊着说了,中间还会存在各种阻碍(比如其他人/阻挡物)
  • 再继续扩大,大到人与人不可能通过声音交流,就需要借助设备来交流
  • 随着距离的增加,设备也会增加
  • 自然而然的,随着以上需求的增加,技术就需要革新,这过程中必然有无数的问题暴露出来

理解协议(代码层面)

举例 -- 快递单

快递单其实也是一种协议

  • 收件方,寄件方,快递公司都可以看懂上面的信息,比如:姓名,地址,邮寄编号,电话号码等等
  • 通过这些信息你就可以确定对方的身份,这是多方之间做的一种约定(经手货物的人不同,但都认识快递单,可以通过快递单来得知需要的信息)

还有,快递一般都会有外包装(但实际上你只想要里面的货物),为什么要这样多此一举呢?

  • 首先是保护隐私
  • 其次是它上面贴着快递单,你需要快递单来确认信息

  • 所以,和现实中类似,在网络世界中,你收到的信息不止有信息,还有一些额外的字段
  • 他其实就是协议的具体实现,也被叫做"协议的报头"

协议的最终表现形式

回到代码方面,如果要用代码来表示快递单上的信息(姓名,电话,地址等等),你该如何做?

  • 是不是就是定义一个结构体,用多个变量来表示?
  • 而快递单的信息,正是由结构体+实际数据构成的
  • 所以,协议的最终表现形式就是结构体对象

协议被双方主机认知的基础

所以,为什么协议可以被双方主机认识?

  • 就是因为双方主机上都存在相同的结构体类型
  • 传递一个结构体对象,就能使双方建立起约定
  • (建立好约定后,就像双方都有相同的锁和钥匙,可以互相开对方的门)

这篇关于协议的概念+本质+作用+最终表现形式,网络问题(技术+应用+解决的协议+存在原因),主机的对称性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/743013

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

zoj3820(树的直径的应用)

题意:在一颗树上找两个点,使得所有点到选择与其更近的一个点的距离的最大值最小。 思路:如果是选择一个点的话,那么点就是直径的中点。现在考虑两个点的情况,先求树的直径,再把直径最中间的边去掉,再求剩下的两个子树中直径的中点。 代码如下: #include <stdio.h>#include <string.h>#include <algorithm>#include <map>#

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor