Оптимальный keep-alive?
От: aks  
Дата: 24.04.05 12:13
Оценка:
Есть клиент-сервер.
Клиент написан на Delphi, сервер на .NET.

Нужно сделать оптимальный keep-alive.
Нужен и для того, что бы клиент знал когда сервер упадет(если у сервера выдирают шнур сетевой, то соединение висит пока клиент что-нибудь не пошлет в сокет).

Вопрос — как оптимальнее?

Или слать от клиента каждые N минут серверу keep-alive?
Или слать если в течение K минут не пришли свежие данные?
Во втором случае минус в том, что они будут слать одновременно, что нагружает сервер.

Keep-alive не встроенные в tcp, а свои.
И насколько например при 5 тысячах клиентов будет грузиться сервер?

14.05.05 15:49: Перенесено из 'Алгоритмы'
Re: Оптимальный keep-alive?
От: xedin Беларусь http://natribu.org/by/
Дата: 11.05.05 06:56
Оценка:
Здравствуйте, aks, Вы писали:

aks>Вопрос — как оптимальнее?


aks>Или слать от клиента каждые N минут серверу keep-alive?

aks>Или слать если в течение K минут не пришли свежие данные?

Можно, в общем-то и так и так. Например, по стандарту взаимодействия SEMI HSMS реализован первый способ, дополненный проверкой таймаутов, где только можно. Неплохо работает.

aks>Во втором случае минус в том, что они будут слать одновременно, что нагружает сервер.

если ты про коллизии, то они возможны и так, и так. Никаких особых проблем, если грамотно написан обработчик коллизий.

aks>И насколько например при 5 тысячах клиентов будет грузиться сервер?

Хм..интересный вопрос Зависит от сервера, траффика, временных усливий, архитектуры твоей, наконец. И уж потом только от keep-alive.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Re: Оптимальный keep-alive?
От: Left2 Украина  
Дата: 11.05.05 16:13
Оценка:
Как вариант (на правах идеи) — сервер может сам возвращать клиенту, когда посылать следующий keep-alive (в ответе на текущий пакет). Тогда сервер сам сможет регулировать нагрузку от keep-alive пакетов.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Re[2]: Оптимальный keep-alive?
От: Аноним  
Дата: 12.05.05 08:49
Оценка:
Здравствуйте, Left2, Вы писали:

L>Как вариант (на правах идеи) — сервер может сам возвращать клиенту, когда посылать следующий keep-alive (в ответе на текущий пакет). Тогда сервер сам сможет регулировать нагрузку от keep-alive пакетов.

))) Да, так и видится сервер падающий под наплывом NOP-сообщений от клиентов

Да, кстати, такая штука называется не keep-alive а пустой запрос NO OPeration (NOP) во многих клиент-серверных системах,
например X-протокол, почтовые протоколы SMTP, POP имеют такие сообщения.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.