USB langattomassa lähiverkossa

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

USB langattomassa lähiverkossa

Diplomityöseminaariesitelmä2.6.2005

Antti Huopaniemiantti.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

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.

Recommended