Pasé los últimos días leyendo páginas man, documentos y todo lo demás que trajo a colación Google, pero supongo que ahora estoy aún más confundido de lo que estaba al principio.Acceso a la interfaz inalámbrica (802.11) en la capa MAC (Linux)
Esto es lo que quiero hacer: Deseo enviar y recibir paquetes de datos con mi propio protocolo 3-x de capa a través de una interfaz inalámbrica (802.11) en sistemas Linux con C/C++. Hasta ahora, muy bien. No necesito balizas, asociaciones ni ningún material relacionado con AP/SSID. Sin embargo, para las transmisiones de datos me gustaría que la capa MAC se comporte "como siempre", lo que significa que los paquetes de unidifusión son ACK'd, retransmisiones, restitución, etc. También me gustaría disfrutar de las capacidades ampliadas de QoS (802.11e con 4 colas y diferentes categorías de acceso). El modo Promiscuo, por otro lado, no es una preocupación, solo requiero paquetes de difusión y paquetes enviados a la estación específica.
¿Cuál sería la forma correcta de hacerlo? La mayoría de la documentación que existe sobre el acceso de socket sin formato parece estar enfocada en el rastreo de red y eso no ayuda. He estado jugando con el modo de monitor desde hace un tiempo, pero por lo que he leído hasta ahora, los paquetes recibidos no son ACK'd en modo monitor, etc. Sin modo monitor, ¿cuál sería la alternativa? ¿Cómo utilizar el modo ad hoc y unix raw sockets? ¿O tengo que jugar con los controladores?
No estoy buscando una solución completa, solo algunas buenas ideas, por dónde empezar. Leí las páginas man para socket (2), socket (7) y paquete (7) pero eso no ayudó en lo que respecta al comportamiento de la capa MAC en diferentes modos.
Gracias de antemano.
Puede buscar y ver si hay una solución de * software * de código abierto para generar tráfico de prueba, es decir, una combinación de paquetes válidos y no válidos para ver cómo los maneja el equipo del otro lado. Presumiblemente, esto tendría la capacidad de realizar operaciones habituales completas, pero también variaciones arbitrarias (para introducir los errores deseados). Si tal existe, puede usarlo o aprender de él. –