Wireshark физический пакет - PullRequest
0 голосов
/ 26 января 2011

Как Wireshark интерпретирует физические пакеты?Насколько я знаю, все пакеты выглядят одинаково, так как он декодирует их для передачи в следующий более высокий протокол?

Ответы [ 2 ]

1 голос
/ 26 января 2011

Вероятно, существует множество различных механизмов.Вы можете скачать диссекторы и изучить источник, чтобы выяснить различные методы.

Я написал диссектор для сетевого анализатора и портировал его в Ethereal, а затем в Wireshark (или, возможно, кто-то еще портировал его; я неПомните).Но основная логика заключается в том, что диссектор добавляется в список возможных диссекторов.Wireshark вызывает диссектор и, если может, декодирует пакет.Если нет, он вызывает следующий в цепочке.

В написанном мною коде я просто проанализировал пакет (UDP в моей ситуации), чтобы определить, соответствует ли он профилю желаемого пакета, используя контрольные суммы и известныеданные в пакете.Если он решил, что это пакет, который меня интересовал, я просто извлек из него различные фрагменты интересных данных.Функция tvb_get_ptr возвращает указатель на начало данных.

1 голос
/ 26 января 2011

Когда он используется для захвата живого трафика, он знает тип интерфейса и, следовательно, инкапсуляцию пакетов L2, а когда он читает файл pcap, в заголовке файла есть поле, указывающее тип сети.

...