1

Какой уровень сетевых знаний потребуется для создания чего-то вроде wireshark? Какой путь я бы выбрал, чтобы приблизиться к этому? Я не очень разбираюсь в сетях, и все, кого я знаю, рассказывают мне кое-что о CCNA или CISCO, позволят ли эти курсы мне создавать такие инструменты, как wireshark? Если нет, какой путь должен быть выбран для самообучения до этого уровня?

1 ответ1

5

Вы могли бы разделить это по крайней мере на эти основные темы:

  1. Как собирать пакеты из ОС - знание функций, предоставляемых сетевым стеком операционной системы (и иногда моделью драйверов).

    Например, Wireshark использует libpcap для выполнения тяжелой работы, которая сама должна знать о методах захвата в Linux, на BSD, и поставляется с собственным драйвером ядра для Windows (то есть WinPcap/Npcap).

  2. Как интерпретировать содержимое пакетов - знание того, где можно найти информацию о различных сетевых протоколах.

    Прежде всего это включает в себя декодирование двоичных данных, поскольку Wireshark фактически не участвует ни в одном из этих протоколов; это оставляет окончательное толкование для пользователя.

  3. Как представить данные (и другие функции программы) понятным способом - дизайн пользовательского интерфейса - это отдельная тема от программирования или работы в сети, но довольно важная.

    (Это может привести к исключению 2 - й точке - например, Wireshark действительно понимают соединения TCP, чтобы обеспечить различные удобные функции , такие как "Follow потока").

  4. Как реализовать разработанный вами пользовательский интерфейс - общее программирование; знание инструментария графического интерфейса, используемого ОС (например, Wireshark недавно мигрировал с GTK на Qt).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .