diff --git a/courses/223015c/slides/2026-01-10-termin-2-netzwerke-protokolle-css.md b/courses/223015c/slides/2026-01-10-termin-2-netzwerke-protokolle-css.md index 861f815..1dd4432 100644 --- a/courses/223015c/slides/2026-01-10-termin-2-netzwerke-protokolle-css.md +++ b/courses/223015c/slides/2026-01-10-termin-2-netzwerke-protokolle-css.md @@ -21,13 +21,13 @@ section { font-size: 1.7rem; } h1 { - color: #a02060; /* darker raspberry */ + color: #a02060; } section.invert h1 { color: #fff; } h2 { - color: #1f2937; /* dark gray, almost black */ + color: #1f2937; } pre { background: #0f0f23; @@ -55,7 +55,7 @@ section.klausur { #fce4ec 40px, #fff 40px, #fff 80px - ); + ) !important; } section.aufgabe { background: #fce4ec !important; @@ -100,15 +100,14 @@ Hochschule der Medien Stuttgart # Agenda -**Teil 1:** -- Netzwerke (OSI, TCP/IP) -- DNS: Wie funktionieren Domain-Namen? -- HTTP(S) im Detail +**Teil 1: Die Reise eines Klicks** +- Warum ist Netzwerk-Kommunikation kompliziert? +- Was passiert, wenn du eine URL aufrufst? +- DNS → TCP → HTTP → Response -**Teil 2:** -- CSS-Grundlagen -- Selektoren & Spezifität -- Hands-On: Styling +**Teil 2: CSS** +- Grundlagen, Selektoren, Spezifität +- Box-Modell, Farben, Einheiten --- @@ -117,7 +116,6 @@ Hochschule der Medien Stuttgart * **CODE CRISPIES: https://codecrispi.es/** * Online Code-Editor: https://codepen.io/pen/ * MDN (Mozilla Developer Network): https://developer.mozilla.org/de/ -* HTML-Referenz: https://nextlevelshit.github.io/html-over-js/ * Flexbox-Spiel: https://flexboxfroggy.com/ * Grid-Spiel: https://cssgridgarden.com/ @@ -125,665 +123,1023 @@ Hochschule der Medien Stuttgart -# Teil 1: Grundbegriffe -## Netzwerk und Internet +# Teil 1: Die Reise eines Klicks +## Was passiert, wenn du `www.hdm-stuttgart.de` aufrufst? --- -# Warum Rechner verbinden? +# Das Szenario -* Daten und Informationen teilen -* Zusammenarbeiten & Kollaboration -* Ressourcen teilen (Drucker, Speicher, andere Geräte) -* **(Tele)kommunikation** *(gr. telos – Ziel, Ende)* +Du sitzt im WLAN der HdM und tippst in den Browser: ---- - -# Kommunikationsarten - -| Kategorie | Beispiel | -|-----------|----------| -| **Synchron** | Telefonat, Video-Call | -| **Asynchron** | E-Mail, Brief, SMS | -| **Verbindungsorientiert** | Telefon (Leitung aufbauen) | -| **Verbindungslos** | Brief, Postkarte | - - - ---- - -# IP-Adressen - -**Jeder Rechner im Netzwerk braucht eine Adresse** - -**IPv4:** 4 Zahlen (0-255), Punkt-getrennt -`192.168.1.1` - -**Problem:** 2⁸·2⁸·2⁸·2⁸ = 2³² = nur 4,3 Milliarden Adressen -→ Reicht nicht für alle Geräte! - -**IPv6:** 128 Bit = 3,4 × 10³⁸ Adressen -`2001:0db8:85a3:0000:0000:8a2e:0370:7334` - - - ---- - -# Spezielle IP-Adressen - -| Adresse | Bedeutung | -|---------|-----------| -| `127.0.0.1` | **Localhost** – Ihr eigener Rechner | -| `192.168.x.x` | Private Adressen (Heimnetz) | -| `10.x.x.x` | Private Adressen (Firmen) | - - - ---- - -# Ports: Die Türnummern - -**IP-Adresse = Hausnummer** -**Port = Wohnungstür** - -| Port | Dienst | -|------|--------| -| 80 | HTTP (Web) | -| 443 | HTTPS (Web, verschlüsselt) | -| 22 | SSH (Terminal) | -| 25 | SMTP (E-Mail senden) | - -**Beispiel:** `192.168.1.1:8080` -(IP-Adresse : Port) - - - ---- - -# Routing: Der Weg durchs Netz - -**Router = Postamt** -- Entscheidet, wohin Pakete gehen -- Findet besten Weg -- Pakete können verschiedene Wege nehmen! - -**Traceroute:** Zeigt den Weg -```bash -traceroute google.de # Mac/Linux -tracert google.de # Windows +``` +www.hdm-stuttgart.de ``` - +**Zwischen Enter und der fertigen Seite:** ~200 Millisekunden. +In dieser Zeit passieren hunderte Operationen. + +Bevor wir sie durchgehen: **Warum ist das überhaupt so kompliziert?** --- -# DNS: Domain Name System -## Das Telefonbuch des Internets +# Das Grundproblem +## Warum brauchen wir Schichten, Adressen, Ports? + +--- + +# Was zwischen dir und dem Server liegt + +Du willst eine Webseite. Klingt einfach. + +Aber dazwischen liegen: +- Deine WLAN-Karte +- Der Router im Flur +- Das Netzwerk der HdM +- Das Internet (dutzende Router) +- Der Webserver in Vaihingen + +**Jede Station spricht eine andere "Sprache":** +- Dein Browser spricht HTTP ("Gib mir /index.html") +- Das Kabel versteht nur Strom an/aus + +--- + +# Die Lösung: Aufgabenteilung + +Statt dass jedes Programm alles können muss, teilen wir die Arbeit auf: + +| Wer | Kümmert sich um | +|-----|-----------------| +| **HTTP** | "Was will ich?" (Webseite, Bild, Video) | +| **TCP** | "Kommt alles an? In der richtigen Reihenfolge?" | +| **IP** | "Wo muss es hin?" (welcher Rechner im Internet) | +| **Ethernet** | "Wie kommt es zum nächsten Gerät?" | +| **Physik** | "Strom oder Licht durch das Kabel" | + +Jeder macht seinen Job. Keiner muss wissen, wie die anderen arbeiten. + +--- + +# Warum ist das clever? + +**Ohne Schichten:** +Dein Browser müsste wissen, wie man Ethernet-Frames baut, wie WLAN-Frequenzen funktionieren, wie Router Pakete weiterleiten... + +**Mit Schichten:** +Dein Browser sagt nur: "Ich will diese Seite." +Alles andere übernehmen die Schichten darunter. + +**Das Prinzip heißt Abstraktion:** +Jede Schicht versteckt ihre Komplexität vor den anderen. + +--- + +# Schichten reden nur mit Nachbarn + +``` +HTTP ──────────→ TCP ──────────→ IP ──────────→ Ethernet + "Schick das" "Schick das" "Schick das" +``` + +**HTTP sagt zu TCP:** "Schick das an den Server." +**TCP sagt zu IP:** "Schick das an 212.132.79.37." +**IP sagt zu Ethernet:** "Schick das an den Router." + +**HTTP weiß nicht, dass es Ethernet gibt.** +**Ethernet weiß nicht, dass es HTTP gibt.** + +Das ist der Punkt. + +--- + +# Und horizontal? + +Auf der anderen Seite (Server) passiert das Gleiche – nur rückwärts: + +``` +Dein Laptop Server + +┌─────────┐ ┌─────────┐ +│ HTTP │ ←── logische Verbindung ──→│ HTTP │ +└────┬────┘ └────┬────┘ + ↓ ↑ +┌─────────┐ ┌─────────┐ +│ TCP │ │ TCP │ +└────┬────┘ └────┬────┘ + ↓ ↑ +┌─────────┐ ┌─────────┐ +│ IP │ │ IP │ +└────┬────┘ └────┬────┘ + ↓ ↑ + ⚡ ─────── physische Übertragung ────── ⚡ +``` + +HTTP "redet" mit HTTP. TCP "redet" mit TCP. Aber physisch läuft alles unten durch. + +--- + + + +# Warum brauchen wir IP-Adressen? + +--- + +# Das Internet ist kein einzelnes Netzwerk + +Das Internet besteht aus **tausenden** separaten Netzwerken: + +- Netzwerk der HdM +- Netzwerk der Telekom +- Netzwerk von Google +- Netzwerk deines Heimrouters +- ... + +Ein Paket muss von Netzwerk zu Netzwerk weitergereicht werden. + +**Router** entscheiden bei jedem Hop: "In welches Netzwerk als nächstes?" + +--- + +# IP-Adressen = Globale Adressen + +``` +141.62.xxx.xxx ← HdM-Netzwerk +212.132.79.37 ← Ziel-Server +``` + +Die IP-Adresse sagt dem Router: +1. **In welchem Netzwerk** ist der Rechner? +2. **Welcher Rechner** in diesem Netzwerk? + +"141.62... ist nicht bei mir. Ich schicke das Paket Richtung BelWü." + +**Die IP-Adresse bleibt auf dem gesamten Weg gleich.** +Sie ist die Empfängeradresse auf dem Brief. + +--- + +# Warum reicht die MAC-Adresse nicht? + +Jede Netzwerkkarte hat eine **MAC-Adresse** (z.B. `aa:bb:cc:dd:ee:ff`). + +**Problem:** MAC funktioniert nur **lokal**. +- Dein Laptop kennt die MAC deines Routers +- Dein Router kennt die MAC des nächsten Routers +- Aber niemand kennt die MAC des Webservers in Vaihingen + +**MAC = "Wer ist mein direkter Nachbar?"** +**IP = "Wo ist das Ziel im gesamten Internet?"** + +Deshalb brauchen wir beides. + +--- + + + +# Warum brauchen wir Ports? + +--- + +# Ein Rechner, viele Programme + +Dein Laptop hat **eine** IP-Adresse. + +Aber gleichzeitig laufen: +- Browser (will Webseiten) +- Mail-Programm (will E-Mails) +- Spotify (will Musik) +- Discord (will Chat) +- System-Updates + +Ein Paket kommt an. **Für welches Programm ist es?** + +--- + +# Ports = Türnummern + +``` +IP-Adresse = Hausnummer → "Friedrichstraße 10" +Port = Wohnungstür → "3. Stock links" +``` + +Jedes Programm "lauscht" auf einem Port: + +| Port | Dienst | +|------|--------| +| 80 | HTTP (Webseiten) | +| 443 | HTTPS (Webseiten, verschlüsselt) | +| 25 | SMTP (E-Mail senden) | +| 22 | SSH (Terminal) | + +Wenn ein Paket an `212.132.79.37:443` geht, weiß der Server: "Das ist für den Webserver-Prozess." + +--- + +# Beide Seiten haben Ports + +``` +Dein Laptop: 141.62.xxx.xxx:52431 + └─────── Dein Browser lauscht hier + +Server: 212.132.79.37:443 + └─────── Webserver lauscht hier +``` + +**52431** ist ein zufälliger Port, den dein System für diese Verbindung vergeben hat. + +Die Antwort des Servers geht an `141.62.xxx.xxx:52431` – und landet bei deinem Browser, nicht bei Spotify. + +--- + + + +# Zusammenfassung: Die Bausteine + +--- + +# Was wir jetzt wissen + +| Konzept | Löst welches Problem? | +|---------|----------------------| +| **Schichten** | Komplexität aufteilen, Abstraktion | +| **IP-Adresse** | Ziel im globalen Internet finden | +| **MAC-Adresse** | Nächsten Nachbarn im lokalen Netz finden | +| **Port** | Richtiges Programm auf dem Rechner finden | + +Mit diesen Bausteinen können wir jetzt die Reise eines Klicks verfolgen. + +--- + + + +# Die Reise beginnt +## Schritt für Schritt + +--- + +# Die Zeitlinie + +``` +[0 ms] DNS-Anfrage: "Welche IP hat www.hdm-stuttgart.de?" + ↓ +[~20 ms] DNS-Antwort: "212.132.79.37" + ↓ +[~25 ms] TCP-Handshake: Verbindung aufbauen + ↓ +[~50 ms] HTTP-Request: "GET /index.html" + ↓ +[~150 ms] HTTP-Response: Der HTML-Code kommt zurück + ↓ +[~200 ms] Browser rendert die Seite +``` + +Jeder dieser Schritte durchläuft alle Schichten – runter und wieder rauf. + +--- + + + +# Schritt 1: DNS +## "Wo wohnt hdm-stuttgart.de?" --- # Das Problem -**Menschen:** `www.hdm-stuttgart.de` -**Computer:** `https://212.132.79.37:443` +Dein Browser kennt nur den Namen: `www.hdm-stuttgart.de` -**DNS** = Domain Name System -→ Übersetzt Namen in IP-Adressen +Das Internet kennt nur Zahlen: `212.132.79.37` - +**Jemand muss übersetzen.** --- -# DNS-Hierarchie +# DNS: Das Telefonbuch des Internets -``` - (Root) - . - / | \ - / | \ - .de .org .com - / \ - hdm-stuttgart google - | | - www mail -``` +**D**omain **N**ame **S**ystem -**FQDN:** `www.hdm-stuttgart.de.` (mit Punkt am Ende!) +Dein Laptop fragt sich durch eine Hierarchie: - +1. **Browser-Cache:** "War ich da kürzlich?" → Nein +2. **Betriebssystem-Cache:** "Kennt Windows/Mac die IP?" → Nein +3. **Router / ISP:** "Frag den DNS-Server deines Providers" + +Wenn auch der Provider es nicht weiß, beginnt die **rekursive Suche**. --- -# DNS-Auflösung +# Die DNS-Hierarchie ``` -1. Browser fragt lokalen DNS-Resolver -2. Resolver fragt Root-Server → ".de ist bei..." -3. Resolver fragt .de-Server → "hdm-stuttgart bei..." -4. Resolver fragt hdm-Server → "www = 212.132.79.37" -5. Resolver cached Antwort -6. Browser verbindet zu 212.132.79.37 + . (Root) + /|\ + / | \ + .de .com .org + / + hdm-stuttgart + | + www ``` -**Caching:** Antworten werden gespeichert -→ Schneller bei wiederholten Anfragen - - +**Jede Ebene kennt nur die nächste Ebene darunter.** --- -# DNS-Records +# Der DNS-Lookup -| Typ | Bedeutung | Beispiel | -|-----|-----------|----------| -| **A** | IPv4-Adresse | `www → 212.132.79.37` | -| **AAAA** | IPv6-Adresse | `www → 2001:db8::1` | -| **CNAME** | Alias | `blog → www.example.com` | -| **MX** | Mail-Server | `@ → mail.example.com` | -| **TXT** | Text (Verifikation) | `"v=spf1..."` | +``` +Dein Laptop → Resolver: "Wo ist www.hdm-stuttgart.de?" - +Resolver → Root (.): "Wer verwaltet .de?" + ← "Frag 194.0.0.53" + +Resolver → .de-Server: "Wer verwaltet hdm-stuttgart.de?" + ← "Frag den Nameserver der HdM" + +Resolver → HdM-NS: "Welche IP hat www?" + ← "212.132.79.37" + +Resolver → Dein Laptop: "Die IP ist 212.132.79.37" +``` --- -# URLs & Domains +# DNS ist selbst ein Netzwerk-Request -**URL** = Uniform Resource Locator +Die DNS-Anfrage ist nicht magisch. Sie ist selbst ein Paket, das durch alle Schichten muss: + +| Eigenschaft | Wert | +|-------------|------| +| Protokoll | UDP | +| Port | 53 | +| Inhalt | "A-Record für www.hdm-stuttgart.de?" | + +Das DNS-Paket macht die gleiche Reise wie später der HTTP-Request – nur zu einem anderen Ziel. + +--- + +# Nach dem DNS-Lookup + +**Ergebnis:** Dein Browser weiß jetzt: ``` -https://www.example.com:443/pfad/seite.html?suche=test#kapitel2 -└─┬──┘ └──────┬──────┘└┬┘ └──────┬──────┘ └───┬────┘ └──┬───┘ -Protokoll Hostname Port Pfad Query Fragment +www.hdm-stuttgart.de = 212.132.79.37 ``` -| Begriff | Erklärung | -|---------|-----------| -| **Domain** | `example.com` (registrierter Name) | -| **Subdomain** | `www`, `mail`, `api` (Prefix) | -| **Hostname** | `www.example.com` (vollständig) | -| **Port** | Standard: 80 (HTTP), 443 (HTTPS) | +Diese Information wird gecached. - +**Nächster Schritt:** Verbindung zum Server aufbauen. --- -# Netzwerke -## Theorie und Praxis +# Schritt 2: TCP-Handshake +## "Hallo Server, bist du da?" - +--- +# Warum ein Handshake? + +HTTP läuft über **TCP** (Transmission Control Protocol). + +TCP ist **verbindungsorientiert**: Bevor Daten fließen, müssen sich beide Seiten einig sein, dass sie miteinander reden wollen. + +**Analogie:** Du rufst jemanden an. Das Telefon klingelt. Die Person nimmt ab. Erst dann redest du. --- - -# Das OSI-Modell: Die Theorie +# Der 3-Way-Handshake -**7 Schichten der Netzwerkkommunikation:** +``` +Dein Laptop HdM-Server + | | + |-------- SYN (Seq=1000) --------------->| + | "Ich will reden" | + | | + |<--- SYN-ACK (Seq=5000, Ack=1001) ------| + | "OK, ich auch" | + | | + |-------- ACK (Ack=5001) --------------->| + | "Gut, dann los" | + | | + | [ Verbindung steht ] | +``` -| Schicht | Name | Beispiel | -|---------|------|----------| -| **7** | **Anwendung** | **HTTP/S, FTP, SMTP** | -| 6 | Darstellung | Verschlüsselung, Kompression | -| 5 | Sitzung | Sessions | -| 4 | Transport | TCP, UDP | -| 3 | Vermittlung | IP, Routing | -| 2 | Sicherung | Ethernet, MAC | -| 1 | Bitübertragung | Kabel, WLAN | +**SYN** = Synchronize · **ACK** = Acknowledge - +--- + +# Warum die Sequenznummern? + +**Problem:** Pakete können im Internet: +- Verloren gehen +- Doppelt ankommen +- In falscher Reihenfolge ankommen + +**Lösung:** Jedes Byte wird nummeriert. + +Der Empfänger weiß genau, welches Byte als nächstes kommen muss – und kann fehlende Pakete erneut anfordern. + +--- + +# Nach dem Handshake + +**Status:** Die TCP-Verbindung steht. + +``` +Dein Laptop ←————————————————→ 212.132.79.37:443 + (Port 52431) (Port 443) +``` + +**Jetzt erst** kann der eigentliche HTTP-Request gesendet werden. + +--- + + + +# Schritt 3: Der HTTP-Request +## "Gib mir die Startseite" + +--- + +# Was dein Browser sendet + +```http +GET / HTTP/1.1 +Host: www.hdm-stuttgart.de +User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) +Accept: text/html +Accept-Language: de-DE +Connection: keep-alive +``` + +Das sind **~200 Bytes** Text. + +Aber diese 200 Bytes müssen durch das halbe Internet. + +**Wie?** + +--- + + + +# Die Verpackungsstraße +## Encapsulation: Schicht für Schicht + +--- + +# Jede Schicht verpackt + +``` +HTTP-Request: "GET / HTTP/1.1..." + ↓ +TCP packt ein: [ Ports + Seq-Nr ] + HTTP-Request + = Segment + ↓ +IP packt ein: [ IP-Adressen ] + Segment + = Paket + ↓ +Ethernet packt: [ MAC-Adressen ] + Paket + [ Prüfsumme ] + = Frame + ↓ +Physik: 01001000 01010100 01010100 01010000 ... + = Bits auf dem Kabel +``` + +--- + +# Layer 4: Transport (TCP) + +Der HTTP-Request wird zum **Segment**. + +``` +┌─────────────────────────────────────────────────┐ +│ TCP-Header │ +│ ┌─────────────┬─────────────┬─────────────────┐ │ +│ │ Source Port │ Dest Port │ Sequence Number │ │ +│ │ 52431 │ 443 │ 1001 │ │ +│ └─────────────┴─────────────┴─────────────────┘ │ +├─────────────────────────────────────────────────┤ +│ Payload: "GET / HTTP/1.1..." │ +└─────────────────────────────────────────────────┘ +``` + +**Neu hinzugekommen:** Ports (wer sendet? wer empfängt?) und Sequenznummer + +--- + +# Layer 3: Network (IP) + +Das Segment wird zum **Paket**. + +``` +┌─────────────────────────────────────────────────┐ +│ IP-Header │ +│ ┌─────────────────┬─────────────────┐ │ +│ │ Source IP │ Destination IP │ │ +│ │ 141.62.xxx.xxx │ 212.132.79.37 │ │ +│ └─────────────────┴─────────────────┘ │ +├─────────────────────────────────────────────────┤ +│ TCP-Segment (von oben) │ +└─────────────────────────────────────────────────┘ +``` + +**Neu:** IP-Adressen – woher kommt das Paket, wohin soll es? + +--- + +# Layer 2: Data Link (Ethernet) + +Das Paket wird zum **Frame**. + +``` +┌─────────────────────────────────────────────────┐ +│ Ethernet-Header │ +│ ┌─────────────────┬─────────────────┐ │ +│ │ Source MAC │ Destination MAC │ │ +│ │ aa:bb:cc:dd:ee │ 11:22:33:44:55 │ │ +│ └─────────────────┴─────────────────┘ │ +├─────────────────────────────────────────────────┤ +│ IP-Paket (von oben) │ +├─────────────────────────────────────────────────┤ +│ FCS (Prüfsumme) │ +└─────────────────────────────────────────────────┘ +``` + +**Neu:** MAC-Adressen – aber Achtung: Das ist die MAC des **Routers**, nicht des Servers! + +--- + +# Layer 1: Physical + +Der Frame wird zu **Bits** – und die Bits zu physikalischen Signalen. + +| Medium | Signal | +|--------|--------| +| Kupferkabel | Spannung: High/Low | +| Glasfaser | Licht: An/Aus | +| WLAN | Funkwellen | + +``` +01001000 01010100 01010100 01010000 ... +``` + +Ab hier übernimmt die Physik. --- - -# TCP/IP: Die Praxis +# MAC vs. IP – nochmal genau -**Das Internet nutzt TCP/IP (4 Schichten):** +| | IP-Adresse | MAC-Adresse | +|---|-----------|-------------| +| **Frage** | Wer ist das Endziel? | Wer ist der nächste Hop? | +| **Reichweite** | Global (ganzes Internet) | Lokal (bis zum nächsten Router) | +| **Ändert sich?** | Nein, bleibt gleich | Ja, bei jedem Hop | +| **Analogie** | Empfänger auf dem Brief | "Nächstes Postamt: XY" | -| TCP/IP | Entspricht OSI | Protokolle | -|--------|----------------|------------| -| **Anwendung** | **5-7** | **HTTP, DNS, SMTP** | -| Transport | 4 | TCP, UDP | -| Internet | 3 | IP | -| Netzzugang | 1-2 | Ethernet, WLAN | +**Die MAC-Adresse im ersten Frame ist die MAC des Routers – nicht des Servers!** -**TCP/IP = Transmission Control Protocol / Internet Protocol** +--- -https://www.ietf.org/rfc/rfc793.txt +# Woher kennt dein Laptop die MAC des Routers? - +**ARP** – Address Resolution Protocol + +``` +Dein Laptop (Broadcast an alle): + "Wer hat die IP 192.168.1.1? Sag mir deine MAC!" + +Router: + "Das bin ich! Meine MAC ist 11:22:33:44:55:66" +``` + +Diese Information wird gecached. + +--- + + + +# Die Reise durch das Netz +## Hop für Hop + +--- + +# Der erste Hop: Dein Router + +``` +Dein Laptop → [Frame] → Router +``` + +Der Router empfängt den Frame: + +1. **Layer 1:** Signale → Bits +2. **Layer 2:** Prüft Frame. "MAC stimmt, FCS okay" → Auspacken +3. **Layer 3:** Liest IP-Header. "212.132.79.37 – nicht mein Netz" + +**Routing-Entscheidung:** "Ich schicke es Richtung BelWü." + +--- + +# Der Router verpackt NEU + +Der Router erstellt einen **neuen Frame** für den nächsten Hop: + +``` +┌─────────────────────────────────────────────────┐ +│ Ethernet-Header (NEU!) │ +│ ┌─────────────────┬─────────────────┐ │ +│ │ Source MAC │ Destination MAC │ │ +│ │ Router-MAC │ Nächster-Router │ │ +│ └─────────────────┴─────────────────┘ │ +├─────────────────────────────────────────────────┤ +│ IP-Paket (UNVERÄNDERT) │ +│ Source: 141.62.xxx.xxx │ +│ Dest: 212.132.79.37 │ +└─────────────────────────────────────────────────┘ +``` + +**Die IP bleibt gleich. Die MAC ändert sich.** + +--- + +# Mehrere Hops + +``` +Dein Laptop + ↓ [Frame mit MAC des HdM-Routers] +Router (HdM-Netz) + ↓ [Frame mit MAC des BelWü-Routers] +Router (BelWü) + ↓ [Frame mit MAC des nächsten Routers] +...weitere Router... + ↓ [Frame mit MAC des Ziel-Servers] +Webserver der HdM +``` + +Bei jedem Hop: Auspacken bis Layer 3, Routing-Entscheidung, neu verpacken. + +--- + +# Das kannst du selbst sehen + +```bash +traceroute www.hdm-stuttgart.de # Mac/Linux +tracert www.hdm-stuttgart.de # Windows +``` + +Zeigt jeden Router auf dem Weg mit IP und Antwortzeit. + +--- + + + +# Die Ankunft +## Decapsulation am Server + +--- + +# Der Server empfängt + +Am Webserver passiert alles **rückwärts** (Decapsulation): + +``` +Bits empfangen (Layer 1) + ↓ +Frame prüfen: MAC korrekt? FCS okay? → Auspacken (Layer 2) + ↓ +IP-Paket lesen: Ziel-IP = meine IP? Ja! → Auspacken (Layer 3) + ↓ +TCP-Segment lesen: Port 443, Seq-Nr passt → Auspacken (Layer 4) + ↓ +HTTP-Request lesen: "GET / HTTP/1.1" (Layer 7) +``` + +Der Webserver versteht: "Jemand will die Startseite." + +--- + + + +# Die Antwort +## Der gleiche Weg zurück + +--- + +# Der Server antwortet + +```http +HTTP/1.1 200 OK +Content-Type: text/html; charset=UTF-8 +Content-Length: 45231 + + + +
+...
``` - - --- # CSS-Anatomie @@ -846,7 +1191,6 @@ Option 3 vermeiden aufgrund der hohen Spezifiät (sog. Code Smell) ```css selector { property: value; - property: value; } ``` @@ -859,13 +1203,6 @@ h1 { } ``` - - --- # Selektoren: Element @@ -876,22 +1213,12 @@ p { color: gray; } -/* Alle