Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.08.2011, 09:42   #1
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию Широковещательное определение

Название темы так себе, но все же привет всем.

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

Я уже делал подобное для only Windows, но сейчас надо все серьезно делать. Что приходит в голову, так это UDP. Конечно широковещательная рассылка и тот, кто отзовется выдаст свои данные, ну а там уже непосредственное подключение, тот же отличный TCP/IP. Собственно сомнения (обоснованные) дает именно UDP, его потеря пакетов, соответственно работа "через раз" не больно то и устраивает. Пакеты, пока, думаю формировать в JSON (XML - малек жирноват), т.к. придется часто передавать пакет-"пинг" для определения/сканирования сети.

Кто что думает/предложит по данному вопросу?

Спасибо.
BOBAH13 вне форума Ответить с цитированием
Старый 05.08.2011, 10:33   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Устройства однотипные? Назначение диспетчера. Формировать уникальные идентификаторы, на основании которого определять кто главный на кухне (диспетчер или арбитр). Каждый передает свой идентификатор, на основании которого уже каждый может решить кто старший и к кому следует обращаться... Если главный выпал из сети - перевыборы (в принципе не обязательно, ведь список идентификаторов уже получен и так ясно кто заместитель). Если пришел новый идентификатор которого является приоритетным, то все вопросы к нему.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 05.08.2011 в 10:37.
Utkin вне форума Ответить с цитированием
Старый 05.08.2011, 11:25   #3
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Utkin, похоже на арбитраж в CAN шине ...Владимир, как насчет SNMP (на базе все того же UDP) ?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 05.08.2011, 11:37   #4
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Есть мнение, что слухи об огромных потерях пакетов в UDP слегка преувеличены. По статистике у меня при круглосуточном вещании через трёх провайдеров потери составляют менее 1% (у каждого из провайдеров). Так это в тырнете. А что надо сделать, чтобы пакет потерялся в локалке, я с трудом представляю. В вашем же случае, если выдавать "пинг" раз в секунду, то даже при потере 90% пакетов устройство просто определится не на первой секунде, а на девятой. Имхо, для определения "списка доступных в локальной сети устройств", пойдёт. Есть только одна тонкость. Широковещательные пакеты ходят по своей подсетке. Если их несколько, лучше заюзать мультикаст.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 05.08.2011, 12:33   #5
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Собственно сомнения (обоснованные) дает именно UDP, его потеря пакетов, соответственно работа "через раз" не больно то и устраивает. Пакеты, пока, думаю формировать в JSON (XML - малек жирноват), т.к. придется часто передавать пакет-"пинг" для определения/сканирования сети.
UDP здесь самый лучший выбор. И все не так критично, как вы говорите с потерями пакетов.

Вообще можно оптимизировать алгоритм, чтобы определенные устройства сами рассылали сообщения о включении/выключении, тогда нужно в определенный интервал времени подтверждать свое состояние (сообщение "в сети").
MaTBeu вне форума Ответить с цитированием
Старый 05.08.2011, 13:39   #6
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Спасибо за ответы и советы. Видимо буду разбираться и усовершенствовать систему определения.
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# определение ф-и Lucky777 Помощь студентам 4 10.06.2011 01:00
Определение по IP ProgDel Работа с сетью в Delphi 3 08.11.2010 22:14
Определение IP IvanLex HTML и CSS 6 28.03.2008 07:46
Определение IP IvanLex Общие вопросы по Java, Java SE, Kotlin 1 19.02.2008 09:12
Определение IP RKS Работа с сетью в Delphi 3 13.12.2007 15:43