Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Cетевые протоколы и технологии

Cетевые протоколы и технологии TCP/IP стек

Ответ
 
Опции темы Опции просмотра
Старый 12.04.2014, 10:32   #1
IvanPletnev
Senior Member
 
Регистрация: 24.10.2013
Возраст: 41
Сообщений: 122
Вес репутации: 116/17
IvanPletnev will become famous soon enoughIvanPletnev will become famous soon enough
По умолчанию Клиент-серверная система с SIM900.

Здравствуйте!
Разрабатываю сейчас систему, в которой множество устройств, оборудованных GSM модулями SIM900 будут общаться с TCP сервером. Добился сейчас того, что один модуль надежно отправляет данные на сервер и получает с сервера команды. Возникла необходимость в разработке протокола обмена, обеспечивающего функционирование нескольких устройств.
В связи с этим, возник вопрос. Как в таких системах обычно реализуется идентификация клиентов? То есть, например, нужно передать с сервера на определенное устройство, зарегистрированное на сервере, команду. Как легче всего поступить в этом случае? По MAC адресу? Либо какие-то еще механизмы имеются?
IvanPletnev вне форума   Ответить с цитированием
Старый 12.04.2014, 12:10   #2
Vint
Senior Member
 
Аватар для Vint
 
Регистрация: 08.06.2007
Сообщений: 480
Вес репутации: 838/51
Vint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to behold
По умолчанию Re: Клиент-серверная система с SIM900.

Вам лучше здесь посмотреть:

http://electronix.ru/forum/index.php?showforum=130

И документ по SIM900

sim900_tcpip_application note_v1.02.pdf
Vint вне форума   Ответить с цитированием
Старый 14.04.2014, 08:24   #3
2AplusA
Senior Member
 
Аватар для 2AplusA
 
Регистрация: 26.02.2007
Адрес: Penza
Возраст: 36
Сообщений: 1,385
Вес репутации: 1267/65
2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от IvanPletnev Посмотреть сообщение
Здравствуйте!
Разрабатываю сейчас систему, в которой множество устройств, оборудованных GSM модулями SIM900 будут общаться с TCP сервером. Добился сейчас того, что один модуль надежно отправляет данные на сервер и получает с сервера команды. Возникла необходимость в разработке протокола обмена, обеспечивающего функционирование нескольких устройств.
В связи с этим, возник вопрос. Как в таких системах обычно реализуется идентификация клиентов? То есть, например, нужно передать с сервера на определенное устройство, зарегистрированное на сервере, команду. Как легче всего поступить в этом случае? По MAC адресу? Либо какие-то еще механизмы имеются?
Ну как ниже написали Вам, а чем стандартные транспортные протоколы не устраивают TCP или UDP? ну а дальше по ним, хоть MODBUS TCP поднимай, хоть свой OPC - сервер и т.п.
__________________
Лучше день потерять, потом за час долететь!
2AplusA вне форума   Ответить с цитированием
Старый 14.04.2014, 08:34   #4
IvanPletnev
Senior Member
 
Регистрация: 24.10.2013
Возраст: 41
Сообщений: 122
Вес репутации: 116/17
IvanPletnev will become famous soon enoughIvanPletnev will become famous soon enough
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от 2AplusA Посмотреть сообщение
Ну как ниже написали Вам, а чем стандартные транспортные протоколы не устраивают TCP или UDP? ну а дальше по ним, хоть MODBUS TCP поднимай, хоть свой OPC - сервер и т.п.
Нет, как раз всё устраивает. Дело в том, что я использую встроенный стек Gsm модуля, и, поскольку очень поверхностно знаком с протоколом TCP, задался вопросом, как при подключении нескольких клиентов, идентифицировать сессии, по каким признакам?
IvanPletnev вне форума   Ответить с цитированием
Старый 14.04.2014, 22:35   #5
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 50
Сообщений: 1,837
Вес репутации: 2631/81
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: Клиент-серверная система с SIM900.

А просто присвоить каждому уникальный номер?
Vovka вне форума   Ответить с цитированием
Старый 15.04.2014, 05:31   #6
IvanPletnev
Senior Member
 
Регистрация: 24.10.2013
Возраст: 41
Сообщений: 122
Вес репутации: 116/17
IvanPletnev will become famous soon enoughIvanPletnev will become famous soon enough
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от Vovka Посмотреть сообщение
А просто присвоить каждому уникальный номер?
Да, можно, конечно.
IvanPletnev вне форума   Ответить с цитированием
Старый 15.04.2014, 08:07   #7
2AplusA
Senior Member
 
Аватар для 2AplusA
 
Регистрация: 26.02.2007
Адрес: Penza
Возраст: 36
Сообщений: 1,385
Вес репутации: 1267/65
2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of2AplusA has much to be proud of
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от IvanPletnev Посмотреть сообщение
Нет, как раз всё устраивает. Дело в том, что я использую встроенный стек Gsm модуля, и, поскольку очень поверхностно знаком с протоколом TCP, задался вопросом, как при подключении нескольких клиентов, идентифицировать сессии, по каким признакам?
Как я понял модель связи, GSM модули будут в режиме клиента. А сервер статичный с белым IP. Ну прикладной уровень точно понадобится. Т.к. транспортом тут, никак не обойтись. Можно конечно, отслеживать мак адреса, но как их забить в сервер? Это дико неудобно. Попроще конечно, сделать каждому абоненту свой индивидуальный TCP - порт на сервере. Тогда серверу будет легче идентифицировать, раз сокет открылся на этот порт, занчит это такой-то модуль. Но я не в курсе кол-ва абонентов в вашей сети. Т.е. больше 65536 абонентов подключить на один сервер не получится.
Самый универсальный вариант. На сервере с белым IP открыт определенный порт. На него соединяются GSM - модули. Сервер видит новое подключение, запрашивает у абонента: "ты кто?". Он отвечает: "Я такой-то такой-то, делаю то-то то-то". В базу сервера вносится запись, что новый TCP-сокет организует связь с таким-то модулем. Ну а дальше, рули им, как хочешь.
__________________
Лучше день потерять, потом за час долететь!
2AplusA вне форума   Ответить с цитированием
Старый 15.04.2014, 08:55   #8
IvanPletnev
Senior Member
 
Регистрация: 24.10.2013
Возраст: 41
Сообщений: 122
Вес репутации: 116/17
IvanPletnev will become famous soon enoughIvanPletnev will become famous soon enough
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от 2AplusA Посмотреть сообщение
Как я понял модель связи, GSM модули будут в режиме клиента. А сервер статичный с белым IP. Ну прикладной уровень точно понадобится. Т.к. транспортом тут, никак не обойтись. Можно конечно, отслеживать мак адреса, но как их забить в сервер? Это дико неудобно. Попроще конечно, сделать каждому абоненту свой индивидуальный TCP - порт на сервере. Тогда серверу будет легче идентифицировать, раз сокет открылся на этот порт, занчит это такой-то модуль. Но я не в курсе кол-ва абонентов в вашей сети. Т.е. больше 65536 абонентов подключить на один сервер не получится.
Самый универсальный вариант. На сервере с белым IP открыт определенный порт. На него соединяются GSM - модули. Сервер видит новое подключение, запрашивает у абонента: "ты кто?". Он отвечает: "Я такой-то такой-то, делаю то-то то-то". В базу сервера вносится запись, что новый TCP-сокет организует связь с таким-то модулем. Ну а дальше, рули им, как хочешь.
Да, и при каждом переподключении модуля обновлять базу. Спасибо!
IvanPletnev вне форума   Ответить с цитированием
Старый 15.04.2014, 14:14   #9
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 53
Сообщений: 960
Вес репутации: 2006/62
smart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond repute
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Re: Клиент-серверная система с SIM900.

Например мы в своей системе использовали уникальный ID устройства.
Первым сообщением от устройства был ID , а также информация о количестве событий происшедших в системе после последнего конекта к серверу.
В принципе 2AplusA все сказал.
А так смотрите, что вам конкретно надо.
smart_pic вне форума   Ответить с цитированием
Старый 15.04.2014, 14:27   #10
Vint
Senior Member
 
Аватар для Vint
 
Регистрация: 08.06.2007
Сообщений: 480
Вес репутации: 838/51
Vint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to behold
По умолчанию Re: Клиент-серверная система с SIM900.

Да, но у SIM900 в мультиконекте
можно только 7 клиентов, или я
ошибаюсь.
Vint вне форума   Ответить с цитированием
Старый 15.04.2014, 17:36   #11
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 53
Сообщений: 960
Вес репутации: 2006/62
smart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond repute
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от Vint Посмотреть сообщение
Да, но у SIM900 в мультиконекте
можно только 7 клиентов, или я
ошибаюсь.
Это сервер должен поддерживать много клиентов , которыми выступают SIM900.
smart_pic вне форума   Ответить с цитированием
Старый 15.04.2014, 22:00   #12
IvanPletnev
Senior Member
 
Регистрация: 24.10.2013
Возраст: 41
Сообщений: 122
Вес репутации: 116/17
IvanPletnev will become famous soon enoughIvanPletnev will become famous soon enough
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от Vint Посмотреть сообщение
Да, но у SIM900 в мультиконекте
можно только 7 клиентов, или я
ошибаюсь.
Да, если sim900 работает как сервер, то возмжно подключение к нему не более семи клиентов. А если как клиент, то возможно инициирование также семи соединений. К разным серверам.
IvanPletnev вне форума   Ответить с цитированием
Старый 16.04.2014, 01:08   #13
Petr
Senior Member
 
Аватар для Petr
 
Регистрация: 25.02.2007
Возраст: 46
Сообщений: 1,734
Вес репутации: 3438/91
Petr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond reputePetr has a reputation beyond repute
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от IvanPletnev Посмотреть сообщение
Здравствуйте!
Разрабатываю сейчас систему, в которой множество устройств, оборудованных GSM модулями SIM900 будут общаться с TCP сервером. Добился сейчас того, что один модуль надежно отправляет данные на сервер и получает с сервера команды. Возникла необходимость в разработке протокола обмена, обеспечивающего функционирование нескольких устройств.
В связи с этим, возник вопрос. Как в таких системах обычно реализуется идентификация клиентов? То есть, например, нужно передать с сервера на определенное устройство, зарегистрированное на сервере, команду. Как легче всего поступить в этом случае? По MAC адресу? Либо какие-то еще механизмы имеются?
Лично я эту задачу решил так:
Использую протокол HTTP и с какой то периодичностью (минута)
устройства устанавливают коннект (по порту 80 конечно) с сервером
и выполняют стандартный запрос GET
http://en.wikipedia.org/wiki/Hyperte...Client_request
В заголовке использую параметры user и password механизма
стандартной идентификации http. Как раз по user сервер и
различает устройства. В теле сообщения (ответа) сервер
и шлет нужные команды управления.
В принципе http сам по себе stateless:
http://en.wikipedia.org/wiki/Stateless_protocol
и по завершении GET (получены все байты ответа)
соединение разрываю. Держать его открытым нет
никакой необходимости.
Так что и с использованием всего одного TCP соединения
серверов может быть много. Просто их нужно опросить
по очереди. Ну а уж клиентов у сервера - сколько угодно.

Использование http удобно, если сервер сделан на чем то типа php
или т.п. скриптовых языков. Тем более, что unix хостинг более
распространен у хостеров, чем win хостинг.
Petr вне форума   Ответить с цитированием
Старый 16.04.2014, 11:39   #14
IvanPletnev
Senior Member
 
Регистрация: 24.10.2013
Возраст: 41
Сообщений: 122
Вес репутации: 116/17
IvanPletnev will become famous soon enoughIvanPletnev will become famous soon enough
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от Petr Посмотреть сообщение
Лично я эту задачу решил так:
Использую протокол HTTP и с какой то периодичностью (минута)
устройства устанавливают коннект (по порту 80 конечно) с сервером
и выполняют стандартный запрос GET
Я думал об этом, конечно, протокол http - протокол следующего, более высокого уровня, чем TCP и в нем имеются инструменты идентификации, но отказался от этой идеи, поскольку, во-первых, мою задачу, как оказалось, легко решить одной маленькой надстройкой над протоколом TCP, как подсказал 2AplusA , во-вторых, в момент разработки устройства у меня была маленькая программка - TCP терминал для отладки связи, а в-третьих, потребовалось бы время для того, чтобы разобраться с http и php, написать скрипт, поднять apachi или арендовать хостинг.. И парсить ответы от сервера немного сложнее, как мне кажется.
Но согласен, что плюсы в Вашем решении, несомненно, есть.
IvanPletnev вне форума   Ответить с цитированием
Старый 16.04.2014, 21:10   #15
Vovka
Senior Member
 
Аватар для Vovka
 
Регистрация: 27.12.2007
Адрес: недалеко от г.Белгорода
Возраст: 50
Сообщений: 1,837
Вес репутации: 2631/81
Vovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond reputeVovka has a reputation beyond repute
Отправить сообщение для Vovka с помощью ICQ
По умолчанию Re: Клиент-серверная система с SIM900.

Цитата:
Сообщение от IvanPletnev Посмотреть сообщение
Я думал об этом, конечно, протокол http - протокол следующего, более высокого уровня, чем TCP и в нем имеются инструменты идентификации, но отказался от этой идеи, поскольку, во-первых, мою задачу, как оказалось, легко решить одной маленькой надстройкой над протоколом TCP, как подсказал 2AplusA , во-вторых, в момент разработки устройства у меня была маленькая программка - TCP терминал для отладки связи, а в-третьих, потребовалось бы время для того, чтобы разобраться с http и php, написать скрипт, поднять apachi или арендовать хостинг.. И парсить ответы от сервера немного сложнее, как мне кажется.
Но согласен, что плюсы в Вашем решении, несомненно, есть.
Когда-то делал для тестирования:
http://www.sv19.com/t.php?s=12345 - посылаем скрипту "12345", который это запоминает в "базе данных" и возвращает принятое.
http://www.sv19.com/t.php?view - возвращает 10 последних принятых данных.
Так что отвечающий сервер есть
Vovka вне форума   Ответить с цитированием
Старый 20.04.2014, 18:45   #16
VXDRV
Senior Member
 
Аватар для VXDRV
 
Регистрация: 25.02.2007
Адрес: Karagandy
Возраст: 34
Сообщений: 372
Вес репутации: 135/44
VXDRV will become famous soon enoughVXDRV will become famous soon enough
Отправить сообщение для VXDRV с помощью ICQ
По умолчанию Re: Клиент-серверная система с SIM900.

Вроде у каждого модема есть IMEI, который можно "вытащить" из него AT-командами и отправлять серверу - этим устройства и идентифицировать. А ещё он написан на самом модеме.
VXDRV вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +3, время: 20:36.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot