• Keine Ergebnisse gefunden

ƒ Multicast entspricht Broadcast bezogen auf die Gruppe

N/A
N/A
Protected

Academic year: 2021

Aktie "ƒ Multicast entspricht Broadcast bezogen auf die Gruppe"

Copied!
11
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Gruppenkommunikation

(Broadcast / Multicast)

ƒ Multicast entspricht Broadcast bezogen auf die Gruppe

ƒ verschiedene Gruppen können sich evtl. überlappen

ƒ jede Gruppe hat eine Multicastadresse Broadcast: Senden an die

Gesamtheit aller Teilnehmer Multicast: Senden an eine Untergruppe aller Teilnehmer

Anwendungen von

Gruppenkommunikation

ƒ Informieren

ƒ z.B. Newsdienste

ƒ Suchen

ƒ z.B. Finden von

Objekten und Diensten

Typische Anwendungs- klasse von Replikation:

Fehlertoleranz

ƒ „Logischer Unicast“

ƒ an replizierte Komponenten

(2)

Gruppenkommunikation – idealisierte Semantik

1. Modellhaftes Vorbild: Spei- cherbasierte Kommunikation

ƒ augenblicklicher „Empfang“ in zentralistischen Systemen

ƒ vollständige Zuverlässigkeit (kein Nachrichtenverlust etc.)

2. Idealisierte Sicht bei nachrich- tenbasierter Kommunikation:

tenbasierter Kommunikation:

ƒ gleichzeitiger Empfang

ƒ vollständige Zuverlässigkeit

(2. kann allerdings in der Praxis bei Vorhandensein einer globalen Zeit evtl. durch eine „Sperrfrist“ als Zeitpunkt in der Zukunft erreicht werden)

ƒ In verteilten Systemen ist aber beides nicht realistisch

Gruppenkommunikation – tatsächliche Situation

ƒ Zugrundeliegendes Medium (Netz) oft nicht multicastfähig g g ( ) g

ƒ LANs höchstens innerhalb von Teilstrukturen; WLAN als Funknetz a priori anfällig für Übertragungsstörungen

ƒ multicastfähige Netze sind typischerweise nicht verlässlich (keine Empfangsgarantie)

ƒ Daher typischerweise „Simulation“ von Multicast durch ein Protokoll aus vielen Punkt-zu-Punkt-Einzelnachrichten ein Protokoll aus vielen Punkt-zu-Punkt-Einzelnachrichten

ƒ z.B. Multicast-Server, der die Information an alle Empfänger einzeln weiterverteilt

(3)

Gruppenkommunikation – tatsächliche Situation (2)

ƒ Nachrichtenkommunikation entspricht nicht dem „Ideal“

ƒ nicht-deterministische Zeitverzögerung

→Empfang zu unterschiedlichen Zeiten

ƒ keine garantierte Zuverlässigkeit der Nachrichtenübermittlung

ƒ Ziel von Broadcast- / Multicast-Protokollen

ƒ möglichst gute Approximation der Idealsituation

ƒ Hauptproblem bei der Realisierung von Broadcast also:

1. Zuverlässigkeit

2. garantierte Empfangsreihenfolge Das soll dem Problem nicht- deterministischer Nachrich- tenverzögerungen begegnen

Typische Fehlerfälle bei der Gruppenkommunikation

ƒ Während des Protokolls: Verlust von Einzelnachrichten oder Ausfall des Senders

ƒ Nachrichten können aus unterschiedlichen Gründen verloren gehen (z.B. Netzüberlastung, Empfänger hört gerade nicht zu, Hilfsprozess in der Kommunikationsinfrastruktur abgestürzt,...)

ƒ Problem dann: Empfänger sind sich nicht einig, da manche, aber nicht alle, informiert werden

ƒ Uneinigkeit der Empfänger kann die Ursache für sehr ärgerliche Folgeproblemesein (da wäre es manchmal besser, gar kein Prozess hätte die Nachricht empfangen!)

ƒ partielle Abhilfe durch aufwändigere Protokolle und mehr Redundanz

(4)

„Best Effort“ Broadcast

ƒ Euphemistische Bezeichnung, da keine extra Anstrengung

ƒ typischerweise einfache Realisierung ohne Ack etc.

ƒ Keinerlei Garantien

ƒ unbestimmt, wie viele / welche Empfänger erreicht wurden

ƒ unbestimmte Empfangsreihenfolge

ƒ Allerdings effizient (im Erfolgsfall)

ƒ Geeignet für die Verbreitung unkritischer Informationen

ƒ Geeignet für die Verbreitung unkritischer Informationen

ƒ z.B. Informationen, die Einfluss auf die Effizienz haben, nicht aber die Korrektheit betreffen

ƒ Evtl. als Grundlage zur Realisierung höherer Protokolle

ƒ wenn Fehlerfall selten →aufwändiges Recovery auf höherer Ebene tolerierbar

„Reliable“ Broadcast

ƒ Ziel: Unter gewissen (welchen?) Fehlermodellen einen

„möglichst zuverlässigen“ Broadcast-Dienst realisieren

Timeout:

kein ACK ACK

ACK

ƒ 1. Idee: Quittung („positives Acknowledgement“: ACK) für jede Einzelnachricht

ƒ im Verlustfall z.B. einzeln nachliefern oder (bei broadcastfähigem Medium) einen zweiten Broadcast-Versuch (→Duplikaterkennung!)

ƒ viele ACKs→teuer (d.h., das Prinzip skaliert schlecht)

(5)

„Reliable“ Broadcast mit nega- tiven Acknowledements („NACK“)

ƒ Alle broadcasts werden vom Sender nummeriert

ƒ Empfänger erkennt so evtl. Lücke bei nächstem Empfang

ƒ Bei fehlender Nachrichten wird ein NACK gesendet

ƒ Fehlende Nachricht wird nachgeliefert

ƒ Sender muss daher Kopien von Nachrichten aufbewahren

ƒ aber wie lange?

ƒ Broadcast einer Nullnachricht“ ist evtl sinnvoll

ƒ Broadcast einer „Nullnachricht ist evtl. sinnvoll

ƒ →schnelles Erkennen von Lücken

ƒ Kombination von ACK / NACK mag sinnvoll sein

ƒ Fehlermodell? Verfahren hilft gegen Verlust von Nachrichten, aber nicht gegen den Crash des Senders „mittendrin“

Ein weiterer Reliable- Broadcast-Algorithmus

ƒ Zweck:Jeder nicht gecrashte und

zumindest indirekt erreichbare Prozess Denkübungen:

Bidi kti l K ik ti

zumindest indirekt erreichbare Prozess soll die Broadcast-Nachricht erhalten

ƒ Voraussetzung:zusammenhängendes

„gut vermaschtes“ Punkt-zu-Punkt-Netz

Sender s:Realisierung von broadcast(N) send(N, s, sequ_num)an alle Nachbarn – sequ_num ++

Beachte: receive≠ deliver (unterscheide Anwendungs- ebene und Transportebene)

ƒ Bidirektionale Kommunikations- kanäle notwendig?

ƒ Wie effizient ist das Verfahren (Anzahl der Einzelnachrichten)?

ƒ Wie fehlertolerant? (Wie viel darf kaputt sein / verloren gehen...?)

Empfänger r:Realisierung des Nachrichtenempfangs receive(N, s, sequ_num);

wennr noch kein deliver(N)für sequ_num ausgeführt hat, dann: wennr ≠ s dann send(N, s, sequ_num) an alle Nachbarn von r ; Nachricht an die Anwendungsebene ausliefern („deliver(N)“) ; Prinzip: „Fluten“ des Netzes (ÆVorlesung „Verteilte Algorithmen“)

b u d a po b )

(6)

Broadcast:

Empfangsreihenfolge

ƒ Wie ist die Empfangsreihenfolge von Gruppennachrichten?

ƒ problematisch wegen der i.Allg. ungleichen Übermittlungszeiten

ƒ Bsp.: Update einer replizierten Variablen mittels „function shipping“:

x Î2x x Îx+1

ƒ Es sind verschiedene Grade des Ordnungserhalts denkbar

ƒ z.B. keine (d.h. ungeordnet), FIFO, kausal geordnet, total geordnet

FIFO-Ordnung bei Multicast

ƒ Alle Broadcast-Nachrichten eines (d.h.: ein und des ( selben) Senders an eine Gruppe kommen bei allen Mitgliedern der Gruppe in FIFO-Reihenfolge an

ƒ Denkübung: wie dies mittels eines Protokolls garantieren?

(7)

FIFO-Broadcasts sind aber nicht immer „gut genug“

Falsche Schlussfolge-g rungdes Beobachters:

„Aufgrund einer unbe- gründeten Pumpenakti- vität wurde ein Leck er- zeugt, wodurch schliess- lich der Druck absank.“

Annahme: Steuerelemente kommunizieren über FIFO-Broadcasts:

„Irgendwie“ kommt beim Beobachter die Reihenfolge durcheinander!

Man sieht also:

ƒ FIFO-Reihenfolge nicht immer ausreichend, um Semantik zu wahren

ƒ eine Nachricht verursachtoft das Senden einer anderen (ÆKausalität!)

Das „Broadcastproblem“

ist nicht neu

(8)

Das „Broadcastproblem“

ist nicht neu

ƒ Natürlicher Broadcast bei Licht- und Schallwellen

„Wenn ein Zuschauer von der Ferne das Exercie- ren eines Bataillons verfolgt, so siehter überein- stimmende Bewegungen desselben plötzlich eintreten, eheer die Commandostimme oder das Hornsignal hört; aber aus seiner Kenntnis derCausalzusammenhängeweiss er dass die

ƒ wann handelt es sich dabei um FIFO-Broadcasts?

ƒ wie ist es mit dem Kausalitätserhalt?

der Causalzusammenhängeweiss er, dass die Bewegungen die Wirkung des gehörten Comman- dos sind, dieses also jenen objectivvorangehen muss, und er wird sich sofort der Täuschung be- wusst, die in der Umkehrung der Zeitfolge in seinen Perceptionenliegt.“

Christoph von Sigwart(1830-1904): Logik. Zweiter Band. Die Methodenlehre (1878)

(9)

Kausale

Nachrichtenabhängigkeit

ƒ Definition: Nachricht Y hängt kausal von Nachricht X ab, wenn es im Raum-Zeit-Diagramm einen von links nach rechts verlaufenden Pfad gibt, der vom Sendeereignis von X zum Sendeereignis von Y führt.

ƒ Beachte: Dies lässt sich bei geeigneter Modellierung auch abstrakter fassen (→„logische Zeit“ später in der Vorlesung und auch Vorlesung

„Verteilte Algorithmen“)

Kausaler Broadcast

Zweck: Wahrung von Kausalität bei der Kommunikation

ƒ Definition:Kausale Reihenfolge („causal order“): Wenn eine Nachricht N kausal von einer Nachricht M abhängt, und ein Prozess P die Nachrichten N und M empfängt, dann muss er M vor N empfangen haben

ƒ „Kausale Reihenfolge“ (bzw.

„kausale Abhängigkeit“) las- sen sich insbesondere auch auf Broadcastsanwenden

ƒ Kausale Reihenfolge impliziert FIFO-Reihenfolge:

kausale Reihenfolge ist eine Art „globales FIFO“

Das Erzwingen der kausalen Reihenfolge ist mittels geeigneter Algorithmen möglich (→Vorlesung „Verteilte Algorithmen“, z.B. Verallgemeinerung der Sequenzzählermethode für FIFO)

Gegenbeispiel:

Keinekausalen Broadcasts!

M N M N

(10)

Probleme mit

(kausalen) Broadcasts?

ƒ Beispiel: Aktualisierung einer replizierten Variablen x: p g p

Konkrete Problemursache:

ƒ Broadcasts werden nicht überall „gleich- zeitig“ empfangen

ƒ dies führt lokal zu verschiedenen Emp- fangsreihenfolgen

x Î2x

ƒ Abstrakte Ursache:

ƒ die Nachrichtenübermittlung erfolgt (erkennbar!) nicht-atomar

ƒ Æ Auch kausale Broadcasts haben keine „ideale“ Semantik

(im Sinne einer Illusion von speicherbasierter Kommunikation) fangsreihenfolgen

x Îx+1

Atomarer Broadcast

ƒ Definition: Wenn zwei Prozesse P

11

und P

22

beide die Nachrichten M und N empfangen, dann empfängt P

1

die Nachricht M vor N genau dann, wenn P

2

die Nachricht M vor N empfängt

ƒ Anschaulich: Nachrichten eines Broadcasts werden

„überall quasi gleichzeitig“ empfangen

ƒ Beachte: „Atomar“ heisst hier nicht „alles oder nichts“

(wie etwa beim Transaktionsbegriff von Datenbanken)

(11)

Atomarer Broadcast: Beispiel

Beachte: das Senden wird nicht Äquivalent bzgl. „Gummiband-Transformation“

Beachte: das Senden wird nicht als Empfang der Nachricht beim Sender selbst gewertet

Realisierung von

atomarem Broadcast

1. Lösung: Zentraler „Sequencer“, der Reihenfolge festlegt g q , g g

Sequencer ist allerdings ein potentieller Engpass!

ƒ „Unicast“ vom Sender zum Sequencer

ƒ Multicast vom Sequencer an alle

ƒ Sequencer wartet jew. auf Acknowledgements von allen

ƒ oder genügt hierfür ein FIFO-Broadcastohne Acknowledgements?

Referenzen

ÄHNLICHE DOKUMENTE

Dann muss aber ganz (y n ) n∈ N zu Null konvergieren, denn ansonsten es existiert eine Teilfolge die nicht zu Null geht, und dies widerspricht die Voraussetzung.. Nun zur

• Kausale Reihenfolge (Def.): Wenn eine Nachricht N kausal von einer Nachricht M abhängt, und ein Prozess P die Nachrichten N und M empfängt, dann muss er M vor N empfangen

• Kausale Reihenfolge (Def.): Wenn eine Nachricht N kausal von einer Nachricht M abhängt, und ein Prozess P die Nachrichten N und M empfängt, dann muss er M vor N empfangen

• Kausale Reihenfolge (Def.): Wenn eine Nachricht N kausal von einer Nachricht M abhängt, und ein Prozess P die Nachrichten N und M empfängt, dann muss er M vor N empfangen

- Nachrichten werden nicht mehrfach über die gleiche Strecke übertragen (nur ein Mal für alle Knoten im Unterbaum) - Kanten, die nicht mehr benötigt werden (z.B. bei Austritt aus

• Kausale Reihenfolge (Def.): Wenn eine Nachricht N kausal von einer Nachricht M abhängt, und ein Prozess P die Nachrichten N und M empfängt, dann muss er M vor N empfangen

ii) Ist ferner c einfach geschlossen und konvex, so haben c und g genau einen weiteren Punkt gemeinsam, und dieser ist ebenfalls ein Schnittpunkt. Aufgabe 11

Dabei gilt das erste Gleichheitszeichen aufgrund der Definition von n+1, das zweite ist die Rekursionsformel in der Definition der Multiplikation, beim dritten wird