Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Передача данных между 2 GPRS модемами
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Страницы: 1, 2, 3
Yuriy_Rus
Уважаемые, помогите. Нужна прога на С++, которая реализует передачу данных (восновном текстовых) между 2 GPRS модемами от одного компа к другому. Интерфейс модемов с компами -RS-232.
Может кто-то сталкивался с такой проблемой? Есть исходники? help.gif
Заранее, Спасибо.
Yuriy_Rus
Тип GPRS модема - WAVECOM FASTRACK
beer_warrior
Модем он и в Африке модем. Любой терминал поможет.
BVU
Цитата(beer_warrior @ Jul 24 2006, 10:50) *
Модем он и в Африке модем. Любой терминал поможет.

Согласен на все сто! А то получается такое обстоятельство: "Покажите какие кнопки нажимать, а то ноты учить не охота..."
san822
Ну, во-первых понятно желание перед самостоятельным решением задачи
посмотреть на творения колегг. Я бы, наверное, тоже сделал такую попытку.
Во-вторых, человек спрашивает о возможности передачи.
Если я не ошибаюсь реализовать это можно не только через GPRS,
но и через CSD. Передавать планируется тексты,
т. е. обьём передачи не велик, поэтому и CSD может подойти.
Про выгодность - это зависит от тарифов оператора в зоне,
где будут работать модемы. У некоторых, например, звонки внутри сети очень дешевые или есть дешевые внутрисетевые безлимитки,
т. е. можно подумать о CSD - там ведь вроде оплата идет за время,
а не за обьем данных.
BVU
Цитата(san822 @ Jul 24 2006, 11:17) *
Ну, во-первых понятно желание перед самостоятельным решением задачи
посмотреть на творения колегг. Я бы, наверное, тоже сделал такую попытку.
...

Несколько не так... Вопрос был задан именно:
Цитата(Yuriy_Rus @ Jul 24 2006, 08:58) *
... Нужна прога на С++, которая реализует передачу данных (восновном текстовых) между 2 GPRS модемами от одного компа к другому...

Обычно интересующийся человек спрашивает, как это сделать. И мы ему помогаем. А здесь сразу же дайте прогу... Открытых проектов по данной тематике очень мало, т.к. многие реализации в основном комерческие поскольку рынок изобилует спросом на эти услуги, и ничего странного, что здесь существует нормальная конкуренция.
Тем более, что у нас есть форум посвещенный данным проблемам, а здесь "Общение - Free talks" - ни к чему не обязывает...
Так что ничего личного, а просто выравнивание курса в 'нужное русло'... smile.gif
Yuriy_Rus
to BVU - к словам цепляться не стоит. Попросил помочь. А тут уже и "кнопки нажимать не охота".

А по делу, кто небудь может подсказать пути решения моей проблемы.
Chupakabra
Цитата(Yuriy_Rus @ Jul 24 2006, 08:58) *
Уважаемые, помогите. Нужна прога на С++, которая реализует передачу данных (восновном текстовых) между 2 GPRS модемами от одного компа к другому. Интерфейс модемов с компами -RS-232.
Может кто-то сталкивался с такой проблемой? Есть исходники? help.gif
Заранее, Спасибо.


Если не ошибаюсь то обычный GPRS модем общается с PC чем-то вроде PPP или SLIP протоколом т.е. tcp/ip over PPP over RS-232. Кроме того в модеме может быть реализован в разной степени стек TCP/IP, и работа с портом (RS-232) ведется на уровне "последовательный порт" <-каким-то образом-> tcp/ip порт.
Rst7
Через GPRS нельзя организовать соединение точка-точка, так что только CSD
Chupakabra
Цитата(Rst7 @ Jul 24 2006, 15:06) *
Через GPRS нельзя организовать соединение точка-точка, так что только CSD


На транспортном и канальном уровнях модели OSI нельзя, на уровене приложений можно smile.gif
Т.е. точка-точка может быть организована на уровне IP адрес:порт <-> IP адрес:порт.
Rst7
Цитата(Chupakabra @ Jul 24 2006, 14:44) *
Цитата(Rst7 @ Jul 24 2006, 15:06) *

Через GPRS нельзя организовать соединение точка-точка, так что только CSD


На транспортном и канальном уровнях модели OSI нельзя, на уровене приложений можно smile.gif
Т.е. точка-точка может быть организована на уровне IP адрес:порт <-> IP адрес:порт.


Как вы себе видите узнавание IP-адреса другого модема? Через какой-либо специально организованный сервер в инете? Выделение IP ведь динамическое...
Yuriy_Rus
Будет использоваться сервер.
Задача прог для каждого модема организовыать запросы на базовую станцию оператора моб. связи. Затем сообщать адресс модема на сервер(вторая прога в это время будет делать то же самое для другого модема). Затем организовывать запрос на сервер за IP другого модема (то же самое происходит на другом компе). Когда проги будут знать IP противоположных модемов "начнёться веселье".
Какими средствами С++ реализовать всё вышеизложенное?
Chupakabra
Цитата(Rst7 @ Jul 24 2006, 16:04) *
Цитата(Chupakabra @ Jul 24 2006, 14:44) *

Цитата(Rst7 @ Jul 24 2006, 15:06) *

Через GPRS нельзя организовать соединение точка-точка, так что только CSD


На транспортном и канальном уровнях модели OSI нельзя, на уровене приложений можно smile.gif
Т.е. точка-точка может быть организована на уровне IP адрес:порт <-> IP адрес:порт.


Как вы себе видите узнавание IP-адреса другого модема? Через какой-либо специально организованный сервер в инете? Выделение IP ведь динамическое...


Ну это уже расширение условий задачи. А вообще, да, нахаляву например www.dyndns.com/ или www.changeip.com, или платные сервисы - понадежней. Можно даже свой DNS на выделенном сервере организовать.
Yuriy_Rus
to Chupakabra
Правильно мыслишь.
Однако разговор идёт, а дело стоит.

(Пока. До завтра.)
GetSmart
После получения обоими модемами динамических IP-адресов нужно обменяться ими. Я бы предложил быстренько на пару секунд законнектиться через обычное модемное соединение, пускай даже по аналоговому каналу 9600 передать эти "циферки", а потом уже общаться через IP-адреса. Нужно только знать номера обоих телефонов. Благо GPRS позволяет одновременно "разговаривать" по телефону.
Yuriy_Rus
Цитата(GetSmart @ Jul 24 2006, 17:37) *
После получения обоими модемами динамических IP-адресов нужно обменяться ими. Я бы предложил быстренько на пару секунд законнектиться через обычное модемное соединение, пускай даже по аналоговому каналу 9600 передать эти "циферки", а потом уже общаться через IP-адреса. Нужно только знать номера обоих телефонов. Благо GPRS позволяет одновременно "разговаривать" по телефону.


Нет, тут весь смысл в том что есть два компа, два GPRS модема и передачу данных нужно организовывать без всяких (кроме сервера, кот. принимает и выдаёт IP) вспомогательных средств. Обычное модемное соединение использоваться не будет. a14.gif
Rst7
Цитата(GetSmart @ Jul 24 2006, 16:37) *
После получения обоими модемами динамических IP-адресов нужно обменяться ими. Я бы предложил быстренько на пару секунд законнектиться через обычное модемное соединение, пускай даже по аналоговому каналу 9600 передать эти "циферки", а потом уже общаться через IP-адреса. Нужно только знать номера обоих телефонов. Благо GPRS позволяет одновременно "разговаривать" по телефону.


Ну а вообще-то с учетом того, что один открывает серверный сокет, а другой клиентский, то в принципе сервер может просунуть клиенту смс wink.gif
GetSmart
Цитата(Yuriy_Rus)
Нет, тут весь смысл в том что есть два компа, два GPRS модема и передачу данных нужно организовывать без всяких (кроме сервера, кот. принимает и выдаёт IP) вспомогательных средств. Обычное модемное соединение использоваться не будет.

Я имел ввиду модемное соединение через этот же GPRS-модем, только по аналоговому каналу. Я точно не знаю, но может быть именно оно называется CSD. Короче, кроме двух GPRS модемов ничего дополнительно не надо. И этот вариант гораздо лучше передачи двух СМС-ок. Да и быстрее.
Rst7
Цитата(GetSmart @ Jul 25 2006, 11:10) *
Цитата(Yuriy_Rus)
Нет, тут весь смысл в том что есть два компа, два GPRS модема и передачу данных нужно организовывать без всяких (кроме сервера, кот. принимает и выдаёт IP) вспомогательных средств. Обычное модемное соединение использоваться не будет.

Я имел ввиду модемное соединение через этот же GPRS-модем, только по аналоговому каналу. Я точно не знаю, но может быть именно оно называется CSD. Короче, кроме двух GPRS модемов ничего дополнительно не надо. И этот вариант гораздо лучше передачи двух СМС-ок. Да и быстрее.


Одной SMS, одной! От сервера клиенту. Этого хватит.
GetSmart
Пусть одной, но всё равно просто позвонить и скинуть десяток байт будет быстрее, чем ждать прихода этой СМС.
Yuriy_Rus
Цитата(Rst7 @ Jul 25 2006, 12:28) *
Цитата(GetSmart @ Jul 25 2006, 11:10) *

Цитата(Yuriy_Rus)
Нет, тут весь смысл в том что есть два компа, два GPRS модема и передачу данных нужно организовывать без всяких (кроме сервера, кот. принимает и выдаёт IP) вспомогательных средств. Обычное модемное соединение использоваться не будет.

Я имел ввиду модемное соединение через этот же GPRS-модем, только по аналоговому каналу. Я точно не знаю, но может быть именно оно называется CSD. Короче, кроме двух GPRS модемов ничего дополнительно не надо. И этот вариант гораздо лучше передачи двух СМС-ок. Да и быстрее.


Одной SMS, одной! От сервера клиенту. Этого хватит.


Сначала модем посылает свой динамический IP серверу. Затем принимает IP другого. Всё то же самое делает и другой модем. Как всё это делается одной SMS!? Или я чего-то неправильно понял? Я в GPRS модемах плоховато шарю.
GetSmart
Передаётся одной СМС один IP. Модем, получивший его посылает туда IP-пакет. Таким образом другой модем (сервер) получает IP-адрес клиента.

Но вариант с СМС неидеален. Как я уже говорил.
Yuriy_Rus
Цитата(GetSmart @ Jul 25 2006, 15:50) *
Передаётся одной СМС один IP. Модем, получивший его посылает туда IP-пакет. Таким образом другой модем (сервер) получает IP-адрес клиента.

Но вариант с СМС неидеален. Как я уже говорил.


Что-то то ли я не понимаю, то ли ты...
Что ты подразумеваешь под "ТУДА"?
Как один модем может стать сервером, а другой клиентом?
Сервер он на то и нужен, что IP у него постоянный. А у GPRS модема IP выдаются каждый раз новый при подключении. Т.е. модемы не могут общаться между собой сразу, т. к. каждый раз они не будут знать свои адреса. Задача сервера - обменять модемы адресами.
Rst7
Цитата(Yuriy_Rus @ Jul 25 2006, 16:07) *
Цитата(GetSmart @ Jul 25 2006, 15:50) *

Передаётся одной СМС один IP. Модем, получивший его посылает туда IP-пакет. Таким образом другой модем (сервер) получает IP-адрес клиента.

Но вариант с СМС неидеален. Как я уже говорил.


Что-то то ли я не понимаю, то ли ты...
Что ты подразумеваешь под "ТУДА"?
Как один модем может стать сервером, а другой клиентом?
Сервер он на то и нужен, что IP у него постоянный. А у GPRS модема IP выдаются каждый раз новый при подключении. Т.е. модемы не могут общаться между собой сразу, т. к. каждый раз они не будут знать свои адреса. Задача сервера - обменять модемы адресами.


Протокол TCP/IP подразумевает, что на одной стороне создается серверный сокет (ожидающий соединение), а на другой стороне клиентский (который является инициатором коннекта). После того, как поднялся PPP и вы в своей софтине создаете серверный сокет, становится известен его IP, который достаточно послать клиенту, чтобы тот выполнил соединение с этим IP. Но мы забыли одну вещь - не факт, что серверный сокет, открытый на GPRS будет работать. Я имею в виду проблемы класса active/passive режим для FTP например. Т.е. IP-адрес может быть присвоен модему из диапазона внутренних адресов, а далее транслироваться через NAT.
Yuriy_Rus
Цитата(Rst7 @ Jul 25 2006, 17:44) *
Цитата(Yuriy_Rus @ Jul 25 2006, 16:07) *

Цитата(GetSmart @ Jul 25 2006, 15:50) *

Передаётся одной СМС один IP. Модем, получивший его посылает туда IP-пакет. Таким образом другой модем (сервер) получает IP-адрес клиента.

Но вариант с СМС неидеален. Как я уже говорил.


Что-то то ли я не понимаю, то ли ты...
Что ты подразумеваешь под "ТУДА"?
Как один модем может стать сервером, а другой клиентом?
Сервер он на то и нужен, что IP у него постоянный. А у GPRS модема IP выдаются каждый раз новый при подключении. Т.е. модемы не могут общаться между собой сразу, т. к. каждый раз они не будут знать свои адреса. Задача сервера - обменять модемы адресами.


Протокол TCP/IP подразумевает, что на одной стороне создается серверный сокет (ожидающий соединение), а на другой стороне клиентский (который является инициатором коннекта). После того, как поднялся PPP и вы в своей софтине создаете серверный сокет, становится известен его IP, который достаточно послать клиенту, чтобы тот выполнил соединение с этим IP. Но мы забыли одну вещь - не факт, что серверный сокет, открытый на GPRS будет работать. Я имею в виду проблемы класса active/passive режим для FTP например. Т.е. IP-адрес может быть присвоен модему из диапазона внутренних адресов, а далее транслироваться через NAT.



Как можно послать от "модема-сервера" его IP клиенту, если IP клиента неизвестен.
И какими средствами C++ я могу узнать IP модема в момент, когда он приходит модему с Базовой станции?
Или я опять чего-то не догоняю? Просветите "доступным" языком, пожалуйста.
GetSmart
Я сам не знаю всех этих протоколов. Чисто на интуиции думаю.
Подразумевается, что один из телефонов известен другому. Например все клиенты должны знать телефонный номер сервера. В вашей задаче можно считать, что один из телефонов - сервер, а другой (или даже другие) - клиент. Проблема только в том, что сервер должен отсылать СМС, а он-то и не знает номер клиента.

Ситуация:
Один телефон регистрируется и получает IP. После он отправляет СМС с этим IP на сервер, телефонный номер которого он знает. Сервер после этого тоже регистрируется и уже через GPRS протокол (не знаю PPP или что-то ещё) отсылает на полученный им IP пакет данных. В этом пакете будет содержаться его собственный IP (сервера). Ну и далее они гоняют данные друг другу.

Если всё ПО писать под себя, то я бы вообще не стал вводить такое жёсткое разделение на клиент/сервер между двумя телефонами. Который первый инициировал соединение - тот и является клиентом. А изначально оба телефона могут быть равноценными.
Chupakabra
Цитата(GetSmart @ Jul 25 2006, 18:38) *
Я сам не знаю всех этих протоколов. Чисто на интуиции думаю.
Подразумевается, что один из телефонов известен другому. Например все клиенты должны знать телефонный номер сервера. В вашей задаче можно считать, что один из телефонов - сервер, а другой (или даже другие) - клиент. Проблема только в том, что сервер должен отсылать СМС, а он-то и не знает номер клиента.

Ситуация:
Один телефон регистрируется и получает IP. После он отправляет СМС с этим IP на сервер, телефонный номер которого он знает. Сервер после этого тоже регистрируется и уже через GPRS протокол (не знаю PPP или что-то ещё) отсылает на полученный им IP пакет данных. В этом пакете будет содержаться его собственный IP (сервера). Ну и далее они гоняют данные друг другу.

Если всё ПО писать под себя, то я бы вообще не стал вводить такое жёсткое разделение на клиент/сервер между двумя телефонами. Который первый инициировал соединение - тот и является клиентом. А изначально оба телефона могут быть равноценными.


Да что тут мудрить, про dyndns уже писал. Самый верхний уровень TCP/IP, без скатываения вниз. У каждого учасника обмена будет свое имя, скажем terminal1.dyndns.org - это константа, не меняется, и известно каждому участнику соединения (terminal2.dyndns.org, terminal3.... и т.п.). Используя службу DNS (ну и DynDNS соответственно, черех обращение к зоне DynDNS) эти имена переворачиватся в динамические IP адреса (выданные на данные момент провайдером). Все друг друга опознали и разговаривают между собой по тохнологии клиент-сервер (over TCP или UDP).
Yuriy_Rus
Цитата(GetSmart @ Jul 25 2006, 18:38) *
Я сам не знаю всех этих протоколов. Чисто на интуиции думаю.
Подразумевается, что один из телефонов известен другому. Например все клиенты должны знать телефонный номер сервера. В вашей задаче можно считать, что один из телефонов - сервер, а другой (или даже другие) - клиент. Проблема только в том, что сервер должен отсылать СМС, а он-то и не знает номер клиента.

Ситуация:
Один телефон регистрируется и получает IP. После он отправляет СМС с этим IP на сервер, телефонный номер которого он знает. Сервер после этого тоже регистрируется и уже через GPRS протокол (не знаю PPP или что-то ещё) отсылает на полученный им IP пакет данных. В этом пакете будет содержаться его собственный IP (сервера). Ну и далее они гоняют данные друг другу.

Если всё ПО писать под себя, то я бы вообще не стал вводить такое жёсткое разделение на клиент/сервер между двумя телефонами. Который первый инициировал соединение - тот и является клиентом. А изначально оба телефона могут быть равноценными.


Как программно на С++ реализовать "выемку" GPRS модемом своего IP, как только он его получил?
И как программно на С++ реализовать "отсыл" SMS на номер сервера?
Или это всё уникальные функции, зависящие от типа(марки изготовителя) модема?

Цитата(Chupakabra @ Jul 25 2006, 22:00) *
Цитата(GetSmart @ Jul 25 2006, 18:38) *

Я сам не знаю всех этих протоколов. Чисто на интуиции думаю.
Подразумевается, что один из телефонов известен другому. Например все клиенты должны знать телефонный номер сервера. В вашей задаче можно считать, что один из телефонов - сервер, а другой (или даже другие) - клиент. Проблема только в том, что сервер должен отсылать СМС, а он-то и не знает номер клиента.

Ситуация:
Один телефон регистрируется и получает IP. После он отправляет СМС с этим IP на сервер, телефонный номер которого он знает. Сервер после этого тоже регистрируется и уже через GPRS протокол (не знаю PPP или что-то ещё) отсылает на полученный им IP пакет данных. В этом пакете будет содержаться его собственный IP (сервера). Ну и далее они гоняют данные друг другу.

Если всё ПО писать под себя, то я бы вообще не стал вводить такое жёсткое разделение на клиент/сервер между двумя телефонами. Который первый инициировал соединение - тот и является клиентом. А изначально оба телефона могут быть равноценными.


Да что тут мудрить, про dyndns уже писал. Самый верхний уровень TCP/IP, без скатываения вниз. У каждого учасника обмена будет свое имя, скажем terminal1.dyndns.org - это константа, не меняется, и известно каждому участнику соединения (terminal2.dyndns.org, terminal3.... и т.п.). Используя службу DNS (ну и DynDNS соответственно, черех обращение к зоне DynDNS) эти имена переворачиватся в динамические IP адреса (выданные на данные момент провайдером). Все друг друга опознали и разговаривают между собой по тохнологии клиент-сервер (over TCP или UDP).


Расскажи подробнее про DNS(DynDNS) как там, и что? Как реализовано "переворачивание" имён в динамические IP?
Yuriy_Rus
Цитата(GetSmart @ Jul 25 2006, 18:38) *
Я сам не знаю всех этих протоколов. Чисто на интуиции думаю.
Подразумевается, что один из телефонов известен другому. Например все клиенты должны знать телефонный номер сервера. В вашей задаче можно считать, что один из телефонов - сервер, а другой (или даже другие) - клиент. Проблема только в том, что сервер должен отсылать СМС, а он-то и не знает номер клиента.

Ситуация:
Один телефон регистрируется и получает IP. После он отправляет СМС с этим IP на сервер, телефонный номер которого он знает. Сервер после этого тоже регистрируется и уже через GPRS протокол (не знаю PPP или что-то ещё) отсылает на полученный им IP пакет данных. В этом пакете будет содержаться его собственный IP (сервера). Ну и далее они гоняют данные друг другу.

Если всё ПО писать под себя, то я бы вообще не стал вводить такое жёсткое разделение на клиент/сервер между двумя телефонами. Который первый инициировал соединение - тот и является клиентом. А изначально оба телефона могут быть равноценными.


Не, блин, я туту прикинул SMS может и через день прийти(раз на раз не приходится). Тут важна стабильность. Так что будет сервер в Интернете, через который будет по GPRS происходить обмен IP.
Использование звонков и SMS лучше оставить.
GetSmart
Слушайте, товарищ, я же писал, что вариант с СМС неидеальный, а вариант с дозвоном на пару сек очень хорош. При этом соединение устанавливается за несколько секунд. Все необходимые операции для этого умеет делать любой GPRS модем. Как собственно и любой телефон с GPRS. Да и команды для этих операций стандартизированы и должны поддерживаться всеми модемами.

А через dynDNS соединение как я понял и того проще. Если оба модема знают свои уникальные интернетовские имена, то сразу после входа в сеть они могут узнать айпишники этих имён.
Chupakabra
На счет dynDNS - там много вариатнов есть. Бесплатный: когда терминал получает доступ через GPRS в интернет (все сотовые операторы предоставляют только доступ в интернет по технологии GPRS), он посылает http запрос на сайт dyndns.org или аналогичный, содержащий свой IP, имя пользователя пароль на обновление. Далее при запросе через интернет по адресу terminal1.dyndns.org (да хоть с PC обычного) служба DNS обращается к DNS домена dyndns.org, а тот возвращает текущий IP адрес terminal1.
Платные сервисы основаны на обновлении записи в DNS сервере службы dyndns. Это DNS для быстроты обработке можно указать в настройка TCP/IP : primary, secondory. (про платные сервисы я толком не знаю, если нужно думаю сами можете почитать и разобраться что они там предлагают).

На счет надежности всего это дела могу сказать, что надежней всего стало бы наличие собственного сервера 24online заточенного только под обработку запросов c terminal1-N smile.gif
zltigo
Цитата(Yuriy_Rus @ Jul 25 2006, 12:38) *
Сначала модем посылает свой динамический IP серверу. Затем принимает IP другого. Всё то же самое делает и другой модем.

Если есть сервер, то и работайте ВСЕГДА через него и не морочте голову. Это между прочим ЕДИНСТВЕННЫЙ универсальный вариант. Ибо даже обмеявшись полученными IP вы удручающе высокой
вероятностью обменяетесь ЛОКАЛЬНЫМ IP адресом внутренней сети провайдера, от котогого никакого
толку за пределами сети не будет и если провайдер не полный лох, то доступа не будет и к другим IP
(за исключением Gateway/Proxy/DNS) в его сети.
Посему ВСЯ работа через сервер, или оплата (многие провайдеры сие предоставляют) реального фиксированного IP для ваших модемов.
Yuriy_Rus
to Chupackabra

Я уже несколько раз говорил, что будет свой сервер 24online.



Цитата(zltigo @ Jul 26 2006, 14:37) *
Цитата(Yuriy_Rus @ Jul 25 2006, 12:38) *

Сначала модем посылает свой динамический IP серверу. Затем принимает IP другого. Всё то же самое делает и другой модем.

Если есть сервер, то и работайте ВСЕГДА через него и не морочте голову. Это между прочим ЕДИНСТВЕННЫЙ универсальный вариант. Ибо даже обмеявшись полученными IP вы удручающе высокой
вероятностью обменяетесь ЛОКАЛЬНЫМ IP адресом внутренней сети провайдера, от котогого никакого
толку за пределами сети не будет и если провайдер не полный лох, то доступа не будет и к другим IP
(за исключением Gateway/Proxy/DNS) в его сети.
Посему ВСЯ работа через сервер, или оплата (многие провайдеры сие предоставляют) реального фиксированного IP для ваших модемов.


Так что теперь и общаться модемам только через сервак?
А в случае если они будут использовать одного и того же провайдера? blink.gif
GetSmart
Цитата
Yuriy_Rus 11 минут назад Отправлено #33
Группа: Участники
Сообщений: 0
Регистрация: 24-07-06
Пользователь №: 19 039

Это как так? Сообщений = 0 !!!

Цитата
А в случае если они будут использовать одного и того же провайдера?

Думаю тут 100% можно напрямую.

Цитата(zltigo)
Ибо даже обмеявшись полученными IP вы удручающе высокой
вероятностью обменяетесь ЛОКАЛЬНЫМ IP адресом внутренней сети провайдера, от котогого никакого толку за пределами сети не будет и если провайдер не полный лох, то доступа не будет и к другим IP (за исключением Gateway/Proxy/DNS) в его сети.

Что за бред? GPRS предоставляет доступ в глобальную сеть. Поэтому и айпишники он выдаёт глобальные. Точно такие же как и при dial-up'е.
zltigo
Цитата(GetSmart @ Jul 26 2006, 14:21) *
Что за бред? GPRS предоставляет доступ в глобальную сеть. Поэтому и айпишники он выдаёт глобальные.

Незнание азбуки IP - для доступа в глобальную сеть не нужно иметь глобальный IP.
Вот я прямо сейчас пишу с машины которой выдан адрес
192.168.4.102. Заходите в гости :-)

Цитата
Думаю тут 100% можно напрямую.

Повторяю - если провайдер не без царя в голове (читай - сеть у него сделано не так, как у Вас "во дворе"), то доступа к другим машинам будет закрыт.
Chupakabra
Цитата(Yuriy_Rus @ Jul 26 2006, 14:54) *
Так что теперь и общаться модемам только через сервак?
А в случае если они будут использовать одного и того же провайдера? blink.gif


Думаю что работа GPRS сети аналогична dialup-у. Каждий клиентский IP может общаться напрямую только со шлюзом, а уж он решает куда разрешать маршрутизацию/NAT трансляцию. Самый плохой вариант когда 1) у 2х клиентвов вобще приватные IP вида 10.0.0.1-2 (mask 255.255.255.0); 2) при этом может быть запрещена маршрутизация 10.0.0.1 <-> 10.0.0.2. Многое из этого уже написал zltigo smile.gif


Вот уж где надо спецов по GPRS звать smile.gif
zltigo
Цитата(Yuriy_Rus @ Jul 26 2006, 13:54) *
Так что теперь и общаться модемам только через сервак?

А какая проблема? Если сервак при любом раскладе будет?
Собираетесь 100000 абонентов одновременно соединять и хотите на мощности сервера сэкономить?
Несколько десятков соединений любая 386 потянет.


Цитата(Yuriy_Rus @ Jul 26 2006, 13:54) *
Так что теперь и общаться модемам только через сервак?

А какая проблема? Если сервак при любом раскладе будет?
Собираетесь 100000 абонентов одновременно соединять и хотите на мощности сервера сэкономить?
Несколько десятков соединений любая 386 под первым попавшемся Linux потянет.


Цитата(Chupakabra @ Jul 26 2006, 14:30) *
Вот уж где надо спецов по GPRS звать smile.gif

Это не облась GPRS, а решение системных администраторов конкретного провайдера.
Chupakabra
Цитата(zltigo @ Jul 26 2006, 15:42) *
Цитата(Chupakabra @ Jul 26 2006, 14:30) *

Вот уж где надо спецов по GPRS звать smile.gif

Это не облась GPRS, а решение системных администраторов конкретного провайдера.


Ну я имел ввиду уровень ниже, т.е. возможности и основы функционирования самого GPRS. Или tcp/ip так плотно интегрирован с ним, что рассмотрение можно ограничить только tcp/ip протоколами?
zltigo
Цитата(Chupakabra @ Jul 26 2006, 16:26) *
Ну я имел ввиду уровень ниже, т.е. возможности и основы функционирования самого GPRS. Или tcp/ip так плотно интегрирован с ним, что рассмотрение можно ограничить только tcp/ip протоколами?

Чего-то я не понял :-(. Интеграции нет и по этой причине можно автономер разбираться с IP..
Что касается архитектуры GPRS/IP, то есть старенький, но зато перезентационный обзорчик
от "Архитектора" сети BT:
http://ripe.net/ripe/meetings/ripe-37/pres...prs/sld001.html
3.14
От части схожее обсуждение http://electronix.ru/forum/index.php?showt...=10552&st=0
Мне вот что интересно, в случае работы через DNS по динамическим IP ...
Сколько потребуется времени чтоб вновь присвоенный IP к определенному имени "расползся" по другим DNS серверам, а то получится хотя новый IP и линкован к имени а попасть можно будет на него будет например через сутки (имеется ввиду по имени а не по IP)?
kuguar
блин. длинная тема. еслия понял нужно соединить два модема по gprs напрямую. вариант с выделением имени тут я думаю не прокатит потому что как правило ОпСоС выдает динамический адрес но он fake, то есть нереальный и не маршрутизируемый глобально. если соединять два модема из одной сети - то по идее поглядев ип адреса и если они из одной подсети - связать из можно, если из разных то наврятли. вариант - поднять на обоих gprs и попробовать пингануть друг друга. при создании какого то масштабного проекта какие то вещи обсуждаемы на уровне ОпСоС, например - выделение абонентам из корпоративного договора пула реальных айпи. а насчет "расползания" - я так понимаю днс-имя зарегят на определенный ip, который принадлежит подсети которая принадлежит провайдеру, которые прописан в RIPE. соотвественно dns не знающий соответствыя вашего имени-ип полезен на dns именно вашего провайдера.
zltigo
Цитата(3.14 @ Jul 27 2006, 11:08) *
Мне вот что интересно, в случае работы через DNS по динамическим IP ...
Сколько потребуется времени чтоб вновь присвоенный IP к определенному имени "расползся" по другим DNS серверам, а то получится хотя новый IP и линкован к имени а попасть можно будет на него будет например через сутки (имеется ввиду по имени а не по IP)?

А никто и не будет динамически имена переприсваивать! Вам временно выдали IP из пула ПРИНАДЛЕЖАЩЕГО не Вам - с чего это Вы взяли, что хоть какой-то DNS пойдет не на сервер владельца
спрашивать "назначенное" ему имя :-). В случае, если это Ваш пул адресов, то тогда конечно вы можете указать какой из ВАШИХ серверов отвечает за привязку и с ним играться. Степень "расползания" может быть ограничена пожеланием другим серверам всем всегда обращаться к Вашему серверу, что однако не помешает кому-нибудь (тем более не серверу) на это наплевать и закэшировать.
Короче, об именах забудьте, либо "назначайте" из прямо на пользовательской машине в hosts - тут
Вам никто не указ :-)
Yuriy_Rus
Цитата(zltigo @ Jul 26 2006, 18:07) *
Цитата(Chupakabra @ Jul 26 2006, 16:26) *

Ну я имел ввиду уровень ниже, т.е. возможности и основы функционирования самого GPRS. Или tcp/ip так плотно интегрирован с ним, что рассмотрение можно ограничить только tcp/ip протоколами?

Чего-то я не понял :-(. Интеграции нет и по этой причине можно автономер разбираться с IP..
Что касается архитектуры GPRS/IP, то есть старенький, но зато перезентационный обзорчик
от "Архитектора" сети BT:
http://ripe.net/ripe/meetings/ripe-37/pres...prs/sld001.html


Решил всё-таки попробовать вариант с обменом IP между модемами с одинаковым провайдером.
Если не выйдет воспользуюсь вашей идеей, и всё будет через сервер.
kuguar
точно! можно использовать имя host'а то есть динамическое имя которое присваивает провайдер при подключении. Но оно каждый раз может быть разное. или могут быть еще какието подводные камни. но если провайдер не проводит фильтрацию какую либо то:
1. оба модема поднимают gprs и определяют свои host -имена
2. обмениваются ими (csd или sms) один из них или оба пытаются установить соединеие с друг другом.
zltigo
Цитата(kuguar @ Jul 27 2006, 11:28) *
если соединять два модема из одной сети - то по идее поглядев ип адреса и если они из одной подсети - связать из можно

Уже писал - тоже маловероятно, если провайдер нормальный. Дело в том, что это ведь не Ваша сеть на работе/дома(в квартире), где все компьютеры по определению должны видеть и работать друг с другом. Тут вариант гостинницы, где временно встречаются со своими компьютерами разные НЕЗНАКОМЫЕ даже люди и даже будучи подключенными в одну сеть они из соображений безопасности НЕ ДОЛЖНЫ иметь возможность выходить на другие компьютеры постояльцев, да и на компьютеры владельцев гостинницы тоже :-).
kuguar
кажись ты немного спутал. приведу аналогию другую - например я прихожу к провайдеру(не опсос а просто интернет) и прошу чтобы он меня за мои деньги подключил к интернету. мне например дается реальный ип (или даже нереальный) и я ухожу счастливый. а потом прихожу и говорю что друг Вася ко мне не может по интернету зайти на мой компутер что бы скачать игрушку - а мне провайдер - я тебя защищаю чтобы к тебе кто попало не лез. Но я его не просил об этом. Я наоборот хочу чтобы мне лазили, вешали вирусов и троянов, спамили.
Так вот, в стандартном договоре у провайдера (по крайней мере моего) НЕТ такого пункта, который бы гласил о том что он самостоятельно будет ограничивать входящую или исходяющую информацию за исключением случаев неуплаты. А как я там с другом Васей буду соединяться, через фтп, телнет, или аську - его не волнует.
3.14
Цитата(zltigo @ Jul 27 2006, 11:31) *
Цитата(3.14 @ Jul 27 2006, 11:08) *

Мне вот что интересно, в случае работы через DNS по динамическим IP ...
Сколько потребуется времени чтоб вновь присвоенный IP к определенному имени "расползся" по другим DNS серверам, а то получится хотя новый IP и линкован к имени а попасть можно будет на него будет например через сутки (имеется ввиду по имени а не по IP)?

А никто и не будет динамически имена переприсваивать! Вам временно выдали IP из пула ПРИНАДЛЕЖАЩЕГО не Вам - с чего это Вы взяли, что хоть какой-то DNS пойдет не на сервер владельца
спрашивать "назначенное" ему имя :-). ...
Ну вот например, мое устройство коннектится своим GPRS-ом к сети оператора и тот дает динамический реальный IP, я сообщаю свой новорожденный IP "специализированному" DNS серверу который линкует меня с именем trtrtr.hrhrhr.ru. Далее, человек где-нить в никарагуа пытается достучаться до этого trtrtr.hrhrhr.ru, запрос с его DNS по невероятной цепи доходят до моего DNS, в итоге коннект устновлен можно работать. Проходит какое то время, снова плдключаю свое устройство, получаю другой IP, снова регистрируюсь на нужном DNS. Опять человек из никарагуа хочет попасть по trtrtr.hrhrhr.ru, и ведь тут-то должен наступить полный облом, т.к. в кешах, скорее всего не одного DNS, пока будет фигурировать старый IP ... В итоге все как-то не предсказуемо получается ...
Или я где то ошибаюсь?
kuguar
однако ман DNS надо. про несколько серверов fff.ru nnn.com на одном ip я знаю. а наоборот - вопрос интересный. Тут пахнет типа распределенной системой, однако насколько я знаю процедуру регистрации адреса - там указывается один ip. Процедура регистарции - это не настолько автоматизированный процесс, чтобы зная протокол на один и тот же адрес в течении пары(10, 100) минут перегистрировать на разные динамические ip. Эрго - соответствие dns-имени и 1 стат ип необходимо.
1. имеем 2 реальных ип 111(статический реальный) и 222(причем 222 может быть динамический и даже fake)
2. согласно процедуре регистрации имени производим регистрацию ццц.мну.ком на 111 (как здесь описано например http://noc.tomsk.ru/DNS-application.txt )
3. на этом серванте который по идее 24-onair поднимаем socks для себя и входное для друга из Никарагуа
4. когда линк 111<->222 поднят ты с другом общаешься нормально.
5. когда линка нет - друг из Никарагуа получит чтото типа "no 3.14 on air!" которое скажет ему сервер 111
6. когда 111 в дауне - по http например друг получит no route to host.
zltigo
Цитата(3.14 @ Jul 27 2006, 12:29) *
я сообщаю свой новорожденный IP "специализированному" DNS серверу который линкует меня с именем trtrtr.hrhrhr.ru.

Уже писал - никакой DNS сервер не примет от Вас (вопросы взлома обсуждать не будем)
"линковку" имени к IP за которым прописан ОФИЦИАЛЬНЫЙ DNS сервер.
Цитата
Далее,

И никакого "далее" уже обсуждать не надо..

А если позволят на "официальном" менять, то действительно:
Цитата
В итоге все как-то не предсказуемо получается ...

Хотя можете поставить свой собственный абсолютно автономный не завязанный на общий систему
DNS сервер и сообщив _его_ конкретный IP адрес в Никакрагуа, при условии сброса кэша на никарагуанской машине перед каждым сеансом - получите результат.
Yuriy_Rus
Цитата(zltigo @ Jul 27 2006, 12:43) *
Цитата(kuguar @ Jul 27 2006, 11:28) *

если соединять два модема из одной сети - то по идее поглядев ип адреса и если они из одной подсети - связать из можно

Уже писал - тоже маловероятно, если провайдер нормальный. Дело в том, что это ведь не Ваша сеть на работе/дома(в квартире), где все компьютеры по определению должны видеть и работать друг с другом. Тут вариант гостинницы, где временно встречаются со своими компьютерами разные НЕЗНАКОМЫЕ даже люди и даже будучи подключенными в одну сеть они из соображений безопасности НЕ ДОЛЖНЫ иметь возможность выходить на другие компьютеры постояльцев, да и на компьютеры владельцев гостинницы тоже :-).


a14.gif Вы были правы. Короче, останавливаюсь на варианте, когда весь поток сообщений будет проходить и рассылаться через сервер. Уже решил, что модемов в системе будет больше 2. Т. е. будет идентификация на серваке(по индивидуальному номеру SIM).
Алгоритм реализации:
Формат сообщения от модема на сервер будет такой: (свой номер SIM)(номер SIM, которой надо передать данные)(данные). Занесение в БД(если в 1-ый раз) или Идентификация на серваке.

Запись о модеме в БД будет содержать:
1. Номер SIM
2. IP
3. Данные, кот. ему нужно отправить.

Далее долбание на сервака(думаю каждые 30 сек. может меньше, может больше) на предмет того, "есть, что для меня"? Формат сообщения на запрос: (свой номер SIM).
В это время другой модем отсылает сообщение: (свой номер SIM). Если в первый раз то заноситься в БД, если второй, то просто идентифицируется, и идёт проверка, есть что для него. Если есть, то отправляется.
Временно собщения на отправку, будут храниться на серваке с привязкой к номеру получателя.
Если модем отключился от GPRS зашёл снова, то меняется его IP в базе.
Базу планирую делать на векторах. Вдруг модемов станет больше.

Проблема в том, что будет идти постояноое долбание сервака на предмет данных для себя. Напряг вообщем.
И с обновлением базы (модем поменяли или SIM, и всё, запись просто висит) то же не всё понятно. Через 2 месяца всё удалять и формировать занаво что-ли?

Может у кого другие идеи на счёт алгоритма есть?
Но всё же кто нибудь пробовал разменять модемы IP, при условии, что у однин моб. оператор, и пообщаться? А то вдруг у на симках какого нибудь оператора и получиться. Или отказаться от этой идеи совсем?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.