Capturar más tramas WLAN que enviar / recibir tramas Ethernet

0

Estoy tratando de determinar si una computadora que captura tramas WLAN en una red 802.11n hace esto correctamente.

Hago esto permitiendo que una computadora (1) genere tráfico descargando algunos archivos y capture ese tráfico generado. La otra computadora (2) captura el tráfico WLAN generado por la computadora (1). Aparentemente solo puedo guardar el tráfico en formato Ethernet en la computadora (1) (aunque se envía a través de mi interfaz inalámbrica). La computadora (2) recibe tráfico en la interfaz del monitor inalámbrico con el tipo de enlace IEEE802_11_RADIO.

Esto funciona hasta cierto punto. Después de un tiempo, la computadora (1) ve lo siguiente (números arbitrarios):

tshark -r /tmp/testcap -Y "eth.dst==[mac NIC] or eth.src==[mac NIC]" | wc -l

da 3757 paquetes.

La computadora (2) ve lo siguiente:

tshark -r /tmp/ctrlcap -Y "wlan.sa==[mac NIC] or wlan.da==[mac NIC] or wlan.ra==[mac NIC] or wlan.ta==[mac NIC]" | wc -l

da 7234 paquetes.

Uno podría imaginar que la cantidad de paquetes sería la misma, pero aparentemente la cantidad de paquetes difiere mucho.

He estado buscando una explicación para esto, y me encontré con algo llamado agregación MSDU ( http://en.wikipedia.org/wiki/Frame_aggregation ). Sin embargo, si entiendo correctamente, esto implicaría que la cantidad de paquetes 802.11 en la computadora (2) sería menor que la cantidad de paquetes Ethernet en la computadora (1), lo cual no es el caso en absoluto.

¿Alguien podría explicar este comportamiento? ¿Sería posible verificar si estoy capturando el número correcto de paquetes de otra manera?

usuario2862333
fuente

Respuestas:

1

Hago esto permitiendo que una computadora (1) genere tráfico descargando algunos archivos y capture ese tráfico generado. La otra computadora (2) captura el tráfico WLAN generado por la computadora (1). Aparentemente solo puedo guardar el tráfico en formato Ethernet en la computadora (1) (aunque se envía a través de mi interfaz inalámbrica).

Para citar la página del wiki de Wireshark sobre la captura del tráfico WLAN :

Cuando no está en modo monitor, el adaptador solo puede capturar paquetes de datos; Puede que tenga que poner el adaptador en modo monitor para capturar paquetes de administración y control. Además, cuando no está en modo monitor, el adaptador puede suministrar paquetes con encabezados Ethernet falsos, en lugar de encabezados 802.11, y puede no proporcionar información adicional de la capa de radio, como las velocidades de datos y la intensidad de la señal. Es posible que deba realizar operaciones dependientes del sistema operativo y del tipo de adaptador para habilitar el modo monitor; A continuación se proporciona información sobre cómo hacerlo.

La parte clave de la cita aquí es "Además, cuando no está en modo monitor, el adaptador puede suministrar paquetes con encabezados Ethernet falsos, en lugar de encabezados 802.11".

En la computadora (1), probablemente no esté capturando en modo monitor. Puede o no ser posible capturar en modo monitor en esa computadora; WinPcap, y por lo tanto Wireshark, no admite el modo de monitor, por lo que si está ejecutando Windows, solo verá encabezados 802.11 si tiene un adaptador AirPcap (separado del adaptador 802.11 por el que se transmiten los paquetes).

La computadora (2) recibe tráfico en la interfaz del monitor inalámbrico con el tipo de enlace IEEE802_11_RADIO.

En ese adaptador, probablemente esté capturando en modo monitor.

La parte clave de la cita de Wireshark wiki aquí es "Cuando no está en modo monitor, el adaptador solo puede capturar paquetes de datos; puede que tenga que poner el adaptador en modo monitor para capturar paquetes de administración y control". Esto significa que la captura en la computadora (2) puede ver paquetes que no son de datos, pero la captura en la computadora (1) probablemente no, por lo que la captura en la computadora (2) puede tener más paquetes.

Prueba, por ejemplo:

tshark -r /tmp/ctrlcap -Y "wlan.fc.type == 2 and (wlan.sa==[mac NIC] or wlan.da==[mac NIC] or wlan.ra==[mac NIC] or wlan.ta==[mac NIC])" | wc -l

para eliminar los paquetes que no son de datos, como los marcos de baliza , al contar los paquetes en la computadora (2).


fuente