Handshake

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Mit Handshake bezeichnet man eine Phase im Verbindungsaufbau zwischen zwei Kommunikationsgeräten. Die elektronische Aspekte einer solchen Verbindung werden als Schnittstelle bezeichnet, und die Regeln, wie die beteiligten Geräte die Elektronik zu verwenden haben, nennt man das Protokoll.

Eine Schnittstelle kann leitungsgebunden sein (z. B. Modems, USB-Verbindungen, Ethernet oder Festplatten im Computer) oder drahtlos (z. B. WLAN, Bluetooth). Geräte, die nicht handshake-fähig sind, müssen vom Benutzer vorab passend eingestellt werden, damit die Kommunikation gelingt. Typisches Beispiel dafür ist die RS-232 Verbindung aus der Zeit vor USB.

Der Handshake läuft so ab, dass die Geräte zunächst ein sehr einfaches Protokoll verwenden, das zwar wenig leistungsfähig, dafür aber störsicher ist und von allen Geräten beherrscht wird. Dieses Basisprotokoll wird bei der ersten Spezifikation der Schnittstelle festgelegt. Auf dieser Stufe können die Geräte feststellen, ob überhaupt eine Kommunikation möglich ist.

Teil dieser Phase kann auch sein, bestimmte Parameter der genutzten Elektronik zu verändern. Ein WLAN-Adapter kann beispielsweise messen, auf welchen Frequenzkanälen wenig Aktivätit herrscht und die Sendefrequenz des Adapters entsprechend anpassen. Ein Mobiltelefon kann auch die Senderleistung anpassen, wenn das Leitsignal des Mobilfunkmastes nur schwach empfangen wird. VDSL Multiplexer (das Gerät, von dem die Kupferleitung zum Haus führt) messen aus, ob sich Adern der Leitung gegenseitig stören und wählen die Übertragungsfrequenzen so, dass die Störungen minimiert werden.

Auf den meisten Schnittstellen können mehrere Protokolle verwendet werden. Diese sind Teil der Schnittstellenspezifikation und können im Laufe der Zeit erweitert werden. Sobald eine Verbindung mit dem Basisprotokoll gelungen ist, tauschen die Geräte Informationen über die von ihnen unterstützten weiteren Protokolle aus und beginnen dann damit, schrittweise auf höherwertige Protokolle zu wechseln, die aber auch höheren Anspruch an die Geräte- und Verbindungsqualität stellen. In jedem Schritt wird mit Hilfe von Hashes ermittelt, ob Testdatenpakete unverfälscht übertragen werden können. Diese Steigerung endet, sobald das beste Protokoll erreicht ist, das beide Geräte unterstützen und bei dem keine Fehler auftreten. Damit ist der Handshake abgeschlossen.

Im weiteren Verbindungsverlauf kann es zu Übertragungsstörungen kommen, die die Fehlerrate ansteigen lassen. Fehlerhafte Datenblöcke müssen erneut übertragen werden, was die Verbindungsgeschwindigkeit senkt. Wird ein bestimmte Fehlerrate überschritten, können die Geräte in eine erneute Handshakephase eintreten, um ein langsameres, aber weniger fehleranfälliges Protokoll auszuhandeln.

Beachten Sie: Die deutsche Wikipedia leitet den Begriff Handshake zu Datenflusssteuerung weiter. Aber das ist etwas anderes. Der Handshake ist Teil des Verbindungsaufbaus (oder -neuaufbaus) und die Datenflusssteuerung ist Teil der laufenden Verbindung. Es kann vorkommen, dass ein Gerät Daten schneller empfangen als weiterverarbeiten kann. In diesem Fall muss es dem Sender mitteilen, dass eine Pause erforderlich ist. Das ist kein Handshake.