物联网(二)

CoAP协议技术原理

CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP是一种应用层协议,它运行于UDP协议之上而不是像运行TCP之上。CoAP协议非常小巧,最小的数据包仅为4字节。

CoAP协议的定义

CoAP协议的交互模型与HTTP的客户端/服务端模型类似。然而,在M2M的交互场景中,CoAP目标是设计一个通用的网络协议,满足受限环境的特殊需求,特别考虑了能源、楼宇自动化和其它M2M应用。
CoAP并不能替代HTTP协议,但是对于那些小设备(256KB Flash 32KB RAM 20MHz主频)而言CoAP的确是一个更好的解决方案。

CoAP协议特点

1)满足受限环境下M2M需求的协议
2)CoAp协议基于UDP
3)异步消息交换
4)轻量级的头部,且解析复杂度低
5)支持URI和Content-Type
6)能实现简单的数据缓存和代理
7)无状态的HTTP映射,可以构建代理服务器,使CoAP资源可以用HTTP协议访问,也可以使HTTP接口实现于CoAP协议之上
8)支持DTLS

RESTful架构

REST(Representational State Transfer)是一种设计风格而不是标准,如果一个架构符合REST原则,我们就称它为RESTful架构,REST可以直译为表现层状态转化,表现层其实指的是资源的表现层。通俗来讲就是:资源在网络中某种表现形式进行状态转移。分解开来看:
1)Resource:资源,即数据
2)Representational:某种表现形式,比如用JSON,XML等
3)State Transfer:状态变化。通过动词(如POST,GET,PUT,DELETE)实现

CoAP报文结构简介

1)和其他TCP IP协议簇中的协议一样,CoAP协议总是以“头”的形式出现在负载之前,而负载和CoAP头之间使用单字节0xFF分离
2)CoAP协议报文第一行是消息头,必须有,固定4个byte,其它字段为可选
3)Wireshark抓包

CoAP的Request方法

CoAP协议定义的Request方法有如下4种:
1)【0.01】GET方法——用于获取某资源
2)【0.02】POST方法——用于创建某资源
3)【0.03】PUT方法——用于更新某资源
4)【0.04】DELETE方法——用于删除某资源
对于不能识别的方法,需要返回一个4.05(method Not Allowed)的Piggybacked response

CoAP的响应码-4.XX

【4.00】Bad Request 请求错误,服务器无法处理。类似于HTTP 400
【4.01】Unauthorized 没有范围权限。类似于HTTP 401
【4.02】Bad Option 请求中包含错误选项
【4.03】Forbidden 服务器拒绝请求。类似于HTTP 403
【4.04】Not Found 服务器找不到资源。类似于HTTP 404
【4.05】Method Not Allowed 非法请求方法。类似于HTTP 405
【4.06】Not Acceptable请求选项和服务器生成内容选项不一致。类似于HTTP 406
【4.12】Precondition Failed请求参数不足。类似于HTTP 412
【4.15】Unsuppor Conten-Type 请求中的媒体类型不被支持。类似于HTTP 415

CoAP Messages承载的信息

CoAP Messages承载信息包括:
1)Request
2)Response
3)Empty Message

Proxy-代理

Proxy是一种在CoAP Clients驱动下代表它们执行Request的Endpoint
Proxy按照功能分类:
前向代理(Forward-proxy)
反向代理(Reverse-proxy)

MQTT协议技术原理

MQTT是一个基于客户端发布/订阅模式的消息传输协议。它轻量、开放、简洁、优雅以便于可以被快速实现。

MQTT概述

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)。它构建于TCP/IP协议上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型“轻量级”通讯协议

MQTT协议特点

1)使用发布/订阅消息模式,提供了一对多的消息分发和应用之间的解耦
2)消息传输不需要知道负载内容
3)提供三种等级的服务质量
4)很小的传输消耗和协议数据交换,很大限度减少网络流量
5)异常连接断开发生时,能通知到相关各方

MQTT的发布/订阅模式

1)客户端连接到代理。它可以订阅代理中的任何消息“主题”
2)客户端通过将消息和主题发送给代理,发布某个主题范围内的消息
3)代理然后将消息转发给所有订阅该主题的客户端
4)发布/订阅解耦了消息的发布者和接受者

MQTT发布与订阅

发布

当MQTT客户端和代理(broker)建立连接后,就可以发布消息了
每个消息必须包含一个主题,代理(broker)根据主题将消息转发给感兴趣的客户端。每个消息通常拥有payload,其中包含了以字节格式传输的实际数据

订阅

订阅包含一个主题过滤器(Topic Filter)和一个最大的服务质量(QoS)等级
订阅与单个会话(Session)关联。会话可以包含多于一个的订阅。会话的每个订阅都有一个不同的主题过滤器

MQTT主题通配符

单级:+

只能用于单个主题层级匹配的通配符

多级:#

用于匹配主题中任意层级的通配符

物联网操作系统

RTOS介绍

RTOS概念

RTOS(Real-time operating system,实时操作系统)。
实时操作系统根据任务执行的实时性,分为“硬实时”操作系统和“软实时”操作系统。
“硬实时”操作系统必须使任务在确定的时间内完成。
“软实时”操作系统能让绝大多数任务在确定时间内完成。

使用RTOS的好处

Huawei LiteOS是一款“软实时”操作系统。
降低开发难度,直接使用系统API,即可完成系统资源的申请、多任务的配合,以及任务间的通信等。
增加代码可读性,易于维护和管理。
提升可移植性,对接不同芯片的工作由操作系统完成,应用开发者只需关注OS层接口。

LiteOS介绍

Huawei LiteOS概述

Huawei LiteOS基础内核是最精简的Huawei LiteOS操作系统代码,包括任务管理、内存管理、时间管理、通信管理、中断管理、队列管理、事件管理、定时器等操作系统基础组件,可以单独运行。
Huawei LiteOS Kernel的优势
1)高实时性,高稳定性。
2)超小内核,基础内核体积可以裁剪至不到10KB。
3)低功耗。
4)支持功能静态裁切。

物联网操作系统需求

连接需求:不同类型通信协议的互联互通
组网需求:自发现、自连接、自组网,网络可快速自愈
管理需求:不同类型传感器接入和算法开发的统一管理。

IOT终端在不同领域中需解决的问题

1)Connectivity:部署分散,无线覆盖不够
2)互通、互操作:不同厂家的设备
3)能耗:使用电池,能耗要严格控制
4)安全:无安全网络
5)建议配置:没有输入和显示设备
6)远程操控:NAT和防火墙后的设备

物联网操作系统面临的挑战

多传感器协同管理复杂
视频场景下性能、功耗要求高
终端之间通信协议复杂多样
开发语言编程效率低、上手难度大

硬件、协议、标准和应用场景高度碎片化

资源受限、超低功耗和高实时响应要求极致化

简易规模部署和安全连接

物联网平台

物模型

物模型又称产品模型,用于描述设备具备的能力和特性。开发者通过定义profile,在物联网平台构建一款设备的抽象模型,使平台理解该款设备支持的服务、属性、命令等信息,如颜色、开关等。

中断机制

中断机制简介

中断指出现需求时,CPU暂停执行当前程序,转而执行新程序的过程。