Анализ сетевого трафика и дампов в Wireshark: фильтры отображения и потоки TCP
- Медленная передача данных, зависание сессий HTTP/HTTPS/SSH или внезапные разрывы TCP-соединений.
- Высокий процент повторных передач (
TCP Retransmission,Fast Retransmission) в PCAP-дампах. - Ошибки
TCP Window FullиTCP ZeroWindow, указывающие на переполнение буферов приемника. - Наличие флагов сброса соединений (
TCP RST) без видимой причины со стороны приложения.
1. Базовые фильтры захвата и отображения Wireshark
Используйте синтаксис Display Filters для изоляции проблемного потока:
# Фильтрация по конкретному IP и порту сервиса
ip.addr == 192.168.10.50 && tcp.port == 443
# Поиск сетевых аномалий и потерь пакетов
tcp.analysis.flags
# Фильтрация только сброшенных соединений
tcp.flags.reset == 1 && !tcp.analysis.initial_rtt2. Анализ и реконструкция TCP-потока (Follow TCP Stream)
Для просмотра данных сессии целиком:
- Кликните правой кнопкой мыши по любому пакету сессии.
- Выберите Follow -> TCP Stream.
- Оцените тайминги запросов и ответов в окне транскрипта.
3. Диагностика узких мест транспортного уровня
- TCP Retransmission: Свидетельствует о потере пакета по пути или о превышении RTO (Retransmission Timeout). Фильтр:
tcp.analysis.retransmission. - Duplicate ACK: Сигнализирует о потере промежуточного пакета при успешной доставке последующих (три Dup ACK вызывают Fast Retransmit). Фильтр:
tcp.analysis.duplicate_ack. - Zero Window: Приемник не успевает обрабатывать данные из буфера сокета и просит передатчика приостановить передачу. Фильтр:
tcp.analysis.zero_window.
4. Анализ задержек через графики Stevens / tcptrace
В меню Wireshark откройте: Statistics -> TCP Stream Graphs -> Time-Sequence (tcptrace). Горизонтальные плато на графике наглядно указывают на паузы в передаче, вызванные переполнением буфера или потерями.
Частые вопросы (FAQ)
Чем отличаются Capture Filters от Display Filters в Wireshark?
Capture Filters (синтаксис BPF, например 'tcp port 80') применяются до захвата и снижают нагрузку на диск/память, отбрасывая лишний трафик. Display Filters (синтаксис Wireshark, например 'http.request.method == GET') применяются постфактум ко всему собранному дампу.
Что означает 'TCP Spurious Retransmission'?
Это ложная повторная отправка: отправитель повторно выслал сегмент, посчитав его утерянным из-за задержки подтверждения, хотя исходный пакет благополучно дошел до получателя (задержка в канале превысила таймер RTO).
Как с помощью фильтра Wireshark найти медленные HTTP-ответы?
Используйте фильтр http.time > 1.0 (показывает запросы, ответ на которые занял более 1 секунды) или tcp.time_delta > 0.5.
Как выгрузить конкретный TCP-поток в отдельный PCAP файл?
Примените фильтр tcp.stream eq <N>, затем перейдите в меню File -> Export Specified Packets -> выберите 'Displayed' и сохраните файл.