Fin wait 2 что это
Перейти к содержимому

Fin wait 2 что это

  • автор:

Why are connections in FIN_WAIT2 state not closed by the Linux kernel?

I have an issue in a long-lived process called kube-proxy being part of Kubernetes. The problem is that from time to time a connection is left in FIN_WAIT2 state.

$ sudo netstat -tpn | grep FIN_WAIT2 tcp6 0 0 10.244.0.1:33132 10.244.0.35:48936 FIN_WAIT2 14125/kube-proxy tcp6 0 0 10.244.0.1:48340 10.244.0.35:56339 FIN_WAIT2 14125/kube-proxy tcp6 0 0 10.244.0.1:52619 10.244.0.35:57859 FIN_WAIT2 14125/kube-proxy tcp6 0 0 10.244.0.1:33132 10.244.0.50:36466 FIN_WAIT2 14125/kube-proxy 

These connections stack up over time making the process misbehave. I already reported an issue to Kubernetes bug-tracker but I’d like to understand why such connections are not closed by the Linux kernel. According to its documentation (search for tcp_fin_timeout) connection in FIN_WAIT2 state should be closed by the kernel after X seconds, where X can be read from /proc. On my machine it’s set to 60:

$ cat /proc/sys/net/ipv4/tcp_fin_timeout 60 

so if I understand it correctly such connections should be closed by 60 seconds. But this is not the case, they are left in such state for hours. While I also understand that FIN_WAIT2 connections are pretty unusual (it means the host is waiting for some ACK on from the remote end of the connection which might already be gone) I don’t get why these connections are not «closed» by the system. Is there anything I could do about it? Note that restarting the related process is a last resort.

Приказ Минкомсвязи России от 27.06.2011 N 160 (ред. от 13.06.2018) «Об утверждении Правил применения оборудования коммутации сетей подвижной радиотелефонной связи. Часть VI. Правила применения узлов связи с территориально распределенной архитектурой стандартов UMTS и/или GSM 900/1800» (Зарегистрировано в Минюсте России 20.07.2011 N 21423)

Этот документ в некоммерческой версии КонсультантПлюс доступен по расписанию:

  • по рабочим дням с 20-00 до 24-00 (время московское)
  • в выходные и праздничные дни в любое время

Вы можете заказать документ на e-mail

Тексты документов всегда доступны в коммерческой версии КонсультантПлюс.

Приложение N 7. Требования к параметрам протоколов IP, UDP, TCP

Приложение N 7
к Правилам применения оборудования
коммутации сетей подвижной
радиотелефонной связи. Часть VI.
Правила применения узлов связи с
территориально распределенной архитектурой
стандартов UMTS и/или GSM 900/1800

Требования к параметрам протоколов IP, UDP, TCP

1. Требования к параметрам по реализации протокола IP.

1.1. Формат заголовка пакета IP версии 4 (далее — IPv4) и перечень поддерживаемых полей приведен в таблице N 1:

1) минимальная длина заголовка пакета составляет 20 байт, а максимальная длина — 60 байт при максимальной длине пакета в 65 535 байт;

2) поле «Версия» содержит номер версии протокола IP;

3) поле «Длина заголовка» содержит значение длины заголовка пакета в словах;

4) поле «Тип обслуживания» содержит код набора параметров качества обслуживания:

в) пропускная способность;

Таблица N 1. Формат заголовка пакета IPv4

Длина пакета IP

Идентификатор пакета IP

Счетчик допустимого времени пребывания пакета в сети

Тип протокола следующего уровня

Контрольная последовательность заголовка

Адрес источника пакета

Адрес получателя пакета

Режим обработки пакета

Поле дополнения до границы заголовка

5) кодирование поля «Тип обслуживания» приведено в таблице N 2;

Таблица N 2. Кодирование поля «Тип обслуживания»

Значение «0» — нормальная задержка, значение «1» — малая задержка

Значение «0» — нормальная пропускная способность, значение «1» — низкая пропускная способность

Значение «0» — нормальная надежность, значение «1» — высокая надежность

Значения разрядов 0 — 2 игнорируется # , если оборудование не поддерживает управление приоритетом при передаче пакетов.

6) поле «Длина пакета IP» содержит значение длины пакета IP в байтах, включая заголовок и данные. Возможность обрабатывать пакеты длиной менее 576 байт является обязательным требованием. В отдельных случаях допускается длина пакета до 65 535 байт;

7) поле «Идентификатор пакета IP» используется процедурой фрагментации при сборке или разборке пакета для определения последовательности передаваемых фрагментов;

8) поле «Флаги» используется процедурой фрагментации для управления последовательностью сборки фрагментов пакета. Кодирование разрядов поля «Флаги» приведено в таблице N 3.

Таблица N 3. Кодирование разрядов поля «Флаги»

Зарезервировано, устанавливается в «0»

Пакет можно фрагментировать

Пакет нельзя фрагментировать

9) поле «Смещение фрагмента» используется для указания смещения данного фрагмента относительно первого фрагмента в блоках фрагментации (8 байт). Для первого фрагмента смещение устанавливается в «0»;

10) поле «Счетчик допустимого времени пребывания пакета в сети» содержит текущее значение счетчика максимально допустимого времени пребывания пакета в сети в секундах. Если в поле находится значение «0», пакет удаляется;

11) поле «Тип протокола следующего уровня» содержит стандартизированный код протокола следующего уровня;

12) поле «Контрольная последовательность заголовка» (далее — КПЗ) содержит контрольную последовательность заголовка. При любом изменении содержания заголовка КПЗ пересчитывается;

13) в поле «Адрес источника пакета» указывается IP-адрес источника пакета;

14) в поле «Адрес получателя пакета» указывается IP-адрес получателя пакета;

15) поддерживаются два способа кодирования поля «Режим обработки пакета»:

а) поле длиной 1 байт,

б) комбинация трех подполей: тип режима (1 байт), счетчик длины поля режима (1 байт), данные режима (переменная длина).

Подполе типа режима включает: флаг (1 бит), класс режима (2 бита), номер режима (5 бит).

При установке бита флага в значение «1» оборудование копирует данное поле при фрагментации во все фрагменты, в значение «0» — не копирует;

16) для выравнивания границы заголовка по длине, кратной 32 битам используется «Поле дополнения до границы заголовка». Свободные позиции заполняются нулевыми битами.

1.2. Формат заголовка пакета IP версии 6 (далее — IPv6) и перечень поддерживаемых полей приведен в таблице N 4. Минимальная длина заголовка пакета составляет 40 байт, длина пакета составляет до 1 280 байт или выше (до 1 500 байт) без фрагментации:

Таблица N 4. Формат заголовка пакета IPv6

Длина полезной нагрузки

1) поле «Версия» содержит номер версии протокола IP;

2) поле «Класс трафика» эквивалентно по назначению полю «Тип обслуживания» протокола IPv4 и используется для назначения и различия разных классов или приоритетов передачи пакетов;

3) поле «Метка потока» используется для выделения последовательностей пакетов, для которых запрашивается специальная обработка пакетов IP, например, предоставление качества обслуживания, отличающегося от принятого, или обслуживание в реальном времени. Оборудование, не поддерживающее функции поля «Метка потока», устанавливает значение данного поля в нуль при отправке пакета, передает дальше данное поле без изменений при пересылке пакета и игнорирует данное поле при получении пакета;

4) поле «Длина полезной нагрузки» содержит значение длины полезной нагрузки пакета IPv6 в байтах;

5) поле «Следующий заголовок» определяет тип заголовка, следующего непосредственно за основным, и использует те же значения разрядов, что и поле «Тип протокола следующего уровня» протокола IPv4;

6) в протоколе IPv6 информация уровня Интернет сети передачи данных кодируется в отдельных дополнительных заголовках, которые размещаются между заголовком IPv6 и заголовком следующего уровня в пакете;

7) каждый дополнительный заголовок является целым числом и имеет длину, кратную 8 байтам;

8) в рамках протокола IPv6 определены следующие шесть дополнительных заголовков:

«Специальные параметры обработки пакетов»;

«Дополнительные параметры для пункта назначения»;

«Информация для обеспечения конфиденциальности данных путем шифрования».

9) значение поля «Лимит переходов» основного заголовка IPv6 уменьшается на единицу в каждом пункте, который участвует в пересылке пакета. Пакет удаляется, если значение этого поля уменьшается до нуля;

10) в поле «Адрес отправителя» основного заголовка IPv6 указывается IP-адрес отправителя пакета.

1) номер протокола UDP в стеке протоколов IP — 17;

2) формат заголовка пакета протокола UDP приведен в таблице N 5.

Таблица N 5. Формат заголовка пакета протокола UDP

Далее следуют октеты пользовательских данных;

3) поле Source Port (порт отправителя) является необязательным и (когда используется) показывает номер порта передающего процесса. При наличии данного поля отклики адресуются на тот же порт. Если номер порта не задан, значение поля равно «0»;

4) поле Destination Port имеет значение в контексте адресации отдельного соединения;

5) поле Length указывает размер (в октетах) пользовательской дейтаграммы с учетом заголовка и данных. Минимальное значение поля длины составляет 8 (длина заголовка в октетах);

6) поле Checksum содержит контрольную сумму, вычисляемую как поразрядное дополнение до единицы суммы поразрядных дополнений до единицы всех 16-битовых слов псевдозаголовка из заголовка IP, заголовка UDP и данных, дополненных при необходимости справа нулями для выравнивания по 2-октетной границе. Псевдозаголовок, предшествующий заголовку UDP, содержит адреса отправителя и получателя, а также размер пакета UDP. Если рассчитанное значение контрольной суммы равно нулю, все биты поля заполняются единицами (эквивалент нуля в арифметике с дополнением до 1). Передача нулевого значения контрольной суммы означает, что на передающей стороне контрольная сумма не была рассчитана (используется для отладки или для протоколов вышележащих уровней, которые не используют контрольную сумму).

1) номер протокола TCP в стеке протоколов IP — 6;

2) формат заголовка пакета протокола TCP приведен в таблице N 6.

Таблица N 6. Формат заголовка пакета протокола TCP

Далее следуют октеты пользовательских данных;

3) Source Port — номер порта отправителя;

4) Destination Port — номер порта назначения;

5) Sequence Number — порядковый номер. Порядковый номер первого октета данных в сегменте при отсутствии флага SYN. Если в сегменте присутствует бит SYN, поле номера содержит значение начального порядкового номера (ISN), а первый октет данных имеет номер ISN+1;

6) Acknowledgment Number — номер подтверждения. Если бит ACK установлен, это поле содержит значение следующего порядкового номера, который отправитель сегмента ожидает получить. После организации соединения это значение передается всегда;

7) Data Offset — смещение данных. Число 32-битовых слов в заголовке TCP. Это значение указывает начало данных в сегменте. Заголовок TCP (даже при наличии опций) имеет длину, кратную 32 битам;

8) Reserved — резервное поле. Зарезервировано для использования в будущем и имеет нулевое значение;

9) Control Bits — биты управления:

URG — указывает на значимость поля Urgent Pointer;

ACK — указывает на значимость поля Acknowledgment Number;

PSH — функция Push;

RST — сброс (Reset) соединения;

SYN — синхронизация порядковых номеров;

FIN — у отправителя больше нет данных;

10) Window — окно. Число октетов данных, начиная с указанного в поле подтверждения, которые отправитель данного сегмента ожидает принять;

11) Checksum — контрольная сумма. Контрольная сумма представляет собой число единиц в заголовке и данных, просуммированное по модулю 16 с добавлением 1. Если сегмент содержит в заголовке и данных нечетное число октетов, справа добавляется октет нулей для выравнивания по 16-битовой границе. Биты заполнения не передаются как часть сегмента и используются только для расчета контрольной суммы. При расчете контрольной суммы значение поля Checksum принимается нулевым. Контрольная сумма учитывает также 96-битовый псевдозаголовок, предшествующий заголовку TCP. Этот псевдозаголовок содержит адреса отправителя и получателя, тип протокола и длину опций TCP. Перечисленные поля помогают защитить TCP против сегментов с ошибочной маршрутизацией. Эта информация транспортируется протоколом IP и передается через интерфейс TCP-сетевой уровень в качестве аргументов или результатов вызовов из TCP на уровень IP. Поле «длина опций TCP» содержит размер заголовка TCP и поля данных в октетах (это не явно передаваемое, а расчетное значение); 12-октетный псевдозаголовок при расчете длины не учитывается;

12) Urgent Pointer — указатель срочности. Это поле содержит указатель на срочные данные — позитивное смещение начала таких данных от порядкового номера данного сегмента. Это поле имеет смысл только для сегментов с установленным флагом URG;

13) Options — опции.

Опции размещаются в конце заголовка TCP и могут занимать целое число октетов. Все опции учитываются при расчете контрольной суммы. Опции начинаются на любой границе октета. Существует два варианта форматирования опций:

1) однооктетное поле признака опций;

2) однооктетное поле признака опций, поле размера опций (1 октет) и собственно опции.

Поле размера опций учитывает и 2 октета полей признака опций и самого поля длины, а также размер опций, как таковых. Поле опций может быть короче, чем указывает поле смещения данных. Неиспользуемые биты поля опций заполняются нулями. В протоколе TCP используются следующие опции: End of Option List, No-Operation, Maximum Segment Size.

End of Option List (0). Этот код означает завершение списка опций. Конец списка опций может не совпадать с концом заголовка TCP, заданным полем Data Offset. Код используется как индикатор завершения всех опций, а не какой-то конкретной и использование его требуется лишь в тех случаях, когда конец опций не совпадает с концом заголовка TCP.

No-Operation (1). Этот код может использоваться между опциями (например, для их выравнивания по границе слова). Не существует гарантий использования этой опции отправителем, поэтому получатель должен быть готов к обработке опций, начало которых не совпадает с границей слова.

Maximum Segment Size (2) — максимальный размер сегмента. Эта опция имеет длину 16 битов. Если эта опция присутствует, она задает максимальный размер принимаемого сегмента для той стороны TCP, которая передает данный сегмент. Это поле передается только с начальным запросом организации соединения (сегмент с флагом SYN). Если эта опция не задана, допускается использование сегментов любого размера;

14) Padding — заполнение. Поле имеет переменную длину. Заполнение заголовка TCP используется для выравнивания размера заголовка по 32-битовой границе. Для заполнения неиспользуемых битов служит 0;

15) Состояния соединения — LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT и фиктивное состояние CLOSED.

LISTEN — ожидание запроса на соединение от любого удаленного TCP порта.

SYN-SENT — ожидание соответствующего запроса на соединение после передачи своего запроса.

SYN-RECEIVED — ожидание подтверждения соединения после передачи и приема запросов на организацию соединения.

ESTABLISHED — соединение действует и принятые данные могут быть доставлены пользователю. Это нормальное состояние для процесса обмена данными через соединение.

FIN-WAIT-1 — ожидание запроса на разрыв соединения от удаленного TCP или подтверждения для ранее переданного запроса на разрыв соединения.

FIN-WAIT-2 — ожидание запроса на разрыв соединения от удаленного TCP.

CLOSE-WAIT — ожидание запроса на разрыв соединения от локального пользователя.

CLOSING — ожидание подтверждения от удаленного TCP для запроса на разрыв соединения.

LAST-ACK — ожидание подтверждения для запроса на разрыв соединения, переданного удаленному TCP (это подтверждение включается в запрос на разрыв соединения от удаленной стороны).

TIME-WAIT — ожидание пока пройдет достаточно времени, чтобы быть уверенным в приеме удаленным TCP подтверждения для его запроса на разрыв соединения.

CLOSED — соединения уже нет (разорвано).

Соединение TCP переходит от одного состояния к другому в ответ на события, к числу которых относятся пользовательские вызовы, входящие сегменты и тайм-ауты;

16) пользовательские команды протокола TCP приведены в таблице N 7.

Таблица N 7. Пользовательские команды протокола TCP

forum.lissyara.su

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.

Первое новое сообщение • 4 сообщения • Страница 1 из 1

weec лейтенант Сообщения: 948 Зарегистрирован: 2007-07-24 11:17:35 Откуда: Afghanistan Контактная информация:

sysctl FIN-WAIT-2

FreeBSD
смотрю следующий параметр

# sysctl net.inet.tcp.finwait2_timeout net.inet.tcp.finwait2_timeout: 60000

в чем измеряются эти 60000 ?

weec

Хостинг HostFood.ru

Услуги хостинговой компании Host-Food.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Alex Keda стреляли. Сообщения: 35438 Зарегистрирован: 2004-10-18 14:25:19 Откуда: Made in USSR Контактная информация:

Re: sysctl FIN-WAIT-2

млисекундах.
а фиг вот знает )
Убей их всех! Бог потом рассортирует.

Alex Keda

dikens3 подполковник Сообщения: 4856 Зарегистрирован: 2006-09-06 16:24:08 Откуда: Нижний Новгород Контактная информация:

Re: sysctl FIN-WAIT-2

sysctl net.inet.tcp.msl=30000 После того как соединение закрывается сокет переходит в состояние TIME_WAIT В этом состоянии он может находится по умолчанию в течение 60 секунд. Время можно изменить через sysctl (в миллисекундах деленных на 2, 2 x 30000 MSL = 60 секунд):

Скорее всего тоже в миллисекундах. А вот делиться/умножается хз.
Лучше установить FreeBSD , чем потратить 30 лет на Linux’ы и выяснить какой из них хуже.

dikens3

paix лейтенант Сообщения: 863 Зарегистрирован: 2007-09-24 12:41:05 Откуда: dn.ua Контактная информация:

Re: sysctl FIN-WAIT-2

тут к гадалке не ходи Конечно и так уже все ясно, но

man tcp:
finwait2_timeout Timeout to use for fast recycling of TCP FIN_WAIT_2
connections. Defaults to 60 seconds

соотвественно это милисикунды.
net.inet.tcp.finwait2_timeout: 60000

Гораздо более интересный момент, как эти таймауты тюнить Особенно когда используются фаервольные стате-лимиты.

With best wishes, Sergej Kandyla

paix

4 сообщения • Страница 1 из 1

  • Операционные системы
  • ↳ FreeBSD/UNIX для начинающих
  • ↳ FreeBSD
  • ↳ OpenBSD
  • ↳ SunOS
  • ↳ Linux
  • ↳ Windows
  • ↳ DOS, OS/2, MeOS, BeOS, PalmOS.
  • Проблемы
  • ↳ MTA — Mail Transfer Agent
  • ↳ Железо
  • ↳ Софт
  • ↳ Networks
  • ↳ Базы данных
  • ↳ Активное сетевое оборудование
  • ↳ Виртуализация
  • ↳ UNIX as Desktop
  • ↳ Игры
  • Программирование
  • ↳ SHELL
  • ↳ PHP, PERL, JS, HTML.
  • ↳ Delphi, Lazarus, Free Pascal
  • ↳ C/C++
  • ↳ Visual Basic
  • Разное
  • ↳ Новости
  • ↳ Про сайт
  • ↳ Работа
  • ↳ Юридические документы
  • ↳ Барахолка
  • ↳ /dev/null
  • На главнуюСписок форумов
  • Часовой пояс: UTC+03:00
  • Удалить cookies конференции
  • Наша команда

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *