关于通讯协议的一些理解

关于通讯协议的一些理解

什么通信协议?
  通信协议不难理解,就是两个(或多个)设备之间进行通信,必须要遵循的数据格式。这是个宽泛的定义,在和不同专业的人打交道的过程中,我发现每个人对“协议”的认知多少都有差异。本文就谈一谈本人对通讯协议的理解,通讯协议除了数据内容本身,还有包括了通讯的流程(如何加密,如何解析),流程被破坏,数据也会随之破环。
  国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型—OSI模型,是一个具有7层协议结构的开放系统互连模型。现在我们所以的通讯都是以此为原型的。

OSI模型从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。

在这里插入图片描述

  物理层: 计算机与计算机之间的通信,必须要有底层物理层方面的连通。就像电脑要上网就要连接网线、路由器这些设备。玩过单片机开发的同学肯定知道串口通讯、I2C通讯、SPI通讯等等,
这些不同的协议对应着不同的电路,开发者要实现的方式有很多种,(1)可以选择自己搭建电路。(2)部分可以通过软件模拟的方式实现,比如软I2C和硬I2C,。(3)也可以选择别人做好的集成芯片,高级的芯片都会集成这些基础的功能。这些通讯方式的区别是由电路决定的,我称之为电路协议。只有电平对应上,才能承载后续的数据传输。
  数据链路层: 在物理层提供的服务基础上,建立数据链路连接,传输以“帧”为单位的数据包,我们可以简单的理解为:数据链路层就是来对电信号来做分组的,一组数据为一帧。
每一数据帧分成:报头head和数据data两部分
这就像写信,发送者的地址(源地址)就是你家的地址,接收者地址(目标地址)就是对方的收信地址,你家的路由器就相当于邮局。在计算机通信中的源地址和目标地址指的是mac地址。
在这里插入图片描述
    Mac地址的由来:head中包含的源和目标地址由来:Ethernet规定接入Internet的设备都必须具备网卡,发送端的和接收端的地址便是指网卡的地址,即Mac地址。每块网卡出厂时都被烧录上一个实际上唯一的mac地址,长度为48位2进制,通常由12位16进制数表示,(前六位是厂商编码,后六位是流水线号),有了mac地址以后,计算机就可以通信了。
  网络层: 简单来说,这一层是为数据包做整理工作的中转站,就像邮局拿到快递之后分门别类处理后运往不同的地点,而这个地点就是IP。有了Mac地址及IP地址就知道这一包数据是从何处来,要往何处去了。将其进一步打包加密成域名就是我们常见的网址了,比如:https://www.baidu.com/
对方收到这包数据后按照对应的解包方式,方可获得其中内容,有兴趣的同学可以去看看ARP: Adress Resolution Protocol 地址解析协议。
  **传输层:**网络层的ip帮我们区分子网,数据链路层层的mac帮我们找到主机,电脑上可能同时开启qq,微信,等多个应用程序,那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。端口范围0-65535,0-1023为系统占用端口。
  会话层: 负责建立、管理、终止会话。会话层还利用在数据中插入校验点来实现数据的同步。
  表示层: 用于数据转换。表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
  应用层: 用户使用的都是应用程序,均工作于应用层,互联网是开放的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式 。
  例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
  在不同的平台上开发者会跟据需要进行裁剪,并不是所有的协议都会用到7层结构,常见的TCP协议就有五层结构和四层结构。
在这里插入图片描述

  对于大部分应用开发者而言,并不需要关心这些是如何实现的,只需要知道大致的工作流程即可。如果你想成为一名驱动开发工程师,可以找块高级的STM32或者Linux芯片来做一台服务器,在做的过程中就可以初窥其中的有趣,这些形而上的概念只是逻辑代码罢了。

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值