1.概述
* MTU: 最大傳輸單元(MAXIMUM TRANSMISSION UNIT) , 指在一個(gè)PDU (Protocol Data Unit: 協(xié)議數(shù)據(jù)單元,在一個(gè)傳輸單元中的有效傳輸數(shù)
據(jù))能夠傳輸?shù)淖畲髷?shù)據(jù)量(多少字節(jié)可以一次性傳輸?shù)綄?duì)方)。
* MTU 交換是為了在主從雙方設(shè)置一個(gè)PDU中最大能夠交換的數(shù)據(jù)量,通過(guò)MTU的交換和雙方確認(rèn)(注意這個(gè)MTU是不可以協(xié)商的,只是通知對(duì)方,雙方在知道對(duì)方的極限后會(huì)選擇一個(gè)較小的值作為以后的MTU,比如說(shuō),主設(shè)備發(fā)出一個(gè)150個(gè)字節(jié)的MTU請(qǐng)求,但是從設(shè)備回應(yīng)MTU是23字節(jié),那么今后雙方要以較小的值23字節(jié)作為以后的MTU),主從雙方約定每次在做數(shù)據(jù)傳輸時(shí)不超過(guò)這個(gè)最大數(shù)據(jù)單元
MTU交換通常發(fā)生在主從雙方建立連接關(guān)系后(參見(jiàn)"一分鐘讀懂低功耗藍(lán)牙連接數(shù)據(jù)包")
做個(gè)對(duì)比就可以知道BLE MTU 比較小(不過(guò)新的BLE 標(biāo)準(zhǔn)MTU 已經(jīng)大幅提升,詳見(jiàn)即將發(fā)表在VIEWTOOL BBS上的后續(xù)文章)。
****************************************************************“*************************
以太網(wǎng):1500
IEEE 802.3/802.2: 1492
X.25: 576
BLE: 23 => 這就是為什么WIFI 可以用于傳輸視頻,傳統(tǒng)藍(lán)牙(BT)可以傳輸音頻,而低功耗藍(lán)牙(BTLE 或者BLE)只能夠傳輸控制數(shù)據(jù)的原因了。
******************************************************************************************
* MTU 交換命令:屬于ATT 命令
* MTU 交換過(guò)程:如下圖

MTU Exchange.png
* MTU 兩個(gè)命令(“MTU 請(qǐng)求”及“MTU 響應(yīng)”)詳解如下(見(jiàn)“4”)
2.關(guān)鍵字:Hollong BLE 偵聽(tīng)儀,低功耗藍(lán)牙嗅探器, BLE 分析儀,BLE 數(shù)據(jù)抓取
Keyword: Hollong BLE Sniffer, BLE Data Analyzer,BLE Capture
3.抓取數(shù)據(jù)包的準(zhǔn)備工作
* 硬件:一個(gè)BLE設(shè)備(從設(shè)備)及對(duì)應(yīng)的主設(shè)備(如智能手機(jī)里面的相關(guān)應(yīng)用程序,或者通用BLE 工具軟件);
一臺(tái)HOLLONG BLE SNIFFER (Hollong BLE 偵聽(tīng)儀)
* 軟件:Hollong 藍(lán)牙4.0/4.1 BLE協(xié)議監(jiān)控分析儀 軟件, 使用本軟件可以打開(kāi)本文中的數(shù)據(jù)包附件,進(jìn)而可以更加方便及更加全面地了解更多細(xì)節(jié)(包括最全面的數(shù)據(jù)及數(shù)據(jù)解析)
下載鏈接:
http://www.viewtool.com/index.ph ... hollong-4-0-4-1-ble
4. MTU 請(qǐng)求(REQEUST)
完整數(shù)據(jù)(以下關(guān)注藍(lán)色標(biāo)注部分)

MTU request complete.png
1) 存取地址
Access Address: 0xaf9a8c69
固定為4個(gè)字節(jié),其值由連接請(qǐng)求數(shù)據(jù)包指定(詳見(jiàn)“一分鐘讀懂低功耗藍(lán)牙連接數(shù)據(jù)包”)

MTU req access address.png
2) 頭信息
Data Header: 0x0706 000. .... = RFU: 0
...0 .... = More Data: False
.... 0... = Sequence Number: 0
.... .1.. = Next Expected Sequence Number: 1
.... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)
000. .... = RFU: 0
...0 0111 = Length: 7

MTU req header info.png
3) L2CAP 長(zhǎng)度
在BLE中,GAP,GATT,SMP 都使用L2CAP 通道將命令及數(shù)據(jù)打包送到鏈路層(LINK LAYER),L2CAP 打包過(guò)程中需要指定L2CAP的長(zhǎng)度及通道號(hào)。
Length: 3

MTU req l2cap size .png
4) L2CAP 通道號(hào)(CID):channel ID
CID: Attribute Protocol (0x0004)

MTU req l2cap channel ID.png
5) ATT 命令
標(biāo)準(zhǔn)發(fā)下:

MTU REQUEST ATT FORMAT.png
實(shí)際數(shù)據(jù)包:
Opcode: Exchange MTU Request (0x02)
0... .... = Authentication Signature: False
.0.. .... = Command: False
..00 0010 = Method: Exchange MTU Request (0x02)
[img]http://www.viewtool.com/bbs/data/attachment/forum/201707/27/08593