Vor kurzem haben mich die folgenden Artikel über Raw-Ethernet-Frames verwirrt:
RAW-Ethernet vs. UDP-
Nachrichtenübermittlung mit Raw-Ethernet-Frames
Beide diskutieren kurz, dass es möglich ist, eine Punkt-zu-Punkt-Kommunikation nur über die Ethernet-Schicht herzustellen. In diesem Fall würde der Overhead der IP- und TCP-Schichten vermieden und der Durchsatz erhöht (nach einigen Benchmarks ungefähr 50%).
Ich würde gerne einen ähnlichen Test machen, aber in einer drahtlosen Umgebung. Ich habe jedoch einige Probleme:
1. Problem
Gibt es Hardwareeinschränkungen (z. B. die Wi-Fi-Karte), die diese Bemühungen untergraben könnten?
2. Ausgabe
Beide Artikel wählten das folgende Rahmenformat:
Präambel | Trennzeichen | Mac-Header | Nutzlast | Pad | CRC
Soweit ich weiß, werden Präambel, Trennzeichen, Pad und CRC vom Ethernet-Gerät zu jedem Frame hinzugefügt und können nicht per Software geändert werden. Ich denke mit Wi-Fi-Geräten ist ähnlich. Gibt es daher Hardwareeinschränkungen (z. B. die Wi-Fi-Karte), die das Entfernen der Mac-Header untergraben würden?
ps: bedenke, dass die Kommunikation auf Punkt-zu-Punkt-Basis erfolgt, dh es gibt keine Router, Switches, Bridges, ... keine Internetverbindung.
quelle
Antworten:
Erstens ist Wi-Fi (IEEE 802.11) nicht mehr Ethernet (IEEE 802.3) als Token Ring (IEEE 802.5), oder andere IEEE LAN-Standards als 802.3 sind Ethernet. Die Frame-Header unterscheiden sich für Wi-Fi und Ethernet.
Wi-Fi, Ethernet, Token Ring, FDDI usw. sind alle LAN-Standards für OSI-Schicht 1 und Schicht 2, die Datagramme für Protokolle der oberen Schicht kapseln. Jeder kann Layer-3-Protokolle transportieren, von denen IP nur eines ist.
Es steht Ihnen frei, ein eigenes zu erstellen oder eines der vorhandenen Layer-3-Protokolle für eines der IEEE-LAN-Protokolle zu verwenden. Sie benötigen jedoch den Rahmen für das von Ihnen ausgewählte LAN-Protokoll. Erwarten Sie nicht, dass Sie mit einem Gerät zusammenarbeiten können, auf dem Ihr Protokollstapel nicht ausgeführt wird, und Sie können auch nicht erwarten, dass es über Router ausgeführt wird, auf denen Ihr Protokollstapel nicht vorhanden ist (dies bedeutet, dass kein Internet IP verwendet). Bridges wie Ethernet-Switches oder WAPs transportieren Ihre Protokolle der oberen Schicht, da sie auf Schicht 2 funktionieren, sodass Sie ein LAN erstellen können.
Sie benötigen den Frame-Header für den LAN-Typ, in dem Sie sich befinden. Zum einen, wie sendet ein Host tatsächlich an einen anderen Host ohne die Layer-2-Adresse im Frame. Ich denke, Sie kehren im Grunde genommen zur seriellen Kommunikation wie RS-232 zurück, die keinen Frame oder Header hat, aber für die Datensteuerung zusätzliche Kabel benötigt.
quelle
Aufgrund Ihrer Fragen und Kommentare fehlt Ihnen meiner Meinung nach der Punkt der beiden Artikel, auf die Sie verweisen.
Wenn es sich um "Raw Ethernet" handelt, handelt es sich um Datenrahmen, die keine IP- (L3) oder TCP / UDP- (L4) Header enthalten. Sie sprechen nicht über die Verwendung von L2-Frames ohne L2-Header.
Ohne die L2-Header wäre ein Frame weder ein 802.3 (Ethernet) noch ein 802.11-Frame. Es wäre etwas ganz anderes. Ein separates L2-Protokoll.
Ohne L2-Header? Absolut. Sie müssten einen bestimmten Adapter angeben, um eine bestimmte Antwort zu erhalten, aber ich bezweifle, dass Sie sogar Treiber schreiben können, die mit den meisten 802.3- oder 802.11-Adaptern funktionieren, die die L2-Header nicht enthalten. Ich vermute, dass die meisten Adapter den Frame entweder vor dem Senden oder nach dem Empfang als fehlerhaft ablehnen / löschen würden.
Nur einen 802.3- oder 802.11-Frame ohne IP- oder TCP / UDP-Header senden? Nein. Dies geschieht ständig im Rahmen des normalen Netzwerkbetriebs und seit Jahrzehnten (zumindest für 802.3; 802.11 gibt es nicht so lange, aber mindestens ein Jahrzehnt).
Siehe oben.
quelle
Schauen Sie sich Wifibroadcast (Linux, einige Android-Unterstützung) an, das genau das tut. Kurze Zusammenfassung: Es werden zwei WLAN-Adapter verwendet, einer im Injektionsmodus und der andere im Überwachungsmodus. Die Daten werden mithilfe von rohen WLAN-Frames übertragen. Dies ist eine unidirektionale Verbindung. Während es ursprünglich als Methode zur Übertragung von Video-Feeds mit geringer Latenz konzipiert wurde, kann es natürlich für alle Arten von Daten verwendet werden.
Ja. Es gibt Adapter, die besser funktionieren, und Adapter, die, wenn überhaupt, weniger gut funktionieren. Einige Adapter im Raw-Modus können keinen hohen Durchsatz enthalten. Bei einigen Adaptern muss die Firmware geändert werden. Einige Adapter arbeiten im 2,4-GHz-Band und einige im 5-GHz-Band und einige in beiden.
quelle
Ja. Theoretisch können Sie so ein Punkt-zu-Punkt-Ethernet ausführen. Beide Endpunkte müssten sich im Promiscuous-Modus befinden, um die 802.3-Ethernet-MAC-Header zu entfernen (andernfalls gehören die Frames zu keiner der Netzwerkkarten und werden ignoriert). Dies bedeutet natürlich, dass Sie kein "Ethernet" ausführen.
quelle