Rechnernetze
Home Nach oben

Senden und Empfangen

 

Bluetooth verwendet ein einfaches ARQ-Verfahren, um Daten gesichert zu übertragen. Sendet ein Master Daten, so wird im nächsten Slot des Slaves die Quittung gesendet und es kann das nächste Paket gesendet werden; ansonsten wird das vorherige Paket noch einmal gesendet. Anhand eines alternierenden Zählers kann der Empfänger mehrfach gesendete Pakete unterscheiden. Werden keine Daten gesendet, so wird ein NULL-Paket gesendet, wenn Kontrolldaten (ACK, NACK, Flusskontrolle) zu senden sind, sonst wird nichts gesendet.

Synchrone Daten werden nur in bestimmten Zeitschlitzen, die beim Verbindungsaufbau ausgehandelt wurden, gesendet. Sie werden nicht durch ein ARQ-Verfahren geschützt, so dass sie keine Quittung benötigen.

Es gibt die Möglichkeit, in einem Paket sowohl synchrone also auch asynchrone Daten zu senden (DV - data, voice). Wenn eine negative oder keine Quittung eintrifft, so müssen im nächsten Paket gleiche asynchrone, aber neue synchrone Nutzdaten übertragen werden.

Flusskontrolle wird durch Senden eines STOP-Bits vom Empfänger erreicht. Daraufhin bewahrt der Sender das letzte Datenpaket und sendet NULL-Pakete, bis ein GO-Bit eintrifft; wird kein Paket empfangen, wird dieses implizit als GO interpretiert. Diese Prozedur wird für jeden Slave unabhängig implementiert.

Der Standard empfiehlt, dass synchrone und asynchrone Daten in unterschiedlichen Puffern gespeichert werden, wobei für jeden Link ein Puffer vorgesehen werden sollte. Da die Anzahl der Verbindungen und der Slaves beschränkt ist, lässt sich dieses in Hardware umsetzen. Man beachte, dass die Kontrolldaten in jedem Fall zunächst gescrambelt werden (Whitening), um möglichst zufällige Bitfolgen zu erzeugen. Dieses wird (beim Senden) nach der HEC-Erzeugung aber vor der FEC durchgeführt. Ähnlich müssen Nutzdaten gescrambelt werden, während andere Operationen, z.B. Verschlüsselung, optional sind.