Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: GR64 & Listen
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Ojo
Привет всем.
Оживляю модуль GR64. Пробывал на Балайн и МТС резульаты одни и теже.

Если с подсоединением все более менее нормально (команда AT*E2IPO)...
Правда при использовании TCP (AT*E2IPO=1...) возникли проблемы (это на будущее может кому-то пригодиться):
AT*E2IPO=1,\"85.21.118.116\",5000,1,1 - вот так не работает, сразу же возвращает ошибку, код 3.
AT*E2IPO=1,\"85.21.118.116\",5000,2,1 - вот так работает!

А вот Listen (команда AT*E2IPL) никак не получается оживить, что в UDP, что в TCP!
Может кто реально использовал эти команды? Посоветуйте...

И еще пару замечаний, так, ради интереса.
Команда
AT*E2IPI=0
дает следующий ответ
*E2IPI: "10.1.59.217"
Устанавливаю соединение с некотором хостом (команда AT*E2IPO) и посылаю данные, через программу (на удаленном хосте) смотрю от куда пришли данные, IP адрес получаю совсем другой! Почему то так, объясните человеку далекому от мира сетей?
И на последок, если данные посылать постоянно через секунд 10 (все тот же пример), то все нормально. Если подожать несколько минут и послать данные с модема, то на удаленном хосте наблюдаем такую картину, порт отправителя изменился. Для чего это, может кто значет?
Master of Nature
IP-адрес на удаленном хосте - это адрес сервера сотового оператора.
В реальности сам сотовый терминал подключается к серверу оператора, а оператор уже перенаправляет запросы в интернет. Причем открытый порт может переназначаться в процессе работы по усмотрению сервера.
Чтобы получить статический IP-адрес, необходимо договариваться с оператором. В принципе сейчас уже некоторые операторы предоставляют такую услугу.
Но это зависит не от настойек модема, а от сим-карты и договора на нее.
Динамическая смена порта происходит потому, что серверу необходимо одновременно обрабатывать запросы от множества абонентов и, поэтому, рационально распределять ресурсы.

PS: Насчет Listen - не получится использовать, пока ты не знаешь к какому адресу тебе надо стыковаться.
Ojo
Про адреса я так приблизитель и думал, но все равно большое спасибо.

Теперь про Listen. Я поднимаю через AT команды TCP/IP. Узнаю свой IP адрес AT*E2IPI=0, открываю соединение Listen (команда AT*E2IPL). И на удаленном хосте (ПК подсоединенный к Интернет) пытаюсь подсоединиться к IP адресу который мне выдала команда AT*E2IPI=0. Не выходит. Ладно, я делаю хитрее, перед Listen подсоединяюсь к некоторому хосту с fix IP адресом и сбрасываю на некоторый порт 5 байт данных, на хосте получаю их (спецально написанная программа) и вычисляю IP-дрес отправителя (который как я уже писал выше, отличается от того, что выдает команда AT*E2IPI). Далее разрываю соединение, открываю соединение Listen (команда AT*E2IPL) и с хоста пытаюсь соединться на вычисленный адрес (от перехвата посланных 5 байт). Все это делаеся в рамка одной GPRS сессии. Опять же ничего не выходит.
Может существет еще один IP адрес -))), и надо пытаться подсоединиться к нему?
Master of Nature
Для того чтобы подключиться как к серверу тебе нужно не только адрес знать, но еще и порт.
Как только ты открываешь сокет как клиент, тебе назначается порт на сервере оператора.
Как только ты сокет закрываешь, порт тоже теряется.
В таком случае уж лучше просто открывай как клиент и передавай данные.
Или заключай с СОпом доп. договор.
Ojo
Так, для особо одаренных (т.е. для себя), переспрошу.
Когда я открываю соединение Listen на порт, к примеру, 5000, то на сервере оператора открывается какой-то другой порт, к примеру, 6000 (т.к. он все перемешивает и оптимизирует). И если бы я его знал, то с хоста можно подсоединиться на этот порт (6000) и сервер операторатора перепошлет мои запросы на порт модема (5000).
И единственный выход в моей ситуации, попросить у оператора связи статический адрсес, или чтобы меня не кидали через сервер оператора.
Правильно я все понял?

PS Звонил в МТС они говорят, что статический IP адрес оне НЕ дают. Это правда?
Master of Nature
Цитата(Ojo @ Aug 23 2007, 17:15) *
Так, для особо одаренных (т.е. для себя), переспрошу.
Когда я открываю соединение Listen на порт, к примеру, 5000, то на сервере оператора открывается какой-то другой порт, к примеру, 6000 (т.к. он все перемешивает и оптимизирует). И если бы я его знал, то с хоста можно подсоединиться на этот порт (6000) и сервер операторатора перепошлет мои запросы на порт модема (5000).
И единственный выход в моей ситуации, попросить у оператора связи статический адрсес, или чтобы меня не кидали через сервер оператора.
Правильно я все понял?

PS Звонил в МТС они говорят, что статический IP адрес оне дают. Это правда?


Примерно так.
только я не уверен, что если ты Listen 5000 делаешь, на сервере вообще что-то происходит. т.к. прослушка происходит в пассивном режиме.
Кроме того - конфигурируешься-ли ты как сервер?
Если мне не изменяет память, для работы в режиме сервера нужны какие-то другие настройки (какие - не помню, дело давнее и темное).
А на стороне сервера действительно происходит маршрутизация запросов. Поэтому Listen 5000 - это твое личное дело. внутри локальной сети с оператором это имеет значение. Но со стороны удаленного хоста этот порт виден не будет.

А миновать сервер оператора не получится.
Полностью описывать логику работы очень долго, но в двух словах все запросы идут через сервер. И этот стат. IP назначается серверу, а он лишь транслирует запросы на этот адрес.
Ojo
Огромное спасибо за быстрые и информативные ответы.
Удачи.
stream
Цитата(Ojo @ Aug 23 2007, 16:15) *
PS Звонил в МТС они говорят, что статический IP адрес оне НЕ дают. Это правда?

Может, они тебя неверно поняли? Надо было просить "белый", или "настоящий" IP-адрес, "чтобы можно было принимать входящие соединения", "НЕ из диапазона 10.x.x.x" или как-то так. А статический адрес - это совершенно другое понятие. Это адрес, который еще и фиксирован - не меняется от сессии к сессии. На такое они действительно пойти не могут, так у них очень быстро пул адресов кончится.
Master of Nature
Скорее всего они правильно поняли.
Просто стат. IP нужен редко. Для большинства пользователей подходит динамический. А ради нескольких пользователей они не будут заниматься такой задачей, как регистрация специального диапазона адресов для выделения статических IP + переконфигурирование сервера или даже создание нового сервера.
Проще говоря - нужно их заинтересовать. А ради единичного случая - затраты несоизмеримые.
А такой "белый" адрес - тоже не дадут. Ради одного пользователя перелопачивать сервер - слишком дорого.

А выдача стат.IP я видел у одного СОпа, причем с возможностью создания VPN, так, что проблема с дефицитом адресов здесь отсутствует.
Но пока что в России это редкость.
stream
Цитата(Master of Nature @ Aug 24 2007, 09:23) *
А такой "белый" адрес - тоже не дадут. Ради одного пользователя перелопачивать сервер - слишком дорого.


Ага, ужасно дорого. В Туле это стоит аж 100 рублей в месяц.

http://www.tula.mts.ru/mts/page-view?walias=real_ip

"Услуга «Real IP» обеспечивает возможность передачи данных с применением сетевых протоколов, для работы которых необходимо наличие у пользователя реального IP-адреса в сети Интернет. Это необходимо, например, для установления шифрованного VPN-соединения."

"Абонентская плата за услугу «Real IP» в месяц, руб. 100,00"

А статический адрес ему действительно не дадут, но тут можно выкрутиться программно или через сторонние сервисы типа dyndns.
Master of Nature
Цитата(stream @ Aug 24 2007, 12:42) *
Ага, ужасно дорого. В Туле это стоит аж 100 рублей в месяц.

http://www.tula.mts.ru/mts/page-view?walias=real_ip

"Услуга «Real IP» обеспечивает возможность передачи данных с применением сетевых протоколов, для работы которых необходимо наличие у пользователя реального IP-адреса в сети Интернет. Это необходимо, например, для установления шифрованного VPN-соединения."

"Абонентская плата за услугу «Real IP» в месяц, руб. 100,00"

А статический адрес ему действительно не дадут, но тут можно выкрутиться программно или через сторонние сервисы типа dyndns.


Так я же сказал, что ради одного человека дорого. А если это поставлено на поток, то проблем нет.
То же и со стат. IP - в мегафоне она стоит 150 руб. в месяц (включая трафик). Но доступно только для корпоративных клиентов.
Ojo
Коль скоро я эту тему начал, то закончить ее придется мне.

Услуга RealIP (в МТС) помогла в решении моей проблемы. У других
операторов что-то подобное обязательно должно быть.
Только учтите, что при ее использовании надо давать команду
AT+CGDCONT=1,"IP","realip.msk"
вместо
AT+CGDCONT=1,"IP","internet.mts.ru"

При таком подключении модулю дается конкретный IP адрес
Команда
AT*E2IPI=0
дает следующий ответ
*E2IPI: "213.87.92.10" (реально существующий IP адрес, наконец-то!)

Как я понимаю, сервер оператора при использовании RealIP исключается из цепочки Модем-Интернет.
Что нам и надо. В итоге соединение типа Listen заработало.

Всем спасибо и удачи.
AlexCrush
Хех, у нас тут местный оператор связи Ютел выдает всем бесплатно "белые" инетовские адреса, есс-но динамически... А оказывается МТС где-то за это деньги берут :-)
Вот вопрос - так ли оно нужно, делать listen на GPRS ? В каких задачах это может реально пригодится?
Master of Nature
Цитата(AlexCrush @ Aug 27 2007, 12:41) *
Хех, у нас тут местный оператор связи Ютел выдает всем бесплатно "белые" инетовские адреса, есс-но динамически... А оказывается МТС где-то за это деньги берут :-)
Вот вопрос - так ли оно нужно, делать listen на GPRS ? В каких задачах это может реально пригодится?


"Услуга «Real IP» обеспечивает возможность передачи данных с применением сетевых протоколов, для работы которых необходимо наличие у пользователя реального IP-адреса в сети Интернет. Это необходимо, например, для установления шифрованного VPN-соединения."

Хотя, ИМХО, для Listen'a недостаточно реального IP, т.к. это неудобно. Желательно все-таки чтобы он не менялся от сеанса к сеансу. В противном случае преимушеств от его использования будет немного.

А удобство от использования Listen'a на модулях GPRS очевидна - без проблем обеспечивается доступ к модулю от внешней системы. При этом соединение не висит постоянно.

Как вариант решения проблемы дефицита IP можно предложить выделять не полноценные адреса, а только фиксировать порты при известном IP адресе (т.е. комбинировать). В этом случае можно до 65535 портов выделить (если не накладывать доп ограничений).

Другой вариант - VPN (но такое удобно только для крупной сети)
AlexCrush
Но ведь открытый серверный порт на каком-либо одиноко стоящем маленьком устройстве - это дырень в его безопасности. Мало ли как себя поведет конкретная реализация TCP/IP стэка при атаке навроде syn flood или подобной. Т.е. проблемы могут возникнуть. А польза - лишь то что это устройство "всегда онлайн" и его можно опросить - имхо мнимая. К тому же вечно висящее TCP соединение от устройства к серверу не так уж и плохо.
Я к чему спрашивал-то вообще. Есть ли задачи где обязательно нужен серверный сокет?
Master of Nature
Цитата(AlexCrush @ Aug 27 2007, 14:43) *
Но ведь открытый серверный порт на каком-либо одиноко стоящем маленьком устройстве - это дырень в его безопасности. Мало ли как себя поведет конкретная реализация TCP/IP стэка при атаке навроде syn flood или подобной. Т.е. проблемы могут возникнуть. А польза - лишь то что это устройство "всегда онлайн" и его можно опросить - имхо мнимая. К тому же вечно висящее TCP соединение от устройства к серверу не так уж и плохо.
Я к чему спрашивал-то вообще. Есть ли задачи где обязательно нужен серверный сокет?


Насчет дыры - не спорю, есть такая вероятнось, поэому лучше виртуальная сеть с собственной внутренней адресацией.
А насчет обязателен ли Listen - нет не обязателен, но жизнь с ним намного проще.
Иногда возникает необходимость инициировать обмен с удаленным устройством. Или производить обмен с разных точек.
В приложении к системам сбора информации - если есть необходимость считывать информацию с разных программ для сбора и обработки.
А висячее постоянно соединение - конечно не проблема, если только этих соединенией не слишком много. Все зависит от конкретного случая.
mes
Здравствуйте!
Может кто-то подскажет, почему GR64 с подключенным RealIP не хочет слушать порт?
Посылаю следующие команды:
AT+CGDCONT=1,"IP","realip.msk"
OK
AT*E2IPA=1,1
*E2IPA:000

OK
AT*E2IPL=1,1,4001,100,1
ERROR

Почему всегда ERROR?
vit496
Да нет, все работает как в мануале написано

AT*E2IPEV=6,1
OK
AT*E2IPL=1,1,5001,0
OK

*E2IPEV: 6,1,"IP",port

AT*E2IPACT=1
CONNECT

проверял недавно.
mes
Увы!
Проверил только что с этим набором команд. Всe так, только
вместо CONNECT - ERROR.
В чем тут "собака порыта"?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.