一、前言
本篇会讲解为什么需要修改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个字节才行呢,这个留到下一篇再进行讲解,如果有知道的小伙伴也可以在下面进行留言。
阅读全文
109