TL; DR> MAC-Adressen sind eine Low-Level-Komponente eines Ethernet-Netzwerks (und einiger ähnlicher Standards, wie z. B. WiFi). Sie ermöglichen einem Gerät die Kommunikation mit einem Computer im lokalen physischen Netzwerk (LAN) und können nicht über das Internet geroutet werden, da die physische Hardware theoretisch überall auf der Welt angeschlossen werden kann.
Im Gegensatz dazu decken IP-Adressen das gesamte Internet ab und Router verwenden sie, um herauszufinden, wohin Daten gesendet werden sollen, selbst wenn mehrere Hops erforderlich sind, um das Ziel zu erreichen. Sie sind jedoch nicht hilfreich für die Verbindung mit der physischen Hardware in Ihrem lokalen Netzwerk.
Wenn wir jemals einen besseren Standard als Ethernet gefunden haben, werden möglicherweise keine MAC-Adressen verwendet, aber der IP-Verkehr aus dem Internet könnte weiterhin über diesen Standard fließen, selbst wenn andere Internetnutzer noch nie davon gehört hätten.
Wenn wir jemals einen besseren Standard als IP finden würden (zum Beispiel IPv6, wenn alle IPv4-Adressen ausgehen), könnte die meiste Ethernet-Hardware die neue Art von Datenverkehr ohne Änderungen übertragen - und ein einfaches Software- / Firmware-Update würde den größten Teil des Restes beheben.
MAC-Adressen sind erforderlich, damit ein lokales Ethernet- (oder WLAN-) Netzwerk funktioniert. Sie ermöglichen es einem Netzwerkgerät, die Aufmerksamkeit eines einzelnen direkt verbundenen Geräts zu erregen, obwohl die physische Verbindung gemeinsam genutzt wird. Dies kann wichtig sein, wenn Tausende von Geräten in einer Organisation miteinander verbunden sind. Sie haben im weiteren Internet keine Funktion.
Um die Antwort auf diese Frage wirklich zu verstehen, müssen Sie das OSI-Modell (manchmal auch als 7-Layer-Modell bezeichnet) verstehen .
Für die Kommunikation zwischen zwei Anwendungen, die auf separaten Computern ohne direkte physische Verbindung ausgeführt werden, ist viel Arbeit erforderlich.
Früher wusste jede Anwendung genau, welche Maschinencodeanweisungen ausgeführt werden mussten, um ein geeignetes Signal zu erzeugen, das die Anwendung am anderen Ende erreichen und von dieser decodiert werden konnte. Die gesamte Kommunikation erfolgte effektiv von Punkt zu Punkt, und die Software musste so geschrieben werden, dass sie genau der Situation entsprach, in der sie bereitgestellt werden sollte. Offensichtlich war das nicht nachhaltig.
Stattdessen wurde das Netzwerkproblem in Ebenen aufgeteilt, und jede Ebene wusste, wie sie mit der entsprechenden Ebene auf einem Remotecomputer sprach und wie sie mit der darunter liegenden (und manchmal darüber liegenden) Ebene auf ihrem lokalen Computer kommunizierte. Es wusste überhaupt nichts über andere vorhandene Ebenen - Ihr Webbrowser muss sich also nicht darum kümmern, ob es auf einem Computer ausgeführt wird, der einen Token Ring, ein Ethernet- oder ein WLAN-Netzwerk verwendet - und muss auf keinen Fall wissen, welche Hardware vorhanden ist die entfernte Maschine verwendet.
Damit dies funktioniert, verwendet das 7-Ebenen-Modell ein System, das verschachtelten Umschlägen ähnelt. Die Anwendung erstellt ihre Daten und verpackt sie in einem Umschlag, den das Betriebssystem bereitstellen kann. Das Betriebssystem wickelt dies in einen anderen Umschlag ein und übergibt ihn an den Netzwerktreiber. Der Netzwerktreiber packt dies in einen weiteren Umschlag und steckt ihn in das physische Kabel. Und so weiter.
Die unterste Schicht, Schicht 1 , ist die physikalische Schicht. Dies ist die Schicht aus Drähten, Transistoren und Funkwellen, und auf dieser Schicht ist die Kommunikation meist nur ein Strom von Einsen und Nullen. Die Daten gehen überall hin, wo eine physische Verbindung besteht. Sie schließen den Netzwerkanschluss Ihres Computers mit einem CAT-5-Kabel an Ihren Switch an.
Schicht 2 ist die Datenverbindungsschicht. Dies bietet eine gewisse Struktur für Einsen und Nullen, einige Funktionen zur Fehlererkennung und -korrektur sowie Hinweise darauf, welches physikalisch verbundene Gerät (physikalische Verbindungen können hier tatsächlich über WLAN hergestellt werden) die Meldung beachten sollte. Auf dieser Ebene kommen die MAC-Adressen ins Spiel, und wir werden später darauf zurückkommen. MAC-Adressen sind jedoch nicht die einzige Möglichkeit auf dieser Ebene. Token-Ring-Netzwerke benötigen beispielsweise eine andere Datenverbindungsimplementierung.
Schicht 3 ist die Netzwerkschicht. Auf dieser Ebene arbeitet IP (obwohl dies auch nicht das einzige Netzwerkprotokoll ist), und auf dieser Ebene können Computer eine Nachricht senden, die an jeden Rechner im "Netzwerk" gesendet werden kann. Es muss keine direkte Verbindung zwischen den betreffenden Maschinen bestehen.
Die Schichten 4 bis 7 sind Protokolle höherer Ebene. Sie entfernen sich immer weiter von der Hardware und nähern sich der Anwendung. TCP zum Beispiel sitzt über IP und bietet Mechanismen, mit denen Nachrichten automatisch erneut gesendet werden, wenn sie verloren gehen.
Daher arbeiten MAC-Adressen auf Schicht 2 und ermöglichen es 2 Computern, die physisch miteinander verbunden sind, Nachrichten zu senden, die von anderen Computern, die dieselbe physische Verbindung haben, ignoriert werden.
Angenommen, ich habe eine Anwendung, die Daten mit der IP-Adresse 8.8.8.8 an den Computer senden möchte
Layer 3 fasst die Daten in einem Umschlag zusammen, der unter anderem die IP-Adresse 8.8.8.8 enthält, und übergibt diese dann an Layer 2.
Schicht 2 prüft diese IP-Adresse und entscheidet, mit welchem Computer sie direkt verbunden ist, um mit dieser Nachricht umzugehen. Es wird eine Nachschlagetabelle mit einer Auswahl der direkt verbundenen IP-Adressen zusammen mit der entsprechenden MAC-Adresse der Netzwerkkarte in diesem Computer angezeigt. Diese Nachschlagetabelle wird mit einem Protokoll namens ARP erstellt, mit dem eine Netzwerkkarte Fragen zu den anderen direkt angeschlossenen Geräten stellt. Ethernet reserviert eine spezielle MAC-Adresse, FF: FF: FF: FF: FF: FF, mit der ein Gerät mit allen physisch verbundenen Geräten kommunizieren kann.
Befindet sich die IP-Adresse in der Tabelle (oder kann sie über ARP aufgelöst werden), wird der Layer 3-Umschlag in einen Layer 2-Umschlag mit der MAC-Adresse im neuen Header eingeschlossen und anschließend das gesamte Paket an die Hardware auf Layer 1 übergeben Die Netzwerkkarte mit der übereinstimmenden MAC-Adresse empfängt die Nachricht und der Netzwerktreiber öffnet den Layer 2-Umschlag und leitet den Inhalt an denjenigen Teil des Betriebssystems weiter, der Nachrichten unter der angegebenen IP-Adresse erwartet.
Wenn sich die IP-Adresse nicht im lokalen Netzwerk befindet, enthält der neue Umschlag die MAC-Adresse des für diese Netzwerkschnittstelle konfigurierten Standard-Gateways (dh des Routers), und die Hardware transportiert das Paket zum Router.
Der Router erkennt seine eigene MAC-Adresse im Layer 2-Umschlag und öffnet das Level 2-Paket. Es überprüft die IP-Adresse auf dem Level 3-Umschlag und ermittelt, wohin die Nachricht als Nächstes gesendet werden muss. Dies ist wahrscheinlich der Router bei Ihrem ISP. Wenn der Router NAT (oder ähnliches) verwendet, kann er an dieser Stelle sogar den Level 3-Umschlag ändern, um Ihre internen IP-Adressen privat zu halten. Anschließend wird der Umschlag der Ebene 3 in einen neuen Umschlag der Ebene 2 eingewickelt, der an die MAC-Adresse des ISP-Routers adressiert ist, und die Nachricht wird dorthin gesendet.
Dieser Vorgang des Entfernens des äußeren Umschlags und des Einwickelns des Inhalts in einen neuen Umschlag, der an den nächsten Schritt in der Kette adressiert ist, wird fortgesetzt, bis die Nachricht den Zielcomputer erreicht.
Die Umschläge werden dann weiter abgerissen, während die Nachricht die Ebenen hinaufwandert, bis sie schließlich ihren beabsichtigten Empfänger erreicht. Dies ist eine Anwendung, die hoffentlich weiß, was mit der Nachricht zu tun ist, aber keine Ahnung hat, wie die message kam dort noch in der Tat alle erforderlichen Schritte, um die Antwort auf die ursprüngliche Maschine zurück zu bekommen.
Aber es funktioniert alles, fast wie Magie!
Beachten Sie, dass Netzwerk-Switches MAC-Adressen verwenden können, um den Netzwerkverkehr zu optimieren. Während ein Ethernet-Hub den gesamten eingehenden Datenverkehr einfach an alle seine Ports weiterleitet, kann ein Switch den Datenverkehr nur an den einzelnen Port weiterleiten, mit dem die MAC-Zieladresse des Pakets verbunden ist. Dies erhöht die effektive Bandbreite des Netzwerks; Durch die Ausrichtung auf bestimmte Ports verhindert der Switch die Weiterleitung von Datenverkehr auf unnötigen Segmenten des Netzwerks. Der Switch verwendet entweder ARP oder Packet Sniffing, um zu ermitteln, welche Geräte an welchen Port angeschlossen sind. Switches ignorieren den Inhalt der Layer 2-Pakete vollständig.