Wireshark угадает, какие протоколы более высокого уровня используются в пакете, но как я могу заставить tcpdump сделать то же самое (или любой другой инструмент командной строки Linux)?
Например, на следующем снимке экрана показано, что wirehark обнаруживает «HTTP» в качестве захваченного протокола: http://www.tohir.co.za/wp-content/uploads/2010/09/wireshark_filters.png
Однако вывод команды tcpdump в cli просто говорит, что это протокол «IP» - что не является ложным, но мне нужен инструмент, который может определить для меня, какой общий протокол более высокого уровня используется.
Основная цель tcpdumps - захват пакетов. Это нужно делать быстро, так как вы не хотите пропускать пакеты.
Основная цель Wiresharks - анализировать пакеты. Для анализа у вас обычно достаточно времени. Для захвата (в Windows) wirehark использует специальный драйвер, который также просто видит пакеты IP.
Таким образом, tcpdump и wirehark - это просто разные инструменты для разных задач. Но они прекрасно работают вместе.