关于物联网:ThingsKit物联网平台设备TCP接入

8次阅读

共计 1967 个字符,预计需要花费 5 分钟才能阅读完成。

入门介绍

TCP 基础知识

TCP 协定全称是传输控制协议是一种面向连贯的、牢靠的、基于字节流的传输层通信协议。有三次握手能够保障数据传输的可靠性。TCP 提供超时重发,抛弃反复数据,测验数据,流量管制等性能,保证数据能从一端传到另一端。

TCP 是由 TCP 头部和 TCP 数据两个局部组成。头部是由上图标识的一些字段组成,对上图字段的剖析如下:

  • Source port(源端口):源主机应用程序所应用的端口号;
  • Destination port(目标端口):目标主机应用的端口号;
  • Sequence Number(序列号):用于标识从发送端收回的不同的 TCP 数据段的序号。数据段在传输过程中他们的程序会发生变化,因而接收端须要依据序列号来对数据进行重组。
  • Acknowledge Number(确认序列号):用于标识接收端确认收到的数据段。确认序列号为胜利收到的数据序列号 +1。
  • Header length(头部长度): 标识头部占 32bit 字的数目,他能表白的 TCP 头部最大长度为 60 字节。
  • Window(窗口大小):示意接收端冀望通过单次确认而收到的数据大小。该机制通常用于流量的管制。
  • Checksum(校验和):校验整个 TCP 字段,包含 TCP 头部和 TCP 数据。该值由发送端计算和记录并由接收端进行验证。

接下来来看 TCP 与 UDP 的区别:

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

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

  • IP:127.0.0.1
  • port: 8088

    设施身份认证

    TCP  设施的上报款式:

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

    TCP 注册包

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

    TCP 心跳包

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

    数据流转换

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

    0103040150008D3BBB

    平台端,则通过转换函数:

    var demo = parseInt('0x'+params.substr(6, 4));
    if ((demo & 0x8000) > 0) {demo = demo - 0x10000;}
    out.speed = (demo*0.1).toFixed(2);

    解析后果为:

    {"speed":"33.60"}

    数据上报

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

    一旦实现上边的 TCP 绑定自定义数据流,设施端就能够通过 TCPsocket 发送合乎负载格局的数据,例如:相似属性音讯构造的 JSON 音讯,或者 自定义的 HEX 音讯
    平台收到 TCP 自定义数据上报后,则通过规定引擎来对数据做各种解析和解决,平台提供了函数等可编程形式。

    数据下发

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

  • 设施详情中的命令下发;
  • 规定引擎中的设施联动命令下发。

设施详情中的命令下发见下图:

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


附:应用模仿设施接入 TCP

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

正文完
 0