44
Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Embed Size (px)

Citation preview

Page 1: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Mobile Systeme und drahtlose Netzwerke

Vorlesung VII

Page 2: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Gliederung

Page 3: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Ziele der Vorlesung

• Bluetooth-Details HCI, SDP und RFCOMM

Page 4: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

SDP Gliederung

1. SDP Protokoll Setup1. Überblick2. PDU Format3. Partial Responses und Continuation4. Error Handling

2. SDP Services1. Service Record2. Service Attribute3. Service Claas

3. Service Discovery1. Searching for Services2. Browsing for Services

4. Daten Repräsentation1. Daten Element Header Feld2. Daten Element Daten Feld

5. Hintergrund Information1. Service Discovery2. Bluetooth Service Discovery

Page 5: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Das Service Discovery-Protokoll

The service discovery mechanism provides the means for client applications to discover the existence of services provided by server applications as well as the attributes of those services. The attributes of a service include the type or class of service offered and the mechanism or protocol information needed to utilize the service.

• SDP ist ein Protokoll, das es Anwendungen gestattet,– verfügbare Dienste (von Geräten) ausfindig zu machen und

– Auch die Eigenschaften dieser Dienste

• Die Attribute der Dienste enthalten – den Typ oder die Klasse des Dienstes und

– den notwendigen Mechanismus oder die Protokollinformationen zur Nutzung des Dienstes

Page 6: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Das Service Discovery-Protokoll

• Insbesondere wichtig für Ad-hoc-Netzwerke: – Geräte können zwar Verbindungen (auf Linkmanager-Ebene) zueinander aufbauen,

erhalten jedoch keine Informationen darüber, welche Dienste verfügbar sind.

• Ist Drucker innerhalb der Richweite?– Nicht aus Bluetooth-Adresse ableitbar

– Eine zentrale Verwaltung der Dienstleistungstabellen, würde den Gedanken des dynamischen Ad-hoc Netzwerkes widersprechen

Gerät muss selbst Informationen über seine Dienste verwalten Aufgabe von SDP

• Die Menge der verfügbaren Dienste ändert sich dynamisch. – Hängt ab von der RF-Nähe der Geräte zueinander, die in Bewegung sind

• Hierin unterscheidet sich das Service Discovery in Ad-Hoc Netzen vom SD in traditionellen netzwerkbasierten Umgebungen.

Page 7: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

SDP im Bluetooth Protokoll Stack

• SDP liegt oberhalb von L2CAP

• PSM (Protocol Service Multiplexer) = 0x0001 in L2CAP PDU´s

(PSM=0x003 für RFCOMM)

L2CAP

HCI

LMP

SDP

PSMLänge CID 0x0002 Nutzdaten (Payload)

MSBLSB16 16 16

Page 8: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

L2CAP Paketformat Wiederholung

• CL connection less

• CO connection-oriented

Page 9: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Gelbe Seiten

• SDP stellt in einer Service-Datenbank die Dienste bereit

• Dienste können auf Anfrage einem dienstwilligen Gerät zur Verfügung gestellt werden

• Dienste werde kategorisiert, hierarchisch gegliedert

• Es sind Informationen verfügbar, wie die Dienste erreichbar sind– Ist folglich kein vermittelnder Dienst (wie D2VODAFONE-Auskunft)

• SDP benötigt Server und Client

Page 10: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

SDP-Kommunikation

SDPClient

SDPServer

SDP request

SDP response

ClientAnwendung

ServerAnwendung

Page 11: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

SDP Protocol Setup

• SDP verwendet ein request/response (client/server) Modell

• PDU Protocol Data Unit

• Jede Transaktion besteht aus einem Request PDU vom Clienten und einem Response PDU von einem Server– Ein SDP Client ist ein Bluetooth

Gerät, das Dienste in seiner Umgebung sucht

– Ein SDP Server ist ein Gerät,das Dienste anbietet

– Informationen über Dienste sind in SDP Datenbank gespeichert

SDPClient

SDPServer

SDP request

SDP response

ClientAnwendung

ServerAnwendung

Page 12: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

SDP Client und Server

• SDP-Client hat Schnittstelle zur Anwendung, die nach Services suchen will.

• Diese Anwendung stellt über den SDP-Client Anfragen an den SDP-Server des Remote-Gerätes.

• SDP-Server muss in der Lage sein, Service-Informationen von Anwendungen bereitzustellen und auf Anfrage, diese dem Client bereitstellen

Page 13: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Lokale Service-Description-Anwendung holt über den SDP-Client Dienstinformationen beim SDP-Server des Remote-Gerätes ab.

BasisbandACL

L2CAP layerCO

SDP

BT_module_Cntrl

SrvDscApp

LM

BasisbandACL

L2CAP layerCO

SDP

RemSrvApp

LM

Service-Records

DB

Lokales Gerät Remote-Gerät

Page 14: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Dienstanfrage – Service Discovery

• DB: i.d.R. Textdatei

• Service Informationen in Service Records.

• SR sind hierarchisch organisiert.

• Bei Eintreffen einer Anfrage, kann Service-Baum, über mehrere Telegramme verteilt, übertragen werden.

• Anhand der Service Attribute kann das lokale Gerät entscheiden, welche Dienste es nutzen kann bzw. nutzen darf.

• Mit den Einträgen in den SR kann das lokale Gerät nun eine Verbindung zu einem Dienst aufbauen. SDP wird dann nicht mehr benötigt.

Page 15: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

SDP PDU Format

• Jedes SDP-PDU besteht aus einem PDU-Header und nachfolgenden PDU-spezifischen Parametern

Page 16: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Partial Responses und Continuation State

• Einige SDP Requests können Responses erfordern, die größer sind als eine einzelne Response PDU sein.

• In einem solchen Fall wird der SDP Server eine partielle Response gemeinsam mit einem Fortsetzungszustandparameter (continuation state) generieren.

• Der Fortsetzungszustandparameter kann vom Client in einem nachfolgenden Request verwendet werden, um die nächste Portion der Gesamtnachricht zu erhalten.

Page 17: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Fehlerbehandlung

• Jede Transaktion besteht aus einem Request PDU einem Response PDU.– Jeder Typ eines Request PDU besitz einen korrespondierenden Response

PDU

• Wenn der Server feststellt, dass der Request PDU falsch ist, dann kann nicht der zugehörige Request PDU gesendet werden

• Server sendet dann einen Error-PDU (SDP_ErrorResponse)

Page 18: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

SDP Services

• Jeder Eintrag, der Information bereitstellt, eine Aktion ausführt, oder eine Ressource steuert, im Auftrag eines anderen Eintrages

• Service kann in SW, HW oder SW/HW implementiert sein

• Service Records

Service Attribute 1Service Attribute 2Service Attribute 3

…Service Attribute n

Service Record

Page 19: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Service Records

• Definition von Service Records, um problemlosen Datenaustausch zu gewähren

• Diese repräsentieren die notwendigen Service-Informationen

• Dienstleistungen können frei definiert werden

• Nicht notwendig, diese an einer zentralen Stelle zu registrieren

Service Attribute 1Service Attribute 2Service Attribute 3

…Service Attribute n

Service Record

Page 20: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Service Records

• Service Record (SR) beschreibt genau einen Dienst, der zu einer Serviceklasse gehört

• Alle SR eines Servers in DB

• SR speichert seine Dienstinformationen in Dienstattributen

• Wichtigstes Dienstattribut ist SR-Handle, zur eindeutigen Adressierung des Dienstes in der DB

• Mit dem SR-Handle kann Client auf alle Attribute des SR zugreifen

• SR-Handle ist 32-Bit Wert Service Attribute 1Service Attribute 2Service Attribute 3

…Service Attribute n

Service Record

Page 21: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Service Attribute

• Beschreiben die Eigenschaften eines Dienstes• Jedes Serviceattribut beschreibt eine einzelne Eigenschaft eines Dienstes,

wie z.B. ProviderName• Attribut besteht aus

– Attribut –ID• Eine Attribut-ID (16bits) unterscheidet jedes Serviceattribut von anderen Serviceattributen

innerhalb eines Servicerecords• Sie identifiziert ebenfalls die Semantik des zugehörigen Attributwertes

– Attribut –Werten (einzelner Wert oder Liste)• Kann unterschiedliche Größe annnehmen

Attribute IDAttribute Value

Service Attribute

16 BitsVariable Länge

Page 22: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Service Attribute

• Jedes Service Attribut beschreibt eine einzelne Eigenschaft eines Services. Beispiele solcher Attribute sind:

Page 23: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Service Attribute - Kategorien

• 3 Kategorien1. Standard Service Attribute

– Beschreiben die Charakteristika von Serviceklassen, die einen Dienst in Form von Anwendungsprofilen bzw. Anwendungen unterstützen

2. Service –Klassen –Attribute des Service –Discovery –Servers– Beschreiben Eigenschaften des SDP-Servers (z.B. Versionsnummer,

Statusinformationen)

3. Service –Klassen –Attribute des Browsergruppen-Descriptors– Ermöglichen hierarchische Strukturierung von Dienstgruppen

Page 24: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Allgemeine Service Attribute

• Einheitlich in allen Service Records

• 2 Attribute sind in jedem Service Record erforderlich– ServiceRecordHandle

• Identifiziert jeden Service auf einem SDP-Server

• Nur bedeutsam für den jeweiligen SDP-Server

– ServiceClassIDList

Page 25: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Andere typische universelle Attribute

• ServiceID

• ProtocolDescriptorList– Ein oder mehrere Protokollstacks, die verwendet werden , um den Service

zu errreichen

• BrowserGroupList– Browsergruppe, der der Service angehört

• BluetoothProfileDescriptorList– Repräsentiert Profile mit denen der Service konform ist

• ServiceName

Page 26: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Service-Klassen

• Jedem Dienst, der von einem Gerät angeboten wird, wird eine Serviceklasse zugeordnet

• Es finden sich Dienstklassen, die in Bluetooth-Profilen definiert sind

• Jedes SR ist als Instanz einer Service-Klasse zu verstehen• Jede Serviceklasse hat einmaligen Identifier UUID

(universal unique identifier)• Dieser UUID ist enthalten im Attributwert für das

ServiceClassIDList Attribut– UUID ist einmalig in Raum und Zeit– Keine zentrale Registry notwendig– UUID ist 128-Bit-Wert

Page 27: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Drucker-Beispiel

• Farbpostscript-Duplex-Drucker ist mit 4 ServiceClass-Definitionen konform, die mittels UUIDs repräsentiert werden– DuplexColorPostscriptPrinterServiceID

– ColorPostscriptPrinterServiceID

– PostscriptPrinterServiceID

– PrinterServiceID

Page 28: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Beispiel-Bluetooth-Headset

• ServiceRecordHandle(Uint32) ID=0x0000

• ServiceClassIDList ID=0x0001– ServiceClass0 (UUID=headset) ID=0x1108

– ServiceClass1 (UUID=generic audio) ID=0x1203

• ProtocolDescriptorList ID=0x0004– Protocol0 (UUID=L2CAP) ID=0x100

– Protocol1 (UUID=RFCOMM) ID=0x003• ProtocolSpecificParameter0 (Unit8= server channel #)

• ServiceName (string=„Headset“)

Page 29: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Service Discovery

• Ermöglicht es einem BT-Gerät zu erfragen, welche Services andere BT-Geräte anbieten– Suche (Searching): Nach einem speziellen Dienst suchen. – Auflisten (Browsing): Nachsehen, welche Dienste gerade bereitgestellt

werden

• Servicesuche:– Ermöglicht es einem Client an den SR-Handle für bestimmte SR zu

gelangen.– Ein Dienstsuchmuster ist eine Liste von UUIDs (Serviceattributen), die

verwendet wird um zugehörige Service Records zu lokalisieren

• Auflistung (Browsing): – Basiert auf einem Attribute, das von allen Serviceklassen genutzt wird:

• BrowseGroupList – Attribut

– BrowseGroupList – Attribut enthält eine Liste von UUIDs. Jede Liste

Page 30: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Beispiel für die Verwendung von SDP

• Verbindung mittels L2CAP herstellen

• Nach Service fragen – Nach einer spezifischen Serviceklasse fragen

– Services durchsuchen (browse)

• Aber SDP bietet keine Mechanismen, um gefundene Services auch nutzen zu können – dazu Protokolle höher in Hierachie notwendig

Page 31: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Daten Repräsentation

Page 32: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Datenelement Typendescriptor

• Type Descriptor und valid Size Descriptor

Page 33: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Data element size descriptor table

Page 34: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Beispiele für Daten

Der 3-Buchstaben umfassenden String „Hat“

Ein 16-bit Integer-Wert

Null

Page 35: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Protocol description

Page 36: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

PDU IDs

• Es sind nur 7 SDP PDU definiert– 0x01: SDP_ErrorResponse

– 0x02: SDP_ServiceSearchRequest

– 0x03: SDP_ServiceSearchResponse

– 0x04: SDP_ServiceAttributRequest

– 0x05: SDP_ServiceAttributResponse

– 0x06: SDP_ServiceSearchAttributeRequest

– 0x07: SDP_ServiceSearchAttributeResponse

Page 37: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

PDU Austausch

• Der Client initiiert einen Request

• Der Server antwortet mit einem Response

• Einige Responses werden in mehrere PDUs aufgeteilt– Alle PDUs haben eine ContinuationState als letzten Parameter (ausser

SDP_ErrorResponse)

SDP_XXXXRequest

SDP_XXXXResponse oder SDP_ErrorResponse

SDPClient

SDPServer

Page 38: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

1A. Service_Search_Request

2A. Service_Attribute_Request

1B. Service_Search_Response

SDPClient

SDPServer

2B. Service_Search_Response

Page 39: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Bluetooth Profile

Page 40: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Schematischer Aufbau der Datenpakete des Service-Discovery-Protokolls mit den einzelnen Basisklassen

Page 41: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Eine fiktive Service Browsing Hierarchie

• Zeigt Nutzung des Browse Group Descriptors

• Browse Group Descriptoren (G)

• Andere (S)

Page 42: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

Eine Beispiel SDP-Session

LMP Host Connection request

LMP Accepted

SDPClient

SDPServer

Inquiry

Page

L2CAP Connection request

L2CAP Connection response

SDP inquiries

SDP responses

Link Controller Setup

Link Manager Setup

L2Cap Setup

SDP session

Page 43: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

RFCOMM

• Serielle Port Emulation oberhalb Paketorientierter Verbindung– Ähnlich HDLC

– Zur Unterstützung von „Legacy“ Anwendungen

• Das RFCOMM-Protokoll unterstützt die Emulation der seriellen Ports über das L2CAP-Protokoll. Das Protokoll basiert auf dem ETSI standard TS 07.10.

• Nur eine Untermenge des TS 07.10-Strandards wird verwendet. Einige Bluetooth-spezifische Änderungen sind in der RFCOMM-Spezifikation festgelegt

Page 44: Mobile Systeme und drahtlose Netzwerke Vorlesung VII

RFCOMM - Gliederung

1. Überblick1. Geräte Typen2. Steuersignale3. Null Modem Emulation4. Mehrere emulierte serielle Ports

2. TS07.10 Adaption für RFCOMM1. Media Adaption 2. TS 07.10 Multiplexer Startup & Closedown Procedure 3. DLCI Allocation with RFCOMM Server Channels 4. Multiplexer Control Commands

3. Verwendete Methoden zur Flußkontrolle1. L2CAP Flusskontrolle2. Wired Serial Port Flow Control 3. RFCOMM Flow Control 4. Port Emulation Entity : Serial Flow Control 5. Credit Based Flow Control

4. Andere Entity Interaction 1. Port Emulation und Port Proxy Entities 2. Service Registration und Discovery 3. Zuverlässigkeit (Reliability) 4. Energiesparende Betriebsarten (Low Power Modes)