Was ist die genaue Verwendung einer MAC-Adresse?


126

Ich verstehe, dass IP-Adressen hierarchisch sind, sodass Router im gesamten Internet wissen, in welche Richtung ein Paket weitergeleitet werden soll. Bei MAC-Adressen gibt es keine Hierarchie und somit wäre eine Paketweiterleitung nicht möglich. Daher werden MAC-Adressen nicht für die Paketübertragung verwendet.

Ich glaube nicht, dass es dort ohne Grund sitzt. Meine Frage ist also, wo genau kommt eine MAC-Adresse bei einer Paketübertragung ins Spiel?

Antworten:


57

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.


Hallo! Danke für die Antwort. Soweit ich gelesen habe, ist Ihre Antwort die beste. Es wäre fantastisch, wenn Sie weitere Konzepte wie ARP und NAT in Ihr Szenario aufnehmen könnten.
Vishnu Vivek

1
Verweis auf ARP- und Netzwerk-Switches hinzugefügt. Ich glaube nicht, dass NAT irgendetwas mit MAC-Adressen zu tun hat, da es eine Layer-3-Funktion ist ...
Bill Michell

@BillMichell: In IPv6 kann der MAC oder eine andere lokale ('Hardware'-) ID zum Erstellen der IP verwendet werden.
Luciano

Die Antwort ist Community Wiki. Sie können es wahrscheinlich so bearbeiten, dass es diese zusätzlichen Informationen enthält, wenn Sie der Meinung sind, dass dies die Beantwortung der Frage des OP erleichtert.
Bill Michell

Das braucht ein TL; DR.
AJMansfield

113

Wofür werden MAC-Adressen verwendet?

MAC-Adressen sind die Grundlagen auf niedriger Ebene, die Ihr lokales Ethernet-basiertes Netzwerk funktionsfähig machen. Lokal bedeutet, dass die Netzwerkgeräte entweder direkt über ein Kabel oder über WLAN oder über einen Netzwerk-Hub oder einen Netzwerk-Switch verbunden sind.

Netzwerkkarten haben jeweils eine eindeutige MAC-Adresse. Pakete, die über das Ethernet gesendet werden, stammen immer von einer MAC-Adresse und werden an eine MAC-Adresse gesendet. Wenn ein Netzwerkadapter ein Paket empfängt, vergleicht er die Ziel-MAC-Adresse des Pakets mit der MAC-Adresse des Adapters. Stimmen die Adressen überein, wird das Paket verarbeitet, andernfalls wird es verworfen.

Es gibt spezielle MAC-Adressen, eine davon ist beispielsweise ff: ff: ff: ff: ff: ff, die Broadcast-Adresse und Adressen aller Netzwerkadapter im Netzwerk.

Wie arbeiten IP-Adressen und MAC-Adressen zusammen?

IP ist ein Protokoll, das auf einer Schicht über Ethernet verwendet wird. Ein anderes Protokoll wäre beispielsweise IPX. IP ermöglicht die Verbindung verschiedener lokaler Netzwerke und damit die Bildung eines Unternehmensnetzwerks oder des globalen Internets.

Wenn Ihr Computer ein Paket an eine IP-Adresse xxxx senden möchte, wird zunächst überprüft, ob sich die Zieladresse im selben IP-Netzwerk befindet wie der Computer. Befindet sich xxxx im selben Netzwerk, kann die Ziel-IP direkt erreicht werden, ansonsten muss das Paket an den konfigurierten Router gesendet werden.

Bisher scheint es schlimmer geworden zu sein, denn jetzt haben wir zwei IP-Adressen: Eine ist die Zieladresse des ursprünglichen IP-Pakets, die andere ist die IP des Geräts, an das wir das Paket senden sollen (der nächste Sprung, entweder der letzte) Ziel oder Router).

Da Ethernet MAC-Adressen verwendet, muss der Absender die MAC-Adresse des nächsten Hops abrufen. Dafür gibt es ein spezielles Protokoll ARP (Address Resolution Protocol). Nachdem der Absender die MAC-Adresse des nächsten Hops abgerufen hat, schreibt er diese Ziel-MAC-Adresse in das Paket und sendet das Paket.

Wie funktioniert ARP?

ARP selbst ist ein Protokoll über Ethernet, wie IP oder IPX. Wenn ein Gerät die MAC-Adresse für eine bestimmte IP-Adresse wissen möchte, sendet es ein Paket an die Broadcast-MAC-Adresse und fragt: "Wer hat die IP-Adresse JJJJ?" Alle Geräte empfangen dieses Paket, aber nur das Gerät mit der IP-Adresse yyyy antwortet mit einem Paket "Ich bin es". Das anfragende Gerät erhält die Antwort und weiß nun, dass die Quell-MAC-Adresse des ARP-Pakets die richtige MAC-Adresse ist. Natürlich wird das Ergebnis zwischengespeichert, sodass das Gerät die MAC-Adresse nicht jedes Mal auflösen muss.

Routing

Fast hätte ich vergessen zu erwähnen: Es gibt kein Routing basierend auf MAC-Adressen. Low-Level-Ethernet- und MAC-Adressen können nur jedes Gerät im selben Netzwerk (verkabelt oder drahtlos) erreichen. Wenn Sie zwei Netzwerke mit einem Router dazwischen haben, kann ein Gerät in Netzwerk A kein Paket an die MAC-Adresse eines Geräts in Netzwerk B senden. Kein Gerät in Netzwerk A hat die MAC-Adresse des Geräts in Netzwerk B, also a Paket an diese MAC-Adresse wird von allen Geräten im Netzwerk A (auch vom Router) verworfen.

Das Routing erfolgt auf IP-Ebene. Einfach gesehen macht der Router nur das, was ich oben im Abschnitt "Wie arbeiten IP-Adressen und MAC-Adressen zusammen?" Beschrieben habe. Der Router empfängt Pakete für seine eigene MAC-Adresse, jedoch für eine andere IP-Adresse. Er prüft dann, ob er die Ziel-IP-Adresse direkt erreichen kann. In diesem Fall sendet er das Paket an das Ziel. Andernfalls ist auf dem Router selbst auch ein Upstream-Router konfiguriert, der das Paket an diesen Router sendet.

Natürlich können Sie mehrere Router konfigurieren. Ihr Heimrouter hat nur einen Upstream-Router konfiguriert, aber im Internet-Backbone haben die großen Router große Routingtabellen, sodass sie die besten Möglichkeiten für alle Pakete kennen.

Andere Anwendungsfälle für MAC-Adressen

  1. Netzwerk-Switches speichern eine Liste von MAC-Adressen, die an jedem Port angezeigt werden, und leiten Pakete nur an die Ports weiter, die das Paket sehen müssen.

  2. Drahtlose Zugangspunkte verwenden häufig MAC-Adressen für die Zugangskontrolle. Sie erlauben nur den Zugriff für bekannte Geräte (MAC-Adresse ist eindeutig und identifiziert Geräte) mit der richtigen Passphrase.

  3. DHCP-Server verwenden die MAC-Adresse, um Geräte zu identifizieren und einigen Geräten feste IP-Adressen zuzuweisen.


16
+1 für die tatsächliche Beantwortung der Frage auf eine Weise, die Personen, die die Antwort noch nicht kennen, verstehen können.
flauschiger

Ich kann nicht anders, als den Drang zu verspüren, eine fantastische Infografik / ein fantastisches Diagramm zu erstellen. Die Art und Weise, wie MAC / IP zusammenarbeitet, ist ziemlich interessant!
NRGdallas

1
nette antwort nur ein detail:
mac-adressen

Bemerkenswert über Wi-Fi MACs: Während sie im Allgemeinen einzigartig und können verwendet werden , um Geräte zu identifizieren, sind sie einfach im klaren über die Luft zu fälschen und gesendet. Wenn für die Verbindung keine andere Verschlüsselung / Authentifizierung verwendet wird oder wenn die anderen Verschlüsselungs- / Authentifizierungsmechanismen schwach sind (z. B. WEP), ist es für einen Angreifer sehr trivial, sich als autorisiertes Gerät auszugeben und dem Netzwerk beizutreten.
Iszi

1
@Rick Du hast recht, die Ziel-IP für eine Verbindung ändert sich nicht. Aber im zitierten Absatz habe ich über das direkte Ziel des Pakets gesprochen - das könnte der Router sein, und der Router könnte sich während der Verbindung ändern. Bezüglich Ihres zweiten Kommentars habe ich den Text in "Quell-MAC-Adresse des ARP-Pakets" geändert. Ich hoffe das ist klarer.
Werner Henze

47

Die MAC-Adresse (Media Access Control-Adresse) ist im Allgemeinen die Kennung von Geräten in einem Netzwerk. Daher hat jede Netzwerkkarte (Netzwerkschnittstellen-Controller in einem Router, PC, Netzwerkdrucker, Server usw.) MAC-Adressen. Einige Server verfügen über mehr als eine Netzwerkkarte und haben daher mehrere MAC-Adressen. Die MAC-Adresse ist 6 Bytes lang (6 Bytes). Links ist das höchstwertige Byte und rechts das niedrigstwertige Byte. Wie Sie in der folgenden Abbildung sehen können, sind die ersten 3 Bytes der organisatorisch eindeutige Bezeichner . Dies gibt den Hersteller an, der dieses Gerät hergestellt hat.

Hier ist eine Liste der organisatorisch eindeutigen Kennungen : Standards.ieee.org

Hier ist eine Alternative zu den oben genannten: MAC-Vendor-Lookup

Einige Beispiele bekannter Hersteller:

  • 00-05-5D (D-Link Systems Inc.)
  • 00-09-5B (Netgear Inc.)
  • 00-E0-4C (Realtek Semiconductor Corp.)
  • 00-E0-4F (Cisco Systems Inc.)
  • 00-E0-64 (Samsung Electronics)

Die letzten 3 Bytes (3 Oktette) werden vom Hersteller zufällig vergeben.

Wie pjc50 richtig angegeben hat, hilft die MAC-Adresse in einem Ethernet-Netzwerk den Switches bei der Entscheidung, welches Paket wohin gesendet werden soll. Es gibt auch eine Broadcast-MAC-Adresse. ff: ff: ff: ff: ff: ff wird für die Broadcast-MAC-Adresse verwendet. Beachten Sie, dass die MAC-Adresse geändert werden kann. Seien Sie also vorsichtig, wenn Sie sie als eindeutige Gerätekennung verwenden! Die MAC-Adresse wird auch mit dem ARP-Protokoll (Address Resolution Protocol) verwendet. So funktioniert es, PC A sendet eine ARP-Anfrage an PC B mit seiner eigenen IP-Adresse, MAC-Adresse, der IP-Adresse des Empfängers und der oben genannten Broadcast-Adresse (ff: ff: ff: ff: ff.) : ff). Danach prüft PC B, ob das Paket an ihn gesendet wurde oder nicht. Wenn ja, sendet PC B seine eigene MAC-Adresse, IP-Adresse, die MAC-Adresse des Empfängers und die IP-Adresse des Empfängers zurück. Die anderen Geräte verwerfen das Paket.

In der Regel speichern PC A und B die erfolgreiche Verbindung im sogenannten ARP-Cache. Die Art und Weise, wie die PCs die Verbindung speichern, ist von Gerät zu Gerät unterschiedlich. Wenn Sie die IP-Adresse nicht kennen, können Sie die IP-Adresse mit dem Reverse Address Resolution Protocol (RARP) abrufen. Mit RARP kontaktiert das Gerät einen zentralen Client und fragt ihn nach der IP-Adresse. Diese Methode wird heutzutage jedoch kaum noch angewendet.

Die folgenden Technologien verwenden das MAC-48-Bezeichnerformat:

  • Ethernet
  • 802.11-Funknetzwerke
  • Bluetooth
  • IEEE 802.5-Token-Ring
  • die meisten anderen IEEE 802-Netzwerke
  • FDDI
  • ATM (Switched Virtual Connections, nur als Teil einer NSAP-Adresse) Fibre Channel und Serial Attached SCSI (als Teil eines weltweiten Namens)

4
Genauer als „jedes Gerät (...) MAC-Adressen hat.“, Jede NIC hat eine MAC - Adresse . (Die Möglichkeit, eine benutzerdefinierte MAC-Adresse festzulegen, wird nicht berücksichtigt.) Nicht alle Drucker verfügen über integrierte Netzwerkkarten, und viele Server verfügen über mehr als eine Netzwerkkarte und somit über mehr als eine MAC-Adresse.
ein CVn

2
Nehmen wir an, PC-1 sendet ein Paket an PC-2. Jetzt liest der Switch nur die MAC-Adresse von PC-1 und speichert sie in einer Tabelle. Weitere Informationen zur Funktionsweise finden Sie hier: Funktionsweise von LAN-Switches :)
Meintjes

3
Ein weiterer Punkt ist, dass die MAC-Adresse festlegt, was verworfen und was zur Bearbeitung an den Prozessor gesendet werden soll. Ein Ethernet-Frame, der auf der Leitung angetroffen wird, hat die Ziel-MAC-Adresse XOR-verknüpft mit der NIC-MAC-Adresse. Wenn das Ergebnis alle 0en ist, handelt es sich um einen Frame, der für diese NIC bestimmt ist.
bbayles

7
-1: Die Frage lautete, wie MAC-Adressen verwendet werden und nicht, was eine MAC-Adresse ist. Der einzige Teil Ihrer Antwort, der sich mit der Frage befasst, ist die Aufzählungsliste am Ende, und sie geht nicht sehr ins Detail.
Kevin

4
Das Bild stammt aus Wikipedia: en.wikipedia.org/wiki/File:MAC-48_Address.svg . Bilder, die unter Creative Commons lizenziert sind, müssen bei Verwendung ihren Autoren zugeordnet werden.
Étienne

24

Sie werden für die Paketübertragung verwendet: In einem Ethernet-Netzwerk gibt es eine Reihe von Geräten, und die MAC-Adresse gibt an, welches Gerät das Paket empfangen soll. Ethernet-Switches verwenden diese Option, um auszuwählen, über welchen Port ein empfangenes Paket gesendet werden soll.


5
Es kann interessant sein, festzustellen, dass Ethernet ursprünglich ein Busmedium war, bei dem alle Computer physisch dasselbe Medium gemeinsam nutzten (dies gilt immer noch für drahtlose Netzwerke). Logischerweise funktioniert das so.
LawrenceC

und immer noch wahr für Netzwerke, die noch Hubs verwenden :)
Doon

Switche sind von nun an nur eine Möglichkeit (mit RJ-45-LANs wirklich weit verbreitet), wir können und haben IP-Netzwerke ohne sie (mit Hubs oder 802.11)
kriss

7

Vergessen Sie die Hierarchie in diesem Fall, es ist kein sehr wichtiges Thema.

MAC-Adresse sind Adressen für Schicht 2 (Verbindungsschicht) in den ISO / OSI- oder TCP / IP-Modellen. IP-Adressen stammen aus Schicht 3 (Netzwerkschicht) in denselben Modellen.

In einem Layer-2-Netzwerk, beispielsweise einem gemeinsamen Ethernet-Netzwerk, gibt es eine Kollisionsdomäne, in der alle angeschlossenen Geräte alle Frames (Layer-2-Einheitendaten) von jedem Endpunkt empfangen können. Aber niemand außerhalb des Netzwerks kann diese Frames empfangen. MAC-Adressen sind Adressen in diesen Domänen.

Pakete sind die Einheitendaten der Schicht 3, typischerweise IP-Pakete. Sie durchlaufen eine oder mehrere Kollisionsdomänen. IP-Adressen sind die Adressen in dieser Domäne.

Switches sind Layer-2-Geräte und Forward-Frames, die MAC-Adressentabellen verwenden. Router sind Layer-3-Geräte und leiten Pakete mithilfe von IP-Adresstabellen weiter.


6

Ethernet setzt voraus, dass der andere Computer (der andere MAC), mit dem es kommunizieren möchte, direkt über seinen Netzwerkadapter erreichbar ist. IP nicht. IP geht davon aus, dass es jede andere IP auf der ganzen Welt erreichen kann und dass ein Router es trotz NAT dorthin befördert, wenn es im aktuellen Subnetz nicht erreichbar ist. Der Begriff der Gateways existiert in Layer 2 oder Ethernet nicht.

Wenn Sie mehrere Computer an einen Switch angeschlossen haben und nie über einen Router Datenverkehr mit anderen Netzwerken / dem Internet tauschen müssen, muss IP nicht aktiv sein. Natürlich müsste eine Anwendung ein eigenes Protokoll oberhalb von Schicht 2 implementieren oder bereitstellen, da praktisch alle Betriebssysteme und Anwendungen davon ausgehen, dass Sie immer TCP / IP verwenden möchten.

Denken Sie immer daran, dass "Internet" in IP "Internetworking" bedeutet, was bedeutet, dass es mehr um den Datenverkehr zwischen Netzwerken als in einem Netzwerk geht, obwohl es offensichtlich auch dafür verwendet werden kann (und wird).


Der erste Absatz ist die perfekte Antwort! Erleuchtend!
Milind R

6

Die MAC-Adresse wird für die physische Übertragung verwendet. Ein Ethernet-Adapter weiß nichts über IP. Der Ethernet-Adapter verwendet also die MAC-Adresse, um den Empfänger des Datenpakets zu adressieren.

Wenn der Ethernet-Adapter etwas über IP weiß, müssen wir unsere gesamte Firmware aktualisieren, um auf ein neues Protokoll (wie IPv4 auf IPV6) umzustellen.

Auch die MAC-Adresse enthält einige Informationen über den Hersteller.


3
Router verwenden die MAC-Adresse nicht, um etwas zu routen. Sie verwenden IP-Adressen. Hubs kopieren den Datenverkehr unverändert von ihren Ports. Dies wird jedoch als Bridging bezeichnet, da der Datenverkehr nicht über ein anderes Netzwerk, sondern über dasselbe Netzwerk übertragen wird.
LawrenceC

5

Es wird verwendet, wenn das ARP (Address Resolution Protocol) für IPv4 oder das NDP (Neighbor Discovery Protocol) für IPv6 die IP-Adressen in MAC-Adressen übersetzt, um zu bestimmen, an welchen eindeutigen Host die Frames gesendet werden sollen.


Dies ist ziemlich nahe, deckt jedoch nicht die gesamte Verwendung ab. So hängt ein MAC mit TCP / IP zusammen, aber ein MAC wird weit mehr als nur dafür verwendet. Dies ist die erste Antwort, für die ich keine -1 gebe (von unten nach oben).
Mark Henderson

@ Mark Henderson Danke für die Kritik. Nun, ich habe nur versucht, die Frage zu beantworten, How MAC addresses were used in packet transferund dann habe ich angenommen, dass es sich um eine Ethernet- Frage handelt . Und ja, es ist eine einfache Antwort, aber ich antworte auf einer Ebene, die meiner eigenen Ebene entspricht :)
Jesper Jensen

3

Um die Antworten anderer zu vervollständigen, möchte ich hinzufügen, dass die MAC-Adresse für Router noch wichtiger ist als für Switches. Was ich mit kritischer meine, ist, dass Switches nicht wirklich notwendig sind, damit ein IP-Netzwerk existiert. Sie blicken 20 Jahre zurück (vor RJ-45). Lokale IP-Netzwerke funktionierten einwandfrei ohne Switches. Nicht geroutete Ethernet-Netzwerke verbanden einfach Geräte über dasselbe Kabel (sehen Sie sich zum Beispiel die X base-T-Ethernet-Technologie an).

Auf der anderen Seite wurden IP-Netzwerke erfunden, die das Routing unterstützen und sich auf MAC- und IP-Adressierungsschemata stützen.

Das Weiterleiten von Paketen in IP-Netzwerken bedeutet, dass, wenn auf den Zielcomputer nicht direkt zugegriffen werden kann, dieser zuerst an einen anderen Computer (das Gateway) gesendet wird, der sich näher am endgültigen IP-Ziel befindet.

In Bezug auf Netzwerkpaket-Header bedeutet dies, dass ein an ein Gateway gesendetes Paket im Ethernet-Level-Header die MAC-Adresse des Gateways als Ziel hat, wobei der IP-Level-Header unverändert bleibt.

Sie sollten auch beachten, dass MAC-Adressen heutzutage normalerweise entweder MAC-48 (physikalische Geräteadresse) oder EUI-48 (logische Geräteadresse) oder sogar die 8-Byte-EUI-64-Adressen bedeuten, die in größeren Netzwerken verwendet werden. In der Vergangenheit wurde MAC von Xerox für die Ethernet-Technologie erfunden und später für andere Netzwerktechnologien (802.11, Bluetooth, FibreChannel, BlueTooth) wiederverwendet, die ein Gerät identifizieren müssen.

Wie gesagt, Sie können anstelle von Ethernet eine andere Schicht 2 verwenden, die meisten verwenden jedoch eine MAC-Adresse als Netzwerkkennung, und das zugrunde liegende MAC / IP-Korrespondenzschema gilt, und Sie können weiterhin ARP verwenden. Soweit ich weiß, basieren alle IP-Stapel auf der Entsprechungstabelle zwischen MAC-Adressen und IP-Adressen.

Einige andere Arten von Geräteknoten-IDs gibt es für Nicht-IP-Stacks. Beispielsweise stützt sich X.25 nicht auf MAC-Adressen, sondern auf virtuelle Kanäle, die pro Verbindung eingerichtet werden, oder ATM-Geräte werden in ATM-Netzwerken mithilfe von SNPAs identifiziert. Aber weder X.25 noch ATM sind IP-Stacks (und selbst ATM verwendet das MAC-Adressenformat als Teil seines SNA, was in etwa einer IP-Adresse für ATM entspricht).


Router interessieren sich nicht für MAC-Adressen. Sie kümmern sich um die Subnetzzuweisung zu jeder ihrer mindestens zwei Netzwerkkarten, aber nicht wirklich um die MAC-Adressen. Sie leiten den Datenverkehr von einer IP zu einer anderen weiter (dh kopieren ihn), nicht von einer IP zu einem MAC oder dergleichen.
LawrenceC

4
@ultrasawblade, deine Aussage ist absurd . Wenn ein Router an ein Ethernet-Netzwerk angeschlossen ist, muss er über das Ethernet-Protokoll kommunizieren. IP-Pakete werden im Ethernet-Frame gekapselt. Daher ist es unbedingt erforderlich, die Mac-Adressen aller ** direkt Ethernet-Hosts ** -Systeme zu kennen. Ein Layer-3-Gerät kommuniziert nicht einfach auf magische Weise über ein Layer-3-Protokoll, sondern muss das Layer-3-Protokoll in einem Layer-2-Protokoll kapseln, das dann über das Layer-1-Medium übertragen wird.
Zoredache

3
Ich bin mit Ihrem ersten Satz nicht einverstanden - sie sind für Router nicht "kritischer" als für Switches - sie sind im gesamten Ethernet-Netzwerk alle gleich wichtig.
Mark Henderson

1
Sie könnten die darunter liegende Schicht 2 durch etwas völlig anderes ersetzen (obwohl ich nicht weiß, was) und IP wird immer noch gleich funktionieren. Dem IP-Protokoll (Layer 3) ist es egal, ob die einzelnen Hosts unter MAC oder einem anderen Schema angesprochen werden. Natürlich muss die Zuordnung von IP zu MAC beibehalten werden - es ist jedoch schwierig zu erkennen, ob ARP wirklich zu Schicht 3 oder Schicht 2 "gehört". Der Punkt ist, dass das Schicht-2-Protokoll nicht Ethernet sein muss und es IP egal ist Ich muss wissen, was das Layer 2-Protokoll ist.
LawrenceC

2
@ Mark Henderson: Als ich alt bin, erinnere ich mich an eine Zeit, in der es keine Schalter gab. Sie sind nicht wirklich ein kritisches Gerät, das IP-Netzwerke ohne Switches verwenden können. Switches verwendeten lediglich ein bereits vorhandenes Datennetzwerk-Layout. Wenn wir sie derzeit allgegenwärtig haben, ist dies eine Folge der RJ-Punkt-zu-Punkt-Technologie, die alte Busse ersetzt. Mit anderen Worten: MAC-Adressen wurden nicht erfunden, damit die Switches funktionieren. Andererseits wurden IP-Netzwerke für Routingzwecke erfunden, weshalb die Beziehung zwischen MAC und IP von entscheidender Bedeutung ist.
kriss

2

Denken Sie an die Tage vor dem Wechsel (Hubs) zurück.

Wenn Menschen Computer sind, ist die MAC-Adresse ihr Name.

Stellen Sie sich vor, viele Leute (die Computer) führen dasselbe Telefongespräch. Alle reden gleichzeitig.

SIE (ein Computer) hören ALLES von diesem Geschwätz, aber Sie wissen nicht, was Sie hören sollen, BIS jemand Ihren Namen (Ihre MAC-Adresse) am Anfang eines Satzes (eines Pakets) sagt.

"FRED, THERE IS ICE CREAM!"

Natürlich hören Sie sich auch Sätze an, die an die Sendeadresse gesendet wurden . Betrachten Sie das einfach als jemanden, der schreit,

"EVERYONE, THERE IS ICE CREAM!"

Je mehr Personen (Computer) an der Telefonkonferenz teilnehmen, desto mehr müssen Sie herausfiltern. Dank fortschrittlicher Technologie und Switches konnten wir direkt mit einer Person (Computer / MAC) sprechen, sodass diese nicht so hart arbeiten musste, um all dieses Rauschen herauszufiltern (und mehr Bandbreite freizugeben).

IP ist in der grundlegenden Analogie sehr ähnlich, verfügt jedoch zusätzlich zur MAC-Adressierung über weitere Funktionen und Ebenen. Layer 2 und 3 im OSI-Modell .


Sie müssen nicht an vorgewählte Tage zurückdenken. MAC - Adressen sind am Leben und gesund und in jedem einzelnen Paket verwendet , die Ihren Ethernet - Adapter verläßt heute , gerade jetzt.
Mark Henderson

Sehr richtig. Aber es hilft bei der Analogie. Und die Netzwerkkarten verhalten sich immer noch genauso.
Randy James

2

Die MAC-Adresse ist erforderlich, da mehrere Adressen an den "Bus" (das Ethernet-Netzwerk) angeschlossen sind. Ein Absender muss in der Lage sein, den Empfänger sowie sich selbst gegenüber dem Empfänger zu identifizieren.

Alle Hardwarebusse müssen adressiert werden, da sich mehrere Sender und Empfänger die gleichen Leitungen teilen und Nachrichten an bestimmte Empfänger gehen und auch die Absender identifizieren müssen.

I2C, PCI, Ethernet, Sie nennen es.

Wir haben mehrere Adressen in der Vernetzung (IP-Adresse und Hardwareadresse), da eine Adresse auf Hardwareebene nur lokal für ein bestimmtes physisches Netzwerk ist. Während ein Datagramm von Netzwerk zu Netzwerk wandert, behält es in der Regel seine Adresse auf Netzwerkebene bei, ändert jedoch die Hardware-Adressen auf diesem Weg mehrmals. In einigen Netzwerken hat es möglicherweise überhaupt keine Hardwareadresse und in anderen möglicherweise eine Hardwareadresse, bei der es sich nicht um einen Ethernet-MAC handelt. (Netzwerkadressen können natürlich von einem NAT-Gateway umgeschrieben werden, aber die Hardwareadressen werden jedes Mal, wenn ein Paket einen Router passiert, entfernt und durch andere Adressen ersetzt.)


1

Früher waren Netzwerke geteilte Busse. Jedes vernetzte Gerät, das an dieselbe Leitung oder an einen Hub angeschlossen ist, bedeutet, dass jedes von Ihnen gesendete Paket von jedem Gerät im Netzwerk empfangen wurde.

Die Netzwerksoftware war damals einfacher. Jedes Gerät hatte eine MAC-Adresse, die garantiert eindeutig war. Es musste nichts anderes sein - es musste lediglich sichergestellt werden, dass keine zwei Geräte im selben Netzwerk dieselbe Adresse hatten.

Wenn Ihr Gerät mit einem anderen Gerät kommunizieren wollte, sendete es ein Paket mit der MAC-Adresse des Empfängers und der Empfänger nahm es aus dem Netzwerk. Alle anderen Geräte würden es ignorieren - es wurde nicht an ihre MAC-Adresse adressiert.

Im Laufe der Zeit wurden zu viele Geräte an das Netzwerk angeschlossen, und sie konnten mit dem Datenverkehr nicht Schritt halten. Daher trennten sie die Netzwerke und verbanden zwei Netzwerke mit Switches. Diese Switches hatten riesige Tabellen, in denen angegeben war, welche MAC-Adressen sich in den einzelnen Netzwerken befanden. Wenn ein Paket in einem Netzwerk an eine MAC-Adresse im anderen Netzwerk adressiert ist, wird die Nachricht in das andere Netzwerk kopiert. Sie würden jedoch nicht alle Nachrichten kopieren, sondern nur diejenigen, die in das andere Netzwerk gelangen mussten.

Dies reduzierte die Überlastung und ermöglichte es, mehr Geräte zu vernetzen und den gesamten Datenverkehr zu bewältigen. Dies ist ein paketvermitteltes Netzwerk .

Es hat jedoch nicht alle Probleme gelöst und einen großen Nachteil erlitten - als die Schaltertabellen größer wurden, wurden die Netzwerke langsamer. Wenn Sie 5.000 Computer mit 50 verschiedenen Netzwerken verbunden haben, die alle mit Switches verbunden sind, musste jeder Switch alle 5.000 MAC-Adressen lernen und darauf basierende Pakete weiterleiten.

Das war keine große Sache, bis Leute von verschiedenen Institutionen, wie Universitäten, ihre Netzwerke miteinander verbinden wollten und die benötigten Tabellen enorm gewesen wären. Ein paar hunderttausend MAC-Adressen im Auge zu behalten, scheint heute keine große Sache zu sein, aber in den 1970er Jahren, als dies passierte, waren die Switches selbst Computer mit begrenztem Speicher und begrenzter Geschwindigkeit, und einige verfolgten und wechselten Pakete schnell Hundert war ein Problem.

Die Lösung ging an ein IP-Netzwerk und verwendete Router. Dies basiert auf dem MAC-Adress-basierten Switched-Packet-Netzwerk. Anstelle von Rohdaten enthalten die Pakete jetzt ein IP-Paket - ein Paket innerhalb eines Pakets.

Jetzt werden größere Netzwerke mit Routern verbunden. Diese warten, bis sie ein Paket mit ihrer MAC-Adresse sehen, nehmen das IP-Paket heraus und überprüfen die IP-Adresse. Anschließend verpacken sie das IP-Paket erneut in ein anderes Paket mit einem neuen MAC-Adressempfänger und senden es in einem neuen Netzwerk. Diese MAC-Adresse bezieht sich wahrscheinlich auf einen anderen Router im neuen Netzwerk, es könnte sich aber auch um das Gerät mit der IP-Adresse handeln.

In heutigen Netzwerken sieht man selten Hubs und Busse (außer in drahtlosen Netzwerken, in denen das Medium von Natur aus gemeinsam genutzt wird), und stattdessen verbindet sich mein Computer direkt mit einem Switch, den er mit einem Router verbindet.

Mein Computer verfügt über eine Vielzahl von Algorithmen und Protokollen, sodass er weiß, wie das Netzwerk eingerichtet ist.

Wenn ich ein IP-Paket an einen Computer in meinem lokalen Netzwerk sende, wird es von meinem Computer in einem Paket mit der richtigen MAC-Adresse abgelegt. Die Switches stellen es lokal auf das richtige Netzwerk um, und das Gerät, für das es bestimmt ist, empfängt es, weil es die richtige MAC-Adresse hat. Sie werden das IP-Paket herausnehmen und überprüfen, ob die IP-Adresse auch dafür vorgesehen ist, und entsprechend vorgehen.

Wenn ich ein IP-Paket versende, das für einen Computer im Internet bestimmt ist, weiß mein Computer, dass er es an den Router senden muss, sodass er es in ein Paket mit der MAC-Adresse des Routers einfügt. Es wird wieder lokal in meinem Netzwerk geschaltet, bis es auf das Netzwerk trifft, in dem sich der Router befindet. Dann nimmt der Router es entgegen, holt das IP-Paket heraus, untersucht das IP-Paket und sendet es basierend auf seiner Kenntnis des Internets an einen anderen Router ein anderes Netzwerk, das es in ein Paket mit der MAC-Adresse für den vorgesehenen Router oder Zielcomputer einwickelt.

Es gibt viele kleine Details, die ich vertuscht habe, und einige wirklich interessante Algorithmen und Protokolle, mit denen alles funktioniert, aber das ist die grundlegende Geschichte dessen, was die MAC-Adresse auch heute noch für uns tut.


1
Sie haben gut angefangen, aber Sie haben es in der Mitte verloren, in der Sie anfangen, über miteinander verbundene Netzwerke zu sprechen. Switches waren erst in den 90er Jahren üblich, aber das Routing existierte 20 Jahre zuvor.
Mark Henderson

-1

Der Hauptunterschied besteht darin, dass die MAC-Adresse vom Hersteller zur Herstellungszeit zugewiesen wird, während die IP-Adresse zur Verbindungszeit zugewiesen wird.

MAC ist erforderlich, da damit ein Gerät identifiziert werden kann, bevor eine Verbindung zum Netzwerk hergestellt wird. Da es jedoch statisch zugewiesen wird, ist es so gut wie zufällig verteilt, sodass es nicht für effizientes Routing über mehr als ein einzelnes Netzwerk geeignet ist (dazu müsste jedes Gerät auf dem Planeten eine große Routingtabelle für alle anderen Geräte auf dem Planeten haben ). Daher sind IP-Adressen erforderlich, da sie zum Zeitpunkt der Verbindung zugewiesen werden und die Art und Weise, in der sie zugewiesen werden, ein effizienteres Routing über große Entfernungen ermöglicht (bei IP müssen die meisten Geräte nur die benachbarten Netzwerke kennen).

Wenn es nur eine IP-Adresse gibt, können Geräte, denen keine IP-Adresse zugewiesen wurde, nicht erkennen, welche Nachricht für sie bestimmt ist. Wie können Sie feststellen, dass dieses DHCP für Sie bestimmt ist und nicht für jemanden, der gleichzeitig eine Adresszuweisung anfordert?

Natürlich werden MAC auch für andere Teile des Paketversands verwendet, aber die meisten dieser Verwendungen sind eher zufällig und können (zumindest theoretisch) durch dynamisch zugewiesene Nummern (z. B. IP-Adressen) ersetzt werden.


+1, warum wir nicht einfach weiter MAC-Adressen verwendet haben.
deed02392

3
Der erste Absatz ist technisch korrekt, aber das ist nicht der Hauptunterschied. Der Hauptunterschied besteht darin, dass ein MAC zu Ethernet und eine IP zu TCP / IP gehört. Sie können TCP / IP über mehrere Layer 2-Protokolle (z. B. ATM) ausführen, und es gibt mehr als nur TCP / IP, das über Etherhet ausgeführt wird. Es gibt kein "Vor dem Herstellen einer Verbindung zum Netzwerk", sondern "Vor dem Abrufen einer IP-Adresse von DHCP". Aber der MAC wird auch danach verwendet - da er sich im OSI-Modell auf einer anderen Ebene befindet. Der letzte Absatz ist völlig falsch - es gibt keinen Ersatz für eine MAC-Adresse im Netzwerk.
Mark Henderson

@ MarkHenderson: Mein Punkt ist, dass MAC, der zu Ethernet und IP zu TCP / IP gehört, so ziemlich ein historischer Unfall ist; Wenn wir den gesamten Internet-Stack von Grund auf neu gestalten (und OSI und Kompatibilität mit anderen Netzwerken ignorieren), könnten theoretisch die meisten Verwendungen von werkseitig zugewiesenen Nummern (z. B. MAC) durch dynamisch zugewiesene Nummern (z. B. IP) ersetzt werden, außer dass es eine Anzahl von Paketen gibt, die gesendet / empfangen werden müssen, bevor eine dynamisch zugewiesene Nummer erfasst werden kann, weshalb eine werkseitig zugewiesene global eindeutige Kennung erforderlich ist.
Lie Ryan

@ MarkHenderson: IMO: Wenn wir sagen, dass wir MAC und IP brauchen, weil MAC Schicht 2 und IP Schicht 3 ist, dann ist das genauso, wie wenn wir sagen: "Wir brauchen es, weil wir das Internet so entworfen haben", dann geht das daneben und liefert keine nützlichen Informationen was auch immer. Was ich hier beantworte, ist, warum aufgrund der Art des Problems sowohl werkseitig zugewiesene als auch dynamisch zugewiesene Kennungen erforderlich sind und was von einem Internet-Stack ohne beides (Verlust der Routing-Effizienz für keine dynamisch zugewiesene Kennung und Schwierigkeit von eine eindeutige Adressierung eines Geräts vor der dynamischen ID-Zuweisung für keine werkseitig zugewiesene ID).
Lie Ryan

@LieRyan, Eigentlich können wir die MAC- Adresse unseres PCs ändern .......
Pacerier
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.