2016-09-08 5 views
0

Ich habe jetzt eine Aufgabe, die RTT einer Bluetooth-Kommunikation auf Android zu bewerten, aber seit L2CAP is no longer supported on android muss ich die RTT mit RFCOMM berechnen, die zu meinem Verständnis ist im Grunde eine zuverlässige Implementierung ähnlich TCP für Bluetooth.Verwendet RFCOMM Dreiweg-Handshake?

Meine Frage ist RFCOMM verwendet den gleichen Dreiweg-Handshake wie TCP (SYN/SYN-ACK/ACK)?

Ist dies der Fall, würde die RTT von einem Bluetooth-Client zu einem Bluetooth-Server wird grob die Zeit, die für eine Verbindung dauerte von 2/3 multipliziert hergestellt werden (weil RTT ist gerade noch Zeit für SYN genommen/SYN-ACK und die für eine Verbindung benötigte Zeit ist SYN/SYN-ACK/ACK)?

Antwort

2

RFCOMM-Verbindungsaufbau hat keinen Drei-Wege-Handshake. RFCOMM basiert auf dem ETSI-Standard GSM 07.10 und arbeitet im asynchronen symmetrischen HDLC-Modus. RFCOMM Spezifikation kann here

Die Kommunikation gefunden werden wird, kann grob in Kategorien eingeteilt werden Kanalverbindung zu steuern (der Kanal ist 0), Port-Konfiguration und die Datenkanalverbindung (gegebenenfalls einschließlich Authentifizierung), durch den Datenaustausch gefolgt.

rfcomm_connection_establishment

Die Verbindung Weigerung Schema zeigt deutliche Verwendung von SABM Rahmen. Beachten Sie den SABM-UA beim Verbindungsaufbau und SABM-DM bei Verbindungsverweigerung.

Die Verbindung selbst wird vom SABM-Rahmen (Asynchronous Balanced Mode) und UA (Benutzerquittierung) hergestellt. Port-Aushandlung erfolgt mit PN-Frame. UIH-Frames werden für den Austausch von Daten auf den etablierten Kanälen verwendet.

+0

Wow, detaillierte Antwort, abgedeckt alles, was ich hoffe. – gedo

1

Meine Frage ist nicht RFCOMM die gleichen dreiweg Handshake wie TCP (SYN/SYN-ACK/ACK)?

Nr

Das RFCOMM Bluetooth ist über L2CAP, also können wir sehen, L2CAP-Kanal ist ein zuverlässiger Kanal (wenn keine Flush-Konfiguration) und RFCOMM nur einen L2CAP-Kanal nehmen, basierend auf diesem Kanal, wir einen Signalkanal und einen Datenkanal geteilt (kann 30 mehr sein? Ich erinnere mich nicht klar). Um einen RFCOMM-Datenkanal zu öffnen, verarbeiten Sie einfach eine Anforderung auf dem Signalkanal, dann kann die obere Schicht (z. B. SPP, HFP) über den zugewiesenen Datenkanal sprechen. Es gibt keine ACK/SYN-ACK/ACK, die dann eine RFCOMM einrichten, aber sie haben Credits, die für die Flusssteuerung nach dem Einrichten des Kanals verwendet werden.

Verwandte Themen