Three way handshake

Three way handshake

Der Drei-Wege-Handshake ist ein Verfahren zum Aufbau verlustfreier Datenübertragungen zwischen zwei Instanzen. Obwohl überwiegend in der Netzwerktechnik verwendet, ist der Drei-Wege-Handshake nicht darauf beschränkt.

Inhaltsverzeichnis

Das Zwei-Armeen-Problem

Beim Transport von Nachrichten benötigen die teilnehmenden Instanzen eine Möglichkeit sicherzustellen, dass die von ihnen kontaktierte Instanz die Nachricht erhalten hat. Die sendende Instanz möchte also eine Bestätigungsantwort, wenn die Nachricht angekommen ist. Die Probleme, die hier auftreten können, wenn das Kommunikationsmedium nicht zuverlässig ist, werden anhand des Zwei-Armeen-Problems näher erläutert:

Stellung der Armeen

Man denke sich zwei Armeen A und B, wobei Armee A stärker ist als Armee B. Armee A ist aber auf zwei Teile A1 und A2 aufgespalten, jeder dieser Teile kann Armee B alleine nicht schlagen. A1 und A2 müssen also gleichzeitig angreifen, um zu gewinnen. Es ist daher notwendig, den genauen Angriffszeitpunkt vor dem Angriff per Boten festzulegen. A1 schickt also eine Nachricht mit dem Angriffszeitpunkt an A2. Der einzige Weg von A1 zu A2 führt jedoch durch das Gebiet von B. A1 benötigt eine Bestätigung, dass die Nachricht bei A2 angekommen ist, da A1 sich sicher sein muss, dass A2 auch über den Angriffszeitpunkt in Kenntnis gesetzt wurde. Dabei ergeben sich folgende zwei Problemstellungen:

  • A1 sendet Nachricht an A2, der Bote wird jedoch schon im Lager von B abgefangen. A1 weiß also nicht, ob die ursprüngliche Nachricht abgefangen wurde, oder nur die Bestätigungsantwort von A2.
  • A1 sendet Nachricht an A2, der Bote wird aber bei der Bestätigungsantwort von A2 im Lager von B abgefangen. A2 kann also auch nicht sicher sein, dass die Bestätigungsantwort bei A1 eingetroffen ist.

Beide Teilarmeen können also nie sicher sein, dass ihre Nachricht bei der jeweils anderen Armee eingetroffen ist, da auch die Bestätigungsantworten nicht zuverlässig transportiert werden können und A1 und A2 sich auch die Bestätigungsantworten bestätigen lassen müssten.

Der Drei-Wege-Handshake

In der Nachrichtentechnik tritt dieses Problem immer dann auf, wenn zwischen den Kommunikationspartnern ein unsicherer Übertragungskanal vorliegt.

Das 2-Armeen-Problem ist unlösbar. Man müsste unendlich oft die „Bestätigung bestätigen“, um sicher sein zu können, dass der Empfänger die Nachricht auch erhalten hat. Da das unrealistisch ist, muss man beim Betrieb eines Kommunikationssystems durch geeignete Maßnahmen mit dem möglichen Paketverlust umgehen.

Besonders kritisch ist das Problem beim Verbindungsaufbau, da die Kommunikationspartner anfangs noch nicht voneinander wissen, sie also insbesondere noch keine Vorkehrungen zur Übertragungswiederholung (Timeouts usw.) getroffen haben.

Man wählt daher oft ein dreistufiges Verfahren zum Verbindungsaufbau, den so genannten Drei-Wege-Handshake. Diesen kann man sich wie eine Terminvereinbarung per E-Mail vorstellen. Möchte Anton sich mit Berta verabreden, werden folgende Nachrichten ausgetauscht:

  1. Anton schickt Berta einen Terminvorschlag
  2. Berta schickt Anton eine Bestätigung des Termins
  3. Anton schickt Berta eine Bestätigung, dass er Bertas Bestätigung erhalten hat

Schritt 3 ist dabei notwendig, damit Berta weiß, ob Anton die Bestätigung erhalten hat. Nachricht Nummer 2 könnte ja verloren gegangen sein und Berta würde alleine zu dem Treffen erscheinen, da Anton keine Bestätigung erhalten hat.

Anwendungsbereiche

TCP

Der wohl bekannteste Anwendungsbereich des Drei-Wege-Handshake ist die Netzwerktechnik. Ein prominentes Beispiel ist das Protokoll TCP. Es dient dort dem Aufbau und Abbau einer stehenden Verbindung. Eine ausführliche Beschreibung dieses Drei-Wege-Handshakes findet sich im Artikel Transmission Control Protocol.

Asynchrone Busse

Die Signale auf asynchronen Rechnerbussen sind ungetaktet, so dass ein Takt nicht zur Steuerung der Kommunikation zwischen dem Mikroprozessor und unterschiedlichen angeschlossenen Komponenten verwendet werden kann. Daher kommen auch in diesem Bereich einige Varianten des Handshake-Verfahrens zum Einsatz. Das Grundprinzip bleibt dabei weitgehend unverändert.

Ein Beispiel für diese Buskommunikation bietet eine einfache Steuerung des Buszugriffes auf den Systembus. Möchte eine Komponente lesend oder schreibend auf den Systembus zugreifen, so sendet sie ein spezielles Signal (Bus Request) an den Mikroprozessor. Sobald der Prozessor den Bus nicht benötigt, gewährt er der Komponente den Zugriff mittels eines speziellen Antwortsignals (Bus Grant). Die Komponente antwortet auf diese Erlaubnis ihrerseits mit einer Bestätigung (Bus Grant Acknowledge), um dem Prozessor und allen anderen Komponenten anzuzeigen, dass sie die Kontrolle über den Bus übernommen hat. Wie man erkennt, können die Bezeichnungen der einzelnen Nachrichten bei unterschiedlichen Handshake-Verfahren voneinander abweichen.

Ähnliche Verfahren können auch zur Steuerung der Kommunikation auf unterschiedlichen Bussen verwendet werden. Dabei kann das Verfahren teilweise auch mit einer Taktung kombiniert werden. Ein häufiger Fall ist die Koordination von Adress- und Datenbus. Der Prozessor legt hier ein spezielles Signal (Adress Strobe) auf dem Steuerbus an, um zu signalisieren, dass er eine gültige Adresse auf dem Adressbus angelegt hat. Diese Adresse gehört einer Komponente an (es kann sich etwa um Speicher oder um ein Ein-/Ausgabegerät handeln). Mittels einer positiven ACK-Flanke kann diese Komponente den Prozessor darüber informieren, dass sie sich als Adressat erkannt hat. Der Prozessor zieht daraufhin sein Adress Strobe-Signal zurück. Die Komponente kann nun beispielsweise die angeforderten Daten auf den Datenbus schreiben oder auch von dort einlesen. Mittels einer negativen ACK-Flanke kann die Komponente den Abschluss dieses Vorganges mitteilen. Die Art der Kommunikation ist hier aufgrund der drei beteiligten Busse (Steuerbus, Adressbus und Datenbus) etwas komplexer, aber das Grundprinzip des Drei-Wege-Handshake ist dennoch auch hier erkennbar.


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Three Way Handshake — Dreiwege Quittung(sbetrieb) …   Acronyms

  • Three Way Handshake — Dreiwege Quittung(sbetrieb) …   Acronyms von A bis Z

  • Challenge-handshake authentication protocol — In computing, the Challenge Handshake Authentication Protocol (CHAP) authenticates a user or network host to an authenticating entity. That entity may be, for example, an Internet access provider. RFC 1994: PPP Challenge Handshake Authentication… …   Wikipedia

  • Challenge-Handshake Authentication Protocol — In computing, the Challenge Handshake Authentication Protocol (CHAP) authenticates a user or network host to an authenticating entity. That entity may be, for example, an Internet service provider. CHAP is specified in RFC 1994. CHAP provides… …   Wikipedia

  • Challenge-handshake Authentication Protocol — (CHAP) est un protocole d authentification pour PPP à base de challenge, ce qui le rend bien plus sûr que son pendant PAP. Ce protocole est défini dans la RFC 1994. Il est aussi utilisé par le protocole iSCSI afin que Initiator et Target iSCSI s… …   Wikipédia en Français

  • Challenge-handshake authentication protocol — (CHAP) est un protocole d authentification pour PPP à base de challenge, ce qui le rend bien plus sûr que son pendant PAP. Ce protocole est défini dans la RFC 1994. Il est aussi utilisé par le protocole iSCSI afin que Initiator et Target iSCSI s… …   Wikipédia en Français

  • UNITED STATES OF AMERICA — UNITED STATES OF AMERICA, country in N. America. This article is arranged according to the following outline: introduction Colonial Era, 1654–1776 Early National Period, 1776–1820 German Jewish Period, 1820–1880 East European Jewish Period,… …   Encyclopedia of Judaism

  • Transmission Control Protocol — Para otros usos de este término, véase TCP (desambiguación). Transmission Control Protocol (TCP) Familia: Familia de protocolos de Internet Función: Transporte confiable y bidireccional de datos. Ubicación en la pila de protocolos Aplicación …   Wikipedia Español

  • Port scanner — A port scanner is a piece of software designed to search a network host for open ports. This is often used by administrators to check the security of their networks and by crackers to compromise it.To portscan a host is to scan for listening… …   Wikipedia

  • SCTP — (англ. Stream Control Transmission Protocol «протокол передачи с управлением потоком»), протокол транспортного уровня в компьютерных сетях, появившийся в 2000 году в IETF. RFC 4960 описывает этот протокол, а RFC 3286 содержит техническое… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”