Mobile Systeme und drahtlose Netzwerke Vorlesung VI Gliederung
Mobile Systeme und drahtlose Netzwerke Vorlesung VI
Gliederung
Ziele der Vorlesung • Bluetooth-Details L 2 CAP
L 2 CAP Logical link control and adaption protocol • • • Befindet sich oberhalb HCI und liegt in der Data link layer LMP ist für controllerseitige Kommunikation L 2 CAP ist hostseitige Programmierschnittstelle Unterstützt verbindungsorientierte und verbindungslose Kommunikation Kanalkonzept: ermöglicht die Übertragung verschiedenerer Protokolle über asynchronen Link Segmentierung von Telegrammen Übernimmt Datenpakete (bis zu 64 kbyte) und setzt diese in Basisbandprotokolle um. Applications TCP/IP HID RFCOMM Data Audio Co ntr ol • L 2 CAP Link Manager Baseband RF
L 2 CAP innerhalb der Protokollschichten
L 2 CAP Logical link control and adaption protocol • Zum Verbergen der Eigenheiten der unteren Schichten Applications 4 AUFGABEN • Multiplexing von Protokollen (MUX) • Segmentierung großer Datenpakete und Zusammenfügung kleiner Datenpakete (SAR) • Bereitstellung definierter Dienstgüten (Qo. S) • Verwaltung von Gruppen Data Audio Co ntr ol TCP/IP HID RFCOMM L 2 CAP Link Manager Baseband RF
Protokoll Multiplexing • Unterstützt Protokoll-Umschaltung, da das Basisband kein „Typen -Feld“ zur Identifikation der Protokolle höherer Schichten enthält • Unterscheidet zwischen höheren Protokollen – Service Discovery Protokoll SDP – RFCOMM – Telephony Protocol
Segmentierung und Reassemblierung • Die Schichten unterhalb von L 2 CAP liegenden Schichten verarbeiten kleinere Datenpakete • Große L 2 CAP Pakete müssen in mehrere kleine Basisband-Paket segmentiert werden, bevor diese versendet werden. Segmentierung • Mehrere empfangene Basisband-Pakete müssen zu einem einzelnen L 2 CAP-Paket zusammengefügt werden Reassemblierung
Quality of Service • Ermöglicht den Austausch von Informationen zwischen 2 Bluetoothgeräten, die sich auf die Qualität der Verbindung beziehen (Qo. S) • Jede L 2 CAP-Verbindung muss die Ressourcen, wie sie vom Protokoll verwendet werden, aufzeichen. • Sie muss sicherstellen, dass die Qo. S-Verträge eingehalten werden
Gruppen • Das Basisbandprotokoll unterstützt das Konzept der Piconetze sind eine Gruppe von Geräten, die synchron „hüpfen“, da sie die gleiche Zeitbasis nutzen. • Mit der L 2 CAP-Gruppenabstraktion können Implementierungen so vorgenommen werden, dass Protokollgruppen effizient auf Piconetze abgebildet werden können. • Ohne eine solche Gruppenabstraktion müssten höhere Protokolle für das Basisband Protokoll und Link Manager aufgedeckt werden, um Gruppen effizient zu managen.
Verbindungstypen • L 2 CAP Spec ist nur für ACL-Verbindungen definiert – Beachte Basisband: SCO und ACL
Was kann L 2 CAP nicht? • Kein Transport von Audio-Signalen • Kein zuverlässiger Kanal und nicht für gesicherte Datenübertragung (d. h. keine Wiederholungen u. keine Checksumme) • Unterstützt nicht das Konzept eines globalen Gruppennamen • Keine zuverlässige Multicast-Verbindung – Multicast: Übertragung von Informationen von einem Sender an viele Benutzer – Broadcast: Übertragung von Informationen von einem Sender an alle Benutzer Beachte: Traffic im Netz.
L 2 CAP- Datenpakete • Unterschiedliche Datenpakete für unterschiedliche Kanäle • Paketgröße: maximal 64 k. Byte • Ergänzung der Nutzdaten (Payload) – Paketlänge – Kanal-ID (CID) • Beachte: Die Schichten unterhalb von L 2 CAP liegenden Schichten verarbeiten kleinere Datenpakete Segmentierung • Kanalinformationen nur im ersten Paket enthalten • Zur Synchronisation ist bereits im ACL-Paket codiert, ob es sich um das erste oder ein weiteres L 2 CAP-Paket handelt.
Einbettung von L 2 CAP in ACL-Pakete ACL-Payload Header für single slot Pakete L_CH Flow LSB 2 1 Länge 5 MSB ACL-Payload Header für multi slot Pakete L_CH Flow LSB 2 1 Länge 9 • Unterscheiden sich in Größe des Längenfeldes Undefiniert 4 MSB
Wiederholung: Basisbandprotokoll LSB 72 54 Zugangscode Header Nutzdaten (payload) 3 AM_ADDR 24 Bit 8 Bit LAP UAP MSB 0 -2745 Bits 4 1 1 1 8 Typ flow ARQN SEQN HEC 16 Bit NAP Bits
L 2 CAP Paket eingebettet im Basisbandpaket L 2 CAP (Header) Zugangsc. Code (72) L 2 CAP Payload Header (54) Payload (Header) 10 01 L 2 CAP (Header) CRC
Inhalt des Logical Channel Fields • ACL-Payload wird von LMP und L 2 CAP benutzt • L_CH - Feld – Beim Start eines L 2 CAP-Paketes: 10 – Jedes weitere L 2 CAP-Paket: 01 L_CH Code Logical Channel Information 00 Reserviert für spätere Benutzung 01 L 2 CAP Fortsetzung eines L 2 CAP Paketes 10 L 2 CAP Start eines L 2 CAP Paketes 11 LMP Link Manager Protocol
L 2 CAP-Kanäle • • L 2 CAP: Kanäle Jeder Kanal hat Channel Identifier CID (16 Bit) 1 bis 3 f. H belegt CID werden von L 2 CAP beim Verbindungsaufbau dynamisch belegt CID Beschreibung 0 x 0000 Null Identifier 0 x 0001 Signaling Channel 0 x 0002 Connectionless Reception Channel 0 x 0003 -0 x 003 F Reserviert 0 x 0040 -0 x. FFFF Dynamisch belegt
Einbettung von L 2 CAP in ACL-Pakete L 2 CAP-Header für verbindungsorientierte Kanäle – 4 Bytes für Header – Bidirektionaler Betrieb möglich Länge CID 16 LSB Nutzdaten (Payload) 16 MSB L 2 CAP-Header für verbindungslose Kanäle – – Erlaubt das Senden von Paketen an mehrere Zielgeräte ohne Verbindungsaufbau Service in PSM (Protocol Service Multiplexer) CID = 0 x 0002 Nur Senden vom Server zum Client Länge LSB 16 CID 0 x 0002 16 PSM 16 Nutzdaten (Payload) MSB
Einbettung von L 2 CAP in ACL-Pakete L 2 CAP-Header für verbindungsorientierte Kanäle – 4 Bytes für Header – Bidirektionaler Betrieb möglich Länge CID LSB 16 16 Nutzdaten (Payload) MSB
Kommunikation in der L 2 CAP-Schicht • Virtuelle Kanäle werden zur Kommunikation verwendet • CID: Communikation Identifier • Kommunikation mit 3 -Wege-Handshake – Anfrage durch Client. Antwort durch Server – Initiator (Client) – Acceptor (Server) • Beginn der Kommunikation durch einen Initiator einer höheren Protokollschicht – Logisch: L 2 CAP – Physikalisch: der Weg durch die Protokollschichten • Kommunikation in L 2 CAP über Ereignisse und Aktionen
Ereignisse • • Ereignis der oberen Protokollschicht: Request (Req) Antwort: Confimation (Cfm) Ereignis der unteren Protokollschicht: Indication (Ind) Antwort: Response (Rsp) Aktionen • Werden eingeleitet durch die eintreffenden Ereignisse – Request oder Indication wird von L 2 CAP unmittelbar bearbeitet und mit einem Response oder Indication umgesetzt.
Operation zwischen den Schichten
Operation zwischen Geräten • Der verbindungsorientierte Datenkanal: ist eine Verbindung zwischen zwei Geräten. Eine CID identifiziert dabei jeden Endpunkt des Kanals • Der verbindungslose Datenkanal: Datenfluss nur in eine Richtung. Diese Kanäle werden verwendet, um eine Kanalgruppe zu unterstützen. Die CID in der Quelle repräsentiert eine oder mehrere Geräte • Reservierte CIDs: z. B. für signaling channel, – der wird verwendet um einen verbindungsorientierten Datenkanal zu erstellen und aufrechtzuerhalten – und die Änderungen in den Kanaleigenschaften verhandeln
Operation zwischen Geräten
L 2 CAP Paketformat Zusammenfassung • CL connection less • CO connection-oriented
Segmentierung und Zusammenführung Segmentation and Reassembly (SAR) • Die Schichten unterhalb von L 2 CAP liegenden Schichten verarbeiten kleinere Datenpakete Segmentierung • Große L 2 CAP Pakete müssen in mehrere kleine Basisband-Paket segmentiert werden, bevor diese versendet werden. Zusammenfügung • Mehrere empfangene Basisband-Pakete müssen zu einem einzelnen L 2 CAPPaket zusammengefügt werden • Kanalinformationen nur im ersten Paket enthalten • Zur Synchronisation ist bereits im ACL-Paket codiert, ob es sich um das erste oder ein weiteres L 2 CAP-Paket handelt.
SAR – Dienste in einer Einheit mit HCI-USB-Interface
Konfigurationsparameter • Austausch von Konfigurationsparametern möglich • L 2 CAP verwendet dazu ACL-Link • Einflussnahme auf das Übertragungsverhalten der Strecke • Maximum Transmission Unit (MTU) – Maximale Nutzdatengröße des Empfängers in Bytes – Insbesondere wichtig bei Geräten mit eingeschränkten Ressourcen – Zur Verhinderung von z. B. Pufferüberlauf • Flush Timeout – Zeit in ms, die Linkcontroller versucht, ein Datensegment zu übertragen – Wert=1 heisst keine Sendewiederholung • Quality of Service (QOS)
Konfigurationsparameter: Qo. S • Quality of Service (QOS) – Angabe des Servicetyps: • entspricht dem Anforderungsprofil • „kein Verkehr“, „bestmögliche Leistung“, „Garantiert“ • Default: „best effort“ – Weitere Parameter zur Einstellung der Eigenschaften des Datenkanals: • • Zuteilung der Sendeleistung Max. Puffergröße Spitzenbandbreite in Bytes pro Sekunde Latenzzeit (maximal akzeptierbare Zeit vom Senden bis zum Empfangen eines Bits in μsec. ) • Verzögerungsabweichung (Differenz zwischen der maximal und der minimal möglichen Verzögerungszeit in μsec, die ein Datenpaket während der Übertragung erfährt. Wert kann von Anwendungen zur Berechnung des Zwischenspeichers verwendet werden. )
L 2 CAP Zustandsmaschine • L 2 CAP Kanal nimmt verschiedene Zustände an – Ereignisse – Aktionen • Nur anwendbar für bidirektionale CIDs • Nicht repräsentativ für den Signal-Kanal oder den unidirektionalen Kanal
L 2 CAP Layer Interaktionen
L 2 CAP Layer Interaktionen (HCI spezifisch)
Ablauf eines Requests zwischen Initiator und Acceptor
Beispiel Zustandsmaschine
Message Sequence Chart der Basisoperation
L 2 CAP State Machine Der Startzustand ist CLOSED. In diesem Zustand existiert keine Verbindung zwischen den Kommunikationspartnern. Demzufolge ist der CID auch keine L 2 CAP Verbindung zugeordnet. Wird eine neue Verbindung durch einen Request vom Initiator angefordert, so wird in den L 2 CA_Connect_Rsp-Zustand gewechselt und auf die Antwort von der Gegenstelle gewartet. Im Acceptor geht der Request in Form einer Indication ein. Wird dieser angenommen, so wechselt das dortige L 2 CAP-Protokoll in den L 2 CAP_Connect_Rsp Zustand und versendet einen Connect Response, der zurück zum Initiator gesendet wird. Beide Kommunikationspartner befinden sich dann im Zustand CONFIG. In diesem Zustand besteht zwischen beiden Geräten bereits eine Verbindung. Jetzt werden die Konfigurationsparameter wie Qo. S und maximale Paketgrößen ausgetauscht. Dieser Prozess wird in mehreren Teilschritten durchlaufen. Jeder Config Request muss mit einer entsprechenden Negotiation bestätigt werden. Erst wenn beide Seiten für den Datentransfer bereit sind, wird durch eine Config_Confirmation in den Open-Zustand gewechselt. Jetzt kann der eigentliche Datenaustausch über den Kanal stattfinden. Einer der beiden Verbindungspartner sendet nach Beendigung des Datenverkehrs den L 2 CA_Disconnect Request. Das L 2 CAP Protokoll wechselt daraufhin in den W 4_L 2 CA_Disconnect Rsp-Zustand. Der Acceptor des L 2 CAP_Disconnect_Req erhält eine L 2 CAP_Disconnect Indikation, wechselt in den W 4_L 2 CAP_Disconnect_Rsp Zustand und bestätigt diese mit einer L 2 CAP_Disconnect_Confirmation. Der Initator erhält eine L 2 CAP_Disconnect Response. Daraufhin wird die Verbindung abgebaut und das L 2 CAP Protokoll wechselt wieder in den CLOSED Zustand.
L 2 CAP-Dienste Verbindung Daten Gruppen Verbindungsloser Information Verkehr
L 2 CAP-Dienste 17 verschiedene Dienste 1. 2. 3. 4. 5. 6. 7. 8. Event. Indication Connect. Response Configure. Response Disconnect Write Read Verbindung Daten 9. Group. Create 10. Group. Close 11. Group. Add. Member 12. Group. Remove. Member 13. Get. Group. Member. Ship 14. Ping 15. Get. Info 16. Disable. Connectionless. Traffic 17. Enable. Connectionless. Traffic Gruppen Verbindungsloser Information Verkehr
L 2 CAP-Dienste 1. Event. Indication 2. Connect 3. Connect. Response 4. Configure
L 2 CAP-Dienste 5. Configure. Response 6. Write 7. Read 8. Disconnect
L 2 CAP-Dienste 9. Group. Create 10. Group. Close 11. Group. Add. Member 12. Group. Remove. Member 13. Get. Group. Member. Ship
L 2 CAP-Dienste 14. Ping 15. Get. Info 16. Disable. Connectionless. Traffic 17. Enable. Connectionless. Traffic
L 2 CAP Signalisierung • Verschiedene Signalkommandos können zwischen zwei L 2 CAP Verbindungen übertragen werden – Zur Etablierung verbindungsorientierter Kanäle • Alle Signalkommandos werden an das CID 0 x 0001 (Signalkanal) gesendet • Signale – – Connection request Configuration Disconnection Echo (zum Test des Signalkanals)
- Slides: 44