Это изображение предполагает, что длина заголовка пакета WLAN составляет 20 байтов.
Нет, это предполагает, что заголовок WLAN имеет длину 30 байтов. Точнее, длина до 30 байтов, хотя не все пакеты имеют все четыре поля MAC-адреса, поэтому заголовок может быть короче. (Он также может быть длиннее с полями управления HT QoS и 802.11n и более поздними версиями, но они идут после MAC-адресов.)
Итак, как указывает Spiff, вам нужно захватить как минимум 30 байтов, чтобы быть уверенным, что вы получите все MAC-адреса.
Тем не менее, существует преамбула и заголовок PLCP.
Те не появляются в захвате.
Просмотр захваченных пакетов с помощью Wireshark показывает, что есть заголовок Radiotap (длиной в 34 или 37 байт в моем файле),
Да, если ваши пакеты имеют заголовок Radiotap, вы должны захватить его в дополнение к заголовку 802.11, а длина заголовка Radiotap, как отмечает Spiff, зависит от аппаратного обеспечения, драйвера и способа получения пакета или передается.
Итак, если это возможно, вы должны захватывать только с заголовком 802.11. Это может или не может быть возможным, в зависимости от того, какую ОС вы используете (* BSD и OS X должны позволять вам захватывать только с заголовками 802.11, Linux может позволять вам получать только заголовки Radiotap).
и заголовок MAC более 20 байтов.
Да, как указано, рассматриваемая диаграмма не предполагает, что заголовок имеет длину (максимум) 20 байтов.