失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > tcp协议服务器如何做物联网平台 物联网IoT终端设备如何选择接入协议——(TCP UDP M

tcp协议服务器如何做物联网平台 物联网IoT终端设备如何选择接入协议——(TCP UDP M

时间:2018-10-22 03:45:07

相关推荐

tcp协议服务器如何做物联网平台 物联网IoT终端设备如何选择接入协议——(TCP UDP M

目前市面上大多数IoT模组都支持TCP、UDP、CoAP、LwM2M、MQTT等协议,这里面既有传输层的协议也有应用层的协议,协议众多,适用的场景也不一样。可是设计产品时一般只须要运用一种协议,那么怎么来选择一种符合本身产品的应用场景的协议显得尤其重要。本文将介绍TCP、UDP、CoAP、LwM2M、MQTT这5个经常使用的协议的特色与区别,为设计产品时协议的选择提供参考。web

传输层协议TCP与UDP

TCP(传输控制协议,Transport Controll Protocol)、UDP(用户数据报协议,User Data Protocol)同属于传输层协议,为上层用户提供级别的通讯可靠性。安全

传输控制协议(TCP):TCP(传输控制协议)定义了两台计算机之间进行可靠的传输而交换的数据和确认信息的格式,以及计算机为了确保数据的正确到达而采起的措施。协议规定了TCP软件怎样识别给定计算机上的多个目的进程如何对分组重复这类差错进行恢复。协议还规定了两台计算机如何初始化一个TCP数据流传输以及如何结束这一传输。TCP最大的特色就是提供的是面向链接、可靠的字节流服务。服务器

用户数据报协议(UDP):UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。提供的是非面向链接的、不可靠的数据流传输。UDP不提供可靠性,也不提供报文到达确认、排序以及流量控制等功能。它只是把应用程序传给IP层的数据报发送出去,可是并不能保证它们能到达目的地。所以报文可能会丢失、重复以及乱序等。但因为UDP在传输数据报前不用在客户和服务器之间创建一个链接,且没有超时重发等机制,故而传输速度很快网络

TCP和UDP的区别

差别

TCP

UDP

是否链接

面向链接

面向非链接

传输可靠性

可靠

不可靠

应用场合

少许数据

大量数据

速度

一、TCP面向链接(如打电话要先拨号创建链接);UDP是无链接的,即发送数据以前不须要创建链接

二、TCP提供可靠的服务。也就是说,经过TCP链接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

三、TCP面向字节流,其实是TCP把数据当作一连串无结构的字节流;UDP是面向报文的

UDP没有拥塞控制,所以网络出现拥塞不会使源主机的发送速率下降(对实时应用颇有用,如IP电话,实时视频会议等)

四、每一条TCP链接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通讯

五、TCP首部开销20字节;UDP的首部开销小,只有8个字节 六、TCP的逻辑通讯信道是全双工的可靠信道,UDP则是不可靠信道架构

那么传输层协议是否适合直接运用到物联网设备终端上?

传输层,顾名思义,他只负责传输数据,就比如是一辆运货的货车,可是想让货物无缺无损地运到目的地,那就还须要作打包、装车、验货、入库、签回单等工做,这就须要作更多地工做,这些工做也就是应用层协议要作的工做。因此物联网设备终端要想对数据进行稳定、可靠地交互,就须要使用应用层的协议,而不能直接使用传输层的协议。如下将介绍MQTT、CoAP、LwM2M三种适合在物联网设备终端上运用的应用层协议。less

应用层协议MQTT 与CoAP

一、MQTT概述

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通信协议,有可能成为物联网的重要组成部分。该协议支持全部平台,几乎能够把全部联网物品和外部链接起来,被用来当作传感器和制动器(好比经过Twitter让房屋联网)的通讯协议。

二、MQTT协议特色

MQTT协议是为大量计算能力有限,且工做在低带宽、不可靠的网络的远程传感器和控制设备通信而设计的协议,它具备如下主要的几项特性:

一、使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;

二、对负载内容屏蔽的消息传输;

三、使用TCP/IP 提供网络链接;

四、有三种消息发布服务质量:

“至多一次”,消息发布彻底依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于以下状况,环境传感器数据,丢失一次读记录无所谓,由于不久后还会有第二次发送。“至少一次”,确保消息到达,但消息重复可能会发生。“只有一次”,确保消息到达一次。这一级别可用于以下状况,在计费系统中,消息重复或丢失会致使不正确的结果。小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以下降网络流量。

三、CoAP概述

因为物联网中的不少设备都是资源受限型的,即只有少许的内存空间和有限的计算能力,因此传统的HTTP协议应用在物联网上就显得过于庞大而不适用。IETF的CoRE工做组提出了一种基于REST架构的CoAP协议。CoAP是工做在UDP协议族,采用的是二进制格式,相比起HTTP采用的文本格式,CoAP比HTTP更加紧凑。

四、CoAP协议特色异步

一、消息模型,以消息为数据通讯载体,经过交换网络消息来实现设备间数据通讯

二、对云端设备资源操做都是经过请求与响应机制来完成,相似HTTP,设备端可经过4个请求方法(GET, PUT, POST, DELETE)对服务器端资源进行操做。

三、协议包轻量级,最小长度仅为4B。

四、支持可靠传输,数据重传,块传输,确保数据可靠到达。

五、支持IP多播, 便可以同时向多个设备发送请求

六、非长链接通讯,适用于低功耗物联网场景

五、MQTT与CoAP的区别svg

MQTT和CoAP的区别

类别

MQTT

CoAP

通讯机制

异步

同步

链接方式

TCP

UDP

通讯模式

多对多

多对一

使用场景

更适用于推送和IM

物联网

功耗

功耗高

功耗低

反向控制

可用于反向控制

非长链接,不适合反向控制

那么MQTT和CoAP哪一个更适合用于物联网设备上呢?

MQTT和CoAP其实都比较适用于物联网设备上,可是仍是要更具实际场景来选择使用。好比设备运行在一个不须要考虑功耗,可是须要实时被控制的场景,例如充电桩、快递柜等场景,则使用MQTT协议比较合适。若是设备一般只有上报数据,且对功耗很敏感的场景,例如水表、燃气表等场景,则使用CoAP协议比较合适。post

随着物联网兴起,万物互联的时代终将到来。但鉴于成本和性能的考虑,设备的资源每每受限,那么就须要一种专门为资源受限的物联网设备设计的协议来知足万物互联的需求,这就是LwM2M协议。性能

一、LwM2M概述:

OMA是一家国际组织,最初定义了一套 OMA-DM的协议,用来远程管理移动终端设备,好比手机开户,版本升级,等等。OMA-DM有着很是普遍的应用,不少运营生好比Verizon Wireless, Sprint都有本身的OMA-DM服务并要求手机/模块入网的时候经过自定义的OMA-DM入网测试。由于物联网的兴起,OMA在传统的OMA-DM协议基础之上,提出了LwM2M协议。末,OMA发布了LwM2M规范。

OMA Lightweight M2M 主要动机是定义一组轻量级的协议适用于各类物联网设备,由于M2M设备一般是资源很是有限的嵌入式终端,无UI,计算能力和网络通讯能力都有限。同时也由于物联网终端的巨大数量,节约网络资源变得很重要。

二、LwM2M 协议逻辑实体与逻辑接口

LwM2M 定义了三个逻辑实体:

一、LwM2M Server 服务器

二、LwM2M client 客户端 负责执行服务器的命令和上报执行结果

三、LwM2M 引导服务器 Bootstrap server 负责配置LwM2M客户端.

在这三个逻辑实体之间有4个逻辑接口:

Device Discovery and Registration:这个接口让客户端注册到服务器并通知服务器客户端所支持的能力(简单说就是支持哪些资源Resource和对象Object

Bootstrap:Bootstrap server:经过这个接口来配置Clinet - 好比说LwM2M server的URL地址 Device Management and Service Enablement:这个就是最主要的业务接口了。LwM2M Server 发送指令给 Client 并收到回应.

Information Reporting:这个接口是 LwM2M Client 来上报其资源信息的,好比传感器温度。上报方式能够是事件触发,也能够是周期性的。

这三个逻辑实体与四个逻辑接口之间的关系以下图:

三、LwM2M 协议栈:

LwM2M 协议栈结构以下图所示:

LWM2M Objects

LWM2M Protocol

CoAP

DTLS

UDP

SMS

LwM2M Objects: 每一个对象对应客户端的某个特定功能实体. LwM2M 规范定义了一下标准Objects,好比

urn:oma:lwm2m:oma:2; (LwM2M Server Object)

urn:oma:lwm2m:oma:3; (LwM2M Access Control Object)

每一个object下能够有不少resource. 好比Firmware object能够有Firmware版本号,size等resource.

Vendor能够本身定义object

LwM2M Protocol: 定义了一些逻辑操做,好比Read, Write, Execute, Create or Delete.

CoAP: 是IETF 定义的Constrained Application Protocol 用来作LwM2M的传输层,下层能够是 UDP 或SMS .UDP 是必须支持的,SMS是可选的。CoAP有本身的消息头,重传机制等。

DTLS: 是用来保证客户端和服务器间的安全性的.

四、LwM2M与CoAP的关系:

LwM2M的消息没有对称的反馈消息,因为LwM2M承载在CoAP协议上,使用CoAP的get、post、put、delete方式,对于相应消息成功或失败的反馈是经过CoAP协议自己的交互来实现的。LwM2M载荷支持四种格式 plain text、Opaque、TLV、JSON,这四种协议要求服务器端必须都要支持,而在客户端必须支持TLV格式。

--------------------------------------------END------------------------------------------------

tcp协议服务器如何做物联网平台 物联网IoT终端设备如何选择接入协议——(TCP UDP MQTT CoAP LwM2M哪一个更适合?)...

如果觉得《tcp协议服务器如何做物联网平台 物联网IoT终端设备如何选择接入协议——(TCP UDP M》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。