入门介绍

UDP基础知识

UDP是User Datagram Protocol(用户数据协定)的简称,是一种无连贯的协定,该协定工作在OSI模型中的第四层(传输层),处于IP协定的上一层。传输层的性能就是建设“端口到端口”的通信,UDP提供面向事务的简略的不牢靠信息传送服务。
接下来来看UDP与TCP的区别:

UDPTCP
面向无连贯面向连贯(即须要建设连贯)
基于数据报(发送数据时会间接打上UDP头部将整个报文发送进来)面向字节流(发送数据时会将数据合成为多个小的数据报文进行发送)
传输数据可能存在丢包有三次握手能够保障数据传输的可靠性
无奈保证数据程序保证数据程序
反对一对一、一对多、多对多通信只反对点对点通信
无拥塞机制有拥塞机制
头部8个字节头部20-60个字节
要求实时性高,准确度低要求实时性低,准确度高

:::info
提醒
ThingsKit反对设施间接通过UDP接入平台,并反对 JSON、Text、HEX格局的上下行音讯,平台中还提供了脚本函数性能,为更简单的设施通信提供了便利性。
:::
UDP设施的常见网络配置:

  • IP:127.0.0.1
  • port:8088

    设施身份认证

    UDP设施的上报款式:

  • 【注册包】+【数据包】
  • 【注册包】

    UDP注册包

    注册包对平台而言则是拜访令牌“AccessToken”。只有保障设施端的注册包与平台端的拜访令牌统一。
    注册包是作为设施端与平台鉴权的形式,如果常见的DTU厂家,都有提供配置软件来设置。
    当设施和平台胜利建设UDP连贯后,设施必须马上向平台发送身份信息,实现身份认证。若设施端在肯定工夫内未发送身份信息,平台会主动断开设施的UDP连贯。
    在应用UDP透传形式的网关或DTU中,同样能够应用该注册包连贯到平台。
    示例:UDP模仿工具注册包设置:

    UDP心跳包

    当设施和平台建设UDP连贯并实现身份认证后,便能够互相收发音讯。然而,如果相当长一段时间内没有音讯通信,单方如何判断对方依然在线呢?因为UDP对于一些非正常的连贯断开是无奈侦测到的,比方设施断电、网线断掉等。
    因而,对于音讯通信距离较长的利用场景,为了让单方尽早的晓得连贯是否曾经断开,从而实现重连,就须要有UDP保活机制,这是通过设施定期发送心跳包来实现的。
    然而,大多数物联网通信场景的数据上报间隔时间并不长,所以也能够起到保活的目标,心跳包不是必须的,用户可依据需要应用心跳包。

    数据流转换

    平台提供的UDP接入形式,是须要您对UDP通道所属的自定义数据流,设置相应的音讯规定,实现自定义数据和设施属性之间的解析和解决。
    数据上报到平台,则须要通过平台提供的转换函数进行,转码解析解决。
    如某厂家的温湿度传感器,上报到平台的数据为:

    010302004A39B3

    平台端,可通过转换函数解析数据:

    var demo = (parseInt('0x'+params.substr(6, 4))).toFixed(2);out.test = demo;

    解析后果为:

    {"test":"74.00"}

    数据上报

    设施接入时,咱们得先创立UDP协定的产品,产品创立时,须要绑定对应的转换脚本。

    一旦实现上边的UDP绑定自定义数据流,设施端就能够通过UDP协定发送合乎负载格局的数据,例如:相似属性音讯构造的JSON音讯,或者自定义的HEX音讯
    平台收到UDP自定义数据上报后,则通过规定引擎来对数据做各种解析和解决,平台提供了函数等可编程形式。
    :::info
    提醒
    平台8088端口同时监听UDP协定数据,平台产品类型只显示TCP的问题前面会批改。
    :::

    数据下发

    接下来就是平台下发命令到设施端自定义数据,能够通过如下形式:

    规定引擎的命令下发如下图:


附:应用模仿设施接入UDP

模仿UDP设施接入
文章起源(首发地址):ThingsKit物联网平台