tcpdump
tcpdump (від TCP і англ. dump — звалище, скидати) — сніфер, утиліта UNIX, що дозволяє захоплювати і аналізувати мережний трафік, що проходить через комп'ютер, на якому запущена ця програма.
вивід tcpdump на консоль | |
Тип | Сніфер |
---|---|
Розробник | The Tcpdump team |
Стабільний випуск | 3.9.8 (25 вересня 2007) |
Версії | 4.99.0 (30 грудня 2020)[1] |
Репозиторій | github.com/the-tcpdump-group/tcpdump |
Операційна система | GNU/Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, Windows |
Мова програмування | C[2] |
Ліцензія | Ліцензія BSD |
Вебсайт | tcpdump.org |
Основні призначення tcpdump:
- Налагодження мережевих програм
- Налагодження мережі і мережної конфігурації в цілому
Програмна реалізація
Програма складається з двох основних частин: частини захоплення пакетів (звернення до бібліотеки, libcap (Linux) або pcap (Windows)) і частини відображення захоплених пакетів (яка на рівні вихідного коду є модульною і для підтримки нового протоколу досить додати новий модуль).
Частина захоплення пакетів (при запуску) передає "вираз вибору пакетів" (що йде після всіх параметрів командного рядка) безпосередньо бібліотеці захоплення пакетів, яка перевіряє правильність синтаксису виразу, компілює його (у внутрішній формат даних), а потім копіює у внутрішній буфер програми мережні пакети, які проходять через вибраний мережевий інтерфейс і задовольняють умовам у виразі.
Частина відображення пакетів по черзі вибирає захоплені пакети з внутрішнього буфера, і виводить їх на стандартний вивід в форматі зрозумілому людині, згідно із заданим рівнем детальності.
Якщо задано докладний вивід пакетів, програма перевіряє для кожного мережевого пакету, чи є у неї модуль розшифровки даних, і, у разі наявності, відповідною підпрограмою витягує (і відображає) тип та інші параметри пакету в протоколі.
Кросплатформеність
Спочатку програма tcpdump була розроблена для UNIX-подібних систем, пізніше - портована на інші системи.
Для Windows відомі: