文章目录

  • 1、网络层 协议数据单元(PDU)
    • (1)IVI - 初始化矢量索引(Initialization Vector Index)
    • (2)NID - 网络ID(Network ID)
    • (3)CTL - 控制(Network Control)
    • (4)TTL - 生存时间(Time to Live)
    • (5)SEQ - 序列号(Sequence Number)
    • (6)SRC - 源地址,DST - 目标地址
    • (7)Transport PDU - 传输协议数据单元
    • (8)NetMIC - 网络消息完整校验值(Message Integrity Check for Network)

蓝牙Mesh数据包的结构,如图所示:

1、网络层 协议数据单元(PDU)

Field Name
(字段名)
bits 描述
IVI 1 IV索引的 最低有效位
NID 7 网络ID,Network ID
网络密钥(NetKey)派生的值,用于标识用于保护此PDU的加密密钥(encryption key) 和隐私密钥(privacy key)
CTL 1 网络控制(Network Control)
0表示Access Message,且NetMIC为32bits
1表示Control Message,且NetMIC为64bits
TTL 7 生存时间(Time To Live)
转发数据的次数
SEQ 24 序列号(Sequence Number)
表示 Network PDU 数据包的索引
SRC 16 源地址(Source Address)
数据包发起方的源地址、且该地址应为单播地址
DST 16 目的地址(Destination Address)
可以为单播地址、组地址以及虚拟地址
Transport PDU 96~128
12~16个字节)
传输 协议数据单元
NetMIC 3264
48个字节)
网络 消息完整校验值(Message Integrity Check for Network)
(1)IVI - 初始化矢量索引(Initialization Vector Index)

序号 描述
1 1-bit
2 IV索引的 最低有效位
(2)NID - 网络ID(Network ID)

序号 描述
1 7-bit
2 决定使用哪个Mesh网络传递数据
3 删除和该信息矛盾的请求
4 网络身份有(2^121)个网络密钥
(3)CTL - 控制(Network Control)


CTL字段是1-bit值,用于确定Mesh消息是否包含访问消息或者控制消息

CTL Field 描述
0 NetMIC32bits值,并且底层传输PDU包含访问消息(Access Message),传输 pdu 限制在16 字节
1 NetMIC64bits值,并且底层传输PDU包含控制消息(Control Message),传输 pdu 限制在12 字节
消息分类 描述
访问消息
(Access Message)
(1)定义了应用数据的格式
(2)应用密钥(App key)或者设备密钥(Device key)用于加密认证信息
控制消息
(Control Message)
(1)用于创建和管理友谊心跳操作
(4)TTL - 生存时间(Time to Live)


TTL字段是7-bit字段:

描述
0、1 不会被中继
2~126 可能已被中继,并且可以被中继
127 可以中继(最大值)
(5)SEQ - 序列号(Sequence Number)

序号 描述
1 24-bit
2 每个Mesh的信息的SEQ必须不同
3 要有源地址,唯一身份识别 Mesh 信息
(6)SRC - 源地址,DST - 目标地址


SRC - 源地址(Source Address)

序号 描述
1 16-bit
2 识别信息 原始源
3 必须是一个 单播地址

DST - 目标地址(Destination Address)

序号 描述
1 16-bit
2 定义了这条消息的 目的地
3 可以是一个单播地址虚拟地址分组地址或者广播地址
4 目标地址 使用网络密钥(NetKey)加密

Mesh 地址:

序号 地址类型 范围 描述
1 Unassigned(未分配) 0x0000 没有分配地址(无发布或订阅时被特定使用)
2 Unicast(单播) 0x0001 ~ 0x7FFF 分配给每个元素的唯一地址,一共32767个
3 Virtual(虚拟) 0x8000 ~ 0xBFFF 一个或一组设备的虚拟地址
4 Group(组) 0xC000 ~ 0xFEFF 一组Mesh节点的地址(发布或订阅时被特定使用)
5 Broadcast(广播) 0xFFFF 网络中的每一个节点
(7)Transport PDU - 传输协议数据单元

序号 描述
1 1~16个字节
2 包含了底层传输层的信息
3 CTL决定了传输PDU的大小
CTL=0,传输PDU 限制在16字节;CTL=1,传输PDU 限制在12字节)
4 传输PDU时使用了网络密钥(NetKey)进行加密
(8)NetMIC - 网络消息完整校验值(Message Integrity Check for Network)

序号 描述
1 32-bit64-bit
CTL=0(访问消息 Access Message),NetMIC32-bit值,传输 pdu 限制在16 字节;
CTL=1(控制消息 Control Message),NetMIC64-bit值,传输 pdu 限制在12 字节
2 认证符合网络密钥(NetKey)的节点发出的消息

数据包结构(IVI,NID,CTL,TTL,SEQ,SRC,DST,TransPDU,NetMIC)相关推荐

  1. 多层数据包结构及TCP三次握手

    二层数据包-以太帧包结构 以太帧有很多的类型,不同类型的帧具有不同的格式和MTU值.但是在同种物理媒体上是可以同时存在. 以太网第二版或者称其为Ethernet_II,是最常见的帧类型,并且通常直接被 ...

  2. JAVA网络编程:TCP/IP数据包结构

    2019独角兽企业重金招聘Python工程师标准>>> 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解网络数据 ...

  3. TCP/IP数据包结构分解

    一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等-- IP包是不安全的,但 ...

  4. TCP/IP数据包结构详解

    一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等-- IP包是不安全的,但 ...

  5. TCP/IP数据包结构具体解释

    [关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...

  6. 【计算机网络 24】TCP/IP数据包结构详解

    一.前言 一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等. IP包是不安 ...

  7. IP数据报、TCP数据包结构详解

    [关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...

  8. TCP/IP的层次结构、各层数据封装过程、数据包结构--解析

    一.TCP/IP的层次结构 Tcp/ip协议的四个层次 TCP.IP协议的分层结构图 CP/IP协议与OSI模型的对应关系(五层分法) 1.应用层:为用户的应用程序提供接口,使用户可以访问网络.(IE ...

  9. TCP/IP网络协议栈:以太网数据包结构、802.3、MTU

    <TCP/IP网络协议栈:以太网数据包结构.802.3> <TCP/IP网络协议栈:ARP协议详解> <TCP / IP攻击:ARP缓存中毒的基本原理.TCP序列号预测和 ...

  10. 【BLE】广播数据包结构讲解,五颗蓝牙芯片对比

    [广播数据包结构讲解] 广播数据包的讲解网上可参考的也挺多,讲解了整个数据包的每个字节每个位的功能描述,非常详细. 今天我们换个方式,按照代码编写的方式,只要是被SDK封装的部分都不做考虑,例如报头. ...

最新文章

  1. 华为3com交换路由命令详解
  2. 机器学习基础 --- numpy的基本使用
  3. Spring源码分析-深入理解生命周期之BeanFactoryProcessor
  4. php获取flash上传视频文件大小,php解析flash文件(.swf文件)获取其长度和宽度
  5. linux 内核代码构架图
  6. java 关键字 sizeof_Java 基本数据类型 sizeof 功能
  7. pandas学习笔记三之赋值操作
  8. Asp.Net alert弹出提示信息的若干种方法
  9. 最快的摘要HASH算法测试
  10. Multisim彻底卸载干净方法
  11. 2022-08-19 mysql/stonedb-索引优化专利交底书-改进点
  12. 酞菁-氧化石墨烯(NiPc- NHCO-EGO)|齐岳生物提供酞菁定制材料
  13. Curse of dimensionality - 维数灾难
  14. [填坑]ubuntu 18.04+Windows 10双硬盘双系统修改默认启动顺序
  15. 4939: [Ynoi2016]掉进兔子洞 莫队 压位
  16. Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法
  17. 2020李宏毅学习笔记——16.Recurrent Netural Network 下
  18. 关于html中的图片居中问题
  19. 学学Gnuplot(常用命令及参数)
  20. 提高社会的微生物素养:势在必行!

热门文章

  1. 如何调出IPGUARD控制台维护里的命令行
  2. ffplay工具命令使用技巧浅析
  3. 常见面试题(无答案)
  4. 通过jquery 打开新窗口,
  5. Oracle中添加删除主键的方法(转)
  6. PHP简单实现“相关文章推荐”功能的方法
  7. 计算机网络第1章(概述)- 湖科大计算机网络课程笔记整理
  8. PID原理的详细分析及调节过程
  9. Unity利用单反相机拍照、录制视频
  10. 玫琳凯首席创新官Lucy Gildea在2022年妇女和女童参与科学国际日的声明