Pourquoi les adresses Ethernet / MAC sont-elles nécessaires?

16

Je ne comprends pas pourquoi les adresses MAC Ethernet sont nécessaires. Tous les ordinateurs ne peuvent-ils pas simplement être connectés au réseau unifié et utiliser des adresses IP pour communiquer?

Par exemple, il existe un mécanisme suivant dans Ethernet:

  1. L'ordinateur avec IP 192.168.1.1( X.1) veut envoyer un paquet à 192.168.1.2( X.2)
  2. X.1 utilise ARP pour obtenir le MAC de X.2
  3. Pour ce faire, X.1doit envoyer un paquet à tous les ordinateurs du réseau; un seul répondra
  4. X.1 obtient un MAC et envoie le paquet

Ne serait-il pas plus simple de ne faire qu'une seule étape:

  1. X.1envoie un paquet à tous les ordinateurs du réseau; seulement X.2le traitera, d'autres l'ignoreront

La question complémentaire serait: pourquoi des adresses IP sont-elles nécessaires, si tous les appareils ont des adresses MAC uniques?

user2449761
la source
Comment les ordinateurs savent-ils qu'ils doivent ignorer les données? Sans adresse MAC, ils ne peuvent pas dire lequel du réseau devrait le traiter ...
Bakuriu
1
ils pourraient utiliser l'adresse IP au lieu de l'adresse MAC
user2449761
erm ... l'adresse IP de l'ordinateur <-> n'est pas un mappage injectif. Je reformulerai ma question: comment les ordinateurs savent-ils qu'ils doivent ignorer les données? Sans adresse MAC, ils ne peuvent pas dire lequel sur le réseau devrait le traiter ... puisque plusieurs d'entre eux pourraient avoir la même IP ?
Bakuriu
4
ils ne devraient pas avoir la même IP dans le même sous-réseau ... c'est un conflit
user2449761
1
La question complémentaire est serverfault.com/q/410626/102768
OrangeDog

Réponses:

31

Les différentes couches de mise en réseau sont là pour leur permettre d'être échangées pour différentes technologies.

Les deux couches dont vous parlez ici sont les couches 2 et 3. Dans ce scénario, la couche 2 est Ethernet - d'où proviennent les adresses MAC, et la couche 3 est IP.

Ethernet ne fonctionne qu'au niveau local, entre des périphériques réseau connectés à un réseau de diffusion "liaison de données", alors qu'IP est un protocole routable et peut donc cibler des périphériques sur des réseaux distants.

Les exigences de chacun d'entre eux sont différentes. Ethernet spécifie une famille de technologies qui permettent d'envoyer et de recevoir des paquets entre les périphériques réseau, tandis qu'IP définit un protocole qui permet aux paquets de données de traverser plusieurs réseaux.

Aucun des deux ne dépend de l'autre, ce qui donne au réseau sa flexibilité. Par exemple, vous pouvez choisir de vous connecter à votre service Internet en utilisant IP sur Ethernet, mais dans votre réseau interne, vous pouvez choisir d'utiliser IP sur ... du papier. Où quelqu'un écrit le contenu de chaque paquet et le promène physiquement sur une autre machine et le tape. De toute évidence, cela ne serait pas particulièrement rapide, mais ce serait toujours IP à condition que la personne transportant les morceaux de papier respecte les règles de routage IP.

Dans le monde réel, il existe différents protocoles de liaison de données que vous utilisez déjà deux différents (bien que leurs schémas d'adressage soient les mêmes): 802.3 - Ethernet, et 802.11 - WiFi.

IP ne se soucie pas de la couche sous-jacente.

De même, IP peut être échangé pour différents protocoles de couche réseau (à condition que cela se produise pour tous les participants). Tels que ATM .

Bien que rien n'empêche directement la création d'un protocole qui englobe à la fois la couche 2 et la couche 3, il serait moins flexible, et donc moins attrayant, et donc peu susceptible d'être utilisé.

Paul
la source
2
Pour le réseau interne, vous devriez avoir utilisé RFC1149 . (Une description moins technique )
Scott Chamberlain
2
Quoi, comme utiliser des drapeaux de signaux manuels ?
Scott Chamberlain
1
@ScottChamberlain: J'adore l'art ASCII dans le signal des drapeaux un!
Fred Larson
5
IPoAC est un mauvais choix pour les communications internes; les pigeons fonctionnent mieux à l'extérieur qu'à l'intérieur
cpast
2
@ user2449761 personnes n'ont répertorié que les idiots. Au lieu d'Ethernet, vous pouvez utiliser Bluetooth, accès à distance, GPRS, LTE, USB, DSL, anneau à jeton, etc.
OrangeDog
8

Où serait prise cette décision de traiter ou d'ignorer le paquet? Aucune réponse n'est vraiment satisfaisante:

1) Dans le commutateur? Eh bien, cela signifierait que les commutateurs doivent comprendre chaque protocole qui détermine quels ordinateurs sont intéressés par quels paquets. Cela augmenterait non seulement le coût des commutateurs et réduirait leur vitesse, mais rendrait les modifications du protocole IP beaucoup plus difficiles à réaliser.

2) Dans le matériel de l'interface Ethernet? Eh bien, cela rendrait le réseau beaucoup plus lent car chaque paquet de données doit aller sur chaque machine. Des technologies comme le WiFi et les réseaux de pontage avec des ponts plus lents seraient impossibles. Il serait impossible de faire fonctionner Ethernet à des vitesses différentes en interopérant. Des technologies comme IPv6 ou IP multicast nécessiteraient des modifications matérielles pour être déployées dans toutes les stations d'extrémité Ethernet.

3) Dans le logiciel? Eh bien, cela rendrait les ordinateurs beaucoup plus lents car ils doivent faire face à un nombre beaucoup plus élevé d'interruptions d'interface réseau. Tous les problèmes de pontage, VPN et Wifi mentionnés ci-dessus seraient également des problèmes.

Tout cela rendrait Ethernet inutilisable sans IP et signifierait que des changements dans Ethernet seraient nécessaires pour effectuer des changements dans IP. Beurk.

La séparation des préoccupations est bonne.

David Schwartz
la source
De plus, il peut réduire considérablement les performances globales du réseau. Pour l'option 3, j'envoie un énorme fichier saturant mon réseau 1 Go, et soudain, tout le monde sur le réseau obtient également ce fichier et doit l'ignorer, et n'a pas la bande passante pour envoyer un fichier à quelqu'un d'autre qui ne fait pas partie du transfert de fichiers en cours.
PlasmaHH
la deuxième option ne décrit-elle pas comment fonctionne Ethernet? Toutes les interfaces reçoivent les mêmes paquets, mais une seule machine ne l'ignorera pas (sauf celles-ci en mode promiscuous). Les commutateurs sont là pour accélérer les choses ...
user2449761
2
@ user2449761 Tous les paquets ne sont envoyés à tous les ordinateurs que si vous utilisez un matériel réseau ancien doté de concentrateurs au lieu de commutateurs. Les concentrateurs étaient à l'origine une option pour des raisons de coût; mais maintenant que les commutateurs sont bon marché, plus personne ne les utilise.
Dan est en train de jouer par Firelight
@Dan, c'est de cela que je parle ...
user2449761
2
L'option 1 est déjà en cours. Il ne remplace pas l'utilisation des adresses MAC, du moins pas encore. Mais certains matériels de commutation peuvent être configurés pour utiliser l'adresse MAC de destination ou utiliser l'adresse IP de destination pour choisir l'interface sortante. Il est possible que dans 10 ou 20 ans, l'adresse MAC ne reste que pour des raisons historiques, et tout le routage des paquets se fera uniquement sur la base de l'adresse IP. La partie concernant les modifications de l'IP étant plus difficiles à déployer n'a pas été évitée de toute façon, car les routeurs de base ont été routés en fonction de l'adresse IP de destination dans le matériel pendant des années.
kasperd
3

L'adresse IP et les adresses MAC fonctionnent sur différentes couches de la suite de protocoles Internet . Les adresses MAC sont utilisées pour identifier les machines au sein du même réseau de diffusion sur la couche 2, tandis que les adresses IP sont utilisées sur la couche 3 pour identifier les machines sur différents réseaux.

Même si votre ordinateur possède une adresse IP, il a toujours besoin d'une adresse MAC pour trouver d'autres machines sur le même réseau, car chaque couche utilise des couches sous-jacentes. Sur la page mentionnée plus haut, vous pouvez trouver de jolis diagrammes expliquant en détail la suite de protocoles.

vembutech
la source
2

Le problème de congestion est rencontré par le réseau Ethernet à mesure qu'ils augmentent en taille. Ce retour peut étouffer le réseau et introduire un retard. C'est l'un des facteurs qui ont amené le concept de sous-réseau. Mais, avec les sous-réseaux, nous avons besoin d'une entité supplémentaire appelée routeur pour permettre au paquet de voyager d'une machine dans un sous-réseau à une machine dans un autre sous-réseau.

La distance parcourue par le câble Ethernet est une autre préoccupation majeure car elle peut limiter le succès des transmissions si elle dépasse une certaine limite. Cela a amené de nouvelles entités sous forme de concentrateur / répéteur.

Notez que tous les mécanismes de communication n'utilisent pas d'adresse MAC pour la communication. PPP et HDLC n'utilisent pas d'adresse MAC pour l'identification.

Notez également que certains réseaux n'utilisent pas Ethernet. Les réseaux en anneau à jeton nécessitent une couche de liaison de données différente.

Si vous envoyez un paquet du réseau A à un appareil du réseau B en l'adressant via l'adresse mac de l'appareil du réseau B, il sera déposé dans le réseau A lui-même. Notez que même s'il y a un routeur entre le réseau A et le réseau B, le routeur supprimera le paquet car le routeur fonctionne en recevant des paquets adressés à son adresse mac mais pour une adresse IP différente.

D'après les scénarios ci-dessus, il est très clair que l'Internet n'est pas un réseau plat en raison de divers réseaux locaux / privés. Il existe également diverses entités de réseau entre la source et la destination.

Étant donné qu'Internet n'est pas un réseau plat, l'adresse MAC n'est pas utilisée pour tous les types de communication et certains réseaux nécessitent une couche de liaison de données différente de celle d'Ethernet, nous avons besoin d'une adresse IP pour l'acheminer vers le nœud souhaité, quel que soit l'emplacement du nœud et cela est atteint avec la couche réseau.

Reportez-vous également à une discussion similaire dans /programming/26290069/arp-vs-ip-why-do-we-need-both

Karthik Balaguru
la source
En plus des exemples de «transporteurs aviaires», «signaux manuels» et «papier et crayon» de la couche 2 alternative, il y en a qui sont farfelus mais parfois utiles . IP via SMS, ou Facebook, ou même par e-mail. Ensuite, il y a les anciens SLIP, PPP et PPPoE de secours. Ces trois-là ne présentent PAS le même type de visage qu'une connexion Ethernet ou WIFI - mais tous ces éléments obtiennent l'IP et sont entièrement routables.
Ross Presser
2

Comme d'autres l'ont expliqué, vous avez besoin de protocoles de couche 2 pour le contrôle de la congestion dans votre réseau local. La couche 3 est utilisée pour le routage et l'adressage entre les réseaux.

Cela dit, une question valable pourrait être: pourquoi les deux couches ne peuvent-elles pas utiliser le même schéma d'adressage?

Première réponse: Comme d'autres l'ont mentionné, cela vous permet de changer de technologie L2 et / ou L3 et tout fonctionne toujours.

Deuxième réponse: même si tout le monde acceptait que les protocoles de couche 2 utilisent des adresses IP, il vous faudrait quand même utiliser deux adresses IP, une pour la couche 2 et une pour la couche 3. Pourquoi? NATting. Si votre ordinateur a une adresse IP publique, les adresses L2 et L3 peuvent être identiques. Cependant, si vous utilisez NATting, vos adresses L2 et L3 seraient différentes.

Dernier commentaire: lorsque vous dites que tout le monde reçoit le message et que les non-destinataires les ignorent, vous parlez de WiFi. Ethernet filaire ne fonctionne plus comme ça. C'était comme ça lorsque nous utilisions des câbles coaxiaux et plus tard lorsque nous utilisions des concentrateurs. Les commutateurs envoient uniquement les messages / paquets au port approprié (à moins que vous ne les attaquiez et que vous saturiez leurs tables).

cabad
la source
Je suis très heureux que vous ayez ajouté le dernier commentaire. Comme vous l'avez souligné: la congestion peut être gérée par les commutateurs. Les commutateurs ne peuvent utiliser que le schéma d'adressage IP. Je ne comprends pas non plus l'argument NATing: nous avons toujours besoin de deux adresses IP des deux côtés du NAT. Je pense que la question valable serait: pourquoi avons-nous besoin de couches DataLink et réseau distinctes dans les réseaux modernes? Je comprends que la séparation était nécessaire dans les années 70, lorsque l'anneau à jetons, les pigeons et les papiers étaient utilisés.
user2449761
0

Les adresses MAC et les adresses IP fonctionnent sur différents couches de réseau à des fins différentes. Se débarrasser de l'une des couches peut provoquer des problèmes, créer de la confusion ou empêcher les choses de fonctionner.

Disons que j'ai du matériel ancien (disons, un tour CNC d'un million de dollars) qui ne parle que IPX . Dans votre réseau IP uniquement, comment pourrait-on en parler? Ou dites que je connecte un ordinateur non configuré à un nouveau réseau. En l'absence d'adresses MAC, comment le serveur DHCP peut-il indiquer à mon ordinateur quelle adresse IP utiliser?

Disons que j'ai un serveur avec quatre connexions gigabit vers un commutateur de dorsale, agrégées en une seule connexion virtuelle. Dans votre réseau MAC uniquement, quelle est l'adresse de mon serveur? Ou dites que j'ai un ordinateur connecté via un modem PPPoA et que je n'ai pas d'adresse MAC. Comment peut-on s'y connecter?

marque
la source
0

Hmmm je pense que cela aurait pu être fait fonctionner (j'ai en fait / fait / assigné l'adresse MAC); cependant, si cela avait été fait, vous auriez dû acheter du nouveau matériel pour IPv6 et il n'y aurait probablement pas eu de chevauchement. Donc, dans l'ensemble, je n'aime pas les conséquences.

Joshua
la source
0

Le I dans IP signifie Internetworking Protocol.

Cela signifie qu'une IP est censée être unique parmi TOUS les réseaux dans le monde entier.

Les adresses IP sont censées être littéralement globales. Si vous envoyez du trafic vers 9.9.9.9, il est censé arriver partout où 9.9.9.9 est, peu importe où dans le monde 9.9.9.9 est physiquement ou quel réseau 9.9.9.9 est physiquement activé.

(Ceci est quelque peu cassé à cause du NAT. Lorsque TCP / IP a été inventé, le NAT ne faisait pas partie du plan d'origine, et c'est un "hack" jusqu'à ce que IPv6 devienne plus répandu là où il n'est pas nécessaire. Faire semblant que le NAT n'existe pas pour comprendre cette réponse.)

Une adresse MAC est censée être unique uniquement dans le réseau local sur lequel l'hôte réside. Il n'est pas conçu pour permettre la communication entre tout ce qui n'est pas sur le même réseau local. Il existe donc une limitation physique supposée avec les adresses MAC, mais aucune limitation de ce type avec les adresses IP.

TCP / IP est basé sur la notion que:

  • il existe des réseaux locaux où les systèmes peuvent communiquer directement sans qu'un routeur soit impliqué
  • Parfois, les ordinateurs d'un réseau veulent parler aux ordinateurs d'un autre et ont besoin d'un routeur pour cela.

S'il existait un autre mécanisme fondamental où les deux concepts ci-dessus ne s'appliquent pas, IP et MAC ne seraient pas nécessaires comme ils le sont actuellement.

Si vous concevez un protocole ou quelque chose d'autre qui n'a absolument jamais besoin de parler à des machines en dehors du même réseau local, alors c'est une bonne idée de simplement s'en tenir aux adresses MAC. Je pense que le protocole ATA sur Ethernet est comme ça, car il est conçu pour permettre le partage de disques ATA sur le même réseau et non via Internet à des fins de sécurité.

LawrenceC
la source
0

J'ai juste eu des pensées similaires. Mais je me suis rendu compte que vous avez besoin d'une couche MAC. Pas même à des fins de changement!

Le problème inévitable est que vous avez autre chose que le protocole IP, même si nous parlons d'IP, il y a IPv4 et IPv6. Comment le périphérique réseau sait-il de quel appareil il s'agit? vous avez donc besoin de MAC comme couche d'amorçage, dans le domaine du protocole, c'est la couche suivante, qui vous indique ce qui est transporté sur MAC.

XYZ
la source
-2

Vous êtes bloqué en ne pensant qu'à une seule couche OSI. IP ne fonctionne que parce qu'Ethernet (et d'autres) existe, de la même manière qu'Ethernet n'existe que parce qu'il y a des fils physiques pour transporter le trafic. Ce n'est pas "IP ou MAC" - le routage du trafic nécessite des adresses MAC pour fonctionner: la technologie IP (ainsi que d'autres technologies, liées et non liées) se trouve en plus de cela. Vous ne pouvez pas simplement échanger l'un contre l'autre.

Courses de légèreté avec Monica
la source
-6

IP dynamiques mon ami! Dans votre environnement local (votre maison, votre collège, votre lieu de travail), vous avez une configuration réseau. Il n'est pas connecté directement à Internet (avec un «I» majuscule) mais via un routeur. Ce routeur obtient une adresse IP dynamique (dans la plupart des cas, sauf si vous en avez une statique) de votre FAI et attribue des adresses dynamiques (mêmes «mais» que ci-dessus) à tous les ordinateurs connectés. Pourquoi est-ce fait comme ça? En ligne, pour fournir un service à plus d'utilisateurs que d'IP que vous avez. Le fait est que vous devez être en mesure d'identifier votre MacBook Pro (: D) parmi tous les autres ordinateurs, vous avez donc besoin d'une adresse UNIQUE, pas dynamique / partagée. C'est ton mac. Et c'est pourquoi vous en avez besoin.

Vous pouvez lire plus loin ici

tfrascaroli
la source
2
Ce n'est vraiment pas une raison pour utiliser des adresses MAC.
Daniel B
1
Le fait est que tous les ordinateurs n'ont pas une adresse IP unique, parfois vous n'en voulez même pas, c'est donc un bon argument pour qu'ils aient une adresse LAN distincte, ce qui est une adresse MAC.
reinierpost
1
Oui, ils le font. Tout ce qui est routable sur Internet est, par définition, uniquement adressable. Sinon, Internet ne fonctionnerait pas. Il y a des choses comme NAT qui violent ce soi-disant principe de bout en bout. En cas de NAT, vous avez également une adresse LAN distincte.
Daniel B
@DanielB Je suis sûr que ce n'est pas vrai, mais peut-être que je vous comprends mal. Par exemple: pouvez-vous me dire comment vous vous adresseriez de façon unique à ce PC sur lequel je tape, qui se trouve sur un réseau privé local, d'où vous êtes, sans connexion précédente établie? Et si vous vouliez plutôt vous adresser à l'ordinateur à côté de celui-ci?
SevenSidedDie
@DanielB Bien sûr, ce n'est pas la raison. Question de l'OP: tous les ordinateurs ne peuvent-ils pas simplement être connectés au réseau unifié et utiliser des adresses IP pour communiquer? Ma réponse fournit des informations sur cette question, pas sur votre question hypothétique , qui irait dans le sens de: "Pourquoi utilisons-nous des adresses MAC sur le modèle Ethernet?". Puisqu'il / elle demande pourquoi nous ne pouvons pas simplement utiliser des IP, il y a ma réponse. Veuillez lire attentivement la prochaine fois avant de voter :)
tfrascaroli