IOT -- 设备入网与注册

一、设备入网

设备是指设备连连上了基站、路由器(AP)或者网关,此时设备具备了向对应的基站 / 路由器 / 网关收发底层报文的能力。比如你的手机连上路由器(AP),此时你的手机可以正常上网收发信息。但此时的设备,还没注册到 IOT 系统。

所以设备入网 会被很多人忽略,因为它与IOT系统没啥关系、存在感很低。或者有些人直接把它当成设备注册的一部分,这句话也能说得通,毕竟设备入网后才能注册,不过严谨一点,设备入网是设备注册的前提,入网解决的是【设备通信】问题,而设备注册解决的是【设备能不能被 IoT 系统识别、管理】问题。设备入网并不是为了设备注册而存在,只不过 IOT 系统中,两者经常会被放在一起实现,而设备入网又不在系统界面中体现,所以会把它们联想在一起。

2.通信模组支撑与连网流程

设备入网要区分开独立设备 与子设备。独立设备是自己有独立IP,自己可连云。而子设备没有独立IP,依靠网关把数据的上云。网关可以理解是一个代理机构,需要别人代理的、自己不能独立上云的,就归到子设备分组中。

tips : 如何区分设备是属于独立设备、还是子设备,这就要看设备的通信模组(设备本身具有的能力),看其是否内置完整 TCP/IP 协议栈。

TCP/IP 是一套网络协议簇。一般情况下设备内置 TCP/IP 协议栈,就能独立上云(上云依赖 :IP协议栈 + 能够独立到达公网的通信链路),但 Tread 是个例外,它本身内置TCP/IP 协议栈,但不具备外网射频能力,需依靠 BR边界路由转发,因此Tread 归到子设备分组。

设备通信协议分析:

设备通信协议 设备类型 通信模组 是否原生支持TCP/IP 说明
Wi-Fi (如手机、电脑) 独立设备 Wi-Fi 模组(ESP8266/ESP32) ✅ 是 完整 TCP/IP 栈
4G/5G (手机) 独立设备 4G/5G模组 ✅ 是 完整 TCP/IP 栈
以太网(电脑) 独立设备 以太网模组(W5500、CH395) ✅ 是 有独立 IP
NB-IoT/Cat.1 (水电燃气智能表) 独立设备 蜂窝模组 NB‑IoT / Cat.1 / 4G 模组(SIM7000、Air780、EC800 等) ✅ 是 蜂窝分配 IP
Thread (智能门锁、门窗传感器、全屋智能类) 子设备 Thread 模组(OpenThread) ✅ 是 IPv6,原生 IP
Zigbee (传统智能家居传感器,如开关、插座) 子设备 Zigbee 模组 ❌ 否 网关协议转换
LoRa、LoRaWAN (球阀) 子设备 LoRaWAN 模组(SX1262/SX1276 ❌ 否 网关协议转换
BLE (蓝牙耳机) 子设备 普通 BLE 蓝牙模组(非 IP-BLE) ❌ 否 网关或手机上云
RS485 Modbus (工业仪表、传感器、变频器、电表、PLC) 子设备 RS485/Modbus 射频 / 串口模组 ❌ 否 串口总线

2.1、子设备连网流程

2.2、独立设备连网流程

网关属于独立设备,上面的子设备连网成功后,数据未必能上云,还需要网关桥接。

3.设备所需时长

设备上电后,需要多长时间才能入网呢?这会影响到用户体验,但并没有统一的值,需要根据模组跟现场网络情况而定。一般情况下:有线的比无线的快些,短距的比蜂窝的快一些,低功耗的比蜂窝的要慢些。但并不是绝对,比如有线,未必比短距无线快(WiFi、蓝牙等)。

之前做智慧农业项目时,球阀多用LoRa和NB模组。问开发同事关于设备入网时长时,他们也没给出一个相对明确的答案,只是跟你说12小时后,准都能连上,连不上应该是哪里出问题啦。所以每次新增设备时,都是先让一线同事把设备提前安装并通好电(或者说激活设备),再批量导入设备(注册)。然后第二天再过来检查结果,整合注册不成功的清单,逐一排查问题。

不同通信方式入网时长总对比

分类 技术制式 典型入网时长 关键影响因素 / 备注
蜂窝物联网 NB-IoT 首次注册:约 55秒 (无先验频点) 锁定频点后:约 8秒 复杂多频段:50秒甚至更久 厂商建议预留:至少 3分钟 特定良好环境:约 10秒 频段数量、信号质量、是否有历史频点记录;首次注册最慢
4G Cat.1 正常注册:不超过2分钟 合宙文档给出的正常注册网络时间上限
短距无线 Wi-Fi 已保存网络重连:150ms~200ms 首次 WPA2-AES 连接:约 10秒 (密钥生成) 理想实验条件:约 224.5ms 是否首次连接、加密方式、是否已保存网络
蓝牙 协议层连接:中心设备发起约 2.69ms ,外设等待约 1.3ms 仅为协议层连接时间;实际从模块上电到可连接还需额外启动时间
低功耗广域 LoRa / LoRaWAN 理想环境单次 Join:数秒 (单次交互约 68ms~1.8秒) 拥堵/占空比受限时:37.5分钟 甚至更久 实测最差:2小时内 15 个设备未能入网(单次重传达 173 次) 受占空比法规和网络拥塞影响极大;高扩频因子(SF12)下入网时间可比无限制场景增加 100 倍以上
网状网络 Thread 初始连接建立较快;通常 2 分钟内从子节点升级为路由器 时间主要用于网络拓扑稳定和角色升级
有线 以太网 常规自协商(10/100/1000BASE-T):2.5秒~5.3秒 快速/工业场景需求:500ms 甚至 100ms 以内 (如 1000BASE-T1) 实验室理想:约 600ms 取决于速率、是否启用自协商、MDI/MDIX 切换;工业场景追求毫秒级
卫星通信 卫星终端 便携/手持首次入网:≤90秒 (天通),同波束再开机 ≤70秒 船载终端:≤180秒 自动对星终端:约 5分钟 (卫星捕获不到 3 分钟) 电子可控天线:捕获 30秒以内 跨星跨波束切换优化:2秒(特定技术,非首次开机) 高度依赖终端类型(手持/船载/自动对星);首次开机与波束切换差异巨大

说明:表中"入网"含义因技术而异------蜂窝/LoRa/Thread/卫星指完成网络协议层注册或对星,Wi-Fi/蓝牙指建立连接,以太网仅指物理层链路连通。实际产品从"上电"到"可用"还需叠加硬件启动、协议栈初始化等时间,具体以模组手册和实测为准。

(以上信息来源deepseek,仅供参考)

4.入网失败原因

1、入网失败原因,大概可以从以下几方面入手排查:

一是硬件问题:如设备本身坏了,蜂窝的设备SIM 卡坏了、或者是无效卡,模组的 IMEI 不合法,接口存在氧化或接触不良等情况

二是外界问题:如设备断电,信号强度过低、或者设备所处位置存在覆盖盲区(如地下室、隔墙、农作物遮挡等);

三是操作问题:如插卡不对、没激活设备、线缆未完全插入;

四是费用问题:如卡欠费停机等、套餐开通存在延时等;

五是技术问题:上面问题都排查了,那大概率是技术问题,这事找开发吧,我么不瞎猜测。

5.入网许可

上面讲的是入网失败问题,入网失败的前提是网关、基站、路由等都是开着的,是欢迎设备/子设备来连接的,还有一种情况是网关/基站/路由 提前设置不让新设备接入,也就是关掉入网许可。

目前并不是所有 网关/基站/路由 都支持这样的操作。具体还需要跟厂商了解,基站是支持的,但不是个人/企业可以设置的,需要跟运营商协商设定。

tips:关掉入网许可,是拒绝新子设备入网;射频可以保持打开,已经入网的老设备不受影响

哪些网关/路由支持 关闭入网许可

设备类型 能否禁止新设备接入 实现方式 & 说明
家用 / 工业 Wi‑Fi 路由器 ✅ 支持 1. 关闭 WPS;2.MAC 地址白名单 / 黑名单;3. 隐藏 SSID(弱防护)。射频常开,已连设备正常通信
Zigbee 网关(协调器) ✅ 支持 permit join开关,关闭入网许可;也可基于 IEEE MAC 黑白名单。射频常开,老子设备不受影响
Thread 边界路由器 BR ✅ 支持 关闭 Commissioning(入网授权);射频常开,已入网 Mesh 设备正常通信,新设备无法加入
蓝牙 Mesh 网关 ✅ 支持 关闭 Provisioning 调配权限,MAC 白名单过滤;普通 BLE 网关可配置 MAC 过滤
LoRaWAN 网关 ⚠️ 有限支持 普通网关本身不做鉴权,Join 鉴权在 LNS 服务器;高端工业网关可本地过滤 DevEUI,丢弃陌生入网报文。常规方案在 IoT 平台拉黑设备
蜂窝基站(NB/4G/5G 基站) ❌ 基站本地不能设置 鉴权不在基站,由运营商核心网 / HSS 完成;不能在基站侧直接拦新终端,只能在核心网拉黑 SIM 卡 / IMEI,基站射频持续工作
CAN 网关 ✅ 支持(总线层面) 可配置报文过滤,拒绝陌生节点报文;一般较少用于 "禁止新节点入网" 场景,多用于报文过滤

tips:还有一种方法:不关掉基站/网关/路由的入网许可功能(相当于不是关掉所有新设备的入网许可),而只是拒绝特定一批设备的入网申请。这种方式可通过设备SN、设备名称、设备秘钥等做标记。

蜂窝基站不支持本地关闭新终端附着,鉴权在运营商核心网。

二、设备注册

对于 IOT 系统,设备入网后,一般接下来就是进行设备注册。设备注册,我们前面也说过,是解决设备能不能被 IOT系统识别和管理问题。

设备就算入网成功,如果被 iot 系统识别,还是不能被 IOT系统、 以及上层系统如 PC端和移动端去管控设备。

设备注册相当于与 IOT系统对口号,一方面是设备本身得具有的信息,然后在 IOT 系统上设置对应的通过方式。当面市面上流行的方式大概分三种:

1、一机一密(TLS单向认证)

一机一密:是指每一台设备有单独的设备名称、设备密码。

设备通过一机一密的方式与iot 系统连接,是指设备在出厂时已经烧录好:ProductKey + DeviceName + DeviceSecret(三元组)信息。设备连接iot 系统前,系统预先批量导入三元组信息。具体某一设备注册时,只需录入其三元组信息即可(也可批量导入),这一步也叫设备鉴权,如果输入的信息与系统预先导入的信息不一致,系统会拒绝它的建联申请。设备鉴权成功后,在系统建立设备档案信息。

适用场景:一机一密的验证方法需要每台设备都要烧录不同的设备名称 和密钥,产线烧录工作量大,密钥泄露单台风险。因而这种方式适用于安全要求较高、设备量不是很多的场景。

2、一型一密(TLS单向认证)

一型一密:是指同型号全部设备共用一套ProductKey、PruductSecret。设备没烧录单独的DeviceName 和 DeviceSecret。

设备通过一机一密的方式与iot 系统连接,是指设备在出厂时已经烧录好:ProductKey和PruductSecret 信息(产品信息,用于动态注册)。然后在系统先录入ProductKey + ProductSecret + 本机 DeviceName (设备是没有烧录这个信息的,一般取设自设备芯片 的SN/MAC/IMEI,具体需要使用哪个,事先要预定好)。设备首次连接iot 系统时,输入设备的 ProductKey + ProductSecret + 本机 DeviceName。云端校验 ProductSecret 是否合法,如果合法,在平台新建改DeviceName的设备档案,生成DeviceSecret下发给设备。获取到DeviceSecret 后,设备把DeviceName + DeviceSecret 存入Flash(设备闪存) 。之后每次鉴权,使用ProductKey + DeviceName + DeviceSecret 三元组信息。后续不再用 ProductSecret。

适用场景:一型一密的验证方法需要同一型号的设备都要烧录一样的产品名称,产品密码,产线烧录工作量相对小,但密钥泄露同一型号设备,风险较大。因而这种方式适用于安全要求不高、设备量很多的场景。

3、X.509证书鉴权 (mTLS双向认证)

X.509证书鉴权:是指每一个设备都单独有自己的设备证书(公钥)和设备私钥。设备在出厂前已经烧录好私钥,它相当于私人印章,烧在设备Flash/安全芯片,永远不发给任何人。

设备验证流程:

1.平台CA(证书颁发机构,可以是IOT平台自建的内部发证机构,也可以是外部第三方官方CA)预先给每台设备生产X.509证书(里面包含设备公钥)+设备私钥。

2.工厂把【证书+私钥】烧录到设备,云端平台预先存入该设备证书的公钥。

3.设备连云建立MQTTS 连接时(握手阶段):

  1. 设备校验平台:设备验证云端证书(确认云是真云,不是假服务器),如果是假的服务器,设备放弃连接。
  2. 平台校验设备:设备拿出本地私钥,对一段随机数据签名(相当于盖上自己的私章),连同设备证书一起发给云端。云端取出证书里的公钥,校验这个签名。

4.校验结果:签名对得上,确认设备是真的,允许接入,签名对不上。拒绝连接。

适用场景:X.509证书鉴权的验证方法需要每个的设备都要烧录单独的公私秘钥,产线烧录工作量大,且每个设备的鉴权都需要设备满足证书解析能力要求。

私钥不出设备,安全性能极高。因而这种方式适用于安全要求极高。

日常项目中使用 X.509证书鉴权 相对少些,如有伙伴对这一块干兴趣,可以去读下 华为关于 MQTT(S)协议-证书鉴权的描述:https://support.huaweicloud.com/intl/zh-cn/usermanual-iothub/iot_01_0211.html

设备注册三种方式对比

|--------|---------------------------------------------|-----------------------------------------------------------------------------|-----------------------------|
| 对比项 | 一机一密(三元组) | 一型一密 | X.509 证书鉴权 |
| 核心凭证 | ProductKey + DeviceName + DeviceSecret(三元组) | ProductKey + ProductSecret(产品级密钥)+DeviceName(设备唯一名称,每台设备不一样,常用 SN、MAC、IMEI) | 设备证书 + 设备私钥(非对称) |
| 密钥特点 | 一机一钥,每台设备 DeviceSecret 互不相同 | 同型号全部设备共用一套 ProductSecret | 一机一证书,私钥仅保存在设备本地,不对外泄露 |
| 烧录方式 | 出厂前烧完整三元组;云端提前批量创建设备档案 | 出厂只烧ProductKey + ProductSecret,不烧 DeviceSecret | 出厂烧录设备证书与私钥,可存入安全芯片 |
| 注册流程 | 上电直接鉴权接入,无需动态注册 | 首次联网动态注册,向云端申请 DeviceSecret 并保存 Flash;后续使用三元组鉴权 | 上电直接使用证书做 mTLS 双向认证,无动态注册环节 |
| 加密类型 | 对称加密(HMAC-SHA) | 对称加密(HMAC-SHA) | 非对称加密 |
| 安全等级 | 中等偏高 | 中等(ProductSecret 泄露会被批量注册伪造设备) | 最高,私钥不出设备,难以伪造 |
| 产线工作量 | 大,每台设备烧录不同密钥 | 很小,同型号统一烧一套产品密钥 | 中等,证书签发 + 烧录,推荐安全芯片存放私钥 |
| 设备算力要求 | 低,普通 MCU 即可 | 低,普通 MCU 即可 | 较高,需要证书解析能力 |
| 适用场景 | 工业设备、高安全要求项目,批量可控量产 | 海量量产传感器,不想产线逐个烧录独立密钥 | 车联网、工业高安全、金融级 IoT,对防伪造要求极高 |
| 短板 | 产线烧录成本高,密钥泄露单台风险 | 产品密钥泄露,攻击者可批量注册假设备 | 证书占用存储,开发调试复杂,硬件成本更高 |

关于设备注册与鉴权,上面3种情况,是比较理想的情况,也就是设备先烧录信息、并提供过来。但如果碰获取不到完整的信息,比如设备不烧录:ProductKey + ProductSecret + DeviceName + DeviceSecret。那就只能提供 设备的 SN/MAC/IMEI(一般会把 SN/MAC/IMEI 当成 DeviceName) 动态注册,通过系统动态获取 ProductKey + DeviceSecret,注册成功后,系统还是通过设备的三元组去 与网关或者云连接收发报文的。

tips:一般设备都会烧录 SN/MAC/IMEI。

三者都是硬件出厂就固化在芯片 / 模组里面的一串唯一编号,不是人工烧录的密钥,常用来充当设备标识(DeviceName)

相关推荐
远方16091 小时前
108-ORA-00600 [kdsgrp1-qetlbr] 内部错误排查与 RMAN 块级恢复
大数据·linux·数据库·oracle
roman_日积跬步-终至千里1 小时前
【数据Agent论文·表格事实与生成|15】LogicNLG:数值抄对了,逻辑结论就对了吗?
人工智能·深度学习·自然语言处理·数据分析
夜瞬1 小时前
从零微调 Qwen3-8B:基于 LoRA 与 LLaMA-Factory 打造专属 AI 编程助教
人工智能·python·llama
碧海银沙音频科技研究院1 小时前
面向长尾音频分类的知识蒸馏研究
人工智能·算法·音视频
zhilai11 小时前
2026 企业 AI 办公工具选型指南:框架、全景与落地路径
人工智能
IT大白鼠1 小时前
AI SSH 运维助手 V13.0内部版七项私有新特性全解
运维·人工智能·ssh
Dawson Zhu1 小时前
大模型拒答率与错误率平衡术:五步构建可落地的安全与体验最优解
人工智能·语言模型·架构·aigc·agi
nap-joker1 小时前
脑衰老的多模态特征:从描述性分析到基于机器学习的整合
人工智能·机器学习·多模态
啥都鼓捣的小yao1 小时前
Transformer深入浅出
人工智能·深度学习·transformer