# Bluetooth protocol stack

# Application group

image

# Middleware protocol group

image

# Transport protocol group

image

# Piconets & scatternets

# Piconet

image

  • Master-slave architecture:一個設備作為主設備(Master),其他設備作為從設備(Slave)連接到主設備。主設備負責協調通信和管理從設備。
  • 最多可有 7 個從設備同時連接到主設備,形成一個小型的無線網路,稱為 Piconet。

# Scatternet

BNYp1tV.md.png

  • Scatternet 是由多個重疊 Piconet 組成的更大規模的無線網路。設備可以同時參與多個 Piconet,作為橋接設備(Bridge)連接不同的 Piconet。

# Inter-piconet communication

  • 由於 Bluetooth 設備可以同時參與多個 Piconet,這些設備可以在不同的 Piconet 之間轉發數據,實現跨 Piconet 的通信。
  • 要加入新的 Piconet,設備需要進行重新同步
  • 要離開 Piconet,設備需要通知主設備
  • Master-slave switching:設備可以在不同的 Piconet 中切換主從角色,以適應不同的通信需求。

# Bluetooth communication states

BNa33ba.md.png

# Inquiry & Page states

Inquiry 和 page 狀態都可以幫 master 邀請 slave 加入 piconet,但兩者都不知道彼此的 frequency hopping pattern

  • 他們可以送 frequency hopping synchronization (FHS) 包來交換資訊
  • 在連接狀態前,所有設備隨 slave 的 frequency hopping pattern。連接狀態後,master 和 slave 都會使用 master 的 frequency hopping pattern

# Detailed flowchart

BNa54Hu.md.png

# Four modes of a slave

  • Active mode:從設備處於活動狀態,能夠立即響應主設備的通信請求。
  • Hold mode:從設備暫時停止通信,但保持與主設備的連接
    • 當在省電模式下,slave 可以做如 scanning, paging, inquiring, or attending
  • Sniff mode:Slave 只在特定的時間間隔內響應主設備的通信請求,以節省電力
  • Park mode:從設備進入休眠狀態,暫時不參與 Piconet,但保持與主設備的連接
    • 最低功耗模式
    • Parked slave 規律的聽取 beacon 的訊號
    • beacon channel:主設備定期發送 beacon 信號,從設備通過監聽 beacon 信號來保持與主設備的同步。
    • 可以讓 master 有多於 7 個 slaves

# Bluetooth links, packet format, and security

藍芽鏈路類型:

  • Synchronous Connection-Oriented (SCO) link:主要用於傳輸語音數據,提供固定的帶寬和低延遲。
  • Asynchronous Connection-Less (ACL) link:主要用於傳輸數據,提供更高的帶寬和靈活的通信方式。

於 master 和一個 slave 之間建立

  • point-to-point
  • full-diplex(可以同時傳輸和接收數據)
  • 一旦 SCO link 建立後會一直維持直到 master 主動釋放
  • SCO packets 永遠不會被重傳,因為它們主要用於語音數據,對延遲敏感

於 master 和所有 slaves 之間建立

  • point-to-multipoint
  • momentary
  • ACL 只能用 SCO link 未使用的頻道傳輸數據
  • 資料的再傳是允許的,並且有重傳機制來確保數據的可靠傳輸

# Bluetooth packet structure

BNaYJ29.md.png

# Access code

用於 timing synchronization, inquiry, and paging
Access code 分為三種類型:

  • Channel Access Code (CAC):辨認 piconet
  • Device Access Code (DAC):用 paging 和 paging response 這些通訊的程序
  • Inquiry Access Code (IAC):用於 inquiry 程序
    • General Inquiry Access Code (GIAC):所有設備都能識別的 IAC
    • Limited Inquiry Access Code (LIAC):只有特定類型的設備能識別的 IAC

# Security in Bluetooth

  • Authentication:確認設備的身份,確保通信雙方是合法的。
  • Confidentiality:保護數據的機密性,防止未經授權的訪問。
  • Authorization:控制設備對資源的訪問權限。
    • 在藍芽中,authentication 和 encryption 是由 Link Manager 所提供的
    • 在 authentication 後,radio 會在用在適合 encryption key 的長度
  • Personal Identification Number (PIN) 是為了 authentication 而使用的密碼,被轉成為一個 128-bit 的密鑰,並且在設備之間共享。藍芽用 PIN codes 建立裝置間的信任關係,並且在通信過程中使用加密來保護數據的安全性。
  • FHSS 也提供了一定程度的安全性
    • 因為以 pseudo-random hopping sequence 在 79 個頻道之間跳頻,攻擊者很難預測下一個頻道的位置,從而增加了攔截和干擾的難度。