35
USB langattomassa lähiverkossa Diplomityöseminaariesitelmä 2.6.2005 Antti Huopaniemi [email protected] 040-5000495

USB langattomassa lähiverkossa

  • 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

Page 1: USB langattomassa lähiverkossa

USB langattomassa lähiverkossa

Diplomityöseminaariesitelmä2.6.2005

Antti [email protected]

040-5000495

Page 2: USB langattomassa lähiverkossa

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ä?

Page 3: USB langattomassa lähiverkossa

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?

Page 4: USB langattomassa lähiverkossa

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?

Page 5: USB langattomassa lähiverkossa

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

Page 6: USB langattomassa lähiverkossa

USB-”oheislaite”

Page 7: USB langattomassa lähiverkossa

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!

Page 8: USB langattomassa lähiverkossa

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

Page 9: USB langattomassa lähiverkossa

USB-laitteen ohjelmarajapinnat

Device

Configuration 1

Configuration 2

Interface 1

Interface 2

Interface 1

Pipe

Pipe

Pipe

Page 10: USB langattomassa lähiverkossa

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

Page 11: USB langattomassa lähiverkossa

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)

Page 12: USB langattomassa lähiverkossa

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

Page 13: USB langattomassa lähiverkossa

Microsoft Windows 2000/XP I/O-komponentit

Lähde: Solomon & Russinovich: Inside Microsoft Windows 2000, s. 528

Page 14: USB langattomassa lähiverkossa

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

Page 15: USB langattomassa lähiverkossa

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

Page 16: USB langattomassa lähiverkossa

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

Page 17: USB langattomassa lähiverkossa

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

Page 18: USB langattomassa lähiverkossa

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

Page 19: USB langattomassa lähiverkossa

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

...

Page 20: USB langattomassa lähiverkossa

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

Page 21: USB langattomassa lähiverkossa

Microsoft Windows 2000/XP USB-ajuripinot

Lähde: Microsoft Windows Driver Development Kit

Page 22: USB langattomassa lähiverkossa

Microsoft Windows 2000/XP USB-laiteobjektipinot

Lähde: Microsoft Windows Driver Development Kit

Page 23: USB langattomassa lähiverkossa

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

Page 24: USB langattomassa lähiverkossa

Digi International AnyWhere USB

Lähde: Digi International AnyWhere USB-esite

Page 25: USB langattomassa lähiverkossa

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

Page 26: USB langattomassa lähiverkossa

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ö!

Page 27: USB langattomassa lähiverkossa

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

Page 28: USB langattomassa lähiverkossa

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

Page 29: USB langattomassa lähiverkossa

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)

Page 30: USB langattomassa lähiverkossa

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

Page 31: USB langattomassa lähiverkossa

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

Page 32: USB langattomassa lähiverkossa

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

Page 33: USB langattomassa lähiverkossa

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

Page 34: USB langattomassa lähiverkossa

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.

Page 35: USB langattomassa lähiverkossa

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.