Gedächtnisprotokoll Rechnernetze und Verteilte Systeme am 5.3.2019 Gesamt: angenehme Stimmung, ziemlich früh, Taschenrechner wird empfohlen, Zeit wird angezeigt Aufgabe 1: Eine Glasfaserleitung zwischen Berlin und Frankfurt ist 550 km lang. Die Endpunkte übertragen mit einer Frequenz von 10 GBit/s (1 GBit = 10^9 Bits). Die Geschwindigkeit der Bits durch das Kabel beträgt 200.000 km/s. Berechne das bandwidth delay product mit Rechenweg. Aufgabe 2: Welche 3 Arten von Verzögerungen treten bei Packet-Switching auf? Welche tritt nicht bei Circuit-Switching auf und warum? Aufgabe 3: Ein Betriebssystem bietet eine Implementierung der *Berkeley-Socket-API* an. 1. Welche Befehle der Berkeley-API muss ein Server aufrufen, um danach Anfragen annehmen zu können? 2. Welchen Befehl verwendet der Server, um dann eine Anfrage anzunehmen? Aufgabe 4: Nenne 4 falsche Annahmen beim Design von verteilten Systemen. Aufgabe 5: Was bedeutet idempotent? Welche Auswirkungen hat es im Kontext der at-least-once und at-most-once Semantik? Aufgabe 6: Thema DNS: Wie sieht eine iterative DNS Anfrage aus (Skizze)? Was bedeutet TTL? Welchen Vorteil hat eine hohe TTL? Wie löst DNS das Problem von zu viele Anfragen an einen Webservice? Aufgabe 7: Was bedeutet "HTTP ist ein zustandsloses Protokoll"? Aufgabe 8: Es soll eine Datenbank über die Teilnehmer von Veranstaltungen an einer Universität angelegt werden. Die Datenbank ist über eine *RESTful API* manipulierbar, die unter der Domain `api.tkn.tu-berlin.de` erreichbar ist. *4P* | Ressource | HTTP-Befehl | Beschreibung | | ------------------------------------- | ----------- | -------------------------------------------------------- | | `/courses/` | `GET` | Gibt eine Liste der Teilnehmer der Veranstaltung zurück. | | `/courses/` | `DELETE` | Löscht eine Veranstaltung. | | `/courses//` | `GET` | Gibt Informationen über einen Teilnehmer zurück. | | `/courses//` | `DELETE` | Löscht einen Teilnehmer. | 1. Ist eine der gezeigten Ressourcen eine *Collection*? Wenn ja, welche Informationen bekäme man beim Abrufen? Wie würde ein Abruf aussehen (Befehl & URL)? *1P* 2. Kann man die DELETE-Anfrage "Lösche einen Teilnehmer" ohne Bedenken mehrfach senden? 3. Ein Teilnehmer, der noch nicht in dem Kurs ist, soll neu zu einem Kurs hinzugefügt werden. Der Server soll aussuchen, wo der Eintrag abgelegt wird. Wie sieht die Anfrage aus (Befehl & URL)? *1P* Aufgabe 9: DHT Chord mit den Knoten 54, 86, 100, 155, 187, 199, 211, 230 als Skizze gegeben. (Adressraum 8 Bit) 1. Welche Knoten sind für die Einträge 100 und 240 zuständig? 2. Wie sieht ein Lookup von Knoten 100 für Eintrag 77 aus? Zeichne ihn in den Chord ein. 3. Erstelle die Fingertable für Knoten 187 Aufgabe 10: Ein Server hat eine Up/Downloadrate von 10 Mbit/s und ist mit 10 Clients verbunden die eine Up/Downloadrate von 2 Mbit/s hat. Die Datei hat die Größe 1 Mbit. 1. Wie lange dauert das verteilen der Datei vom Server an die Clients? Mit Rechenweg. 2. Wie lange würden Peers dafür brauchen? Pipelinig kann vernachlässigt werden. 3. Was bedeutet self-scaling in dem Kontext? Aufgabe 11: Leite die Offset-Formel für NTP mittels Skizze her. Welche Annahme wird dabei getroffen? Aufgabe 12: In einem verteilten System ist der Knoten mit der ID **10** der Koordinator. (8) (7) (10) (3) (5) (2) (4) 1. Die Knoten mit den IDs **4** und **7** bemerken den Ausfall gleichzeitig. Erklären Sie, was als nächstes passiert, wenn ein *Bully-Algorithmus* verwendet wird. Aufgabe 13: Welche 2 elementaren Anforderungen werden bei Commit-Protokollen gestellt? Welches Problem von Two-Phase-Commit wird bei Three-Phase-Commit gelöst? Aufgabe 14: Es wird der Bit-String 110100010 welcher eine CRC Checksumme beinhaltet. Diese wurde mit dem Polynom x^3+1 erstellt. Akzeptiert der Computer den String? Mit Rechnung. Aufgabe 15: CSMA/CD 1. Ist es skalierbar? 2. Warum gilt eine Mindestpaketgröße im Ethernet? Aufgabe 16: CIDR: Ist die IP 149.77.115.54 im Netz 149.77.112.0/22? Aufgabe 17: DHCP und NAT: 1. Beschreibe den Ablauf von DHCP. 2. Erkläre NAT. 3. Was muss an einem Router mit NAT und DHCP geändert werden um einen lokalen File-Server von außen zugreifbar zu machen? Aufgabe 18: Welche 3 Probleme für Datenpakete treten bei verbindungslosen Übertragungen auf? Welche Lösungen gibt es dafür? Routing vs Forwarding? Aufgabe 19: TCP __----^^^ (Zeitpunkt 1) / | / | / | / | / | / | / | _/ |__--- (Zeitpunkt 2) / | __ / | / / | / _/ |__-- / _/ / 1. Markiere den Slow-Start. Warum endet er? 2. Was passiert bei Zeitpunkt 1 und 2? 3. Zeigt die Skizze Tahoe oder Reno? Mit Erklärung. 4. Wie nennt man das Regelungsprinzip für optimale Kanalausnutzung und Fairness? Aufgabe 20: Warum gibt es zusätzlich zu den Checksummen in der Link Layer noch welche in der Transport Layer? Wie kann sich ein Programmierer mehr Bandbreite für seine Dienste erschummeln? Warum verzichtet RTP (Realtime Transport Protokoll) auf einen zuverlässigen Transport?