Spezieller (ARP, Tabellen)

Versendet z.B. ein Gerät ein Datenpaket, beinhaltet dieses wie besprochen Herkunfts- und Empfängeradresse. Haben die Herkunfts- und Empfängeradresse den selben Netzwerksanteil, kann das Paket direkt an den Rechner im gleichen Netzwerk gesendet werden, andererseits wird das Paket an einen Router gesandt, der versucht, das Paket weiter zuzustellen (In Windows wird die IP des Routers default gateway genannt).

Ist die Ziel IP-Adresse im eigenen Net/Sub-Netz, verwendet der Rechner das ARP-Protokoll, um die MAC-Adresse des Zielrechners herauszufinden, die zum Senden des Datenpackets nötig ist. ("Gegenteil": RARP - Reverse Address Resolution Protocol. RARP-Server liefert zu einer MAC-Adresse eine IP-Adresse).

Genauer: MAC/ARP (Adress Resolution Protokoll). Damit die Zielkomponente, an die Daten gesendet werden, wirklich eindeutig bestimmbar ist und keine identischen Hardwareadressen im Netz auftreten können, gibt es die Ethernetadressen (meist MAC-Adressen oder physikalische Adresse genannt), die fix in der Hardwarekomponente gespeichert sind (z.B. Netzwerkkarte, Router etc). Aufruf von ipconfig /all in der Windows-Eingabeaufforderung fördert z.B. diese zu Tage:


12stellige Hexadezimalzal (Werte 0-9, A-F)

Das Herausfinden der MAC-Adresse kann auf zweierlei Arten geschehen: Der "Quellrechner" kann einen so genannten ARP-Request an alle anderen Rechner in seinem Sub-Netz schicken (broadcast arp request), um so vom Zielrechner, der ja seine IP-Adresse selbst kennt, dessen gewünschte MAC-Adresse zu erfahren. ARP arbeitet nur innerhalb des LANs, findet also nur MAC-Adressen von Rechnern des gleichen Netzes.
Da sich immer alle Rechner zwangsweise mit diesen "broadcasts" beschäftigen müssen, haben die Rechner sogenannte ARP-caches (auch ARP-Tabellen genannt), in denen sie erfolgreiche Anfragen verzeichnen, um so nicht jedesmal wieder einen "broadcast" auf alle Rechner "loslassen" zu müssen. Die zweite Möglichkeit ist also das Auslesen des ARP-Caches, was natürlich immer vor einem allfälligen broadcast durchgeführt wird, um nicht unnötig das Netz zu belasten.

Beispiel: Überblick über den ARP-Befehl und Arp-Cache (arp -a)

Wir "Pingen" nun zum Test die Adresse 193.170.98.2 an, damit müsste diese Adresse auch im arp-cache des Rechners landen:

Aber auch der Router, nicht nur andere Rechner des Sub(Netzes), kann auf den ARP-Request antworten. Antwortet der Router mit seiner MAC.Adresse, bedeutet dies, dass der Rechner (die Zieladresse) außerhalb des (Sub-)Netzes liegt und die Pakete, wie oben ewähnt, an den Router gesendet werden, der sich um die Weiterleitung annimmt. Der Router verwendet im Gegensatz zum ARP-Cache so genannte Routingtabellen zur Weiterleitung.

Arten von Routing

- default Routen (An diese werden Datenpakete, die nicht im eigenen Adressbereich liegen, gesendet) und
- statische Routen (Sie sind fix in der Routingtabelle des Routers/Hosts eingetragen),
- dynamische Routen (Router/Hosts tauschen Routingtabelleneinträge aus, um immer den optimalen Weg zu nutzen - mittels: Routing Information Protocol (RIP)).

Dynamische Routen: Hier werden, wie gesagt, durch das RiP Protokoll Daten ausgetauscht. Z.B. bewerten Router z.B. die Zeit für das Routing (neue Zeit kürzer als alte Zeit? Wenn ja, neue Route übernehmen). So könnte z.B. der schnellste Weg dynamisch angepasst werden.

Open Shortest Path First (OSFP): An den Pfaden (Kanten) zwischen den Routern läßt sich z.B. die Vermittlungszeit ablesen, der OSFP-Algorithmus ermittelt die kürzeste Route. Die Kanten werden immer wieder neu gewichtet (berechnet). OSFP unterstützt aber auch andere Modi, die Kanten könnten genauso mit den Routingkosten in € belegt werden und OSFP nimmt den billigsten Weg. Auch können Kanten gerichtet sein, d.h. in die Gegenrichtung e-d-c-a könnten die Kanten andere Werte annehmen.


Die Router schicken dabei HELLO-Messages aus, um ihre "'Nachbar"-Router zu erreichen (Router a z.B. an seine Nachbar-Router b, c und f). Die Werte der Kanten werden so gegenseitig ausgetauscht und in eine Routing-Tabelle eingetragen. Nach und nach tauschen alle Router ihre Routing-Tabellen über die sogenannte Link-State-Message aus. Auf die erhaltenen Routingtabellen wird letztendlich der OSFP-Algorithmus angewandt, der diese z.B. hinsichtlich Kosten bzw. Geschwindigkeit für alle Ziele optimiert.

Eine Routingtabelle enthält dabei meist folgende Einträge:
- DESTINATION (Zielnetz oder IP-Adresse)
- GATEWAY (Gateway, das genommen werden muss, um die DESTINATION zu erreichen),
- FLAGS (bestimmte Flags, wie H für Ziel, ist ein Host, G für Route nutzt ein Gateway, U Route existiert und ist verwendbar)
- REFCNT (Anzahl der bisherigen Routenbenutzung),
- INTERFACEN (Name des Netzwerks-Interface für die Route),
- METRIC (Anzahl der Hops [Router] zwischen Absender und Ziel)

Das Weiterleiten der Datenpakete aufgrund der Routingtabellen wird allgemein Forwarding genannt.

Unter Windows: Netzwerksziel/Netzwerkmaske entspricht dabei DESTINATION, Gateway ist gleich benannt und Schnittstelle steht für INTERFACE, Anzahl steht für METRIC.

???????????????? Aktive Routen:
???????????????? Netzwerkziel?? Netzwerkmaske???? Gateway?????? Schnittstelle?? Anzahl
???????????????? 127.0.0.0????? 255.0.0.0???????? 127.0.0.1???? 127.0.0.1?????? 1
Standardgateway: 193.170.98.1

d.h. alle Daten an das Netz 127.0.0.0 werden an die Schnittstelle 127.0.0.1 (localhost) gesendet (Loop-Back-Route hat standardmäßig jeder Rechner in seiner Routingtabelle - eigentlich eine Route vom eigenen Rechner zum eigenen Rechner). Alles nicht an die Loopback-Adresse adressierten Daten werden automatisch an das defaulte Gateway (mittels default route) gesandt.

Route-Befehle unter Windows:
route add host gateway (statische Route der Routing-Tabelle hinzufügen)
route add net gateway

route del net (statische Route löschen)
route del host

route print (Routing-Tabelle ausgeben)

Beispiel 3 private Netze (192.168.0.0, 192.168.1.0, 192.168.2.0) mit Routern verbunden, der Router hat jeweils 2 Netzwerkinterfaces für die anliegenden Netze.

Es stellt sich nun auch die Frage, wann ein Rechner solche 'broadcasts' ins Netz schicken kann und was passiert, wenn er die Adresse des Zielhosts nun weiß, bzw. Datenpakete übertragen möchte? Da es sich bei Ethernet prinzipiell um ein Broadcast-Netzwerk handelt, werden prinzipiell alle Datenpakete an das ganze Netzwerk gesandt (samt Quelladresse, Zieladresse und Protokoll). Jeder Rechner des Netzes, die einen solchen broadcast erhalten, hat nun zu prüfen, ob die Zieladresse des Datenpakets mit seiner eigenen Adresse übereinstimmt. Ist dies der Fall, nimmt er das Paket vom Netz und bearbeitet es. Alle anderen Rechner ignorieren das Paket.

Das Senden der Anfragen/Antworten bzw Datenpakete ist jedoch nur möglich, wenn auch die Leitung frei ist (Ethernet als Bus-Topologie benötigt eine solche exclusive Kabelnutzung, vgl. gepflegtes Gespräch zwischen 2 Personen: "Fangen beide gleichzeitig an zu reden, brechen meist beide kurz das Gespräch ab und warten kurz, bis sie es erneut versuchen").

Darum wird auf 'Freileitung' geprüft: Werden auf der Leitung keine Signale entdeckt, schickt der Rechner seine Pakete los, andernfalls wartet er kurze Zeit und prüft erneut auf Sendemöglichkeit. Sollten z.B. 2 Rechner gleichzeitig der Meinung sein, die Leitung wäre frei, kommt es zu einer Kollision der Datenpakete auf der Leitung. Hier tritt die CSMA/CD (Carrier Sense Multiple Access with Collision Detection) Technik in Kraft. Dadurch können die an der Kollision beteiligten Rechner die Kollision erkennen (collision detected) und stellen das Senden ein (solange sich ein so genanntes Jam-Signal, das auf die Kollision hinweist, auf der Leitung befindet). Ist das Jam-Signal nicht mehr vorhanden, versuchen die Rechner nach kurzer Zeit die zuvor kollidierten Datenpakete erneut zu senden.