数据包结构(IVI,NID,CTL,TTL,SEQ,SRC,DST,TransPDU,NetMIC)
文章目录
- 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 |
32 或 64 ( 4 或 8 个字节)
|
网络 消息完整校验值(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
|
NetMIC 是32bits 值,并且底层传输PDU 包含访问消息 (Access Message),传输 pdu 限制在16 字节
|
1
|
NetMIC 是64bits 值,并且底层传输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-bit 或64-bit 值CTL=0 (访问消息 Access Message),NetMIC 是32-bit 值,传输 pdu 限制在16 字节;CTL=1 (控制消息 Control Message),NetMIC 是64-bit 值,传输 pdu 限制在12 字节
|
2 |
认证符合网络密钥 (NetKey)的节点发出的消息
|
数据包结构(IVI,NID,CTL,TTL,SEQ,SRC,DST,TransPDU,NetMIC)相关推荐
- 多层数据包结构及TCP三次握手
二层数据包-以太帧包结构 以太帧有很多的类型,不同类型的帧具有不同的格式和MTU值.但是在同种物理媒体上是可以同时存在. 以太网第二版或者称其为Ethernet_II,是最常见的帧类型,并且通常直接被 ...
- JAVA网络编程:TCP/IP数据包结构
2019独角兽企业重金招聘Python工程师标准>>> 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解网络数据 ...
- TCP/IP数据包结构分解
一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等-- IP包是不安全的,但 ...
- TCP/IP数据包结构详解
一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等-- IP包是不安全的,但 ...
- TCP/IP数据包结构具体解释
[关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...
- 【计算机网络 24】TCP/IP数据包结构详解
一.前言 一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解 网络数据包的结构,以及协议分析.如:网络监控,故障排查等. IP包是不安 ...
- IP数据报、TCP数据包结构详解
[关键词] TCP IP 数据包 结构 具体解释 网络 协议 一般来说,网络编程我们仅仅须要调用一些封装好的函数或者组件就能完毕大部分的工作,可是一些特殊的情况下,就须要深入的理解 网络数据包的结构, ...
- TCP/IP的层次结构、各层数据封装过程、数据包结构--解析
一.TCP/IP的层次结构 Tcp/ip协议的四个层次 TCP.IP协议的分层结构图 CP/IP协议与OSI模型的对应关系(五层分法) 1.应用层:为用户的应用程序提供接口,使用户可以访问网络.(IE ...
- TCP/IP网络协议栈:以太网数据包结构、802.3、MTU
<TCP/IP网络协议栈:以太网数据包结构.802.3> <TCP/IP网络协议栈:ARP协议详解> <TCP / IP攻击:ARP缓存中毒的基本原理.TCP序列号预测和 ...
- 【BLE】广播数据包结构讲解,五颗蓝牙芯片对比
[广播数据包结构讲解] 广播数据包的讲解网上可参考的也挺多,讲解了整个数据包的每个字节每个位的功能描述,非常详细. 今天我们换个方式,按照代码编写的方式,只要是被SDK封装的部分都不做考虑,例如报头. ...
最新文章
- 华为3com交换路由命令详解
- 机器学习基础 --- numpy的基本使用
- Spring源码分析-深入理解生命周期之BeanFactoryProcessor
- php获取flash上传视频文件大小,php解析flash文件(.swf文件)获取其长度和宽度
- linux 内核代码构架图
- java 关键字 sizeof_Java 基本数据类型 sizeof 功能
- pandas学习笔记三之赋值操作
- Asp.Net alert弹出提示信息的若干种方法
- 最快的摘要HASH算法测试
- Multisim彻底卸载干净方法
- 2022-08-19 mysql/stonedb-索引优化专利交底书-改进点
- 酞菁-氧化石墨烯(NiPc- NHCO-EGO)|齐岳生物提供酞菁定制材料
- Curse of dimensionality - 维数灾难
- [填坑]ubuntu 18.04+Windows 10双硬盘双系统修改默认启动顺序
- 4939: [Ynoi2016]掉进兔子洞 莫队 压位
- Mac/Linux/Ubuntu下 视频 显示双语/中英字幕 的方法
- 2020李宏毅学习笔记——16.Recurrent Netural Network 下
- 关于html中的图片居中问题
- 学学Gnuplot(常用命令及参数)
- 提高社会的微生物素养:势在必行!