2015-03-30 10 views
1

Я строю парсер PcapNG (на Python) для анализа WiFi-пакетов.
Я хотел бы иметь возможность отображать тип связи (например, вариант протокола: 802.11b, 802.11a, 802.11g или 802.11n).Есть ли способ извлечь тип протокола WiFi из файла трассировки PcapNG?

Однако, читая PcapNG format definition я вижу только следующие упоминания:

  • LINKTYPE_IEEE802_11 105 IEEE 802.11 (беспроводной)
  • LINKTYPE_IEEE802_11_RADIO 127 802,11 плюс BSD радио заголовок

Есть способ извлечь тип протокола WiFi из файла трассировки PcapNG?

ответ

0

Если тип заголовка канального уровня для интерфейса, на котором был захвачен пакет, является LINKTYPE_IEEE802_11, нет, вы не можете получить вариант протокола.

Если тип заголовка канального уровня для интерфейса, на котором был захвачен пакет, является LINKTYPE_IEEE802_11_RADIOTAP (да, это правильное имя; список типов заголовков канального уровня в спецификации wiretap.org pcap-NG отсутствует дата, обновленный список - the tcpdump.org Link-Layer Header Types page), то пакет начинается с radiotap header, предоставляя различные метаданные о пакете.

Если заголовок включает в себя radiotap Channel поле, то, из информации, там, можно определить, какую-то информацию о варианте протокола:

  • «канал-спектр 5 ГГц» + «OFDM-канал» = 802.11a ;
  • «Канал спектра 2 ГГц» + «CCK-канал» = 802.11b;
  • «Канал спектра 2 ГГц» + «OFDM-канал» = 802.11g;
  • «Канал спектра 2 ГГц» + «Динамический канал CCK-OFDM» = 802.11g;

(разница между двумя вариантами 802.11g указывает, может ли быть также трафик 802.11b на одном канале - это то, что указывает канал «Dynamic CCK-OFDM»).

Однако, если MCS поле присутствует, это 802.11n, а не какой-либо из этих других типов, и если VHT поле присутствует, это 802.11ac.

Может также быть поле XChannel, которое может быть интерпретировано аналогично полю Channel, хотя оно также содержит некоторую информацию для 802.11n.