2013-09-20 6 views
2

Существует продукт (который останется неназванным), который страдает особой особенностью/проблемой. Он упадет с новыми SYN-пакетами, если он перегружен. Для некоторых это может показаться неразумным. Это может показаться немыслимым для других. Как бы то ни было.Каково максимальное количество попыток в случае непрерывно упавшего пакета SYN?

Сколько раз восходящий TCP-клиент повторяет отправку SYN перед тем, как сдаться? Является ли это число основано на RFC или стандарте или это просто отраслевая норма?

Как насчет SCTP и INIT?

+0

TCP обычно использует тайм-аут, а не лимит повтора. Специфика зависит от реализации. – Barmar

+0

Этот вопрос не соответствует теме, потому что речь идет не о программировании. – Barmar

+0

Благодарим за информацию о тайм-ауте и прессе. Это было полезно. –

ответ

2
  1. Тайм-аут соединения по умолчанию, который является основной темой вашего вопроса, зависит от платформы на клиенте, где-то около минуты. Это кодируется в системный вызов connect() как 3 попытки, используя тайм-ауты, например, 8,16,32 секунды, в зависимости от реализации. Стек TCP может делать свои повторные попытки, а перед отказом вернуться к функции connect(), так что может быть довольно много попыток, прежде чем в конечном итоге ECONNTIMEOUT.

  2. Там нет ничего плохого с платформой сбросив SYN пакетов при перегрузке. Unix делает это уже тридцать лет, поэтому теперь это не может стать проблемой. Это действие платформы, а не действие продукта, поэтому секретный неназванный продукт, который вы упомянули, не является виновником, если только он не является операционной системой. Я не понимаю, почему его здесь нельзя назвать.

+0

Спасибо EJP. Это было очень полезно. Из поиска я заметил, что в Linux есть также параметр sysctl, называемый net.ipv4.tcp_syn_retries, который, похоже, ведет это поведение. –

Смежные вопросы