热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

什么是物联网?常见IoT物联网协议最全讲解

什么是物联网?常见IoT物联网协议最全讲解一、什么是物联网?物联网(InternetofThings)这个概念读者应该不会陌生。物联网的概念最早于1999年被提出来,曾被称为继计算

什么是物联网?常见IoT 物联网协议最全讲解

一、什么是物联网?

物联网(Internet of Things)这个概念读者应该不会陌生。物联网的概念最早于1999年被提出来,曾被称为继计算机、互联网之后,世界信息产业发展的第三次浪潮,到现在已经发展了20余年。如今,在日常生活中,我们已经可以接触到非常多的物联网产品,例如各种智能家电、智能门锁等,这些都是物联网技术比较成熟的应用。

物联网最早的定义是:把所有物品通过射频识别等信息传感设备与互联网连接起来,实现智能化识别和管理。当然,物联网发展到今天,它的定义和范围已经有了扩展与变化,下面是现代物联网具有的特点。

1.1 物联网也是互联网

物联网,即物的互联网,属于互联网的一部分。物联网将互联网的基础设施作为信息传递的载体,即现代的物联网产品一定是“物”通过某种方式接入了互联网,而“物”通过互联网上传/下载数据,以及与人进行交互。

举个通过手机App远程启动汽车的例子,当用户通过App完成启动操作时,指令从已接入互联网的手机发送到云端平台,云端平台找到已接入互联网的车端电脑,然后下发指令,车端电脑执行启动命令,并将执行的结果反馈到云端平台;同时,用户的这次操作被记录在云端,用户可以随时从App上查询远程开锁记录历史。

这就是一个典型的物联网场景,它是属于互联网应用的一种。“物”接入互联网,数据和信息通过互联网交互,同时数据和其他互联网应用一样汇聚到了云端。

1.2 物联网的主体是“物”

前面说现代物联网应用是一种互联网应用,但是物联网应用和传统互联网应用又有一个很大的不同,那就是传统互联网生产和消费数据的主体是人,而现代物联网生产和消费数据的主体是物。

在现代物联网的应用场景下,数据的生产方是“物”,比如智能设备或者传感器,数据的消费者往往也是“物”。

在智慧农业的应用中,孵化室中的温度传感器将孵化室中的温度周期性地上传到控制中心。当温度低于一定阈值时,中心按照预设的规则远程打开加温设备。在这一场景中,数据的生产者是温度传感器,数据的消费者是加温设备,二者都是“物”,人并没有直接参与其中。

物联网和传统互联网最大的不同:数据的生产者和消费者主要是物,数据内容也是和“物”息息相关的。

1.3 物联网和人工智能

人工智能可谓近年来IT领域最火的词语之一。纵观人工智能的发展路线,我们可以看到,人工智能的发展之所以能够突飞猛进,主要有以下两个原因。

  • 硬件的发展使得深度学习神经网络的学习时间迅速缩短。
  • 在大数据的时代,获取大量数据的成本变低。

事实上,第二个原因尤为重要,神经网络由于其特性,需要海量的数据进行学习,可供学习的有效数据量往往决定了最后训练出的神经网络的效果,甚至算法的重要性都可以排在数据量之后。
而物联网设备,比如智能家电、可穿戴设备等,每天都在产生海量的数据,这些数据经过处理和清洗后,都可以作为不错的训练数据反哺神经网络。同时,训练出来的神经网络又可以重新应用到物联网设备中,进而形成一个良性循环。

《什么是物联网?常见 IoT 物联网协议最全讲解》

图1-1所示为物联网应用人工智能方法进行数据采集-迭代的循环。通过物联网设备采集并训练数据,在数据中心完成训练后,将模型应用到物联网设备,并评估效果进行下一次迭代。

物联网是人工智能落地的一个非常好的应用场景。随着人工智能的迅速发展,物联网这个同样在很多年前就提出的理论和技术,也会迎来新的春天。

目前,互联网数据入口渐渐朝几大巨头(例如阿里、腾讯)汇聚,规模较小的公司获取数据的代价越来越高,物联网这块还未完全开发的数据领域就显得尤为重要

这也是本书侧重于物联网平台开发而略过前端设备开发的原因,因为前端设备最终会趋于相同,出现同质化竞争,而如何采集和使用好设备产生的海量数据,才是你是否具有竞争优势的决定性因素。

1.4 物联网的现状与前景

随着5G时代的来临,物联网的发展将会非常迅速。同时,物联网方向的新增融资也一直处于上升趋势。下面再从应用场景角度来谈一下物联网行业的发展前景。
物联网的应用场景非常广泛,包括:

  • 智慧城市
  • 智慧建筑
  • 车联网
  • 智慧社区
  • 智能家居
  • 智慧医疗
  • 工业物联网

在不同的场景下,物联网应用的差异非常大,终端和网络架构的异构性强,这意味着在物联网行业存在足够多的细分市场,这就很难出现一家在市场份额上具有统治力的公司,同时由于市场够大,所以能够让足够多的公司存活。这种情况在互联网行业是不常见的,互联网行业的头部效应非常明显,市场绝大部分份额往往被头部的两三家公司占据。

物联网模式相对于互联网模式来说更“重”一些。物联网的应用总是伴随着前端设备,这也就意味着用户的切换成本相对较高,毕竟拆除设备、重新安装设备比动动手指重新下载一个应用要复杂不少。这也就意味着,资本的推动力在物联网行业中相对更弱。如果你取得了先发优势,那么后来者想光靠资本的力量赶上或者将你挤出市场,那他付出的代价要比在互联网行业中大得多。

所以说,物联网行业目前仍然是一片蓝海,小规模公司在这个行业中也完全有能力和大规模公司同台竞争。在AI和区块链的热度冷却后,物联网很有可能会成为下一个风口。作为程序员,在风口来临之前,提前进行一些知识储备是非常有必要的。

二、常见的物联网协议

2.1 MQTT协议

MQTT协议(Message Queue Telemetry Transport,消息队列遥测传输协议)是IBM的Andy Stanford-Clark和Arcom的Arlen Nipper于1999年为了一个通过卫星网络连接输油管道的项目开发的。为了满足低电量消耗和低网络带宽的需求,MQTT协议在设计之初就包含了以下几个特点:

  • 实现简单
  • 提供数据传输的QoS
  • 轻量、占用带宽低
  • 可传输任意类型的数据
  • 可保持的会话(Session)

随着多年的发展,MQTT协议的重点不再只是嵌入式系统,而是更广泛的物联网世界。

简单来说,MQTT协议有以下特性:

  • 基于TCP协议的应用层协议
  • 采用C/S架构
  • 使用订阅/发布模式,将消息的发送方和接受方解耦
  • 提供3种消息的QoS(Quality of Service):至多一次、最少一次、只有一次
  • 收发消息都是异步的,发送方不需要等待接收方应答

MQTT协议的架构由Broker和连接到Broker的多个Client组成,如图2-1所示。

《什么是物联网?常见 IoT 物联网协议最全讲解》

MQTT协议可以为大量的低功率、工作网络环境不可靠的物联网设备提供通信保障。而它在移动互联网领域也大有作为,很多Android App的推送功能都是基于MQTT协议实现的,一些IM的实现也是基于MQTT协议的。

2.2 MQTT-SN协议

MQTT-SN(MQTT for Sensor Network)协议是MQTT协议的传感器版本。MQTT协议虽然是轻量的应用层协议,但是MQTT协议是运行于TCP协议栈之上的,TCP协议对于某些计算能力和电量非常有限的设备来说,比如传感器,就不太适用了。

MQTT-SN运行在UDP协议上,同时保留了MQTT协议的大部分信令和特性,如订阅和发布等。MQTT-SN协议引入了MQTT-SN网关这一角色,网关负责把MQTT-SN协议转换为MQTT协议,并和远端的MQTT Broker进行通信。MQTT-SN协议支持网关的自动发现。MQTT-SN协议的通信模型如图2-2所示。

《什么是物联网?常见 IoT 物联网协议最全讲解》

2.3 CoAP协议

CoAP(Constrained Application Protocol)协议是一种运行在资源比较紧张的设备上的协议。CoAP协议通常也是运行在UDP协议上的。

CoAP协议设计得非常小巧,最小的数据包只有4个字节。CoAP协议采用C/S架构,使用类似于HTTP协议的请求-响应的交互模式。设备可以通过类似于coap://192.168.1.150:5683/2ndfloor/temperature的URL来标识一个实体,并使用类似于HTTP的PUT、GET、POST、DELET请求指令来获取或者修改这个实体的状态。

同时,CoAP提供一种观察模式,观察者可以通过OBSERVE指令向CoAP服务器指明观察的实体对象。当实体对象的状态发生变化时,观察者就可以收到实体对象的最新状态,类似于MQTT协议中的订阅功能。CoAP协议的通信模型如图2-3所示。

《什么是物联网?常见 IoT 物联网协议最全讲解》

2.4 LwM2M协议

LwM2M( Lightweight Machine-To-Machine )协议是由Open Mobile Alliance(OMA)定义的一套适用于物联网的轻量级协议。它使用RESTful接口,提供设备的接入、管理和通信功能,也适用于资源比较紧张的设备。LwM2M协议的架构如图2-4所示。

《什么是物联网?常见 IoT 物联网协议最全讲解》

LwM2M协议底层使用CoAP协议传输数据和信令。而在LwM2M协议的架构中,CoAP协议可以运行在UDP或者SMS(短信)之上,通过DTLS(数据报传输层安全)来实现数据的安全传输。

LwM2M协议架构主要包含3种实体—LwM2M Bootstrap Server、LwM2M Server和LwM2M Client。

LwM2M Bootstrap Server负责引导LwM2M Client注册并接入LwM2M Server,之后LwM2M Server和LwM2M Client就可以通过协议指定的接口进行交互了。

2.5 HTTP协议

正如我们之前所讲,物联网也是互联网,HTTP这个在互联网中广泛应用的协议,在合适的环境下也可以应用到物联网中。在一些计算和硬件资源比较充沛的设备上,比如运行安卓操作系统的设备,完全可以使用HTTP协议上传和下载数据,就好像在开发移动应用一样。设备也可以使用运行在HTTP协议上的WebSocket主动接收来自服务器的数据。

2.6 LoRaWAN协议

LoRaWAN协议是由LoRa联盟提出并推动的一种低功率广域网协议,它和我们之前介绍的几种协议有所不同。MQTT协议、CoAP协议都是运行在应用层,底层使用TCP协议或者UDP协议进行数据传输,整个协议栈运行在IP网络上。而LoRaWAN协议则是物理层/数据链路层协议,它解决的是设备如何接入互联网的问题,并不运行在IP网络上。

LoRa(Long Range)是一种无线通信技术,它具有使用距离远、功耗低的特点。在上面的场景下,用户就可以使用LoRaWAN技术进行组网,在工程设备上安装支持LoRA的模块。通过LoRa的中继设备将数据发往位于隧道外部的、有互联网接入的LoRa网关,LoRa网关再将数据封装成可以在IP网络中通过TCP协议或者UDP协议传输的数据协议包(比如MQTT协议),然后发往云端的数据中心。

2.7 NB-IoT协议

NB-IoT(Narrow Band Internet of Things)协议和LoRaWAN协议一样,是将设备接入互联网的物理层/数据链路层的协议。

与LoRA不同的是,NB-IoT协议构建和运行在蜂窝网络上,消耗的带宽较低,可以直接部署到现有的GSM网络或者LTE网络。设备安装支持NB-IoT的芯片和相应的物联网卡,然后连接到NB-IoT基站就可以接入互联网。而且NB-IoT协议不像LoRaWAN协议那样需要网关进行协议转换,接入的设备可以直接使用IP网络进行数据传输。

NB-IoT协议相比传统的基站,增益提高了约20dB,可以覆盖到地下车库、管道、地下室等之前信号难以覆盖的地方。

付强,某智慧社区企业的联合创始人兼CTO,资深IoT技术专家,有10余年从业经验,专注于物联网平台和产品的设计与开发,非常熟悉各种物联网协议和物联网系统的架构与开发。

 

原文链接

本文为阿里云原创内容,未经允许不得转载。


推荐阅读
  • Java高并发与多线程(二):线程的实现方式详解
    本文将深入探讨Java中线程的三种主要实现方式,包括继承Thread类、实现Runnable接口和实现Callable接口,并分析它们之间的异同及其应用场景。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 如何利用Java 5 Executor框架高效构建和管理线程池
    Java 5 引入了 Executor 框架,为开发人员提供了一种高效管理和构建线程池的方法。该框架通过将任务提交与任务执行分离,简化了多线程编程的复杂性。利用 Executor 框架,开发人员可以更灵活地控制线程的创建、分配和管理,从而提高服务器端应用的性能和响应能力。此外,该框架还提供了多种线程池实现,如固定线程池、缓存线程池和单线程池,以适应不同的应用场景和需求。 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 在2019中国国际智能产业博览会上,百度董事长兼CEO李彦宏强调,人工智能应务实推进其在各行业的应用。随后,在“ABC SUMMIT 2019百度云智峰会”上,百度展示了通过“云+AI”推动AI工业化和产业智能化的最新成果。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 在《Linux高性能服务器编程》一书中,第3.2节深入探讨了TCP报头的结构与功能。TCP报头是每个TCP数据段中不可或缺的部分,它不仅包含了源端口和目的端口的信息,还负责管理TCP连接的状态和控制。本节内容详尽地解析了TCP报头的各项字段及其作用,为读者提供了深入理解TCP协议的基础。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 利用 Python Socket 实现 ICMP 协议下的网络通信
    在计算机网络课程的2.1实验中,学生需要通过Python Socket编程实现一种基于ICMP协议的网络通信功能。与操作系统自带的Ping命令类似,该实验要求学生开发一个简化的、非标准的ICMP通信程序,以加深对ICMP协议及其在网络通信中的应用的理解。通过这一实验,学生将掌握如何使用Python Socket库来构建和解析ICMP数据包,并实现基本的网络探测功能。 ... [详细]
  • 洛谷 P4035 [JSOI2008] 球形空间生成器(高斯消元法 / 模拟退火算法)
    本文介绍了洛谷 P4035 [JSOI2008] 球形空间生成器问题的解决方案,主要使用了高斯消元法和模拟退火算法。通过这两种方法,可以高效地求解多维空间中的球心位置。文章提供了详细的算法模板和实现代码,适用于 ACM 竞赛和其他相关应用场景。数据范围限制在 10 以内,确保了算法的高效性和准确性。 ... [详细]
author-avatar
杀手也热血_949
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有