Назад | Перейти на главную страницу

Какой бит представляет какой TCP-флаг?

Например, пример фильтра захвата WireShark, который я нашел - tcp[13] & 8 == 8 представляет пакеты с флагами PSH.

Как мне посчитать 8 ?

На основе изображения из Википедии,

PSH находится в середине сегмента флагов TCP. Считая 1 от флага NS, битовое представление PSH должно быть 6?

Любое руководство приветствуется.

Вы также начинаете считать не с того места. NS может быть первым флагом, но также и конечным битом 12. Байт 13 (как в tcp[13]) начинается с бита 8 четвертой строки (помеченный как «октет 12») и продолжается до бита 15 в той же строке.

Пришло время изучить двоичную арифметику! Чтобы получить N-й крайний правый бит из байта, вы делаете byte & (1 << N), поэтому крайний правый бит byte & (n << 0) а четвертый справа - byte & (n << 3), что совпадает с byte << 8.

Ты должен посмотреть на страница руководства tcpdump, Раздел «Захват TCP-пакетов с определенными комбинациями флагов» - здесь много подробностей.