文章目录
- 一、OSI七层模型
- 1.1什么是OSI七层模型?
- 1.2这个网络模型究竟是干什么呢?
- 二、TCP/IP协议
- 三、常见协议
- 四、物联网通信协议以及MQTT
- 4.1 物联网七大通信协议
- 4.2 MQTT特性
一、OSI七层模型
1.1什么是OSI七层模型?
我们需要了解互联网的本质是一系列的网络协议,这个协议就叫做OSI协议(开放系统互联(Open System Interconnection)),它是由ISO(国际标准化组织)定义的。
那么对于OSI,人们按照功能不同,分工不同,人为的将OSI的分为七层。实际上这七层是并不存在的,也就是说没有这些概念,而我们今天提到的七层概念,只是人为的划分而已。目的只是为了让大家更好地理解这些都是用来做什么的。
1.2这个网络模型究竟是干什么呢?
简而言之就是进行数据封装的,同时是一个标准,所有人参照这个标准来设计
我们平常使用的程序(或者说软件)一般都是通过应用层来访问网络的,程序产生的数据会一层一层地往下传输,直到最后的网络接口层,就通过网线发送到互联网上去了。数据每往下走一层,就会被这一层的协议增加一层包装,等到发送到互联网上时,已经比原始数据多了四层包装。整个数据封装的过程就像俄罗斯套娃。
当另一台计算机接收到数据包时,会从网络接口层再一层一层往上传输,每传输一层就拆开一层包装,直到最后的应用层,就得到了最原始的数据,这才是程序要使用的数据。
给数据加包装的过程,实际上就是在数据的头部增加一个标志(一个数据块),表示数据经过了这一层,我已经处理过了。给数据拆包装的过程正好相反,就是去掉数据头部的标志,让它逐渐现出原形。
- 数据封装过程
封装(L7-L1向下封装)
上层数据 应用层
翻译、压缩 表示层
建立会话 会话层
定义传输工规则(TCP):上层数据封装协议 传输层
封装IP头部(PC1-IP、PC2-IP) 网络层
封装MAC头部(PC1-M、PC2-M) 数据链路层
二进制数据、物理传输 物理
- 数据解封装过程
二、TCP/IP协议
目前实际使用的网络模型是 TCP/IP 模型,它对 OSI 模型进行了简化,只包含了四层,从上到下分别是应用层、传输层、网络层和链路层(网络接口层),每一层都包含了若干协议。
TCP/IP 模型包含了 TCP、IP、UDP、Telnet、FTP、SMTP 、HTTP、Telnet等上百个互为关联的协议,其中 TCP 和 IP 是最常用的两种底层协议,所以把它们统称为“TCP/IP 协议族”。
三、常见协议
常见的有以下几种协议
(1)HTTP协议(超文本传输协议)属于TCP/IP协议家族中的一员。HTTP协议属于应用层。
(2)HTTPS协议(安全超文本传输协议)
(3)TCP协议(传输控制协议) 主要用于网间传输的协议,分割处理报文并把结果包传到IP层,并接收处理IP曾传到的数据包
(4)IP协议(网络互连协议)
(5)FTP协议(文件传输协议)
(6)SMTP协议(简单邮件传输协议)
(7)Telnet协议 Telnet是TCP/IP中的一种应用协议,可以为终端仿真提供支持。
还有其他,大家可以遇到时自行查找。
四、物联网通信协议以及MQTT
4.1 物联网七大通信协议
物联网七大通信协议是:REST/HTTP(松耦合服务调用)、CoAP协议、JMS、XMPP协议(即时通信)、AMQP协议(互操作性)、DDS协议(高可靠性、实时)、MQTT协议(低带宽)。
1、REST即表述性状态传递,是基于HTTP协议开发的一种通信风格。主要为了简化互联网中的系统架构,快速实现客户端和服务器之间交互的松耦合,降低了客户端和服务器之间的交互延迟。
2、CoAP (Constrained Application Protocol),受限应用协议,应用于无线传感网中协议。它适用于在资源受限的通信的IP网络。
3、JMS (Java Message Service),即消息服务,这是JAVA平台中著名的消息队列协议。Java消息服务应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。
4、XMPP(Extensible Messaging and Presence Protocol)可扩展通讯和表示协议,一个开源形式组织产生的网络即时通信协议。
5、AMQP(Advanced Message Queuing Protocol),先进消息队列协议,用于业务系统例如PLM,ERP,MES等进行数据交换。
6、DDS(Data Distribution Service for Real-Time Systems),面向实时系统的数据分布服务。
7、MQTT (Message Queuing Telemetry Transport ),消息队列遥测传输,由IBM开发的即时通讯协议,相比来说比较适合物联网场景的通讯协议。
目前,MQTT 已逐渐成为 IoT 领域最热门的协议,也是国内外各大物联网平台最主流的传输协议,阿里云 IoT 物联网平台很多设备都是通过
MQTT 接入。
4.2 MQTT特性
MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
- 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
- 对负载内容屏蔽的消息传输;
- 使用 TCP/IP 提供网络连接;
- 有三种消息发布服务质量:
- 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
- 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。