Perché sono necessari gli indirizzi Ethernet / MAC?


16

Non capisco perché sono necessari indirizzi MAC Ethernet. Non è possibile collegare tutti i computer alla rete unificata e utilizzare gli indirizzi IP per comunicare?

Ad esempio, esiste un seguente meccanismo in Ethernet:

  1. Computer con IP 192.168.1.1( X.1) desidera inviare un pacchetto a 192.168.1.2( X.2)
  2. X.1 usa ARP per ottenere il MAC di X.2
  3. Per fare ciò, è X.1necessario inviare un pacchetto a tutti i computer della rete; solo uno risponderà
  4. X.1 ottiene un MAC e invia il pacchetto

Non sarebbe più semplice fare solo un passo:

  1. X.1invia un pacchetto a tutti i computer della rete; solo X.2lo elaborerà, altri lo ignoreranno

La domanda complementare sarebbe: perché sono necessari indirizzi IP, se tutti i dispositivi hanno indirizzi MAC univoci?


Come fanno i computer a sapere che dovrebbero ignorare i dati? Senza l'indirizzo MAC non possono dire quale sulla rete dovrebbe elaborarlo ...
Bakuriu,

1
potrebbero usare l'indirizzo IP anziché l'indirizzo MAC
user2449761

erm ... computer <-> L'indirizzo IP non è un mapping iniettivo. Riformulerò la mia domanda: come fanno i computer a sapere che dovrebbero ignorare i dati? Senza l'indirizzo MAC non possono dire quale sulla rete dovrebbe elaborarlo ... dal momento che più di uno di loro potrebbe avere lo stesso IP ?
Bakuriu,

4
non dovrebbero avere lo stesso IP nella stessa sottorete ... questo è un conflitto
user2449761

1
La domanda complementare è serverfault.com/q/410626/102768
OrangeDog

Risposte:


31

I diversi livelli di rete sono lì per consentire loro di essere scambiati con diverse tecnologie.

I due livelli di cui stai parlando sono i livelli 2 e 3. Il livello 2 in questo scenario è Ethernet - da cui derivano gli indirizzi MAC e il livello 3 è IP.

Ethernet funziona solo a livello locale, tra dispositivi di rete collegati a una rete di trasmissione "datalink", mentre IP è un protocollo instradabile e quindi può indirizzare i dispositivi su reti remote.

I requisiti di ciascuno di questi sono diversi. Ethernet specifica una famiglia di tecnologie che consente l'invio e la ricezione di pacchetti tra dispositivi di rete, mentre IP definisce un protocollo che consente a pacchetti di dati di attraversare più reti.

Nessuno dei due dipende dall'altro, che è ciò che conferisce flessibilità alla rete. Ad esempio, puoi scegliere di connetterti al tuo servizio Internet utilizzando IP su Ethernet, ma nella tua rete interna potresti scegliere di utilizzare IP su ... carta. Laddove qualcuno annota il contenuto di ciascun pacchetto e lo sposta fisicamente su un altro computer e lo digita. Chiaramente questo non sarebbe particolarmente veloce, ma sarebbe comunque IP fornito alla persona che trasporta i pezzetti di carta rispettando le regole di routing IP.

Nel mondo reale esistono diversi protocolli di collegamento dati che stai già utilizzando due diversi (anche se i loro schemi di indirizzamento sono gli stessi): 802.3 - Ethernet e 802.11 - Wi-Fi.

All'IP non importa quale sia il livello sottostante.

Allo stesso modo, l'IP può essere scambiato con diversi protocolli di livello di rete (a condizione che accada per tutti i partecipanti). Come ATM .

Sebbene non vi sia nulla che impedisca direttamente la creazione di un protocollo che comprenda sia il livello 2 che il livello 3, sarebbe meno flessibile, quindi meno attraente e quindi improbabile da utilizzare.


2
Per la rete interna avresti dovuto usare RFC1149 . (Una descrizione meno tecnica )
Scott Chamberlain,


1
@ScottChamberlain: Adoro l'arte ASCII nelle bandiere dei segnali manuali uno!
Fred Larson,

5
IPoAC è una cattiva scelta per le comunicazioni interne; i piccioni lavorano meglio all'aperto che al chiuso
cpast

2
@ user2449761 persone hanno elencato solo quelle sciocche. Invece di ethernet potresti usare bluetooth, dial-up, GPRS, LTE, USB, DSL, token ring, ecc.
OrangeDog

8

Dove verrebbe presa questa decisione se elaborare o ignorare il pacchetto? Nessuna risposta è davvero soddisfacente:

1) Nell'interruttore? Bene, ciò significherebbe che gli switch devono comprendere ogni protocollo che determina quali computer sono interessati a quali pacchetti. Ciò non solo aumenterebbe il costo degli switch e ne ridurrebbe la velocità, ma renderebbe molto più difficile applicare modifiche al protocollo IP.

2) Nell'hardware dell'interfaccia Ethernet? Bene, questo renderebbe la rete molto più lenta poiché ogni pacchetto di dati deve andare su ogni macchina. Tecnologie come il WiFi e il collegamento di reti con ponti più lenti sarebbero impossibili. Avere Ethernet funzionante a velocità diverse interagire sarebbe impossibile. Tecnologie come IPv6 o IP multicast richiederebbero modifiche hardware da implementare in tutte le stazioni terminali Ethernet.

3) Nel software? Bene, questo renderebbe i computer molto più lenti in quanto devono gestire un numero molto più elevato di interruzioni dell'interfaccia di rete. Tutti i problemi di bridge, VPN e Wifi citati sopra sarebbero anche problemi.

Tutto ciò renderebbe inutilizzabile Ethernet senza IP e significherebbe che sarebbero necessarie modifiche in Ethernet per apportare modifiche in IP. Che schifo.

Le separazioni delle preoccupazioni sono buone.


Inoltre, può ridurre notevolmente le prestazioni complessive della rete. Per l'opzione 3, invio un file enorme che satura la mia rete da 1 GBit e improvvisamente anche tutti gli altri sulla rete ottengono quel file e devono ignorarlo, e non hanno la larghezza di banda per inviare un file a qualcun altro che non fa parte del trasferimento di file corrente.
PlasmaHH

la seconda opzione non descrive come funziona Ethernet? Tutte le interfacce stanno ricevendo gli stessi pacchetti, ma solo una macchina non lo ignorerà (tranne questi in modalità promiscua). Gli interruttori sono lì per velocizzare le cose ...
user2449761

2
@ user2449761 Tutti i pacchetti vanno a tutti i computer solo se si utilizza un hardware di rete antico con hub anziché switch. Gli hub erano originariamente un'opzione per motivi di costo; ma ora che gli switch sono economici nessuno li usa più.
Dan Neely,

@Dan è di questo che sto parlando ...
user2449761

2
L'opzione 1 sta già accadendo. Non sta sostituendo l'uso di indirizzi MAC, almeno non ancora. Tuttavia, alcuni hardware di commutazione possono essere configurati per utilizzare l'indirizzo MAC di destinazione o utilizzare l'indirizzo IP di destinazione per scegliere l'interfaccia in uscita. È possibile che tra 10 o 20 anni l'indirizzo MAC rimarrà solo per scopi storici e tutto il routing dei pacchetti verrà effettuato solo in base all'indirizzo IP. La parte relativa alle modifiche all'IP più difficili da distribuire non è stata comunque evitata perché i router backbone sono stati instradati in base all'indirizzo IP di destinazione nell'hardware per anni.
Kasperd,

3

Indirizzo IP e indirizzi MAC operano su diversi livelli della suite di protocolli Internet . Gli indirizzi MAC vengono utilizzati per identificare le macchine all'interno della stessa rete di trasmissione sul livello 2, mentre gli indirizzi IP vengono utilizzati sul livello 3 per identificare le macchine su reti diverse.

Anche se il tuo computer ha un indirizzo IP, ha ancora bisogno di un indirizzo MAC per trovare altre macchine sulla stessa rete, poiché ogni livello utilizza i livelli sottostanti. Nella pagina menzionata in precedenza puoi trovare alcuni diagrammi che spiegano in dettaglio la suite di protocolli.


2

Il problema della congestione è affrontato dalla rete Ethernet man mano che aumentano di dimensioni. Questo inturn può soffocare la rete e introdurre ritardi. Questo è uno dei fattori che hanno portato al concetto di sottorete. Tuttavia, con le sottoreti, abbiamo bisogno di un'entità aggiuntiva chiamata router per consentire al pacchetto di viaggiare da una macchina in una sottorete a una macchina in un'altra sottorete.

La distanza percorsa dal cavo Ethernet è un'altra delle maggiori preoccupazioni in quanto può limitare il successo delle trasmissioni se supera un certo limite. Ciò ha portato ulteriori nuove entità sotto forma di hub / ripetitore.

Si noti che tutti i meccanismi di comunicazione non utilizzano l'indirizzo MAC per la comunicazione. PPP e HDLC non utilizzano l'indirizzo MAC per l'identificazione.

Inoltre, si noti che alcune reti non utilizzano Ethernet. Le reti di token ring richiedono un livello di collegamento dati diverso.

Se si invia un pacchetto dalla rete A a un dispositivo nella rete B indirizzandolo tramite l'indirizzo mac del dispositivo nella rete B, verrà rilasciato nella rete A stessa. Si noti che anche se esiste un router tra la rete A e la rete B, il router lascerà cadere il pacchetto mentre il router funziona ricevendo pacchetti indirizzati al suo indirizzo mac ma per un indirizzo IP diverso.

Dagli scenari precedenti, è chiaro che Internet non è una rete piatta a causa di varie reti locali / private. Esistono anche varie entità di rete tra origine e destinazione.

Poiché Internet non è una rete piatta, l'indirizzo MAC non viene utilizzato per tutti i tipi di comunicazione e alcune reti richiedono diversi livelli di collegamento dati diversi da Ethernet, abbiamo bisogno di un indirizzo IP per instradarlo al nodo desiderato indipendentemente dalla posizione del nodo e questo si ottiene con il livello di rete.

Inoltre, fai riferimento a una discussione simile in /programming/26290069/arp-vs-ip-why-do-we-need-both


Oltre agli esempi "portatori di aviaria", "segnali manuali" ed "carta e matita" di livello alternato 2, ce ne sono alcuni che sono stravaganti ma occasionalmente utili . IP su SMS, o su Facebook o anche via e-mail. Poi c'è il vecchio standbys SLIP, PPP e PPPoE. Questi tre NON presentano lo stesso tipo di faccia di una connessione Ethernet o WIFI, ma tutti riescono a passare l'IP e sono completamente instradabili.
Ross Presser,

2

Come altri hanno spiegato, sono necessari protocolli di livello 2 per il controllo della congestione nella rete locale. Il livello 3 viene utilizzato per l'instradamento e l'indirizzamento tra le reti.

Detto questo, una domanda valida potrebbe essere: perché entrambi i livelli non possono utilizzare lo stesso schema di indirizzamento?

Prima risposta: come altri hanno già detto, questo ti consente di cambiare le tecnologie L2 e / o L3 e tutto funziona ancora.

Seconda risposta: anche se tutti accettassero che i protocolli di Livello 2 utilizzino gli indirizzi IP, dovresti comunque usare due indirizzi IP, uno per il Livello 2 e uno per il Livello 3. Perché? Natting. Se il tuo computer ha un indirizzo IP pubblico, gli indirizzi L2 e L3 potrebbero essere gli stessi. Tuttavia, se usi NATting, i tuoi indirizzi L2 e L3 sarebbero diversi.

Ultimo commento: quando dici che tutti ricevono il messaggio e i non destinatari li ignorano, stai parlando del WiFi. Ethernet cablata non funziona più così. Una volta era così quando usavamo i cavi coassiali e più tardi quando usavamo gli hub. Gli switch inviano solo i messaggi / pacchetti alla porta appropriata (a meno che non si esegua un attacco su di essi e si saturi le loro tabelle).


Sono molto contento che tu abbia aggiunto l'ultimo commento. Come hai sottolineato: la congestione può essere gestita dagli switch. Gli switch possono utilizzare solo lo schema di indirizzamento IP. Inoltre non capisco l'argomento NATing: abbiamo sempre bisogno di due indirizzi IP su entrambi i lati di NAT. Penso che la domanda valida sia: perché abbiamo bisogno di livelli separati di DataLink e Network nelle reti moderne? Capisco che la separazione era necessaria negli anni '70, quando erano in uso token ring, piccioni e carte.
user2449761

0

Gli indirizzi MAC e IP funzionano su diversi livelli di rete per scopi diversi. Sbarazzarsi di uno dei livelli può causare problemi, creare confusione o impedire il funzionamento delle cose.

Diciamo che ho dell'hardware antico (diciamo un tornio CNC da un milione di dollari) che parla solo IPX . Nella tua rete solo IP, come ci si potrebbe parlare? O dire che sto collegando un computer non configurato a una nuova rete. In assenza di indirizzi MAC, come può il server DHCP comunicare al mio computer quale indirizzo IP utilizzare?

Diciamo che ho un server con quattro connessioni gigabit a uno switch backbone, aggregato in una singola connessione virtuale. Nella tua rete solo MAC, qual è l'indirizzo del mio server? Oppure dire che ho un computer collegato tramite modem PPPoA e non ho un indirizzo MAC. Come si può connettersi?


0

Hmmm penso che questo avrebbe potuto funzionare (ho effettivamente / fatto / assegnazione manuale dell'indirizzo MAC); tuttavia, se ciò fosse stato necessario, sarebbe stato necessario acquistare nuovo hardware per IPv6 e probabilmente non ci sarebbe stata sovrapposizione. Quindi in tutto non mi piacciono le conseguenze.


0

L' ho in IP sta per Internetworking protocollo.

Ciò significa che un IP dovrebbe essere unico tra TUTTE le reti in tutto il mondo.

Gli indirizzi IP dovrebbero essere letteralmente globali. Se invii traffico al 9.9.9.9, dovrebbe arrivare ovunque il 9.9.9.9 non importa in quale parte del mondo sia il 9.9.9.9 o su quale rete sia il 9.9.9.9.

(Questo è un po 'rotto a causa del NAT. Quando è stato inventato TCP / IP NAT non faceva parte del piano originale, ed è un "hack" fino a quando IPv6 diventa più prevalente dove non è necessario. Fingere che NAT non esiste per capire questa risposta.)

Un indirizzo MAC dovrebbe essere unico solo nella rete locale su cui risiede l'host. Non è progettato per consentire la comunicazione tra tutto ciò che non si trova sulla stessa rete locale. Quindi esiste una limitazione fisica assunta con gli indirizzi MAC, ma nessuna tale limitazione con gli indirizzi IP.

TCP / IP si basa sull'idea che:

  • ci sono reti locali in cui i sistemi possono dialogare direttamente senza che sia coinvolto un router
  • a volte i computer su una rete vogliono parlare con i computer su un'altra e hanno bisogno di un router per farlo.

Se esistesse un altro meccanismo fondamentale in cui i due concetti precedenti non si applicano, allora IP e MAC non sarebbero necessari come sono attualmente.

Se stai progettando un protocollo o qualcos'altro che non ha assolutamente bisogno di parlare con macchine al di fuori della stessa rete locale, allora è una buona idea attenersi semplicemente agli indirizzi MAC. Penso che il protocollo ATA over Ethernet sia così, poiché è progettato per consentire la condivisione di unità ATA sulla stessa rete e non attraverso Internet per motivi di sicurezza.


0

Ho appena avuto pensieri simili. Ma sono arrivato alla conclusione che hai bisogno del livello MAC. Neanche a scopo di commutazione!

Il problema inevitabile è che hai altro oltre al protocollo IP, anche se stiamo parlando di IP, ci sono IPv4 e IPv6. Come fa il dispositivo di rete a sapere quale è? quindi hai bisogno di MAC come livello di bootstrap, nel campo protocollo di esso è il livello successivo, che ti dice cosa viene portato su MAC.


-2

Ti stai bloccando pensando solo a un singolo livello OSI. L'IP funziona solo perché esiste Ethernet (e altri), allo stesso modo in cui esiste Ethernet solo perché ci sono cavi fisici per trasportare il traffico. Non si tratta di "IP o MAC": l'instradamento del traffico richiede il funzionamento degli indirizzi MAC: la tecnologia IP (così come altre tecnologie correlate e non correlate) è al primo posto. Non puoi semplicemente scambiarne uno con l'altro.


-6

IP dinamici amico mio! Nel tuo ambiente locale (casa, università, luogo di lavoro) hai una configurazione di rete. Non è collegato direttamente a Internet (con la "I" maiuscola) ma tramite un router. Questo router ottiene un IP dinamico (nella maggior parte dei casi, a meno che tu non ne abbia uno statico) dal tuo ISP e assegna indirizzi dinamici (stessi "ma" come sopra) a tutti i computer collegati. Perché è fatto così? In linea, per fornire un servizio a più utenti rispetto agli IP di cui disponi. Il fatto è che devi essere in grado di identificare il tuo MacBook Pro (: D) tra tutti gli altri computer, quindi hai bisogno di un indirizzo UNICO, non dinamico / condiviso. Questo è il tuo mac. Ed è per questo che ne hai bisogno.

Puoi leggere più avanti qui


2
Questo non è davvero un motivo per impiegare indirizzi MAC.
Daniel B,

1
Il punto è: non tutti i computer hanno un indirizzo IP univoco, a volte non lo si desidera nemmeno, quindi è un buon argomento per loro che hanno un indirizzo LAN separato, che è quello che è un indirizzo MAC.
reinierpost,

1
Si lo fanno. Tutto ciò che è instradabile su Internet è, per definizione, indirizzabile in modo univoco. Altrimenti Internet non funzionerebbe. Ci sono cose come NAT che violano questo cosiddetto principio end-to-end. In caso di NAT hai anche un indirizzo LAN separato.
Daniel B,

@DanielB Sono abbastanza sicuro che non sia vero, ma forse ti fraintendo. Ad esempio: puoi dirmi come indirizzeresti in modo univoco questo PC sul quale sto scrivendo, che si trova su una rete privata locale, da dove ti trovi, senza una connessione precedente stabilita? E se volessi invece indirizzare il computer accanto a questo?
SevenSidedDie,

@DanielB Certo non è il motivo. Domanda dell'OP: non è possibile collegare tutti i computer alla rete unificata e utilizzare gli indirizzi IP per comunicare? La mia risposta fornisce informazioni su quella domanda, non sulla tua ipotetica domanda, che andrebbe sulla falsariga di: "Perché impieghiamo indirizzi MAC sul modello Ethernet?". Dal momento che lui / lei sta chiedendo perché non possiamo semplicemente usare gli IP, c'è la mia risposta. Per favore, la prossima volta leggi attentamente prima di effettuare il downgrade :)
tfrascaroli,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.