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.
la source
Réponses:
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.
la source
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.
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).
Voir au dessus.
la source
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.
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.
la source
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».
la source