1. Der Pizzadienst (H)

Aufgabenstellung

Ein Protokoll ist eine Spezifikation von Vorschriften zum Informationsaustausch. Beschreiben Sie im Folgenden ein Protokoll zur Bestellung einer Pizza (Pizzaprotokoll), beim Pizza-Service Ihres Vertrauens! Indem Sie auf die Technologie „Telefon“ zurückgreifen, haben Sie eine Möglichkeit gefunden Nachrichten mit Ihrem Pizza-Service auszutauschen.

(a) Ohne ein Bestellprotokoll herrscht Stille im Hörer. Damit Ihre Bestellung erfolgreich abgeschlossen werden kann, müssen Sie dem Pizza-Service Ihren Namen, Ihre Adresse und Ihre Wunschpizza mitteilen.

Aufgabenstellung

Zeichnen Sie ein Sequenzdiagramm, das einen vollständigen Bestellvorgang am Telefon darstellt! Beachten Sie dabei:

  • Markieren Sie das Ende jeder Phase der Kommunikation!
  • Der Kunde übermittelt bestimmte Informationen genau dann, wenn er danach gefragt wird!

Welche der beiden Optionen ist “korrekter” bzw. wären beide Korrekt in der Klausur?

Erste Option:

sequenceDiagram
    actor Kunde
    actor Pizzaria
    Kunde--)Pizzaria: Kunde ruft an
    Pizzaria--)Kunde: Pizzeria geht ran
    Pizzaria->>Kunde: Hallo Luigi's Pizzaria, Ihre Bestellung bitte?
    Kunde->>Pizzaria: Hallo eine Pizza Tonno
    Pizzaria->>Kunde: Auf welchen Namen?
    Kunde->>Pizzaria: Auf Mario
    Pizzaria->>Kunde: Wie lautet Ihre Adresse?
    Kunde->>Pizzaria: Schlossstr. 38
    Pizzaria->>Kunde: Ok, vielen Dank. Ihre Bestellung kommt bald.
    Kunde->>Pizzaria: Danke
    Kunde--)Pizzaria: Kunde legt auf

Zweite Option:

sequenceDiagram
    autonumber
    Actor Kunde
    participant Telefonnetzwerk
    Actor PizzaService

    rect rgb(120, 120, 120)
    Kunde->>Telefonnetzwerk: (1) Anruf tätigen
    Telefonnetzwerk->>PizzaService: (1) Anruf weiterleiten
    end

    rect rgb(140, 100, 100)
    PizzaService->>Telefonnetzwerk: (2) Begrüßung und Bestellung anfordern
    Telefonnetzwerk->>Kunde: (2) Begrüßung empfangen
    end

    rect rgb(100, 140, 100)
    Kunde->>Telefonnetzwerk: (3) Wunschpizza nennen
    Telefonnetzwerk->>PizzaService: (3) Pizza weiterleiten
    end

    rect rgb(140, 140, 90)
    PizzaService->>Telefonnetzwerk: (4) Adresse anfordern
    Telefonnetzwerk->>Kunde: (4) Aufforderung empfangen
    Kunde->>Telefonnetzwerk: (5) Adresse nennen
    Telefonnetzwerk->>PizzaService: (5) Adresse weiterleiten
    end

    rect rgb(90, 110, 140)
    PizzaService->>Telefonnetzwerk: (6) Namen anfordern
    Telefonnetzwerk->>Kunde: (6) Aufforderung empfangen
    Kunde->>Telefonnetzwerk: (7) Namen nennen
    Telefonnetzwerk->>PizzaService: (7) Namen weiterleiten
    end

    rect rgb(140, 130, 110)
    PizzaService->>Telefonnetzwerk: (8) Bestellung bestätigen und Lieferzeit mitteilen
    Telefonnetzwerk->>Kunde: (8) Bestätigung empfangen
    end

    rect rgb(130, 130, 130)
    Kunde->>Telefonnetzwerk: (9) Verabschiedung
    Telefonnetzwerk->>PizzaService: (9) Verabschiedung weiterleiten
    PizzaService->>Telefonnetzwerk: (10) Gespräch beenden
    Telefonnetzwerk->>Kunde: (10) Gesprächsende
    end

(b) Leider kommt die Pizza nicht durch die Telefonleitung. Erweitern Sie das Modell um einen zugrunde liegenden Dienst, mit dem der Lieferprozess realisiert wird. Berücksichtigen Sie hierbei das aus der Vorlesung bekannte Prinzip der Schichtung.

sequenceDiagram
    autonumber
    rect rgb(110, 143, 175)
    Actor Kunde
    note right of Kunde: Bestellaufnahme
    participant Telefonnetzwerk
    Actor PizzaService
    Actor Lieferant
    end

    rect rgb(135, 135, 135)
    Kunde->>Telefonnetzwerk: (1) Anruf tätigen
    Telefonnetzwerk->>PizzaService: (1) Anruf weiterleiten
    end

    rect rgb(155, 130, 130)
    PizzaService->>Telefonnetzwerk: (2) Begrüßung und Bestellung anfordern
    Telefonnetzwerk->>Kunde: (2) Begrüßung und Aufforderung empfangen
    end

    rect rgb(130, 155, 130)
    Kunde->>Telefonnetzwerk: (3) Wunschpizza nennen
    Telefonnetzwerk->>PizzaService: (3) Pizza weiterleiten
    end

    rect rgb(155, 155, 100)
    PizzaService->>Telefonnetzwerk: (4) Adresse anfordern
    Telefonnetzwerk->>Kunde: (4) Aufforderung empfangen
    Kunde->>Telefonnetzwerk: (5) Adresse nennen
    Telefonnetzwerk->>PizzaService: (5) Adresse weiterleiten
    end

    rect rgb(100, 120, 155)
    PizzaService->>Telefonnetzwerk: (6) Namen anfordern
    Telefonnetzwerk->>Kunde: (6) Aufforderung empfangen
    Kunde->>Telefonnetzwerk: (7) Namen nennen
    Telefonnetzwerk->>PizzaService: (7) Namen weiterleiten
    end

    rect rgb(155, 140, 130)
    PizzaService->>Telefonnetzwerk: (8) Bestellung bestätigen und Lieferzeit mitteilen
    Telefonnetzwerk->>Kunde: (8) Bestätigung empfangen
    end

    rect rgb(140, 140, 140)
    Kunde->>Telefonnetzwerk: (9) Verabschiedung
    Telefonnetzwerk->>PizzaService: (9) Verabschiedung weiterleiten
    PizzaService->>Telefonnetzwerk: (10) Gespräch beenden
    Telefonnetzwerk->>Kunde: (10) Gesprächsende
    end

    rect rgb(129, 104, 155)
    note right of Kunde: Liefererung
    PizzaService->>Lieferant: (11) Lieferung anfragen mit allen Infos
    Lieferant->>PizzaService: (11) Lieferung annehmen
    PizzaService->>Lieferant: (12) Lieferung Übergeben
    Lieferant->>Kunde: (13) Lieferung ausliefern
    Kunde->>Lieferant: (13) Lieferung annehmen
    end

(c) In der Vorlesung wurde die Unterscheidung in Steuerdaten und Nutzdaten diskutiert. Finden Sie hierzu Beispiele im Pizza-Service-Modell.

Nutzdaten: Pizza Steuerdaten: Name und Adresse

(d) Wie wirkt es sich auf die anderen Schichten aus, wenn Sie über einen Messengerdienst wie Signal oder WhatsApp statt einem Telefonanruf bestellen? Erläutern Sie außerdem kurz, inwiefern die Schichtentrennung hiervon betroffen ist.

Lösung

Das wirkt sich nicht aus, da das Dienstkonzept unabhängig von der Implementierung ist. Genau darauf zielt die Schichtentrennung

Falsch

Anwendungsschicht: Änderung von Telefonprotkoll zu Nachrichtenprotokoll Transport der Nachricht:

  • Telefone verwenden (PSTN) Protokoll
  • Messenger verwenden Internetprotokoll

Datenübertragung: Findet verschlüsselt statt zwischen dem Absender und Empfänger nicht wie beim Telefonat


2. Bestandteile des Schichtenmodells (H)

Der Kommunikationsaustausch zwischen den Schichten in Rechnernetzen erfolgt über verschiedene Daten-Einheiten.

(a) Wie entsteht eine Protocol Data Unit (PDU) aus einer Service Data Unit (SDU)?

→ Nach Schnittstelle wird IDU zu wird ID von IDU zu SDU

Eine Protocol Data Unit (PDU) entsteht aus einer Service Data Unit (SDU) durch den Prozess der Encapsulation, bei dem die SDU von einer höheren Schicht an eine niedrigere Schicht übergeben und mit zusätzlichen Steuerungsinformationen, wie Headern und Trailern, ergänzt wird. Diese zusätzlichen Informationen sind notwendig, um die Daten korrekt nach den Anforderungen des verwendeten Netzwerkprotokolls zu übertragen und zu verarbeiten.

(b) Eine Protokollinstanz auf Schicht N tauscht PDUs mit ihrer Peer-Entity aus.

  1. Auf welcher Schicht befindet sich die Peer-Entity?
    • Schicht N
  2. Wie ist der Zusammenhang zwischen PDU und SDU auf den Schichten N und N – 1? 2.1: (N-1)-SDU = (N)-PDU, daraus ergibt sich 2.2: (N-1)-PDU = (N)-PDU + (N-1)-PCI
  3. Beschreiben Sie den Weg einer Nutzlast jeweils vertikal durch die Schichten in eigenen Worten.
    • Nutzlast beinhaltet Nutzerdaten oder Informationen
    • Jede Schicht wie TCP/IP fügt ihre eigene Steuerungsinformationen zu den Nutzdaten hinzu bevor diese an die nächste Schicht weitergegeben werden, damit die nächste Schicht weiß was mit der Nutzlast (=Payload) zu tun ist
    • Nutzlast ist der Hauptgrund für die Datenübertragung

(c) Schnittbildung: Ordnen Sie jeder der folgenden zwei Abbildungen einen der Begriffe Dienstschnitt, Protokollschnitt oder Systemschnitt zu. Begründen Sie Ihre Wahl kurz.

i)

graph LR
    LMU(LMU) --> DFN(DFN)
    DFN --> USRN[United States Research Network]
    USRN --> MIT(MIT Boston)

DFN und USRN grouped

graph LR
    LMU(LMU) --> DFN(DFN)
    DFN --> USRN[United States Research Network]
    USRN --> MIT(MIT Boston)
graph LR
    LMU(LMU) --> Internet
    Internet --> MIT(MIT Boston)
  • Systemschnitt
    • Das Internet dient hier als ein Dienstschnittstelle, die allen beteiligten Parteien, unabhängig von ihren individuellen Netzwerken, eine standardisierte Schnittstelle bietet. Diese Schnittstelle erleichtert die Interoperabilität, indem sie ein gemeinsames Set von Diensten bereitstellt, wie zum Beispiel die Übertragung auf Basis des Internetprotokolls (IP), das von allen Parteien genutzt werden kann.

ii)

  • Protokollschnitt
    • zwischen Peer-Entitäten zweier kommunizierender Endsysteme

3. RFC 768 (H)

Aufgabenstellung

Um eine Standardisierung der Techniken und Entwicklungen des Internets (ursprünglich Arpanet) zu ermöglichen, organisiert die IETF (Internet Engineering Task Force) eine Standardisierungsform, die RFCs (Request for Comments). Ein RFC beginnt mit dem Aufruf ein Architekturproblem bei Rechnernetzen zu lösen, als Aufforderung zur Einreichung von Kommentaren.

Durch Entwicklung, Prüfung und Implementierung der RFCs wird dieser vom Entwurf zum Standard. Über RFCs werden Technologien wie TCP, IP, HTTP als offene Standards definiert.

RFC 768 aus dem Jahr 1980 ist ein einfaches aber oft implementiertes RFC. Es wird später in der Vorlesung noch genauer beleuchtet. Verschaffen Sie sich einen Überblick zum RFC 768 (https://tools.ietf.org/html/rfc768) und beantworten Sie folgende Fragen:

(a) Erklären Sie was RFC 768 beschreibt und wofür es verwendet wird.

  • Beschreibt UDP
    • als extra zum IP
    • Ziel Nachrichten an andere Programme mit so wenig Protokollmechanismen wie möglich
      • Transaktion orientiert
      • empfang und duplikat sicherheit sind nicht gegeben

Summary

RFC 768 definiert das User Datagram Protocol (UDP), das eine Methode bietet, um Datenpakete über ein IP-Netzwerk zu senden, ohne dass eine Verbindung aufgebaut werden muss. UDP wird genutzt, um Nachrichten mit minimalem Protokollaufwand zu senden. Das Protokoll ist transaktionsorientiert, jedoch sind weder die Zustellung noch die Duplikatfreiheit der Daten garantiert.

(b) Welches für das Protokoll zentrale Merkmal erwähnt das Dokument?

Summary

Das zentrale Merkmal von UDP, das im RFC 768 hervorgehoben wird, ist die Einfachheit und Effizienz des Protokolls, das keine garantierte Zustellung bietet. Dies ermöglicht schnelle und effiziente Kommunikation, besonders nützlich in Anwendungen, bei denen Geschwindigkeit wichtiger ist als absolute Zuverlässigkeit.

(c) Angenommen Sie möchten nun eine Pizza wie in Aufgabe 1 über RFC 768 statt per Telefon bestellen. Die technischen Einzelheiten können dabei vernachlässigt werden. Welche Schwierigkeiten ergeben sich nun durch die Eigenschaften des Protokolls gegenüber einer Telefonverbindung?

Summary

Die Nutzung von UDP für die Bestellung einer Pizza könnte einige Probleme mit sich bringen:

  • Unzuverlässige Zustellung: Da UDP keine Zustellungsgarantie bietet, könnte die Bestellung verloren gehen, ohne dass Sender oder Empfänger davon erfahren.
  • Reihenfolge der Lieferung: UDP garantiert nicht, dass Pakete in der Reihenfolge ihres Sendens ankommen. Bestelldetails könnten in falscher Reihenfolge ankommen und Verwirrung stiften.
  • Fehlende Bestätigung: Es erfolgt keine automatische Bestätigung des Empfangs einer Nachricht, was bedeutet, dass der Kunde nicht sicher sein kann, ob die Bestellung erfolgreich war.

Diese Eigenschaften machen UDP weniger geeignet für kritische Kommunikationsaufgaben wie das Bestellen einer Pizza, bei denen Zuverlässigkeit und Bestätigung wichtig sind.