2013-09-06 4 views
2

Есть ли какое-либо преимущество наличия алгоритма отсрочки для пересоединения сокетов TCP на iOS? Например, будет ли максимальная задержка в 5 секунд против 30 секунд заметным воздействием на использование батареи? Мне кажется, что алгоритм отсрочки в основном полезен, чтобы избежать DOS на сервере, если он временно не способен обрабатывать нагрузку. Преимущества с точки зрения клиента не кажутся очевидными.Алгоритм отклика на iOS

ответ

2

Алгоритмы отказов (экспоненциальные отсрочки) помогают клиенту обрабатывать любые постоянные перегрузки на сервере. Если сервер занят после того, как клиент ждет T секунд, то в следующий раз у него больше шансов добраться до сервера, если он попытается через 2T секунд. Вот ссылка: http://en.wikipedia.org/wiki/Exponential_backoff

Во-вторых, с TCP также возможно, что очередь ожидающих подключений на сервере может быть заполнена, и в этом случае TCP-сервер будет неявно удалять пакет SYN (в Linux/Unix) , Наличие отсрочки позволяет клиенту достаточно времени для того, чтобы приложение на сервере TCP могло вывести из строя эти ожидающие подключения (путем вызова accept()) и тем самым создать пространство в очереди для клиента, выполняющего отсрочку.

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