350 likes | 490 Views
USB langattomassa lähiverkossa. Diplomityöseminaariesitelmä 2.6.2005 Antti Huopaniemi antti.huopaniemi@pp.inet.fi 040-5000495. Motivaatio. kotona langaton lähiverkko kannettavat työasemat: Windows 2000, Windows XP/Linux, Linux, myös yksi PDA
E N D
USB langattomassa lähiverkossa Diplomityöseminaariesitelmä 2.6.2005 Antti Huopaniemi antti.huopaniemi@pp.inet.fi 040-5000495
Motivaatio • kotona langaton lähiverkko • kannettavat työasemat: Windows 2000, Windows XP/Linux, Linux, myös yksi PDA • erinäisiä USB-laitteita: monitoimikone (tulostin/skanneri/faksi/kopiokone), CD-polttoasema, digikamera • USB-laitteen käyttö vaatii fyysisen liittämisen, kömpelöä • miksei yleiskäyttöistä langatonta USB:tä?
Kysymyksiä • onko ylipäätänsä mahdollista toteuttaa USB langattomassa lähiverkossa? • mitä esteitä tai rajoituksia langaton lähiverkko aiheuttaa? • mitä tarvitaan USB:n toteuttamiseksi langattoman lähiverkon yli? • miten paikallisesti liitetylle USB-laitteelle tarkoitettu data voidaan ohjata verkkoon? • suorituskyky, viive, luotettavuus, tehokkuus? • hallinta, samanaikaisuus? • voiko langattomassa lähiverkossa oleva USB-laite toimia ikään kuin se olisi paikallisesti liitetty (samat laiteajurit, ei muutoksia sovelluksiin)? Miten tässä tapauksessa tietoturva ja palvelujen löytäminen?
Työhön... Ei halutunlaista ratkaisua olemassa, joten: • selvitä, miten USB toimii • selvitä, miten I/O toimii Windows 2000/XP ja Linux-käyttöjärjestelmissä • selvitä, miten em. käyttöjärjestelmät tukevat USB:tä ja miten USB-laitteet tulevat osaksi käyttöjärjestelmän kytke-ja-käytä-, virranhallinta- ja valvontatomintoja • datan ohjaus verkkoon paikallisen laitteen sijasta toteutettu verkkokäyttöjärjestelmissä, voiko hyödyntää? • voiko hyödyntää olemassa olevia palvelunhakuprotokollia? • voisiko ongelman ratkaista jollakin muulla verkkoteknologialla?
USB-väylä • teollisuusstandardi oheislaitteiden liittämiseksi tietokoneisiin • monipuolinen mutta yksinkertainen, halpa, suorituskykyinen • 1,4 miljardia USB-laitetta toimitettu helmikuuhun 2003 mennessä, arvio 4,3 miljardia USB-laitetta vuoteen 2007 mennessä, vuonna 2007 arvoidaan toimitettavan 860 miljoonaa laitetta (Lähde: In-Stat/MDR, helmikuu 2003) • väylän nopeudet: low-speed: 1,5 Mbit/s, full-speed: 12 Mbit/s ja high-speed: 480 Mbit/s • kaapelin maksimipituus: 5 m (3 m low-speed), voi syöttää myös virran laitteelle (5 V, max 500 mA) • käyttötarkoitukset: kaiuttimet, mikrofonit, puhelimet, modeemit, näppäimistöt, hiiret, tabletit, ohjainsauvat, keskittimet, digitaalikamerat, muistitikut, CD/DVD-asemat, tulostimet, skannerit
USB-topologia max. 127 laitetta! Lähde: Universal Serial Bus Protocol Specification, s. 16
USB-siirtomenetelmät • halllinta (control transfer): oheislaitteen hallintaan ja määritysten asettamiseen/lukemiseen, ei datan siirtoon. Tiedonsiirto luotettava. • bulkki (bulk transfer): ei-aikakriittiseen tiedonsiirtoon, motto: ”siirrä, kun ehdit”. Tiedonsiirto luotettava. Esimerkki: tulostimet, skannerit • keskeytys (interrupt transfer): periodinen, rajoitettu latenssi. Tiedonsiirto luotettava. Esimerkki: näppämistöt, hiiret • isokroninen (isochronous transfer): periodinen, ennalta sovittu kaistan tarve ja latenssi. Virhetilanteessa ei uudelleenlähetystä, oletuksena pieni bittivirhetiheys. Esimerkki: multimediasovellukset
USB I/O Lähde: Universal Serial Bus Protocol Specification, s. 59
USB I/O Lähde: Universal Serial Bus Protocol Specification, s. 63
Langattomat lähiverkot • eli WLAN • IEEE 802.11-standardi • 802.11a: max. nopeus 54 Mbit/s, toimii 5 GHz-taajuudella, modulointi OFDM • 802.11b: max. nopeus 11 Mbit/s, toimii 2.4 GHz-taajuudella, modulointi DSSS. Tunnetaan myös nimellä Wi-Fi. • 802.11g: max. nopeus 54 Mbit/s, toimii 2.4 GHz-taajuudella, modulointi joko DSSS tai OFDM. • tietoturva: WEP, TKIP, CCMP, IEEE 802.1X
Microsoft Windows 2000/XP I/O-komponentit Lähde: Solomon & Russinovich: Inside Microsoft Windows 2000, s. 528
Microsoft Windows 2000/XP I/O • kaikki laite-I/O kohdistuu virtuaalitiedostoihin • jokaisella tiedostolla tiedosto-objekti, joka sisältää mm. attribuutit tiedostonimi ja laiteobjekti • laiteobjekti esittää laitetta järjestelmässä. Laiteobjektissa viittaus ajuriobjektiin, joka sisältää tarvittavat tiedostojärjestelmän operaatiot (avaa, sulje, lue, kirjoita,...) • PDO (Physical Device Object): USB-väylän ja väyläajurin näkemä laitteen laiteobjekti • FDO (Functional Device Object): laiteajurin näkemä laitteen laiteobjekti • FiDO (Filter Driver Object): suodatinajurin näkemä laitteen laiteobjekti
Microsoft Windows 2000/XP I/O Lähde: Solomon & Russinovich: Inside Microsoft Windows 2000, s. 598 Oney: Programming the Microsoft Windows Driver Model, s. 85
Linux-ydin Lähde: Rubini & Corbet: Linux Device Drivers, s. 5
Linux I/O • jokaisella tiedostolla tiedosto-objekti, joka sisältää viittauksen (f_op) VFS-tiedosto-operaatioihin, joita laite tukee • versio 2.4 ja uudemmissa /devfs-virtuaalitiedostojärjestelmä VFS:n alla, jolloin tiedosto-objekti viittaa suoraan laiteajurin listaan toteutetuista VFS-operaatioista, VFS-operaatiot kohdistetaan virtuaalitiedostoon • vanhemmissa monimutkaisempi ratkaisu: fyysiset laitetiedostot, laitteen tunnistus pää- ja alinumeroiden (major number/minor number) avulla
Linux I/O – pre devfs fd f_op File Object Device Driver Process open fops f_dentry read write release Dentry Object d_inode def_blk_fops (def_chr_fops) f_op Inode Object open fops read write i_sb release Superblock Object blkdevs (chrdevs) 1 name fops Disk File name 2 fops ...
Esimerkki uudelleenohjauksesta – Microsoft CIFS Lähde: Solomon & Russinovich: Inside Microsoft Windows 2000, s. 804
Microsoft Windows 2000/XP USB-ajuripinot Lähde: Microsoft Windows Driver Development Kit
Microsoft Windows 2000/XP USB-laiteobjektipinot Lähde: Microsoft Windows Driver Development Kit
Digi International AnyWhere USB Lähde: Digi International AnyWhere USB-esite
Cypress WirelessUSB • SoC (System-on-a-Chip), joka voidaan integroida USB-laiteohjaimiin • toimii 2,4 GHz-taajuudella • nopeus 62,5 kbit/s • kantama 10-50 m riippuen mallista • tuki vain HID-laitteille Lähde: Cypress WirelessUSB LS Radio Module Datasheet
NAIST USB/IP Project Vain Linux-ympäristö! Lähde: NAIST USB/IP Project – WWW-sivu
Wireless USB (WUSB) • USB-väylän laajennus nopeaan langattomaan verkkoon • käyttää UWB-teknologiaa, taajuusalue 3.1-10.6 GHz • max. nopeudella 480 Mbit/s kantama 3 m, 110 Mbit/s-nopeudella kantama 10 m • tietoturva ja virranhallinta huomioitu • yhteensopiva langallisen USB:n kanssa Lähde: Intel Corporation
Suorituskyky ja luotettavuus • langattoman lähiverkon käytännön nopeus vain noin puolet nimellisnopeudesta <-> USB full-speed (12 Mbit/s) ja high-speed (480 Mbit/s) • seuraukset alhaisemmasta nopeudesta ja latenssista? • USB-spesifikaation määrittelemät maksimiviiveet • hallintaputket: ok, eivät aikakriittisiä • bulkkiputket: ok, eivät aikakriittisiä. Ylikuormitus? • keskeytysputket: toimivat, mutta eivät ehkä täytä käyttäjän vastevaatimuksia • isokroniset putket: ongelmallisia, viive ja ylikuormitus? • sovelluksen ja laiteajurin ajastimet? • luotettavuus: TCP kuljetusprotokollana, uudelleenlähetys virhetilanteessa
Johtopäätökset • onko ylipäätänsä mahdollista toteuttaa USB langattomassa lähiverkossa? • kyllä, vrt. NAIST USB/IP Linux-ympäristössä. Windows-ympäristössä dokumentoimattomat funktiot ja tietorakenteet saattavat tuottaa ongelmia. • mitä esteitä tai rajoituksia langaton lähiverkko aiheuttaa? • aikakriittiset sovellukset, jotka hyödyntävät keskeytys- ja isokronista siirtoa, eivät ehkä toimi halutulla tavalla. Yleensäkin suurta hetkellistä kaistanleveyttä vaativa siirto ongelmallinen. • mitä tarvitaan USB:n toteuttamiseksi langattoman lähiverkon yli? • esitetty ratkaisussa • miten paikallisesti liitetylle USB-laitteelle tarkoitettu data voidaan ohjata verkkoon? • esitetty ratkaisussa • suorituskyky, viive, luotettavuus, tehokkuus? • USB-spesifikaation viivevaatimukset täyttyvät. Laiteajurien ja sovelluksien viiveen sieto? Luotettavuus saavutetaan TCP-kuljetusprotokollalla suorituskyvyn kustannuksella.
Johtopäätökset • hallinta ja samanaikaisuus? • toteutettava yhteistyönä Service Discovery/Access Control- ja Remote USB Bus/Host Controller Driver/Remote USB Driver-ohjelmien välillä • voiko langattomassa lähiverkossa oleva USB-laite toimia ikään kuin se olisi paikallisesti liitetty (samat laiteajurit, ei muutoksia sovelluksiin)? Miten tässä tapauksessa tietoturva ja palvelujen löytäminen? • voi, laitteen fyysisen liittämisen sijasta valitaan ohjelmallisesti haluttu resurssi. Laitteen fyysisen irrottamisen sijasta vapautetaan ohjelmallisesti kyseinen resurssi. Nämä toiminnot lataavat/poistavat muistista alkuperäiset laiteajurit. Modifioidut USB-ajurit tukevat käyttöjärjestelmän kytke-ja-käytä-, virranhallinta- ja valvontatoimintoja. • hallinnan helppous ja hyvä tietoturva ristiriitaisia tavoitteita.