• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/26

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

26 Cards in this Set

  • Front
  • Back

Was ist das Zwei-Armeen-Problem?

- Die beiden Bataillone A1 und A2 haben die Armee B eingekesselt.
- Beide Bataillone müssen ihr Angriffe synchronisieren, um die Schlacht gewinnen zu können.
- Ein Bote soll die Nachrichten zwischen diesen beiden Armeen austauschen.
- Ein Bataillon wird nur dann angreifen, wenn es sicher sein kann, dass auch das andere angreift.

Warum ist es nicht möglich, ein Protokoll zu entwickeln, dass einen koordinierten Angriff gewährleistet?

1. Der von A-1 gesendete Bote und somit M1 erreichen A-2: In diesem Fall weiß zwar A-2, wann A-1 den Angriff plant, A-1 kann allerdings nicht sicher sein, dass M1 von A-2 erfolgreich empfangen wurde. A-2 ist sich dessen bewusst und wird daher nicht angreifen.
2. Der von A-1 gesandte Bote wird von B gefangen genommen - somit erreichen Bote und M1 niemals A-2: A-1 kann diesen Fall nicht vom ersten Fall unterscheiden und wird somit nicht angreifen.
3. Der von A-1 gesandte Bote und somit M erreichen A-2 später als die in M1 geplante Angriffszeit: In diesem Fall wird A-2 niemals angreifen, da die Koordinationszeit vergangen ist. A-1 kann diesen Fall nicht von den ersten beiden Fällen unterscheiden und wird nicht angreifen.
A-2 muss eine Empfangsbestätigung zu A-1 senden, die jedoch den gleichen Fällen unterliegt.
Was entspricht in der Realität dem 2-Armeen-Problem?
Der Abstraktion eines Kommunikationskanals, wobei A-1 und A-2 Kommunikationspartner sind und B ein Kommunikationsmedium mit all seinen möglichen Fehlerquellen, die Daten während der Übertragung zerstören oder modifizieren können.
Wo liegt der Unterschied zwischen dem 2-Armeen-Problem und der Datenkommunikation?
Der Unterschied zu dem 2 Armeen Problem liegt darin, dass in der Datenkommunikation keine exakte Koordination der Kommunikationspartner verlangt wird.
Wie heißen die Schichten des OSI-Modells?
-Bitübertragungsschicht
-Sicherungsschicht
-Vermittlungsschicht
-Transportschicht
-Sitzungsschicht
-Darstellungsschicht
-Anwendungsschicht
Warum muss die Datenübertragung synchronisiert werden?
- In einem asynchronen Übertragungssystem ist generell nicht definiert, wann der Sender eine Datenübertragung beginnt und es ist daher erforderlich, dass sich Sender und Empfänger synchronisieren.
- Die Synchronisation zwischen Sender und Empfänger ist notwendig, um zu garantieren, dass das gesendete Datenbit in der Mitte des Signals interpretiert wird
Wie synchronisieren sich Sender und Empfänger?
- Über einen Takt.
- Dieser Takt bestimmt zu welchem Zeitpunk der Sender das jeweilige Signal zur Übertragung eines Bits generiert und wann der Empfänger das Signal interpretiert
Warum ist es wichtig, dass das gesendete Datenbit in der Mitte des Signals interpretiert wird?
- Durch physikalische und elektrische Einflüsse
verändern sich die Signalform und die Signalstärke
- Es ist daher wichtig den jeweiligen Wert des Datenbits im Zentrum seiner Signaldarstellung zu interpretieren und nicht in der Nähe seiner Signalflanken
Warum ist wiederholte Synchronisierung notwendig?
-Obwohl die Taktfrequenzen von einem sehr genauen Quarz generiert werden, ist es unmöglich zu garantieren, dass
das Senden und Empfangen über einen unendlich langen Zeitraum synchron stattfinden kann.
- Es ist daher möglich, dass der Empfänger nach einer gewissen Anzahl übertragener Datenbits das jeweilige Signal nicht mehr in seinem Zentrum auswertet
und sich somit die Wahrscheinlichkeit eines Bitfehlers durch Missinterpretation des Signalwertes erhöht.
Wie kann die Synchronisation von Sendetakt und Empfangstakt erzwungen werden?
Durch die Strukturierung der zu übertragenden Daten, indem die Anzahl der in einer Datenübertragungseinheit enthaltenen Bits (engl. Frame) limitiert wird
- Am Anfang der Übertragung eines neuen Frames werden Bitmuster gesendet, die diese Synchronisation ermöglichen
- Für große Übertragungseinheiten muss allerdings auch gewährleistet sein, dass die Datenbits korrekt erkannt werden.
- Der Empfänger kann seinen Empfangstakt auf die ansteigenden oder abfallenden Flanken des Datensignals synchronisieren und somit die Taktabweichung minimieren.
- Dazu muss allerdings sichergestellt werden, dass die jeweilige Signalsequenz genügend Signalübergänge (also Flanken) aufweist.
Welche Signalkodierungsformate gibt es?
-Nonreturn-to-Zero Level (NRZ-L)
– Nonreturn-to-Zero Inverted (NRZI)
– Manchaster Kodierung
– Differential Manchaster
Was ist das Ziel des Stop-and-Wait-Protokolls?
den Sender und den Empfänger so zu koordinieren, dass der Sender nur einen neuen Frame sendet, wenn garantiert ist, dass der vorherige Frame korrekt empfangen wurde, um somit eine fehlertolerante Datenübertragung zu realisieren.
Wie funktioniert das Stop-and-Wait-Protokoll?
Sender:
1. Initialisiere eine Integer-Variable SN = 0
2. Warte auf Daten von den höheren Schichten
3. Wenn Daten verfügbar sind, weise der Datenübertragungseinheit (Frame) die Nummer SN zu
4. Übertrage den Frame SN mit SN in einem speziellen SeqNr. Feld
5. Wenn ein ACK Frame mit Anforderungsnummer RN fehlerfrei eintrifft setze SN = RN und wiederhole Schritt 2, wenn kein fehlerfreier ACK Frame
innerhalb der gesetzten Zeitgrenze eintrifft oder ein NACK empfangen wird, wiederhole Schritt 4
Empfänger:
1. Initialisiere eine Integer-Variable RN = 0
2. Wenn ein fehlerfreier Frame mit SN = RN (vom Sender) empfangen wird, leite den Frame an die höheren Protokollschichten weiter.
3. Setze RN = RN + 1
4. Zu einem beliebigen Zeitpunkt (aber im Rahmen eines definierten Zeitintervalls) sende ein ACK Frame mit RN in einem speziellen SeqNr. Feld zu A und
wiederhole Schritt 2.
Welche Aufgaben haben Routing-Algorithmen?
Sie sollen den besten Pfad in einem Kommunikationsnetz finden
In welche Klassen werden Routingalgorithmen eingeteilt?
- Globale Routingalgorithmen (Link State Routing)
- Dezentralisierte (Verteilte) Routingalgorithmen
Was sind Globale Routingalgorithmen?
-Diese Algorithmen berechnen den kürzesten Pfad zu allen Knoten im Netz.
- Jeder der Knoten führt diesen Algorithmus unabhängig von den anderen Knoten aus.
- Die Eingabedaten bestehen aus der Gesamttopologie des Netzwerks mit allen Kommunikationsverbindungen und deren jeweiligen Kosten oder Latenz.
- Somit hat diese Routingmethodik zwei Phasen - das Erfassen der Netzwerktopologie und die Berechnung der besten Kommunikationspfade.
- Da sich die Bedingungen in einem Kommunikationsnetz ständig ändern können, müssen die topologischen Daten fortlaufend erfasst werden.
- Der eigentliche Routingalgorithmus ist ein zentralisierter Algorithmus, der für das sogenannte Link State Routing auf Dijkstra’s Kürzester Wege Algorithmus
basiert.
Was sind dezentralisierte Routingalgorithmen?
- haben die Eigenschaft, dass sie nicht erfordern die gesamte Topologie des Netzes lokal in einem Knoten zu aggregieren, um den besten Pfad zu ermitteln.
- Einer dieser Algorithmen ist der Distance Vector Algorithmus, der eine verteilte Version des Bellman-Ford Algorithmus darstellt.
- basieren auf dem Austausch von Informationen zwischen benachbarten Knoten
- Jeder Knoten ermittelt somit eine Distanztabelle, die die Länge (oder Kosten) zu jedem anderen Knoten enthält, nicht aber den kompletten Kommunikationspfad.
- Die lokal erstellte Tabelle enthält Informationen über die jeweiligen Kommunikationskosten zu anderen Knoten via jedem der Nachbarknoten.
- Während ein Knoten damit ermitteln kann, welcher der Nachbarn als nächster Knoten auf dem Pfad zum Ziel gewählt werden muss, um die Kosten aus seiner Sicht zu minimieren, ist keinerlei globale Information verfügbar, die es einem Knoten erlaubt die gesamte Netzwerktopologie zu aggregieren.
- Änderungen in der Minimaldistanz als Konsequenz einer Veränderung der Netzwerktopologie, entweder durch Fehler oder Variation der Lastverteilung, müssen dann an alle Nachbarknoten übermittelt werden
Was ist der Unterschied zwischen der zweiten und der vierten Schichten?
- Im Gegensatz zu den Protokollen der zweiten Schicht, die einen fehlerfreien Datenaustausch zwischen zwei direkt verbundenen Kommunikationsknoten realisieren, muss die vierte Schicht Protokolle zur fehlerfreien Kommunikation zwischen zwei Prozessen bereitstellen
- Während für die Protokolle der zweiten Schicht die technischen Eigenschaften des Kommunikationskanals unverändert bleiben, haben die Protokolle der vierten Schicht keine Kontrolle darüber, durch welche Teilnetze und welche Netzwerkarchitekturen die einzelnen Kommunikationseinheiten auf ihrem Weg von Sendeprozess zu Empfangsprozess gesendet werden.
- Somit ist vom eigentlichen physikalischen Netzwerk, das durch die Schichten eins bis drei definiert ist, abstrahiert und die Protokolle der vierten Schicht berücksichtigen nur den Fluss der Daten eines Prozesses in das Netz und den Empfang der Daten aus dem Netz.
- Die Protokolle der vierten Schicht haben daher keinen Einfluss darauf was mit den Kommunikationseinheiten geschieht während sie vom Netzwerk übermittelt werden
Welche Unterschiede gibt es zwischen der zweiten und der vierten Schicht bzgl. der Empfangsbetätigung?
- Das Zeitintervall bis zum Eintreffen der Bestätigung kann für die zweite Schicht im Normalfall recht genau bestimmt werden, da die jeweiligen Anwort- und Übertragungszeiten im Protokoll der Netzwerkarchitektur festgelegt sind
- Protokolle der vierten Schicht haben diesen Luxus allerdings nicht, da die Übertragungszeit der jeweiligen Kommunikationseinheiten von vielen verschiedenen Parametern abhängen kann.
- Während die Kommunikation der zweiten Schicht generell nur zwei Kommunikationspartner berücksichtigen muss, ist die Prozesskommunikation der vierten
Schicht von der Netzwerklast abhängig.
- Viele Kommunikationspaare müssen sich die verfügbare Bandbreite des Netzes teilen und es ist daher nicht vorhersagbar wie viel Zeit die Übertragung eines Datenpaketes benötigt.
- Darüberhinaus kann sich diese Zeit für jede Übertragung verändern, da die Lastbedingungen im Netz generell fluktuieren.
- Änderungen des Kommunikationspfades per Routingprotokoll der dritten Schicht tragen dazu bei, dass kein konstantes Zeitintervall festgelegt werden kann.
- Durch Netzwerkfehler und außergewöhnlich hohe Netzwerklasten können Daten und Empfangsbestätigungen im Netz verloren gehen oder drastisch verzögert
werden.
- Dies wiederum führt zu der Ungewissheit der kommunizierenden Prozesse, die eine Entscheidung darüber treffen müssen, ob ein Paket wiederholt gesendet werden
muss, oder ob es noch in Transit ist.
Was ist Tack und was muss man dabei beachten?
-ein Datenpaket muss wiederholt übertragen werden, wenn keine Empfangsbestätigung (ACK) innerhalb eines Zeitintervalls Tack beim Sender eintrifft.
- Tack muss sich allerdings ständig den Gegebenheiten des Netzwerks anpassen.
Welche Situationen müssen bei Tack berücksichtigt werden?
– Angenommen ein Paket wurde zur Zeit t0 gesendet, dann erwartet der Sender eine Empfangsbestätigung bis zur Zeit t0 + Tack
– Ist Tack zu klein wird eine kleine Verzögerung in der Übertragung des Pakets oder des ACKs eine unnötige wiederholte Datenübertragung initiieren. Demzufolge wird unnötigerweise die Netzwerklast erhöht und Bandbreite verschwendet.
– Ist Tack zu groß, muss der Sender bis zum Timeout t0 + Tack warten, bis ein fehlerbehaftetes oder verlorenes Paket wiederholt übertragen werden kann. Somit
wird der Sendevorgang unnötigerweise verzögert.
Was ist RTT?
Tack muss daher fortlaufend abgeschätzt werden, indem man die Zeit eines Roundtrips (RTT), also das Zeitintervall zwischen dem Senden des Paketes und dem Empfang eines ACK misst und in die Schätzung mit einbezieht
Welche Aufgaben umfassen die Protokollelemente, die ein fehlertolerierendes verteiltes System realisieren, zum Beispiel?
- Computersicherheit
- Zeitsynchronisation
- Datensynchronisation
- Agreement-Protokolle
Was ist Zeitsynchronisation?
Methoden, mit denen sichergestellt werden kann, dass die Zeit aller im verteilten System partizipierenden Prozesse nicht mehr als € voneinander abweichen. Nur dadurch kann eine geordnete Abhandlung individueller Transaktionen durch verteilte Prozesse stattfinden
Was bedeutet Datensynchronisation?
Methoden, die gewährleisten, dass duplizierte Daten synchronisiert sind und somit den gleichen Wert aufweisen. Dazu gehören die verschiedenen Commit-Protokolle, die in verteilten Datenbanksystemen ihre Anwendung finden.
Was sind Agreement-Protokolle?
Diese Klasse von Protokollen soll garantieren, dass Prozesse in einem verteilten System kooperieren und ihre Aktionen synchronisieren. Das Auftreten einer limitierten Anzahl von Systemfehlern darf dabei diese Kooperation nicht negativ beeinflussen