Фильтр Wireshark для пакетов, который инициирует последовательность FIN (закрытие соединения) со стороны сервера.

Apache (ec2) --- Client (ELB)
|                      |
|-------[1.]FIN------->|
|                      |
|<-----[2.]FIN+ACK-----|
|                      |
|---------ACK--------->|
|                      |

С помощью Wireshark я хотел бы извлечь только пакет «[1.] FIN», описанный выше, который испускается портом 80 сервера и который «инициирует» последовательность FIN.

Я пробовал фильтр:

tcp.flags.fin && tcp.srcport==80

но фильтр также извлекает дополнительные пакеты "[2.]FIN+ACK". Как я могу отфильтровать только [1.] пакет с учетом инициатора последовательности «FIN»?

Фон:

Я изо всех сил пытаюсь избавиться от ошибок 504 с помощью AWS ELB и ec2 (apache), где последовательность «FIN — FIN/ACK — ACK» инициируется серверной стороной apache. В такой среде последовательность FIN, инициированная ELB, идеальна, как заявляет официальный AWS: http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/config-idle-timeout.html

Согласно https://aws.amazon.com/jp/premiumsupport/knowledge-center/504-error-classic/, я попытался изменить замену MPM (событие -> работник) и отключить TCP_DEFER_ACCEPT, что немного уменьшило количество ошибок 504. Однако ситуация не сильно улучшается.

Я думаю, что цель будет заключаться в том, чтобы найти причину, которая заставляет apache инициировать последовательность active-close, поэтому я сначала пытаюсь извлечь инициирующий пакет FIN из apache среди максимум 512 параллельных соединений между ELB и EC2 (apache).


person S.Tana    schedule 20.11.2017    source источник
comment
Причиной будет истечение срока действия поддерживаемого HTTP-соединения на стороне сервера.   -  person user207421    schedule 20.11.2017
comment
Для Apache KeepaliveTimeout установлено значение 120, а время простоя ELB — 60, поэтому это не так.   -  person S.Tana    schedule 20.11.2017


Ответы (1)


tcp.flags.fin == 1 && tcp.flags.ack == 0

  • Такой фильтр, как tcp.flags.fin, проверяет только наличие параметра. Чтобы найти определенные значения параметра, необходимо сравнение. Вот почему такие фильтры, как «tcp», работают для поиска TCP-пакетов.
  • Сопоставление фильтра для FIN не исключает другие установленные или неустановленные флаги, поэтому необходимо сравнение для каждого флага, который должен быть частью фильтра.
person Wayne Goode    schedule 21.11.2017