Recentemente, fiquei intrigado com os seguintes artigos sobre quadros Raw-Ethernet:
Ethernet RAW vs. UDP que
passa mensagens usando quadros Ethernet brutos
Resumidamente, os dois discutem que é possível estabelecer uma comunicação ponto a ponto usando apenas a camada Ethernet. Nesse caso, a sobrecarga das camadas IP e TCP seria evitada e a taxa de transferência aumentaria (aproximadamente 50% de acordo com alguns parâmetros de referência).
Eu gostaria de fazer um teste semelhante, mas em um ambiente sem fio. No entanto, tenho alguns problemas:
1ª questão
Existe alguma restrição de hardware (ou seja, a placa Wi-Fi) que possa prejudicar esse esforço?
2ª edição Os
dois artigos escolheram o seguinte formato de quadro:
Preâmbulo Delimitador Cabeçalhos para Mac | Carga útil | Almofada | CRC
Tanto quanto eu sei, preâmbulo, delimitador, pad e CRC são adicionados pelo dispositivo Ethernet a cada quadro e não podem ser alterados via software. Eu acho que com dispositivos Wi-Fi é semelhante. Portanto, existe alguma restrição de hardware (ou seja, a placa Wi-Fi) que comprometeria a remoção dos cabeçalhos do Mac?
ps: considere que a comunicação será ponto a ponto, ou seja, não haverá roteadores, switches, pontes, ... nenhuma conexão à Internet.
fonte
Respostas:
Primeiro, o Wi-Fi (IEEE 802.11) não é ethernet (IEEE 802.3), assim como o token ring (IEEE 802.5) ou qualquer outro padrão de LAN IEEE que não seja o 802.3 é ethernet. Os cabeçalhos dos quadros são diferentes para Wi-Fi e Ethernet.
Wi-Fi, ethernet, token ring, FDDI etc. são todos os padrões de LAN para OSI camada 1 e camada 2, que encapsulam datagramas para protocolos da camada superior. Cada um pode transportar protocolos da camada 3, dos quais o IP é apenas um.
Você pode criar o seu próprio ou usar um dos protocolos da camada 3 existentes para um dos protocolos da LAN IEEE, mas precisará ter o quadro para o protocolo da LAN que escolher. Não espere poder interoperar com qualquer dispositivo que não esteja executando sua pilha de protocolos, nem espere que ele seja executado sobre roteadores que não tenham sua pilha de protocolos (isso significa que não há Internet que use IP). Pontes como switches Ethernet ou WAPs transportarão seus protocolos da camada superior, uma vez que funcionam na camada 2, para que você possa criar uma LAN.
Você precisará ter o cabeçalho do quadro para o tipo de LAN em que está. Por um lado, como um host realmente envia para outro host sem o endereço da camada 2 no quadro. Eu acho que você basicamente está voltando à comunicação serial como RS-232, que não possui quadro ou cabeçalho, mas depende de fios extras para controle de dados.
fonte
Com base em suas perguntas e comentários, acho que você está perdendo o objetivo dos dois artigos que você está referenciando.
Quando eles estão falando sobre "Raw Ethernet", eles estão falando sobre quadros de dados que não contêm nenhum cabeçalho IP (L3) ou TCP / UDP (L4). Eles não estão falando sobre o uso de quadros L2 sem cabeçalhos L2.
Sem os cabeçalhos L2, um quadro não seria um quadro 802.3 (Ethernet) nem 802.11. Seria algo completamente diferente. Um protocolo L2 separado.
De não incluir cabeçalhos L2? Absolutamente. Você precisaria especificar um adaptador específico para obter uma resposta específica, mas duvido que possa escrever drivers que funcionem com a maioria dos adaptadores 802.3 ou 802.11 que não incluam os cabeçalhos L2. Meu palpite é que a maioria dos adaptadores rejeitaria / descartaria o quadro como malformado antes de enviá-lo ou recebê-lo.
De enviar apenas um quadro 802.3 ou 802.11 que não inclua cabeçalhos IP ou TCP / UDP? Não. Isso acontece o tempo todo como parte das operações normais da rede e ocorre há décadas (pelo menos para o 802.3; o 802.11 não existe há tanto tempo, mas pelo menos uma década).
Veja acima.
fonte
Veja o Wifibroadcast (Linux, algum suporte para Android) que faz exatamente isso. Breve resumo: ele usa um par de adaptadores wifi, um no modo de injeção e outro no modo monitor, e transmite dados usando quadros wifi brutos. Esta é uma conexão unidirecional. Embora originalmente concebido como um método para transmitir feed de vídeo de baixa latência, é claro que pode ser usado para todos os tipos de dados.
Sim. Existem adaptadores que funcionam melhor e adaptadores que funcionam menos bem, se houver. Alguns adaptadores no modo bruto não podem conter alta taxa de transferência, alguns adaptadores precisam ter seu firmware modificado. Alguns adaptadores funcionam na banda de 2,4 GHz e outros em 5 GHz e outros em ambos.
fonte
Sim. Em teoria , você pode executar a Ethernet ponto a ponto assim. Ambos os pontos de extremidade teriam que estar no modo promíscuo para remover os cabeçalhos Ethernet 802.3 Ethernet (caso contrário, os quadros não pertencem a nenhuma NIC e seriam ignorados.) É claro que isso significa que você não está executando "ethernet".
fonte