The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Не отваливается сессия по keepalive"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Сеть, сокеты)
Изначальное сообщение [ Отслеживать ]

"Не отваливается сессия по keepalive"  +/
Сообщение от grizm (ok) on 04-Май-10, 13:22 
Разъясните, плз, что не так делаю или куда смотреть
есть 2 ноды, на одной висит telnetd где задаю для сокета:
setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &const_int_1, sizeof(const_int_1));
setsockopt(fd, SOL_TCP, SO_KEEPIDLE, &const_int_1, sizeof(const_int_1));
setsockopt(fd, SOL_TCP, SO_KEEPCNT, &const_int_1, sizeof(const_int_1));
setsockopt(fd, SOL_TCP, SO_KEEPINTVL, &const_int_1, sizeof(const_int_1));
со второй ноды телнечусь к первой
первая нода, если у нее теряется конекшен(физически вырубается или дропается линка, к примеру), должна тут же телнет сессия на второй ноде дропнуца, а нет, висит

параметры ядра из /proc на первой ноде ничего не меняют, со второй нодой я ничего делать не могу(так задача поставлена)

есть подозрения, что тут надо именно клиент настраивать, чего я делать не могу, а через сервер(telnetd) как-нибудь можно что сделать?

Регардс )

Высказать мнение | Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Не отваливается сессия по keepalive"  +/
Сообщение от guest email(??) on 04-Май-10, 15:10 
TCP keepalive чисто клиентская фишка, собственно от сервера (telnetd в вашем случае) для поддержки ничего и не требуется.

Т.е. вы сами себе и отвечаете:
>есть подозрения, что тут надо именно клиент настраивать, чего я делать не могу,

да

>а через сервер(telnetd) как-нибудь можно что сделать?

нет

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

2. "полностью неверный ответ"  +/
Сообщение от Вова on 04-Май-10, 17:58 
>[оверквотинг удален]
>для поддержки ничего и не требуется.
>
>Т.е. вы сами себе и отвечаете:
>>есть подозрения, что тут надо именно клиент настраивать, чего я делать не могу,
>
>да
>
>>а через сервер(telnetd) как-нибудь можно что сделать?
>
>нет

все ответы - рандом?

Автору: всё-таки поиграйте с  /proc/sys/net/ipv4/*keepalive*

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "полностью неверный ответ"  +/
Сообщение от guest email(??) on 06-Май-10, 08:51 
>все ответы - рандом?
>
>Автору: всё-таки поиграйте с  /proc/sys/net/ipv4/*keepalive*

Перечитайте вопрос.
Я его понимаю так:
Как без правки кода/тюнинга стека заставить клиент дропнуть конект с сервером при отсутсвии линка между ними?
Если вы считаете что keepalive на _сервере_ чем то поможет в такой ситуации то...

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

4. "полностью неверный ответ"  +/
Сообщение от Вова on 07-Май-10, 09:28 
>>все ответы - рандом?
>>
>>Автору: всё-таки поиграйте с  /proc/sys/net/ipv4/*keepalive*
>
>Перечитайте вопрос.
>Я его понимаю так:
>Как без правки кода/тюнинга стека заставить клиент дропнуть конект с сервером при
>отсутсвии линка между ними?
>Если вы считаете что keepalive на _сервере_ чем то поможет в такой
>ситуации то...

я про это

> keep-alive это чисто "клиентская" фишка

это не надо было писать, чистой воды введение в заблуждение.

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

5. "Не отваливается сессия по keepalive"  +/
Сообщение от pavlinux email(ok) on 30-Авг-10, 02:47 
>Разъясните, плз, что не так делаю или куда смотреть
>есть 2 ноды, на одной висит telnetd где задаю для сокета:
>setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, &const_int_1, sizeof(const_int_1));
>setsockopt(fd, SOL_TCP, SO_KEEPIDLE, &const_int_1, sizeof(const_int_1));
>setsockopt(fd, SOL_TCP, SO_KEEPCNT, &const_int_1, sizeof(const_int_1));
>setsockopt(fd, SOL_TCP, SO_KEEPINTVL, &const_int_1, sizeof(const_int_1));

SO_KEEPIDLE, SO_KEEPCNT, SO_KEEPINTVL - сам придумал?

>[оверквотинг удален]
> должна тут же телнет сессия на второй ноде дропнуца, а нет, висит
> параметры ядра из /proc на первой ноде ничего не меняют,

net.ipv4.tcp_keepalive_time = 1
net.ipv4.tcp_keepalive_probes = 1000
net.ipv4.tcp_keepalive_intvl = 1

> со второй нодой я ничего делать не могу(так задача поставлена)

Пошли на х...й тех кто задачу ставил. А если будут таймауты на локальном роутере,
и на магистральном роутере затык, а вдруг провод коротит, а вдруг через GPRS/CDMA/Wimax в сеть ходишь.... так вы заипётесь пересоединятся.

  

Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру