web-dev-qa-db-fra.com

Puis-je créer un réseau Ethernet sans utiliser IP

Si que je comprends au modèle ISO-OSI, les adresses MAC fonctionnent sur une couche différente de celle des adresses IP. Ceci est clair pour moi.

Je peux accepter que Ethernet (LAN) n'utilise tout simplement pas d'adresses IP pour la communication, mais utilise des adresses MAC. Je comprends que ces adresses MAC ne peuvent pas être utilisées pour router en dehors d'un réseau local, car elles ne sont pas définies hiérarchiquement. Je comprends aussi que la propriété intellectuelle est la meilleure façon de rouler sur le grand internet. Ce que je ne suis pas entièrement convaincu, est que les adresses MAC sont la meilleure façon de communiquer dans un réseau local


Mes questions sont les suivantes:

  1. Ethernet n'a pas pu utiliser d'adresses IP pour envoyer des messages? Je ne dis pas que cela devrait, je demande simplement si cela aurait pu choisir de le faire.
  2. Comme Ethernet utilise des adresses MAC pour la communication, pourrais-je créer un réseau Ethernet où les périphériques n'auraient pas d'adresse IP, juste une adresse MAC?
14
Michael

Ethernet pourrait-il avoir utilisé des adresses IP au lieu de ses propres adresses de couche de liaison de données? Certes non, s'il voulait être agnostique sur le protocole de la couche-3, il utilisait.

Nous concevons des protocoles de réseautage en couches afin que nous puissions mélanger des couches-matchs.

Ethernet a été développé à l'origine par Bob Metcalfe et Alia chez Xerox Parc pour être une couche de réseau agnostique, car leur objectif n'était pas seulement un accès TCP/IP, mais également pour la propre pile/la suite de Xerox Protocole de réseau XNNS.

Dec (Société d'équipement numérique) est devenu un autre adoptant précoce, en l'utilisant principalement pour sa pile/une suite de protocole Decnet.

À la fin des années 80 et au début des années 90, il y avait beaucoup de suites de protocole LAN concurrentes (totalement indépendantes de TCP/IP) en cours sur la société Ethernet Lans. Outre XnS and Decnet, il y avait AppleTalk (Ettertalk) d'Apple, IPX de Novell, Vines Banyan, NetBeui, DLC/LLC, IBM SNA, OSI/ISO, et d'autres que j'ai oubliés.

Donc, oui, vous pouvez utiliser Ethernet sans IP. Beaucoup de réseaux de sociétés l'ont fait dans les années 80 et 90.

Parce que Ethernet a été conçu pour ne pas se soucier du protocole de la couche-3 (couche de réseau) qui s'allongeait, il était relativement facile pour les LANs d'entreprise de soutenir des mélanges de divers équipements de fournisseurs, et il était relativement facile pour ces LANS d'ajouter IPv4 Soutien lorsque Internet a décollé au milieu de la fin des années 90, et il a été relativement facile pour nous d'ajouter du support IPv6 maintenant.

5
Spiff

Comme Ethernet utilise des adresses MAC pour la communication, pourrais-je créer un réseau Ethernet où les périphériques n'auraient pas d'adresse IP, juste une adresse MAC?

Si vous écriviez tous vos propres logiciels à partir de zéro, vous pourriez certainement le faire. Demagez-vous simplement que le logiciel accepte une adresse MAC n'importe où que la contrepartie normale de ce programme aurait accepté une adresse IP. Utilisez tous les appels système pour envoyer des paquets Ethernet bruts plutôt que pour l'adresse IP et cela fonctionnera - mais ce serait un problème énorme.

En règle générale, les adresses MAC sur votre réseau ne suivent aucun modèle. Ils sont brûlés dans le matériel par le fabricant. Ils sont longs et volumineux. Le mien en ce moment est C8-60-00-CA-4B-9A. L'ordinateur à côté de moi est 00-40-f4-48-1b-88.

Pour que les machines puissent être capables de vous parler, vous pouvez donner à chaque machine une liste de toutes les adresses MAC de toutes les autres machines du réseau afin qu'il sache où envoyer des paquets. Il s'agit de nombreuses erreurs de taper des erreurs, et à tout moment, vous avez modifié votre matériel de réseautage, vous devez faire le tour et modifier toutes les listes pour refléter les nouvelles adresses MAC.

Il s'agit d'un énorme tracas, vous finiriez donc probablement de monter avec une manière pour les machines du réseau pour découvrir automatiquement les adresses MAC des autres à l'aide de paquets de diffusion. Ensuite, vous leur donneriez un moyen de s'identifier à une adresse significative, vous devez donc taper des commandes telles que "Telnet C8-60-00-CA-4B-9A".

Il s'avère que c'est exactement ce que IP est un moyen d'utiliser des numéros significatifs pour adresser des hôtes sur un réseau plutôt que des adresses MAC de codage dur. Ajouter en DNS sur IP et vous pouvez taper la commande comme "Telnet Webserver".

Impossible d'utiliser Ethernet utiliser des adresses IP pour envoyer des messages? Je ne dis pas que cela devrait, je demande simplement si cela aurait pu choisir de le faire.

Les adresses MAC sont de 6 octets d'informations et d'adresses IP ne sont que de 4 octets. Vous ne pouvez donc rien faire de 1 à 1 cartographie. Vous avez besoin d'une bonne façon de trouver l'adresse MAC (à mettre dans le paquet) à partir d'une adresse IP (fournie par le logiciel qui souhaite communiquer avec un autre hôte sur le réseau).

Un moyen (noyau dur) de faire cela serait d'accéder à chaque machine du réseau et de modifier son adresse MAC matérielle pour ressembler à une adresse IP en faisant les deux octets les plus élevés d'octets (ou un autre nombre fixe qui est identique. Pour chaque machine sur le réseau) et définissez les quatre octets inférieurs sur "l'adresse IP", vous souhaitez qu'ils disposent du réseau. (La plupart des cartes réseau vous permettront d'entrer et de modifier l'adresse MAC attribuée au fournisseur)

Pour que cela fonctionne réellement, vous devrez également pirater le code de votre pile de réseau pour utiliser ce système. Vous allez essentiellement déchirer que tout devoir faire avec ARP (la méthode utilise la propriété intellectuelle pour traduire les adresses IP en adresse MAC). Vous arrachez les pièces qui construisent/lire des en-têtes IP. Au lieu de cela, vous remplaceriez tout le tout avec le code très simple que, étant donné qu'un paquet IP soit envoyé à l'hôte à l'adresse W.X.Y.Z, construire une trame Ethernet avec l'adresse DE DEST définie sur 00-00-W-X-Y-Z.

Vous auriez également besoin d'un moyen d'indiquer au récepteur d'un paquet que le protocole (UDP, TCP) est destiné. Vous pouvez probablement rester cela quelque part dans l'en-tête Ethernet en remplaçant un champ existant. Peut-être utiliser l'un des deux meilleurs octets de l'adresse source? Cela n'aurait pas affecter la capacité des machines de destination à recevoir, mais pourrait gâcher certains commutateurs. Vous pouvez également ajouter le protocole au début ou à la fin de la structure Ethernet et augmenter la taille de la charge utile par un - mais cela commence à sentir une en-tête IP.

Alors, qu'est-ce que tout ce travail vous achèterait?

D'abord, il vous ferait économiser la surcharge d'une recherche dans la table ARP sur chaque paquet sortant. Ceci est probablement sur l'ordre des microsecondes uniquement.

Vous enregistrez le travail des checksums d'en-tête IP informatique et la mémoire nécessaire pour les maintenir. Ce n'est probablement pas significatif sur le matériel moderne.

Vous économisez 16 octets dans chaque paquet sur le réseau car il n'y aurait pas d'en-têtes IP. Cela pourrait ajouter en fonction de l'application.

Le plus grand gain serait que vous ne seriez pas obligé de faire des demandes ARP. Envoi d'un paquet IP standard à un nouvel hôte déclenche un échange ARP pouvant prendre des millisecondes et est imprévisible. Cela peut être un gain énorme pour certaines applications très sensibles à la latence et à la gigue.

Pour certaines applications très spécialisées, cela a du sens à faire. Une fois, j'ai travaillé un système en temps réel qui utilise uniquement des paquets UDP de diffusion pour toutes les communications entre hôtes pour la seule raison pour laquelle il a évité que ces séquences d'ARP, ajoutez et d'ajouter de manière imprévisible le délai et la gigue. J'ai également déjà travaillé sur un système intégré limité à la ressource qui a fonctionné en envoyant directement des charges utiles à l'intérieur des paquets IP (aucun en-tête IP), car il a enregistré toute la complexité et la mémoire nécessaires pour mettre en œuvre tous les éléments de contrôle de l'ARP et du Netmask et des crédits supplémentaires.

4
bigjosh

Ethernet n'a pas pu utiliser d'adresses IP pour envoyer des messages? Je ne dis pas que ça devrait, je demande juste si cela aurait pu choisir de le faire

Je suppose que Ethernet aurait pu utiliser des adresses de quatre octets tels que IPv4 au lieu d'adresses de six octets. C'est probablement bon qu'ils ne l'étaient pas comme ils risquaient de sortir de chiffres d'ici je parierais.

Comme Ethernet utilise des adresses MAC pour la communication, pourrais-je créer un réseau Ethernet où les périphériques n'auraient pas d'adresse IP, juste une adresse MAC?

Vous pouvez, si vous avez des programmes qui fonctionneront avec des adresses MAC au lieu d'adresses IP. Bien sûr, vous serez coincé sur ce réseau et vous ne pouvez pas atteindre d'autres personnes sans piratage.

Vous n'avez vraiment besoin que de la couche IP si vous envisagez de faire routage, en particulier si un autre réseau peut utiliser une technologie de couche 2 différente que Ethernet, telle que la bague de jeton, qui était une possibilité réelle lorsque la plupart d'entre elles a été développée. Qui sait si une autre technologie de couche 2 peut devenir omniprésente à l'avenir, dans l'affirmative, IP est indépendante de celle-ci.

1
LawrenceC
> Couldn't Ethernet make use of IP addresses to send messages? I'm not
> saying it should, I'm just asking if it could have chosen to do so.

Si vous vous référez à Ethernet comme couche de réseau, non, cela ne peut pas. La couche de réseau nécessite l'adresse physique du périphérique réseau. Une adresse IP est un numéro arbitraire attribué à une adresse MAC pour la simplicité. Les adresses IP sont une solution logicielle et non une partie de la carte réseau - la solution matérielle. C'est pourquoi les adresses IP peuvent être facilement modifiées, tandis que les adresses MAC sont codées sur la carte et ne peuvent pas être modifiées (nonobstant le logiciel d'entrepoofing Mac-Adresse, ce qui ne change toujours pas l'adresse qui se situe à propos de l'adresse )

> As Ethernet uses MAC addresses for communication, could I create an
> Ethernet network where devices would not have an IP address, just a
> MAC address?

Oui, vous pourriez, mais vous n'auriez pas aimé l'utiliser, car la fonctionnalité serait très limitée et non conviviale du tout. Il y a une raison pour laquelle la couche de transport a été mise en œuvre.

De Wikipedia , la couche de transport contrôle la fiabilité d'un lien donné via la commande de flux, la segmentation/la déségmentation et le contrôle des erreurs. Certains protocoles sont axés sur l'état et la connexion. Cela signifie que la couche de transport peut garder une trace des segments et retransmettre ceux qui échouent. La couche de transport fournit également l'accusé de réception de la transmission de données réussie et envoie les données suivantes si aucune erreur n'est produite.

Ainsi, sans utiliser la couche de transport, qui désigne actuellement le protocole TCP/IP, vous ne seriez pas la possibilité d'assurer que vos données ont atteint sa destination, ni avoir la possibilité de réinitialiser automatiquement les pièces manquantes.

0