Warum werden Ethernet / MAC-Adressen benötigt?

16

Ich verstehe nicht, warum Ethernet-MAC-Adressen benötigt werden. Können nicht alle Computer einfach mit dem einheitlichen Netzwerk verbunden werden und IP-Adressen für die Kommunikation verwenden?

Beispielsweise gibt es im Ethernet folgenden Mechanismus:

  1. Computer mit IP 192.168.1.1( X.1) möchte ein Paket an 192.168.1.2( X.2) senden
  2. X.1 verwendet ARP, um den MAC von zu erhalten X.2
  3. Dazu muss X.1ein Paket an alle Computer im Netzwerk gesendet werden. nur einer wird antworten
  4. X.1 bekommt einen MAC und sendet das Paket

Wäre es nicht einfacher, nur einen Schritt zu tun:

  1. X.1sendet ein Paket an alle Computer im Netzwerk; nur X.2wird es verarbeiten, andere werden es ignorieren

Die ergänzende Frage wäre: Warum werden IP-Adressen benötigt, wenn alle Geräte eindeutige MAC-Adressen haben?

user2449761
quelle
Woher wissen Computer, dass sie die Daten ignorieren sollen? Ohne MAC-Adresse können sie nicht sagen, welche im Netzwerk es verarbeiten soll ...
Bakuriu
1
Sie könnten die IP-Adresse anstelle der MAC-Adresse verwenden
user2449761
ähm ... Computer <-> IP-Adresse ist kein injektives Mapping. Ich werde meine Frage umformulieren: Woher wissen Computer, dass sie die Daten ignorieren sollen? Ohne MAC-Adresse können sie nicht sagen, welche im Netzwerk es verarbeiten soll ... da mehr als eine von ihnen dieselbe IP haben könnte ?
Bakuriu
4
Sie sollten nicht dieselbe IP im selben Subnetz haben ... dies ist ein Konflikt
user2449761
1
Die ergänzende Frage lautet serverfault.com/q/410626/102768
OrangeDog

Antworten:

31

Die verschiedenen Netzwerkschichten dienen dazu, sie gegen verschiedene Technologien auszutauschen.

Die beiden Schichten, von denen Sie hier sprechen, sind die Schichten 2 und 3. Schicht 2 in diesem Szenario ist Ethernet - aus denen MAC-Adressen entstehen, und Schicht 3 ist IP.

Ethernet funktioniert nur auf lokaler Ebene zwischen Netzwerkgeräten, die mit einem Broadcast-Netzwerk-Datenlink verbunden sind, wohingegen IP ein routbares Protokoll ist und Geräte in Remotenetzwerken ansprechen kann.

Die Anforderungen von jedem von diesen sind unterschiedlich. Ethernet gibt eine Familie von Technologien an, mit denen Pakete zwischen Netzwerkgeräten gesendet und empfangen werden können, während IP ein Protokoll definiert, mit dem Datenpakete mehrere Netzwerke durchqueren können.

Keiner ist auf den anderen angewiesen, was dem Networking seine Flexibilität verleiht. Beispielsweise können Sie eine Verbindung zu Ihrem Internetdienst über IP over Ethernet herstellen, in Ihrem internen Netzwerk können Sie jedoch auch IP over ... -Papier verwenden. Wo jemand den Inhalt eines jeden Pakets aufschreibt und es physisch zu einem anderen Computer weiterleitet und eingibt. Dies wäre natürlich nicht besonders schnell, aber es wäre immer noch IP, wenn die Person, die die Papierstücke herumträgt, die IP-Routing-Regeln einhält.

In der realen Welt gibt es verschiedene Datenverbindungsprotokolle, die Sie bereits verwenden (obwohl die Adressierungsschemata identisch sind): 802.3 - Ethernet und 802.11 - WLAN.

IP ist es egal, was die darunterliegende Schicht ist.

Ebenso kann IP für verschiedene Protokolle der Netzwerkschicht ausgetauscht werden (vorausgesetzt, dies geschieht für alle Teilnehmer). Wie ATM .

Während nichts die Erstellung eines Protokolls, das sowohl Schicht 2 als auch Schicht 3 umfasst, direkt verhindert, wäre es weniger flexibel und daher weniger attraktiv und daher unwahrscheinlich, dass es verwendet wird.

Paul
quelle
2
Für das interne Netzwerk sollten Sie RFC1149 verwendet haben . (Eine weniger technische Beschreibung )
Scott Chamberlain
2
Was ist, wenn man Handzeichen benutzt ?
Scott Chamberlain
1
@ScottChamberlain: Ich liebe die ASCII-Kunst im Handzeichen eines Flags!
Fred Larson
5
IPoAC ist eine schlechte Wahl für die interne Kommunikation. Tauben arbeiten im Freien besser als in Innenräumen
cpast
2
@ user2449761 Leute haben nur die albernen aufgelistet. Anstelle von Ethernet können Sie auch Bluetooth, DFÜ, GPRS, LTE, USB, DSL, Token Ring usw. verwenden.
OrangeDog
8

Wo würde diese Entscheidung getroffen, ob das Paket verarbeitet oder ignoriert werden soll? Keine Antwort ist wirklich zufriedenstellend:

1) Im Schalter? Nun, das würde bedeuten, dass Switches jedes Protokoll verstehen müssen, das bestimmt, welche Computer an welchen Paketen interessiert sind. Dies würde nicht nur die Kosten für Switches erhöhen und deren Geschwindigkeit verringern, sondern auch die Abhängigkeit von Änderungen im IP-Protokoll erheblich erschweren.

2) In der Hardware der Ethernet-Schnittstelle? Nun, dies würde das Netzwerk viel langsamer machen, da jedes Datenpaket an jede Maschine gesendet werden muss. Technologien wie WiFi und Bridging-Netzwerke mit langsameren Bridges wären unmöglich. Es wäre unmöglich, Ethernet mit unterschiedlichen Geschwindigkeiten zusammenarbeiten zu lassen. Technologien wie IPv6 oder IP-Multicast erfordern Hardwareänderungen für die Bereitstellung in allen Ethernet-Endstationen.

3) In der Software? Nun, dies würde Computer viel langsamer machen, da sie mit einer viel höheren Anzahl von Netzwerkschnittstellen-Interrupts umgehen müssen. Alle oben erwähnten Überbrückungs-, VPN- und Wifi-Probleme wären ebenfalls ein Problem.

All dies würde Ethernet ohne IP unbrauchbar machen und würde bedeuten, dass Änderungen in Ethernet erforderlich wären, um Änderungen in IP vorzunehmen. Yuck.

Die Trennung von Bedenken ist gut.

David Schwartz
quelle
Darüber hinaus kann die Netzwerkleistung insgesamt erheblich reduziert werden. Bei Option 3 sende ich eine große Datei, die mein 1-GBit-Netzwerk überfüllt, und plötzlich erhält auch jeder andere im Netzwerk diese Datei und muss sie ignorieren. Außerdem verfügt sie nicht über die Bandbreite, um eine Datei an einen anderen Benutzer zu senden, der nicht Mitglied ist der aktuellen Dateiübertragung.
PlasmaHH
Beschreibt die zweite Option nicht die Funktionsweise des Ethernet? Alle Schnittstellen erhalten die gleichen Pakete, aber nur eine Maschine ignoriert sie nicht (außer diese im Promiscuous-Modus). Die Schalter sind da, um die Dinge zu beschleunigen ...
user2449761
2
@ user2449761 Alle Pakete gehen nur an alle Computer, wenn Sie eine alte Netzwerkhardware mit Hubs anstelle von Switches verwenden. Hubs waren ursprünglich aus Kostengründen eine Option. aber jetzt, da Schalter billig sind, benutzt sie niemand mehr.
Dan Neely
@ Dan das ist, wovon ich spreche ...
user2449761
2
Option 1 ist bereits aktiv. Es ersetzt nicht die Verwendung von MAC-Adressen, zumindest noch nicht. Manche Switching-Hardware kann jedoch so konfiguriert werden, dass entweder die Ziel-MAC-Adresse oder die Ziel-IP-Adresse für die Auswahl der ausgehenden Schnittstelle verwendet wird. Es ist möglich, dass die MAC-Adresse in 10 oder 20 Jahren nur für historische Zwecke verbleibt und das Weiterleiten von Paketen ausschließlich auf der Grundlage der IP-Adresse erfolgt. Der Teil, dass Änderungen an IP schwieriger zu implementieren sind, wurde ohnehin nicht vermieden, da Backbone-Router seit Jahren basierend auf der Ziel-IP-Adresse in der Hardware routen.
Kasperd
3

IP-Adresse und MAC-Adresse werden auf verschiedenen Ebenen der Internetprotokollsuite ausgeführt . MAC-Adressen werden verwendet, um Computer innerhalb desselben Broadcast-Netzwerks auf Schicht 2 zu identifizieren, während IP-Adressen auf Schicht 3 verwendet werden, um Computer in verschiedenen Netzwerken zu identifizieren.

Selbst wenn Ihr Computer über eine IP-Adresse verfügt, benötigt er eine MAC-Adresse, um andere Computer im selben Netzwerk zu finden, da jede Schicht darunter liegende Schichten verwendet. Auf der oben erwähnten Seite finden Sie einige schöne Diagramme, die die Protokollsuite detailliert erläutern.

Vembutech
quelle
2

Das Problem der Überlastung tritt bei Ethernet-Netzwerken mit zunehmender Größe auf. Diese Störung kann das Netzwerk verstopfen und zu Verzögerungen führen. Dies ist einer der Faktoren, die das Subnetzkonzept mit sich gebracht haben. Bei Subnetzen benötigen wir jedoch eine zusätzliche Entität namens Router, damit das Paket von einem Computer in einem Subnetz zu einem Computer in einem anderen Subnetz übertragen werden kann.

Die vom Ethernetkabel zurückgelegte Entfernung ist ein weiteres wichtiges Anliegen, da sie den Übertragungserfolg einschränken kann, wenn sie eine bestimmte Grenze überschreitet. Dies brachte weitere neue Einheiten in Form von Hub / Repeater.

Beachten Sie, dass nicht alle Kommunikationsmechanismen die MAC-Adresse für die Kommunikation verwenden. PPP & HDLC verwenden keine MAC-Adresse zur Identifizierung.

Beachten Sie auch, dass einige Netzwerke kein Ethernet verwenden. Token-Ring-Netzwerke erfordern eine andere Datenverbindungsschicht.

Wenn Sie ein Paket von Netzwerk A an ein Gerät in Netzwerk B senden, indem Sie die MAC-Adresse des Geräts in Netzwerk B eingeben, wird es in Netzwerk A abgelegt. Beachten Sie, dass der Router, selbst wenn sich ein Router zwischen Netzwerk A und Netzwerk B befindet, das Paket verwirft, während der Router Pakete empfängt, die an seine Mac-Adresse adressiert sind, jedoch für eine andere IP-Adresse.

Aus den obigen Szenarien geht hervor, dass das Internet aufgrund verschiedener lokaler / privater Netzwerke kein flaches Netzwerk ist. Es gibt auch verschiedene Netzwerkeinheiten zwischen Quelle und Ziel.

Da das Internet kein flaches Netzwerk ist, die MAC-Adresse nicht für alle Kommunikationstypen verwendet wird und für einige Netzwerke eine andere Datenverbindungsschicht als Ethernet erforderlich ist, benötigen wir die IP-Adresse, um sie unabhängig vom Standort des Knotens an den gewünschten Knoten zu leiten wird mit Netzwerkschicht erreicht.

Eine ähnliche Diskussion finden Sie auch unter /programming/26290069/arp-vs-ip-why-do-we-need-both

Karthik Balaguru
quelle
Zusätzlich zu den Beispielen für "Vogeltransporter", "Handzeichen" und "Papier und Bleistift" für die alternative Schicht 2 gibt es einige, die verrückt und dennoch gelegentlich nützlich sind . IP über SMS oder über Facebook oder sogar über E-Mail. Dann gibt es die alten Standbys SLIP, PPP und PPPoE. Diese drei bieten NICHT die gleiche Art von Gesicht wie eine Ethernet- oder WIFI-Verbindung - dennoch erhalten alle diese die IP durch und sind vollständig routingfähig.
Ross Presser
2

Wie andere bereits erklärt haben, benötigen Sie Layer 2-Protokolle zur Überlastungskontrolle in Ihrem lokalen Netzwerk. Die Schicht 3 wird für das Routing und die Adressierung zwischen Netzwerken verwendet.

Vor diesem Hintergrund könnte eine berechtigte Frage lauten: Warum können nicht beide Ebenen dasselbe Adressierungsschema verwenden?

Erste Antwort: Wie bereits erwähnt, können Sie auf diese Weise die L2- und / oder L3-Technologie wechseln, und alles funktioniert noch.

Zweite Antwort: Selbst wenn sich alle darauf einigten, dass Layer 2-Protokolle IP-Adressen verwenden, müssten Sie dennoch zwei IP-Adressen verwenden, eine für Layer 2 und eine für Layer 3. Warum? NATting. Wenn Ihr Computer über eine öffentliche IP-Adresse verfügt, können die Adressen L2 und L3 identisch sein. Wenn Sie jedoch NATting verwenden, unterscheiden sich Ihre L2- und L3-Adressen.

Letzter Kommentar: Wenn Sie sagen, dass alle die Nachricht erhalten und Nichtempfänger sie ignorieren, sprechen Sie von WiFi. Kabelgebundenes Ethernet funktioniert nicht mehr so. Früher war es so, als wir Koaxialkabel und später Hubs verwendeten. Switches senden die Nachrichten / Pakete nur an den entsprechenden Port (es sei denn, Sie führen einen Angriff auf sie durch und füllen ihre Tabellen aus).

cabad
quelle
Ich bin sehr froh, dass Sie den letzten Kommentar hinzugefügt haben. Wie Sie bereits betont haben: Überlastungen können über die Switches bewältigt werden. Switches können nur das IP-Adressierungsschema verwenden. Ich verstehe auch das NATing-Argument nicht: Wir brauchen immer zwei IP-Adressen auf beiden Seiten von NAT. Ich denke, die berechtigte Frage wäre: Warum brauchen wir in modernen Netzwerken getrennte DataLink- und Netzwerkschichten? Ich verstehe, dass die Trennung in den 70er Jahren notwendig war, als Token Ring, Tauben und Papiere im Einsatz waren.
user2449761
0

MAC-Adressen und IP-Adressen werden für verschiedene Zwecke auf verschiedenen Netzwerkebenen betrieben. Das Entfernen einer der Schichten kann Probleme verursachen, Verwirrung stiften oder das Funktionieren von Dingen verhindern.

Nehmen wir an, ich habe einige alte Hardware (z. B. eine millionenschwere CNC-Drehmaschine), die nur IPX spricht . Wie würde jemand in Ihrem IP-Netzwerk mit ihm sprechen? Oder sagen Sie, ich verbinde einen nicht konfigurierten Computer mit einem neuen Netzwerk. Wie kann der DHCP-Server meinem Computer mitteilen, welche IP-Adresse er verwenden soll, wenn keine MAC-Adressen vorhanden sind ?

Lassen Sie sich sagen , dass ich einen Server mit vier Gigabit - Verbindungen zu einem Backbone - Switch habe, aggregiert in eine einzige virtuelle Verbindung. Wie lautet die Adresse meines Servers in Ihrem MAC-Netzwerk? Oder sagen Sie, ich habe einen Computer über ein PPPoA-Modem angeschlossen und habe keine MAC-Adresse. Wie kann sich jemand damit verbinden?

Kennzeichen
quelle
0

Hmmm ich denke das hätte funktionieren können (ich habe tatsächlich / getan / Hand MAC Adresszuweisung); Wenn dies getan worden wäre, müssten Sie jedoch neue Hardware für IPv6 kaufen, und es hätte wahrscheinlich keine Überlappung gegeben. Insgesamt mag ich die Konsequenzen nicht.

Joshua
quelle
0

Das I in IP steht für Internetworking Protocol.

Das bedeutet, dass eine IP in ALLEN Netzwerken der Welt eindeutig sein soll.

IP-Adressen sollen buchstäblich global sein. Wenn Sie Datenverkehr an 9.9.9.9 senden, soll dieser an jeden Ort gelangen, an dem sich 9.9.9.9 befindet, egal wo auf der Welt sich 9.9.9.9 physisch befindet oder in welchem ​​Netzwerk 9.9.9.9 sich physisch befindet.

(Dies ist etwas aufgrund von NAT kaputt. Als TCP / IP erfunden wurde, war NAT nicht Teil des ursprünglichen Plans, und es ist ein "Hack", bis IPv6 sich dort durchsetzt, wo es nicht benötigt wird. Stellen Sie sich vor, NAT existiert nicht, um es zu verstehen diese Antwort.)

Eine MAC-Adresse sollte nur in dem lokalen Netzwerk eindeutig sein, in dem sich der Host befindet. Es ist nicht dafür ausgelegt, die Kommunikation zwischen Objekten zu ermöglichen, die sich nicht im selben lokalen Netzwerk befinden. Daher wird für MAC-Adressen eine physikalische Einschränkung angenommen, für IP-Adressen jedoch keine.

TCP / IP basiert auf dem Gedanken, dass:

  • Es gibt lokale Netzwerke, in denen Systeme direkt miteinander kommunizieren können, ohne dass ein Router beteiligt ist
  • Manchmal möchten Computer in einem Netzwerk mit Computern in einem anderen kommunizieren und benötigen dazu einen Router.

Wenn ein anderer grundlegender Mechanismus vorhanden wäre, bei dem die beiden oben genannten Konzepte nicht zutreffen, wären IP und MAC nicht erforderlich, wie sie derzeit sind.

Wenn Sie ein Protokoll oder etwas anderes entwerfen, das absolut nie mit Computern außerhalb desselben lokalen Netzwerks kommunizieren muss, ist es eine gute Idee, sich nur an MAC-Adressen zu halten. Ich denke, das ATA over Ethernet-Protokoll ist so, da es die gemeinsame Nutzung von ATA-Laufwerken im selben Netzwerk und nicht aus Sicherheitsgründen über das Internet ermöglicht.

LawrenceC
quelle
0

Ich hatte gerade ähnliche Gedanken. Aber ich bin zu der Erkenntnis gekommen, dass man MAC-Layer braucht. Nicht einmal zum Schalten!

Das unvermeidbare Problem ist, dass Sie nicht nur das IP-Protokoll haben, auch wenn es sich um IP handelt, gibt es IPv4 und IPv6. Woher weiß das Netzwerkgerät, welches es ist? Sie benötigen also MAC als Bootstrapping-Schicht, im Protokollfeld ist es die nächste Schicht, die Ihnen sagt, was über MAC übertragen wird.

XYZ
quelle
-2

Sie bleiben stecken, wenn Sie nur an eine einzige OSI-Schicht denken. IP funktioniert nur, weil Ethernet (und andere) vorhanden sind, genauso wie Ethernet, weil physische Kabel für den Datenverkehr vorhanden sind. Es handelt sich nicht um "IP oder MAC" - das Routing des Datenverkehrs erfordert, dass MAC-Adressen funktionieren: IP-Technologie (sowie andere verwandte und nicht verwandte Technologien) kommen hinzu. Man kann nicht einfach eins gegen das andere tauschen.

Leichtigkeit Rennen mit Monica
quelle
-6

Dynamische IPs mein Freund! In Ihrer lokalen Umgebung (Ihrem Haus, Ihrer Hochschule, Ihrem Arbeitsplatz) haben Sie eine Netzwerkeinrichtung. Es ist nicht direkt mit dem Internet verbunden (mit einem großen 'I'), sondern über einen Router. Dieser Router erhält von Ihrem Internetdienstanbieter eine dynamische IP-Adresse (in den meisten Fällen, sofern Sie keine statische haben) und weist allen angeschlossenen Computern dynamische Adressen zu. Warum ist es so gemacht? In einer Linie, um mehr Benutzern als IPs, die Sie haben, Service zu bieten. Die Sache ist, Sie müssen in der Lage sein, Ihr MacBook Pro (: D) unter allen anderen Computern zu identifizieren, daher benötigen Sie eine EINZIGARTIGE Adresse, keine dynamische / gemeinsam genutzte. Das ist dein Mac. Und deshalb brauchst du es.

Sie können hier weiter lesen

Tfrascaroli
quelle
2
Das ist wirklich kein Grund, MAC-Adressen zu verwenden.
Daniel B
1
Der Punkt ist: Nicht alle Computer haben eine eindeutige IP-Adresse, manchmal möchten Sie das auch nicht. Das ist ein gutes Argument für sie, eine separate LAN-Adresse zu haben, wie es eine MAC-Adresse ist.
Reinierpost
1
Ja, das tun sie. Alles, was über das Internet geroutet werden kann, ist per Definition eindeutig adressierbar. Sonst würde das Internet nicht funktionieren. Es gibt Dinge wie NAT, die gegen dieses so genannte End-to-End-Prinzip verstoßen. Bei NAT haben Sie auch eine eigene LAN-Adresse.
Daniel B
@DanielB Ich bin mir ziemlich sicher, dass das nicht stimmt, aber vielleicht verstehe ich dich falsch. Zum Beispiel: Können Sie mir sagen, wie Sie diesen PC, auf dem ich tippe, der sich in einem lokalen privaten Netzwerk befindet und von dem aus Sie sich befinden, eindeutig ansprechen würden, ohne dass zuvor eine Verbindung hergestellt wurde? Was ist, wenn Sie stattdessen den Computer neben diesem ansprechen möchten?
SevenSidedDie
@ DanielB Sicher ist es nicht der Grund. Frage von OP: Können nicht alle Computer einfach mit dem einheitlichen Netzwerk verbunden werden und IP-Adressen für die Kommunikation verwenden? Meine Antwort enthält Informationen zu dieser Frage, nicht zu Ihrer hypothetischen Frage. Diese lautet : "Warum verwenden wir MAC-Adressen im Ethernet-Modell?". Da er / sie fragt, warum wir nicht einfach IPs verwenden können, gibt es meine Antwort. Bitte, lesen Sie das nächste Mal sorgfältig, bevor Sie abstimmen :)
tfrascaroli