СИСТЕМЫ И СПОСОБЫ ДЛЯ ПРЕДОСТАВЛЕНИЯ СЕТЕВОГО МОСТА ДЛЯ ТРАФИКА МНОГОАДРЕСНОЙ РАССЫЛКИ ПО ПРОТОКОЛУ UDP
SYSTEMS AND METHODS FOR PROVISION OF NETWORK BRIDGE FOR TRAFFIC OF MULTICAST COMMUNICATION BY UDP PROTOCOL

Область техники, к которой относится изобретение
Настоящее изобретение относится к компьютерам и компьютерным технологиям. В частности, настоящее изобретение относится к системам и способам для предоставления сетевого моста для трафика многоадресной рассылки по протоколу пользовательских датаграмм (UDP).
Предшествующий уровень техники
Компьютеры и технологии связи развиваются быстрыми темпами. В действительности, компьютеры и технологии связи вовлекаются во множество аспектов повседневной деятельности человека. Например, множество устройств, используемых потребителями, содержат небольшие компьютеры. Эти небольшие компьютеры имеют различные размеры и различную степень сложности. Они охватывают широкий спектр компьютеров - от одного микроконтроллера до целой полнофункциональной компьютерной системы. Например, эти компьютеры могут представлять собой однокристальный компьютер, такой как микроконтроллер, компьютер на одной плате, такой как контроллер, типичный настольный компьютер, такой как IBM-PC-совместимый компьютер и т.п.
Компьютеры, как правило, имеют один или более процессоров. Процессор(ы) обычно взаимосвязан(ы) с различными внешними входами и выходами, и они функционируют так, чтобы управлять конкретным компьютером или устройством. Например, процессор в термостате может быть соединен с кнопками, чтобы выбирать желаемую температуру, с печкой или кондиционером, чтобы изменять температуру, а также с температурными датчиками, чтобы считывать и отображать текущую температуру на дисплее.
Множество приспособлений, устройств и т.п. включают в себя один или более компьютеров. Например, термостаты, печки, системы воздушного кондиционирования, холодильники, телефоны, пишущие машинки, автомобили, торговые автоматы и множество типов промышленного оборудования, как правило, включают в себя небольшие компьютеры или процессоры. Компьютерное программное обеспечение задействует процессоры этих компьютеров и подает в процессоры инструкции относительно того, как выполнять определенные задачи. Например, компьютерное программное обеспечение, исполняемое на термостате, может привести к останову воздушного кондиционера, когда достигается определенная температура, или может привести к включению обогревателя, когда это необходимо.
Этот тип небольших компьютеров, которые являются частью устройства, приспособления, инструмента и т.п., часто называют встроенными устройствами или встроенными системами. (В настоящем описании термин "встроенное устройство" и термин "встроенная система" используются как взаимозаменяемые). Термин "встроенная система" обычно относится к компьютерному аппаратному и программному обеспечению, которое является частью некоторой большей системы. Встроенные системы могут не иметь типичных устройств ввода и вывода, таких как клавиатура, мышь и/или монитор. Обычно основой каждой встроенной системы является один или более процессоров.
Система освещения может включать в себя встроенную систему. Встроенная система может использоваться, чтобы выполнять мониторинг и управлять эффектами системы освещения. Например, встроенная система может предоставлять управление для уменьшения яркости источников света, входящих в состав системы освещения. Альтернативно, встроенная система может предоставлять управление для увеличения яркости упомянутых источников света. Встроенная система может предоставлять управление для инициации конкретного образца освещения с применением отдельных источников света, входящих в состав системы освещения. Встроенная система может быть соединена с отдельными переключателями, входящими в состав системы освещения. Встроенная система может подавать команды переключателям, чтобы включать или выключать отдельные источники света или всю систему освещения. Аналогично, встроенная система может быть соединена с отдельными источниками света, входящими в состав системы освещения. Яркость или состояние каждого отдельного источника света может управляться посредством встроенной системы.
Система безопасности также может включать в себя встроенную систему. Встроенная система может использоваться для управления отдельными датчиками безопасности, которые входят в состав системы безопасности. Например, встроенная система может предоставлять управление для автоматического включения каждого датчика безопасности. Встроенная система может быть соединена с каждым отдельным датчиком безопасности. Например, встроенная система может быть соединена с датчиком движения. Встроенная система может автоматически включать отдельный датчик движения и предоставлять управление, чтобы активировать датчик движения, если детектируется движение. Активация датчика движения может включать в себя предоставление инструкций для включения светоизлучающего диода в датчике движения, для вывода сигнала тревоги из выходных портов датчика движения и т.п. Встроенная система также может быть соединена с датчиками, выполняющими мониторинг двери. Встроенная система может предоставлять инструкции в датчик мониторинга двери, чтобы активировать его, когда дверь открывается или закрывается. Встроенная система также может быть соединена с датчиками, выполняющими мониторинг окна. Встроенная система может предоставлять инструкции в датчик мониторинга окна, чтобы активировать его, когда окно открывается или закрывается.
Некоторые встроенные системы также могут использоваться для управления беспроводными продуктами, такими как сотовые телефоны. Некоторые встроенные системы могут предоставлять инструкции, чтобы включать питание светодиодного дисплея сотового телефона. Встроенная система также может активировать громкоговорители сотового телефона, чтобы предоставить пользователю звуковое сообщение, относящееся к сотовому телефону.
Бытовые приборы также могут включать в себя встроенную систему. Бытовые приборы могут включать в себя приспособления, как правило, используемые на кухне, например печку, холодильник, микроволновую печь и т.п. Бытовые приборы также могут включать в себя приспособления, которые относятся к здоровью пользователя. Например, массажное кресло может включать в себя встроенную систему. Эта встроенная система может предоставлять инструкции, чтобы автоматически откидывать спинку кресла в соответствии с предпочтениями пользователя. Данная система также может предоставлять инструкции, чтобы инициировать вибрирующие компоненты кресла, которые вызывают вибрации согласно предпочтениям пользователя.
Дополнительные продукты, обычно используемые в быту, также могут включать в себя встроенную систему. Например, встроенная система может использоваться в туалете, чтобы управлять уровнем воды, используемой для пополнения бачка слива. Встроенные системы могут использоваться в массажных ваннах, чтобы управлять потоком воздуха.
Встроенные системы также могут устанавливать соединения с другими электронными устройствами для различных целей. Например, организация может обеспечить доступ определенным удаленным клиентам к данным о встроенных системах. Встроенная система также может предоставить возможность этим удаленным клиентам управлять поведением встроенной системы. Например, проблемы, связанные с калибровкой, могут быть устранены дистанционно вместо того, чтобы посылать специалиста к месту расположения встроенной системы. Альтернативно или в дополнение, встроенная система может предоставить возможность изменения своего поведения удаленным образом, практически так же, как и при локальном изменении. Одним из примеров такого применения является дистанционное запирание двери. Этот тип дистанционного управления не ограничен функциями, которые доступны на месте, и во многих случаях обеспечивает большие возможности, чем при локальном управлении. Одним из примеров является датчик, который не имеет локального интерфейса, но обеспечивает возможность дистанционного управления.
Для осуществления связи с другими электронными устройствами встроенная система может подсоединяться к компьютерной сети. Иногда желательно, чтобы встроенная система передавала сообщение группе электронных устройств, которые расположены в одной или более компьютерных сетях. Когда группа получателей в числовом отношении имеет большой размер, но по сравнению с общим количеством устройств в сети(ях) имеет небольшой размер, то часто используется многоадресная маршрутизация. Многоадресная рассылка относится к процессу одновременной передачи сообщения в более чем один пункт назначения в сети. Многоадресная рассылка отличается от широковещательной рассылки тем, что многоадресная рассылка обозначает передачу конкретной группе в сети, тогда как широковещательная рассылка подразумевает передачу всем получателям в сети. При использовании технологии многоадресной рассылки массив данных, как правило, один раз передается из источника через главные магистрали сети и размножается или распределяется в коммутационных узлах, расположенных ближе к точкам назначения.
При многоадресной маршрутизации может использоваться Протокол Пользовательских Датаграмм (UDP). На это часто ссылаются как на многоадресную рассылку по протоколу UDP. Протокол UDP предоставляет способ, согласно которому приложения передают инкапсулированные датаграммы Интернет-Протокола (IP), и передают их без необходимости установления соединения.
Когда встроенная система пытается передать сообщение посредством многоадресной рассылки по протоколу UDP в электронные устройства, которые находятся в различных сетях, может возникнуть проблема. Компьютерные системы могут быть устроены так, чтобы изолировать определенный сетевой трафик и чтобы обеспечивать возможность связи ограниченной группы компьютеров. Эти ограничения, налагаемые такими сетевыми устройствами, как маршрутизаторы и сетевые экраны, преднамеренно ограничивают применение многоадресной рассылки по протоколу UDP. Если две сети разделены сетевым устройством, которое не сконфигурировано для маршрутизации многоадресной рассылки, то может быть сложным доставлять запросы многоадресной рассылки, которые исходят из одной изолированной сети, в компьютеры, находящиеся в другой изолированной сети. Соответственно, необходимы механизмы для предоставления сетевого моста для трафика многоадресной рассылки по протоколу UDP, то есть для доставки пакетов многоадресной рассылки из одной сети в другую через сетевые устройства, которые не сконфигурированы для маршрутизации многоадресной рассылки.
Раскрытие изобретения
Раскрыты системы и способы для предоставления сетевого моста для трафика многоадресной рассылки по протоколу UDP. В одном примере осуществления повторитель многоадресной рассылки в компьютерной системе, являющейся хостом (сетевым узлом) в сети, поддерживает информацию об одном или более обнаруженных повторителях многоадресной рассылки из других сетей. Каждый из этих повторителей многоадресной рассылки может быть расположен в сети, которая отделена от сети, в которую входит данный хост, по меньшей мере одним сетевым устройством, которое не сконфигурировано так, чтобы маршрутизировать многоадресную рассылку по протоколу UDP. При каждом приеме пакета запроса многоадресной рассылки по протоколу UDP повторитель многоадресной рассылки определяет, переадресовал ли ранее данный повторитель многоадресной рассылки этот пакет запроса многоадресной рассылки по протоколу UDP. Если упомянутый повторитель многоадресной рассылки ранее переадресовал этот пакет запроса многоадресной рассылки UDP, то данный пакет многоадресной рассылки UDP игнорируется. Если же повторитель многоадресной рассылки ранее не переадресовал этот пакет запроса многоадресной рассылки по протоколу UDP, то повторитель многоадресной рассылки передает упомянутый пакет запроса многоадресной рассылки по протоколу UDP в один или более других повторителей многоадресной рассылки, которые были обнаружены.
Пакет запроса многоадресной рассылки по протоколу UDP может быть передан через соединение (например, соединение TCP/IP) в другой(ие) обнаруженный(ые) повторитель(и). До того как пакет запроса многоадресной рассылки по протоколу UDP передается в другие повторители многоадресной рассылки, упомянутый повторитель многоадресной рассылки может инкапсулировать данные упомянутого пакета запроса многоадресной рассылки по протоколу UDP в соответствии с протоколом упаковщика.
В некоторых вариантах осуществления этап определения того, переадресовал ли ранее повторитель многоадресной рассылки пакет запроса многоадресной рассылки по протоколу UDP, может включать в себя извлечение глобально уникального идентификатора пакета из пакета запроса многоадресной рассылки по протоколу UDP и поиск этого идентификатора пакета в кэше идентификаторов. Если повторитель многоадресной рассылки ранее не переадресовывал пакет запроса многоадресной рассылки по протоколу UDP, то повторитель многоадресной рассылки записывает этот идентификатор пакета в кэш идентификаторов. Повторитель многоадресной рассылки также может записывать в кэш сетевой адрес и порт, где был создан этот пакет запроса многоадресной рассылки по протоколу UDP.
Повторитель многоадресной рассылки может принимать переадресованный пакет запроса многоадресной рассылки по протоколу UDP от другого повторителя многоадресной рассылки, расположенного в другой сети. Если данные переадресованного пакета запроса многоадресной рассылки по протоколу UDP инкапсулированы согласно протоколу упаковщика, то повторитель многоадресной рассылки может распаковать переадресованный пакет запроса многоадресной рассылки по протоколу UDP, чтобы получить инкапсулированные данные. Путем многоадресной рассылки повторитель многоадресной рассылки может передать по сети, в которую входит данный повторитель многоадресной рассылки, переадресованный пакет запроса многоадресной рассылки по протоколу UDP.
Повторитель многоадресной рассылки может принимать пакет ответа многоадресной рассылки по протоколу UDP. В ответ повторитель многоадресной рассылки может определить, был ли создан соответствующий пакет запроса многоадресной рассылки по протоколу UDP в данной сети. Если рассылка соответствующего пакета запроса многоадресной рассылки по протоколу UDP была инициирована в данной сети, то повторитель многоадресной рассылки может идентифицировать приложение-инициатор и передать этот пакет ответа многоадресной рассылки по протоколу UDP в приложение-инициатор.
Перечень чертежей
Примеры осуществления настоящего изобретения будут очевидны из следующего описания и формулы изобретения вместе с прилагаемыми чертежами. С учетом того что эти чертежи иллюстрируют только примеры осуществления и, соответственно, не рассматриваются как определяющие объем настоящего изобретения, указанные примеры осуществления настоящего изобретения описаны конкретно и подробно с помощью прилагаемых чертежей, на которых:
Фиг.1 - иллюстрация системы для предоставления сетевого моста для трафика многоадресной рассылки по протоколу UDP согласно одному варианту осуществления;
Фиг.2 - иллюстрация программных компонентов и других данных, которые могут быть предоставлены в главной системе, которая содержит повторитель многоадресной рассылки согласно одному варианту осуществления;
Фиг.3 - иллюстрация пакета запроса многоадресной рассылки по протоколу UDP согласно одному варианту осуществления;
Фиг.4 - иллюстрация работы повторителя многоадресной рассылки, когда последний посредством многоадресной рассылки принимает пакет запроса многоадресной рассылки по протоколу UDP от другого хоста в его сети согласно одному варианту осуществления;
Фиг.5 - иллюстрация работы повторителя многоадресной рассылки, когда последний принимает пакет запроса многоадресной рассылки по протоколу UDP, который был создан в другой сети и который был переадресован повторителем многоадресной рассылки посредством протокола TCP/IP согласно одному варианту осуществления;
Фиг.6 - иллюстрация работы повторителя многоадресной рассылки, когда последний принимает пакет ответа многоадресной рассылки по протоколу UDP согласно одному варианту осуществления;
Фиг.7 и 8 - пример, иллюстрирующий работу нескольких повторителей многоадресной рассылки в различных сетях согласно одному варианту осуществления;
Фиг.9 - иллюстрация примера системы освещения, в которой могут быть реализованы настоящие системы и способы;
Фиг.10 - иллюстрация примера системы безопасности, в которой могут быть реализованы настоящие системы и способы;
Фиг.11 - иллюстрация примера системы контроллера дома, в которой могут быть реализованы настоящие системы и способы; и
Фиг.12 - структурная схема, иллюстрирующая основные аппаратные компоненты, как правило, используемые в компьютерной системе.
Наилучший вариант осуществления изобретения
Различные варианты осуществления настоящего изобретения описаны со ссылкой на фигуры, на которых одинаковые ссылочные номера обозначают идентичные или функционально схожие элементы. Как описано и показано на упомянутых фигурах, варианты осуществления настоящего изобретения могут быть устроены и реализованы во множестве различных конфигураций. Как показано на фигурах, следующее более подробное описание нескольких примеров осуществления настоящего изобретения не предназначено для ограничения и объема настоящего изобретения, определяемого согласно формуле изобретения, и оно является лишь иллюстрацией вариантов осуществления настоящего изобретения.
Термин "пример" в использованном здесь значении обозначает "служащий в качестве примера, образца или иллюстрации". Ни один из описанных "примеров" осуществления не может рассматриваться как предпочтительный или выгодный относительно других вариантов осуществления. Наряду с тем, что различные аспекты вариантов осуществления показаны на чертежах, эти чертежи могут быть вычерчены не в масштабе, если конкретно не указано иного.
Многие функциональные особенности раскрытых здесь вариантов осуществления могут быть реализованы как компьютерное программное обеспечение, электронное аппаратное обеспечение или их комбинация. Чтобы показать эту взаимозаменяемость аппаратного и программного обеспечений, различные компоненты описаны в терминах из функциональности. Способ реализации такой функции, как аппаратное обеспечение или программное обеспечение, зависит от конкретного приложения и конструктивных ограничений, налагаемых на систему в целом. Специалисты могут реализовать описанные функции различными способами для каждого конкретного применения, но подобные решения реализации не должны быть интерпретированы как выходящие за рамки объема настоящего изобретения.
В тех случаях, когда описанная функциональная возможность реализуется как компьютерное программное обеспечение, такое программное обеспечение может включать в себя любой тип компьютерных инструкций или исполняемого компьютером кода, расположенного в запоминающем устройстве и/или передаваемом в форме электронных сигналов через системную шину или сеть. Программное обеспечение, которое реализует функциональные возможности, связанные с описанными здесь компонентами, может содержать одну инструкцию или множество инструкций, и оно может быть распределено по нескольким различным сегментам кода, различным программам и нескольким запоминающим устройствам.
Фиг.1 представляет собой иллюстрацию системы 100 для предоставления сетевого моста для трафика многоадресной рассылки по протоколу UDP согласно одному варианту осуществления. Система 100 включает в себя множество компьютерных сетей 102. В проиллюстрированном варианте осуществления предоставлены две сети 102, то есть сеть A 102a и сеть B 102b. Каждая сеть 102 включает в себя множество взаимосвязанных компьютерных систем, которые упоминаются как хосты системы 104.
Сети 102 отделены друг от друга посредством, по меньшей мере, одного сетевого устройства 106, которое не сконфигурировано для маршрутизации многоадресной рассылки. Например, сети 102 могут быть отделены друг от друга маршрутизатором, сетевым экраном и т.п.
Каждая сеть 102 включает в себя, по меньшей мере, один хост 104, который включает в себя повторитель 108 многоадресной рассылки. В общем, повторитель 108 многоадресной рассылки представляет собой сетевой мост, который предоставляет возможность повторения и получения ответов на запросы многоадресной рассылки, которые создаются в одной изолированной сети (например, сети A 102a), от хостов 104, находящихся в другой изолированной сети (например, B 102b). Для этой цели каждый повторитель 108 многоадресной рассылки сконфигурирован так, чтобы переадресовывать каждый принимаемый им запрос многоадресной рассылки во все другие известные повторители 108 (если этот повторитель 108 уже не обработал данный запрос многоадресной рассылки. Данный случай подробно описан ниже). Каждый повторитель 108 имеет свой собственный глобально уникальный идентификатор. Этот идентификатор может использоваться для переадресации запросов многоадресной рассылки упомянутому повторителю 108. Повторители 108 многоадресной рассылки на прикладном уровне обеспечивают управление распространением данных многоадресной рассылки по протоколу UDP, тем самым ограничивая сетевой трафик к требуемому приложению в пределах ограничений регламентированных и защищенных сетей 102.
Несмотря на то что на Фиг.1 показаны две сети 102, варианты осуществления могут быть реализованы в системах, где более чем две сети 102 соединены посредством сетевых устройств 106, которые не сконфигурированы для маршрутизации многоадресной рассылки. В таких вариантах осуществления, по меньшей мере, один хост 104 в каждой сети 102 может включать в себя повторитель 108 многоадресной рассылки. Кроме того, хотя обе показанные на Фиг.1 сети 102 включают в себя только один повторитель 108, в альтернативных вариантах осуществления множество повторителей 108 могут быть предоставлены в одной сети 102.
Фиг.2 представляет собой иллюстрацию программных компонентов и других данных, которые могут быть предоставлены в главной системе 104, которая содержит повторитель 108 многоадресной рассылки. Как показано, повторитель 108 многоадресной рассылки может быть частью серверного приложения 210, которое исполняется в хосте 104. Серверное приложение 210 может включать в себя модуль 212 UDP-сервера. Модуль 212 UDP-сервера может быть сконфигурирован так, чтобы прослушивать определенный адрес и порт многоадресной рассылки на предмет наличия пакетов многоадресной рассылки по протоколу UDP. В некоторых вариантах осуществления повторитель 108 многоадресной рассылки регистрируется в модуле 212 UDP-сервера, и модуль 212 UDP-сервера переадресовывает принимаемые им пакеты многоадресной рассылки по протоколу UDP в повторитель 108 многоадресной рассылки в целях обработки.
Серверное приложение 210 также может включать в себя модуль 214 TCP/IP-соединения, который сконфигурирован так, чтобы устанавливать TCP/IP-соединение с повторителями 108 многоадресной рассылки, расположенными в других сетях 102. Когда устанавливается TCP/IP-соединение с другой сетью 102, все находящиеся в этой сети 102 повторители 108 многоадресной рассылки обнаруживаются и добавляются в список 216 обнаруженных повторителей.
Повторитель многоадресной рассылки поддерживает кэш 218 идентификаторов. Кэш 218 идентификаторов используется для хранения информации о пакетах запросов, которые повторитель 108 многоадресной рассылки ранее переадресовал в другие повторители 108.
Фиг.3 представляет собой иллюстрацию пакета 320 запроса многоадресной рассылки по протоколу UDP согласно одному варианту осуществления. В проиллюстрированном варианте осуществления каждый передаваемый пакет 320 запроса многоадресной рассылки включает в себя идентификатор 322 пакета, который является глобально уникальным. В добавление к глобально уникальному идентификатору 322 пакета каждый передаваемый пакет 320 запроса также включает в себя сетевой адрес 324 хоста-инициатора 104 и порт 326, к которому привязано приложение-инициатор в хосте-инициаторе 104. (Приложение-инициатор является приложением, которое изначально передало пакет 320 запроса. Хост-инициатор является хостом 104, на котором исполняется приложение-инициатор). Пакет 320 запроса, как правило, также включает в себя другую информацию 328.
Фиг.4 представляет собой иллюстрацию работы повторителя 108 многоадресной рассылки, когда посредством многоадресной рассылки последний принимает 402 пакет 320 запроса многоадресной рассылки по протоколу UDP от другого хоста 104 в его сети 102. На этапе 404 повторитель 108 многоадресной рассылки извлекает идентификатор 322 пакета из пакета 320 запроса, который был принят на этапе 402.
На этапе 406 повторитель 108 многоадресной рассылки выполняет поиск этого идентификатора 322 пакета в своем кэше 218 идентификаторов. Если идентификатор 322 пакета уже сохранен в кэше 218 идентификаторов, что означает, что повторитель 108 многоадресной рассылки уже обработал данный пакет 320 запроса, то на этапе 408 пакет 320 запроса игнорируется, чтобы предотвратить образование петли. Тем не менее, если в кэше 218 идентификаторов соответствующая запись для данного пакета 320 запроса отсутствует, то на этапе 410 повторитель 108 многоадресной рассылки записывает идентификатор 322 пакета для данного пакета 320 запроса в кэш 218 идентификаторов. В некоторых вариантах осуществления идентификатор 322 действителен только в течение ограниченного времени, которое предпочтительно достаточно велико, чтобы использовать кэш 218 идентификаторов для детектирования образования петли.
На этапе 412 повторитель 108 многоадресной рассылки извлекает из принятого на этапе 402 пакета 320 запроса сетевой адрес 324 хоста-инициатора 104, а также порт 326 хоста-инициатора 104, к которому привязано приложение-инициатор. На этапе 414 повторитель 108 многоадресной рассылки 108 записывает эту информацию в кэш 218 идентификаторов. В случае последующего приема каких-либо ответов на запрос 320 многоадресной рассылки этот сетевой адрес 324 и порт 326 могут быть использованы для возвращения ответов в приложение-инициатор. Этот процесс более подробно описан ниже.
На этапе 416 повторитель 108 многоадресной рассылки инкапсулирует данные пакета 320 запроса, включая идентификатор 322 пакета, согласно протоколу упаковщика. На этапе 418 повторитель 108 многоадресной рассылки переадресовывает пакет 320 запроса, используя протокол TCP/IP, в каждый обнаруженный повторитель 108 (например, в каждый повторитель 108, который идентифицируется в списке 216 обнаруженных повторителей).
Фиг.5 представляет собой иллюстрацию работы повторителя 108 многоадресной рассылки, когда последний принимает 502 пакет 320 запроса многоадресной рассылки по протоколу UDP, который был создан в другой сети 102 и который был переадресован в повторитель 108 многоадресной рассылки посредством TCP/IP. Как упоминалось выше, когда повторитель 108 многоадресной рассылки переадресовывает пакет 320 запроса в другие повторители 108 многоадресной рассылки посредством протокола TCP/IP до выполнения передачи, пакет 320 запроса инкапсулируется согласно протоколу упаковщика. Соответственно, на этапе 504 повторитель 108 многоадресной рассылки распаковывает инкапсулированный пакет 320 запроса, чтобы получить инкапсулированные данные. На этапе 506 повторитель 108 многоадресной рассылки рассылает пакет 320 запроса по своей сети путем многоадресной рассылки.
Фиг.6 представляет собой иллюстрацию работы повторителя 108 многоадресной рассылки, когда последний принимает 602 пакет ответа многоадресной рассылки по протоколу UDP от другого повторителя 108 многоадресной рассылки. На этапе 604 повторитель 108 многоадресной рассылки извлекает идентификатор 322 пакета из пакета ответа. (В проиллюстрированном варианте осуществления содержащийся в пакете ответа идентификатор 322 пакета соответствует идентификатору 322 пакета для соответствующего пакета 320 запроса). На этапе 606 повторитель 108 многоадресной рассылки выполняет поиск извлеченного на этапе 604 идентификатора 322 пакета в своем кэше 218 идентификаторов. Если данный идентификатор 322 пакета отсутствует в кэше 218 идентификаторов, то это означает, что повторитель 108 многоадресной рассылки ранее не переадресовывал этот пакет 320 запроса, который соответствует данному пакету ответа. Соответственно, на этапе 608 повторитель 108 многоадресной рассылки игнорирует этот пакет ответа.
Если же этот идентификатор 322 пакета присутствует в кэше 218 идентификаторов, то на этапе 612 повторитель 108 многоадресной рассылки идентифицирует сетевой адрес 324 хоста-инициатора 104, а также порт 326, связанный с приложением-инициатором. Этот процесс может включать в себя использование идентификатора 322 пакета для поиска сетевого адреса 324 и порта 326 в кэше 218 идентификаторов данного повторителя 108. На этапе 514 повторитель 108 передает ответ в приложение-инициатор, используя одноадресную передачу по протоколу UDP.
Повторитель 108 может быть сконфигурирован только для переадресации запросов многоадресной рассылки. В некоторых вариантах осуществления повторитель 108, который переадресовывает только запросы многоадресной рассылки, не декларирует себя как повторитель, и, соответственно, он не может быть обнаружен другими повторителями. Это предоставляет возможность установки мостов только в одном направлении между сетями 102.
Фиг.7 и 8 представляют собой иллюстрации примера работы нескольких повторителей 708 многоадресной рассылки в различных сетях 702 согласно одному варианту осуществления. В проиллюстрированном примере предоставлены две сети 702, а именно сеть A 702a и сеть B 702b. Две различные сети 702 соединены друг с другом посредством сетевых устройств (не показаны), которые не сконфигурированы для маршрутизации многоадресной рассылки. Соответственно, при использовании обычных подходов может быть сложным доставлять запросы многоадресной рассылки, созданные в одной из сетей 702, в главные системы в другой сети 702.
Для этой цели каждая сеть 702 включает в себя, по меньшей мере, один хост 704, который включает в себя повторитель 708 многоадресной рассылки. Сеть A 702a включает в себя хост A 704a и хост D 704d. Хост A 704a включает в себя повторитель A 708a многоадресной рассылки. Хост D 704d включает в себя повторитель D 708d многоадресной рассылки. Сеть B 702b включает в себя хост B 704b и хост C 704c. Хост B 704b включает в себя повторитель B 708b многоадресной рассылки. Хост C 704c включает в себя повторитель C 708c многоадресной рассылки. TCP/IP-соединения устанавливаются между хостом A 704a в сети A 702a и хостом B 704b в сети B 702b, а также между хостом C 704c в сети B 702b и хостом D 704d в сети A 702a.
Как показано на Фиг.7, приложение-инициатор 730 в хосте-инициаторе 738 передает пакет 720 запроса многоадресной рассылки по протоколу UDP по сети A 702a путем многоадресной рассылки. Повторитель A 708a многоадресной рассылки принимает пакет 720 запроса. До переадресации пакета 720 запроса повторитель A 708a многоадресной рассылки подготавливает пакет 720 запроса для передачи посредством протокола TCP/IP. В частности, повторитель A 708a многоадресной рассылки инкапсулирует данные пакета 720 запроса, таким образом, генерируя инкапсулированный пакет 732 запроса.
Далее, повторитель A 708a многоадресной рассылки посредством протокола TCP/IP переадресовывает пакет 720 запроса в обнаруженные им другие повторители 708 многоадресной рассылки. В проиллюстрированном примере предполагается, что повторитель A 708a многоадресной рассылки обнаружил повторитель B 708b многоадресной рассылки. Соответственно, повторитель A 708a многоадресной рассылки переадресовывает инкапсулированный пакет 732 запроса в повторитель B 708b многоадресной рассылки посредством протокола TCP/IP.
Когда повторитель B 708b многоадресной рассылки принимает инкапсулированный пакет 732, он распаковывает инкапсулированный пакет 732 запроса, чтобы получить инкапсулированные данные, то есть сам пакет 720 запроса. Тогда повторитель B 708b многоадресной рассылки передает пакет 720 запроса по сети B 702b путем многоадресной рассылки.
Когда повторитель C 708c многоадресной рассылки принимает пакет 720 запроса, он переадресовывает этот пакет 720 запроса в другие обнаруженные им повторители 708 многоадресной рассылки. В проиллюстрированном примере предполагается, что повторитель C 708c многоадресной рассылки обнаружил повторитель D 708d многоадресной рассылки. Соответственно, повторитель C 708c многоадресной рассылки переадресовывает инкапсулированный пакет 732 запроса в повторитель D 708d многоадресной рассылки посредством протокола TCP/IP.
Когда повторитель D 708d многоадресной рассылки принимает инкапсулированный пакет 732, он распаковывает инкапсулированный пакет 732 запроса, чтобы получить инкапсулированные данные, то есть сам пакет 720 запроса. Тогда повторитель D 708d многоадресной рассылки передает пакет 720 запроса по сети A 702a путем многоадресной рассылки. Когда повторитель A 708a снова принимает пакет 720 запроса он определяет, не принимал ли он ранее данный пакет 720 запроса. Как описано выше, это может быть выполнено путем извлечения идентификатора пакета (не показано на Фиг.7) из пакета 720 запроса и выполнения поиска этого идентификатора запроса в кэше идентификаторов (не показано на Фиг.7), который он поддерживает. Когда повторитель A 708a многоадресной рассылки определяет, что он уже принял и переадресовал данный пакет 720 запроса, то он просто игнорирует этот 720 запрос. Таким образом, детектируется и неразрушающим образом предотвращается образование петли, то есть механизм для предоставления сетевого моста для трафика многоадресной рассылки по протоколу UDP может продолжать работать, даже несмотря на то, что детектируется образование петли.
Фиг.8 иллюстрирует работу повторителей 708 многоадресной рассылки в различных сетях, когда приложение 834 в хосте C 704c отвечает на запрос 720 многоадресной рассылки. Приложение 834 передает пакет 836 ответа по сети C 702c путем одноадресной передачи, и повторитель C 708c многоадресной рассылки принимает пакет 836 ответа. Повторитель C 708c многоадресной рассылки упаковывает пакет 836 ответа и передает инкапсулированный пакет 837 ответа в повторитель многоадресной рассылки A 708a в сети A 702a посредством протокола TCP/IP. Если есть множество повторителей 708 многоадресной рассылки, соединенных с повторителем C 708c многоадресной рассылки посредством протокола TCP/IP, то ответ 836 может быть возвращен всем повторителям 708 в том случае, когда повторитель C 708c многоадресной рассылки не может определить, который повторитель 708 многоадресной рассылки переадресовал запрос 720. Если повторитель 708 многоадресной рассылки принимает ответ 836 на запрос 720, который он не переадресовывал, то этот повторитель 708 многоадресной рассылки может проигнорировать данный ответ 836.
Когда повторитель A 708a многоадресной рассылки принимает инкапсулированный пакет 837, он распаковывает инкапсулированный пакет 837 ответа, чтобы получить инкапсулированные данные (то есть сам пакет 836 ответа), и проверяет идентификатор пакета. Если идентификатор пакета отсутствует в кэше повторителя A 708a многоадресной рассылки, то пакет 836 ответа игнорируется. Повторитель A 708a многоадресной рассылки использует идентификатор пакета из своего кэша, чтобы идентифицировать сетевой адрес создавшей пакет запроса главной системы 738 и порт, связанный с приложением-инициатором 730. Тогда повторитель A 708a многоадресной рассылки передает пакет 836 ответа в приложение-инициатор 730, используя одноадресную передачу по протоколу UDP.
Настоящие системы и способы могут быть использованы в нескольких контекстах. Фиг.9 иллюстрирует один вариант осуществления системы, где могут быть реализованы настоящие системы и способы. Фиг.9 представляет собой структурную схему, которая иллюстрирует один вариант осуществления системы 900 освещения, которая включает в себя систему 908 контроллера освещения. Система 900 освещения с Фиг.9 может охватывать несколько комнат в доме. Как показано, система 900 включает в себя комнату A 902, комнату B 904 и комнату C 906. Несмотря на то что на Фиг.9 показано три комнаты, система 900 может быть реализована в любом количестве комнат в доме, жилом помещении или ином окружении.
Система 908 контроллера освещения может выполнять мониторинг и управление дополнительными встроенными системами и компонентами, входящими в состав системы 900. В одном варианте осуществления комната A 902 и комната B 904 включают в себя переключающий компонент 914, 918. Переключающие компоненты 914, 918 также могут включать в себя вторичные встроенные системы 916, 920. Вторичные встроенные системы 916, 920 могут принимать инструкции от системы 908 контроллера освещения. Тогда вторичные встроенные системы 916, 920 могут выполнять эти инструкции. Эти инструкции могут включать в себя включение или выключение питания различных светоизлучающих компонентов 910, 912, 922 и 924. Эти инструкции также могут включать в себя уменьшение или увеличение яркости различных светоизлучающих компонентов 910, 912, 922 и 924. Эти инструкции, сверх того, могут включать в себя регулирование яркости светоизлучающих компонентов 910, 912, 922 и 924 в формах различных образцов. Вторичные встроенные системы 916, 920 помогают системе 908 контроллера освещения выполнять мониторинг и управление каждым светоизлучающим компонентом 910, 912, 922 и 924, расположенным в комнате A 902 и комнате B 904.
Система 908 контроллера освещения также может предоставлять инструкции непосредственно светоизлучающему компоненту 926, которые включает в себя вторичную встроенную систему 928, как показано для комнаты C 906. Система 908 контроллера освещения может предоставлять инструкции вторичной встроенной системе 928, чтобы включать или выключать питание отдельного светоизлучающего компонента 926. Аналогично, принимаемые от системы 908 контроллера освещения инструкции могут включать в себя уменьшение или увеличение яркости отдельного светоизлучающего компонента 926.
Система 908 контроллера освещения также может выполнять мониторинг и предоставлять инструкции напрямую в отдельные светоизлучающие компоненты 930 и 932 в системе 900. Эти инструкции могут включать в себя инструкции, схожие с описанными выше.
Фиг.10 представляет собой дополнительный вариант осуществления системы, в которой могут быть реализованы системы и способы настоящего изобретения. Фиг.10 представляет собой структурную схему, иллюстрирующую систему 1000 безопасности. В показанном варианте осуществления система 1000 безопасности реализована в комнате A 1002, комнате B 1004 и комнате C 1006. Эти комнаты могут представлять собой границы дома или иной замкнутой среды. Система 1000 также может быть реализована в открытой среде, где комнаты A, B и C, 1002, 1004 и 1006 соответственно представляют территории или границы.
Система 1000 включает в себя систему 1008 контроллера безопасности. Система 1008 контроллера безопасности выполняет мониторинг и принимает информацию от различных компонентов, входящих в состав системы 1000. Например, датчик 1014, 1018 движения может включать в себя вторичную встроенную систему 1016. Датчики 1014, 1018 движения могут выполнять мониторинг ближайшего пространства на предмет движения и уведомлять систему 1008 контроллера безопасности, когда детектируется движение, посредством вторичной встроенной системы 1016, 1020. Система 1008 контроллера безопасности также может предоставлять инструкции различным компонентам, входящим в состав системы 1000. Например, система 1008 контроллера безопасности может предоставлять инструкции во вторичные встроенные системы 1016, 1020, чтобы включать или выключать питание датчика 1010, 1022 окна и датчика 1012, 1024 двери. В одном варианте осуществления вторичные встроенные системы 1016, 1020 уведомляют систему 1008 контроллера безопасности, когда датчики 1010, 1022 окна детектируют движение окна. Аналогично, вторичные встроенные системы 1016, 1020 уведомляют систему 1008 контроллера безопасности, когда датчики 1012, 1024 двери детектируют движение двери. Вторичные встроенные системы 1016, 1020 могут предоставлять инструкции датчикам 1014, 1018 движения, чтобы активировать светоизлучающий диод (не показан), расположенный внутри датчиков 1014, 1018 движения.
Система 1008 контроллера безопасности также может выполнять мониторинг и напрямую предоставлять инструкции отдельным компонентам, входящим в состав системы 1000. Например, система 1008 контроллера безопасности может выполнять мониторинг и предоставлять инструкции, чтобы включать или выключать питание датчика 1030 движения или датчика 1032 окна. Система 1008 контроллера безопасности также может предоставлять инструкции датчику 1030 движения и датчику 1032 окна, чтобы активировать светоизлучающий диод (не показан) или предоставить звуковые сигналы тревоги через датчики 1030 и 1032.
Каждый отдельный компонент, входящий в состав системы 1000, также может включать в себя вторичную встроенную систему. Например, Фиг.10 иллюстрирует датчик 1026 двери, который включает в себя вторичную встроенную систему 1028. Система 1008 контроллера безопасности может выполнять мониторинг и предоставлять инструкции вторичной встроенной системе 1028 описанным выше образом.
Фиг.11 представляет собой структурную схему, иллюстрирующую один вариант осуществления системы 1100 управления домом. Система 1100 управления домом включает в себя контроллер 1108 дома, который способствует выполнению мониторинга различных систем, таких как система 900 освещения, система 1000 безопасности и т.п. Система 1100 управления домом предоставляет возможность пользователю управлять различными компонентами и системами посредством одной или более встроенных систем. В одном варианте осуществления система 1100 управления домом выполняет мониторинг и предоставляет инструкции так же, как описано в привязке с Фиг.9 и 10. В показанном варианте осуществления контроллер 1108 дома предоставляет инструкции компоненту 1124 обогрева через вторичную встроенную систему 1120. Компонент 1124 обогрева может включать в себя печь или иное обогревательное устройство, которое обычно используется в жилых или рабочих помещениях. Система 1108 контроллера дома может предоставлять инструкции, чтобы включать или выключать компонент 1124 обогрева через вторичную встроенную систему 1120.
Аналогично, контроллер 1108 дома может выполнять мониторинг и предоставлять инструкции напрямую в компонент системы 1100 управления домом, такой как компонент 1130 охлаждения. Компонент 1130 охлаждения может включать в себя воздушный кондиционер или иное охлаждающее устройство, которое обычно используется в жилых или рабочих помещениях. Центральный контролер 1108 дома может предоставлять инструкции компоненту 1130 охлаждения, чтобы увеличивать или уменьшать мощность в зависимости от температурных показаний, собранных центральной встроенной системой 1108. Система 1100 управления домом функционирует так, как описано в привязке к Фиг.9 и 10.
Фиг.12 представляет собой структурную схему, иллюстрирующую основные аппаратные компоненты, как правило, используемые в компьютерной системе 1201. Проиллюстрированные компоненты могут быть расположены внутри одной физической структуры или в отдельных корпусах или структурах.
Компьютерная система 1201 включает в себя процессор 1203 и память 1205. Процессор 1203 управляет работой компьютерной системы 1201, и он может быть реализован как микропроцессор, микроконтроллер, процессор цифровых сигналов или иное известное устройство. Процессор 1203, как правило, выполняет логические и арифметические операции на основании программных инструкций, хранимых в памяти 1205.
В использованном здесь значении термин "память" 1205 определяет в широком смысле любой электронный компонент, который способен хранить электронную информацию и который может быть реализован как ОЗУ, ПЗУ, носитель на магнитных дисках, носитель на оптических дисках, флэш-память в ПЗУ, встроенная память, входящая в состав процессора 1203, СППЗУ, ЭСППЗУ, регистры и т.п. Память 1205, как правило, хранит программные инструкции и другие типы данных. Программные инструкции могут быть выполнены процессором 1203, чтобы реализовать один или все описанные здесь способы.
Компьютерная система 1201, как правило, также включает в себя один или более интерфейсов 1207 связи для осуществления связи с другими электронными устройствами. Интерфейсы 1207 связи могут быть основаны на технологии проводной связи, технологии беспроводной связи или обеих этих технологиях. Примеры различных типов интерфейсов 1207 связи включают в себя последовательный порт, параллельный порт, Универсальную Последовательную Шину (USB), Ethernet-адаптер, интерфейс шины IEEE 1394, интерфейс малых компьютерных систем (SCSI), инфракрасный порт связи, беспроводной адаптер Bluetooth и т.п.
Компьютерная система 1201, как правило, также включает в себя одно или более устройств 1209 ввода и одно или более устройств 1211 вывода. Примеры различных типов устройств 1209 ввода включают в себя клавиатуру, мышь, микрофон, устройство дистанционного управления, кнопку, джойстик, трекбол, сенсорную панель, световое перо и т.п. Примеры различных типов устройств 1211 вывода включают в себя громкоговоритель, принтер и т.п. Одним из особых типов устройства вывода, который, как правило, входит в состав компьютерной системы, является устройство 1213 отображения. Устройства 1213 отображения, используемые в раскрытых здесь вариантах осуществления, могут использовать любую подходящую технологию проецирования изображения, такую как технология электронно-лучевой трубки, жидкокристаллического дисплея, светоизлучающего диода, плазменного дисплея, электролюминесценции и т.п. Также может быть предоставлен контроллер 1215 дисплея для преобразования хранимых в памяти 1205 данных в текст, графику и/или движущиеся изображения, выводимые на устройство 1213 отображения.
Само собой разумеется, что Фиг.12 иллюстрирует лишь одну из возможных конфигураций компьютерной системы 1201. Также могут использоваться различные другие архитектуры и компоненты.
Информация и сигналы могут быть представлены с использованием любой из доступных различных технологий и способов. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные сигналы, которые, возможно, упоминались в вышеизложенном описании, могут быть представлены посредством напряжений, токов, электромагнитных волн, магнитных полей или частиц, оптических полей или частиц или посредством их любого сочетания.
Различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные в привязке к раскрытым здесь вариантам осуществления, могут быть реализованы как электронное аппаратное обеспечение, компьютерное программное обеспечение или их комбинации. Для ясной иллюстрации этой взаимозаменяемости аппаратного обеспечения и программного обеспечения различные иллюстративные компоненты, блоки, модули, схемы и этапы выше были описаны в терминах их функциональности. Способ реализации такой функции, как аппаратное обеспечение или программное обеспечение, зависит от конкретного приложения и конструктивных ограничений, налагаемых на систему в целом. Специалисты могут реализовать описанные функции различными способами для каждого конкретного применения, но подобные решения реализации не должны быть интерпретированы как выходящие за рамки объема настоящего изобретения.
Различные иллюстративные логические блоки, модули и схемы, описанные в привязке к раскрытым здесь вариантам осуществления, могут быть реализованы или выполнены посредством процессора общего назначения, цифрового процессора сигналов, специализированной микросхемы, программируемой вентильной матрицы или другого программируемого логического устройства, дискретного вентиля или транзисторной логической схемы, дискретных аппаратных компонентов или их любой комбинации, сконструированной для выполнения описанных здесь функций. Процессор общего назначения может быть микропроцессором, но альтернативно процессор может быть любым обычным процессором, котроллером, микроконтроллером или конечным автоматом. Процессор также может быть реализован как комбинация вычислительных устройств, например комбинация цифрового процессора сигналов и микропроцессора, множество микропроцессоров, один или более микропроцессоров в сочетании с цифровым процессором сигналов в качестве ядра или любая другая такая конфигурация.
Этапы способа или алгоритма, описанного в привязке к раскрытым здесь вариантам осуществления, могут быть осуществлены непосредственно аппаратно, посредством программного модуля, исполняемого процессором, или посредством комбинации этих двух вариантов. Программный модуль может храниться в памяти ОЗУ, флэш-памяти, памяти ПЗУ, памяти СППЗУ, памяти ЭСППЗУ, регистрах, жестких дисках, съемных дисках, дисках CD-ROM или любой другой известной форме носителей данных. Иллюстративный носитель данных соединен с процессором так, чтобы процессор мог считывать информацию с носителя данных и записывать информацию на него. Альтернативно, носитель данных может быть интегрирован с процессором. Процессор и носитель данных могут быть в специализированной микросхеме. Специализированная микросхема может быть в терминале пользователя. Альтернативно, процессор и носитель данных могут быть расположены в терминале пользователя как раздельные компоненты.
Раскрытые здесь способы содержат один или более этапов или действий для реализации описанного способа. Очередность этапов и/или действий способа может быть изменена в рамках объема настоящего изобретения. Иначе говоря, если для должной работы варианта осуществления не требуется конкретного порядка этапов или действий, то порядок и/или использование конкретных этапов и/или действий может быть изменен в рамках объема настоящего изобретения.
Несмотря на то что выше были проиллюстрированы и описаны конкретные варианты осуществления и применения, следует понимать, что настоящее изобретение не ограничивается точной конфигурацией и компонентами, описанными выше. Специалистам в данной области техники будут очевидны различные модификации, изменения и вариации, которые могут быть выполнены в структуре, работе и деталях раскрытых здесь способов и систем в рамках сущности и объема настоящего изобретения.