概述

受限于有限的资源,Cortex-M等嵌入式设备(后文简称“嵌入式”设备)大多不接入网络,少数支持的对网络协议的支持也很大程度不同于常规,它们不具备支持浏览器、多媒体及APP的能力。

TCP/IP简述

TCP/IP协议是网络的核心,如图所示:

TCP/IP

常见的物理层协议

  • 以太网(10/100/1G)
  • WiFi(802.11b,g,n)
  • GSM/3G/LTE/4G
  • 点对点协议(PPP:Point to Point Protocol)

TCP/UDP

TCP是Web中最常用的协议,如邮件、网页等,具备连接、响应、重传及流控制。 UDP适合实时数据应用如音频和视频,还有网络服务,如DNS、DHCP等。

HTTP(S)

HTTP是网络客户端-服务器模式的基础,使用XML或JSON作为载荷,而且设备作为客户端时,它负责发起连接,这样的设计更安全。

WebSocket

WebSocket是基于TCP连接实现全双工的协议,它隶属于HTML5标准,可以简化双向网络通信和连接管理的复杂程度。

XMPP

XMPP(Extensible Messaging and Presence Protocol)面向即时消息和状态信息,它后来被扩展用于网络电话,可用于消费类电器如洗衣机、冰箱等的大规模管理。

COAP

CoAP(Constrained Application Protocol)用于低功耗和硬件性能有限的网络,符合RESTful规范,语义与HTTP相同,非常适合用于电池或能量收集供电的设备。

特性:

  • 使用UDP协议
  • 请求和响应是异步的
  • 报头、状态等使用2进制编码,以减少协议的开销
  • 支持固定连接

MQTT

MQTT(MQ Telemetry Transport)是1个开源的适用于低带宽、高延时网络的轻量级网络协议,采用订阅/发布消息机制,可用于大规模的小型设备集群,配合后端服务器使用。

技术比较

协议 COAP XMPP RESTful HTTP MQTT
传输层 UDP TCP TCP TCP
消息机制 请求/响应 请求/响应 订阅/发布 请求/响应 请求/响应 订阅/发布
2G,3G,4G 适合 适合 适合 适合
低功耗松散网络 适合 普通 普通 普通
资源 10Ks RAM/Flash 10Ks RAM/Flash 10Ks RAM/Flash 10Ks RAM/Flash

网络与物联网比较

IoT