Web- und Netzwerktechnologie

Theorien zu den verschiedenen Systemen in der Web- und Netzwerktechnologie

Theorien zu den verschiedenen Systemen in der Web- und Netzwerktechnologie


Set of flashcards Details

Flashcards 268
Students 15
Language Deutsch
Category Computer Science
Level University
Created / Updated 17.12.2022 / 13.07.2023
Weblink
https://card2brain.ch/box/20221217_web_und_netzwerktechnologie
Embed
<iframe src="https://card2brain.ch/box/20221217_web_und_netzwerktechnologie/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>

Was muss geschehen für eine Verbindung zu schliessen?

Um die Verbindung zu schliessen, wird ein Closing Handshake durchgeführt:

  • Die Seite, welche die Verbindung schliessen möchte, muss dazu ein Frame mit dem Befehlscode ”0x8“ senden.

  • Empfängt eine Seite einen Close-Frame, ohne zuvor selbst einen Close-Frame gesendet zu haben, muss sie einen Close-Frame als Antwort senden.

  • Nachdem eine Seite sowohl einen Close-Frame empfangen als auch gesendet hat, muss sie die TCP-Verbindung trennen.

  • Durch dieses Vorgehen stellt es auch kein Problem dar, falls beide Seiten zur selben Zeit die Verbindung trennen möchten: Da beide Seiten parallel einen Close-Frame senden und kurz darauf den der anderen Seite empfangen, können sie die Verbindung direkt trennen.

Was sind die Eigenschaften von WebSocket?

  • bidirektional (full-duplex)

  • internet-tauglich

  • sicher; mittels TLS

  • plattformunabhängig; Java, JavaScript, C++, ...

Was sind keine Eigenschaften bi WebSocket?

  • dauerhaft
    • WebSocket-Verbindungen werden in einem Internet-Kontext betrieben, d.h. Webserver, Firewall, Routers, ... Deshalb können WebSocket-Verbindungen durch solche Komponenten abgebaut werden, falls Inaktivität über eine gewisse Periode festgestellt wird.

Was muss der Kommunikationspartner bereitstellen?

  • Der Upgrade Request ist ein HTTP GET Request.

  • Der Kommunikationspartner (Server) muss einen entsprechenden HTTP-Endpoint bereitstellen, der den Upgrade Request entgegennehmen kann.

Was ist der Unterschied zwischen HTTP und WebSocket?

HTTP ist:

  • Unidirectional (client always initiates request)

  • Stateless (closed by the server)

  • half-duplex (request-response pattern)

WebSocket ist:

  • Bidirectional (client and server can send messages)

  • Stateful (connection is persistent)

  • full-duplex (client and server can send messages in dependently of each other)

WebSocket in Python:

Das WebSocket-Protokoll wird von allen gängigen Programmiersprachen mit entsprechenden Bibliotheken für Client und Server unterstützt.

Keine Lösung

 

Welche Aussagen zum WebSocket Protokoll sind korrekt?

WebSocket ist ein one-to-many Protokoll.

Mit WebSocket können mehrere Clients bedient werden.

Das Applikationsprotokoll ist bei WebSocket gegeben.

Der initiale Request kann auch mit dem Schema "http" gestartet werden.

Der initiale Request ist ein HTTP-Request

Der initiale Request ist eine HTTP-PUT Request.

Der HTTP-Endpoint für den initialen Request ist spezifiziert.

Welche Aussagen zum WebSocket Upgrade Request sind korrekt?

Welche Aussagen zum WebSocket Applikationsprotokoll sind korrekt?

Welche Eigenschaften hat HTTP?

  • unidirektional, synchron, stateless

  • one-to-one

  • internet-tauglich

  • sicher; mittels TLS

  • plattformunabhängig; Java, JavaScript, C++, ...

Welche Eigenschaften hat HTTP nicht?

keine Push vom Server möglich

  • Der Kommunikationsaufbau muss immer vom Client erfolgen, da die Firewalls einen initialen Verbindungsaufbau vom Server zu einem Cleint unterbinden müssen.

Was sind Eigenschaften von WebSocket?

  • bidirektional (full-duplex), stateful, persistent

  • one to one

  • internet tauglich

  • sicher mittels TLS

  • plattformunabhängig; Java, JavaScript, C++, ...

Was sind keine Eigenschaften von WebSocket?

kein one-to-many Broadcast an mehrere Clients

  • Ein one-to-many Verhalten muss im Server ausprogrammiert werden, d.h. es braucht ein Management der offenen WebSocket-Verbindungen.

"BeyondHTTP & Websocket": Motivation

Was ist damit gemeint?

HTTP:

  • Punkt-zu-Punkt Verbindung (one-to-one)

  • Request-Response Modell => Unidirektional => Client/Server

  • Schwergewichtig

WebSocket

  • Punkt-zu-Punkt Verbindung (one-to-one)

  • Bidirektional => gleichwertige Kommunikationspartner

  • Kein Applikationsprotokoll spezifiziert

=> soll leichtgewichtiges Protokoll sein

=> soll One-to-Many Verbindungen unterstützen

=> soll geringen Kommunikations-Overhead aufweisen

Alternative zu HTTP/Websocket: MQTT

Keine Lösung

Was implentiert MQTT?

MQTT implementiert das Publish/Subscribe-Pattern.

  • Der Paradigmenwechsel von einer Request/Response-zu einer ereignisgesteuerten Publish/Subscribe-Architektur ist hierbei der zentrale Aspekt. Sie ersetzt die Punkt-zu-Punkt-Verbindungen durch einen zentralen Server (Broker), zu dem sich Datenproduzenten (Publisher) und Datennutzer (Subscriber) gleiche rmassen verbinden können.
  • Das Senden (publish) und Empfangen (subscribe) von Nachrichten funktioniert über sogenannte Topics

Was ist das MQTT für ein Protokoll und was sind seine Eigenschaften?

  • MQTT ist ein asynchrones Protokoll.

  • MQTT's Eigenschaften sind:

    • ist für unzuverlässige Netze mit geringer Bandbreite und hoher Latenz zeit entwickelt

    • ist robust bei Datenverlusten und schlechten Verbindungen

    • hat geringen Kommunikationsoverhead

    • kann mit TLS verschlüsselt werden

Was bedeutet der Begriff MQTT Topic?

  • sind eine Form von Adressen

  • jede Nachricht ist einem Topic zugeordnet

  • ist von der Funktions- und Schreibsyntax Ordnern in einem Filesystem sehr ähnlich

    • Beispiel: “5OG/Zimmer5/Temperatursensor/Temperatur”

Was bedeutet der Begriff MQTT Client?

  • ist der “Endnutzer” der Kommunikation

  • kann Nachrichten eines Topics empfangen (Subscriber)

  • kann Nachrichten im (gleichen) Topic veröffentlichen (Publisher)

Was bedeutet der Begriff MQTT Broker?

  • ist das Backend für MQTT

  • verwaltet und administriert jeglichen Datenverkehr:

    • Speicherung, Verwaltung und Verteilung aller Informationen zu Topics und deren Subscribers

Was ist der MQTT Broker?

Der MQTT-Broker ist:

  • eine Software, die auf einem Computer (vor Ort oder in der Cloud) läuft.

  • selbst installiert oder von einem Drittanbieter gehostet.

  • sowohl in Open-Source-als auch in proprietären Implementierungen verfügbar.

Was sind die MQTT Komponenten beim Broker?

  • Zentrale Komponente

  • Kommunikationsschaltstelle

  • Unterschiedliche Implementationen verfügbar wie:

    • Referenz Implementation Eclipse Mosquitto => https://mosquitto.org/

    • Open Source MQTT Broker  VerneMQ => https://vernemq.com/

    • Free, public MQTT Broker Flespi => flespi.io

Was sind die MQTT Komponenten beim Client?

  • Für jede Programmiersprache verfügbar

  • Kann gleichzeitig sein:

    • Publisher => Sender von MQTT Messages

    • Subscriber => Empfänger von MQTT Messages

Was ist ein weiters wichtigs Konzept beim MQTT?

Ein weiteres wichtiges Konzept sind die drei Servicequalitäten bei der Datenübertragung 0, 1 und 2.

 

Auf was basiert MQTT?

MQTT basiert auf TCP/IP, deshalb ist eine grosse Zuverlässigkeit bei der Übertragung bereits gegeben.

Wo können Übertragungsfehler entstehen?

  • Bei mobilen Netzen mit vielen Übertragungsfehlern durch Verbindungsprobleme ist dies aber nicht ausreichend.
  • Daher hat das MQTT Protokoll Mechanismen eingebaut, die das erfolgreiche Übertragen von Nachrichten garantieren: Die Zusicherung variiert von keiner Garantie (Level 0) über die, dass die Nachricht mindestens einmal ankommt (Level 1), bis hin zur Garantie, dass die Nachricht genau einmal ankommt (Level 2). (Der Unterschied zwischen Level 1 und 2 liegt darin, dass es bei Level 1 passieren kann, dass eine Nachricht öfter einen Client erreicht.)

Wiso sollte ein der passende Level gewählt werden?

Je nach Anwendungsfall sollte der passende Level gewählt werden, denn je höher der Level, desto höher ist die benötigte Bandbreite.

Was sind die 5 wichtigsten Features für MQTT?

  • MQTT "publish/subscribe" Architektur

  • Ideal für Constrained Netzwerke

    • "low bandwidth, high latency, data limits, and fragile connections"

  • Quality of Service (QoS)

    • "The higher the QoS, the lower the performance"

  • MQTT Clients können bei einem Verbindungsunterbruch benachrichtigt werden

    • "Last will and testament"

  • MQTT Clients sind einfach zu implementieren

MQTT in Python

Keine Lösung

Was bedeutet die IP-Adresse "0.0.0.0"

Der Webserver bindet sich an einen Port.

Die http Message trennt Header und Body durch eine leere Zeile.

Die erste Zeile einer http Request Messsage besteht aus: