Назад | Перейти на главную страницу

Сетевое подключение в Linux

Общий вопрос о сетевом подключении в Linux: если сетевое подключение переходит в time_wait, оно все еще привязано к процессу? Он по-прежнему использует такие ресурсы, как, скажем, дескриптор файла?

Причина, по которой я спрашиваю, заключается в том, что как только он переходит в time_wait, lsof больше не сообщает об этом. Я предполагаю, что это означает, что сетевое соединение больше не привязано к процессу и, следовательно, не учитывается в ограничении количества дескрипторов файлов. Хотел бы подтвердить.

Ваше предположение верное. Если соединение входит в TIME_WAIT состояние, это означает, что локальная сторона закрыла сокет, поэтому он уже прекратил использовать файловый дескриптор.

Однако он потребляет записи в таблице состояний TCP ядра. Есть несколько настроек, которые вы можете найти в tcp(7) справочная страница. Однако, если вас беспокоит ограничение количества файловых дескрипторов для одного процесса, это не имеет значения.

Обратите внимание, что есть повторяющийся вопрос здесь, но я считаю, что ответ неверен.