Computernetzwerke

Frage: was ist der Unterschied zwischen einem Router und einem Switch?

  • Switch

    • "Hardwaremäßig"
    • Weiterleitung
  • Router

    • Verbindung zwischen Netzwerken
  • Modem (was anderes)

Frage: was ist eine Subnetzmaske?

https://en.wikipedia.org/wiki/IPv4

Aufgabe

  1. Legt in Hyper-V einen privaten Netzwerkswitch an

    • im Baum unter Hyper-V-Manager, rechtsklick auf DT-...-...
    • Manager für Virtuelle Switches
    • Neuer virtueller Netzwerkswitch
    • Typ: Privat
  2. Legt zwei virtuelle Maschinen an, die jeweils nur am Privaten Switch hängen.

    • Generation 2
    • Arbeitsspericher, so dass es Sinn macht

      • kein dynamischer Speicher
    • Verbindung: der private Switch (Namen habt ihr selbst vergeben)
    • Betriebssystem von Imagedatei
    • Fertig stellen
    • Rechtsklick auf die Maschine → Einstellungen → Sicherheit → Sicheren Start ausschalten

    (ggf. ist ein Windows-Neustart nötig)

  3. Gebt den Rechnern über den NetworkManager manuell eine IP-Adresse

    • Rechtsklick auf NetworkManager-Icon im Systray
    • Verbindungen bearbeiten
    • Kabelgebundene Verbindung 1 (kann anders heißen)
    • IPv4-Einstellungen
    • "Methode" von DHCP auf Manuell umschalten
    • "Hinzufügen" (von Adresse)
    • 192.168.???.1/24, bzw. 192.168.???.2/24
    • ping 192.168.???.??? (den jeweils anderen Rechner)
    • ip neighbor oder sudo arp -n

    Alternativ zum NetworkManager: ~# ip address add ADRESSE/MASKE dev eth0

Hyper-V Netzwerkswitches

Hyper-V-Switches.svg

Übung IP-Adressen

  1. Setzt die IP des einen Rechners auf 192.168.4.1/24, den anderen auf 192.168.4.65/24.
  2. startet im Terminal einen Ping auf den jeweils anderen Rechner.
  3. Fangt an, die Subnetzmasken zu ändern (nicht vergessen: jedesmal das Netzwerk trennen und wieder einschalten, um die Änderungen zu übernehmen).

    • Funktioniert die Kommunikation mit unterschiedlichen Subnetzmasken
    • Unter welchen Umständen funktioniert sie, bzw. funktioniert sie nicht?
  4. Beobachtet die Fehlermeldungen von ping

    • Wenn ihr eine IP-Adresse im Internet anpingt (es gibt ja noch keine Internetverbindung)
    • Wenn ihr eine nicht existente IP-Adresse anpingt
    • usw...

Gateway

Legt einen Virtuellen Rechner an, der als Gateway verwendet wird

  • anlegen in Hyper-V, wie bisher
  • Rechtsklick → Einstellungen
  • Hardware hinzufügen → Netzwerkkarte
  • neue Netzwerkkarte mit Default-Switch verbinden

Installiert den Gateway-Rechner via Debian-Installer

  • Beachtet dass der Installer der Live-CD ein bisschen spinnt
  • Netzwerkinterface für die Installation: eth1 (kann auch der Andere sein)

Gateway-Config

  • In /etc/network/interfaces des Gateway-Rechners wird ein Netzwerkinterface, per default mit dhcp konfiguriert

  • Tragt für das andere Interface eine statische IP-Konfiguration
    ein, die eine Kommunikation, mit dem "grünen" und "orangen"
    Rechner ermöglicht. (Recherche!)

    auto eth0
    iface eth0 inet static
      address 192.168.4.254   # letzte Hostadresse im Subnetz
      netmask 255.255.255.0
    • wenn ihr Erfolg habt, bootet der Rechner beim nächsten Start mit der korrekten Konfiguration
    • via ~# ifup INTERFACE und ~# ifdown INTERFACE, kann man die Konfiguration aus der Datei auch ohne Reboot anwenden

Stand am Dienstag

Hyper-V-Netzwerk.svg
Grüner Rechner
privater Switch
192.168.4.1/24
Gateway: keines
Oranger rechner
privater Switch
192.168.4.65/24
Gateway: 192.168.4.254
Gateway
privater Switch
192.168.4.254/24
default Switch
dhcp
  • Ping Orange ↔ Green
  • Ping Orange ↔ Gateway
  • Ping Green ↔ Gateway
  • Ping Green ↔ 1.1.1.1 → Fehler!
  • Ping Orange → 1.1.1.1 → keine Antwort
  • Ping Orange ↔ 172er DHCP-Adresse von Gateway → Antwortet!

Aufgabe

Hyper-V-Netzwerk2.svg

Wir setzen einen Windows-Computer auf, der mit am default-Switch hängt.

  • Hyper-V → Aktionen → Schnellerstellung → Windows 11
  • 21 GB Download abwarten
  • Maschine Verbinden/Starten
  • Windows-Firewall deaktivieren

Stand danach

  • Ping Blue ↔ Gateway
  • Ping Blue ↔ Hyper-V-Spezial-Gateway (172.29.64.1)
  • Ping Gateway ↔ Hyper-V-Spezial-Gateway (172.29.64.1)
  • Ping Green ↔ Blue → Fehler!
  • Ping Orange → Blue → keine Antwort
Blue
default Switch
dhcp
Gateway: 172.29.64.1
Routen
interface-Route nach 172.29.64.0/20
default (0.0.0.0)-Route via Hyper-V-Spezial-Gateway (172.29.64.1)
  • Windows-Shell als Administrator ausführen

    :> route add 192.168.4.0 mask 255.255.255.0 IP-Adresse-von-"Gateway"

    (unter Linux wäre das gleiche)

    ~# ip route add 192.168.4.0/24 via IP-Adresse-von-"Gateway"

  • Am Gateway das Routing einschalten

    ~# echo 1 > /proc/sys/net/ipv4/ip_forward

  • Ping Blue ↔ Orange

    :> ping 192.168.4.65

Alle Rechner Konfigurieren:

Hyper-V-Netzwerk3.svg

Gateway

Zielzustand wie angezeigt. Dateien müssen ggf. editiert werden. eth0 und eth1 werden je nach Hyper-V-Konfiguration eingesetzt.

~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet dhcp

auto eth0
iface eth0 inet static
  address 192.168.4.254
  netmask 255.255.255.0

~# echo 1 >/proc/sys/net/ipv4/ip_forward
bzw.
~# cat /etc/sysctl.d/10-ipforward.conf
net.ipv4.ip_forward = 1

Green

Gateway pingen: ~$ ping 192.168.4.254

Orange

(hier wird zusätzlich das Gateway gesetzt)

Blue

(Windows-Rechner)

Dieser Rechner bekommt bereits eine Default-Route vom Hyper-V-DHCP-Server.

Es muss noch eine zweite Route angelegt werden, um über "Gateway" in das Netz `192.168.4.0 zu kommen.

Windows-CMD-Shell als Admin:

:> route add 192.168.4.0 mask 255.255.255.0 172.29.70.180

Die letzte IP-Adresse ist die des Rechners "Gateway". Diese wird in jeder Hyper-V-Installation abweichen, muss also via ~$ ip address list auf "Gateway" nachgeschlagen werden.

Testen

Auf "Blue": :> ping 192.168.4.65

Aufgabe

  1. Vergleicht die Ausgabe vom ip route list-Kommando auf Green und Orange
  2. nutzt ip route add ... auf dem Rechner Green um die fehlende Route zu ergänzen (steht oben, ggf. hilft auch ein Chatbot)
  3. Führt die Ping Kommandos zwischen Green ↔ Blue und Blue ↔ Green (mit entsprechenden IP-Adressen) aus
~# ip route add default via 192.168.4.254

oder

~# ip route add 0.0.0.0/0 via 192.168.4.254

Begriffe Router ↔ Gateway

1. Lehrbuch-Definition
  • Router vermittelt zwischen IP-Netzen
  • Gateway übersetzt zwischen verschiedenen Netzwerktechniken

Aber: DSL-Router, LTE-Router

  • → entspricht nicht tatsächlich dem Sprachgebrauch

Nicht wie wir den Begriff im Kurs verwenden!

gutes Beispiel für diese Definition:

  • VoIP-Gateway - Applikation die Anrufe aus dem Telefonnetz ins IP-Basierte VoIP-Netz vermittelt
  • Email ↔ Fax Gateway

Eigentlich ein anderer Gateway-Begriff als hier im Netzwerkkurs

2. Loser Sprachgebrauch (wenn wir von Netzwerkrouting sprechen)
  • Router übermittelt Traffic in spezifisches anderes (lokales) IP-Netz
  • Das Gateway ist der Router der zum Rest des Internet / in ein übergeordnetes Netzwerk führt

→ Vorsicht, der Sprachgebrauch ist unscharf und kann sich nach Betriebskultur unterscheiden

NAT-Routing

Network Address Translation (Linuxer sagen auch Masquerading) ist eine Sonderfunktion von Routern, bei der die Quelladresse von weitergeleiteten Paketen umgeschrieben wird. Hier setzt der Router seine eigene IP-Adresse ein, aus Sicht eines weiteren Gateways erscheint es dann so, als ob das Paket vom ersten Router selbst ausgeht.

NAT-Routing auf dem Gateway aktivieren (eth1/eth0, je nachdem was das internetseitige Interface des Gatewa ys ist)

~# apt-get install iptables
~# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Hausaufgabe:

Auf dem grünen Rechner:

~# echo nameserver 192.109.42.41 >/etc/resolv.conf

Damit wird der Nameserver von IN-Berlin benutzt. → Webbrowser öffnen

  • geht

Alternativ, grafisch:

NetworkManager-Manuell.png

Recherche

Die iptables-Regel auf dem Gateway-Rechner ist nicht "rebootfest". Wie kann man dafür sorgen, dass sie beim Systemstart immer wieder hergestellt wird.

  • allgemein beim Systemstart

    • als SystemD-Service-File
    • als Cron-Job
    • Achtung: keine Garantie bzgl. des Zeitpunktes zu dem die Config geladen wird! Es kann passieren, dass das Netzwerkinterface mehrere Sekunden online ist, bevor die Firewall-Regeln geladen werden.
  • wenn das Netzwerk konfiguriert wird

    • Debian-Paket: iptables-persistent (nur Debian)
  • in /etc/network/interfaces

    • pre-up /sbin/iptables -t nat ... ... unterhalb der iface-Zeile
    • Nachteil: viele Einträge machen das Config-File unübersichtlich → Auslagern in Script

Experiment NAT-Routing

Das NAT-Routing auf "Gateway" muss für dieses Experiment eingerichtet sein.

  1. nutzt ncat -vk um auf dem "Orangen" Rechner einen TCP-Listener zu starten

    • mit dem Parameter -v zeigt ncat die IP-Adresse und den Source-Port eingehender Verbindungen an

    • mit dem Parameter -k kann ncat mehrere gleichzeitige Verbindungen annnehmen (Standardverhalten ist, dass alle weiteren Verbindungsversuche abgelehnt werden, nachdem die erste Verbindung besteht)

    • Orange: ~$ ncat -vkl 1024

  2. verbindet euch vom Rechner "Green" zu dem laufenden, "lauschenden" ncat

    • nutzt den Parameter -p um explizit einen Source-Port für die Verbindung zu wählen
  3. Was passiert mit Source-IP und -Port,

    • wenn ihr euch vom Rechner "Green" zu "Orange" verbindet?

    • wenn ihr euch vom Rechner "Gateway" zu "Orange" verbindet?

    • wenn ihr für die gleichzeitige Verbindung von beiden Rechnern den selben Source-Port wählt

    • Green: ~$ ncat orange 1024 -p 20000

      Port 20000 ist danach belegt und kann nicht gleichzeitig von einem anderen Prozess benutzt werden

  4. Startet einen Listener auf "Blue"

    • Blue: :> ncat -vkl 1024
  5. Was passiert mit Source-IP und -Port

    • wenn ihr euch vom Rechner "Orange" zu "Blue" verbindet?

    • wenn ihr euch vom Rechner "Green" zu "Blue" verbindet?

    • wenn ihr für die gleichzeitige Verbindung von beiden Rechnern den selben Source-Port wählt

    • → Das Gateway setzt die Source-IP auf seine eigene

    • → ist der Source-Port bereits von einer anderen Verbindung belegt, wird auch der Port "maskiert"

  6. Mit iptables -t nat -F könnt ihr die Network Address Translation deaktivieren

    • wie verhalten sich die Verbindungen aus dem vorherigen Aufgabenteil jetzt?
    • (Hinweis: damit hier eine Verbindung zustande kommt, muss die Rückroute auf "Blue" gesetzt sein)

Nächster Schritt: DHCP-Server

Im internen Netzwerk soll die Netzwerkkonfiguration automagisch vergeben werden, so dass man auf Green und Orange keine Einstellungen mehr machen braucht.

  • Hierzu dient das DHCP-Protokoll: https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
  • der Dienst dnsmasq enthält unter Anderem einen DHCP-Server
  • schaut in die (weitestgehend auskommentierte) Config-Datei von dnsmasq und in die man-page und versucht den DHCP-Dienst für das 192.168.4.0er-Netzwerk zu konfigurieren
~# apt-get install dnsmasq

Editiere: /etc/dnsmasq.conf → einzige aktive Zeile:

dhcp-range=192.168.4.16,192.168.4.128,255.255.255.0,2h

dnsmasq neustarten: ~# systemctl restart dnsmasq

dnsmasq bei der Arbeit zusehen: ~# journalctl -u dnsmasq -f

→ Werden der grüne oder der orange Rechner neu gestartet, können wir die DHCP-Discover-Nachrichten sehen.

Aufgabe: Interface eingrenzen

  1. Haltet das Journal am Gateway / DHCP-Server offen.

  2. Am Windows-Rechner:

    :> ipconfig /release
    :> ipconfig /renew

    • → Ihr beobachtet im Journal den DHCP-Discover vom Windows-Rechner (dnsmasq weigert sich aber eine Antwort zu geben, weil für das entsprechende Netz kein DHCP-Range konfiguriert ist)
  3. Richtet dnsmasq so ein, dass es von vornherein nur DHCP-Discovers aus dem inneren Netzwerk empfängt

    • entweder interface=eth0 (Interface kann abweichen)
    • oder listen-address=192.168.4.254

Aufgabe: "statische" dynamische Adressen

Der DHCP-Server kann die Client-Rechner an ihrer MAC-Adresse eindeutig erkennen.

  1. Der Rechner "Orange" soll immer die Adresse .65 bekommen, und unter dem Namen "orange" im lokalen DNS registriert werden.

  2. Gleiches gilt für den Rechner "Green" mit der Adresse .66

    dhcp-host=00:15:5d:02:67:01,192.168.4.65,orange
    dhcp-host=00:15:5d:02:67:02,192.168.4.66,green

    MAC-Adressen können (werden!) abweichen

  • nach der Einrichtung sollten die Live-Systeme sich immer gegenseitig als "orange" und "green" pingen können.

Aufgabe: Subnetzmasken

Ein Rechner hat eine IP-Adresse und Subnetzmaske. Eine Applikation versucht sich zu einem bestimmten Zielrechner zu verbinden. Rechner im selben IP-Netz können direkt erreicht werden, Rechner in fremden Netzen müssen über einen Router angesprochen werden.

Subnetzmasken können in Lang- oder Kurznotation angegeben sein, z.B. 255.255.255.0 oder /24.

Rechnet aus, ob die folgenden Verbindungen geroutet werden müssen:

Eigene IP Subnetzmaske Zielrechner Routing ja/nein
192.168.4.12 255.255.255.0 192.168.4.190 nein
192.168.4.12 255.255.255.0 172.25.64.3 ja
192.168.4.12 255.255.255.0 192.168.3.190 ja
172.25.67.3 255.255.240.0 172.25.67.90 nein
172.25.67.3 255.255.240.0 172.25.71.90 nein
172.25.67.3 255.255.240.0 172.25.63.90 ja
107.24.9.108 255.255.128.0 107.24.100.1 nein
107.24.9.108 255.255.192.0 107.24.100.1 ja
107.24.9.108 252.0.0.0 78.44.9.92 ja
200.200.100.4 255.254.0.0 200.199.101.3 ja
200.200.100.4 /15 200.201.99.3 nein
200.200.100.4 /17 200.201.99.3 ja
1.1.1.1 /29 8.8.8.8 ja
1.1.1.1 /29 1.1.1.10 ja
1.1.1.1 /28 1.1.1.10 nein
1.1.1.1 /27 1.1.1.10 nein
1.1.1.1 /26 1.1.1.10 nein
1.1.1.1 /26 1.1.1.5 nein
1.1.1.1 /30 1.1.1.5 ja
Rechenbeispiel: Subnetzmaske 255.255.240.0

Adr.  10101100 00011001 0100|0011 00000011
Maske 11111111 11111111 1111|0000 00000000
Ziel  10101100 00011001 0100|0011 01011010
      10101100 00011001 0100|0111 01011010
      10101100 00011001 0011|1111 01011010
                            ^
                            '- Netzgrenze
                               Dort wo die Einsen in der
                               Netzmaske enden

172	 25	  67	    90
10101100 00011001 0100|0011 01011010 <- IP-Adresse
10101100 00011001 0100|0000 00000000 <- Netzadresse
172	 25	  64	    0

10101100 00011001 0100|1111 11111111 <- Broadcastadresse
172	 25	         79 255

Begriffe

Klasse A: 255.0.0.0 bzw /8 Klasse B: 255.255.0.0 bzw /16 Klasse C: 255.255.255.0 bzw /24

CIDR
Classless Inter-Domain Routing

Beispiel CIDR-Netz: 255.255.240.0 Aber CIDR-Notation: /20

Aufgabe: Routing-Tabelle

  1. Wir arbeiten am Windows-Rechner, befehle um Routen zu setzten sind

    • :> route add 192.168.4.0 mask 255.255.255.0 172.29.70.180 (Gateway wird abweichen)
    • :> route delete 192.168.4.0
    • :> route add 192.0.0.0 mask 255.0.0.0 172.29.70.180
  2. Mit den Kommandos oben, könnt ihr folgende verschieden Zustände in der Routing-Tabelle herstellen

    • Keine Route außer der Default-Route
    • Eine spezifische Route ins Netz 192.168.4.0
    • Eine allgemeinere Route ins Netz 192.0.0.0
  3. Probiert in jedem der folgenden Zustände

    • Einen Ping an den Orangen Rechner: 192.168.4.65
    • Einen Ping an den öffentlichen IN-Berlin Nameserver: 192.109.42.41
    • Einen Ping an den öffentlichen Internet-Host: 1.1.1.1 (Cloudflare-Nameserver)
  4. Fertigt eine Tabelle an, in der ihr seht, welche Pings bei welchen Routing-Varianten funktionieren. und welche nicht
default 192.168.4.0/24 192.0.0.0/8
1.1.1.1 ping ping ping
192.168.4.65 - ping ping
192.109.42.41 ping ping ping (Hoppla!)

Hoppla! Das Experiment war anders geplant ;-)

Der Rechner versucht jedes Paket über das Gateway zu Routen, das laut Routing-Tabelle am ehesten der Ziel-IP-Adresse entspricht.

  • Ein Ping nach 1.1.1.1 wird in jedem Fall über das Default-Gateway geroutet, da keine andere Route existiert, die zu der Zieladresse passt.
  • Ein Ping nach 192.168.4.65 wird

    • über das Default-Gateway geroutet, wenn keine genauere Route existiert → in diesem Fall erreichen wir den Zielrechner nicht!
    • über unser internes Gateway geroutet, wenn die Route dafür gesetzt ist
    • über ein Gateway geroutet, dass ins übergeordnete Netz 192.0.0.0 führt, wenn keine genauere Route existiert
  • Ein Ping nach 192.109.42.41 wird

    • über das Default-Gateway geroutet wenn keine genauere Route existiert
    • über das Default-Gateway geroutet, wenn nur eine Route nach 192.168.4.0 existiert, da das Zielnetz dieser Route nicht zur IP passt. Das default-Gateway stellt in dem fall die genaueste passende Route.
    • fälschlicherweise über das interne Gateway geroutet, wenn der Rechner glaubt, dass dieses eine Route nach 192.0.0.0 darstellt. Diese Route ist passend und spezifischer als die Default-Route.

      • Unerwarteterweise funktioniert der Ping trotzdem, denn das Interne Gateway reicht das Paket seinerseits an das korrekte Default-Gateway weiter - das Experiment war so nicht geplant ;-)

Aufgabe: Traceroute

Das Ping Kommando enthält einen Switch für die TTL.

  1. setzt einen Ping nach 1.1.1.1 ab
  2. gebt eine TTL von 32 an
  3. Führt weitere Pings mit immer kleiner werdender TTL aus. → was ist eigentlich die TTL?
  4. was machen die Programme traceroute bzw. tracert unter Linux und Windows?

Aufgabe: DNS

https://en.wikipedia.org/wiki/Domain_Name_System

  • Was sind DNS-Record-Typen?
  • Was sind Subdomains, Top-Level-Domains, Second-Level-Domains?
  • Schlagt mit dem Kommando dig unter Linux den NS-Record der Top-Level-Domain de. nach
  • Was sind die DNS-Root-Server?
  • Planspiel: Was könnte passieren wenn die US-Amerikanische RREEGGIEERUNG!!! verbietet, dass .de-Domains vergeben werden ;-)

Aufgabe: IPv6

An unseren bestehenden Rechnern kann man auch IPv6-Adressen und Routen setzen.

~# ip address list
~# ip address add ADRESSE/MASKE dev eth0
~# ip address del ADRESSE/MASKE dev eth0
~# ip route list
~# ip -6 route list
~# ip route add NETZWERK/MASKE via GATEWAY
~# ip route add NETZWERK/MASKE via GATEWAY
  1. Unser privates Netzwerk soll das /64er-Netz fc00:affe:d00f:: kriegen

    • Das Gateway dementsprechend als fc00:affe:d00f::1
    • der grüne und orange Rechner jeweils mit einer anderen Host-Adress
    • Tragt das Gateway zunächst manuell in die Routing-Tabelle von Orange und Green ein
  2. Am Hyper-V-Netz vergeben wir das Netz fc00:beef:cace::/64

    • Das Gateway kriegt die entsprechende Adresse am richtigen INterface
    • Auf dem Rechner Blue kann in Network-Connections → Properties → IPv6 die Adresse und Gateway klicken

      • oder irgendwie am CLI einstellen
  3. IPv6-Forwarding am Gateway aktiviert man in der Spezialdatei /proc/sys/net/ipv6/conf/all/forwarding

  4. Führt folgende Experimente durch

    • Können sich Orange und Green auf ihrer jeweiligen fe80-Adresse pingen?
    • Können sich Orange und Green auf ihrer jeweiligen fc00-Adresse pingen?
    • Kann Orange das Gateway anpingen?
    • Kann Orange den Rechner Blue anpingen?
    • Was sagt der traceroute von Orange nach Blue

IPv6 Adressschreibweise

Verkürzt folgende IPv6-Adressen soweit wie möglich:

0000:0000:0000:0000:0000:0000:0000:0001
-> ::1
feed:5eed:0070:face:0000:0000:0000:0000
-> feed:5eed:70:face::
b1ac:0000:0000:0000:00c0:00ff:000e:000e
-> b1ac::c0:ff:e:e
1000:2000:3000:4000:5000:0006:0007:0008
-> 1000:2000:3000:4000:5000:6:7:8
0000:0000:d0d0:0000:0000:dead:0000:0000
-> ::d0d0:0:0:dead:0:0 (standard!)
-> Ebenfalls zulässig / verständlich
   0:0:d0d0::dead:0:0
   0:0:d0d0:0:0:dead::

Schreibt folgende IPv6-Adressen vollständig aus:

c0:1d::beef
-> 00c0:001d:0000:0000:0000:0000:0000:beef
0:bee::f00d:0:1
-> 0000:0bee:0000:0000:0000:f00d:0000:0001
0:1:d::a:1:e
-> 0000:0001:000d:0000:0000:000a:0001:000e

Kurze Übung:

  1. Legt euch die VMs Green und Orange auf dem Bildschirm bereit.

  2. lasst auf Orange ein Nncat im TCP-Modus laufen:

    ~$ ncat -l 1024

  3. Verbindet den anderen Rechner damit:

    ~$ ncat orange 1024

  4. schreibt ein paar Zeilen Text in die verbindung

  5. öffnet die Hyper-V-Einstellungen von Orange.

    Datei → Einstellungen → Netzwerk → Virtuelles Switch

  6. Setzt den Switch auf "Nicht Verbunden" → Anwenden

  7. Schreibt ein paar weitere Zeilen auf die Verbindung

    → Die Daten kommen auf dem anderen Rechner noch nicht an.

  8. Verbindet den Switch wieder → Anwenden

    → nach einem Augenblick werden die gesendeten Daten nachgereicht

  9. Führt das gleiche Experiment mit UDP durch:

    green:~$ ncat -ul 1024
    orange:~$ ncat -u green 1024

Transportprotokolle

UDP

  • Pakete enthalten Portnummern, um die Sendende / Empfangende Applikation auf den kommunizierenden Rechnern zu identifizieren
  • Geringer Overhead
  • Geringe Latenz

TCP

  • Pakete enthalten Portnummern, Sequenznummern, und weiteres Signaling-Overhead

    • Korrekte Reihenfolge und Vollständigkeit versendeter Daten wird sichergestellt
    • Benötigt Buffering bei Sender und Empfänger (um Bestätigung / Vollständigkeit von Daten abzuwarten)
    • Etwas mehr Overhead als UDP
    • Latenz durch Buffering
    • Verbindung kann abbrechen wenn das Betriebssystem entscheidet, dass die Gegenstelle zu lange nicht geantwortet hat (Sendbuffer Läuft über, etc.)

Applikationen suchen sich aus, ob sie auf einem TCP-Kanal (Stream) oder per UDP (Datagram) kommunizieren. Einige Applikationsprotokolle benutzen immer TCP als Transportschicht, einige benutzen immer UDP, bei wenigen ist die Transportschicht austauschbar.

ICMP

  • Beispiel: ping
  • Signalisiert Fehlermeldungen (z.B. vom Router: Destination net unreachable)
  • Applikationen können idR. keine fertige ICMP-Funktionalität vom OS anfordern (Ping arbeitet auf einem IP-Socket und baut ICMP-Pakete "von Hand")

DCCP, SCTP, andere....

  • Wenig verbreitet
  • Braucht idR. root/Administrator-Rechte, da nicht vom OS bereitgesstellt