|
|
|
GPRS для чайников |
|
|
|
May 17 2015, 18:56
|
Местный
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682
|
Цитата А зачем пинговать 8.8.8.8 Дело в том, что нет доверия к самому GSM-модулю: внутренний стек или GPRS может глюкнуть, тест состояния будет ОК, но пакеты не будут даже выходить. Контроллер будет считать, что умер сервер, и ждать, ситуация зациклиться. Если же после нескольких неудачных попыток получить ответ сервера пробовать пинговать что-то гарантийно работающее, то сразу ясно: причина в модуле или в сервере. И если в модуле, то можно перезапустить. Причем 8.8.8.8 можно даже не пинговать, а отсылать в 51 порт UDP-пакет с DNS-запросом доменного имени, заведенного для вашего сервера, а по получению UDP-ответа парсить датаграмму и извлечь IP. Сам запрос шаблонный: захватите снифером с РС и запишите в виде сonst в контроллер. С поиском IP в ответе сложнее: он не по фиксированному смещению, и есть два варианта упаковки. Если не лень, посмотрите мой ассемблерный код по ссылке выше и переведите на С. Или, лучше, почитайте rfc по DNS и напишите парсер сами. Таким образом, убиваете сразу двух зайцев: убеждаетесь, что модуль не висит, и получаете новый IP сервера, если он изменился. Т.е. можно даже поднять сервер на динамическом IP c использованием DynDNS (правда, он сейчас полностью платный стал).
|
|
|
|
|
May 18 2015, 05:07
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
GeGeL, спасибо за советы. Да, может и стек в симкоме глюкнуть, и GPRS. Контроллер может ошибочно считатьчто умер сервер. Пингуя 8.8.8.8 (или не пингуя а запрашивая адрес, как Вы описали) можно убедиться в том что именно "висит", но при всем при этом выход из ситуации только один: перезагрузка модуля. Но пинговать 8.8.8.8 безусловно может оказаться полезно, так как перегружать модуть бесконечно нет смысла. Нужно обдумать логику работы модуля, особенно если учесть, что у меня 2 SIM-карты.
Сейчас озадачился написанием "стека" АТ команд для модема. Как я погляжу народ все делает на задержках (функции Delay под различными соусами), но я думаю это не айс. Не хочется изобретать велосипед, но чувствую, что буду вынужден)
|
|
|
|
|
May 18 2015, 06:59
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
Цитата(CADiLO @ May 18 2015, 05:58) Пинг будет нужен еще по одной причине - некоторые операторы при отсутствии активности в соединении просто превращают соединение в черную дыру. Данные уходят в никуда хотя коннект не разорван. Поэтому если соединение постоянное, то раз в несколько десятков секунд нужно или что-то отправлять или пинговать. С периодом 20с отправлял 2е суток (UDP слот). Сейчас поставлю 60 с.
Сообщение отредактировал ISG2015 - May 18 2015, 07:03
|
|
|
|
|
May 18 2015, 08:55
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
Поставил на компьютер программу снифер/анализатор сетев. протоколов "Wireshark". Отправляю по UDP 1 байт. Получаю: "Frame Length: 60 bytes (480 bits)" о_О Таким образом, отправляя на сервер пакетик раз в 5 минут и получая на него ответ (контроль канала) я в месяц попадаю на 1 Мбайт Что-то жирновастенько учитывая что мне бы хотелось чаще мониторить железку и канал связи.
|
|
|
|
|
May 18 2015, 14:18
|
Местный
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682
|
Цитата Получаю: "Frame Length: 60 bytes (480 bits)" Это проблема Ethernet - кадр дополняется нулями. В вашем случае внутреннего стека GSM-модуля оверхед будет 24 байта на пакет (на IP+UDP заголовки). Раньше они тарифицировались, сейчас не могу сказать, тем более по каждому оператору. Цитата я в месяц попадаю на 1 Мбайт Что-то жирновастенько Эдуард, это то, о чем я писал. И это только начало...
|
|
|
|
|
May 18 2015, 14:24
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
Эдуард? о_О
С Лайфом договорился, обещают завтра помочь с доступом к билинговой системе. Вот там и посмотрю ,что именно тарифицируется.
|
|
|
|
|
May 18 2015, 14:55
|
Гуру
Группа: Свой
Сообщений: 6 023
Регистрация: 26-08-05
Из: Днепр
Пользователь №: 7 988
|
>>> Эдуард? о_О Да. А шо? Как мне сказал начальник Кемеровского ОРТПЦ - Днепропетровца узнать легко - "шо", "га" и "тю" одновременно в лексиконе есть только там. К сожалению это наша действительность - волкИ хотят "еды".
--------------------
Не можна втрачати надію. Не можна здаватися до останньої миті. Можливо саме вона, остання мить, принесе весну, яка стане початком нового життя.
|
|
|
|
|
May 18 2015, 19:06
|
Местный
Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682
|
Цитата Эдуард Это была реплика к CADiLO в продолжение нашей старой дискуссии.
|
|
|
|
|
May 19 2015, 07:12
|
Частый гость
Группа: Участник
Сообщений: 125
Регистрация: 13-04-11
Из: Суровый Челябинск
Пользователь №: 64 337
|
Цитата(ISG2015 @ May 18 2015, 09:07) Сейчас озадачился написанием "стека" АТ команд для модема. Как я погляжу народ все делает на задержках (функции Delay под различными соусами), но я думаю это не айс. Не хочется изобретать велосипед, но чувствую, что буду вынужден) Правильно думаете. Велосипед давно придуман - switch, описывающий состояния автомата. На Delay делают первокурсники - тошно видеть такое от многоопытных дядек.
|
|
|
|
|
May 19 2015, 10:14
|
Участник
Группа: Участник
Сообщений: 33
Регистрация: 6-05-15
Пользователь №: 86 547
|
Сегодня таки выяснил какие накладные расходы на передачу 1 байта поверх сетей GSM (Life Украина) по технологии GPRS: 8 байт на UDP заголовки и 20 байт на IP. Итого 28 байт. Ну это уже нормальненько так Остается надеяться, что подобного рода расклады с тарификацией и у других операторов.
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|