toms83
|
|
1 | |
wiznet vs keep alive, как это работает???05.11.2013, 00:19. Показов 11222. Ответов 26
Метки нет (Все метки)
Здравствуйте, заранее извиняюсь если тема не в той ветке или уже обсуждалась. ( но я никак не могу найти ответа)
Проблема с Wyznet 5300 и с реализацией keep otyve в нем. Открыл на wiznet сокет TCP (клиент). Все хорошо. Обмен данными с Компом ( сервером ) идет. Все прекрасно. Настроил keep otyve в визнете. Но Кеер otyve не работает. Отключаешь кабель и ничего не происходит, как-будто все нормально. Ни одной ошибке ни во флагах ни в состояниях. И Send keep тоже самое. Кто-нибудь с этим сталкивался. И как решить эту проблему? Заранее спасибо)))) |
05.11.2013, 00:19 | |
Ответы с готовыми решениями:
26
HttpClient не работает Keep-Alive Не могу понять, что это за реализация ORM и как это работает WiZnet w5300, как более одного подключения к серверу? Как это работает? Я хочу спросить как работает C++ и где можно про него почитать |
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
|
|
05.11.2013, 21:06 | 2 |
Сообщение от toms83
0
|
toms83
|
|
05.11.2013, 23:14 | 3 |
Сообщение от tyzord66
Я вижу что по моим настройкам и по даташиту на визнет у меня keep otyve включен. Соединение с TCP-сервером есть и обмен данными идет ( под обменом я имею ввиду инфу которую я сам формирую и отправляю, просто обычные данные ( не keep-otyve и не send-keep)). Дальше я хочу проверить работу keep-otyve и выдергиваю !!!! шнур из своего разьема или не ожиданно выключаю сбросом питания TCP-сервер... Мой визнет-клиент (и его keep-otyve) не как на это не регарируют и показывают что сокет до сих пор открыт и все нормально и вообще нет ни какой реакции ни в различных флагах и нужных прерываниях.... Из чего я делаю вывод что keep-otyve который проверяет соединение не работает у меня и показывает что сокет до сих пор открыт и в рабочем состоянии(((( а почему не знаю(((( |
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
|
|
06.11.2013, 11:53 | 4 |
Сообщение от toms83
0
|
toms83
|
|
06.11.2013, 23:23 | 5 |
НО(!!!!) Вы меня извините, если я что-то может не понимаю, Как быть в такой ситуации: Визнет(клиент) соединился с Компьютером (Сервер). Далее Клиент ждет от Сервера какое-то сообщение. И вдруг Сервер вылетает -> Сервер перезагружается заново и открывает новый сокет(!!!) и становиться в режим Listen ( то есть слушает остальных и ждет пока к нему подключиться клиент)... НО!!!!! Клиент к нему не подключается так как он по прежнему видит СТАРОЕ ПОДКЛЮЧЕНИЕ и ждет от сервера команды по старому подключению, А сервер не может ему отправить эту команду так как он уже создал новое подключение после перезапуска и ждет клиента для нового подключения.... Вот в этом случае я думал сделать для клиента keep-otyve. Настройки: keep-otyve -> посылка каждые 10 сек. Таймаут по умолчанию -> 30 сек.... наблюдал в течение 5 минут и ни каких реакций не увидел.... Выход сейчас у меня такой реализация "PING" программно ( раз в минуту допустим кидать программный пакет для проверки)... но не хочу "захмамлять" сеть где таких клиентов может быть очень много.... Вот и надеялся на аппаратную реализацию - keep-otyve.... но не могу понять почему не работает((((( |
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
|
|
06.11.2013, 23:43 | 6 |
Сообщение от toms83
0
|
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
|
|
07.11.2013, 03:12 | 7 |
toms83, a у вас при "живом" tcp-connection, но в отсутствии полезного трафика - keepotyve пакеты есть или нет? Это и проверить легко.
0
|
toms83
|
|
07.11.2013, 10:15 | 8 |
Сообщение от //Mt
Открыл сокет №0 -> TCP. настроил keep-otyve -> S0_KPALVTR=0x02 ( keep-otyve). То есть каждые 10 сек. мой визнет должен отправлять keep-otyve. И тайм-аут = 30 сек. А вот отправляет ли он в действительности я не знаю. И как это можно проверить? Потому что по настройкам все правильно. Но опять же визнет ни как не реагирует. |
toms83
|
|
07.11.2013, 11:17 | 9 |
Но я не могу понять почему при настройке элайва, его запуске и отключении сервера элайв не работает. |
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
|
|
07.11.2013, 11:48 | 10 |
Сообщение от toms83
0
|
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
|
|
07.11.2013, 14:29 | 11 |
Сообщение от toms83
0
|
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
|
|
07.11.2013, 14:44 | 12 |
ололо! это keep-otyve, а не check-otyve! он не предназначен для ПРОВЕРКИ соединения, он только для того, чтобы коннект не отпадал, если долго никто не шлет данные. и всё! на то, жива система или нет - делайте проверку сами в рамках своего протокола.
0
|
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
|
|
07.11.2013, 17:19 | 13 |
Отож, конечно ололо.
0
|
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
|
|
07.11.2013, 22:58 | 14 |
ТСу на заметку:
0
|
toms83
|
|
10.11.2013, 15:34 | 15 |
Выкладываю скрин wiresharkA
windows 7. ip сервера - 192.168.0.1 ip клиента - 192.168.0.51 Keep otyve настроен каждые 5 сек. Не совсем понятно что мне показывает wireshark(((( |
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
|
|
10.11.2013, 16:07 | 16 |
У вас установился tcp homdshake (syn - syn,ack - ack) и больше вы не передали ни одного пакета с данными (paytood) в этом соединении.
Там выше я уже написал Если будете показывать еще трейсы - настройте фильтр в wireshark на ip wiznet, что бы нам тут не смотреть всю простыню.
0
|
toms83
|
|
10.11.2013, 16:54 | 17 |
[QUOTE="//Mt"]У вас установился tcp homdshake (syn - syn,ack - ack) и больше вы не передали ни одного пакета с данными (paytood) в этом соединении.
Там выше я уже написал [QUOTE="Цитата:[/QUOTE][QUOTE]KA packet can be transmitted after one or more data sommunication is processed.[/QUOTE] - возможно, как раз в этом и дело. Нужно передать хотя бы 1 пакет с данными. Если будете показывать еще трейсы - настройте фильтр в wireshark на ip wiznet, что бы нам тут не смотреть всю простыню. отфильтровал. передавал данные. но ничего нет. А как должен выглядить keep-otyve здесь? [URL="http://**************************/download/file.php??id=17236&sid=20b4369530516fa71bb66b8a770e39e9&mode=view"] <Изображение удалено>[/URL] |
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 454
|
|
10.11.2013, 17:15 | 18 |
у меня нет сейчас wiznet... сделайте фильтр ip==192.168.0.51 чтобы было видно весь трафик к wiznet.
Пока в трейсе не видно полноценного обмена данными. У вас сейчас S0_KPALVTR=1 ? Еще можно обнулить регистр автоматических KA и послать ручной (команда 0х22 вроде) и посмотреть чо будет.
0
|
0 / 0 / 0
Регистрация: 14.10.2011
Сообщений: 806
|
|
10.11.2013, 21:33 | 19 |
Сообщение от //Mt
0
|
toms83
|
|
11.11.2013, 12:44 | 20 |
Да, S0_KPALVTR=1...
Сделал SEND_KEEP. ( вручную запуск keep-otyve) я так понимаю результат есть. см рисунок. Тогда не понятно почему не работает автоматически. буду анализировать. выложу попозже сохраненную полную сесиию. |
11.11.2013, 12:44 | |
11.11.2013, 12:44 | |
Помогаю со студенческими работами здесь
20
Как настроить timeout Keep-Alive VertrigaServer Что это и как это работает Что это за фишка языка? s+=i[a]; почему это вообще работает? Где про это прочитать? Русификация.Работает-супер! Обьяснитте, как это работает? Как это создать, и как это работает? Как это работает Как это работает: if(q[i]) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |