• 正文
  • 相关推荐
申请入驻 产业图谱

手把手教你:BLE安全连接-更改MTU

07/23 08:16
109
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

一、前言

本篇会讲解为什么需要修改MTU,MTU的大小更改为多少合适。

二、阅读说明

1、泰凌微芯片使用者。

2、蓝牙 spec学习者

三、正文

1、为什么需要更改MTU

如上图所示,介绍了安全连接必须采用P-256 椭圆曲线,而P-256 椭圆曲线,我们在计算公钥和私钥的时候需要使用到ECDH算法,其中ECDH算法有好几种椭圆曲线,其中有P-192,P-256等,而在BLE规定中需要使用安全等级最高的P-256。

那么如果使用P-256进行计算的话,我们所计算出的公钥和私钥的数据大小分为为64字节和32个字节。

在配对的第二阶段进行公钥交换的时候,那么我们就必须地传输最大为64字节的公钥给到对方设备.而BLE中默认的MTU大小只有23个字节,所以我们就必须更改MTU的小大使之能容纳64个字节的公钥,那么我们的MTU需要更改为多大呢,这个问题请看下一节解释。

2、MTU大小更改为多少合适

/** * @brief   MTU MTU size * refer to BLE Core Specification: Vol 3, Part F, "3.2.8 Exchanging MTU size" & "3.4.2 MTU exchange"; Vol 3, Part G, "4.3.1 Exchange MTU" * usage limitation: * 1. must equal to or greater than 23(default MTU) * 2. if support LE Secure Connections, must equal to or bigger than 65 */#ifndef MTU_SIZE_SETTING#define MTU_SIZE_SETTING                    23  //user set value, user can change it in app_config.h

如上描述,MTU至少需要更改为65个字节才行。那么为什么需要65个字节才行呢,这个留到下一篇再进行讲解,如果有知道的小伙伴也可以在下面进行留言。

相关推荐