1.概述
??* MTU: 最大傳輸單元(MAXIMUM TRANSMISSION UNIT) 喻喳, 指在一個PDU (Protocol Data Unit: 協(xié)議數(shù)據(jù)單元躺坟,在一個傳輸單元中的有效傳輸數(shù)
據(jù))能夠傳輸?shù)淖畲髷?shù)據(jù)量(多少字節(jié)可以一次性傳輸?shù)綄Ψ剑?/p>
??* MTU 交換是為了在主從雙方設置一個PDU中最大能夠交換的數(shù)據(jù)量卵佛,通過MTU的交換和雙方確認(注意這個MTU是不可以協(xié)商的公荧,只是通知對方休涤,雙方在知道對方的極限后會選擇一個較小的值作為以后的MTU吗购,比如說,主設備發(fā)出一個150個字節(jié)的MTU請求冰垄,但是從設備回應MTU是23字節(jié)蹬癌,那么今后雙方要以較小的值23字節(jié)作為以后的MTU),主從雙方約定每次在做數(shù)據(jù)傳輸時不超過這個最大數(shù)據(jù)單元
? ? MTU交換通常發(fā)生在主從雙方建立連接關系后(參見“一分鐘讀懂低功耗藍牙連接數(shù)據(jù)包“”)
? ? 做個對比就可以知道BLE MTU 比較泻绮琛(不過新的BLE 標準MTU 已經(jīng)大幅提升逝薪,詳見即將發(fā)表在VIEWTOOL BBS上的后續(xù)文章)。
??****************************************************************“*************************? ?? ?
? ?以太網(wǎng):1500
??IEEE 802.3/802.2: 1492
??X.25: 576
??BLE: 23? ?=> 這就是為什么WIFI 可以用于傳輸視頻蝴罪,傳統(tǒng)藍牙(BT)可以傳輸音頻董济,而低功耗藍牙(BTLE 或者BLE)只能夠傳輸控制數(shù)據(jù)的原因了。
??******************************************************************************************
??* MTU 交換命令:屬于ATT 命令
??* MTU 交換過程:如下圖
??* MTU 兩個命令(“MTU 請求”及“MTU 響應”)詳解如下(見“4”)
2.關鍵字:Hollong BLE 偵聽儀要门,低功耗藍牙嗅探器, BLE 分析儀虏肾,BLE 數(shù)據(jù)抓取
??Keyword: Hollong BLE Sniffer, BLE Data Analyzer,BLE Capture
3.抓取數(shù)據(jù)包的準備工作
??* 硬件:一個BLE設備(從設備)及對應的主設備(如智能手機里面的相關應用程序欢搜,或者通用BLE 工具軟件)封豪;
? ?? ?? ???一臺HOLLONG BLE SNIFFER (Hollong BLE 偵聽儀)
??* 軟件:Hollong 藍牙4.0/4.1 BLE協(xié)議監(jiān)控分析儀 軟件, 使用本軟件可以打開本文中的數(shù)據(jù)包附件炒瘟,進而可以更加方便及更加全面地了解更多細節(jié)(包括最全面的數(shù)據(jù)及數(shù)據(jù)解析)
? ?? ???下載鏈接:
?http://www.viewtool.com/index.ph ... hollong-4-0-4-1-ble
4.?MTU 請求(REQEUST)
? ?完整數(shù)據(jù)(以下關注藍色標注部分)
? ? 1)??存取地址
? ? Access Address: 0xaf9a8c69
? ? 固定為4個字節(jié)吹埠,其值由連接請求數(shù)據(jù)包指定(詳見“一分鐘讀懂低功耗藍牙連接數(shù)據(jù)包”)
? ?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
3) L2CAP 長度
? ? 在BLE中,GAP,GATT,SMP 都使用L2CAP 通道將命令及數(shù)據(jù)打包送到鏈路層(LINK LAYER),L2CAP 打包過程中需要指定L2CAP的長度及通道號缘琅。
? ? Length: 3
? ?4) L2CAP 通道號(CID):channel ID
? ?CID: Attribute Protocol (0x0004)
? ? 5) ATT 命令
? ???標準發(fā)下:
? ???實際數(shù)據(jù)包:
? ? Opcode: Exchange MTU Request (0x02)
? ? 0... .... = Authentication Signature: False
? ? .0.. .... = Command: False
? ? ..00 0010 = Method: Exchange MTU Request (0x02)
? ?6) MTU 值 (請求的值)
? ? Client Rx MTU: 185
7) CRC?
4.?MTU 響應(RESPONSE)
? ? 完整數(shù)據(jù)包:
? ? 1) 存取地址
? ? Access Address: 0xaf9a8c69
? ? 固定為4個字節(jié)粘都,其值由連接請求數(shù)據(jù)包指定(詳見“一分鐘讀懂低功耗藍牙連接數(shù)據(jù)包”)
? ? 2. 頭信息
? ? Data Header: 0x0712? ? 000. .... = RFU: 0
? ? ...1 .... = More Data: True
? ? .... 0... = Sequence Number: 0
? ? .... .0.. = Next Expected Sequence Number: 0
? ? .... ..10 = LLID: Start of an L2CAP message or a complete L2CAP message with no fragmentation (0x2)
? ? 000. .... = RFU: 0
? ? ...0 0111 = Length: 7
? ? 3. L2CAP 長度
? ?? ???解釋同(請求包)。
? ?? ???Length: 3
? ? 4. L2CAP 通道號
? ?? ???解釋同(請求包)刷袍。
? ?? ? CID: Attribute Protocol (0x0004)
? ? 5. ATT 命令
? ?? ? 標準:
? ?? ? 實例:
? ?? ? Opcode: Exchange MTU Response (0x03)? ? 0... .... = Authentication Signature: False
? ? .0.. .... = Command: False
? ? ..00 0011 = Method: Exchange MTU Response (0x03)
? ???6) MTU 值
? ?? ?Server Rx MTU: 23
? ?? ?7)CRC
? ?? ? CRC: 0xf4767e
? ? [Expert Info (Note/Checksum): CRC unchecked, not all data available]