BLE — kam energiya sarflaydigan qisqa masofali simsiz aloqa texnologiyasi. To‘liq nomi Bluetooth Low Energy. U sensor, fitness bracelet, smart lock, beacon, tibbiy qurilma, klaviatura va IoT mahsulotlarida qo‘llanadi. BLE klassik Bluetooth bilan bir xil 2.4 GHz diapazonida ishlasa ham, protocol va foydalanish modeli farq qiladi.
BLE kichik paketlarni va vaqti-vaqti bilan aloqa qilishni energiya tejamkor tarzda bajarishga mo‘ljallangan.
Central va peripheral
BLE aloqasida qurilmalar rol oladi:
- peripheral — o‘zini e’lon qiladi va service taqdim etadi;
- central — advertisementlarni qidiradi va connection boshlaydi.
Telefon ko‘pincha central, sensor peripheral bo‘ladi.
Qurilma bir vaqtning o‘zida turli connectionlarda boshqa rol olishi mumkin.
Advertisement
Peripheral connection bo‘lmasdan radio orqali qisqa advertisement paket yuboradi.
Unda:
bo‘lishi mumkin.
Advertisement hajmi cheklangan.
Sensitive data ochiq broadcast qilinmaydi.
Scanning
Central atrofdagi advertisementlarni tinglaydi.
Scan:
- active;
- passive;
- filtered;
- low-power;
- low-latency
rejimlarga ega bo‘lishi mumkin.
Doimiy intensiv scan battery sarfini oshiradi va OS tomonidan cheklanishi mumkin.
Connection
Central peripheralga connection request yuboradi.
Connection interval qanchalik tez-tez paket almashilishini belgilaydi.
Qisqa interval past latency, ko‘proq energiya sarfi beradi.
Peripheral latency va supervision timeout ham connection behavioriga ta’sir qiladi.
GAP
Generic Access Profile discovery, advertisement, connection va securityga oid umumiy qoidalarni belgilaydi.
Device role va address tushunchalari GAP bilan bog‘liq.
GAP service data modelidan farq qiladi.
GATT
Generic Attribute Profile connected qurilmalar orasidagi data modelini belgilaydi.
GATT:
- service;
- characteristic;
- descriptor;
- operation
tushunchalariga ega.
Bir qurilma GATT server, boshqasi GATT client bo‘ladi.
Service
Service bir vazifaga tegishli characteristiclar guruhidir.
Masalan:
- heart rate;
- battery;
- device information;
- custom sensor.
Service 16-bit standard yoki 128-bit custom UUID bilan aniqlanadi.
Characteristic
Characteristic qiymat va access propertylarga ega.
Operationlar:
- read;
- write;
- write without response;
- notify;
- indicate.
Har characteristic qaysi operationga ruxsat berishini e’lon qiladi.
Descriptor
Characteristic haqida qo‘shimcha metadata beradi.
Masalan, Client Characteristic Configuration Descriptor notification yoki indicationni yoqish uchun ishlatiladi.
Descriptor ham UUIDga ega.
Barcha characteristic descriptorga ega bo‘lishi shart emas.
Notify va indicate
Notification server qiymat o‘zgarganda clientga yuboradi, protocol darajasida acknowledgement talab qilmaydi.
Indication acknowledgement oladi.
Indication ishonchliroq, lekin throughput pastroq.
Client oldindan subscriptionni yoqadi.
MTU
ATT MTU bitta operationda uzatiladigan payload hajmiga ta’sir qiladi.
Katta MTU throughputni yaxshilashi mumkin.
Negotiated qiymat ikki tomon imkoniyatiga bog‘liq.
Application katta xabarni chunklarga bo‘lishi va qayta yig‘ishi mumkin.
Pairing
Pairing qurilmalar orasida security key yaratadi.
Usullar device input va display imkoniyatiga bog‘liq:
- Just Works;
- passkey;
- numeric comparison;
- out-of-band.
Just Works man-in-the-middle himoyasini cheklashi mumkin.
Bonding
Pairing natijasidagi keylar keyingi connectionlar uchun saqlansa bonding deyiladi.
Qurilma qayta ulanayotganda pairing takrorlanmaydi.
Bond table to‘lsa eski recordlarni boshqarish kerak.
Factory reset keylarni tozalashi mumkin.
Address
BLE public yoki random addressdan foydalanishi mumkin.
Privacy uchun resolvable private address vaqt o‘tishi bilan o‘zgaradi.
Application faqat MAC addressni permanent identity deb qabul qilmasligi kerak.
Bond yoki application-level ID ishlatiladi.
Throughput
Real throughput:
ga bog‘liq.
BLE katta video yoki uzluksiz yuqori bandwidth uchun mo‘ljallanmagan.
PHY
BLE turli physical layer rejimlarini qo‘llashi mumkin:
- 1M;
- 2M;
- coded PHY.
2M tezroq, coded PHY uzoqroq masofa va robustness uchun ishlatiladi.
Barcha device barcha PHYni qo‘llamaydi.
Mobil permission
Android va iOS scan hamda connection uchun permission va lifecycle cheklovlariga ega.
Locationga oid tarixiy bog‘liqlik va yangi nearby-device permissionlari platforma versiyasiga qarab farq qiladi.
Background scan qat’iy cheklanishi mumkin.
Security
Custom characteristicga authentication va authorization qo‘llanadi.
Faqat yashirin UUID security emas.
Xavflar:
Application-level encryption ayrim threat modelda qo‘shiladi.
Connection parameter
Connection interval, peripheral latency va supervision timeout bir-biriga mos bo‘lishi kerak. Timeout juda qisqa bo‘lsa shovqinli muhitda aloqa tez uziladi; juda uzun bo‘lsa uzilgan qurilmani aniqlash sekinlashadi. Telefon OS’i requested parameterlarni aynan qabul qilishi shart emas.
Advertising interval
Tez-tez advertisement qurilmani tezroq topishga yordam beradi, ammo battery ko‘proq sarflanadi. Beacon deploymentda interval va transmit power kerakli masofa hamda batareya umriga qarab tanlanadi.
Service discovery
Connectiondan keyin client service va characteristiclarni topadi. Firmware update GATT structure’ni o‘zgartirsa cached service ma’lumoti eskirishi mumkin. Service Changed indication yoki reconnect jarayoni cache’ni yangilaydi.
Firmware update
BLE orqali OTA firmware bo‘laklarga bo‘lib uzatiladi. Har chunk sequence va checksumga ega bo‘lishi mumkin. Yakuniy image signature bilan tekshiriladi; faqat BLE pairing update’ning haqiqiyligini kafolatlamaydi.
Bog‘liq tushunchalar
Bluetooth Low Energy, BLE, GAP, GATT, Service, Characteristic, Advertisement, Scanning, Pairing, Bonding, IoT