第1章 物联网与网络协议
1.1 本章主要内容
CoAP是受限制应用协议(Constrained Application Protocol)的简称,CoAP是物联网应用层协议之一。当前市面上有很多物联网应用层协议,它们之间既相互关联也存在明显区别。本章将重点介绍三种物联网应用层协议——CoAP、HTTP和MQTT,三种协议具有各自不同的适用场景,在物联网领域均有广泛的应用。
HTTP和MQTT使用TCP作为传输层协议,而CoAP则使用UDP作为传输层协议。无论是UDP还是TCP均依赖于IP技术,IP技术是现代网络通信的基础。IP又分为IPv4和IPv6两个版本,IPv4已经广为人知而IPv6才刚刚投入使用。随着智能设备的发展,越来越多的设备需要接入网络,IPv4地址枯竭的问题越来越严重。6LoWPAN技术是一种IPv6头压缩技术,通过6LoWPAN头压缩技术可以有效地解决智能设备通过IPv6接入网络的问题。图1-1可以很好地概括本章的具体内容。
第1章 物联网与网络协议
1.1 本章主要内容
CoAP是受限制应用协议(Constrained Application Protocol)的简称,CoAP是物联网应用层协议之一。当前市面上有很多物联网应用层协议,它们之间既相互关联也存在明显区别。本章将重点介绍三种物联网应用层协议——CoAP、HTTP和MQTT,三种协议具有各自不同的适用场景,在物联网领域均有广泛的应用。
HTTP和MQTT使用TCP作为传输层协议,而CoAP则使用UDP作为传输层协议。无论是UDP还是TCP均依赖于IP技术,IP技术是现代网络通信的基础。IP又分为IPv4和IPv6两个版本,IPv4已经广为人知而IPv6才刚刚投入使用。随着智能设备的发展,越来越多的设备需要接入网络,IPv4地址枯竭的问题越来越严重。6LoWPAN技术是一种IPv6头压缩技术,通过6LoWPAN头压缩技术可以有效地解决智能设备通过IPv6接入网络的问题。图1-1可以很好地概括本章的具体内容。
1.2 物联网与IP
毫无疑问IP技术是当今互联网应用的基础,同时IP技术也是物联网应用的基础。本章中IP技术分为IPv4、IPv6和6LoWPAN三个部分进行介绍。
1.2.1 IPv4
IPv4即互联网协议版本4,又称互联网通信协议第4版。IPv4为标准化互联网络的核心部分,也是使用最广泛的互联网协议版本,其后继版本为IPv6,直到2011年IANA IPv4 pool地址已经完全用尽时,IPv6仍处在部署的初期。IPv4是一种无连接的协议,此协议会尽最大努力交付分组数据,IPv4不保证任何分组数据均能送达目的地,也不保证所有分组数据均按照正确的顺序无重复地到达。
IPv4使用32位(4字节)地址,因此地址空间中只有4294967296个地址。不过,一些地址为特殊用途所保留,如专用网络(约1800万个地址)和多播地址(约2.7亿个地址),专用网络和多播地址也减少了可在互联网上路由的地址数量。随着地址不断被分配给最终用户,IPv4地址枯竭问题也随之产生。基于NAT(网络地址转换)等地址结构重构的技术显著地降低了IPv4地址枯竭的速度。
毫无疑问IPv4技术是物联网应用的基础。关于终端设备,具有网络连接能力的设备很有可能包含IPv4协议栈,这就意味着该设备可以很容易地访问网络中的任意一个IPv4应用;关于网关设备,对于那些尚没有网络连接能力的设备来说,也可以通过定制的网关设备转发有用内容,这些定制的网关设备往往把非IP数据包转换成IP数据包;关于服务器,绝大多数Web应用、数据库存储应用和搜索服务器均依赖于IPv4技术。对于终端设备、网关设备和服务器而言,当前IPv4技术支撑着整个物联网应用。
但是IPv4技术也不是万能的,随着物联网终端设备的爆发,IPv4地址枯竭的问题显得越来越严重,已经被长期依赖的IPv4技术并不一定是物联网应用未来发展的方向。
1.2.2 IPv6
IPv6即互联网通信协议第6版,是互联网协议的最新版本,旨在解决IPv4地址枯竭问题。在因特网中,数据以分组的形式传输。IPv6定义了一种全新的分组格式,目的是为了最小化路由器处理的报文首部。由于IPv4报文和IPv6报文首部存在很大不同,因此这两种协议无法互操作。IPv6具有比IPv4大得多的编码地址空间,IPv6采用了128位的地址,而IPv4使用的是32位。因此新增的地址空间支持2128(约3.4×1038)个地址。从IPv4到IPv6最显著的变化就是网络地址的长度,RFC 2373[1]和RFC 2374[2]定义的IPv6地址有128位长,IPv6地址的表达形式一般采用32个十六进制数。如图1-2为IPv6 Ready认证标签。
IPv6技术摒除了IPv4技术的多数局限,是一种更加进步与优化的互联网协议,它具有以下优势:
1)强大的地址空间:正如上文所述IPv6的地址长度为128位,而IPv4的地址长度仅为32位,强大的地址空间可以满足物联网终端设备数量增长的需求。
2)即插即用:IPv6采用即插即用的机制实现与各种设备的网络连接,相关配置可以自动生成而并不需要向服务器申请。
3)更高的安全性:IPv6特性描述中要求通过加密有效载荷和通信源认证等方式增强网络的安全性。
4)更加灵活与完善的首部:IPv6中移除了IPv4中并不常用的字段,如分段与校验和等,采用了固定头加可选扩展头的组合方式。
1.2.3 6LoWPAN
虽然IPv6协议是更为高效和完善的互联网协议,但是对于大多数受限制的物联网设备来说,IPv6协议依然冗余而复杂。为了让IPv6技术能够适用于低功耗受限制物联网设备,6LoWPAN技术应运而生。
IETF组织于2004年11月正式成立了6LoWPAN工作组,着手制定基于IPv6的低速率无线个域网标准,即IPv6 over IEEE 802.15.4,该工作组将IPv6引入以IEEE 802.15.4为标准的无线个域网中。IEEE 802.15.4是无线个域网技术的典型代表,已经获得了广泛的应用。但IEEE 802.15.4标准只规定了物理层和媒体访问控制层两部分,并没有涉及网络层以上规范。
图1-3可以很好地说明6LoWPAN与IPv6、IEEE 802.15.4之间的关系。图1-3的左侧部分说明了那些非受限制设备如何与互联网建立连接,大多数Linux主机都属于非受限制设备,这些设备往往具备足够内存空间和很好的运算能力,如市面上常见的树莓派。对于树莓派这样的非受限制设备,可以使用IPv4层作为网络层协议,使用IEEE 802.3作为物理层和链路层协议。而对于那些具有IEEE 802.15.4无线连接能力的受限制低功耗设备来说,并不能直接使用IPv4协议,而需要使用IPv6加6LoWPAN方式,把IPv6首部经过6LoWPAN技术压缩之后再填充到IEEE 802.15.4协议中的有效载荷部分。
1.IEEE 802.15.4简介
IEEE 802.15.4标准定义了物理层(PHY层)和数据链路层(MAC层)。市面上有不少符合IEEE 802.15.4标准的SoC,这些SoC虽然资源(内部RAM和Flash)受限,功能较低,但是成本低廉。
IEEE 802.15.4标准的主要特征如下:
1)低速率:在2.4GHz频段最大速度为250Kbit/s。
2)地址短:支持16位短地址。
3)低功耗:可支持电池供电应用。
4)低成本:可适用于资源受限制设备。
5)短距离:节点信号覆盖范围一般为10~100米,覆盖范围有限。
6)低复杂度:相比于IEEE 802.11和IEEE 802.15.1,IEEE 802.15.4相对简单,容易实现。
7)短帧长:IEEE 802.15.4数据链路层的最大传输单元为127字节,只能为输出的数据提供较少的有效空间。
8)多种拓扑结构:IEEE 802.15.4标准支持点对点和星形网络。
2.6LoWPAN简介
因为IPv6要求数据链路层支持的最小传输单元为1280字节,而IEEE 802.15.4链路的最大传输单元仅为127字节,所以需要在网络层之下定义一个适配层,负责IP数据包的压缩、分片和重组等工作。
6LoWPAN适配层之下采用IEEE 802.15.4规定的物理层和数据链路层,6LoWPAN适配层之上的网络层采用IPv6协议。由于在IPv6中数据链路层支持的载荷长度远大于IEEE 802.15.4所能提供的最大载荷长度,为了实现IEEE 802.15.4与网络层(IPv6)的无缝链接,6LoWPAN适配层被增加至网络层和IEEE 802.15.4之间,6LoWPAN适配层用来完成头压缩、分片与重组以及网状路由转发等工作。
6LoWPAN技术具有如下优势:
1)普及性:IP应用非常广泛,作为下一代互联网核心技术的IPv6也在加速其普及的步伐。
2)适用性:IP网络协议栈架构受到广泛的认可,低速率无线个域网完全可以基于此架构进行简单、有效的开发。
3)更多地址空间:IPv6应用于低功耗无线个域网的最大亮点就是庞大的地址空间。这恰恰满足了部署大规模、高密度设备的需要。
4)支持无状态自动地址配置:IPv6中当节点启动时,可以自动读取MAC地址,并根据相关规则配置好所需的IPv6地址。
5)易接入:低速率无线个域网使用IPv6技术,更易于接入其他基于IP技术的网络及下一代互联网,使其可以充分利用IP网络的技术进行快速发展。
图1-4可以很好地说明6LoWPAN头压缩技术如何与IEEE 802.15.4标准配合工作。IEEE 802.15.4标准的物理层部分一般包括先导码、同步字和物理层长度指示域和物理层有效载荷等部分;在数据链路层部分又可分为帧控制域、序列号域、地址域、数据链路层有效数据载荷与校验区域等部分;在数据链路层有效载荷部分又可分为IPv6压缩头部分和IPv6有效负载部分。
1.3 物联网与HTTP
在互联网领域HTTP是应用最为广泛的应用层协议,在物联网领域HTTP也是不可或缺的重要组成部分。HTTP的成功应用也影响了物联网领域的专用协议,如本书讨论的CoAP借鉴了HTTP在应用过程中大量的成功经验。熟练掌握HTTP对物联网领域的专项内容学习绝对大有帮助。
1.3.1 HTTP
HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或HTTPS请求的资源由统一资源标识符(Uniform Resource Identifier,URI)来标识。
HTTP采用客户端请求-服务器响应这样的工作模式。图1-5可以很好地描述这种请求/响应工作模式。通常客户端使用网页浏览器向服务器上指定端口(HTTP的默认端口为80)发起一个HTTP请求。服务器上存储着很多资源,如普通文本、HTML文本、图片或视频文件等。我们称这个应答服务器为源服务器。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或隧道等。HTTP采用TCP作为其传输层协议。通常,由客户端发起一个HTTP请求,创建一个到服务器指定端口的TCP连接。HTTP服务器则在那个端口监听客户端的请求,一旦收到请求,服务器将会向客户端返回状态,如“HTTP/1.1200 OK”,以及具体的响应内容,如文本文件、HTML文件、图片和视频文件等。
1.3.2 REST风格
REST(具象状态传输)是Roy Thomas Fielding博士于2000年在他的博士论文“Arch-itectural Styles and the Design of Network-based Software Architectures”中提出来的一种Web软件架构风格。目前在三种主流的Web服务实现方案中,REST模式与复杂的SOAP和XML-RPC相比更加简洁,越来越多的Web服务开始采用REST风格设计和实现。REST是设计风格而不是标准,REST通常基于使用HTTP、URI、XML、JSON和HTML这些现有的协议和标准来实现。
REST风格具有以下特点:
1)资源一般由URI来指定。
2)无状态通信。
3)对资源的操作包括创建、获取、修改和删除等,这些操作对应HTTP的GET、POST、PUT和DELETE方法。
4)资源的表现形式可以是XML、JSON或HTML格式文件。
REST设计风格确实可以带来一些好处,这些好处使Web开发更加简洁且易于实现。REST风格可以使资源的定义方式更加清晰,Web服务器中常常保存很多不同类型的资源,这些资源需要通过某种约定俗成的方法加以编号,若遵循REST风格那么www.wsncoap.org中某个具体的资源可能采用这样的URI定义:http://wsncoap.org/resources/15。
REST风格使得对资源的操作变得更加简洁,若采用REST风格可充分利用HTTP中已经使用的各种“动词”——GET、PUT、POST和DELETE。GET代表获取、PUT代表更新、POST代表创建而DELETE代表删除,这就避免了在HTTP负载部分还需要创建诸如Create或Update这样“非标准”的动作。另外,HTTP中4个常用方法也对应数据库中的“增删改查”四大操作。表1-1可以很好地说明在REST风格指导下如何使用HTTP中的4个常用方法操作wsncoap.org/resources/15资源。
暂无评论内容