Trames Ethernet brutes

10

Récemment, j'ai été intrigué par les articles suivants sur les trames Raw-Ethernet:

Ethernet RAW vs transmission de messages UDP à l'
aide de trames Ethernet brutes

En bref, les deux discutent de la possibilité d'établir une communication point à point en utilisant uniquement la couche Ethernet. Dans ce cas, le surdébit des couches IP et TCP serait évité et le débit augmenterait (environ 50% selon certains benchmarks).

Je voudrais faire un test similaire mais dans un environnement sans fil. Cependant, j'ai quelques problèmes:

1er problème
Y a-t-il une contrainte matérielle (c'est-à-dire: la carte Wi-Fi) qui pourrait saper cet effort?

2e numéro
Les deux articles ont choisi le format de cadre suivant:

Préambule | Délimiteur | En-têtes Mac | Charge utile | Pad | CRC

Pour autant que je sache, le préambule, le délimiteur, le pad et le CRC sont ajoutés par le périphérique Ethernet à chaque trame et ne peuvent pas être modifiés via le logiciel. Je suppose que les appareils Wi-Fi sont similaires. Par conséquent, y a-t-il une contrainte matérielle (c'est-à-dire: la carte Wi-Fi) qui compromettrait la suppression des en-têtes Mac?

ps: considérez que la communication se fera point à point, c'est-à-dire qu'il n'y aura pas de routeurs, commutateurs, ponts, ... pas de connectivité internet.

Mark Messa
la source
2
Le trafic non IP sur Ethernet fait partie du réseau depuis des décennies, donc je ne suis pas vraiment clair sur ce que vous essayez vraiment d'obtenir une réponse et vous devez peut-être en savoir un peu plus sur les bases du réseau. Il n'y a rien de tel qu'une «carte Ethernet sans fil», car 802.3 Ethernet et 802.11 sans fil sont deux normes entièrement différentes. En tant que tel, votre format de trame dans le 2e numéro ne s'appliquerait pas du tout à un réseau 802.11, mais les trames ont certaines exigences selon les normes, c'est pourquoi de nombreux composants de la trame que vous répertoriez ne sont pas configurables.
Apprendre
1
@YLearn Le trafic non IP sur Ethernet fait partie du réseau depuis des décennies, ok, mais à cette époque, les périphériques Ethernet n'étaient pas aussi `` intelligents '' qu'aujourd'hui, et une grande partie du travail a été effectuée par le CPU. Je me demandais si le coût d'être «intelligent» perd de sa flexibilité.
Mark Messa
@YLearn ne s'appliquerait pas du tout à un réseau 802.11 Ok, je suis conscient que les autres ordinateurs connectés à un réseau 802.11 standard ne reconnaîtraient pas ces trames comme valides. Cependant, est-il possible d'envoyer / recevoir de telles trames? Ou le matériel ne le permettra pas?
Mark Messa
@MarkMessa, les trames d'un hôte à un autre hôte sur le même LAN seront reçues par le deuxième hôte. La question est de savoir si elles seront ou non transmises aux couches supérieures de la pile réseau à l'intérieur de l'hôte. Si l'hôte récepteur ne dispose que d'une pile IP et que la charge utile de la trame n'est pas IP, les données seront ignorées. Vous devez vous renseigner sur le modèle OSI pour avoir une idée générale de la façon dont les données sont transmises d'un hôte à un autre.
Ron Maupin
@MarkMessa, concernant votre premier commentaire, bien que les périphériques Ethernet soient "plus intelligents", Ethernet fonctionne toujours comme Ethernet. 802.3 n'a jamais utilisé et n'exigera jamais l'utilisation de l'IP. Par exemple, bien qu'il soit rare, Ethernet aujourd'hui continuera de prendre en charge Appletalk ou IPX / SPX avec autant de bonheur que jamais, ou sans aucun protocole de couche supérieure (de nombreuses choses n'utilisent toujours que L2 pour la communication). Quant à votre deuxième commentaire, je ne sais pas trop ce que vous entendez par "est-il possible d'envoyer / recevoir de telles trames". Vous ne pouvez pas envoyer de trames 802.3 sur 802.11, mais il n'y a que des communications 802.11 n'impliquant pas IP.
Apprendre

Réponses:

8

Premièrement, le Wi-Fi (IEEE 802.11) n'est pas plus Ethernet (IEEE 802.3) que l'anneau à jeton (IEEE 802.5) ou l'une des autres normes LAN IEEE autres que 802.3 est Ethernet. Les en-têtes de trame sont différents pour le Wi-Fi et l'Ethernet.

Le Wi-Fi, l'Ethernet, le Token Ring, le FDDI, etc. sont tous des normes LAN pour OSI couche 1 et couche 2 qui encapsulent les datagrammes pour les protocoles de couche supérieure. Chacun peut transporter des protocoles de couche 3, dont IP n'est qu'un.

Vous êtes libre de créer le vôtre ou d'utiliser l'un des protocoles de couche 3 existants pour l'un des protocoles LAN IEEE, mais vous aurez besoin d'avoir la trame pour le protocole LAN que vous choisissez. Ne vous attendez pas à pouvoir interagir avec n'importe quel appareil qui n'exécute pas votre pile de protocoles, et vous ne pouvez pas vous attendre à ce qu'il s'exécute sur des routeurs qui n'ont pas votre pile de protocoles (cela signifie pas d'Internet qui utilise IP). Les ponts comme les commutateurs Ethernet ou les WAP transporteront vos protocoles de couche supérieure car ils fonctionnent sur la couche 2, vous pouvez donc créer un LAN.

Vous aurez besoin d'avoir l'en-tête de trame pour le type de LAN que vous utilisez. D'une part, comment un hôte envoie-t-il réellement à un autre hôte sans l'adresse de couche 2 dans la trame. Je pense que vous revenez essentiellement à la communication série comme RS-232 qui n'a ni trame ni en-tête, mais elle s'appuie sur des fils supplémentaires pour le contrôle des données.

Ron Maupin
la source
Le Wi-Fi (IEEE 802.11) n'est pas Ethernet (IEEE 802.3) Ok, je viens de changer une partie de la question pour éviter cette confusion. Maintenant, complètement hors du sujet, juste pour y penser: plusieurs produits sont annoncés comme «LAN Ethernet sans fil».
Mark Messa
J'ai vu de telles choses, mais cela ne veut pas dire que c'est correct. Les trames Wi-Fi et Ethernet sont différentes, et Ethernet utilise la détection de collision, mais le Wi-Fi utilise l'évitement de collision. D'autres réseaux locaux utilisent des éléments tels que des jetons pour éviter complètement les collisions. Ce sont tous des LAN différents, et certaines publicités ne font pas d'eux la même chose.
Ron Maupin
cela ne veut pas dire que c'est correct. D'accord, je suis d'accord avec toi. Merci de me corriger. Je connais des différences telles que CSMA / CD, CSMA / CA et les jetons. Cependant, j'ai été aveuglé par des publicités comme «Le Wi-Fi est le LAN Ethernet sans fil».
Mark Messa
vous ne pouvez pas non plus vous attendre à ce qu'il s'exécute sur des routeurs. Il n'y aura pas de routeurs, de commutateurs ou de ponts, seulement une communication point à point. Je viens de modifier la question pour éviter cette confusion.
Mark Messa
1
@MarkMessa Je ne veux pas éviter d'utiliser des frames, je pense juste à éviter d'utiliser l'en-tête MAC. C'est pourquoi votre demande prête à confusion. Vous ne semblez pas comprendre que sans les en-têtes L2, ils ne sont plus des trames Ethernet ou 802.11. Vous devez écrire votre propre protocole L2 pour fonctionner sans les en-têtes L2 présents dans 802.3 ou 802.11.
Apprendre
7

Sur la base de vos questions et commentaires, je pense que vous manquez le point des deux articles auxquels vous faites référence.

Quand ils parlent de «Ethernet brut», ils parlent de trames de données qui ne contiennent aucun en-tête IP (L3) ou TCP / UDP (L4). Ils ne parlent pas d'utiliser des trames L2 sans en-têtes L2.

Sans les en-têtes L2, une trame ne serait ni une trame 802.3 (Ethernet) ni une trame 802.11. Ce serait tout autre chose. Un protocole L2 distinct.

Existe-t-il une contrainte matérielle (c'est-à-dire: la carte Wi-Fi) qui pourrait saper cet effort?

De ne pas inclure les en-têtes L2? Absolument. Vous devrez spécifier un adaptateur spécifique pour obtenir une réponse spécifique, mais je doute que vous puissiez même écrire des pilotes qui fonctionneraient avec la plupart des adaptateurs 802.3 ou 802.11 qui n'incluaient pas les en-têtes L2. Je suppose que la plupart des adaptateurs rejetteraient / supprimeraient le cadre comme mal formé avant de l'envoyer ou lors de sa réception.

D'envoyer juste une trame 802.3 ou 802.11 qui n'inclut pas d'en-têtes IP ou TCP / UDP? Non. Cela se produit tout le temps dans le cadre des opérations réseau normales et depuis des décennies (au moins pour 802.3; 802.11 n'a pas été aussi long mais au moins une décennie).

Par conséquent, y a-t-il une contrainte matérielle (c'est-à-dire: la carte Wi-Fi) qui compromettrait la suppression des en-têtes Mac?

Voir au dessus.

YApprendre
la source
la plupart des adaptateurs rejetteraient / laisseraient tomber le cadre, je suppose que cela répond à ma question. Plus tard, je soumettrai ma propre réponse afin de ne pas perdre tous les commentaires «éphémères» intéressants.
Mark Messa
rejeter / déposer le cadre comme mal formé avant de l'envoyer ou de le recevoir. Pour autant que je sache, en mode moniteur, vous pouvez entendre tout type de trames, même celles qui sont mal formées (ex: mauvais CRC). Cependant, curieusement, le matériel ne vous permet pas de diffuser des images sans en-têtes MAC.
Mark Messa
petite correction: Cependant, curieusement, l' adaptateur ne vous permet pas de diffuser des images sans en-têtes MAC.
Mark Messa
2
@MarkMessa "Pour autant que je sache, en mode moniteur, vous pouvez entendre tout type de trames, même celles qui sont mal formées (ex: mauvais CRC)" Cela dépend entièrement de l'appareil en question. De nombreux adaptateurs (y compris les commutateurs) les traiteront et les supprimeront avant même de les envoyer pour être capturés / mis en miroir / étendus. Souvent, vous ne verrez même pas la bande-annonce Ethernet avec le CRC dans les captures.
YLearn
1

Je voudrais faire un test similaire mais dans un environnement sans fil.

Regardez Wifibroadcast (Linux, certains support Android) qui fait exactement cela. Bref résumé: il utilise une paire d'adaptateurs wifi, l'un en mode injection, l'autre en mode moniteur, et transmet les données à l'aide de trames wifi brutes. Il s'agit d'une connexion unidirectionnelle. Bien qu'à l'origine conçu comme une méthode pour transmettre un flux vidéo à faible latence, il peut bien sûr être utilisé pour toutes sortes de données.

Existe-t-il une contrainte matérielle (c'est-à-dire: la carte Wi-Fi) qui pourrait saper cet effort?

Oui. Il existe des adaptateurs qui fonctionnent mieux et des adaptateurs qui fonctionnent moins bien, voire pas du tout. Certains adaptateurs en mode brut ne peuvent pas contenir un débit élevé, certains adaptateurs doivent avoir leur firmware modifié. Certains adaptateurs fonctionnent dans la bande 2,4 GHz et certains en 5 GHz et certains dans les deux.

Radovan Garabík
la source
0

Oui. En théorie , vous pouvez exécuter un Ethernet point à point comme ça. Les deux points de terminaison devraient être en mode promiscuité pour supprimer les en-têtes MAC Ethernet 802.3 (sinon les trames n'appartiennent à aucune des cartes réseau et seraient ignorées.) Bien sûr, cela signifie que vous n'exécutez pas «Ethernet».

Ricky Beam
la source
mode promiscuité C'est une question très importante que j'espérais soulever. En mode promiscuité, les trames adressées à une adresse MAC différente de la vôtre ne seraient pas supprimées par la carte Wi-Fi. Cependant, la même chose n'est pas vraie pour BSSID (corrigez-moi si je me trompe). Si le cadre n'est pas adressé à votre BSSID, la carte Wi-Fi le supprimera. Est-il possible d'éviter cela et de recevoir TOUS les cadres atteignant votre carte? (mode moniteur?)
Mark Messa
mode promiscuous pour supprimer les en-têtes MAC Ethernet 802.3 Sur la base de la réponse @YLearn, il semble que le matériel n'accepte pas les trames sans en-têtes L2.
Mark Messa