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)
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 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++, ...
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.
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
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
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 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.
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
Was bedeutet die IP-Adresse "0.0.0.0"
Der Webserver bindet sich an einen Port.
Die erste Zeile einer http Request Messsage besteht aus: