Почему epoll_wait (), get return и TCP connect time out через 5 с ~ 10 с - PullRequest
3 голосов
/ 26 декабря 2011

Я создаю неблокирующий сокет, а затем использую epoll для управления сокетом. Я не устанавливаю таймаут на epoll_wait. Но я обнаружил, что значение epoll вернулось через 5–10 с, затем я проверяю с помощью getsockopt на SO_ERROR время поиска соединения истекло. Почему тайм-аут в столь короткое время?

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

Когда мой клиент отправляет SYN для подключения к серверу. Но сервер не может отправить обратно ACK от 5 до 10 с. Тогда epoll_wait возврат. и проверьте с SO_ERROR. Я получаю EIMTEDOUT.

Я просто не могу понять, почему время ожидания такое короткое, от 5 до 10 с. Это проблема моего клиента или это epoll?

1 Ответ

1 голос
/ 28 декабря 2011

Я недавно опубликовал похожий вопрос . См. Принятый ответ, который объясняет, как рассчитывается значение тайм-аута TCP-соединения ядром Linux.вероятно, будут иметь более короткие значения времени ожидания.Если вы ожидаете, что серверу потребуется больше времени, чтобы принять соединение, возможно, вы захотите установить значение тайм-аута самостоятельно.

...