logo资料库

MshPRFv1.0.1中文版-Bluetooth mesh核心协议规范 中文版.pdf

第1页 / 共419页
第2页 / 共419页
第3页 / 共419页
第4页 / 共419页
第5页 / 共419页
第6页 / 共419页
第7页 / 共419页
第8页 / 共419页
资料共419页,剩余部分请下载后查看
修订记录
版本记录
贡献者
2介绍
1.1符合标准
1.2蓝牙规范发布兼容性
1.3语言
4网格系统架构
2.1分层架构
2.2网格操作概述
2.3建筑概念
2.3.9.1应用程序和网络安全
2.3.9.2混淆
2.3.9.3网络和应用程序密钥标识符
2.3.9.4初始化向量索引
2.4网状网关
2.5并发限制
2.6拓扑限制
6网状网络
3.1约定
3.1.1.1大尾数
3.1.1.2小端
3.2特征
3.3承载者
3.4网络层
3.4.2.1未分配地址
3.4.2.2单播地址
3.4.2.3虚拟地址
3.4.2.4组地址
3.4.4.1IVI
3.4.4.2NID
3.4.4.3CTL
3.4.4.4TTL
3.4.4.5序列
3.4.4.6SRC
3.4.4.7夏令时
3.4.4.8传输PDU
3.4.4.9NetMIC
3.4.5.1接口输入过滤器
3.4.5.2接口输出滤波器
3.4.5.3本地网络接口
3.4.5.4广告承载网络接口
3.4.6.1中继功能
3.4.6.2代理功能
3.4.6.3接收网络PDU
3.4.6.4传输网络PDU
3.4.6.5网络消息缓存
3.5下部运输层
3.5.2.1未分段的访问消息
3.5.2.2分段访问消息
3.5.2.3未分段的控制消息
3.5.2.3.1段确认消息
3.5.2.4分段控制消息
3.5.3.1分割
3.5.3.2重新组装
3.5.3.3细分行为
3.5.3.4重新组装行为
3.5.3.5低功耗功能重组行为
3.5.4.1传输较低的传输PDU
3.5.4.2接收较低的传输PDU
3.6上层运输层
3.6.2.1加密的访问负载
3.6.2.2TransMIC
3.6.4.1传输访问有效载荷
3.6.4.2接收上层传输PDU
3.6.5.1朋友投票
3.6.5.2好友更新
3.6.5.3朋友要求
3.6.5.4朋友要约
3.6.5.5好友清除
3.6.5.6好友清除确认
3.6.5.7朋友订阅列表添加
3.6.5.8朋友订阅列表删除
3.6.5.9朋友订阅列表确认
“朋友订阅列表确认”消息由“朋友”节点发送到“低功耗”节点,以响应“朋友订阅列表添加”消息或“朋友订
3.6.5.10心跳
3.6.5.11操作码摘要
3.6.6.1功能概述
3.6.6.2友谊保障
3.6.6.3朋友功能
3.6.6.3.1朋友建立
3.6.6.3.2朋友留言
3.6.6.3.3朋友管理
3.6.6.4低功耗功能
3.6.6.4.1低功耗建立
3.6.6.4.2低功耗消息
3.6.6.4.3低功耗管理
3.6.6.5分段和重组示例
3.6.6.5.1传入的分段消息
3.6.6.5.2传出的分段邮件
3.6.7.1功能概述
3.6.7.2发布心跳消息
3.6.7.3接收心跳消息
3.7存取层
3.7.3.1操作码
3.7.3.2应用参数
3.7.4.1传输访问消息
3.7.4.2接收访问消息
3.7.4.3安全注意事项
3.7.4.4讯息错误程序
3.7.5.1未确认的消息
3.7.5.2确认消息
3.7.6.1发布
3.7.6.1.1状态转换
3.7.6.1.2状态变更发布
3.7.6.1.3定期出版
3.7.6.1.4发布重传
3.7.6.2订阅
3.7.7.1确认得到
3.7.7.2确认集
3.7.7.3未确认的集
3.7.7.4定期发布已确认的集合
3.8网格安全
3.8.2.1加密功能
3.8.2.2CMAC 功能
3.8.2.3CCM功能
3.8.2.4s1 SALT生成功能
3.8.2.5k1推导函数
3.8.2.6k2网络密钥资料推导功能
3.8.2.7k3推导函数
3.8.2.8k4推导函数
3.8.5.1网络随机数
3.8.5.2申请随机数
3.8.5.3设备随机数
3.8.5.4代理随机数
3.8.6.1设备密钥
3.8.6.2应用密钥
3.8.6.3网络密钥
3.8.6.3.1NID,加密密钥和隐私密钥
3.8.6.3.2网络ID
3.8.6.3.3身份密钥
3.8.6.3.4信标钥匙
3.8.6.4全局关键指标
3.8.7.1上层传输层认证和加密
3.8.7.2网络层身份验证和加密
3.8.7.3网络层混淆
3.9网格信标
3.9.3.1安全网络信标行为
3.10网状网络管理
3.10.4.1第1阶段-分发新密钥
3.10.4.2第2阶段–切换到新密钥
3.10.4.3第三阶段–撤销旧密钥
3.10.5.1IV更新测试模式
3.11消息处理流程
8基础模型
4.1约定
4.2状态定义
4.2.1.1成分数据页面0
4.2.2.1发布地址
4.2.2.2出版期间
4.2.2.3发布AppKey 索引
4.2.2.4发布友谊证书标志
4.2.2.5发布TTL
4.2.2.6发布重传计数
4.2.2.7发布重传间隔步骤
4.2.15.1当前故障
4.2.15.2注册故障
4.2.17.1心跳发布目的地
4.2.17.2心跳发布计数
4.2.17.3心跳发布周期日志
4.2.17.4心跳出版物TTL
4.2.17.5心跳发布功能
4.2.17.6心跳发布NetKey 索引
4.2.18.1心跳订阅源
4.2.18.2心跳订阅目的地
4.2.18.3心跳订阅计数
4.2.18.4心跳订阅周期日志
4.2.18.5心跳订阅Min Hops
4.2.18.6心跳订阅最大跃点
4.2.19.1网络传输计数
4.2.19.2网络传输间隔步骤
4.2.20.1中继重传计数
4.2.20.2中继重传间隔步骤
4.3讯息定义
4.3.1.1关键指标
4.3.1.2元素地址
4.3.1.3型号识别符
4.3.1.4可变长度参数
4.3.1.5可选参数
4.3.2.1配置信标获取
4.3.2.2配置信标集
4.3.2.3配置信标状态
4.3.2.4配置组成数据获取
4.3.2.5配置组成数据状态
4.3.2.6配置默认TTL获取
4.3.2.7配置默认TTL设置
4.3.2.8配置默认TTL状态
4.3.2.9配置GATT代理获取
4.3.2.10配置GATT代理集
4.3.2.11配置GATT代理状态
4.3.2.12配置中继获取
4.3.2.13配置继电器集
4.3.2.14配置中继状态
4.3.2.15配置模型发布获取
4.3.2.16配置模型发布集
4.3.2.17配置模型发布虚拟地址集
4.3.2.18配置模型发布状态
4.3.2.19配置模型订阅添加
4.3.2.20配置模型订阅虚拟地址添加
4.3.2.21配置模型订阅删除
4.3.2.22配置模型订阅虚拟地址删除
4.3.2.23配置模型订阅覆盖
4.3.2.24配置模型订阅虚拟地址覆盖
4.3.2.25配置模型订阅全部删除
4.3.2.26配置模型订阅状态
4.3.2.27配置SIG模型订阅获取
4.3.2.28配置SIG模型订阅列表
4.3.2.29配置供应商模型订阅获取
4.3.2.30配置供应商模型订阅列表
4.3.2.31配置NetKey 添加
4.3.2.32配置NetKey 更新
4.3.2.33配置NetKey 删除
4.3.2.34配置NetKey 状态
4.3.2.35配置NetKey 获取
4.3.2.36配置NetKey 列表
4.3.2.37配置AppKey 添加
4.3.2.38Config AppKey 更新
4.3.2.39Config AppKey 删除
4.3.2.40Config AppKey 状态
4.3.2.41Config AppKey 获取
4.3.2.42Config AppKey 列表
4.3.2.43配置节点身份获取
4.3.2.44配置节点身份集
4.3.2.45配置节点身份状态
4.3.2.46配置模型应用绑定
4.3.2.47配置模型应用解除绑定
4.3.2.48配置模型应用程序状态
4.3.2.49配置SIG模型应用程序获取
4.3.2.50Config SIG模型应用程序列表
4.3.2.51配置供应商模型应用程序获取
4.3.2.52配置供应商模型应用列表
4.3.2.53配置节点重置
4.3.2.54配置节点重置状态
4.3.2.55配置朋友获取
4.3.2.56配置朋友集
4.3.2.57配置好友状态
4.3.2.58配置密钥刷新阶段获取
4.3.2.59配置键刷新阶段设置
4.3.2.60配置键刷新阶段状态
4.3.2.61配置心跳发布获取
4.3.2.62配置心跳发布集
4.3.2.63配置心跳发布状态
4.3.2.64配置心跳订阅获取
4.3.2.65配置心跳订阅集
4.3.2.66配置心跳订阅状态
4.3.2.67配置低功耗节点PollTimeout获取
4.3.2.68配置低功耗节点轮询超时状态
4.3.2.69配置网络发送获取
4.3.2.70配置网络传输集
4.3.2.71配置网络传输状态
4.3.3.1健康状况
4.3.3.2健康故障获取
4.3.3.3运行状况故障清除未确认
4.3.3.4健康故障清除
4.3.3.5健康故障测试
4.3.3.6未确认健康故障测试
4.3.3.7健康故障状态
4.3.3.8健康期获取
4.3.3.9未确认健康期设置
4.3.3.10健康期集
4.3.3.11健康期状态
4.3.3.12健康注意获取
4.3.3.13卫生注意套装
4.3.3.14未确认健康注意事项
4.3.3.15健康注意状况
4.3.4.1按字母顺序排列的操作码摘要
4.3.4.2操作码的数值摘要
4.4模型定义
4.4.1.1描述
4.4.1.2行为
4.4.1.2.1安全网络信标状态
4.4.1.2.2成分数据状态
4.4.1.2.3默认TTL状态
4.4.1.2.4GATT代理状态
4.4.1.2.5朋友状态
4.4.1.2.6中继状态
4.4.1.2.7模型发布状态
4.4.1.2.8订阅列表状态
4.4.1.2.9NetKey列表状态
4.4.1.2.10AppKey列表状态
4.4.1.2.11模型到AppKey列表状态
4.4.1.2.12节点身份状态
4.4.1.2.13重启
4.4.1.2.14按键刷新阶段状态
4.4.1.2.15Heartbeat Publication state
4.4.1.2.16Heartbeat Subscription state
4.4.1.2.17PollTimeout列表状态
4.4.1.2.18网络传输状态
4.4.1.3错误处理行为
4.4.2.1描述
4.4.2.2行为
4.4.2.2.1安全网络信标程序
4.4.2.2.2成分数据程序
4.4.2.2.3默认TTL程序
4.4.2.2.4GATT代理程序
4.4.2.2.5朋友程序
4.4.2.2.6接力程序
4.4.2.2.7型号公布程序
4.4.2.2.8订阅列表过程
4.4.2.2.9NetKey列表过程
4.4.2.2.10AppKey列表过程
4.4.2.2.11从模型到AppKey列表过程
4.4.2.2.12节点身份程序
4.4.2.2.13重置程序
4.4.2.2.14密钥刷新阶段过程
4.4.2.2.15心跳发布过程
4.4.2.2.16心跳订阅过程
4.4.2.2.17轮询超时列表过程
4.4.2.2.18网络传输过程
4.4.3.1描述
4.4.3.2行为
4.4.3.2.1当前故障状态
4.4.3.2.2注册故障状态
4.4.3.2.3健康期状态
4.4.3.2.4注意计时器状态
4.4.4.1描述
4.4.4.2行为
4.4.4.2.1当前故障程序
4.4.4.2.2注册故障程序
4.4.4.2.3健康期程序
4.4.4.2.4注意计时器程序
10供应
5.1字节序
5.2供应承载层
5.3通用资源调配层
5.3.1.1交易开始PDU
5.3.1.2交易确认PDU
5.3.1.3事务继续PDU
5.3.1.4供应承载控制
5.3.1.4.1链接打开消息
5.3.1.4.2链接确认消息
5.3.1.4.3链接关闭消息
5.4供应协议
5.4.1.1调配邀请
5.4.1.2供应能力
5.4.1.3开通开始
5.4.1.4设置公钥
5.4.1.5供应输入完成
5.4.1.6设置确认
5.4.1.7供应随机
5.4.1.8供应数据
5.4.1.9调配完成
5.4.1.10设置失败
5.4.2.1信标
5.4.2.2邀请函
5.4.2.3交换公钥
5.4.2.4认证方式
5.4.2.5分配数据的分配
5.4.3.1FIPS P-256椭圆曲线定义
5.4.3.2供应密钥派生
12代理协议
6.1字节序
6.2代理角色
6.3代理PDU
6.4代理过滤
6.5代理配置消息
6.6代理服务器行为
6.7代理客户端行为
6.8MSC 范例
14网状GATT 服务
7.1网状网配置服务
7.1.1.1符合标准
7.1.1.2服务依赖
7.1.1.3蓝牙规范发布兼容性
7.1.1.4GATT子程序要求
7.1.1.5运输依赖
7.1.1.6应用程序错误代码
7.1.2.1宣言
7.1.2.2行为举止
7.1.2.2.1广告
7.1.2.2.2ATT_MTU
7.1.3.1Mesh Provisioning数据输入特征
7.1.3.1.1特征行为
7.1.3.2Mesh Provisioning数据输出特性
7.1.3.2.1特征行为
7.2网状代理服务
7.2.1.1符合标准
7.2.1.2服务依赖
7.2.1.3蓝牙规范发布兼容性
7.2.1.4GATT子程序要求
7.2.1.5运输依赖
7.2.1.6应用程序错误代码
7.2.2.1宣言
7.2.2.2行为举止
7.2.2.2.1广告
7.2.2.2.2使用网络ID投放广告
7.2.2.2.3使用节点身份进行广告
7.2.2.2.4ATT_MTU
7.2.3.1网格代理数据输入特性
7.2.3.1.1特征行为
7.2.3.2网格代理数据输出特性
7.2.3.2.1特征行为
16样本数据
8.1安全样本数据
8.2网格键派生样本数据
8.3网格消息样本数据
8.4信标样本数据
8.5供应服务样本数据
8.6网格代理服务样本数据
8.7PB-ADV设置样本数据
8.7.3.1PB-ADV交易确认
8.7.4.1PB-ADV交易确认
8.7.5.1PB-ADV交易确认
8.7.6.1PB-ADV交易确认
8.7.7.1PB-ADV交易确认
8.7.8.1PB-ADV交易确认
8.7.9.1PB-ADV交易确认
8.7.10.1PB-ADV交易确认
8.7.11.1PB-ADV交易确认
8.7.12.1PB-ADV交易确认
8.7.13.1PB-ADV交易确认
8.8PB-GATT SAR样本数据
8.9代理配置消息样本数据
8.10成分数据样本数据
18参考资料
原文
Mesh Profile 蓝牙®规范 ▪ 修订: v1.0.1 ▪ 修订日期: 2019-01-21 ▪ 小组准备者:网格工作小组 ▪ 反馈电子邮件:mesh-main@bluetooth.org 抽象: 该蓝牙规范定义了基本要求,以实现用于蓝牙低功耗无线技术的可互操作的网状网络解决方案。 蓝牙SIG专有
修订记录 修订号 v1.0 v1.0.1 版本记录 日期 2017-07-13 2019-01-21 注释 Bluetooth SIG董事会通过 Bluetooth SIG董事会通过 版本号 变化 v1.0.0至v1.0.1 合并勘误表E9618,E9634,E9639,E9693,E9743,E9748,E9752,E9761, E9788,E9796,E9805,E9807,E9808,E9811,E9812,E9819,E9882, E9883,E9894,E9939,E9957,E9959,E9964, E9981,E9982,E9983, E10015,E10024,E10025,E10026,E10027,E10028,E10054,E10066, E10081,E10082,E10084,E10086,E10087,E10100,E10101,E10148, E10157,E10168,E10247,E10296,E10310, E10321,E10322,E10332, E10344,E10395,E10426,E10514,E10515,E10520,E10569,E10575, E10578,E10636,E10664,E10670,E10746,E10748,E10777,E10863, E10864,E11306 贡献者 名称 罗宾·海顿 乔纳森·坦纳 维克多·卓兹斯基(Victor Zhodzishsky) 沉伟 公司 高通技术国际有限公司 高通技术国际有限公司 博通公司 爱立信 爱立信 恩智浦半导体 Google Inc. 英特尔公司 克里斯托弗·杰克比 博格丹·亚历山德鲁 马丁·图伦 罗伯特·休斯 马塞尔·霍尔特曼(Marcel Holtmann) 英特尔公司 布赖恩·吉克斯 西蒙·斯卢皮克 皮奥特·温尼亚齐克 达尼洛·布拉西(Danilo Blasi) Silvair,Inc. Silvair,Inc. 英特尔公司 王瑶 鲁斯塔姆·科维阿津(Rustam Kovyazin) 意法半导体 IVT Wireless Limited 摩托罗拉解决方案
乌代·阿加瓦尔 瓦西里·亚历山德罗夫 赛普拉斯半导体公司 摩托罗拉解决方案
名称 高Ko 奥卡·库卡尼(Omkar Kulkarni) 公司 联发科技 赛普拉斯半导体公司
使用此规格即表示您确认同意并遵守以下声明和免责声明。建议您就本规范的使用,解释和效果寻求适当的法律,工程和其他专业 建议。 Bluetooth SIG成员对Bluetooth规范的使用受Bluetooth SIG及其成员之间的成员资格和其他相关协议约束,包括在Bluetooth SIG网站www.bluetooth.com上发布的那些协议。禁止任何成员不遵守适用的会员资格和其他相关协议来使用本规范,并且除其 他事项外,可能导致(i)终止适用协议和(ii)侵犯知识分子的责任Bluetooth SIG及其成员的财产权。 禁止任何不是Bluetooth SIG成员的人使用本规范,并且侵犯Bluetooth SIG及其成员的知识产权。提供本规范并不授予对蓝牙SIG 或其成员的任何知识产权的任何许可。该规范“原样”和Bluetooth SIG,其成员和关联公司不作任何陈述或保证,并拒绝作出任何 明示或默示的担保,包括适销性,所有权,不侵权,不提供任何担保适用性FOR 任何特定用途,或THAT THE 内容的此规格IS 免费的错误。对于该回避的疑问,蓝牙SIG 还没有做出任何搜索或调查作为对第三,可能在或可能被要求实施任何规格的任何规范 知识产权的任何权利要求权利的当事人,它不承担任何义务或责任做这样。 TO THE 最大范围内许可BY 适用法律,蓝牙SIG,及其成员及及其附属公司概ALL承担责任:或本规范有关用途的任何信息本规 格,包括损失的收入,利润,数据或程序,或业务不管是由于或不基于责任理论而引起或针对特殊,间接,继发性,偶发性或惩罚 性损害,以及即使是蓝牙SIG,其成员或他们的亲戚已被告知了可能性。 如果这个规范是一个原型设计规范,它是纯粹的的目的的开发和使用的原型来验证原型规格的蓝牙技术联盟主办的IOP事件。原型 规范不能用于开发用于销售或分销的产品,原型也不能用于分销。 配备有蓝牙无线技术的产品(“蓝牙产品”)及其组合,操作,使用,实施和分发,可能受到许多国家对使用无线非授权频谱的产品 进行管制的法律和法规的管制。例如,航空法规,电信法规,技术转让控制以及健康和安全法规。您应完全负责遵守所有适用的法 律和法规,并获得与使用本规范以及开发,制造和分发蓝牙产品有关的任何及所有必需的授权,许可或许可证。 蓝牙SIG不需要采用任何规范或部分规范。如果此规范不是Bluetooth SIG董事会采用的最终版本,则可能不会采用。Bluetooth SIG董事会采用的任何规范都可以随时撤消,更换或修改。Bluetooth SIG保留根据其成员资格和操作协议更改或更改最终规格的 权利。 版权所有© 2015–2019。所有版权的的蓝牙规格本身都拥有由苹果公司,爱立信AB,英特尔公司,联想(新加坡)私人。有限公 司,微软公司,诺基亚公司和东芝公司。蓝牙文字标志和徽标均拥有通过蓝牙SIG,Inc.的其他第三方品牌和名称是财产各自的所 有者。
内容 1 简介12 1.2 1.1 符合性12 蓝牙规范版本兼容性12 语言12 1.3 1.3.1 语言约定12 1.3.2 保留供将来使用13 1.3.3 禁止13 1.3.4 首字母缩写词和缩写13 1.3.5 术语15 2 Mesh 系统架构17 2.1 分层架构17 2.1.1 模型层17 2.1.2 基础模型层17 2.1.3 接入层18 2.1.4 上传输层18 2.1.5 下运输层18 2.1.6 网络层18 2.1.7 承载层18 2.2 网格操作概述18 2.2.1 网络和子网19 2.2.2 设备和节点20 2.2.3 将设备添加到网状网络20 2.2.4 通讯支持21 2.2.5 低功耗支持21 2.3 建筑概念21 2.3.1 国家21 2.3.2 绑定状态21 2.3.3 消息21 2.3.4 元素22 2.3.5 地址23
2.3.6 模型23 2.3.7 示例设备29 2.3.8 发布-订阅和消息交换30 2.3.9 安全性31 2.3.10 友谊33 2.3.11 功能34 2.3.12 拓扑35 2.5 网状网关35 2.4 并发限制和约束35 拓扑的局限性和限制35 2.6 3 网状网络36 3.1 公约36 3.1.1 字节顺序和字段排序36 3.2 3.3 功能37 承载38 3.3.1 广告载体38 3.3.2 GATT 承载38 3.4 网络层39 3.4.1 字节序39 3.4.2 地址39 3.4.3 地址有效性42 3.4.4 网络PDU 43 3.4.5 网络接口45 3.4.6 网络层行为46 3.5 下运输层49 3.5.1 字节序50 3.5.2 下层传输PDU 50 3.5.3 分段和重组54 3.5.4 较低的传输层行为61 3.5.5 朋友队列61
3.6 上运输层62 3.6.1 字节序62 3.6.2 上层传输访问PDU 62 3.6.3 上层传输控制PDU 63 3.6.4 上传输层行为64 3.6.5 传输控制消息64 3.6.6 友谊74 3.6.7 心跳90 3.7 接入层92 3.7.1 字节序93 3.7.2 模型标识符93 3.7.3 访问有效载荷93 3.7.4 接入层行为95 3.7.5 未确认和确认的消息96 3.7.6 发布和订阅97 3.7.7 消息序列图示例99 3.8 网状安全性101 3.8.1 字节序101 3.8.2 安全工具箱101 3.8.3 序列号105 3.8.4 IV 指数105 3.8.5 Nonce 105 3.8.6 键110 3.8.7 消息安全性114 3.8.8 消息重播保护118 3.9 网格信标119 3.9.1 字节序120 3.9.2 配置的设备信标120 3.9.3 安全网络信标122 3.10 网状网络管理124 3.10.1 网状网络创建过程124
分享到:
收藏