๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ก work work work/BLE

BLE ์ฑ… ์ •๋ฆฌ - 5 : L2CAP, ATT, SM, GATT, GAP

by hanwitjus 2022. 1. 25.

1. L2CAP : ๋…ผ๋ฆฌ์  ๋งํฌ ์ œ์–ด ๋ฐ ์ ์šฉ ํ”„๋กœํ† ์ฝœ

Logical Link Control and Adaption Protocol

 

๋ธ”๋ฃจํˆฌ์Šค ํ”„๋กœํ† ์ฝœ ์Šคํƒ ์ƒ์—์„œ ํ˜ธ์ŠคํŠธ ๋ถ€๋ถ„์˜ ํ•ต์‹ฌ ๊ณ„์ธต ๊ธฐ๋Šฅ

์†Œํ”„ํŠธ์›จ์–ด์ ์ธ ์ƒ์œ„ ๊ณ„์ธต๊ณผ ํ•˜์œ„ ๋ฌผ๋ฆฌ์ ์ธ ๊ณ„์ธต๊ณผ์˜ ๋ฐ์ดํ„ฐ ํ†ต์‹  ์—ฐ๊ฒฐ ์ง€์›

 

์ €์ „๋ ฅ ๋ธ”๋ฃจํˆฌ์Šค๋ฅผ ์œ„ํ•ด L2CAP ๊ณ„์ธต์€

- ์†์„ฑ ํ”„๋กœํ† ์ฝœ(ATT) : BLE  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์˜ ๊ธฐ๋ณธ์„ ํ˜•์„ฑ

- ๋ณด์•ˆ ๊ด€๋ฆฌ์ž ํ”„๋กœํ† ์ฝœ(SMP) : ํ”ผ์–ด๋“ค ์‚ฌ์ด์—์„œ ๋ณด์•ˆํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” framework ์ œ๊ณต

์ด ๋‘๊ฐ€์ง€ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค.

 

ํŠน์ง•

  • ์—ฐ๊ฒฐ์„ฑ ๋ฐ ๋น„์—ฐ๊ฒฐ์„ฑ ๋ฐ์ดํ„ฐ ํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ๋ชจ๋‘ ์ง€์› ๊ฐ€๋Šฅ (BLE์—์„œ๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ๋งŒ ์ง€์›)
  • ๋‹ค์ค‘ํ™”(Multiplexing) ์—ฐ๊ฒฐ ์ง€์›
  • ํ๋ฆ„์ œ์–ด, ์žฌ์ „์†ก ๊ธฐ๋ฐ˜ ์—๋Ÿฌ์ œ์–ด ๊ธฐ๋Šฅ
  • ์บก์Аํ™”, ์Šค์ผ€์ฅด๋ง ๊ธฐ๋Šฅ
  • ๋‘ ๋ธ”๋ฃจํˆฌ์Šค ๋””๋ฐ”์ด์Šค ๊ฐ„์— QoS ๋ณด์žฅ ์ง€์› ๋“ฑ

 

 

2. ATT : ์†์„ฑ ํ”„๋กœํ† ์ฝœ

Attribute Protocol

 

๋””๋ฐ”์ด์Šค์— ์˜ํ•ด ์ œ์‹œ๋œ ์†์„ฑ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ๋น„๋ณด์กดํ˜• ํ”„๋กœํ† ์ฝœ

์†์„ฑ์€ ์„ธ๊ฐ€์ง€ ์š”์†Œ๋กœ ๊ตฌ์„ฑ

  • 16 bit handle (ํ•ธ๋“ค์€ ์†์„ฑ์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ์ˆซ์ž์ด๋‹ค. ์žฅ์น˜ ๋‚ด์— ๋™์ผํ•œ UUID๋ฅผ ๊ฐ–๋Š” ์†์„ฑ์ด ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ)
  • ์†์„ฑ ํƒ€์ž…์„ ์ •์˜ํ•˜๋Š” UUID
  • ํŠน์ • ๊ธธ์ด์˜ Value

ATT ํ”„๋กœํ† ์ฝœ์˜ ๋Œ€๋ถ€๋ถ„์€ ์ˆœ์ˆ˜ํ•œ ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„์ด๋‹ค.

ATT ์„œ๋ฒ„๋Š” ์†์„ฑ์„ ์ €์žฅํ•œ๋‹ค. ATT ํด๋ผ์ด์–ธํŠธ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ €์žฅํ•˜์ง€ ์•Š๋Š”๋‹ค. 

ATT ์™€์ด์–ด ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์†์„ฑ์˜ ๊ฐ’์„ ์ฝ๊ณ  ์“ด๋‹ค.

 

 

3. SM : ๋ณด์•ˆ ๊ด€๋ฆฌ์ž

Security Manager

 

 ๋ธ”๋ฃจํˆฌ์Šค ํ”„๋กœํ† ์ฝœ ์Šคํƒ๊ณผ ํ•จ๊ป˜ ๋ณด์•ˆ ํ‚ค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ตํ™˜ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ์ œ๊ณตํ•˜๋„๋ก ์„ค๊ณ„ ๋จ

์•…์„ฑ ํ”ผ์–ด๋ฅผ ํ”ผํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ๊ณต์šฉ BD_ADDR์„ ์ˆจ๊ธฐ๊ฒŒ ํ•ด์ค€๋‹ค.

 

๋‘๊ฐ€์ง€ ์—ญํ•  ์ •์˜

  • ๊ฒŒ์‹œ์ž Initiator : ๋งํฌ ๊ณ„์ธต ๋งˆ์Šคํ„ฐ์™€ GAP ์ค‘์•™์žฅ์น˜์— ์ผ์น˜
  • ์‘๋‹ต์ž Responder : ๋งํฌ ๊ณ„์ธต ์Šฌ๋ ˆ์ด๋ธŒ์™€ GAP ์ฃผ๋ณ€์žฅ์น˜์— ์ผ์น˜

 

4. GATT : ์ผ๋ฐ˜ ์†์„ฑ ํ”„๋กœํŒŒ์ผ

Generic Attribute Profile

 

ATT ์œ„์— ๊ตฌ์ถ•ํ•˜๊ณ  ๊ทธ ์œ„์— ๊ณ„์ธต ๋ฐ ๋ฐ์ดํ„ฐ ์ถ”์ƒํ™” ๋ชจ๋ธ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์กฐ์ง๋˜๊ณ  ๊ตํ™˜๋˜๋Š”์ง€ ์ •์˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— BLE ๋ฐ์ดํ„ฐ ์ „์†ก์˜ ๊ทผ๊ฐ„์ด๋‹ค.

์ €์ „๋ ฅ ๋ธ”๋ฃจํˆฌ์Šค ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋Š” ์ƒ์œ„ ๊ณ„์ธต

 

 

5. GAP : ์ผ๋ฐ˜ ์•ก์„ธ์Šค ํ”„๋กœํŒŒ์ผ

Generic Access Profile

 

๋””๋ฐ”์ด์Šค๊ฐ€ ์‹ค์ œ ํ”„๋กœํ† ์ฝœ ์Šคํƒ ์™ธ๋ถ€์˜ ํ•˜์œ„ ์ˆ˜์ค€์—์„œ ์–ด๋–ป๊ฒŒ ์„œ๋กœ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ํ•  ๊ฒƒ์ธ์ง€ ์ง€์‹œ

์„œ๋กœ ๋‹ค๋ฅธ ์ œ์กฐ์‚ฌ๊ฐ€ ๋งŒ๋“  BLE ๋””๋ฐ”์ด์Šค๋“ค๋ผ๋ฆฌ ์„œ๋กœ ํ˜ธํ™˜๋˜๋„๋ก ํ†ต์‹  ๊ทœ๊ฒฉ์„ ์ œ๊ณตํ•œ๋‹ค.

๋””๋ฐ”์ด์Šค๋“ค์€ GAP์—์„œ ์ œ๊ณต๋˜๋Š” advertiser์™€ observer๋ฅผ ์„ ํƒํ•ด BLE๋„คํŠธ์›Œํฌ๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 


Reference

http://www.ktword.co.kr/word/abbr_view.php?m_temp1=5443 

https://devgunho.tistory.com/entry/Bluetooth-ATT-and-GATT

https://enidanny.github.io/ble/ble-att-gatt/

https://yonghyunlee.gitlab.io/temp_post/BLE/

 

 

LIST

๋Œ“๊ธ€