Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

USB langattomassa lähiverkossa

VIEWS: 17 PAGES: 35

									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-”oheislaite”
                                 USB-topologia

                                            Host

                                          Root Hub                                    Tier 1




                                                                                      Tier 2
                                            Hub 1



                                  Hub 2               Function         Function       Tier 3




                 Hub 3            Hub 4             Function         Function         Tier 4



                                                                                      Tier 5
            Function              Hub 5            Function



                                                                                      Tier 6
                         Hub 6               Hub 7
                                                                 Compound
                                                                 Device


                                                        Function                      Tier 7
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-laitteen ohjelmarajapinnat
       Device

         Configuration 1


                Pipe

                        Interface 1



                 Pipe

                        Interface 2




         Configuration 2


                Pipe

                        Interface 1
                              USB I/O

                                        Client
                                                               Data
                                        Software


                                                                         USBD Interface
                                                               IRPs


                                            USBD


                                                                         HCD Interface



                                            HCD              Transfers




                              Transaction
                                                              Trans-
                                 Transaction List             actions


                                             Transaction




IRP: I/O Request Packet

USBD: USB Driver                       Host
                                       Controller
HCD: Host Controller Driver
                                                              Packets



                                        USB



                                                      Lähde: Universal Serial Bus Protocol Specification, s. 59
                                            USB I/O


                       Pipe                                   Pipe




IRP 1    Transaction    Transaction   Transaction   IRP 2    Transaction   Transaction   Transaction
            1-0            1-1           1-2                    2-0           2-1           2-2




            Token, Data       Token, Data                         Token, Data    Token, Data
 Frame      Handshake         Handshake              Frame        Handshake      Handshake
   1          (1-0)             (2-0)                  2            (2-1)          (1-1)




                                                     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
                          The System Call Interface




                                                                                   Kernel
 Process        Memory           File-           Device         Networking         subsystems
 mgmt           mgmt             systems         control



Concurrency,    Virtual         Files and       Ttys and       Connectivity        Features
multitasking    memory          directories:    device                             implemented
                                the VFS         access

                                File system                     Network
 Architecture   Memory                          Character
                                types                           subsystems
 independent    manager                         devices                            Software
 code                                                                              support
                                Block                           IF drivers
                                devices




                                  Disks          Consoles        Network
   CPU          Memory
                                  and            etc.            interfaces
                                  CDs


                                                      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 – devfs

                                             Header Files


          fd                          f_op
                   File                      Device and
Process
                   Object                    Driver Identification


                                             USB Device
                           f_dentry
                                             Structure


                  Dentry                     Probe Function
                  Object

                                             Disconnect Function
                           d_inode


                                             Open Function
                  Inode
                  Object
                                             Read Function
                            i_sb
                                             Write Function
                 Superblock
                 Object
                                             Release Function


                                             Delete Function


                    Disk                     Supported VFS
                    File                     File Operations


                                             USB Device Driver
                                             Definition


                                             Initialization and Exit
                                             Functions                 Device Driver
          Linux I/O – pre devfs
           fd                        f_op
                  File                            Device
Process
                  Object                          Driver
                                                           open
                                             fops
                          f_dentry                         read
                                                           write
                                                           release
                 Dentry
                 Object


                          d_inode
                                             def_blk_fops
                                             (def_chr_fops)
                                      f_op
                 Inode                                     open
                                             fops
                 Object
                                                           read
                                                           write
                           i_sb
                                                           release

                Superblock
                Object
                                                  blkdevs
                                                  (chrdevs)

                                                           name
                                              1
                                                           fops
                   Disk
                   File                                    name
                                              2
                                                           fops
                                                   ...
Esimerkki uudelleenohjauksesta – Microsoft CIFS

                            Client
                            application

                            Kernel32.dll


                             Ntdll.dll
   User Mode                                                                              User Mode


   Kernel Mode                                                                            Kernel Mode

                 Cache       Redirector                    Cache
                                                                            Server FSD
                 Manager       FSD                         Manager




                           Protocol driver                Protocol driver   Local FSD
                           (TDI transport)                (TDI transport)   (NTFS, FAT)



                                              Network
                                                                               Disk




                                           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
Linux USB-alijärjestelmä
                                    Applications


  User-space libraries:
  jUSB, libusb


                               System Call Interface                                       User Space


                      VFS                                                                  Kernel Space

                                                                Net               ioctls
  Block Devices           Char Devices                          Devices


                      USBFS


                          USB Device Drivers / Class Drivers


                                      USB Core


  UHCI Host Controller           OHCI Host Contoller           EHCI Host Controller
        Driver                         Driver                        Driver


                                   PCI Bus Driver
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

              Client                                         Server
                               Virtual Connection
                                 Management
      Device Control Manager                          Device Control Manager




      USB Device Drivers                                    Stub Driver
                                USB Requests

      USB Core Driver                                    USB Core Driver


     Virtual Host Controller
                                                      USB Host Controller Driver
     Interface (VHCI) Driver




                                                        USB Host Controller




Vain Linux-ympäristö!
                                                           USB Devices




                                                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

                  IP           Non-IP         Other          Peripheral
                  Networking   Peer-to-Peer   Applications   Interconnect
                  (UPnP)       (W1394)                       (WUSB)




                                 Convergence Layer                          WiMedia

       Common
         UWB
        Radio                  IEEE 802.15.3 UWB MAC
       Platform                                                             MBOA

                               IEEE 802.15.3a UWB Phy



                                                                                      Lähde: Intel Corporation
                                Esitetty ratkaisu

Service Discovery / Access Control Client   Service Discovery / Access Control Server


        System Call Interface                       System Call Interface



 File System Driver                                                File System Driver



   USB Device/                                                         Remote USB
                            TCP/IP                TCP/IP                                  Function
   Class Drivers                                                       Device Driver


  Remote USB                                                       USB Bus/Host
  Bus / Host             Network Driver       Network Driver                            USB Logical
                                                                   Controller           Device
  Controller Driver                                                Driver


               PCI Bus                                       PCI Bus


                           Network               Network
                                                                          USB Host
                           Interface             Interface                                USB Bus
                                                                          Controller
                           Card                  Card                                     Interface



               Client                                        Server                     USB Device
                           Esitetty ratkaisu
Service Discovery / Access Control Client               Service Discovery / Access Control Server


        System Call Interface                                   System Call Interface



 File System Driver                                                            File System Driver



   USB Device/                                                                     Remote USB
                              TCP/IP                          TCP/IP                                  Function
   Class Drivers                                                                   Device Driver


  Remote USB                                                                   USB Bus/Host
  Bus / Host                                                                                        USB Logical
                          Network Driver                  Network Driver       Controller
  Controller Driver                                                                                 Device
                                                                               Driver


               PCI Bus                                                   PCI Bus


                            Network                          Network
                                                                                      USB Host        USB Bus
                            Interface                        Interface                Controller
                            Card                             Card                                     Interface



               Client                                                    Server                     USB Device

                      Pipe Bundle (to an interface)

                      Default Pipe (to Endpoint Zero)
Palvelun löytäminen ja varaaminen

Service Discovery / Access Control Client   Service Discovery / Access Control Host


        System Call Interface                       System Call Interface



 File System Driver                                                File System Driver



   USB Device/                                                         Remote USB
                            TCP/IP                TCP/IP                                  Function
   Class Drivers                                                       Device Driver


  Remote USB
  Bus / Host             Network Driver       Network Driver             USB Core       USB Logical
  Controller Driver                                                                     Device


               PCI Bus                                       PCI Bus


                           Network               Network                  USB Host
                           Interface             Interface                                USB Bus
                                                                          Controller
                           Card                  Card                                     Interface



               Client                                        Server                     USB Device
                        Putken laajentaminen
Service Discovery / Access Control Client   Service Discovery / Access Control Host


        System Call Interface                       System Call Interface



 File System Driver                                                File System Driver



   USB Device/                                                         Remote USB
                            TCP/IP                TCP/IP                                  Function
   Class Drivers                                                       Device Driver


  Remote USB
  Bus / Host             Network Driver       Network Driver             USB Core       USB Logical
  Controller Driver                                                                     Device


               PCI Bus                                       PCI Bus


                           Network               Network
                                                                          USB Host        USB Bus
                           Interface             Interface                Controller
                           Card                  Card                                     Interface



               Client                                        Server                     USB Device
             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
                                            Tietoturva

Service Discovery / Access Control Client     Service Discovery / Access Control Host


        System Call Interface                         System Call Interface



 File System Driver                                                  File System Driver



   USB Device/              TCP/IP                  TCP/IP               Remote USB         Function
   Class Drivers                                                         Device Driver


  Remote USB
  Bus / Host                                                                              USB Logical
                         Network Driver         Network Driver             USB Core
  Controller Driver                                                                       Device


               PCI Bus                                         PCI Bus


                           Network                 Network                  USB Host
                           Interface               Interface                                USB Bus
                                                                            Controller      Interface
                           Card                    Card



               Client                                          Server                     USB Device
                              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.

								
To top