Die Anwendungsschicht

Lerne, wie die Anwendungsprotokolle des Internets funktionieren und warum sie so aufgebaut sind. Vergleiche Client-Server- und Peer-to-Peer-Architekturen und wähle zwischen TCP und UDP. Lies HTTP-Nachrichten, erkläre Cookies, Caching, HTTP/2 und HTTP/3 über QUIC und verfolge DNS-Abfragen und die Zustellung von E-Mails. Berechne Verteilungsdauern in Peer-to-Peer-Netzen, erkläre adaptives Videostreaming und Content Delivery Networks und schreibe einfache UDP- und TCP-Client- und Serverprogramme in Python.

MittelEinheit 2 von 8 in Kurs: Computernetzwerke – Internetprotokolle, TCP/IP und Routing

Was du lernst

  1. Vergleiche Client-Server- und Peer-to-Peer-Architekturen, beschreibe, wie Anwendungsprozesse über Sockets Nachrichten austauschen, und ordne den Anforderungen einer Anwendung die Dienste von TCP und UDP zu.
    • Vergleiche Client-Server- und Peer-to-Peer-Architekturen
      Beschreibe, wie die Architekturen Hosts Rollen zuweisen, warum Peer-to-Peer-Architekturen mit ihrer Nutzerzahl skalieren und welche Herausforderungen die Architekturen mit sich bringen.
    • Beschreibe die Kommunikation zwischen Prozessen und wähle einen Transportdienst
      Erkläre Sockets, die Adressierung von Prozessen und was ein Anwendungsschichtprotokoll festlegt, und entscheide, ob eine Anwendung TCP oder UDP nutzen sollte.
  2. Lies und analysiere HTTP-Nachrichten und -Verbindungen, erkläre die Funktionsweise von Cookies und Caches und beschreibe, was HTTP/2 und HTTP/3 an der Übertragung von Nachrichten ändern.
    • Lies HTTP-Nachrichten und vergleiche Verbindungstypen
      Interpretiere HTTP-Anfragen und -Antworten und berechne, wie sich persistente und nicht persistente Verbindungen auf die Ladezeit einer Seite auswirken.
    • Erkläre, wie Cookies und Webcaches funktionieren
      Beschreibe, wie Websites Nutzer mithilfe von Cookies über das zustandslose HTTP wiedererkennen, und berechne, wie ein Caching-Proxy und bedingte Anfragen Verzögerung und Datenverkehr verringern.
    • Erkläre, wie HTTP/2 und HTTP/3 mit QUIC das Web beschleunigen
      Beschreibe Head-of-Line-Blocking und erkläre, wie die Aufteilung in HTTP/2-Frames und HTTP/3 über QUIC Verzögerungen verringern, während die Bedeutung der HTTP-Nachrichten gleich bleibt.
  3. Verfolge eine Namensauflösung durch die DNS-Hierarchie, lies DNS-Einträge und -Nachrichten und erkläre, wie Caching und ein verteilter Aufbau DNS schnell und robust halten.
    • Verfolge eine Namensauflösung durch die DNS-Hierarchie
      Beschreibe die Dienste von DNS und die Aufgaben von Root-Nameservern, TLD-Nameservern, autoritativen Nameservern und lokalen DNS-Servern und verfolge die Anfragen einer Namensauflösung Schritt für Schritt.
    • Lies DNS-Einträge und DNS-Nachrichten
      Interpretiere die gebräuchlichen Ressourceneintragstypen, vollziehe nach, wie Einträge die Hierarchieebenen verbinden, und lies DNS-Anfragen und -Antworten und erkenne ihre Sicherheitsschwächen.
  4. Verfolge eine Nachricht vom Sender zum Empfänger über SMTP, lies Dialoge zur E-Mail-Übertragung und Nachrichtenformate und erkläre, wie Nutzer ihre E-Mails mithilfe von Zugriffsprotokollen lesen.
    • Verfolge die Übertragung einer E-Mail mit SMTP
      Beschreibe die Bestandteile des E-Mail-Systems, verfolge einen SMTP-Dialog zwischen Mailservern und erkläre, wie E-Mails eingeliefert und gefälschte Absender erkannt werden.
    • Erkläre Nachrichtenformate und Protokolle für den E-Mail-Zugriff
      Lies den Header und die MIME-Struktur einer E-Mail und vergleiche IMAP, POP3 und Webmail als Möglichkeiten, E-Mails zu lesen.
  5. Berechne, warum die Peer-to-Peer-Dateiverteilung skaliert, erkläre, wie BitTorrent eine Datei verteilt, und beschreibe, wie adaptives Streaming und Content Delivery Networks Videos an Millionen Zuschauer ausliefern.
    • Berechne die Verteilungsdauer in P2P-Netzen und erkläre BitTorrent
      Vergleiche die Mindestdauer für die Verteilung einer Datei mit einem Server und mit Peer-to-Peer und erkläre, wie BitTorrent Dateistücke, Rarest-First-Anfragen und den wechselseitigen Austausch nutzt.
    • Erkläre adaptives Videostreaming über HTTP
      Setze Videobitraten zum Netzwerkdurchsatz in Beziehung und erkläre, wie DASH-Clients Segmente für eine flüssige Wiedergabe auswählen.
    • Erkläre, wie CDNs Inhalte ausliefern
      Beschreibe, warum Inhalteanbieter CDNs nutzen, vergleiche Möglichkeiten zur Platzierung von CDN-Servern und verfolge, wie DNS eine Anfrage zu einem nahe gelegenen CDN-Server leitet.
  6. Nutze das Socket-Modul von Python, um UDP- und TCP-Clients und -Server zu programmieren, und erkläre, wie sich das Verhalten der Programme aus dem jeweiligen Transportdienst ergibt.
    • Programmiere einen UDP-Client und einen UDP-Server
      Schreibe und erkläre ein UDP-Client-Server-Paar in Python, einschließlich Adressierung, Codierung, Zeitüberschreitungen und der Grenzen der Datagrammübertragung.
    • Programmiere einen TCP-Client und einen TCP-Server
      Schreibe und erkläre ein TCP-Client-Server-Paar in Python, verarbeite den TCP-Bytestrom korrekt und nutze einen Socket, um HTTP von Hand zu sprechen.

Anwendungsschicht einfach erklärt

6 Kapitel

1

Anwendungsentwurf und Transportdienste

Vernetzte Programme benötigen einen Plan, wer mit wem kommuniziert, und einen Dienst, der ihre Daten überträgt. Ein Browser, der eine Datei abruft, und ein Spiel, das Positionsaktualisierungen sendet, können dasselbe Internet nutzen und dabei unterschiedliche Entwurfsentscheidungen treffen. Verfolge einen Austausch von den Prozessen an seinen Enden über deren Sockets und vergleiche dann, was TCP, UDP und sichere Transportdienste hinsichtlich Zuverlässigkeit, Zeitverhalten, Durchsatz und Schutz bieten.

1.1 Wo Anwendungsprogramme laufen

Eine Netzwerkanwendung besteht aus Programmen, die auf Endsystemen laufen: Smartphones, Laptops und Servern. Ihre Prozesse tauschen Nachrichten über das Netz aus. Router und Switches leiten die Pakete weiter; auf ihnen muss kein neues Anwendungsprogramm installiert werden, wenn jemand einen neuen Dienst erstellt.

Zwei Arten, die Arbeit aufzuteilen

Eine Anwendungsarchitektur beschreibt, wie die Anwendung Arbeit auf Hosts verteilt. Sie ist von der Schichtenarchitektur des Netzes getrennt. Der Entwickler entscheidet, wo Programme laufen, und verlässt sich darauf, dass das bestehende Netz sie verbindet.

Bei einer Client-Server-Architektur kontaktieren Clients einen ständig eingeschalteten Server unter einer bekannten Adresse. Ein Browser fordert ein Dokument von einem Webserver an, der das Dokument zurückgibt. Andere Browser müssen für diesen Austausch nicht online sein. Ein beliebter Dienst kann seine Serverrolle auf Tausende Rechner in Rechenzentren verteilen; ein öffentlicher Name kann diese Gruppe repräsentieren. Geräte, Strom, Kühlung und Internetverbindungen kosten Geld.

Eine Peer-to-Peer-Architektur, kurz P2P, ermöglicht den direkten Datenaustausch zwischen Nutzergeräten. Ein Peer kann ein Dateistück anfordern und auch Stücke hochladen, die er bereits besitzt. Peers können die Verbindung trennen oder Adressen ändern, sodass die Anwendung verfügbare Peers finden und bei wechselnder Teilnahme weiterarbeiten muss.

ArchitekturWer stellt die Inhalte bereit?Was geschieht, wenn Nutzer beitreten?
Client-ServerEigens dafür vorgesehene ServerhostsMehr Anfragen erreichen die Server des Dienstes.
P2PTeilnehmende NutzerhostsDie Nachfrage wächst und Peers steuern Uploadkapazität bei.
Verfolge einen Austausch

Angenommen, eine Forschungsgruppe verteilt einen großen Datensatz. Bei einer Client-Server-Architektur lädt jeder Forschende eine Kopie vom Server der Gruppe herunter. Zehn neue Forschende bedeuten zehn weitere Kopien, die dieser Server hochladen muss. Bei einer P2P-Architektur senden Forschende, die bereits einige Stücke besitzen, diese an neu Hinzukommende. Jede hinzukommende Person kann neben zusätzlicher Nachfrage auch Kapazität einbringen. Das ist Selbstskalierung: Die Ressourcen der Anwendung wachsen mit der Teilnahme.

Selbstskalierung hängt dennoch von nützlichen Beiträgen ab. Ein Peer mit einer langsamen Uploadverbindung steuert weniger Kapazität bei als einer mit einer schnellen Verbindung. Viele Anschlüsse von Privathaushalten sind asymmetrisch: Herunterladen ist schneller als Hochladen. Ein Peer, der die Verbindung trennt, trägt nichts bei, solange er offline ist. P2P-Software muss Teilnehmer außerdem vor nicht vertrauenswürdigen Peers schützen und Nutzer dazu anregen, hochzuladen, statt nur Daten zu beziehen.

Zentrale Koordination und direkte Übertragung

Eine hybride Architektur kombiniert Serverkoordination mit P2P-Datenübertragung. Ein BitTorrent-Tracker informiert einen Peer über andere Peers; er muss die Datei nicht selbst senden. Ebenso kann ein Anrufdienst Teilnehmer über einen Server finden, ihre Geräte Medien direkt austauschen lassen und eine Weiterleitung nutzen, wenn kein direkter Pfad verfügbar ist. Ordne den Pfad, über den die Daten übertragen werden, getrennt von dem Pfad ein, über den die Übertragung eingerichtet wird.

Die Wörter Client und Server beschreiben auch Rollen bei einem einzelnen Austausch. Wenn Peer Mira eine Anfrage an Peer Leo stellt, ist Mira bei diesem Austausch der Client und Leo der Server. Kurz darauf können sie die Rollen tauschen. P2P beseitigt die Abhängigkeit von eigens dafür vorgesehenen Inhaltsservern; die Rollen der anfragenden und antwortenden Seite bleiben bestehen.

Wichtige Erkenntnisse

  • Anwendungsprogramme laufen auf Endsystemen; der Netzkern leitet ihre Pakete weiter.
  • Client-Server-Architekturen stellen Dienstkapazität auf eigens dafür vorgesehenen Hosts bereit.
  • P2P-Teilnehmer steuern neben Nachfrage auch Uploadkapazität bei.
  • Eine hybride Architektur kann ein zentrales Verzeichnis nutzen, während Peers die Inhalte übertragen.
  • Die Rollen von Client und Server hängen davon ab, wer den jeweiligen Austausch beginnt.

1.2 Sockets, Adressen und die Wahl des Transportdienstes

Ein laufendes Anwendungsprogramm ist ein Prozess. Prozesse auf verschiedenen Hosts tauschen Nachrichten über Sockets aus, die Softwareschnittstellen zwischen Anwendungs- und Transportschicht. Der Anwendungscode bestimmt die Bedeutung der Nachricht; der Transportdienst überträgt ihre Bytes oder Datagramme.

Den empfangenden Prozess finden

Eine IP-Adresse bezeichnet einen Host, aber auf dem Host können viele Dienste laufen. Eine Portnummer bezeichnet einen Transportendpunkt auf ihm. Um einen HTTPS-Dienst unter 203.0.113.10 zu kontaktieren, richtet ein Client seine Anfrage normalerweise an Port 443. Sein eigenes Betriebssystem weist ihm üblicherweise einen vorübergehenden, sogenannten ephemeren Quellport zu.

Ports sind 16-Bit-Werte von 0 bis 65.535. Die Systemports umfassen 0–1023, die registrierten Ports 1024–49.151 und die dynamischen Ports 49.152–65.535. Zu den gebräuchlichen Dienstports gehören HTTP 80, HTTPS 443, SMTP-Übertragung 25 und DNS 53. Ein Port ist Teil der Adressierung und sagt nicht aus, ob der Verkehr verschlüsselt oder vertrauenswürdig ist.

Die Nachrichten festlegen

Ein Anwendungsschichtprotokoll legt Nachrichtentypen, Syntax, Semantik und Austauschregeln fest. Typen unterscheiden eine Anfrage von einer Antwort. Die Syntax beschreibt Felder und Trennzeichen. Die Semantik erklärt jedem Teilnehmer, was diese Felder bedeuten. Austauschregeln bestimmen, wann ein Prozess eine Nachricht sendet und wie der Empfänger antwortet. Öffentliche Spezifikationen, häufig RFCs, ermöglichen die Kommunikation zwischen Programmen verschiedener Entwickler.

Ein Protokoll ist ein Bestandteil einer Anwendung. Das Web benötigt auch Browser, Server und Dokumente. Die Definition von HTTP allein erstellt weder einen Browser noch legt sie das Aussehen seiner Oberfläche fest.

Den Dienst passend zum Bedarf wählen

Betrachte vier Anforderungen: korrekte Übertragung, ausreichenden Durchsatz, akzeptable Verzögerung und Sicherheit. Ein E-Mail-Anhang benötigt jedes Byte. Ein Sprachanruf kann einzelne verlorene Mediendaten verkraften, leidet aber, wenn ältere Audiodaten zu spät ankommen. Ein gespeichertes Video benötigt einen anhaltenden Durchsatz nahe seiner codierten Bitrate, während ein elastischer Download die jeweils verfügbare Rate nutzen kann.

DienstWas die Anwendung erhältWas sie weiterhin selbst behandeln muss
TCPEinen zuverlässigen, geordneten Bytestrom nach dem VerbindungsaufbauNachrichtenabgrenzung, Sicherheit und schwankende Verzögerung oder schwankenden Durchsatz
UDPEinzelne Datagramme ohne VerbindungsaufbauVerlust, Duplikate, Reihenfolge und gegebenenfalls benötigte Zuverlässigkeit

TCP umfasst Flusskontrolle zum Schutz des Empfängers und Überlastkontrolle, um Überlastung im Netz zu verringern. Es bietet weder eine Mindestbandbreite noch eine Zustellfrist. UDP selbst ergänzt weder Zuverlässigkeit noch Überlastkontrolle. Seine Wahl beseitigt keine Überlastung auf dem Pfad.

Ein Spiel beispielsweise, das 30-mal pro Sekunde Positionen sendet, erzeugt etwa alle 33 ms eine neue Aktualisierung. Es kann UDP nutzen, damit eine verlorene Aktualisierung durch eine neuere ersetzt werden kann, ohne auf ihre erneute Übertragung zu warten. Der Chat des Spiels benötigt weiterhin zuverlässige Übertragung, ob durch TCP oder durch Zuverlässigkeitsmechanismen im eigenen Protokoll.

Sicherheit im Protokollstapel ergänzen

Weder TCP noch UDP verschlüsselt für sich genommen Anwendungsdaten. HTTP/1.1 und HTTP/2 nutzen für HTTPS gewöhnlich TLS über TCP. TLS ergänzt Vertraulichkeit, Integrität und Serverauthentifizierung. HTTP/3 nutzt QUIC über UDP; QUIC bietet Zuverlässigkeit, Überlastkontrolle und integriertes TLS 1.3. Gespeicherte Videos, die über HTTP ausgeliefert werden, nutzen daher TCP oder QUIC, während interaktive Anrufe Medien häufig über UDP übertragen.

Wichtige Erkenntnisse

  • IP-Adresse und Port geben an, wo ein Prozess Netzwerkverkehr empfängt.
  • Anwendungsprotokolle legen Typen, Syntax, Semantik und Austauschregeln fest.
  • TCP liefert Bytes zuverlässig und geordnet, ohne garantierte Rate oder Frist.
  • UDP erhält Datagramme, überlässt die Zuverlässigkeit aber höheren Schichten.
  • Weder TCP noch UDP verschlüsselt Daten von sich aus.
  • HTTP/3 erhält zuverlässige, sichere Datenströme von QUIC über UDP.
2

Wie HTTP Webinhalte überträgt

Beim Laden einer Seite wirken Nachrichtenformate, Verbindungsaufbau und Anfragen für mehrere Objekte zusammen. Das Verhalten hängt auch davon ab, ob der Browser eine Verbindung oder Antwort wiederverwenden kann und ob die Website den Besucher wiedererkennen muss. Lies zuerst den sichtbaren HTTP-Austausch und berechne seine wichtigsten Verzögerungen. Verfolge dann, wie Cookies, Caching und neuere HTTP-Transportverfahren den Aufwand für die Auslieferung der Seite verändern.

2.1 HTTP-Nachrichten und Verbindungszeiten

Eine Webseite besteht meist aus mehreren Objekten, jedes mit einer eigenen URL. Die HTML-Basisdatei nennt Bilder, Skripte und andere Dateien. In https://www.example.org/docs/intro.html ist https das Schema, www.example.org der Host und /docs/intro.html der Pfad.

Eine Anfrage und eine Antwort lesen

HTTP arbeitet mit Anfrage-Antwort-Austauschen. Eine HTTP/1.1-Anfrage beginnt mit Methode, Pfad und Version:

GET /docs/intro.html HTTP/1.1
Host: www.example.org
Connection: close

Die Anfragezeile und die Headerzeilen enden mit CRLF. Eine Leerzeile beendet die Header, danach folgt ein optionaler Nachrichtentext. Host ist in HTTP/1.1 erforderlich, weil mehrere Websites eine Serveradresse gemeinsam nutzen können. Connection: close fordert das Schließen der Verbindung nach der Antwort an.

GET ruft ein Objekt ab. HEAD fordert dessen Antwortheader ohne den Nachrichtentext an. POST sendet Daten im Nachrichtentext einer Anfrage; ein GET kann Formularwerte auch in der Abfragezeichenkette seiner URL mitführen. PUT speichert ein Objekt unter einer angegebenen URL und DELETE entfernt eines.

Die Antwort beginnt mit einer Statuszeile wie HTTP/1.1 200 OK, gefolgt von Headern, einer Leerzeile und dem Nachrichtentext. Content-Type bezeichnet die Darstellung; Content-Length gibt deren Länge in Byte an. Die Statusklassen sind 1xx Information, 2xx Erfolg, 3xx Umleitung, 4xx Clientfehler und 5xx Serverfehler. Ein 301 verweist in Location auf eine neue URL; 304 erlaubt die Wiederverwendung einer zwischengespeicherten Kopie. Ein 404 bedeutet, dass der Server geantwortet hat, das angeforderte Objekt sei nicht gefunden worden, nicht dass der Server unerreichbar war. Weitere nützliche Codes sind 400, 500 und 505.

HTTP ist zustandslos: Jede Anfrage lässt sich ohne frühere Anfragen verstehen. Eine Website kann trotzdem oberhalb von HTTP Anmelde- oder Warenkorbzustände verwalten. Ein gewöhnliches wiederholtes GET kann das Objekt erneut zurückgeben, während eine bedingte Anfrage eine gespeicherte Kopie überprüfen kann.

Die Umlaufzeiten zählen

Für ein Objekt über eine neue TCP-Verbindung rechne eine RTT für den Verbindungsaufbau und eine für die Anfrage und den Beginn der Antwort. Addiere dann die Übertragungszeit des Objekts. Bei RTT 30 ms, Größe 500 kB und Rate 50 Mbps:

Ttransmit=500.000×850.000.000=0,08 s

Insgesamt sind das 60 ms plus 80 ms, also 140 ms. Dieses Modell lässt DNS, TLS und Verarbeitungszeit außer Acht. Ein vollständiger TLS-1.3-Handshake über die neue TCP-Verbindung fügt eine weitere RTT hinzu.

Die Verbindung wiederverwenden oder neu öffnen

Eine nicht persistente Verbindung überträgt ein Objekt. Eine persistente Verbindung kann spätere Anfragen ohne erneuten TCP-Aufbau übertragen. Persistenz ist die Voreinstellung von HTTP/1.1, auch wenn inaktive Verbindungen irgendwann geschlossen werden.

Für ein HTML-Objekt und acht kleine Bilder, RTT 20 ms und vernachlässigbare Übertragungszeiten:

AbrufmusterUmlaufzeitenZeit
Neue Verbindung für jedes Objekt, nacheinander18360 ms
Zuerst HTML, dann acht neue Verbindungen parallel480 ms
Eine persistente Verbindung, Anfragen nacheinander10200 ms
Eine persistente Verbindung, acht Bildanfragen im Pipelining360 ms

Die Bildanfragen setzen den Empfang der HTML-Datei voraus. Selbst bei parallelem Abruf können sie erst beginnen, wenn ihre URLs bekannt sind. Zähle diese voneinander abhängigen Schritte, bevor du die Handshakes zählst. HTTP/1.1-Browser nutzen häufig mehrere Verbindungen pro Host; Pipelining ist ein Zeitmodell und keine Voraussetzung für Persistenz.

Wichtige Erkenntnisse

  • Beim Laden einer Seite werden die HTML-Datei und die von ihr referenzierten Objekte abgerufen.
  • HTTP/1.1 trennt Startzeile, Header und optionalen Nachrichtentext durch Zeilenenden und eine Leerzeile.
  • Bei einer neuen TCP-Verbindung benötigt ein Objekt vor dem zusätzlichen TLS-Aufwand etwa zwei RTTs zuzüglich Übertragungszeit.
  • Persistenz spart wiederholte Verbindungsaufbauten.
  • Auch parallele Anfragen warten, bis die HTML-Datei ihre URLs bekannt gibt.
  • Eine 404-Antwort zeigt, dass ein HTTP-Server geantwortet hat.

2.2 Nutzer wiedererkennen und Antworten wiederverwenden

HTTP-Anfragen stehen für sich, trotzdem kann sich ein Shop einen Warenkorb merken. Ein Browser kann auch ein Bild wiederverwenden, statt es erneut herunterzuladen. Cookies unterstützen die Wiedererkennung über mehrere Anfragen hinweg; Caches ermöglichen die Wiederverwendung von Antworten.

Ein Cookie verfolgen

Beim ersten Besuch erstellt shop.example.com einen Datenbankeintrag für einen Besucher und gibt Set-Cookie: id=1678 zurück. Der Browser speichert diesen Wert. Spätere passende Anfragen enthalten Cookie: id=1678, sodass der Server den Warenkorb nachschlagen kann. Das Cookie sind Daten, kein ausführbarer Code, und der Warenkorb selbst kann in der Datenbank des Servers bleiben.

Cookie-Attribute steuern seine Verwendung. Expires oder Max-Age legt eine Lebensdauer fest; ein Cookie ohne beide ist ein Sitzungscookie. Domain und Path schränken ein, zu welchen Anfragen es passt. Secure beschränkt das Senden auf HTTPS, HttpOnly verhindert den Zugriff durch Seitenskripte und SameSite steuert das Senden im Kontext anderer Websites. Die Sitzungswiederherstellung kann Sitzungscookies erhalten, wenn ein Browser eine frühere Sitzung wiederherstellt.

Erstanbieter-Cookies gehören zur besuchten Website. Ein eingebetteter Drittanbieterdienst kann Cookies über verschiedene Websites hinweg nutzen, um einen Browser wiederzuerkennen. Safari blockiert Drittanbieter-Cookies standardmäßig; Firefox trennt sie nach Websites; Chrome bietet Nutzern Einstellungsmöglichkeiten und blockiert sie im Inkognitomodus. Die Regeln der Europäischen Union verlangen eine Einwilligung für Cookies, die zur Bereitstellung eines angeforderten Dienstes nicht unbedingt erforderlich sind.

Eine Anfrage an den Cache verfolgen

Ein Webcache speichert HTTP-Antworten. Ein Browser hat seinen eigenen Cache. Ein Caching-Proxy sitzt zwischen Clients und Ursprungsservern: Er liefert bei einem Cachetreffer direkt eine Antwort oder ruft sie bei einem Cachefehltreffer ab, speichert sie und leitet sie weiter. Er handelt gegenüber dem Browser als Server und gegenüber dem Ursprungsserver als Client. Ein Proxy kann auch ohne Caching existieren.

Ein Treffer in einem nahe gelegenen Cache verringert Verzögerung, Last am Ursprungsserver und Verkehr auf der Zugangsverbindung. Bei 90 Anfragen pro Sekunde mit durchschnittlich je 1 Mbit beträgt die angebotene Last 90 Mbps. Auf einer 100-Mbps-Zugangsverbindung beträgt die Verkehrsintensität 0,9; dabei können Warteschlangen groß werden. Eine Trefferquote von 40 % lässt 60 % über die Verbindung laufen: 54 Mbps und eine Intensität von 0,54. Wenn Treffer 10 ms und Fehlzugriffe 200 ms dauern, beträgt die durchschnittliche Antwortzeit:

T=0,4(10)+0,6(200)=124 ms

Diese Verkehrsberechnung setzt für die Gruppe der Treffer und die der Fehlzugriffe dieselbe durchschnittliche Objektgröße voraus. Eine allein anhand der Anzahl der Anfragen gemessene Trefferquote muss bei unterschiedlichen Objektgrößen nicht dem Anteil der eingesparten Bytes entsprechen.

Vor der Wiederverwendung die Aktualität prüfen

Ein bedingtes GET sendet If-Modified-Since mit einem gespeicherten Änderungsdatum oder If-None-Match mit einem gespeicherten ETag. Ein unverändertes Objekt ergibt 304 Not Modified ohne Objektdaten im Nachrichtentext. Der Cache verwendet seine Kopie erneut. Ein geändertes Objekt ergibt 200 OK mit dem Ersatz. Die Prüfung spart die Übertragung des Nachrichtentexts, benötigt aber weiterhin einen Umlauf zum Ursprungsserver.

AntwortdirektiveBedeutung
max-age=3600Eine Kopie kann 3.600 Sekunden lang aktuell bleiben.
no-cacheSpeichern, falls erlaubt, aber vor der Wiederverwendung prüfen.
no-storeDie Antwort nicht speichern.
privateEin privater Cache darf sie speichern; gemeinsam genutzte Caches dürfen es nicht.

Ein gemeinsam genutzter Proxy kann normalerweise die Inhalte einer HTTPS-Verbindung, die ihn durchläuft, nicht einsehen. Browsercaches und CDN-Server, die im Auftrag einer Website ausliefern, können an den Endpunkten zwischenspeichern, an denen diese Antworten in lesbarer Form vorliegen.

Wichtige Erkenntnisse

  • Cookies ermöglichen einem Server, einen Browser über unabhängige HTTP-Anfragen hinweg wiederzuerkennen.
  • Cookie-Attribute steuern Lebensdauer, Geltungsbereich und Zugriff.
  • Ein Caching-Proxy übernimmt sowohl Client- als auch Serverrollen.
  • Cachetreffer können Verzögerung und Verkehr auf der Zugangsverbindung verringern.
  • Eine 304-Antwort bestätigt ein gespeichertes Objekt, ohne dessen Nachrichtentext erneut zu senden.
  • no-cache verlangt eine Prüfung; no-store verbietet das Speichern.
  • HTTPS beschränkt, was ein gewöhnlicher gemeinsam genutzter Proxy zwischenspeichern kann.

2.3 Frames, Datenströme und HTTP/3

HTTP-Versionen behalten die Bedeutung von Methoden, Statuscodes, Feldern und URLs bei. Ein 404 bedeutet weiterhin, dass die angeforderte Ressource nicht gefunden wurde. Was sich ändert, ist die Übertragung von Anfragen und Antworten: HTTP/1.1 nutzt Textnachrichten, während HTTP/2 und HTTP/3 binäre Frames nutzen.

Kleine Antworten vorankommen lassen

Auf einer HTTP/1.1-Verbindung können geordnete Antworten dazu führen, dass ein kleines Objekt hinter einem großen warten muss. Das ist Head-of-Line-Blocking auf Anwendungsebene. Mehrere TCP-Verbindungen zu öffnen, verkürzt diese Wartezeit, verursacht aber zusätzlichen Verbindungsaufbau und verschafft der Seite mehrere konkurrierende, überlastkontrollierte Verbindungen.

HTTP/2 teilt Nachrichten in HTTP-Frames und weist jedem Anfrage-Antwort-Austausch einen Datenstrom zu. Der Sender verschachtelt Frames verschiedener Datenströme auf einer TCP-Verbindung. Die Headerkompression HPACK verringert wiederholte Felddaten. Prioritäten können steuern, welche Antworten zuerst berücksichtigt werden.

Für einen vereinfachten Vergleich hat eine große Antwort 1.000 Frames und acht kleine haben je zwei Frames. Pro Zeitschlitz wird ein Frame gesendet. Wird die große Antwort zuerst gesendet, werden die kleinen Antworten in den Zeitschlitzen 1.002 bis 1.016 fertig, im Durchschnitt bei 1.009. Wird abwechselnd je ein Frame aus jedem noch nicht abgeschlossenen Datenstrom gesendet, werden die kleinen Antworten in den Zeitschlitzen 11 bis 18 fertig, im Durchschnitt bei 14,5. Die große Antwort wird in Zeitschlitz 1.016 fertig. Die Verschachtelung ändert die Fertigstellungszeiten, ohne die Übertragungsrate der Verbindung zu erhöhen.

HTTP/2 spezifizierte auch Server Push, bei dem Inhalte vor einer Anfrage gesendet werden. Große Browser haben es deaktiviert. Eine 103 Early Hints-Antwort weist stattdessen auf Ressourcen hin, sodass der Browser beginnen kann, sie anzufordern.

Die verbleibende Blockierung finden

TCP liefert einen geordneten Bytestrom. Fehlen Bytes, warten spätere Bytes auf die Wiederherstellung, selbst wenn sie Frames eines anderen HTTP/2-Datenstroms enthalten. HTTP/2 beseitigt die Blockierung durch die Reihenfolge der Antworten, behält aber diese Blockierung auf Transportebene bei.

HTTP/3 bildet HTTP auf QUIC ab, ein Transportprotokoll über UDP, und komprimiert Header mit QPACK. QUIC bietet zuverlässige Datenströme, Fluss- und Überlastkontrolle sowie Sicherheit durch TLS 1.3. Jeder Datenstrom hat seine eigene Auslieferungsreihenfolge. Fehlende Daten in einem Datenstrom verhindern für sich genommen nicht die Auslieferung bereits empfangener Daten in einem anderen. Gemeinsame Überlastkontrolle und Abhängigkeiten innerhalb der Anwendung können weiterhin mehrere Datenströme betreffen.

QUIC nutzt Verbindungs-IDs, damit eine Verbindung eine Änderung der IP-Adresse übersteht, etwa beim Wechsel vom WLAN zum Mobilfunk. Seine Implementierung kann mit einer Anwendungsbibliothek aktualisiert werden. So wird der langsame Verbreitungsweg von TCP-Änderungen in Betriebssystemen und Middleboxes umgangen.

Eine neue Verbindung vergleichen

Bei RTT 50 ms und ohne Aufwand für DNS oder Verarbeitung benötigen TCP und TLS 1.3 zwei RTTs, bevor die erste HTTP/2-Anfrage abgesendet wird. Eine erste Antwort beginnt nach etwa 150 ms. QUIC kombiniert Transport- und Sicherheitsaufbau in einer RTT, sodass eine HTTP/3-Antwort nach etwa 100 ms beginnen kann. Wiederaufgenommene QUIC-Verbindungen können 0-RTT-Daten nutzen, aber das Risiko eines Wiederholungsangriffs beschränkt, welche Anfragen sich gefahrlos früh senden lassen.

Browser können HTTP/3 über Alt-Svc oder DNS-HTTPS-Einträge entdecken. Ist UDP blockiert, können sie auf HTTP über TCP zurückfallen. HTTP/3 bleibt zuverlässig, weil QUIC oberhalb von UDP Zuverlässigkeit bereitstellt.

Wichtige Erkenntnisse

  • HTTP-Versionen behalten die gemeinsame Bedeutung der Nachrichten bei.
  • HTTP/2 verschachtelt Datenströme auf einer TCP-Verbindung.
  • Ein TCP-Verlust kann weiterhin alle HTTP/2-Datenströme auf dieser Verbindung blockieren.
  • QUIC bietet unabhängige geordnete Datenströme und integrierte Sicherheit über UDP.
  • QUIC verkürzt den Aufbau neuer Verbindungen und unterstützt Adressänderungen durch Verbindungs-IDs.
3

Wie DNS Dienste findet

Namen verbergen die wechselnden Standorte von Internetdiensten. Bevor ein Browser oder Mailserver ein Ziel kontaktiert, kann DNS eine Adresse, einen Alias oder einen Mailservernamen liefern. Verfolge einen Resolver durch die verteilte Hierarchie und untersuche dann die Einträge und Nachrichtenfelder, die er austauscht. Zwischengespeicherte Antworten beschleunigen diesen Vorgang; ihre Lebensdauer erklärt, warum eine geänderte Adresse erst nach einiger Zeit alle Nutzer erreicht.

3.1 Eine DNS-Abfrage vom Cache bis zum autoritativen Nameserver

Ein Name wie www.example.org ist für Menschen praktisch. Eine Verbindung benötigt eine IP-Adresse. Das Domain Name System, kurz DNS, ist sowohl die verteilte Datenbank der Namenseinträge als auch das Anwendungsprotokoll zu ihrer Abfrage. Es nutzt normalerweise Port 53 und arbeitet unabhängig von HTTP.

Die Namensverwaltung aufteilen

Lies www.example.org. von rechts nach links: Wurzel, org, example, dann www. Der letzte Punkt steht für die Wurzel und wird in der Alltagsschreibweise meist weggelassen. Ein zentraler Server für alle Namen würde eine Ausfallstelle, einen Verkehrsengpass und lange Pfade für entfernte Clients schaffen.

Root-Nameserver verweisen Resolver an TLD-Nameserver. TLD-Nameserver verweisen sie an die autoritativen Nameserver für Domains unterhalb der TLD. Autoritative Nameserver veröffentlichen die eigentlichen Einträge einer Domain. Die 13 benannten Serveridentitäten des Root-Dienstes sind auf viele physische Instanzen repliziert; 13 ist nicht die Anzahl der Rechner, die das weltweite DNS tragen.

Der Host sendet seine Frage normalerweise an einen lokalen Resolver, den seine Organisation, sein Internetanbieter oder ein öffentlicher Dienst bereitstellt. Dieser Resolver arbeitet im Auftrag des Hosts. Er ist keine weitere Ebene zwischen der Wurzel und der TLD in der Namenshierarchie.

Eine Namensauflösung bei leerem Cache verfolgen

Ein Laptop auf dem Campus benötigt die IPv4-Adresse von www.example.org:

  1. Der Laptop fragt seinen lokalen Resolver nach der endgültigen Antwort.
  2. Der Resolver fragt einen Root-Nameserver und erhält einen Verweis auf .org-Server.
  3. Er fragt einen .org-Server und erhält einen Verweis auf die autoritativen Nameserver für example.org.
  4. Er fragt einen autoritativen Nameserver und erhält 203.0.113.25.
  5. Er gibt die Adresse an den Laptop zurück.

Es gibt vier Anfrage-Antwort-Paare, also acht Nachrichten. Die Anfrage des Hosts ist rekursiv: Beschaffe mir die Antwort. Die Anfragen des Resolvers sind iterativ: Jeder kontaktierte Server antwortet aus seinem Wissen oder verweist den Resolver weiter. Der Root-Nameserver beschafft die Adresse des Webservers nicht im Auftrag des Laptops.

Antworten bis zum Ablauf ihrer TTL wiederverwenden

Ein Ressourceneintrag enthält eine Gültigkeitsdauer, kurz TTL, die in Sekunden gemessen wird. Resolver halten wiederverwendbare Einträge in Caches, bis ihre zulässige Lebensdauer endet. Sie können sowohl Verweise als auch endgültige Adressen zwischenspeichern. Eine gespeicherte Delegation für eine TLD oder Domain ermöglicht es, bei einer späteren Namensauflösung frühere Schritte zu überspringen. Auch Betriebssysteme und Browser können Caches haben.

Bei einer RTT von 2 ms zwischen Host und Resolver und einer RTT von 30 ms für jede der drei aufeinanderfolgenden Hierarchieabfragen dauert die Namensauflösung bei leerem Cache etwa 92 ms. Eine beim Resolver zwischengespeicherte Adresse benötigt etwa 2 ms. Die Wartezeiten addieren sich, weil jeder Verweis Informationen für die nächste Anfrage liefert.

Caching verzögert auch Änderungen. Hat ein Resolver eine Adresse unmittelbar vor einer Aktualisierung mit einer TTL von einer Stunde zwischengespeichert, kann er die alte Adresse für die verbleibende Lebensdauer weiter zurückgeben. Das Absenken der TTL vor einer geplanten Änderung begrenzt diese Überschneidung; die Änderung des autoritativen Eintrags allein ersetzt nicht jede zwischengespeicherte Kopie.

DNS kann mehr als Namen in Adressen auflösen. Es unterstützt Aliase, findet Mailserver und verteilt Last, indem es mehrere Adressen für einen Dienst zurückgibt. Diese Aufgaben erklären, warum auch E-Mail-Zustellung und CDN-Auswahl von DNS abhängen.

Wichtige Erkenntnisse

  • DNS ist eine verteilte Datenbank und ein Abfrageprotokoll der Anwendungsschicht.
  • Root-, TLD- und autoritative Nameserver teilen die Zuständigkeit nach Namen auf.
  • Ein lokaler Resolver führt die rekursive Anfrage des Hosts mithilfe iterativer Anfragen aus.
  • Zwischengespeicherte Einträge und Verweise verkürzen spätere Namensauflösungen.
  • Die TTL begrenzt die Speicherzeit, sodass sich Adressänderungen erst nach einiger Zeit verbreiten.

3.2 Einträge, Verweise und DNS-Antworten

DNS speichert Ressourceneinträge mit Name, Wert, Typ und TTL. Der Typ teilt dem Resolver mit, wie er den Wert deuten muss. Ein Adresseintrag, ein Alias und ein Mailservereintrag beantworten unterschiedliche Fragen zu derselben Domain.

Den Eintragstyp lesen
TypWas sein Wert liefert
AEine IPv4-Adresse für einen Hostnamen
AAAAEine IPv6-Adresse für einen Hostnamen
NSDen Namen eines autoritativen Nameservers
CNAMEEinen kanonischen Namen für einen Alias
MXEinen Mailservernamen mit einer Präferenznummer
TXTText, einschließlich Angaben zur E-Mail-Authentifizierung
PTREinen Namen für die umgekehrte Adressauflösung
SOAAdministrative Angaben für eine Zone
HTTPSDienstinformationen, einschließlich unterstützter HTTP-Versionen

Beispielsweise gibt www.example.org. 3600 IN A 203.0.113.25 den zugehörigen Namen, die TTL, die Internetklasse, den Typ und die Adresse an. Ein NS-Wert ist ein Name, keine Adresse. Ein Verweis kann einen separaten A-Eintrag mit der Adresse des Nameservers enthalten, der oft Glue-Eintrag genannt wird, wenn er zur Auflösung der Delegation benötigt wird.

Ein CNAME wie media.example.org, der auf edge.cdn.example.net zeigt, veranlasst den Resolver, die Adresse des Ziels nachzuschlagen. Ein MX-Eintrag steuert dagegen die E-Mail-Zustellung. Versuche bei den Präferenzen 10 und 20 zuerst den Mailserver mit Präferenz 10; eine größere Zahl bedeutet keine höhere Priorität.

Die Nachricht um die Einträge lesen

Anfragen und Antworten haben ein gemeinsames Format. Der 12 Byte lange Header enthält eine Identifikationsnummer, Flags und die Anzahl der Einträge in vier Abschnitten. Die Antwort übernimmt die ID der Anfrage, damit der Anfragende den Austausch zuordnen kann.

Der Frageabschnitt nennt, was angefordert wurde. Der Antwortabschnitt enthält passende Einträge. Der Autoritätsabschnitt kann NS-Verweise enthalten, während der zusätzliche Abschnitt hilfreiche Einträge wie Nameserveradressen liefert. In der Ausgabe von dig kennzeichnet qr eine Antwort, rd bedeutet, dass Rekursion angefordert wurde, und ra, dass Rekursion verfügbar ist. NOERROR meldet keinen DNS-Fehler; NXDOMAIN meldet, dass der abgefragte Name nicht existiert. Auch eine Antwort ohne Fehler kann keinen Eintrag des angeforderten Typs enthalten.

Um eine neue Domain zu veröffentlichen, registriert ein Inhaber sie und gibt die Daten ihrer autoritativen Nameserver an. Die Delegation der übergeordneten Domain leitet Anfragen an diese Server, die die eigenen Host- und Mail-Einträge der Domain veröffentlichen. Durch die Registrierung des Namens wird der Registrar nicht zum Server, der jeden Eintrag speichert.

Übertragung und Schutz

Die meisten kleinen DNS-Austausche nutzen UDP-Port 53. Bei einer gekürzten UDP-Antwort ist das TC-Flag gesetzt; der Resolver kann es über TCP-Port 53 erneut versuchen. TCP unterstützt auch Zonenübertragungen. DNS ist daher nicht auf UDP beschränkt.

Klassischer DNS-Verkehr legt abgefragte Namen für Beobachter auf seinem Pfad offen. DNS over TLS oder DNS over HTTPS verschlüsselt den Austausch zwischen Client und Resolver, üblicherweise über Port 853 beziehungsweise 443. Die Verschlüsselung dieses Austauschs und die Echtheit eines Eintrags sind getrennte Eigenschaften.

Beim Cache-Poisoning akzeptiert ein Resolver eine gefälschte Antwort und schickt Nutzer später an die falsche Adresse. Unvorhersehbare IDs und Quellports erschweren es, gefälschte Antworten passend zuzuordnen. DNSSEC ergänzt Signaturen, mit denen sich die Echtheit von Einträgen prüfen lässt; es verbirgt die Anfrage nicht. Auch Überflutungsangriffe können DNS-Server unerreichbar machen. Replikation und zwischengespeicherte Verweise verringern die Abhängigkeit vom Root-Dienst bei jeder Anfrage, aber Ausfälle bei einem viel genutzten autoritativen Anbieter können weiterhin viele Websites beeinträchtigen.

Wichtige Erkenntnisse

  • Eintragstypen unterscheiden Adressen, Delegationen, Aliase und E-Mail-Routing.
  • Ein NS-Eintrag nennt einen Server; ein separater Adresseintrag gibt dessen Adresse an.
  • MX-Einträge mit niedrigeren Präferenznummern werden zuerst versucht.
  • DNS-Antworten trennen Antworten, Autoritätsinformationen und zusätzliche Einträge.
  • DNS kann sowohl TCP als auch UDP nutzen.
  • Verschlüsseltes DNS schützt einen Pfad; DNSSEC prüft die Echtheit signierter Einträge.
4

Wie E-Mails übertragen werden und verfügbar bleiben

Eine E-Mail kann ankommen, während das Smartphone des Empfängers ausgeschaltet ist, weil Server die Zustellung und Speicherung unabhängig von Nutzergeräten übernehmen. Verfolge den Übertragungsdialog, unterscheide den Zustellungsumschlag von den Feldern, die Lesende sehen, und untersuche, wie Anhänge in eine Nachricht passen. Vergleiche dann die Zugriffsprotokolle, mit denen Laptop, Smartphone oder Browser E-Mails abrufen und den Postfachzustand verwalten.

4.1 SMTP-Zustellung und der E-Mail-Umschlag

E-Mail trennt das Verfassen einer Nachricht von ihrer Zustellung. Ein Benutzerprogramm ist die App oder Webseite zum Lesen und Schreiben von E-Mails. Ein Mailserver speichert eingehende E-Mails in Postfächern und hält ausgehende Nachrichten in einer Warteschlange. SMTP überträgt Nachrichten zwischen Systemen.

Die Zustellung nach der Einlieferung verfolgen

Alice liefert bei ihrem eigenen Server eine Nachricht für Bob ein. Dieser Server schlägt die MX-Einträge für Bobs Domain nach, löst die Adresse des gewählten Servers auf und öffnet eine TCP-Verbindung zu Port 25. Er überträgt die Nachricht an Bobs Server, der sie in dessen Postfach speichert. Alices Server ist bei dieser Übertragung der SMTP-Client, obwohl er in einem anderen Austausch Alices Benutzerprogramm als Server bedient.

Ist das Ziel vorübergehend nicht verfügbar, behält die Ausgangswarteschlange die Nachricht für weitere Versuche. Alices Gerät kann offline gehen, während ihr Server weiterarbeitet. Nach wiederholtem Fehlschlag kann ein Unzustellbarkeitsbericht an den Absender im Umschlag zurückgehen.

Den Dialog lesen

SMTP nutzt Textbefehle und numerische Antworten. Hier ist ein verkürzter Zustellungsdialog; C: und S: bezeichnen die beiden Seiten und werden nicht als Teil jedes Befehls übertragen.

S: 220 mail.example.net ready
C: EHLO mail.example.org
S: 250 mail.example.net
C: MAIL FROM:<alice@example.org>
S: 250 OK
C: RCPT TO:<bob@example.net>
S: 250 OK
C: DATA
S: 354 Send message
C: From: Alice <alice@example.org>
C: To: Bob <bob@example.net>
C: Date: Tue, 03 Mar 2026 10:02:44 +0100
C: Subject: Lab report
C:
C: The report is ready.
C: .
S: 250 Message accepted
C: QUIT
S: 221 Closing

Mit EHLO stellt sich der sendende Host vor. MAIL FROM legt den Absender im Umschlag fest; jedes RCPT TO nennt einen Empfänger im Umschlag. DATA beginnt die Nachricht und eine Zeile, die nur einen Punkt enthält, beendet sie. Eine Verbindung kann mehr als eine Nachricht übertragen. Antwortklassen unterscheiden Erfolg (2xx), die Aufforderung zu weiterer Eingabe (3xx), vorübergehenden Fehler (4xx) und dauerhaften Fehler (5xx). Eine 4xx-Antwort verlangt einen späteren erneuten Versuch; ein 5xx-Fehler erfordert eine andere Behandlung, oft eine Unzustellbarkeitsmeldung.

Zustelladressen und angezeigte Felder unterscheiden

Der SMTP-Umschlag steuert die Zustellung. Die Felder From: und To: innerhalb der Nachricht werden den Lesenden angezeigt. Sie können sich vom Umschlag unterscheiden. Ein Bcc-Empfänger kann in RCPT TO erscheinen, ohne in den sichtbaren Nachrichtenheadern zu stehen. Für die Antwort auf eine Nachricht und für die Meldung eines Zustellfehlers muss nicht dieselbe Adresse verwendet werden.

Ein Nutzer liefert E-Mails normalerweise über authentifiziertes SMTP an Port 587 mit STARTTLS oder an Port 465 mit TLS von Anfang an ein. Die Übertragung zwischen Servern nutzt normalerweise Port 25 und kann STARTTLS aushandeln. Einlieferung und Übertragung haben unterschiedliche Aufgaben, auch wenn beide SMTP nutzen. HTTP ruft im Allgemeinen angeforderte Objekte ab; SMTP überträgt eine vorbereitete Nachricht aktiv.

Die Domain des Absenders prüfen

Ein sichtbares From:-Feld lässt sich leicht fälschen. SPF prüft, ob der sendende Host für die Domain im Umschlag autorisiert ist. DKIM prüft eine Nachrichtensignatur mit einem in DNS veröffentlichten öffentlichen Schlüssel. DMARC verknüpft ein erfolgreiches SPF- oder DKIM-Ergebnis durch Domainübereinstimmung mit der sichtbaren From-Domain und veröffentlicht eine Richtlinie für Fehlschläge. Ein erfolgreiches SPF-Ergebnis für eine nicht zugehörige Domain im Umschlag bestätigt allein nicht den sichtbaren Absender.

Wichtige Erkenntnisse

  • SMTP überträgt Nachrichten aktiv über TCP zwischen Mailservern.
  • Warteschlangen ermöglichen Servern erneute Versuche, während Nutzergeräte offline sind.
  • Der SMTP-Umschlag steuert die Zustellung; Nachrichtenheader bestimmen, was Lesende sehen.
  • Die Einlieferung nutzt häufig authentifiziertes SMTP an Port 587 oder 465.
  • Vorübergehende und dauerhafte SMTP-Fehler erfordern unterschiedliche Reaktionen.
  • DMARC verlangt ein erfolgreiches SPF- oder DKIM-Ergebnis mit passender Domain, nicht bloß ein beliebiges erfolgreiches SPF-Ergebnis.

4.2 Nachrichteninhalt und Lesen eines Postfachs

E-Mail-Übertragung, Nachrichteninhalt und Postfachzugriff sind getrennte Teile von E-Mail. SMTP überträgt eine Nachricht zu einem Mailserver. Die Nachricht hat ihr eigenes Format mit Header und Nachrichtentext; ein Empfänger greift später über ein anderes Protokoll auf das gespeicherte Postfach zu.

Die Nachricht selbst lesen

Eine Nachricht beginnt mit Feldern wie From:, To:, Date:, Subject: und Message-ID:. Eine Leerzeile trennt diese Header vom Nachrichtentext. Sie bleiben Teil der gespeicherten Nachricht; die SMTP-Befehle MAIL FROM und RCPT TO werden nicht zu Nachrichtenheadern.

Das Grundformat nutzt Textzeilen. MIME, Multipurpose Internet Mail Extensions, beschreibt vielfältigere Inhalte mit zusätzlichen Feldern. Content-Type: text/plain; charset=UTF-8 beschreibt reinen Text und seine Zeichencodierung. image/jpeg bezeichnet ein Bild. multipart/mixed beschreibt mehrere Teile, die durch eine Trennzeichenkette voneinander abgegrenzt sind, etwa eine Textnotiz gefolgt von einem Anhang. Jeder Teil kann seinen eigenen Inhaltstyp und seine eigene Übertragungscodierung haben.

Content-Transfer-Encoding beschreibt, wie ein Teil für die Übertragung dargestellt wird. Base64 wandelt jede Gruppe von drei Bytes in vier ASCII-Zeichen um. Bei einem Anhang von 3 MB werden aus 3.000.000 Byte vor Zeilenumbrüchen und Nachrichtenheadern 4.000.000 Zeichen. Die Codierung erhöht die Größe um etwa ein Drittel. Die Gesamtgrößenbeschränkung eines Servers für Nachrichten lässt sich daher nicht allein mit der Rohgröße des Anhangs vergleichen. Quoted-Printable ist eine weitere Codierung, die sich für überwiegend lesbaren Text eignet.

Ein E-Mail-Zugriffsprotokoll wählen

Der Server des Empfängers kann E-Mails empfangen, während dessen Geräte offline sind. Wenn der Empfänger zurückkehrt, ermöglicht ein E-Mail-Zugriffsprotokoll einem Client, gespeicherte Nachrichten abzurufen.

ZugriffsmethodeWo der Postfachzustand liegtAuswirkung auf mehrere Geräte
IMAPNachrichten, Ordner und Kennzeichnungen bleiben auf dem Server.Geräte können dieselbe Ordnung und denselben Lesestatus nutzen.
POP3Ein Client lädt Nachrichten herunter und kann sie vom Server löschen.Herunterladen und Löschen kann E-Mails für ein anderes Gerät unzugänglich machen.
WebmailEin Browser kommuniziert über HTTPS mit dem E-Mail-Dienst.Der Dienst verwaltet das Postfach hinter der Weboberfläche.

IMAP kann die Header oder ausgewählte Teile einer Nachricht abrufen, ohne jeden Anhang herunterzuladen. Es nutzt gewöhnlich Port 143 mit STARTTLS oder Port 993 mit TLS von Anfang an. POP3 nutzt üblicherweise Port 110 oder TLS an Port 995. Seine Löschmarkierungen werden wirksam, wenn die Sitzung normal endet. Beim Herunterladen und Behalten bleiben Kopien auf dem Server, aber POP3 bietet weder die Serverordner noch die gemeinsamen Kennzeichnungen von IMAP.

Angenommen, Bob prüft seine E-Mails auf einem Laptop, bevor er das Haus verlässt, und danach auf einem Smartphone. Nutzt der Laptop POP3 zum Herunterladen und Löschen, findet das Smartphone möglicherweise ein leeres Serverpostfach vor. Bei IMAP ändert das Markieren einer Nachricht als gelesen auf dem Laptop den Serverzustand, den auch das Smartphone sehen kann. Der Unterschied liegt in der Postfachsynchronisation, nicht in der SMTP-Zustellung.

Eine Webmail-Nachricht über den Browser hinaus verfolgen

Ein Browser liefert E-Mails über HTTPS ein oder liest sie darüber. Der Webmail-Anbieter nutzt weiterhin SMTP, um E-Mails zum Server einer anderen Domain zu übertragen. Ein vollständiger Weg kann daher über HTTPS vom Sender zum Anbieter, SMTP zwischen den Anbietern und anschließend IMAP oder HTTPS auf der Empfängerseite führen. Die Bezeichnung Webmail beschreibt die Benutzeroberfläche und die Browserverbindung eines Dienstes, nicht jedes Protokoll auf dem Weg der Nachricht.

Wichtige Erkenntnisse

  • Nachrichtenheader gehören zur Nachricht und sind von SMTP-Befehlen getrennt.
  • MIME beschreibt Inhaltstypen, Trennzeichen für mehrteilige Inhalte und Übertragungscodierungen.
  • Base64 vergrößert Anhangsdaten vor weiterem Zusatzaufwand um etwa ein Drittel.
  • IMAP synchronisiert serverseitige Nachrichten, Ordner und Kennzeichnungen.
  • POP3 im Modus „Herunterladen und Löschen“ kann Nachrichten entfernen, bevor ein anderes Gerät sie liest.
  • Webmail nutzt HTTPS am Browser und ist zwischen Mailservern weiterhin auf SMTP angewiesen.
5

Dateien verteilen und Videos streamen

Ein großes Publikum erzeugt unterschiedliche Engpässe für einen einzelnen Server, eine Gruppe von Peers und verteilte Caches. Beginne mit den Upload- und Downloadbeschränkungen bei der Dateiverteilung und untersuche dann, wie BitTorrent diese Arbeit aufteilt. Setze bei Videos die codierte Rate und Segmentdownloads zum Wiedergabepuffer in Beziehung und verfolge, wie ein CDN Inhalte platziert und Nutzer zu Servern leitet, die sie effizient ausliefern können.

5.1 Dateiverteilung und BitTorrent

Eine Datei zu verteilen bedeutet, dass jeder Empfänger eine vollständige Kopie erhalten muss. Der Engpass ist nicht immer der Server: Ein langsamer Empfänger oder eine unzureichende gesamte Uploadkapazität kann die Mindestdauer bestimmen. Das Standardmodell setzt voraus, dass die Zugangsverbindungen die Engpässe sind und der Netzkern genügend Kapazität hat.

Die unteren Schranken vergleichen

Die Datei enthalte F Bit und es gebe N Empfänger. Der Server lädt mit us hoch; Peer i lädt mit ui hoch und mit di herunter. Die niedrigste Downloadrate der Peers ist dmin. Verwende zueinander passende Einheiten wie Mbit und Mbps, damit die Division Sekunden ergibt.

Bei der Client-Server-Verteilung muss der Server NF Bit senden und der langsamste Peer F Bit empfangen:

Dcs≥max⁡{NFus,Fdmin}

Bei P2P muss der Server jedes Bit mindestens einmal einspeisen. Die Peers müssen weiterhin die Datei herunterladen und das gesamte System muss genügend Daten für alle Kopien hochladen:

DP2P≥max⁡{Fus,Fdmin,NFus+∑iui}

Nimm das Maximum, weil während der Verteilung alle Anforderungen erfüllt werden müssen. Die Terme zu addieren würde fälschlich voraussetzen, dass diese Upload- und Downloadvorgänge nacheinander stattfinden. Dies sind untere Schranken; Protokollaufwand, nicht verfügbare Peers und andere Engpässe können reale Übertragungen verlangsamen.

Einen Vergleich durchrechnen

Verwende für eine Datei von 2 Gbit den Wert 2.000 Mbit. Der Server lade mit 100 Mbps hoch, der langsamste Download betrage 20 Mbps und jeder der 100 Peers lade mit 5 Mbps hoch.

Der Serverterm bei Client-Server ist 200.000 Mbit dividiert durch 100 Mbps, also 2.000 s. Der Term für den langsamsten Download beträgt 100 s. Die Schranke beträgt daher 2.000 s.

Bei P2P dauert das Einspeisen der Datei mindestens 20 s. Der langsamste Download dauert weiterhin 100 s. Die gesamte Uploadkapazität beträgt 100 plus 500, also 600 Mbps; die Verteilung von 200.000 Mbit dauert mindestens etwa 333 s. Die P2P-Schranke beträgt etwa 333 s. Bei 1.000 Peers steigt die Client-Server-Schranke auf 20.000 s, während die P2P-Schranke etwa 392 s beträgt. Bei gleichen Uploadraten der Peers nähert sich der Term für die Gesamtkapazität mit wachsender Peerzahl der Dateigröße dividiert durch die Uploadrate eines Peers.

Dateistücke in BitTorrent tauschen

Ein Torrent ist eine Gruppe, die eine Datei teilt. Peers tauschen Dateistücke, finden Nachbarn über einen Tracker oder eine verteilte Hashtabelle und können bereits vor Abschluss des Downloads hochladen. Ein Seeder besitzt die vollständige Datei und teilt sie weiter.

Rarest First wählt ein benötigtes Stück aus, das die wenigsten Nachbarn besitzen. Das hilft, Stücke zu erhalten, die sonst verschwinden könnten, wenn ein Peer ausscheidet. Es entscheidet, was angefordert wird. Das Gegenseitigkeitsprinzip fördert nützlichen Austausch, indem es Nachbarn bevorzugt, die schnell Daten liefern; es entscheidet, für wen hochgeladen wird.

Im ursprünglichen Entwurf ist die Sperre für jeweils vier interessierte Nachbarn aufgehoben, darunter einer durch versuchsweises Aufheben der Sperre. Die reguläre Auswahl wird etwa alle 10 s und der versuchsweise gewählte Peer etwa alle 30 s überprüft. Dieser Platz zum Erkunden gibt neuen Teilnehmern eine Möglichkeit, erste Stücke zu erhalten, und hilft, bessere Partner zu finden. Der Tracker koordiniert die Suche; er ist nicht die Datenquelle für jedes Stück.

Wichtige Erkenntnisse

  • Die Client-Server-Verteilung wird durch den Serverupload und den langsamsten Download begrenzt.
  • P2P hängt außerdem vom Einspeisen der Datei und der gesamten Uploadkapazität des Systems ab.
  • Nimm das Maximum gleichzeitig geltender Beschränkungen, nicht ihre Summe.
  • P2P skaliert, weil neue Peers Uploadkapazität beitragen.
  • Rarest First wählt Dateistücke; das Gegenseitigkeitsprinzip wählt Uploadpartner.
  • Das versuchsweise Aufheben einer Sperre gibt neuen oder noch nicht erprobten Peers eine Chance zum Austausch.

5.2 Adaptives Streaming und Änderungen im Puffer

Ein Video besteht aus Bildern, die über die Zeit angezeigt werden. Kompression entfernt wiederholte Informationen innerhalb eines Bildes (räumliche Redundanz) und zwischen Bildern (zeitliche Redundanz). Das codierte Ergebnis hat eine Bitrate: die Datenmenge, die für jede Sekunde Videowiedergabe benötigt wird.

Rate, Größe und Wiedergabedauer verknüpfen

Ein zweistündiges Video mit 5 Mbps enthält 36.000 Mbit oder 4,5 GB. Multipliziere die Rate mit der Dauer, um Bit zu erhalten, und dividiere dann durch acht für Byte. Liegt der durchschnittliche Durchsatz des Pfades unter der gewählten Videorate, leert sich bei fortgesetzter Wiedergabe irgendwann jeder endliche Puffer.

Ein Wiedergabegerät kann beginnen, bevor das ganze Video heruntergeladen ist. Es speichert kommende Daten in einem Puffer, der hier in Sekunden abspielbaren Videos gemessen wird. Die Wiedergabe verbraucht den Puffer, während Downloads ihn auffüllen. Ein größerer Anfangspuffer schützt vor Durchsatzeinbrüchen, erhöht aber die Startverzögerung.

Jeweils ein Segment anfordern

DASH, Dynamic Adaptive Streaming over HTTP, speichert mehrere codierte Versionen mit unterschiedlichen Raten und teilt jede in Segmente. Ein Manifest führt verfügbare Versionen und Segment-URLs auf. Der Client fordert ein Segment mit HTTP GET an und wählt an der nächsten Segmentgrenze erneut eine Version. HLS nutzt einen ähnlichen Ansatz mit Wiedergabelisten.

Das Wiedergabegerät trifft die Anpassungsentscheidung anhand des gemessenen Durchsatzes und des Pufferfüllstands. Ein hoher aktueller Schätzwert für den Durchsatz spricht für eine höhere Rate; ein niedriger Pufferfüllstand verlangt Vorsicht. Die höchste einmal erreichte Rate zu wählen, kann eine Unterbrechung verursachen, wenn der nächste Download langsamer wird. Wiedergabegeräte versuchen auch, häufige, störende Qualitätswechsel zu vermeiden.

Den Download eines Segments berechnen

Betrachte 4 s lange Segmente, die mit 1, 2,5, 5 und 8 Mbps codiert sind. Bei einem gemessenen Durchsatz von 6 Mbps enthält das Segment mit 5 Mbps 20 Mbit. Es wird in etwa 3,33 s heruntergeladen und fügt 4 s abspielbaren Inhalt hinzu, während die Wiedergabe etwa 3,33 s verbraucht. Bei fortlaufender Wiedergabe wächst der Puffer um etwa 0,67 s.

Ein Segment mit 8 Mbps enthält 32 Mbit und benötigt etwa 5,33 s, sodass der Puffer um etwa 1,33 s schrumpft. Die 6 Mbps des Pfades sind eine Übertragungsrate; sie machen aus einer Codierung mit 8 Mbps keine mit 6 Mbps.

Fällt der Durchsatz auf 3 Mbps, benötigt dasselbe Segment mit 5 Mbps etwa 6,67 s. Der Puffer verliert pro Segment etwa 2,67 s. Der Wechsel zur Version mit 2,5 Mbps ergibt ein Segment von 10 Mbit, das etwa 3,33 s benötigt, sodass der Puffer wieder wachsen kann. Für eine unterbrechungsfreie Wiedergabe während eines Downloads muss der Anfangspuffer außerdem reichen, bis neue abspielbare Daten verfügbar sind.

Gespeicherte Streams und interaktive Anrufe

Das Streaming gespeicherter Videos nutzt gewöhnliche HTTP-Objekte, die Browsercaches und CDN-Server ausliefern können. Es läuft daher je nach HTTP-Version über TCP oder QUIC. Interaktive Anrufe nutzen häufig Medienübertragung auf UDP-Basis, weil das Warten auf ältere Mediendaten schlechter sein kann als deren Verlust.

Ein Liveereignis kann ebenfalls segmentiertes HTTP-Streaming nutzen, aber das Wiedergabegerät wartet darauf, dass jedes Segment erzeugt wird, und hält einen Puffer mit Abstand zum Livegeschehen. Kürzere Segmente können diese Verzögerung verringern, erhöhen aber die Anzahl der Anfragen. Ein Sprung zu einer ungepufferten Stelle erfordert ebenfalls ein erneutes Auffüllen des Puffers, was die Qualität kurzzeitig senken kann.

Wichtige Erkenntnisse

  • Die codierte Bitrate misst die pro Wiedergabesekunde benötigten Daten.
  • Die Größe eines Segments ist seine Dauer multipliziert mit seiner codierten Rate.
  • Die Pufferänderung bei fortlaufender Wiedergabe ist die Segmentdauer abzüglich der Downloadzeit.
  • DASH-Clients wählen Versionen anhand von Durchsatzschätzungen und Pufferfüllstand.
  • Gespeicherte HTTP-Videos nutzen TCP oder QUIC; interaktive Anrufe haben andere Anforderungen an das Zeitverhalten.

5.3 CDN-Platzierung und Weiterleitung von Anfragen

Ein Content Delivery Network, kurz CDN, liefert Kopien von Inhalten von vielen Standorten aus. Es vermeidet, jeden Zuschauer an ein einziges entferntes Rechenzentrum zu verweisen, und verringert wiederholte Übertragungen über große Entfernungen. Die Verteilung der Dienstkapazität verringert außerdem die Abhängigkeit von einem Standort.

Inhalte nahe bei den Nutzern platzieren

Ein privates CDN gehört einem Anbieter; ein Drittanbieter-CDN bedient viele Kunden. Beide können neben Videos auch Bilder, Skripte, Software und Webseiten ausliefern. Die ursprüngliche Inhaltsquelle ist der Ursprungsserver. CDN-Cluster halten Kopien vor, damit der Ursprungsserver nicht jede Anfrage bearbeiten muss.

Es gibt zwei nützliche Platzierungsstrategien:

StrategiePlatzierungAbwägung
Enter DeepViele kleinere Cluster innerhalb der Netze von ZugangsanbieternKurze Pfade zu Nutzern, aber viele zu wartende Standorte
Bring HomeWeniger große Cluster an InternetaustauschknotenEinfachere Verwaltung, aber längere Pfade für manche Nutzer

Platzierung und Befüllung mit Inhalten sind getrennte Entscheidungen. Beim Pull-Verfahren holt ein Cluster ein fehlendes Objekt vom Ursprungsserver oder einem anderen Cluster, speichert es und liefert es aus. Beim Push-Verfahren sendet der Anbieter Objekte im Voraus, häufig zu wenig ausgelasteten Zeiten. Die erste Anfrage an ein Pull-CDN für ein nicht zwischengespeichertes Objekt kann weiterhin vom Ursprungsserver abhängen.

Eine DNS-Übergabe verfolgen

Ein Nutzer fordert https://video.stream.example.com/v/6Y7B23V an:

  1. Der Resolver des Nutzers fragt nach video.stream.example.com.
  2. Der autoritative Server des Anbieters gibt einen CNAME in den Namensraum des CDN zurück, etwa a1105.cdn.example.net.
  3. Der Resolver folgt diesem Namen zum autoritativen DNS-Dienst des CDN.
  4. Das CDN wählt einen Cluster und gibt eine Adresse wie 198.51.100.17 zurück.
  5. Der Client verbindet sich über HTTPS mit diesem Server und fordert den Inhalt an.

Der CNAME verändert, wo die Namensauflösung fortgesetzt wird. DNS gibt Namensinformationen zurück; die Videobytes kommen anschließend über HTTP. Sind die Inhalte segmentiert, folgen viele gewöhnliche Segmentanfragen demselben grundlegenden Pfad zu einem ausgewählten Server.

Einen geeigneten Standort wählen

Der auf einer Karte nächste Cluster kann einen schlechten Netzwerkpfad haben oder überlastet sein. Eine DNS-basierte Entscheidung sieht möglicherweise den Standort des Resolvers, der weit vom Nutzer entfernt sein kann. Eine bessere Auswahl kann gemessene Verzögerung und Verluste, die aktuelle Last und manchmal Informationen über das Netz des Clients berücksichtigen.

IP-Anycast bietet einen weiteren Weg zu einem nahe gelegenen Dienst: Mehrere Standorte geben dieselbe IP-Adresse bekannt und das Internetrouting wählt einen Pfad zu einem von ihnen. Welcher Standort erreicht wird, hängt vom Routing ab und nicht allein von der räumlichen Entfernung. Ein Server nahe am Zuschauer kann trotzdem schlechte Videoqualität liefern, wenn die Zugangsverbindung des Zuschauers selbst der Engpass ist.

Netflix Open Connect platziert Geräte innerhalb der Netze von Internetanbietern und verbindet sie an Austauschstandorten. Inhalte werden vor der Nachfrage bereitgestellt, was den vorgelagerten Datenverkehr zu Spitzenzeiten verringert. Die Anwendungsdienste und die Auslieferung codierter Videos müssen nicht auf derselben Infrastruktur laufen. Andere private CDN-Architekturen können Caches bei Bedarf füllen. In jedem Fall steuert adaptives Streaming, welche Rate das Wiedergabegerät anfordert, während das CDN mitbestimmt, über welchen Pfad und von welchem Server diese Anfragen bedient werden.

Wichtige Erkenntnisse

  • Ein CDN verteilt Kopien und Auslieferungskapazität auf mehrere Standorte.
  • Enter Deep und Bring Home wägen Pfadlänge gegen den Aufwand für die Standortverwaltung ab.
  • Pull befüllt bei Bedarf; Push befüllt vor den Anfragen.
  • Ein DNS-CNAME kann die Namensauflösung an ein CDN übergeben.
  • Die Clusterauswahl hängt neben der Geografie auch von Netzwerkleistung und Last ab.
  • CDNs und adaptives Streaming kümmern sich um unterschiedliche Teile der Videoauslieferung.
6

Programmieren mit UDP- und TCP-Sockets

Ein Socket-Programm macht das Transportverhalten sichtbar: Ein Datagramm kommt als eine Nachricht an, während ein TCP-Empfang die jeweils verfügbaren Bytes zurückgibt. Programmiere mit beiden Transportprotokollen einen kleinen Textdienst und verfolge, woher der Server das Ziel seiner Antwort kennt. Ergänze dann die TCP-Version um Nachrichtenabgrenzung und sende eine echte HTTP-Anfrage. So verbindest du Pythons Socket-Aufrufe mit den dahinterliegenden Protokollaustauschen und Fehlerfällen.

6.1 Ein UDP-Dienst in Python

Python-Sockets senden Bytes. Codiere eine Zeichenkette vor dem Senden und decodiere die empfangenen Bytes anschließend; die standardmäßige Textcodierung ist UTF-8. AF_INET wählt IPv4 und SOCK_DGRAM UDP. Beginne mit einem lokalen Dienst, damit beide Prozesse die Loopback-Adresse 127.0.0.1 nutzen können.

Den Empfänger zuerst starten

Dieser Server verarbeitet kurze Textdatagramme und antwortet in Großbuchstaben:

from socket import socket, AF_INET, SOCK_DGRAM

with socket(AF_INET, SOCK_DGRAM) as server:
    server.bind(("127.0.0.1", 12000))
    while True:
        data, client_addr = server.recvfrom(2048)
        reply = data.decode().upper().encode()
        server.sendto(reply, client_addr)

bind weist dem Socket seine Empfangsadresse und seinen Port zu. Die Bindung an 127.0.0.1 akzeptiert nur lokalen Verkehr. Die leere Adresszeichenkette "" bindet dagegen an alle IPv4-Schnittstellen und macht den Dienst von anderen Hosts aus erreichbar, wenn das Netz es zulässt. Stoppe den laufenden Server, bevor du eine weitere Kopie am selben Endpunkt startest.

recvfrom blockiert, bis ein Datagramm eintrifft. Der Aufruf gibt die Daten und die Adresse des Senders einschließlich seines Ports zurück. Der Server nutzt dieses zurückgegebene Paar als Ziel von sendto und kann so Clients antworten, deren ephemere Ports er nicht im Voraus kannte.

Eine Anfrage senden und die Wartezeit begrenzen
from socket import socket, AF_INET, SOCK_DGRAM

with socket(AF_INET, SOCK_DGRAM) as client:
    client.settimeout(2.0)
    client.sendto(b"hello network", ("127.0.0.1", 12000))
    try:
        data, server_addr = client.recvfrom(2048)
        print(data.decode())
    except TimeoutError:
        print("No reply within 2 seconds")

Das Präfix b erzeugt ein Bytes-Literal; "hello network".encode() erzeugt dieselben Bytes. Das Betriebssystem weist den lokalen Port des Clients bei Bedarf zu. Die erwartete Antwort ist HELLO NETWORK. Keines der beiden Programme ruft listen oder accept auf, weil UDP keinen Transportverbindungsaufbau hat.

Eine fehlende Antwort sagt dem Client nicht genau, was fehlgeschlagen ist. Die Anfrage oder Antwort kann verloren gegangen sein oder es lauscht kein Server. Das Zeitlimit ermöglicht der Anwendung, die Kontrolle zurückzugewinnen. Manche Systeme können einen geschlossenen Zielport als Fehler melden; Windows kann beim Empfang ConnectionResetError auslösen.

Datagrammgrenzen beachten

Jeder Empfang verarbeitet ein Datagramm. Zwei Datagramme werden nicht zu einer Nachricht zusammengefasst. Ist der Empfangspuffer zu klein, wird der überstehende Teil des Datagramms auf typischen Unix-Systemen verworfen; Windows kann stattdessen einen Fehler melden. Ein weiterer Empfang stellt den fehlenden Rest nicht wieder her. Wähle einen Puffer, der für die erwarteten Nachrichten der Anwendung groß genug ist.

Die IPv4-UDP-Nutzlast ist bei einem IPv4-Header der Mindestgröße auf 65.507 Byte begrenzt. Das ist ein Protokollmaximum und keine sinnvolle Zielgröße für gewöhnliche Datagramme. Ein Programm, das Verluste erkennen muss, kann Nachrichten nummerieren, Sendezeiten mit time.perf_counter() festhalten und Zeitüberschreitungen zählen. Zwei Zeitüberschreitungen bei zehn Anfragen ergeben eine gemessene Verlustrate von 20 %. Das Wiederholen einer Anfrage kann eine doppelte Verarbeitung verursachen. Ein Entwurf mit Zeitlimit und Wiederholung benötigt daher möglicherweise auch eine Möglichkeit, wiederholte Nachrichtennummern zu erkennen.

Wichtige Erkenntnisse

  • SOCK_DGRAM erstellt einen UDP-Socket; encode und decode wandeln zwischen Bytes und Text um.
  • bind wählt den Empfangsendpunkt; Loopback beschränkt den Zugriff auf denselben Host.
  • recvfrom liefert die für eine Antwort benötigte Absenderadresse.
  • Ein Zeitlimit begrenzt das Warten, nennt aber nicht die Ursache fehlender Daten.
  • Ein zu kleiner Empfangspuffer kann den Rest eines UDP-Datagramms verlieren.

6.2 Ein TCP-Dienst mit vollständigen Nachrichten

TCP gibt dem Programm einen geordneten Bytestrom. Es erhält die Grenzen von sendall-Aufrufen nicht. Ein vollständiger kurzer Test kann in einem recv ankommen, aber ein korrektes Programm muss auch eine auf mehrere Empfangsvorgänge verteilte Anfrage behandeln.

Eine Textanfrage abgrenzen

Wähle einen Zeilenumbruch als Trennzeichen. Der Client sendet eine UTF-8-Zeile und der Server gibt eine Zeile in Großbuchstaben zurück. Dieser Server liest bis zu diesem Trennzeichen, bevor er decodiert:

from socket import socket, AF_INET, SOCK_STREAM

with socket(AF_INET, SOCK_STREAM) as server:
    server.bind(("127.0.0.1", 12000))
    server.listen(5)
    while True:
        conn, client_addr = server.accept()
        with conn:
            data = b""
            while b"\n" not in data:
                chunk = conn.recv(1024)
                if not chunk:
                    break
                data += chunk
            if b"\n" in data:
                line = data.split(b"\n", 1)[0]
                conn.sendall(line.decode().upper().encode() + b"\n")

listen erstellt einen lauschenden Socket. accept gibt einen neuen Verbindungssocket und die Adresse des Clients zurück. Verwende conn für die Bytes dieses Clients; der ursprüngliche Socket bleibt verfügbar, um weitere Verbindungen anzunehmen. Hier werden Clients einzeln bedient. Der Backlog von fünf betrifft ausstehende Verbindungen, nicht fünf aktive Arbeitsthreads.

Die Clientseite vervollständigen
from socket import create_connection

with create_connection(("127.0.0.1", 12000), timeout=2) as client:
    client.sendall(b"hello network\n")
    data = b""
    while b"\n" not in data:
        chunk = client.recv(1024)
        if not chunk:
            raise EOFError("Reply ended before its newline")
        data += chunk
    print(data.split(b"\n", 1)[0].decode())

Das erwartete Ergebnis ist HELLO NETWORK. sendall sendet weiter, bis alle übergebenen Bytes übergeben wurden oder ein Fehler auftritt. Ein einzelnes send sendet möglicherweise nur einen Teil und meldet, wie viele Bytes es angenommen hat. Keiner der beiden Aufrufe übermittelt dem Empfänger Nachrichtengrenzen der Anwendung.

Dieser Dienst akzeptiert eine Zeile pro Verbindung. Ein persistenter Dienst mit mehreren Nachrichten würde Bytes nach dem ersten Zeilenumbruch für seine nächste Nachricht behalten. Längenpräfixe und das Schließen der Senderichtung sind weitere Möglichkeiten zur Nachrichtenabgrenzung. Der Empfang von b"" bedeutet, dass der Peer seine Senderichtung beendet hat; es ist kein leerer Datenblock, bei dem weiter versucht werden sollte zu lesen.

Den Code mit realen Protokollen verbinden

Auch eine HTTP/1.1-Anfrage ist eine Folge von Bytes:

from socket import create_connection

request = ("GET / HTTP/1.1\r\n"
           "Host: example.com\r\n"
           "Connection: close\r\n\r\n")
with create_connection(("example.com", 80), timeout=5) as sock:
    sock.sendall(request.encode("ascii"))
    chunks = []
    while True:
        chunk = sock.recv(4096)
        if not chunk:
            break
        chunks.append(chunk)
print(b"".join(chunks).decode(errors="replace")[:200])

Dies zeigt den Anfang der rohen Antwort einschließlich Status und Headern. Ein Server kann einen Fehler oder eine Umleitung zurückgeben; der Code setzt keinen bestimmten Nachrichtentext voraus. HTTPS an Port 443 benötigt eine TLS-Umhüllung mit Zertifikats- und Hostnamenprüfung, nicht nur eine geänderte Portnummer. Beispielsweise umhüllt ssl.create_default_context().wrap_socket(sock, server_hostname="example.com") nach import ssl einen verbundenen Socket. Eine abgelehnte Verbindung bedeutet häufig, dass kein Server lauscht; bei stillschweigend verworfenem Verkehr kann ein Zeitlimit ablaufen. Für schnelle Serverneustarts unter Unix kann das Setzen von SO_REUSEADDR vor bind die Wiederverwendung erlauben, während eine alte Verbindung abgebaut wird; es erlaubt nicht, dass zwei aktive lauschende Sockets denselben Endpunkt belegen. Nebenläufige Server nutzen Threads oder Ereignisschleifen und unterscheiden Verbindungen anhand beider Adress-Port-Paare der Endpunkte.

Wichtige Erkenntnisse

  • accept gibt einen Verbindungssocket zurück, der vom lauschenden Socket getrennt ist.
  • TCP-Nachrichten benötigen eine Abgrenzung und Empfangsschleifen.
  • sendall behandelt partielle Sendevorgänge; recv kann weiterhin Teildaten zurückgeben.
  • Ein leerer TCP-Empfang signalisiert das Ende der Senderichtung des Peers.
  • Eine HTTP/1.1-Anfrage benötigt CRLF-Zeilenenden und die abschließende Leerzeile.
  • HTTPS benötigt neben Port 443 auch TLS.
  • Ein Backlog steuert ausstehende Verbindungen, nicht die Nebenläufigkeit der Anwendung.

Anwendungsschicht: Beispiele

6 Interaktive Lektionen

1

Wähle eine Anwendungsarchitektur und einen Transportdienst

9 Schritte
Verfolge den Entwurf eines Dateiaustauschs von den Hostrollen bis zum Transportdienst, den seine Prozesse benötigen.
  1. 1
    EinführungBeginne mit den Programmen

    Ein Netzwerkdienst besteht aus Programmen an den Enden des Netzes. Stell dir vor, ein Forschungsdatensatz soll an eine wachsende Gruppe verteilt werden: Jemand muss die Daten finden, senden und empfangen. Verfolge diese Aufgaben, um Client-Server- und P2P-Architekturen zu vergleichen, und entscheide dann, was die Prozesse von ihrem Transportdienst benötigen.

  2. 2
    ErklärungLege die Inhalte auf eigens vorgesehenen Servern ab

    In einer Client-Server-Architektur fordern Clients Daten von einem ständig verfügbaren Dienst unter einer bekannten Adresse an. Der Dienst kann viele Rechner hinter einem Namen nutzen, aber der Anbieter stellt weiterhin diese Auslieferungskapazität bereit. Lädt jeder Forschende eine vollständige Kopie vom Dienst herunter, bedeuten mehr Forschende mehr Uploadarbeit für dessen Server. Router übertragen die Pakete, ohne die Dateiaustauschanwendung auszuführen.

  3. 3
    BeispielLass Teilnehmer Uploads beisteuern

    In einer P2P-Architektur kann ein Forschender, der einige Stücke erhalten hat, sie an einen anderen senden, bevor die ganze Datei vollständig ist. Ein beitretender Peer bringt zusätzliche Nachfrage, aber auch mögliche Uploadkapazität mit. Darin liegt der Ursprung der Selbstskalierung. Eine langsame Uploadverbindung, ein nicht verbundener Peer oder ein Peer, der nicht teilen möchte, schwächt den Vorteil. Deshalb sind die Suche nach Peers, Verfügbarkeit und Anreize wichtig.

  4. 4
    HerausforderungOrdne den Pfad der Dateiübertragung ein

    Ein Verzeichnis führt auf, wer einen Datensatz besitzt. Anschließend tauschen Forschende dessen Stücke direkt aus. Ist jede Dateiübertragung Client-Server und wer ist der Client, wenn ein Peer ein Stück anfordert?

    ---reveal---

    Der Gesamtentwurf ist hybrid: serverbasierte Suche und Datenübertragung zwischen Peers. Der Peer, der die Anfrage nach dem Stück stellt, ist bei diesem Austausch der Client; der antwortende Peer übernimmt die Serverrolle.

  5. 5
    ErklärungFinde einen Empfangsendpunkt

    Ein Prozess nutzt einen Socket, um auf die Transportschicht zuzugreifen. Das Ziel benötigt sowohl eine Host-IP-Adresse als auch einen Port: Die IP-Adresse erreicht den Host und der Port unterscheidet den empfangenden Dienst. Für einen HTTPS-Dienst unter 203.0.113.10 ist Port 443 üblich. Der Client kann einen vom Betriebssystem zugewiesenen ephemeren Quellport nutzen, sodass die beiden Enden nicht dieselbe Portnummer verwenden müssen.

  6. 6
    BeispielEntscheide, welche Verzögerung zählt

    Ein Spiel sendet 30-mal pro Sekunde eine neue Position, etwa alle 33 ms. Die Wiederherstellung einer alten Aktualisierung kann weniger nützlich sein als das Reagieren auf die nächste, sodass UDP zu diesem Verkehr passen kann. Eine heruntergeladene Konfigurationsdatei muss vollständig sein und benötigt daher zuverlässige Übertragung. Diese Entscheidung betrifft Bedeutung und Zeitverhalten der Daten; die Wahl von UDP beseitigt für sich genommen weder Überlastung auf dem Pfad noch reserviert sie Bandbreite.

  7. 7
    VerbindungErgänze die fehlenden Dienste

    TCP liefert zuverlässige, geordnete Bytes, Flusskontrolle und Überlastkontrolle, aber weder Verschlüsselung noch eine Frist. TLS kann seinen Verkehr schützen. UDP liefert Datagramme und erhält deren Grenzen, überlässt aber Verluste und Reihenfolge höheren Schichten. HTTP/3 erhält zuverlässige Datenströme und TLS 1.3 durch QUIC über UDP. Bestimme den vollständigen Protokollstapel, bevor du den Dienst anhand seines niedrigsten sichtbaren Protokolls beurteilst.

  8. 8
    HerausforderungEntwirf einen sicheren Austausch zwischen Peers

    Zwei Peers müssen ein vollständiges vertrauliches Dokument austauschen. Einer nimmt Kontakt auf und die Übertragung nutzt UDP ohne zusätzliche Dienste. Welche Rollen haben sie bei diesem Austausch und welche Dienste benötigt dieser Entwurf noch?

    ---reveal---

    Der Kontakt aufnehmende Peer ist der Client und der antwortende Peer der Server dieses Austauschs. UDP allein bietet weder vollständige geordnete Übertragung noch Vertraulichkeit. Der Entwurf benötigt Zuverlässigkeit und Sicherheit oberhalb von UDP oder einen Protokollstapel, der diese bietet.

  9. 9
    ZusammenfassungVerfolge die Rollen, bevor du den Transport wählst

    Wenn du einen Entwurf beurteilst, verfolge zuerst, wer den Inhalt sendet und wer nur dabei hilft, ihn zu finden. Bestimme dann den Empfangsendpunkt und die Dienste, die der Inhalt benötigt: korrekte Übertragung, ausreichenden Durchsatz, rechtzeitiges Eintreffen und Schutz. Diese Entscheidungen erklären sowohl die Anwendungsarchitektur als auch die Eignung eines Transportstapels. Ein Socket verbindet den Prozess mit diesem gewählten Dienst.

2

Lies und verbessere einen HTTP-Austausch

15 Schritte
Arbeite dich von HTTP/1.1-Nachrichten und Zeitberechnungen über die Cacheprüfung bis zu QUIC-Datenströmen vor.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungVerfolge das Laden einer Seite
  2. 2
    BeispielLies den Aufbau der Anfrage
  3. 3
    ErklärungTrenne Aufbau und Übertragung
  4. 4
    BeispielSchließe die Zeitberechnung ab
  5. 5
    HerausforderungZähle die voneinander abhängigen Schritte
  6. 6
    ErklärungErkenne einen wiederkehrenden Browser
  7. 7
    BeispielWähle den Pfad bei Treffer oder Fehlzugriff
  8. 8
    ErklärungPrüfe ohne erneute Übertragung des Objekts
  9. 9
    HerausforderungSage die zweite Anfrage voraus
  10. 10
    ErklärungVerschachtle Antwort-Frames
  11. 11
    KernaussageFinde die Blockierung unterhalb von HTTP
  12. 12
    BeispielVergleiche den Aufbau neuer sicherer Verbindungen
  13. 13
    TippHalte Bedeutung und Transport auseinander
  14. 14
    HerausforderungUntersuche eine HTTP/3-Anfrage mit Cache
  15. 15
    ZusammenfassungBestimme, welcher Aufwand entfällt
3

Verfolge und lies eine DNS-Abfrage

11 Schritte
Verfolge Resolveranfragen, zwischengespeicherte Verweise und die Ressourceneinträge in einer Antwort.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungFinde einen Dienst vor der Kontaktaufnahme
  2. 2
    ErklärungBeginne beim lokalen Resolver
  3. 3
    BeispielFolge jedem Verweis
  4. 4
    BeispielAddiere die Wartezeiten
  5. 5
    HerausforderungSage die Wirkung einer Adressänderung voraus
  6. 6
    ErklärungWähle die Frage nach dem richtigen Eintrag
  7. 7
    BeispielLies die Abschnitte der Antwort
  8. 8
    VerbindungHalte Schutzziele auseinander
  9. 9
    HerausforderungInterpretiere einen Mailverweis
  10. 10
    HerausforderungVerbinde Caching mit dem richtigen Eintrag
  11. 11
    ZusammenfassungPrüfe, was jeder Name bezeichnet
4

Verfolge eine E-Mail von der Einlieferung bis zum Lesen

11 Schritte
Verbinde SMTP-Umschläge, MIME-Inhalte und Postfachzugriff in einem Zustellungsbeispiel.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungTrenne Übertragung und Lesen
  2. 2
    ErklärungÜbergib die Arbeit an einen Ausgangsserver
  3. 3
    BeispielGib SMTP seinen Umschlag
  4. 4
    KernaussageUnterscheide die angezeigten Adressen
  5. 5
    HerausforderungErkläre den verborgenen Empfänger
  6. 6
    VerbindungAuthentifiziere die richtige Domain
  7. 7
    ErklärungStelle einen Anhang dar
  8. 8
    BeispielHalte den Postfachzustand auf dem Server
  9. 9
    HerausforderungWähle den Zugriff für zwei Geräte
  10. 10
    HerausforderungVerfolge eine Webmail-Nachricht von Ende zu Ende
  11. 11
    ZusammenfassungOrdne jedes Symptom seinem Schritt zu
5

Analysiere die Auslieferung von Dateien und Videos

16 Schritte
Arbeite Verteilungsschranken, Pufferberechnungen und die Weiterleitung von CDN-Anfragen durch.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungFinde die begrenzende Ressource
  2. 2
    ErklärungZähle die Kopien, die ein Server hochlädt
  3. 3
    ErklärungAddiere die Beiträge der Peers
  4. 4
    BeispielBerechne die verfügbare Kapazität
  5. 5
    BeispielVergleiche alle gleichzeitig geltenden Beschränkungen
  6. 6
    HerausforderungBeseitige den richtigen Engpass
  7. 7
    VerbindungWähle Dateistücke und Uploadpartner
  8. 8
    ErklärungMiss abspielbare Sekunden
  9. 9
    BeispielRechne ein Segment in Bit um
  10. 10
    BeispielReagiere auf sinkenden Durchsatz
  11. 11
    HerausforderungPrüfe den Puffer vor der Ankunft
  12. 12
    ErklärungPlatziere Kopien entlang kürzerer Pfade
  13. 13
    BeispielÜbergib die Namensauflösung an ein CDN
  14. 14
    HerausforderungWähle nach Leistung, nicht nur nach Karte
  15. 15
    HerausforderungVerbinde einen CDN-Treffer mit Anpassung
  16. 16
    ZusammenfassungOrdne Verbesserungen den Beschränkungen zu
6

Programmiere und untersuche einen Socket-Austausch

14 Schritte
Verfolge UDP-Datagramme, grenze TCP-Nachrichten ab und verbinde die Socket-API mit HTTP.

Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.

  1. 1
    EinführungMache das Transportverhalten sichtbar
  2. 2
    BeispielErstelle und binde einen UDP-Socket
  3. 3
    BeispielEmpfange ein Datagramm und sende es zurück
  4. 4
    TippBegrenze das Warten auf eine Antwort
  5. 5
    HerausforderungSage die Folge eines zu kleinen Empfangspuffers voraus
  6. 6
    ErklärungNimm eine TCP-Verbindung an
  7. 7
    BeispielBeobachte eine aufgeteilte Nachricht
  8. 8
    BeispielSammle Bytes bis zum Trennzeichen
  9. 9
    HerausforderungBehalte Bytes für die nächste Nachricht
  10. 10
    TippSende jedes Antwortbyte
  11. 11
    VerbindungSchreibe eine HTTP-Anfrage als Bytes
  12. 12
    ErklärungTrenne wartende Verbindungen von Arbeitsthreads
  13. 13
    HerausforderungUntersuche zwei wartende Programme
  14. 14
    ZusammenfassungPrüfe Endpunkte, Bytes und Vollständigkeit

Anwendungsschicht: Übungsaufgaben

50 Übungsfragen in 5 Sets

Set 1: DNS-Einträge und der Weg einer E-Mail10 Übungsfragen

Frage 1 von 10

Was stellt ein autoritativer DNS-Server für eine von ihm betreute Domain bereit?
  1. Die rekursive Namensauflösung für Hosts.
  2. Die veröffentlichten Ressourceneinträge der Domain.
  3. Die durch die URLs der Domain bezeichneten Webobjekte.
  4. Einen Quellport für jede Browserverbindung.
Antwort zeigenAntwort ausblenden
Antwort: B
Ein autoritativer Nameserver veröffentlicht die Einträge für die von ihm betreuten Namen. Ein lokaler rekursiver Resolver sammelt Antworten für Hosts und kann diesen Server abfragen. Durch die Veröffentlichung der Einträge wird der autoritative Nameserver nicht zum Rechner, der die Webobjekte der Domain ausliefert.

Frage 2 von 10

Eine DNS-Antwort enthält assets.example.net CNAME edge.cdn.example.org. Der Resolver hat keine Adresse für das Ziel. Welche Information muss er beschaffen, bevor der Client eine Verbindung über IPv4 herstellen kann?
  1. Einen MX-Eintrag für assets.example.net.
  2. Einen NS-Eintrag mit der IP-Adresse des CDN-Servers als Wert.
  3. Einen PTR-Eintrag mit dem Pfad des HTTP-Objekts als Wert.
  4. Einen A-Eintrag für edge.cdn.example.org.
Antwort zeigenAntwort ausblenden
Antwort: D
Der CNAME liefert einen anderen Hostnamen, sodass der IPv4-Verbindungsaufbau weiterhin dessen A-Eintrag benötigt. Ein MX-Eintrag wählt einen Mailserver und löst diesen Webalias nicht auf. Auch ein NS-Eintrag enthält einen Namen, nicht die Server-IP-Adresse, die diese falsche Deutung nahelegt.

Frage 3 von 10

Eine Domain hat MX-Einträge mit den Präferenzen 15 und 35. Welchen Server sollte ein Sender normalerweise zuerst versuchen?
  1. Den Server mit Präferenz 15.
  2. Den Server mit Präferenz 35.
  3. Den im CNAME des Webhosts genannten Server.
  4. Den Server mit der längeren DNS-TTL.
Antwort zeigenAntwort ausblenden
Antwort: A
Bei MX-Einträgen wird der niedrigere Präferenzwert bevorzugt, sodass der Sender zuerst 15 versucht. Ein höherer Wert wird häufig mit höherer Priorität verwechselt. Die TTL steuert dagegen, wie lange der Eintrag zwischengespeichert werden darf; sie legt nicht die Rangfolge der E-Mail-Ziele der Domain fest.

Frage 4 von 10

Ein Resolver speichert eine Adresse mit einer TTL von 900 s zwischen. Die autoritative Adresse ändert sich 240 s später. Wie viel länger darf der Resolver die alte zwischengespeicherte Antwort verwenden?
  1. 240 s.
  2. 900 s.
  3. 660 s.
  4. 1.140 s.
Antwort zeigenAntwort ausblenden
Antwort: C
Von der Lebensdauer des zwischengespeicherten Eintrags von 900 s sind 240 s verbraucht, sodass 660 s bleiben. Die autoritative Aktualisierung startet diese Lebensdauer nicht neu und löscht sie nicht sofort. Die Antwort 900 s würde die spätere Adressänderung so behandeln, als hätte sie eine neue Kopie des alten Eintrags erstellt.

Frage 5 von 10

Eine UDP-DNS-Antwort trifft mit gesetztem TC-Flag ein und enthält nicht die vollständige Antwort. Wie sollte ein Resolver die vollständige Antwort beim üblichen Ausweichverfahren beschaffen?
  1. Die Anfrage über TCP-Port 53 wiederholen.
  2. Die Anfrage über UDP-Port 80 wiederholen.
  3. Die fehlenden Einträge als NXDOMAIN behandeln.
  4. Eine TCP-Verbindung an Port 25 öffnen.
Antwort zeigenAntwort ausblenden
Antwort: A
Das TC-Flag kennzeichnet eine Kürzung, sodass der Resolver die Anfrage über TCP an DNS-Port 53 wiederholen kann. Fehlende Daten in einer gekürzten Antwort bedeuten nicht, dass der Name nicht existiert. NXDOMAIN ist eine eigenständige DNS-Fehlerantwort und keine Schlussfolgerung aus einer unvollständigen Antwort.

Frage 6 von 10

Was sollte ein sendender Mailserver nach einer vorübergehenden SMTP-Ablehnung mit 4xx normalerweise tun?
  1. Die Nachricht als zugestellt markieren und aus der Warteschlange entfernen.
  2. Die Nachricht für einen späteren erneuten Versuch in der Warteschlange behalten.
  3. Das Postfach als dauerhaft nicht existent behandeln.
  4. Die Zustellung von SMTP auf IMAP umstellen.
Antwort zeigenAntwort ausblenden
Antwort: B
Eine SMTP-Antwort 4xx meldet einen vorübergehenden Fehler, sodass der sendende Server die Nachricht für einen erneuten Versuch behält. Eine dauerhafte Ablehnung mit 5xx wird anders behandelt und führt oft zu einem Unzustellbarkeitsbericht. IMAP greift auf gespeicherte E-Mails zu und kann die abgelehnte SMTP-Übertragung nicht ersetzen.

Frage 7 von 10

Eine Nachricht wird für RCPT TO:<archive@example.net> angenommen, aber ihr sichtbares To:-Feld nennt team@example.net. Welche Adresse steuert diese angenommene Zustellung?
  1. team@example.net im sichtbaren Nachrichtenheader.
  2. Die in MAIL FROM angegebene Absenderadresse.
  3. Der durch den EHLO-Befehl angegebene Hostname.
  4. archive@example.net im SMTP-Umschlag.
Antwort zeigenAntwort ausblenden
Antwort: D
RCPT TO bezeichnet einen Empfänger im Umschlag und steuert die hier beschriebene Zustellung. Das sichtbare To-Feld ist Teil der Nachricht und kann eine andere Adresse nennen. MAIL FROM liefert den Absender im Umschlag etwa für Unzustellbarkeitsberichte; es bezeichnet nicht den Empfänger.

Frage 8 von 10

Ein Smartphone soll Ordner und Lesemarkierungen sehen, die auf einem Laptop geändert wurden. Welche Zugriffsmethode unterstützt diesen serverseitigen Postfachzustand direkt?
  1. POP3 mit Herunterladen und Löschen pro Gerät.
  2. SMTP-Übertragung zwischen den Geräten.
  3. IMAP-Zugriff auf das gemeinsame Postfach.
  4. POP3 mit Herunterladen und Behalten auf beiden Geräten.
Antwort zeigenAntwort ausblenden
Antwort: C
IMAP speichert Postfachordner und Kennzeichnungen auf dem Server, sodass beide Geräte denselben Zustand sehen können. POP3 mit Herunterladen und Behalten lässt Nachrichtenkopien verfügbar, synchronisiert aber keine Serverordner oder Lesemarkierungen. Nachrichten zu behalten ist etwas anderes, als ihre Organisation zu teilen.

Frage 9 von 10

Eine Nachricht zeigt From: help@example.org, nutzt einen Absender im Umschlag bei mailer.example.net, besteht SPF für example.net und hat keine gültige DKIM-Signatur. Warum führt der SPF-Erfolg nicht zu einer erfolgreichen DMARC-Prüfung für die angezeigte Domain?
  1. Die erfolgreiche SPF-Prüfung muss stattdessen die Domain des Empfängers nutzen.
  2. Die erfolgreich geprüfte SPF-Domain stimmt nicht mit der From-Domain überein.
  3. Das erfolgreiche SPF-Ergebnis benötigt eine MX-Präferenz unter 10.
  4. Das erfolgreiche SPF-Ergebnis gilt nur, wenn SMTP Port 465 nutzt.
Antwort zeigenAntwort ausblenden
Antwort: B
SPF authentifiziert die Domain im Umschlag, hier example.net, während DMARC die Authentifizierung an die sichtbare From-Domain bindet. Diese Domains sind nicht verwandt und es liegt kein erfolgreiches DKIM-Ergebnis mit passender Domain vor. Daher reicht der SPF-Erfolg nicht aus. Die Authentifizierung irgendeiner Domain authentifiziert nicht den angezeigten Absender.

Frage 10 von 10

Ein Server erlaubt Nachrichten von höchstens 8 MB. Ein Sender hängt zwei mit Base64 codierte Binärdateien von je 3 MB an. Was folgt daraus für die Größe der vollständigen Nachricht?
  1. Sie überschreitet die Beschränkung, sobald der Nachrichtenaufwand hinzukommt.
  2. Sie passt und lässt 2 MB für Header und Text frei.
  3. Sie passt genau, weil der gesamte Nachrichtenaufwand bereits enthalten ist.
  4. Sie überschreitet die Beschränkung nur bei unterschiedlichen Dateitypen.
Antwort zeigenAntwort ausblenden
Antwort: A
Die Anhänge ergeben vor der Codierung zusammen 6 MB und werden vor Zeilenumbrüchen zu 8 Millionen Base64-Zeichen. Nachrichtenheader, Trennzeichen und weitere Inhalte bringen die Nachricht dann über 8 MB. Wer nur die 6 MB Rohdaten mit der Beschränkung vergleicht, übersieht den Codierungsaufwand, der den verfügbaren Platz ausfüllt.
Set 2: Prozesse, HTTP und Entscheidungen bei der Namensauflösung10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Ein Peer beim Dateiaustausch fordert ein Dateistück von einem anderen Peer an. Welche Rolle hat der anfragende Prozess bei diesem Austausch?
  1. Die Serverrolle.
  2. Die Trackerrolle.
  3. Die Clientrolle.
  4. Die Weiterleitungsrolle.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Ein Dienst nutzt einen Host, um verfügbare Teilnehmer aufzulisten, aber die Teilnehmer senden Dateistücke direkt untereinander. Wie ist dieser Dienst organisiert?
  1. Hybrid mit zentraler Suche und Datenübertragung zwischen Peers.
  2. Als Client-Server-Dienst mit zentraler Dateiauslieferung.
  3. Als reiner P2P-Dienst ohne eigens vorgesehenen Koordinationshost.
  4. Als Caching-Proxy-Dienst mit Teilnehmersuche über den Ursprungsserver.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Auf einem Host laufen mehrere Netzwerkdienste. Welche Zielinformationen ermöglichen einem Sender, den gewünschten Empfangsendpunkt zu erreichen?
  1. Die IP-Adresse des Hosts und der Dateipfad.
  2. Der Dienstport und der Inhaltstyp des Objekts.
  3. Der Hostname und der Statuscode der Antwort.
  4. Die IP-Adresse des Hosts und der Dienstport.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Eine Sensor-App sendet unabhängige Aktualisierungen, die schnell veralten, aber ihre Konfigurationsdownloads müssen vollständig ankommen. Welcher Transportentwurf passt zu diesen beiden Anforderungen?
  1. TCP für Aktualisierungen und UDP ohne Zusatzdienste für die Konfiguration.
  2. UDP für Aktualisierungen und ein zuverlässiger Dienst für die Konfiguration.
  3. UDP ohne Zusatzdienste für beides, da es Nachrichtengrenzen erhält.
  4. TCP für beides, da es jeder Aktualisierung eine Frist garantiert.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Ein HTTP-Server gibt für /handbook.pdf 404 Not Found zurück. Was hat dieser Austausch ergeben?
  1. Der Server hat die Transportverbindung nie angenommen.
  2. Die Anfrage war erfolgreich, aber der Browser hat die Datei abgelehnt.
  3. Der Server hat geantwortet, aber die Ressource wurde nicht gefunden.
  4. Der Server hat die Ressource an eine neue Adresse umgeleitet.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Eine neue TCP-Verbindung mit unverschlüsseltem HTTP hat eine RTT von 25 ms. Ein Objekt von 300 kB durchquert einen Pfad mit 40 Mbps. Wie lange dauert der Abruf ungefähr, ohne DNS und Verarbeitung?
  1. 60 ms.
  2. 85 ms.
  3. 160 ms.
  4. 110 ms.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Was verlangt Cache-Control: no-cache, bevor eine gespeicherte Antwort wiederverwendet wird?
  1. Sie beim Ursprungsserver zu prüfen.
  2. Sie überhaupt nicht zu speichern.
  3. Sie bis zum Beenden des Browsers wiederzuverwenden.
  4. Sie nur in einem gemeinsam genutzten Proxy zu speichern.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Ein Cache hat eine Trefferquote von 30 %. Treffer dauern 8 ms und Fehlzugriffe 180 ms. Wie groß ist die durchschnittliche Antwortzeit?
  1. 59,6 ms.
  2. 128,4 ms.
  3. 94 ms.
  4. 172 ms.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Ein Resolver hat eine gültige zwischengespeicherte Delegation an die autoritativen Nameserver einer Domain, aber keine gespeicherte Adresse für den angefragten Host. Wohin kann er seine nächste Anfrage senden?
  1. An einen Root-Nameserver, um die Auflösung neu zu beginnen.
  2. Direkt an den angefragten Webserver.
  3. An einen dieser autoritativen Nameserver.
  4. An den Browsercache, um die Delegation abzurufen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Eine Seite hat ein sehr kleines HTML-Objekt und sechs sehr kleine Bilder. Die RTT beträgt 15 ms. Vergleiche unverschlüsseltes HTTP mit sequenziellem nicht persistentem Abruf mit einem nicht persistenten Abruf, der nach der HTML-Datei jeweils drei parallele Bildverbindungen pro Gruppe nutzt. Lass Übertragung, DNS und Verarbeitung außer Acht. Wie viel Zeit spart die Aufteilung in Gruppen?
  1. 120 ms.
  2. 90 ms.
  3. 150 ms.
  4. 165 ms.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 3: Inhaltsauslieferung und Socket-Verhalten10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Ein BitTorrent-Peer benötigt mehrere Dateistücke. Welches Stück bevorzugt die Auswahl nach Rarest First?
  1. Das benötigte Stück, das die wenigsten Nachbarn besitzen.
  2. Das benötigte Stück vom schnellsten Nachbarn.
  3. Das benötigte Stück, das in der Datei am frühesten steht.
  4. Das benötigte Stück, das andere Peers am meisten anfordern.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Welche Informationen liefert ein DASH-Manifest dem Wiedergabegerät zur Auswahl und Anforderung von Segmenten?
  1. Aktuellen Pfaddurchsatz, Pufferfüllstand und nächste gewählte Rate.
  2. Verfügbare codierte Versionen, Bitraten und Segment-URLs.
  3. Eine feste Codierung und eine einzelne Download-URL für das ganze Video.
  4. Verfügbare Serverstandorte ohne Angaben zu codierten Versionen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Server lädt mit 60 Mbps für 12 Clients hoch, die jeweils mit 15 Mbps herunterladen. Wie lautet die untere Schranke der Client-Server-Verteilungsdauer für eine Datei von 900 Mbit?
  1. 15 s.
  2. 60 s.
  3. 240 s.
  4. 180 s.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Ein 5 s langes Videosegment ist mit 3 Mbps codiert und wird bei fortlaufender Wiedergabe mit 6 Mbps heruntergeladen. Wie ändert sich der Puffer, nachdem das vollständige Segment ohne Unterbrechung eingetroffen ist?
  1. Er schrumpft um 2,5 s.
  2. Er wächst um 2,5 s.
  3. Er wächst um 5 s.
  4. Er bleibt unverändert.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Ein CDN-Server hat keine Kopie eines angeforderten Bildes, holt es vom Ursprungsserver und behält es anschließend für spätere Anfragen. Welches Platzierungsverfahren ist das?
  1. Pull-Befüllung bei einem Cachefehltreffer.
  2. Push-Befüllung vor den Anfragen.
  3. Weiterleitung vom Ursprung ohne lokale Kopie.
  4. Auslieferung durch andere Zuschauer als Peers.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Ein UDP-Server empfängt Daten von (192.0.2.44, 53018). Wohin sollte er die Antwort auf diese Anfrage senden?
  1. An 192.0.2.44 über den Serverport.
  2. An seine eigene IP über Port 53018.
  3. An 192.0.2.44 über Port 53018.
  4. An 192.0.2.44 über einen ungenutzten Port.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Ein TCP-Server empfängt bei der ersten recv(1024)-Operation einer durch Zeilenumbruch begrenzten Anfrage b"part". Was muss er tun, bevor er diese Anfrage als vollständig behandelt?
  1. Die vier Bytes sofort als vollständige Anfrage behandeln.
  2. Bis zum Zeilenumbruch oder Ende des Datenstroms weiter empfangen.
  3. accept erneut aufrufen, um den Rest der Anfrage zu erhalten.
  4. Den Backlog erhöhen, um die übrigen Bytes zu erhalten.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Bei einer Datei von 1.200 Mbit laden 30 Peers jeweils mit 2 Mbps hoch und der langsamste lädt mit 12 Mbps herunter. Der Server lädt mit 60 Mbps hoch. Um wie viel verringert P2P die untere Schranke gegenüber Client-Server, wenn nur Zugangsverbindungen Engpässe sind?
  1. 100 s.
  2. 500 s.
  3. 580 s.
  4. 300 s.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Ein Wiedergabegerät hat 3 s gepuffert und fordert vollständige 4-s-Segmente mit entweder 2 oder 4 Mbps an. Der Durchsatz bleibt bei 3 Mbps; nur vollständige Segmente sind abspielbar. Welche Wahl vermeidet beim nächsten Download eine Unterbrechung und vergrößert den Puffer?
  1. Die Version mit 4 Mbps.
  2. Beide Versionen, da beide Segmente 4 s dauern.
  3. Die Version mit 2 Mbps.
  4. Keine Version, da der Puffer kürzer als ein Segment ist.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Der öffentliche DNS-Resolver eines Zuschauers ist weit entfernt. CDN-Cluster A liegt diesem Resolver am nächsten, hat aber einen überlasteten Pfad zum Zuschauer; Cluster B hat einen gemessen schnelleren Pfad zum Zuschauer. Welche Änderung bei der Auswahl geht dieses Problem an?
  1. Nur nach räumlicher Entfernung vom öffentlichen Resolver wählen.
  2. Die DNS-TTL erhöhen, damit der Resolver Cluster A länger behält.
  3. Bei einem entfernten Resolver stets eine höhere codierte Rate nutzen.
  4. Bei der Clusterauswahl Messdaten zur Leistung des Clientnetzes nutzen.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 4: Verfolge Fehler und korrigiere Überlegungen zu Protokollen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Was gibt Pythons accept() an einen lauschenden TCP-Server zurück?
  1. Die vollständige nächste Anfrage und ihre Länge in Byte.
  2. Den ursprünglichen lauschenden Socket und eine neue Serverportnummer.
  3. Ein UDP-Datagramm und die Nachrichtennummer des Senders.
  4. Einen neuen Verbindungssocket und die Clientadresse.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Eine Anfrage enthält If-None-Match: "r9" und der Ursprungsserver gibt 304 Not Modified zurück. Wie sollte ein Cache die Anfrage bedienen?
  1. Die gespeicherte Darstellung durch den leeren Antworttext ersetzen.
  2. Die durch diese Antwort geprüfte gespeicherte Darstellung wiederverwenden.
  3. Ein unbedingtes GET wiederholen, weil jeder 304 ein Fehler ist.
  4. Die gespeicherte Darstellung löschen, weil ihr ETag ungültig ist.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Mehrere HTTP/2-Datenströme teilen sich eine Verbindung. Ein verlorenes TCP-Segment verhindert die Auslieferung späterer Bytes. Warum kann auch eine Antwort warten, deren eigene Bytes angekommen sind?
  1. TCP liefert die Bytes der Verbindung in einer gemeinsamen Reihenfolge aus.
  2. HTTP/2 verlangt, dass jeder Antworttext in Anfragereihenfolge fertig wird.
  3. Jeder HTTP/2-Datenstrom öffnet nach jedem Verlust eine neue TCP-Verbindung.
  4. HPACK verlangt, dass jeder verlorene Daten-Frame erneut komprimiert wird.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Auf einem Unix-Host nutzt ein UDP-Empfänger einen Puffer von 500 Byte für ein eintreffendes Datagramm von 700 Byte. Was geschieht mit dem nicht gelesenen Rest?
  1. Der Rest von 200 Byte wird als Nächstes gelesen.
  2. Das Datagramm bleibt vollständig in der Warteschlange.
  3. Der Rest von 200 Byte wird verworfen.
  4. Der Sender sendet die 200 Byte erneut.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Ein Nutzer sendet über Webmail eine Nachricht an einen anderen Anbieter. Welche Protokollkombination beschreibt die Browserverbindung und die übliche Übertragung zwischen Servern?
  1. SMTP am Browser; HTTPS zwischen Mailservern.
  2. IMAP am Browser; POP3 zwischen Mailservern.
  3. HTTPS am Browser; IMAP zwischen Mailservern.
  4. HTTPS am Browser; SMTP zwischen Mailservern.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Ein Torrent hat viele Peers, die herunterladen, aber fast keine Uploadkapazität beitragen. Warum bringt der Beitritt dieser Peers wahrscheinlich nicht den üblichen Vorteil der Selbstskalierung?
  1. Ihre Downloadverbindungen machen Serverupload überflüssig.
  2. Ihre Anwesenheit macht jedes vorhandene Stück zu einer vollständigen Datei.
  3. Sie erhöhen die Nachfrage, ohne viel nutzbare Verteilungskapazität beizutragen.
  4. Ihre Trackeranfragen gelten als gleichwertige Datei-Uploadkapazität.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Eine DNS-Namensauflösung bei leerem Cache hat eine RTT von 4 ms zwischen Host und Resolver, 12 ms zum Root-Nameserver, 18 ms zum TLD-Nameserver und 26 ms zum autoritativen Nameserver. Eine spätere Auflösung nutzt zwischengespeicherte Root- und TLD-Verweise, aber keine gespeicherte endgültige Antwort. Um wie viel ist die spätere Auflösung ohne Verarbeitung schneller?
  1. Um 30 ms schneller.
  2. Um 26 ms schneller.
  3. Um 34 ms schneller.
  4. Um 56 ms schneller.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Ein persistentes Protokoll mit Zeilenumbruch als Trennzeichen empfängt b"red\nblu" und dann b"e\n". Welche Verarbeitung erhält beide Anfragen korrekt?
  1. red verarbeiten, blu verwerfen und dann e als zweite Anfrage verarbeiten.
  2. red verarbeiten, blu behalten, dann mit e verbinden und blue verarbeiten.
  3. Auf das Schließen warten und red und blue als eine Anfrage verarbeiten.
  4. red und blu sofort verarbeiten und dann e getrennt verarbeiten.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Eine sehr kleine Seite hat ein HTML-Objekt und vier Bilder. Die RTT beträgt 20 ms. Vergleiche eine persistente HTTPS-Verbindung mit sequenziellen Anfragen mit sequenziell neu aufgebauten HTTPS-Verbindungen für alle Objekte. Jede neue Verbindung benötigt eine RTT für den TCP- und eine für den TLS-1.3-Aufbau. Lass andere Kosten außer Acht. Wie viel Zeit spart die Wiederverwendung?
  1. 160 ms.
  2. 80 ms.
  3. 120 ms.
  4. 200 ms.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein Wiedergabegerät beginnt mit 7 s im Puffer. Es lädt drei vollständige 3-s-Segmente, die mit 4 Mbps codiert sind, über einen gleichmäßigen Pfad mit 3 Mbps herunter. Die Wiedergabe läuft durch und die Downloads überlappen sich nicht. Wie viel Puffer bleibt und tritt während dieser Downloads eine Unterbrechung auf?
  1. 4 s bleiben, mit einer Unterbrechung beim letzten Download.
  2. 4 s bleiben, ohne Unterbrechung.
  3. 7 s bleiben, ohne Unterbrechung.
  4. 10 s bleiben, ohne Unterbrechung.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Set 5: Engpässe, Abhängigkeiten und Entwurfsentscheidungen10 Übungsfragen

Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.

Frage 1 von 10

Welches Transportprotokoll stellt die zuverlässigen Datenströme bereit, die HTTP/3 nutzt?
  1. TLS über UDP ohne Zusatzdienste.
  2. QUIC über UDP.
  3. TCP über QUIC.
  4. HTTP/2 über TCP.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 2 von 10

Eine App stellt eine Dateiübertragung von TCP auf UDP ohne Zusatzdienste um, benötigt aber weiterhin jedes Byte in der richtigen Reihenfolge. Welche Funktion muss ihr Entwurf nun oberhalb von UDP bereitstellen?
  1. Nur einen Zielport, da UDP die Reihenfolge garantiert.
  2. Nur Nachrichtenlängen, da UDP Ankünfte bereits ordnet.
  3. Verlustbehebung und Ordnung der übertragenen Daten.
  4. Nur Verschlüsselung, da UDP fehlende Daten bereits wiederherstellt.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 3 von 10

Ein Zuschauer spielt ein Video mit 6 Mbps aus einem CDN-Cache ab. Seine Zugangsverbindung kann 4 Mbps übertragen, während der Cluster freie Kapazität hat. Warum beseitigt das Verschieben der zwischengespeicherten Kopie an einen noch näheren CDN-Standort möglicherweise keine Unterbrechungen?
  1. Die Zugangsverbindung des Zuschauers kann der begrenzende Engpass bleiben.
  2. Der Ursprungsserver muss jedes Segment vor der Cacheauslieferung freigeben.
  3. Die gewählte Videocodierung legt die Kapazität der Zugangsverbindung fest.
  4. Ein Cachetreffer spart Arbeit am Ursprung, erhöht aber immer die Videobitrate.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 4 von 10

Bei einem UDP-Client läuft nach dem Senden einer Anfrage das Zeitlimit ab. Warum kann er daraus nicht schließen, dass das Serverprogramm gestoppt wurde?
  1. Eine Zeitüberschreitung bestätigt, dass der Server die Syntax abgelehnt hat.
  2. Zeitüberschreitungen treten nur auf, wenn kein Prozess den Port gebunden hat.
  3. Eine Zeitüberschreitung bestätigt, dass der Server seine Adresse geändert hat.
  4. Die Anfrage oder die Antwort könnte verloren gegangen sein.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 5 von 10

Eine Zugangsverbindung hat 50 Mbps. Pro Sekunde treffen 50 Anfragen für jeweils ein Objekt von 1 Mbit ein. Cachetreffer dauern 4 ms und Fehlzugriffe 100 ms. Welche Mindesttrefferquote ergibt eine durchschnittliche Antwortzeit von höchstens 40 ms und welche Verkehrsintensität der Verbindung bleibt dann? Nimm an, dass die Verzögerungen auf beiden Pfaden konstant bleiben.
  1. 60 % Treffer und eine Intensität von 0,4.
  2. 37,5 % Treffer und eine Intensität von 0,625.
  3. 62,5 % Treffer und eine Intensität von 0,625.
  4. 62,5 % Treffer und eine Intensität von 0,375.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 6 von 10

Eine Datei von 600 Mbit geht an 20 Peers, die jeweils mit 5 Mbps hochladen. Der Serverupload beträgt 100 Mbps. Der langsamste Peer lädt mit 2 Mbps herunter; alle anderen Downloads sind schneller. Würde eine Verdopplung des Serveruploads die untere P2P-Schranke senken, wenn nur Zugangsverbindungen Engpässe sind?
  1. Nein; der Term von 300 s für den langsamsten Download bleibt dominant.
  2. Ja; die Schranke fällt von 120 s auf 60 s.
  3. Ja; die Schranke fällt von 300 s auf 150 s.
  4. Nein; der Term von 120 s für die Serverkopie bleibt dominant.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 7 von 10

Ein Resolver erhält example.org NS ns.example.org und einen zusätzlichen A-Eintrag mit der Adresse dieses Nameservers, aber keinen A-Eintrag für lab.example.org. Was muss er tun, um den Lab-Host zu finden, und warum?
  1. Die zusätzliche Adresse als Lab-Host kontaktieren; zusätzliche A-Einträge beantworten alle Subdomains.
  2. Den genannten Server nach dem NS-Eintrag für Lab fragen; dessen Wert liefert die angefragte Hostadresse.
  3. Den genannten Server nach dem A-Eintrag für Lab fragen; die zusätzliche Adresse bezeichnet den DNS-Server.
  4. NXDOMAIN für den Lab-Host zurückgeben; ein Verweis ohne dessen A-Eintrag belegt die Abwesenheit.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 8 von 10

Eine Nachricht wird bei einem Server eingeliefert, danach schließt der Sender den Laptop. Die Empfängerdomain hat MX-Präferenzen 12 und 28. Server 12 meldet einen vorübergehenden Fehler; Server 28 ist nicht erreichbar. Der Empfänger nutzt IMAP. Was sollte als Nächstes geschehen und wo sollte der Empfänger die Nachricht jetzt erwarten?
  1. Als dauerhaften Fehler löschen; IMAP kann sie vom Laptop des Senders wiederherstellen.
  2. Auf dem sendenden Server in der Warteschlange behalten; sie ist noch nicht im Empfängerpostfach.
  3. Als über Server 12 zugestellt markieren; eine vorübergehende Antwort legt sie im IMAP-Speicher ab.
  4. In das IMAP-Postfach des Senders verschieben; dieses Postfach übernimmt nun die Zustellversuche.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 9 von 10

Ein Smartphone wechselt vom WLAN zum Mobilfunk und ändert dabei seine IP-Adresse, während es zwei HTTP/3-Objekte herunterlädt. Ein Paket, das nur Bytes für Datenstrom X enthält, geht verloren; die vollständigen Daten von Y treffen ein und hängen in der Anwendung nicht von X ab. Was kann mit der Verbindung und den beiden Datenströmen geschehen?
  1. Die Verbindung kann bestehen bleiben; X wartet auf Wiederherstellung, während empfangene Daten von Y ausgeliefert werden können.
  2. Die Verbindung kann bestehen bleiben; beide Datenströme müssen auf die Wiederherstellung der fehlenden X-Bytes warten.
  3. Die Verbindung muss neu aufgebaut werden; beide Objekte müssen trotz empfangener Y-Daten erneut angefordert werden.
  4. Die Verbindung kann bestehen bleiben; Y kommt nur voran, wenn X auf zuverlässige geordnete Auslieferung verzichtet.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Frage 10 von 10

Ein TCP-Client sendet mit sendall eine durch Zeilenumbruch begrenzte Anfrage und wartet dann bei offener Verbindung auf eine Antwort. Der Server wartet vor seiner Antwort auf EOF. Warum können beide Programme unbegrenzt warten und welche dazu passende Änderung behebt das?
  1. Der Client nutzte sendall; ein einzelnes send garantiert stattdessen den Abschluss.
  2. Der Server-Backlog ist voll; eine Vergrößerung lässt diese Anfrage EOF erreichen.
  3. Der Server wartet auf das Schließen; er sollte den Zeilenumbruch der Anfrage erkennen.
  4. TCP verlor die Nachrichtengrenze; ein größeres recv garantiert die Grenze des Sendeaufrufs.
Antwort zeigenAntwort ausblenden

Speichere diese Einheit, um diese Antwort zu sehen.

Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe

Schlüsselbegriffe

88 Schlüsselbegriffe, jeweils mit Definition

A

A-Eintrag
Ein A-Eintrag ordnet einem DNS-Hostnamen eine IPv4-Adresse zu, sodass ein Client diesen Host in einem IPv4-Netz finden kann.
Ein A-Eintrag für www.example.org kann in einer beispielhaften Namensauflösung die Dokumentationsadresse 203.0.113.25 zurückgeben.
AAAA-Eintrag
Ein AAAA-Eintrag ordnet einem DNS-Hostnamen eine IPv6-Adresse zu und bietet eine IPv6-Alternative zu IPv4-Adresseinträgen.
Ein AAAA-Eintrag kann bei einer beispielhaften IPv6-Namensauflösung für einen Host 2001:db8::25 zurückgeben.
Anwendungsschichtprotokoll
Ein Anwendungsschichtprotokoll legt Nachrichtentypen, Feldsyntax, Bedeutung und Regeln für den Austausch zwischen Prozessen fest.
HTTP ist ein Anwendungsschichtprotokoll, mit dem unabhängig voneinander geschriebene Browser und Server Objekte austauschen können.
Autoritativer Nameserver
Ein autoritativer Nameserver veröffentlicht DNS-Einträge für die Namen innerhalb der von ihm betreuten Zonen und liefert daraus maßgebliche Antworten.
Der autoritative Nameserver einer Domain gibt den veröffentlichten Adresseintrag für deren Webhost zurück.

B

Backlog
Ein Backlog ist die zulässige Warteschlange für ausstehende Verbindungsanfragen, die auf die Annahme durch einen lauschenden Serversocket warten.
Ein größerer Backlog bewirkt nicht, dass die sequenzielle Anfrageverarbeitung eines Servers nebenläufig arbeitet.
Base64
Base64 codiert Gruppen von drei Bytes als vier ASCII-Zeichen und erhöht die Datengröße vor dem Nachrichtenaufwand um etwa ein Drittel.
Ein Anhang von 3 MB wird zu 4 Millionen Base64-Zeichen, bevor Zeilenumbrüche und Header hinzugefügt werden.
Bedingte GET-Anfrage
Eine bedingte GET-Anfrage fordert eine Darstellung unter einer Bedingung an und prüft häufig vor der Übertragung des Nachrichtentexts ein zwischengespeichertes Datum oder einen ETag.
Eine bedingte GET-Anfrage erhält 304, wenn der gespeicherte ETag weiterhin die aktuelle Darstellung bezeichnet.
Binden
Binden ist die Socket-Operation, die einem Endpunkt eine lokale Adresse und einen Port zuweist und damit bestimmt, wo er Verkehr empfängt.
Ein UDP-Server, der bind mit 127.0.0.1 und Port 12000 aufruft, empfängt lokale Anfragen an dieser Adresse und diesem Port.
Bitrate
Eine Bitrate ist die Datenmenge pro Zeiteinheit; bei codiertem Video misst sie, wie viele Bits für jede Sekunde Wiedergabe benötigt werden.
Eine Videobitrate von 5 Mbps ergibt 20 Mbit codierte Daten für ein vier Sekunden langes Segment mit konstanter Rate.
Bring Home
Bring Home ist eine CDN-Platzierungsstrategie mit weniger, größeren Clustern an Austauschknoten, an denen viele Netze verbunden sind.
Bring Home vereinfacht die Verwaltung im Vergleich zur Wartung vieler kleiner Cluster innerhalb von Zugangsnetzen.

C

Cache-Control
Cache-Control ist ein HTTP-Feld mit Caching-Direktiven, die Speicherung, Aktualität und Prüfung einer Antwort steuern.
Cache-Control mit no-store verhindert das Speichern; no-cache verlangt dagegen eine Prüfung vor der Wiederverwendung.
Cache-Poisoning
Cache-Poisoning ist das Einfügen falscher Daten in den Cache eines Resolvers, sodass spätere Anfragen die gefälschten Informationen des Angreifers wiederverwenden.
Eine beim Cache-Poisoning akzeptierte gefälschte Adresse kann spätere Besucher zum Host eines Angreifers leiten.
Cachetreffer
Ein Cachetreffer tritt ein, wenn eine angeforderte Antwort in einem Cache vorhanden und nutzbar ist, sodass der gewöhnliche Abruf vom Ursprungsserver entfällt.
Die Institution verzeichnet einen Cachetreffer für ein beliebtes Bild, das bereits in ihrem Caching-Proxy gespeichert ist.
Caching-Proxy
Ein Caching-Proxy ist ein Vermittler, der Anfragen an Ursprungsserver weiterleitet und geeignete Anfragen mit gespeicherten Antworten bedienen kann.
Der Caching-Proxy liefert einen lokalen Treffer aus, handelt aber als Client, wenn er ein fehlendes Objekt vom Ursprungsserver abruft.
CDN
Ein CDN verteilt Auslieferungskapazität und Inhaltskopien auf mehrere Standorte, um Objekte effizient auszuliefern und die Last am Ursprungsserver zu verringern.
Ein CDN-Cluster nahe am Zuschauer liefert beliebte Videosegmente aus, ohne jede Anfrage an den Ursprungsserver zu senden.
Client-Server-Architektur
Eine Client-Server-Architektur weist Anfragen den Clients und die Bedienung der Anfragen eigens dafür vorgesehenen, erreichbaren Serverhosts zu.
In einer Client-Server-Architektur lädt eine forschende Person einen Datensatz vom Server des Herausgebers herunter.
CNAME-Eintrag
Ein CNAME-Eintrag macht den zugehörigen Namen zum Alias eines kanonischen Zielnamens, sodass die Namensauflösung über dieses Ziel fortgesetzt werden kann.
Ein CNAME-Eintrag verweist media.example.org in einen CDN-Namensraum, bevor der Resolver eine Adresse erhält.
Cookie
Ein Cookie ist ein Wert, den ein Browser speichert und mit passenden Anfragen zurücksendet, sodass eine Website einen Zustand über mehrere Anfragen hinweg wiedererkennen kann.
Der Onlineshop schlägt einen gespeicherten Warenkorb nach, wenn der Browser sein Sitzungscookie zurückgibt.

D

DASH
DASH ist adaptives Streaming über HTTP, bei dem ein Client aufeinanderfolgende Videosegmente aus Versionen mit unterschiedlichen codierten Raten auswählt.
DASH ermöglicht einem Wiedergabegerät, zu einer Version mit niedrigerer Rate zu wechseln, nachdem der Durchsatz sinkt und sein Puffer zu schrumpfen beginnt.
Datagramm
Ein Datagramm ist eine unabhängig adressierte Nachricht eines verbindungslosen Transports, deren Grenze beim Empfang erhalten bleibt.
Zwei getrennt gesendete UDP-Datagramme bleiben separate Nachrichten, auch wenn sie kurz nacheinander eintreffen.
Datenstrom
Ein Datenstrom ist eine logische Datenfolge innerhalb einer Verbindung; das Multiplexen in HTTP nutzt Datenströme, um gleichzeitige Austausche zu unterscheiden.
Ein Datenstrom mit einem Seitenbild kann neben einem anderen mit einem Stylesheet vorankommen.
DKIM
DKIM authentifiziert signierte Nachrichtendaten mithilfe der digitalen Signatur einer Domain und eines über DNS veröffentlichten Prüfschlüssels.
Ein Empfänger prüft eine DKIM-Signatur mit dem öffentlichen Schlüssel der Signaturdomain der Nachricht.
DMARC
DMARC verknüpft ein erfolgreiches SPF- oder DKIM-Ergebnis durch Domainübereinstimmung mit der sichtbaren From-Domain und veröffentlicht eine Richtlinie für Fehlschläge.
Eine DMARC-Prüfung kann sich nicht auf einen SPF-Erfolg für eine nicht zugehörige Domain stützen, wenn kein DKIM-Ergebnis mit passender Domain erfolgreich ist.
DNS
DNS ist eine verteilte Namensdatenbank und ein Anwendungsprotokoll zur Abfrage von Einträgen wie Hostadressen und E-Mail-Zielen.
Vor der Kontaktaufnahme mit einem Webhost fragt der Browser DNS nach den zu seinem Namen gehörenden Adressinformationen.
DNSSEC
DNSSEC ergänzt DNS-Daten um digitale Signaturen, damit prüfende Resolver Echtheit und Integrität signierter Einträge kontrollieren können.
DNSSEC hilft einem Resolver, gefälschte signierte Daten zu erkennen, während verschlüsseltes DNS die Vertraulichkeit von Anfragen schützt.

E

E-Mail-Warteschlange
Eine E-Mail-Warteschlange speichert Nachrichten, die auf ihre Übertragung warten, damit ein Server die Zustellung nach vorübergehenden Ziel- oder Netzwerkfehlern erneut versuchen kann.
Die ausgehende E-Mail-Warteschlange behält eine Nachricht, während der Zielserver vorübergehend nicht verfügbar ist.
Elastische Anwendung
Eine elastische Anwendung kann den aktuell verfügbaren Durchsatz nutzen, ohne für ihren grundlegenden Betrieb eine feste Mindestrate zu benötigen.
Der Download eines E-Mail-Anhangs ist eine elastische Anwendung, auch wenn der Nutzer einen schnellen Abschluss bevorzugen würde.
Endsystem
Ein Endsystem ist ein Host am Netzrand, der Anwendungsprozesse ausführt, etwa ein Smartphone, Laptop oder Server.
Ein Browser und ein Webserver laufen auf Endsystemen, während Router die Pakete zwischen ihnen weiterleiten.
Enter Deep
Enter Deep ist eine CDN-Platzierungsstrategie mit vielen kleineren Clustern innerhalb der Netze von Zugangsanbietern, um Pfade zu Nutzern zu verkürzen.
Enter Deep bringt Inhalte nahe an Teilnehmer, lässt den Betreiber aber viele Standorte warten.
ETag
Ein ETag ist eine einer Ressourcendarstellung zugewiesene Kennung, die in Bedingungen zum Vergleich einer gespeicherten mit der aktuellen Version verwendet wird.
Der Cache sendet seinen gespeicherten ETag in If-None-Match, bevor er entscheidet, ob er den gespeicherten Nachrichtentext ersetzt.

G

Gültigkeitsdauer (TTL)
Die Gültigkeitsdauer (TTL) ist der Wert in einem DNS-Eintrag, der begrenzt, wie viele Sekunden eine zwischengespeicherte Kopie wiederverwendbar bleibt.
Nach einer Adressänderung kann eine alte zwischengespeicherte Antwort nutzbar bleiben, bis die verbleibende TTL null erreicht.

H

Head-of-Line-Blocking
Head-of-Line-Blocking ist eine Wartezeit, die entsteht, wenn frühere Arbeit oder fehlende Daten verhindern, dass spätere verfügbare Daten vorankommen.
Ein verlorenes TCP-Segment verursacht Head-of-Line-Blocking für spätere Bytes mehrerer HTTP/2-Datenströme.
HTTP-Frame
Ein HTTP-Frame ist eine strukturierte Einheit, die einen Teil einer Nachricht oder Steuerinformationen innerhalb von HTTP/2 oder HTTP/3 überträgt.
Der Sender plant einen Daten-Frame einer kurzen Antwort zwischen Frames ein, die zu einer großen Antwort gehören.
HTTP-Methode
Eine HTTP-Methode gibt die für eine Ressource angeforderte Operation an, etwa den Abruf mit GET oder den Abruf der Header mit HEAD.
Der Browser nutzt die HTTP-Methode GET, wenn er ein verlinktes Dokument von der Website abruft.
HTTP-Objekt
Ein HTTP-Objekt ist eine einzeln adressierbare Darstellung einer Ressource, etwa ein HTML-Dokument, Bild oder Skript, die über HTTP abgerufen wird.
Die HTML-Basisdatei nennt mehrere Bilder, sodass der Browser für die Seite mehr als ein HTTP-Objekt anfordert.
HTTP/2
HTTP/2 überträgt HTTP-Nachrichten als verschachtelte binäre Frames mehrerer Datenströme über eine TCP-Verbindung und komprimiert Header.
HTTP/2 kann ein kleines Bild fertig übertragen, während Frames einer viel größeren Antwort noch gesendet werden.
HTTP/3
HTTP/3 bildet die gemeinsame Bedeutung von HTTP-Nachrichten auf QUIC-Datenströme und binäre Frames ab und nutzt die integrierte Transportsicherheit von QUIC.
HTTP/3 liefert dieselbe Ressourcen-URL aus, verändert aber gegenüber TCP-basierten HTTP-Versionen den Transport.
HttpOnly
HttpOnly ist ein Cookie-Attribut, das Seitenskripte am Lesen des Cookies hindert und gleichzeitig dessen Übertragung mit passenden HTTP-Anfragen erlaubt.
Ein mit HttpOnly gekennzeichnetes Anmeldecookie kann weiterhin eine passende Anfrage begleiten, obwohl Skripte es nicht lesen können.
Hybride Architektur
Eine hybride Architektur kombiniert eigens vorgesehene Serverfunktionen mit direkter Kommunikation zwischen Peers innerhalb derselben Anwendung.
Ein trackerbasierter Dateiaustauschdienst hat eine hybride Architektur, wenn Peers die Datei selbst übertragen.

I

IMAP
IMAP ist ein E-Mail-Zugriffsprotokoll, das Nachrichten, Ordner und Kennzeichnungen auf dem Server hält und Clients den Abruf ausgewählter Inhalte erlaubt.
IMAP ermöglicht einem Smartphone, die zuvor auf einem Laptop geänderte Lesemarkierung und Ordnerzuordnung zu sehen.
IP-Anycast
IP-Anycast gibt dieselbe IP-Adresse von mehreren Standorten aus bekannt, sodass das Netzwerkrouting einen Pfad zu einem von ihnen auswählen kann.
IP-Anycast kann einen Client zu einem CDN-Standort leiten, ohne diesem eine eigene, für den Client sichtbare Adresse zuzuweisen.

L

Lauschender Socket
Ein lauschender Socket wartet auf eingehende TCP-Verbindungsanfragen und nimmt sie in separate Sockets für den Datenaustausch an.
Der lauschende Socket bleibt offen, während der angenommene Verbindungssocket die Anfrage eines Clients überträgt.
Loopback-Adresse
Eine Loopback-Adresse leitet Verkehr innerhalb desselben Hosts und ermöglicht lokalen Prozessen die Kommunikation, ohne einen anderen Rechner zu kontaktieren.
Ein an die Loopback-Adresse 127.0.0.1 gebundener Server kann von einem Client auf demselben Computer getestet werden.

M

Manifest
Ein Manifest beschreibt die verfügbaren Versionen und Segmentstandorte, die ein adaptives Wiedergabegerät zum Anfordern von Videoinhalten nutzt.
Das Wiedergabegerät liest das Manifest, bevor es die nächste Segment-URL und deren codierte Version auswählt.
MIME
MIME erweitert das E-Mail-Format um Inhaltstypen, mehrteilige Strukturen und Übertragungscodierungen, die vielfältigeren Text und Anhänge unterstützen.
MIME ermöglicht es, dass eine Nachricht eine reine Textnotiz und einen separaten Bildanhang mit eigenem Typ enthält.
MX-Eintrag
Ein MX-Eintrag bezeichnet ein E-Mail-Ziel einer Domain durch Servernamen und Präferenz, wobei niedrigere Präferenzwerte zuerst versucht werden.
Der MX-Eintrag mit Präferenz 10 wird normalerweise vor dem Eintrag derselben Domain mit Präferenz 20 versucht.

N

Nachpuffern
Nachpuffern ist eine Wiedergabeunterbrechung, die entsteht, wenn abspielbare Daten ausgehen und das Wiedergabegerät auf weitere Inhalte warten muss.
Das Wiedergabegerät senkt nach dem Nachpuffern die angeforderte Rate, um die Wahrscheinlichkeit einer weiteren sichtbaren Pause zu verringern.
Nachrichtenabgrenzung
Nachrichtenabgrenzung legt fest, wie ein Empfänger vollständige Anwendungsnachrichten innerhalb eines Bytestroms anhand von Längen oder Trennzeichen erkennt.
Nachrichtenabgrenzung anhand von Zeilenumbrüchen ermöglicht dem Empfänger, mehrere TCP-Lesevorgänge zu sammeln, bis eine vollständige Zeile eintrifft.
NS-Eintrag
Ein NS-Eintrag nennt einen autoritativen DNS-Server für eine Domain oder Zone; sein Wert ist ein Hostname, nicht die IP-Adresse dieses Servers.
Der NS-Eintrag verweist auf ns1.example.org und ergänzende Adressdaten ermöglichen dem Resolver, ihn zu kontaktieren.

O

Optimistic Unchoke
Ein Optimistic Unchoke hebt die Uploadsperre für einen interessierten Peer auf, ohne einen hohen aktuellen Beitrag vorauszusetzen, und ermöglicht so das Erproben eines Partners.
Ein Optimistic Unchoke ermöglicht einem neuen Teilnehmer, erste Stücke zu erhalten, bevor er ein nützlicher Tauschpartner wird.

P

Partieller Sendevorgang
Ein partieller Sendevorgang tritt ein, wenn ein send-Aufruf weniger Bytes als übergeben annimmt und die verbleibenden Bytes später gesendet werden müssen.
Die Nutzung von sendall vermeidet, dass ein partieller Sendevorgang unvollendet bleibt, wenn das Programm einen Antwortpuffer überträgt.
Peer-to-Peer-Architektur
Eine Peer-to-Peer-Architektur ermöglicht teilnehmenden Hosts, Daten direkt auszutauschen und sowohl Anfragen als auch Auslieferungskapazität beizutragen.
Eine Peer-to-Peer-Architektur ermöglicht einem neuen Teilnehmer, Dateistücke von mehreren anderen Teilnehmern herunterzuladen.
Persistente Verbindung
Eine persistente Verbindung bleibt nach einer Antwort für spätere Anfragen verfügbar und spart wiederholten Aufwand für den Transportaufbau.
Eine persistente Verbindung überträgt eine HTML-Antwort und spätere Bildantworten ohne neue TCP-Handshakes.
POP3
POP3 ist ein E-Mail-Zugriffsprotokoll zum Herunterladen gespeicherter Nachrichten mit optionaler Löschung vom Server nach einer abgeschlossenen Sitzung.
POP3 mit Herunterladen und Löschen auf einem Laptop kann dazu führen, dass ein Smartphone dieselbe Nachricht später nicht mehr abrufen kann.
Portnummer
Eine Portnummer ist ein 16-Bit-Wert, der zusammen mit einer IP-Adresse einen Empfangsendpunkt der Transportschicht auf einem Host bezeichnet.
Der Client kontaktiert denselben Host für HTTPS an Portnummer 443 und für die Übertragung zwischen Mailservern an Portnummer 25.
Prozess
Ein Prozess ist eine laufende Instanz eines Programms; vernetzte Prozesse tauschen Anwendungsnachrichten über Transportendpunkte aus.
Ein Mailserverprozess kann eine Nachricht senden, während ein anderer Prozess auf dem Host Webanfragen bearbeitet.
Pull-Verfahren
Das Pull-Verfahren befüllt einen CDN-Cache als Reaktion auf eine Anfrage nach Inhalten, die der lokale Cluster noch nicht besitzt.
Beim Pull-Verfahren hängt die erste Anfrage nach einem nicht zwischengespeicherten Objekt von einem Abruf aus einer vorgelagerten Quelle ab.

Q

QUIC
QUIC ist ein sicheres Transportprotokoll über UDP, das zuverlässige Datenströme, Überlastkontrolle, Verbindungsaufbau mit geringer Verzögerung und Verbindungsmigration bietet.
QUIC kann empfangene Daten eines Datenstroms ausliefern, während ein anderer Datenstrom fehlende Bytes wiederherstellt.

R

Rarest First
Rarest First ist eine Regel zur Dateistückauswahl, die benötigte Stücke anfordert, die die wenigsten Nachbarn besitzen, und so hilft, deren Verfügbarkeit zu erhalten.
Rarest First wählt ein seltenes benötigtes Stück vor einem anderen benötigten Stück, das bereits bei vielen Nachbarn verfügbar ist.
Resolver
Ein Resolver beschafft DNS-Informationen für einen Anfragenden und fragt bei Bedarf Caches und andere Server ab, um eine Namensauflösung abzuschließen.
Der Campus-Resolver folgt Verweisen, während der Laptop auf das Ergebnis seiner rekursiven Namensauflösung wartet.
Ressourceneintrag
Ein Ressourceneintrag ist ein typisierter DNS-Eintrag, der einen zugehörigen Namen mit Daten und einer Speicherdauer für diese Information verbindet.
Ein Ressourceneintrag ordnet dem Webhost eine IPv4-Adresse zu, während ein anderer den Mailserver der Domain nennt.
Root-Nameserver
Ein Root-Nameserver bedient die oberste Ebene der DNS-Hierarchie und verweist Resolver normalerweise an die zuständigen TLD-Nameserver.
Der Resolver fragt einen Root-Nameserver, wo er eine Namensauflösung für eine org-Domain bei leerem Cache fortsetzen kann.

S

Seeder
Ein Seeder ist ein BitTorrent-Peer, der den vollständigen Inhalt besitzt und verfügbar bleibt, um ihn für andere Teilnehmer hochzuladen.
Ein Seeder bleibt nach Abschluss des Downloads online, damit neue Peers alle benötigten Stücke erhalten können.
Selbstskalierung
Selbstskalierung ist das Wachstum der Dienstkapazität zusammen mit der Nachfrage, weil beitretende Nutzer Ressourcen wie Uploadbandbreite beisteuern.
P2P-Dateiaustausch erreicht Selbstskalierung, wenn neue Teilnehmer auch empfangene Stücke hochladen.
SMTP
SMTP ist das Anwendungsprotokoll, mit dem E-Mails durch Befehls- und Antwortaustausche über TCP-Verbindungen eingeliefert und übertragen werden.
SMTP überträgt eine Nachricht aus der Warteschlange aktiv vom Mailserver des Senders zum Server der Empfängerdomain.
SMTP-Umschlag
Ein SMTP-Umschlag enthält die Zustellinformationen von SMTP, darunter den MAIL-FROM-Absender und die RCPT-TO-Empfänger, getrennt von den Nachrichtenheadern.
Ein verborgener Empfänger erscheint im Umschlag, auch wenn ihn kein sichtbarer To-Header nennt.
Socket
Ein Socket ist die Softwareschnittstelle, über die ein Anwendungsprozess auf Transportdienste zugreift, um Daten zu senden oder zu empfangen.
Ein vernetztes Spiel schreibt Positionsaktualisierungen über einen Socket und liest eingehende Aktualisierungen über seine Socket-API.
SPF
SPF ermöglicht einer Domain zu veröffentlichen, welche Hosts E-Mails für sie senden dürfen, und prüft den sendenden Host anhand einer SMTP-Umschlagkennung.
SPF kann für eine von einem Angreifer kontrollierte Domain im Umschlag erfolgreich sein, ohne eine andere sichtbare From-Domain zu bestätigen.
STARTTLS
STARTTLS ist ein Protokollbefehl, der eine bestehende unverschlüsselte Verbindung vor späteren geschützten Austauschen auf TLS umstellt.
Die authentifizierte SMTP-Einlieferung an Port 587 nutzt häufig STARTTLS, bevor geschützte Inhalte übertragen werden.
Statuscode
Ein Statuscode ist ein dreistelliger Antwortwert, der das Ergebnis einer HTTP-Anfrage meldet, etwa Erfolg, Umleitung oder Fehler.
Der Statuscode 404 zeigt, dass ein HTTP-Server geantwortet, aber die angeforderte Ressource nicht gefunden hat.

T

TCP
TCP ist ein verbindungsorientiertes Transportprotokoll, das zuverlässige, geordnete Bytes mit Flusskontrolle und Überlastkontrolle bereitstellt.
Eine TCP-Verbindung liefert die vollständige Datei in der richtigen Reihenfolge, während die Anwendung ihre Nachrichtengrenzen bestimmt.
TLD-Nameserver
Ein TLD-Nameserver bedient eine Top-Level-Domain und liefert Delegationen, die autoritative Nameserver für untergeordnete Domains nennen.
Ein TLD-Nameserver für org gibt die Delegation zurück, die für den Weg zu den Einträgen von example.org benötigt wird.
TLS
TLS ist ein Sicherheitsprotokoll, das den Transportaustausch einer Anwendung um Vertraulichkeit, Integrität und Authentifizierung der Gegenstelle ergänzt.
Ein Browser nutzt TLS über TCP, um einen HTTPS-Austausch mit einem HTTP/2-Server zu schützen.
Torrent
Ein Torrent ist die Gruppe von Peers, die über BitTorrent an der Verteilung einer bestimmten Datei oder Zusammenstellung von Inhalten teilnehmen.
Peers treten einem Torrent bei und tauschen Stücke mit Nachbarn aus, die sie über einen Tracker oder eine verteilte Suche finden.

U

UDP
UDP ist ein verbindungsloses Transportprotokoll, das einzelne Datagramme überträgt, ohne Verlustbehebung, Ordnung oder Überlastkontrolle bereitzustellen.
Eine kleine DNS-Anfrage kann UDP nutzen, wobei ein Resolver sie wiederholt, wenn vor Ablauf seines Zeitlimits keine Antwort eintrifft.
Umlaufzeit
Die Umlaufzeit ist die Zeitspanne, die ein kleines Paket zum Ziel und eine Antwort zurück benötigen.
Eine Umlaufzeit von 30 ms fällt beim ersten über eine neue TCP-Verbindung abgerufenen unverschlüsselten HTTP-Objekt zweimal an.
Untere Schranke
Eine untere Schranke ist eine Schranke, unterhalb derer ein Abschluss unter den Bedingungen eines Modells selbst bei idealer Ablaufplanung nicht möglich ist.
Der Download des langsamsten Peers setzt eine untere Schranke, die zusätzliche Uploadkapazität anderswo nicht beseitigen kann.
Ursprungsserver
Ein Ursprungsserver ist der für eine Darstellung verantwortliche Quellserver, von dem Vermittler Inhaltskopien beziehen können.
Ein Pull-CDN holt ein nicht zwischengespeichertes Bild vom Ursprungsserver, bevor es eine lokale Kopie behält.
UTF-8
UTF-8 ist eine Bytecodierung für Unicode-Text, die Pythons Operationen zum Codieren von Zeichenketten und Decodieren von Bytes standardmäßig nutzen.
Ein Server, der empfangenen Text in Großbuchstaben umwandelt, decodiert zuerst die eingehenden UTF-8-Bytes und codiert dann seine Antwort.

V

Verbindungssocket
Ein Verbindungssocket ist ein Transportendpunkt für eine aufgebaute TCP-Verbindung, über den die Bytes dieser Verbindung gesendet und empfangen werden.
Der Server ruft recv auf dem von accept zurückgegebenen Verbindungssocket auf, nicht auf dem lauschenden Socket.
Verteilungsdauer
Die Verteilungsdauer ist die verstrichene Zeit, die benötigt wird, um jedem vorgesehenen Empfänger eine vollständige Kopie einer Datei zuzustellen.
Ein schneller erster Download bestimmt nicht die Verteilungsdauer, wenn der langsamste Peer seine Kopie noch empfängt.
Videosegment
Ein Videosegment ist ein kurzer, einzeln anforderbarer Abschnitt codierten Videos, für den Versionen in unterschiedlichen Qualitätsstufen verfügbar sind.
Ein Videosegment für vier Sekunden Wiedergabe kann auf einem langsamen Pfad mehr als vier Sekunden zum Herunterladen benötigen.

W

Webcache
Ein Webcache speichert HTTP-Antworten zur Wiederverwendung und verringert wiederholte Übertragungen, wenn Aktualitäts- und Prüfregeln dies erlauben.
Der Webcache des Browsers liefert ein unverändertes Bild, ohne eine weitere vollständige Kopie abzurufen.
Webmail
Webmail ist browserbasierter Postfachzugriff über HTTP, normalerweise HTTPS, während die E-Mail-Zustellung zwischen Anbietern weiterhin SMTP nutzt.
Der Browser nutzt Webmail über HTTPS, um eine Nachricht zu lesen, die beim Anbieter über SMTP eingetroffen ist.
Wiedergabepuffer
Ein Wiedergabepuffer enthält empfangene Inhalte, die auf die Anzeige warten, und stellt bei langsameren Downloads eine Reserve abspielbarer Zeit bereit.
Ein Wiedergabepuffer mit mehreren verbleibenden Sekunden kann einen kurzen Durchsatzeinbruch ohne sofortige Unterbrechung abfangen.

Z

Zeitüberschreitung
Eine Zeitüberschreitung tritt ein, wenn eine Operation nicht innerhalb der festgelegten Wartezeit abgeschlossen wird und die Kontrolle mit einer Fehlermeldung zurückgibt.
Ein Empfangszeitlimit ermöglicht dem UDP-Client, eine fehlende Antwort zu melden, statt unbegrenzt zu blockieren.
Zustandslosigkeit
Zustandslosigkeit bedeutet, dass eine HTTP-Anfrage unabhängig verstanden werden kann, ohne dass das Protokoll eine Erinnerung an frühere Clientanfragen verlangt.
Die Zustandslosigkeit von HTTP erlaubt einem Onlineshop dennoch, anhand eines Cookies in jeder Anfrage Warenkorbdaten nachzuschlagen.

#

0-RTT-Daten
0-RTT-Daten sind Anwendungsdaten, die beim Aufbau einer wiederaufgenommenen Verbindung gesendet werden, bevor eine neue Umlaufzeit abgeschlossen ist; ihre Nutzung ist wegen möglicher Wiederholungsangriffe eingeschränkt.
Eine wiederaufgenommene QUIC-Verbindung kann geeignete 0-RTT-Daten senden, bevor sie auf den erneuten Austausch mit dem Server wartet.

Über diese Einheit

Von StudeliFehler melden

Erstelle deine eigenen Lernmaterialien

Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.

Jetzt starten