Upload
rollo
View
21
Download
0
Embed Size (px)
DESCRIPTION
USB langattomassa lähiverkossa. Diplomityöseminaariesitelmä 2.6.2005 Antti Huopaniemi [email protected] 040-5000495. Motivaatio. kotona langaton lähiverkko kannettavat työasemat: Windows 2000, Windows XP/Linux, Linux, myös yksi PDA - PowerPoint PPT Presentation
Citation preview
USB langattomassa lähiverkossa
Diplomityöseminaariesitelmä2.6.2005
Antti [email protected]
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
Lähde: Universal Serial Bus Protocol Specification, s. 16
Root Hub
Host
Hub 1
Hub 2 Function Function
Hub 3 Function FunctionHub 4
Function FunctionHub 5
Hub 6 Hub 7
Function
CompoundDevice
Tier 1
Tier 2
Tier 3
Tier 4
Tier 5
Tier 6
Tier 7max. 127 laitetta!
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
Configuration 2
Interface 1
Interface 2
Interface 1
Pipe
Pipe
Pipe
USB I/O
ClientSoftware
USBD
HCD
HostController
Data
Transfers
Trans-actions
Packets
IRPs
Transaction
Transaction
Transaction List
USBD Interface
HCD Interface
USB
IRP: I/O Request Packet
USBD: USB Driver
HCD: Host Controller Driver
Lähde: Universal Serial Bus Protocol Specification, s. 59
USB I/O
Lähde: Universal Serial Bus Protocol Specification, s. 63
Pipe Pipe
IRP 1 Transaction1-0
Transaction1-1
Transaction1-2
IRP 2 Transaction2-0
Transaction2-1
Transaction2-2
Frame1
Frame2
Token, DataHandshake
(1-0)
Token, DataHandshake
(2-0)
Token, DataHandshake
(2-1)
Token, DataHandshake
(1-1)
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
Processmgmt
Memorymgmt
File-systems
Devicecontrol
NetworkingKernelsubsystems
Featuresimplemented
Softwaresupport
Architectureindependentcode
Memorymanager
File system types
Blockdevices
Networksubsystems
IF drivers
Characterdevices
Concurrency,multitasking
Virtualmemory
Files anddirectories:the VFS
Ttys anddeviceaccess
Connectivity
The System Call Interface
CPU MemoryDisksandCDs
Consolesetc.
Networkinterfaces
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
ProcessFileObject
DentryObject
InodeObject
SuperblockObject
DiskFile
fd
f_dentry
d_inode
i_sb
f_op
Header Files
Device and Driver Identification
USB Device Structure
Probe Function
Open Function
Read Function
Write Function
Release Function
Disconnect Function
Delete Function
Supported VFS File Operations
USB Device DriverDefinition
Initialization and ExitFunctions Device Driver
Linux I/O – pre devfs
ProcessFileObject
DentryObject
InodeObject
SuperblockObject
DeviceDriver
fopsopen
read
write
release
DiskFile
fd
f_dentry
d_inode
i_sb
f_op
def_blk_fops(def_chr_fops)
fopsopen
read
write
release
blkdevs(chrdevs)
1name
fops
f_op
name
fops2
...
Esimerkki uudelleenohjauksesta – Microsoft CIFS
Client application
Kernel32.dll
Ntdll.dll
CacheManager
RedirectorFSD
Protocol driver(TDI transport)
CacheManager
Server FSD
Protocol driver(TDI transport)
Local FSD(NTFS, FAT)
DiskNetwork
User Mode
Kernel Mode
User Mode
Kernel Mode
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
VFS
ioctls
USBFS
USB Device Drivers / Class Drivers
USB Core
UHCI Host ControllerDriver
OHCI Host ContollerDriver
EHCI Host ControllerDriver
PCI Bus Driver
Net DevicesBlock Devices Char Devices
User Space
Kernel Space
Digi International AnyWhere USB
Lähde: Digi International AnyWhere USB-esite
Cypress WirelessUSB
Lähde: Cypress WirelessUSB LS Radio Module Datasheet
• 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
NAIST USB/IP Project
Lähde: NAIST USB/IP Project – WWW-sivu
Device Control Manager Device Control Manager
USB Device Drivers
USB Core Driver
Virtual Host Controller Interface (VHCI) Driver
Stub Driver
USB Core Driver
USB Host Controller Driver
USB Host Controller
USB Devices
Virtual ConnectionManagement
Client Server
USB Requests
Vain Linux-ympäristö!
Wireless USB (WUSB)
Lähde: Intel Corporation
CommonUWB
RadioPlatform
IEEE 802.15.3a UWB Phy
IEEE 802.15.3 UWB MAC
Convergence Layer WiMedia
MBOA
IPNetworking(UPnP)
Non-IPPeer-to-Peer(W1394)
OtherApplications
PeripheralInterconnect(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
Esitetty ratkaisu
System Call Interface
File System Driver
USB Device/Class Drivers
Remote USBBus / HostController Driver
NetworkInterfaceCard
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Client
System Call Interface
USB Bus/Host ControllerDriver
USB HostController
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Server
NetworkInterfaceCard
Remote USBDevice Driver
USB BusInterface
USB LogicalDevice
Function
Client Server USB Device
File System Driver
Esitetty ratkaisu
System Call Interface
File System Driver
USB Device/Class Drivers
Remote USBBus / HostController Driver
NetworkInterfaceCard
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Client
System Call Interface
USB Bus/Host ControllerDriver
USB HostController
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Server
NetworkInterfaceCard
Remote USBDevice Driver
USB BusInterface
USB LogicalDevice
Function
Client Server USB Device
File System Driver
Pipe Bundle (to an interface)
Default Pipe (to Endpoint Zero)
Palvelun löytäminen ja varaaminen
System Call Interface
File System Driver
USB Device/Class Drivers
Remote USBBus / HostController Driver
NetworkInterfaceCard
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Client
System Call Interface
USB Core
USB HostController
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Host
NetworkInterfaceCard
Remote USBDevice Driver
USB BusInterface
USB LogicalDevice
Function
Client Server USB Device
File System Driver
Putken laajentaminen
System Call Interface
File System Driver
USB Device/Class Drivers
Remote USBBus / HostController Driver
NetworkInterfaceCard
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Client
System Call Interface
USB Core
USB HostController
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Host
NetworkInterfaceCard
Remote USBDevice Driver
USB BusInterface
USB LogicalDevice
Function
Client Server USB Device
File System Driver
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
System Call Interface
File System Driver
USB Device/Class Drivers
Remote USBBus / HostController Driver
NetworkInterfaceCard
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Client
System Call Interface
USB Core
USB HostController
PCI Bus
Network Driver
TCP/IP
Service Discovery / Access Control Host
NetworkInterfaceCard
Remote USBDevice Driver
USB BusInterface
USB LogicalDevice
Function
Client Server USB Device
File System Driver
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.