Tartalmi kivonat
Mobil Távközlési és Informatikai Laboratórium BME-HIT Bluetooth mérési útmutató 1. mérés Mérés helye: Híradástechnikai Tanszék Mobil Távközlési és Informatikai Laboratórium I.B113 Összeállította: Schulcz Róbert Füredi Gábor Lengyel Gábor Szabó Árpád Utolsó módosítás: 2004-09-28. Bevezető 1998-ban került kidolgozásra a viking vezérről elnevezett Bluetooth technológia. Az ötlet megvalósítóinak fejében a cél egy olyan rádiós átviteli technológia megvalósítása volt, amely olcsó, gyors, kis fogyasztású és könnyen lehet vele ad hoc hálózatokat létrehozni. A Bluetooth technológiai specifikációban a kommunikációhoz szükséges, minden részletre kiterjedő megoldásokat dolgoztak ki többek között olyan cégek, mint az IBM, Intel, Nokia, Ericsson. Napjainkban igen elterjedtnek mondhatók a mobiltelefonok, PC-k, laptopok, PDA-k. Az ezek közötti gyors, problémamentes adatátvitel, információtovábbítás szinte
már létszükségletté vált, és a Bluetooth lassan mindenki számára bebizonyítja, hogy megbízható megoldást nyújthat az információs társadalom szereplői számára. A Bluetooth rádiós kapcsolat a 24 Ghz-es ISM sávban zajlik, ennek segítségével vezetékek nélkül szervezhetők hálózatba különböző számítógépes perifériák, ill. mobil eszközök A csomagkapcsolt kommunikáció során a fading, és interferencia zavaró hatását elkerülendő, lassú frekvencia-ugratást (Slow Frequency Hopping - SFH) használnak a BT készülékek. A bitsebesség 1 Mb/s, a névleges résidő 625 µs, a névleges ugratási sebesség tehát 1600 / s, egy rés tehát elvileg maximum 625 bitből állhatna. Legegyszerűbb esetben egy rádiós csomag egy résből áll, de bizonyos esetekben a csomagméret maximálisan 5 résidőig növelhető. Aszinkron kapcsolat esetén (lásd lejjebb) a csomagok 3, vagy 5 résidőt is lefoglalhatnak, ilyenkor a frekvenciaugratás miatt a
következő csomag frekvenciája f+3, ill. f+5 lesz, de a csomagküldés közben nem változik a vivőfrekvencia! Alapesetben a BT készülékek egy piconetet képeznek, amelyben 1 mester, és legfeljebb 7 aktív szolga készülék vehet részt. A szolgák csak a mesterkészülékkel kommunikálnak, azon keresztül folyik az adatok továbbítása. Egy készülék egyszerre több piconet aktív tagja is lehet, pl. az egyikben mester, egy másikban szolga szerepet tölt be Ilyenkor scatternetről beszélünk. Minden piconethez egyedi frekvencia-ugratási sorozat, és szinkronizálás tartozik Egy piconet több, mint 8 készülékből állhat, ekkor bizonyos tagok nem vehetnek részt aktívan adatcserében, ezek parkoló állapotban vannak. Csak a szinkronizáló jeleket dolgozzák fel, hogy aktiválás esetén egyből kommunikálni tudjanak a mesterrel, és addig vehetnek részt adatcserében, amíg az aktív szolgák száma 7 alá nem csökken. A mester- és a szolgakészülékek
közötti összeköttetés kétféle lehet. A szinkron kapcsolatorientált (Synchronous Connection Oriented - SCO) esetben a mester pontosan egy szolgával kommunikál. Ez valós idejű adatok duplex átvitelére alkalmas (pl beszéd) Egy szolga és egy mester között egyszerre legfeljebb három SCO csatorna létesülhet. Az aszinkron kapcsolatnélküli (Asynchronous Connectionless - ACL) esetben a mester az összes, adott piconetben található aktív szolgával kommunikál. Midkét változat esetén a csomag hozzáférési kódból, fejrészből és információs szakaszból állhat, a hozzáférési kód minden esetben szerepel, a többiek nem, pl. hívásfogadás kezdetén, vagy híváskezdeményezéskor nincs se fejrész, se információs rész. A Bluetooth Protocol Stack felépítése az alábbi ábrán látható. Bluez – Linux Bluetooth Stack 1. Általános ismeretek Ezen a mérésen a Bluez-zal (a Linux Bluetooth Protocol Stack nyílt forráskódú implementációja)
dolgozunk, alkalmazásához 2.44-es vagy annál újabb linux kernel szükséges. A Bluez-ról áttekintést nyújt a következő ábra: BlueZ áttekintés (Forrás: Bluez-Howto) Host Controller Interface (HCI): lehetővé teszi a Bluetooth-chip függvényeinek elérését szabványosított, interfészfüggetlen módon. Logical Link Control and Adaptation Protocol (L2CAP): A Bluetooth Protocol Stack adatkapcsolati rétege. Az L2CAP az alapsávi protokoll (Baseband Protocol) felett helyezkedik el. A felsőbb rétegek számára nyújt kapcsolat-orientált, vagy kapcsolatnélküli összeköttetést A magasabb szintű protokollok max. 64 kbyte méretű L2CAP csomagokat kapnak ettől a rétegtől. Az L2CAP feladata a csomagok szegmentálása, összerakása Az alapsávi réteg számára kétféle kapcsolatot biztosít: SCO (Synchronous Connection-Oriented) pl. real-time beszédátvitelre, ill ACL (Asynchronous Connection-Less) kapcsolatot best effort hálózati szolgáltatással. 1.1 A
kernelmodulok betöltése A Bluez kernelmoduljait egymás után, az alsóbb rétegektől kezdve kell betölteni 1.11 Host Controller Interface Először a HCI-modulokat töltjük be modprobe hci usb (USB készülékekhez) modprobe bluez probléma esetén megtekinthetjük a megfelelő rendszerüzeneteket a /var/log/messages könyvtárban (pl. tail –f /var/log/messages) Ha sikeres volt a modul betöltése, akkor a HCIinterfész (itt hci0) a hciconfig hci0 up paranccsal indítható. A hciconfig hci0 parancs segítségével lekérdezhető az interfész állapota, amely leírás a következőhöz hasonló felépítésű: hci0: Type: USB BD Address: 00:80:37:14:42:7D ACL MTU: 672:10 SCO: MTU 255:255 UP RUNNING NORMAL PSCAN ISCAN RX bytes:69 ac1:0 sco:0 events:8 errors:0 TX bytes:31 ac1:0 sco:0 commands:8 errors:0 ahol a BD Address a Bluetooth készülék MAC-címe. A hciconfig segítségével megadhatunk egy nevet is, így fogja látni a többi Bluetooth-készülék a notebookot. A
névadás a következő módon történik: hciconfig hci0 name <név> Ezen kívül a hciconfig kínál egy egyszerű interfészt a Bluetooth-chip konfigurálásához. A hciconfig –h segítségével megtekinthetjük a lehetséges paramétereket. Ezáltal pl a features és a version segítségével kitalálhatóak különböző információk a chip-ről. Még egy hasznos parancs a hcitool, aminek segítségével információt szerezhetünk szomszédos készülékekről. Lehetnek felépített kapcsolatok, a con paranccsal a meglevő kapcsolatok lehet kilistázni. A HCI-réteg aktivitását nyomon követhetjük a hcidump segítségével: hcidump <-i hciX> [-h] a) Feladat: Nézze meg a Bluetooth-chip verzióját. Keresse meg a közelében lévő Bluetooth készülékeket és találja ki azok címét is. 1.12 L2CAP interfész Ezekután kell betölteni az L2CAP modult: modprobe l2cap Hogy az adatkapcsolati réteg működését tesztelje, küldjön egy ping-csomagot a másik
notebook-ra a következő parancs segítségével l2ping [-s size] [-c count] [-f] <bd addr> Ha eközben fut a hcidump, akkor megfigyelheti a HCI-rétegbeli eseményeket. Az adatátviteli sebesség mérésére használja az l2test parancsot, mely az l2cap réteg szintjén történő tesztelésre szolgál. l2test <mód> [-I imtu] [-O omtu] [bd addr] A paraméterek jelentése a következő: • mód: – -r – receive (kiszolgáló mód), csomagok fogadására – -s – send (kliens mód), csomagok küldésére • -I – a legnagyobb elfogadott bejövő csomag mérete (MTU, max transmission unit) • -O – a legkisebb szükséges kimenő csomagméret Mivel a hardver és a szoftver is még fejlesztés alatt áll, ezért előfordulhat, hogy egy Bluetooth készülék nem lesz elérhető. Ebben az esetben segíthet a hardver újraindítása a hciconfig hci0 reset és a hciconfig hci0 up parancsok segítségével. Ha egy kernel-modullal van probléma, akkor az rmmod
segítségével eltávolíthatjuk a modult, majd az insmod vagy modprobe paranccsal újra betölthetjük azt. b) Feladat: A ping-csomag elküldése előtt az LMP (Link Manager Protocol) felépít egy kapcsolatot az adatkapcsolati síkon, és ezáltal a készülékek egy pikonetet képeznek. Melyik lesz a master és melyik a slave ebben a pikonetben? c) Feladat: a ping-folyam közben távolodjon el a másik notebook-tól és állapítsa meg kb. mekkora a hatótávolsága a Bluetooth készülékeknek. d) Feladat: az l2test program segítségével mérje meg az adatátviteli sebességet. 2. A Nokia 7650 telefon 2.1 Beállítások A telefon menüje a kijelző alatt balra található Menu gombbal érhető el. A mérési feladatok sikeres elvégzéséhez ellenőrizendők a következő beállítások a Csatlakozás (Connect) mappában: • Bluetooth: Be (On) ! engedélyezi a Bluetooth használatát • A telefon láthatósága (My phones visibility): Mindnek látható (Shown to all)!
lehetővé teszi, hogy a telefont a többi Bluetooth készülék keresés során megtalálja (discovery) • Saját Bluetooth név (My Bluetooth name): Nokia7650 ! a többi készülék ilyen néven fogja látni a telefont Mind adatküldésnél, mind fogadásnál meg kell történnie az adatcserében részt vevő készülékek párosításának. Ennek során egy tetszőleges hosszúságú PIN kódot kell megadni, természetesen mindkét oldalon ugyanazt a kódot, amellyel autentikálják magukat a felek, hogy ők jogosultak a kommunikációban való részvételre. A küldés vagy fogadás után a Bluetooth kapcsolat automatikusan megszakad. 2.2 Adatok küldése notebookra A küldendő adatot (például képet) kiválasztva az Opciók/Küldés/Bluetooth-on menüponttal kezdeményezhető a küldés. Ekkor a megfelelő távolságon belül lévő eszközök megjelennek a kijelzőn, és megkezdhető az adat továbbítása. Mielőtt küldeni tudnánk a notebooknak adatot, fel kell
készíteni azt a bejövő adatok fogadására. Ezt az sdptool segítségével tehetjük meg, ahol beállíthatjuk, hogy melyik csatornán kezd el figyelni a készülék: sdptool add –channel=10 OPUSH A fenti paranccsal például a 10-es csatornán object push típusú műveletet vár a készülék. Ezután az obexserver-t elindítva (OBEX: Object Exchange) lehetővé válik a telefonról a notebookra tetszőleges adat továbbítása. a) Feladat: készítse fel a notebookot a telefonról érkező adatok fogadására, majd próbaképpen küldjön egy jpg fotót a 7650-ről. 2.3 Adatok küldése 7650-re Ahhoz, hogy a telefonra tudjunk küldeni adatot, az rfcomm és az ussp push utasításokra lesz szükségünk. Az RFCOMM segítségével emulálhatunk RS232 soros portos csatlakozást az L2CAP protokoll felett. Az RFCOMM protokoll két Bluetooth készülék között egyidejűleg legfeljebb 60 kapcsolatot biztosít, hogy ebből mennyit használhat a két készülék, az már
implementáció-függő. Az rfcomm utasítással fel tudunk építeni egy kapcsolatot valamely Bluetooth készülékkel, ha ismerjük annak BT címét. Ezután az ussp push segítségével már könnyen tudunk adatot küldeni a 7650-re, ahol a bejövő adatok az Üzenetek alkalmazás Bejövő mappájába kerülnek. Amennyiben nem található a notebookon az ussp push, azt a http://www.unrootednet/hacking/bluez-rfcomm-obexhtml oldalról letölthetjük b) Feladat: készítse fel a notebookot adat küldésére, majd küldjön egy tetszőleges jpg formátumú képet a 7650-re. Ellenőrző kérdések - Ismertesse a Bluetooth piconetek jellemzőit! - Rajzolja fel a Bluetooth Protocol Stack szerkezetének ábráját! - Mutassa be a mester- és szolgakészülékek közötti összeköttetések típusait! - Írja le egy csomag felépítését! - Mi a HCI, és milyen utasítással lehet konfigurálni? - Mire szolgál az RFCOMM protokoll? - Mi az L2CAP szerepe?