Quadros Raw-Ethernet

10

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.

Mark Messa
fonte
2
O tráfego não IP através da Ethernet faz parte da rede há décadas, então não sou muito claro sobre o que você realmente está tentando obter respostas e talvez precise aprender um pouco mais sobre o básico da rede. Não existe uma "placa Ethernet sem fio", como 802.3 Ethernet e 802.11 sem fio são dois padrões completamente diferentes. Como tal, o formato do seu quadro na 2ª edição não se aplicaria a uma rede 802.11, mas os quadros têm certos requisitos de acordo com os padrões, e é por isso que muitos dos componentes do quadro que você lista não são configuráveis.
YLearn
11
@YLearn O tráfego não IP via Ethernet faz parte da rede há décadas , mas, naquela época, os dispositivos Ethernet não eram tão 'inteligentes' como hoje, e muito do trabalho foi feito pela CPU. Fiquei me perguntando se o custo de ser "inteligente" está perdendo flexibilidade.
MarkMessa
O @YLearn não se aplicaria a uma rede 802.11 Ok, sei que outros computadores conectados em uma rede 802.11 padrão não reconheceriam esses quadros como válidos. No entanto, é possível enviar / receber esses quadros? Ou o hardware não permite?
MarkMessa
@ MarkMessa, os quadros de um host para outro host na mesma LAN serão recebidos pelo segundo host. A questão é se elas serão ou não passadas para as camadas superiores da pilha de rede dentro do host. Se o host receptor tiver apenas uma pilha IP e a carga útil do quadro não for IP, os dados serão ignorados. Você precisa aprender sobre o modelo OSI para obter idéias gerais sobre como os dados são transmitidos de um host para outro.
Ron Maupin
@MarkMessa, sobre seu primeiro comentário, apesar de os dispositivos Ethernet serem "mais inteligentes", a Ethernet ainda funciona como Ethernet. O 802.3 nunca exigiu nem exigirá o uso de IP. Por exemplo, apesar de rara, hoje a Ethernet ainda suporta Appletalk ou IPX / SPX da mesma forma que nunca, ou sem nenhum protocolo de camada superior (muitas coisas ainda usam apenas L2 para comunicação). Quanto ao seu segundo comentário, não sei ao certo o que você quer dizer com "é possível enviar / receber esses quadros". Você não pode enviar quadros 802.3 por 802.11, mas existem apenas comunicações 802.11 que não envolvam IP.
YLearn

Respostas:

8

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.

Ron Maupin
fonte
Wi-Fi (IEEE 802.11) não é Ethernet (IEEE 802.3) Ok, acabei de alterar parte da questão para evitar essa confusão. Agora, completamente fora do assunto, só para pensar: vários produtos são anunciados como 'LAN Ethernet sem fio'.
MarkMessa
Eu já vi essas coisas, mas isso não significa que esteja correto. Os quadros Wi-Fi e Ethernet são diferentes, e o Ethernet usa detecção de colisão, mas o Wi-Fi usa a prevenção de colisões. Outras LANs usam coisas como tokens para evitar colisões por completo. Todas elas são LANs diferentes, e alguns anúncios não as tornam a mesma coisa.
Ron Maupin
isso não significa que está correto. Ok, eu concordo com você. Obrigado por me corrigir. Estou ciente de diferenças como CSMA / CD, CSMA / CA e tokens. No entanto, fiquei cego por anúncios como "Wi-Fi é a LAN Ethernet sem fio".
MarkMessa
nem você pode esperar que ele seja executado em nenhum roteador. Não haverá roteadores, comutadores ou pontes, apenas comunicação ponto a ponto. Acabei de editar a pergunta para evitar essa confusão.
MarkMessa
11
@ MarkMessa Eu não quero evitar o uso de quadros, estou apenas pensando em evitar o uso do cabeçalho MAC. É por isso que sua solicitação é confusa. Parece que você não entende que, sem os cabeçalhos L2, eles não são mais quadros Ethernet ou 802.11. Você precisaria escrever seu próprio protocolo L2 para funcionar sem os cabeçalhos L2 presentes no 802.3 ou 802.11.
YLearn
7

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.

Existe alguma restrição de hardware (ou seja, a placa Wi-Fi) que possa prejudicar esse esforço?

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).

Portanto, existe alguma restrição de hardware (ou seja, a placa Wi-Fi) que comprometeria a remoção dos cabeçalhos do Mac?

Veja acima.

YLearn
fonte
a maioria dos adaptadores rejeitaria / descartaria o quadro . Acho que isso responde à minha pergunta. Mais tarde, submeterei minha própria resposta para não perder todos os interessantes comentários 'efêmeros'.
MarkMessa
rejeite / solte o quadro como malformado antes de enviá-lo ou ao recebê-lo. Até onde eu sei, no modo monitor, você pode ouvir qualquer tipo de quadro, mesmo os malformados (por exemplo: CRC incorreto). No entanto, curiosamente, o hardware não permite transmitir quadros sem cabeçalhos MAC.
MarkMessa
Correção pequena: No entanto, curiosamente, o adaptador não permite transmitir quadros sem cabeçalhos MAC.
MarkMessa
2
@MarkMessa "Até onde eu sei, no modo monitor, você pode ouvir qualquer tipo de quadro, mesmo os malformados (por exemplo: CRC incorreto)" Isso depende totalmente do dispositivo em questão. Muitos adaptadores (incluindo comutadores) irão processá-los e descartá-los antes mesmo de enviá-los para serem capturados / espelhados / estendidos. Muitas vezes, você nem verá o trailer Ethernet com o CRC em capturas.
YLearn
1

Eu gostaria de fazer um teste semelhante, mas em um ambiente sem fio.

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.

Existe alguma restrição de hardware (ou seja, a placa Wi-Fi) que possa prejudicar esse esforço?

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.

Radovan Garabík
fonte
0

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".

Ricky Beam
fonte
modo promíscuo Esta é uma questão muito importante que eu esperava ser levantada. No modo promíscuo, os quadros endereçados a um endereço MAC diferente do seu não seriam descartados pelo cartão Wi-Fi. No entanto, o mesmo não se aplica ao BSSID (corrija-me se estiver errado). Se o quadro não for endereçado ao seu BSSID, o cartão Wi-Fi o descartará. É possível evitar isso e receber TODOS os quadros que chegam ao seu cartão? (modo monitor?)
Mark Messa
modo promíscuo para remover os cabeçalhos Ethernet 802.3 Ethernet Com base na resposta @YLearn, parece que o hardware não aceita quadros sem os cabeçalhos L2.
Mark Messa