СИСТЕМЫ И СПОСОБЫ ДЛЯ УПРАВЛЕНИЯ ТРАФИКОМ В ОДНОРАНГОВОЙ СЕТИ
SYSTEMS AND METHODS TO CONTROL TRAFFIC IN PEER-TO-PEER NETWORK

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение в целом относится к компьютерам и имеющим отношение к компьютерам технологиям. Более точно, настоящее изобретение относится к системам и способам для управления трафиком в одноранговой сети.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Компьютерные и коммуникационные технологии продолжают продвигаться быстрыми шагами. Действительно, компьютерные и коммуникационные технологии вовлечены во многие аспекты повседневной жизни человека. Например, многочисленные устройства, используемые потребителями сегодня, содержат компьютер внутри устройства. Эти небольшие компьютеры входят в употребление в варьирующихся размерах и степенях изощренности. Эти небольшие компьютеры включают в себя все - от одного микроконтроллера до полнофункциональной завершенной компьютерной системы. Например, эти небольшие компьютеры могут быть однокристальным компьютером, таким как микроконтроллер; бортовым типом компьютера, таким как контроллер, типичным настольным компьютером, таким как совместимый с ПК фирмы IBM, и т.п.
Компьютеры типично содержат один или более процессоров в основе компьютера. Процессор(ы) обычно взаимосвязаны с разными внешними устройствами ввода и устройствами вывода и функционируют, чтобы управлять конкретным компьютером или устройством. Например, процессор в термостате может быть присоединен к клавишам, используемым для выбора температурных настроек, к отопительному котлу или воздушному кондиционеру для изменения температуры и к датчикам температуры для считывания и отображения текущей температуры на дисплее.
Многие приборы, устройства и т.п. включают в себя один или более небольших компьютеров. Например, термостаты, отопительные котлы, системы воздушного кондиционирования, холодильники, телефоны, пишущие машинки, автомобили, торговые автоматы и многочисленные разные типы промышленного оборудования в настоящее время типично содержат небольшие компьютеры или процессоры внутри них. Компьютерное программное обеспечение работает на процессорах этих компьютеров и выдает команды процессорам, каким образом выполнять определенные задачи. Например, компьютерное программное обеспечение, работающее в термостате, может предписывать воздушному кондиционеру останавливать работу, когда достигнута конкретная температура, или может побуждать нагреватель включаться, когда необходимо.
Эти типы небольших компьютеров, которые являются частью устройства, прибора, инструментального средства и т.п. часто упоминаются как встроенные устройства или встроенные системы. (Термины «встроенное устройство» и «встроенная система» в материалах настоящей заявки будут использоваться взаимозаменяемо.) Встроенная система обычно относится к компьютерным аппаратным средствам и программному обеспечению, которые являются частью большей системы. Встроенные системы могут не иметь типичных устройств ввода и вывода, таких как клавиатура, мышь и/или монитор. Обычно в основе каждой встроенной системы имеют место один или более процессоров.
Система освещения может включать в себя встроенную систему. Встроенная система может использоваться для контроля и управления эффектами системы освещения. Например, встроенная система может предусматривать элементы управления для затемнения яркости ламп в системе освещения. В качестве альтернативы, встроенная система может предусматривать элементы управления для повышения яркости ламп. Встроенная система может предусматривать элементы управления для включения определенной картины освещения среди отдельных ламп в системе освещения. Встроенные системы могут быть связаны с отдельными выключателями в системе освещения. Эти встроенные системы могут выдавать команду выключателям включать питание или выключать питание отдельных ламп или всей системы освещения. Подобным образом, встроенные системы могут быть присоединены к отдельным лампам в системе освещения. Состояние яркости или мощности каждой отдельной лампы может управляться встроенной системой.
Система безопасности также может включать в себя встроенную систему. Встроенная система может использоваться для управления отдельными защитными датчиками, которые составляют систему безопасности. Например, встроенная система может предусматривать элементы управления, чтобы автоматически включать питание каждого из защитных датчиков. Встроенные системы могут быть присоединены к каждому из отдельных защитных датчиков. Например, встроенная система может быть присоединена к датчику движения. Встроенная система может автоматически включать питание отдельного датчика движения и предусматривать элементы управления для приведения в действие датчика движения, если обнаружено движение. Приведение в действие датчика движения может включать в себя выдачу команд для включения питания СИД (светоизлучающего диода, LED), расположенного в датчике движения, вывода сигнала тревоги из портов вывода датчика движения и тому подобного. Встроенные системы также могут быть присоединены к датчикам, контролирующим дверь. Встроенная система может выдавать команды на датчики, контролирующие дверь, для приведения в действие, когда дверь открывается или закрывается. Подобным образом, встроенные системы могут быть присоединены к датчикам, контролирующим окно. Встроенная система может выдавать команды для приведения в действие датчика, контролирующего окно, если окно открывается или закрывается.
Некоторые встроенные системы также могут использоваться для управления беспроводными изделиями, такими как сотовые телефоны. Встроенная система может выдавать команды для включения питания светодиодного дисплея сотового телефона. Встроенная система также может приводить в действие звуковые динамики в сотовом телефоне, чтобы снабжать пользователя звуковым уведомлением, относящимся к сотовому телефону.
Бытовые приборы также могут включать в себя встроенную систему. Бытовые приборы могут включать в себя приборы, типично используемые на обычной кухне, например, печь, холодильник, микроволновую печь и т.п. Бытовые приборы также могут включать в себя приборы, которые относятся к здравоохранению и здоровью пользователя. Например, массажное устройство изменения угла наклона может включать в себя встроенную систему. Встроенная система может выдавать команды, чтобы автоматически изменять наклон задней части кресла согласно предпочтениям пользователя. Встроенная система также может выдавать команды, чтобы приводить в действие вибрационные компоненты в кресле, которые вызывают вибрации в устройстве изменения наклона согласно предпочтениям пользователя.
Дополнительные изделия, типично обнаруживаемые в домах, также могут включать в себя встроенные системы. Например, встроенная система может использоваться в туалете для управления уровнем воды, используемой для пополнения резервуарного бака. Встроенные системы могут использоваться в гидромассажных ваннах, чтобы управлять истечением воздуха.
Как указано, встроенные системы могут использоваться для мониторинга или управления многими разными системами, ресурсами, изделиями и т.п. С ростом сети Интернет и Всемирной паутины (www) встроенные системы все больше и больше подключаются к сети Интернет, так что они могут удаленно отслеживаться и/или управляться. Другие встроенные системы могут присоединяться к компьютерным сетям, в том числе локальным сетям, глобальным сетям и т.п. В качестве используемого в материалах настоящей заявки термин «компьютерная сеть» (или просто «сеть») относится к любой системе, в которой последовательность узлов соединены трактом связи. Термин «узел» относится к любому устройству, которое может быть присоединено в качестве части компьютерной сети. Встроенная система может быть узлом сети. Другие примеры узлов сети включают в себя компьютеры, персональные цифровые секретари (PDA), сотовые телефоны и т.п.
Некоторые встроенные системы могут поставлять данные и/или услуги другим вычислительным устройствам с использованием компьютерной сети. Могут предоставляться многие разные виды услуг. Некоторые примеры услуг включают в себя предоставление температурных данных с места, предоставление данных наблюдения, предоставление информации о погоде, поставку аудиопотока, поставку видеопотока и т.п.
Некоторое количество узлов (включающих в себя по меньшей мере некоторые встроенные системы) могут быть взаимосвязаны, с тем чтобы формировать одноранговую сеть. Одноранговая компьютерная сеть является сетью, в которой каждый узел может осуществлять связь с любым другим узлом, не присоединяясь к отдельному серверному компьютеру или серверному программному обеспечению. Одноранговая сеть скорее полагается на вычислительную мощность и полосу пропускания участников в сети, нежели ее концентрацию на относительно малом количестве серверов. Одноранговые сети могут использоваться для соединения узлов через в значительной степени самоорганизующиеся соединения.
Некоторое количество узлов в пределах одноранговой сети могут осуществлять связь один с другим приблизительно одновременно, и, как результат, сеть может становиться перегруженной. Если это происходит, то узлы могут не быть способными использовать сеть, в то время как другие узлы свободно отправляют пакеты. Отсутствие центрального серверного узла при работе в одноранговой сети делает эту проблему более острой. Известные попытки минимизировать потерю пакетов чрезмерно влияют на пропускную способность, то есть объем данных, которые передаются через сеть. Соответственно, преимущества могут быть реализованы усовершенствованиями, имеющими отношение к управлению трафиком в одноранговой сети, для того, чтобы максимизировать пропускную способность наряду с минимизацией потери пакетов.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Раскрыты системы и способы для управления трафиком в одноранговой сети. В примерном варианте осуществления определяются одно или более событий перегрузки, которые подразумевают перегрузку в одноранговой сети. В дополнение определяются одно или более событий без перегрузки, которые подразумевают отсутствие перегрузки в одноранговой сети, но которые могут помогать прогнозировать/предсказывать будущую перегрузку сети. Когда узел обнаруживает наступление одного или более из таких определенных событий перегрузки, узел увеличивает интервал между пакетами протокола без установления соединения (например, протокола дейтаграмм пользователя), которые отправляются узлом. Когда узел обнаруживает наступление одного или более из определенных событий без перегрузки, узел уменьшает интервал между пакетами протокола без установления соединения, которые отправляются узлом. Некоторые из узлов в одноранговой сети могут быть встроенными системами.
Могут быть определены многие разные виды событий без перегрузки и событий перегрузки. Примерное событие без перегрузки состоит в том, что узел принимает многоадресный запрос и список ответчиков, который ассоциирован с многоадресным запросом, и узел включен в список ответчиков. Наоборот, примерное событие перегрузки состоит в том, что узел принимает многоадресный запрос и список ответчиков, который ассоциирован с многоадресным запросом, и узел не включен в список ответчиков, когда был бы должен.
Другое примерное событие перегрузки состоит в том, что узел отправляет многоадресный запрос. Еще одно примерное событие перегрузки состоит в том, что узел принимает многоадресный запрос, но не принимает список ответчиков, который ассоциирован с многоадресным запросом, и узел отправляет многочисленные ответы на многоадресный запрос. Другое примерное событие перегрузки состоит в том, что узел принимает многоадресный запрос при ожидании отправки пакета. Еще одно примерное событие перегрузки состоит в том, что узел принимает одноадресный ответ при ожидании отправки пакета.
ПЕРЕЧЕНЬ ЧЕРТЕЖЕЙ
Примерные варианты осуществления изобретения будут становиться более очевидными из последующего описания и прилагаемой формулы изобретения, взятых в сочетании с прилагаемыми чертежами. С пониманием, что эти чертежи изображают только примерные варианты осуществления и потому не должны рассматриваться ограничивающими объем изобретения, примерные варианты осуществления изобретения будут описаны с дополнительной спецификой и детализацией посредством использования прилагаемых чертежей, на которых:
фиг.1 иллюстрирует примерную одноранговую сеть, в которой некоторые варианты осуществления могут быть осуществлены на практике;
фиг.2A-2F иллюстрируют пример, показывающий, каким образом узлы в одноранговой сети могут взаимодействовать для того, чтобы предоставлять данные и/или услуги один другому;
фиг.3 - схема потоков данных, которая иллюстрирует различные компоненты программного обеспечения, которые могут использоваться узлом в одноранговой сети согласно варианту осуществления;
фиг.4 - еще одна схема потоков данных, которая иллюстрирует различные компоненты программного обеспечения, которые могут использоваться узлом в одноранговой сети согласно варианту осуществления;
фиг.5 - блок-схема последовательности операций, которая иллюстрирует работу узла в пределах одноранговой сети согласно варианту осуществления;
фиг.6 иллюстрирует пример события без перегрузки, которое может быть определено для узла согласно варианту осуществления;
фиг.7 иллюстрирует пример события перегрузки, которое может быть определено для узла согласно варианту осуществления;
фиг.8 иллюстрирует еще один пример события перегрузки, которое может быть определено для узла согласно варианту осуществления;
фиг.9 иллюстрирует еще один пример события перегрузки, которое может быть определено для узла согласно варианту осуществления;
фиг.10 иллюстрирует еще один пример события перегрузки, которое может быть определено для узла согласно варианту осуществления;
фиг.11 иллюстрирует еще один пример события перегрузки, которое может быть определено для узла согласно варианту осуществления;
фиг.12 - структурная схема компонентов аппаратных средств, которые могут использоваться во встроенной системе, которая сконфигурирована согласно варианту осуществления;
фиг.13 иллюстрирует примерную систему освещения, в которой могут быть реализованы настоящие системы и способы;
фиг.14 иллюстрирует примерную систему безопасности, в которой могут быть реализованы настоящие системы и способы; и
фиг.15 иллюстрирует примерную систему домашнего контроллера, в которой могут быть реализованы настоящие системы и способы.
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Различные варианты осуществления изобретения далее описаны со ссылкой на чертежи, где одинаковые номера ссылок указывают идентичные или функционально подобные элементы. Варианты осуществления настоящего изобретения, которые в общих чертах описаны и проиллюстрированы на фигурах, могли бы быть скомпонованы и сконструированы в широком многообразии разных конфигураций. Таким образом, последующее более подробное описание нескольких примерных вариантов осуществления настоящего изобретения, которые представлены на фигурах, не подразумевается ограничивающим объем изобретения, который определяется формулой изобретения, а только является представляющим варианты осуществления изобретения.
Слово «примерный» используется в материалах настоящей заявки, исключительно чтобы означать «служащий в качестве примера, отдельного случая или иллюстрации». Любой вариант осуществления, описанный в материалах настоящей заявки как «примерный», необязательно должен истолковываться как предпочтительный или преимущественный над другими вариантами осуществления. Несмотря на то, что различные аспекты вариантов осуществления представлены на чертежах, чертежи необязательно начерчены для представления в определенном масштабе, если не указано специально.
Многие признаки вариантов осуществления, раскрытых в материалах настоящей заявки, могут быть реализованы в качестве компьютерного программного обеспечения, электронных аппаратных средств или комбинации обоих. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные компоненты, как правило, будут описаны в показателях своих функциональных возможностей. Реализованы ли такие функциональные возможности в виде аппаратных средств или программного обеспечения, зависит от конкретного применения и проектных ограничений, накладываемых на всю систему. Специалисты могут реализовать описанные функциональные возможности отличающимися способами для каждого конкретного применения, но такие реализационные решения не должны интерпретироваться в качестве служащих причиной выхода за рамки объема настоящего изобретения.
В тех случаях, когда описанные функциональные возможности реализованы в качестве компьютерного программного обеспечения, такое программное обеспечение может включать в себя любой тип компьютерной команды или исполняемого компьютером кода, расположенных в пределах устройства памяти и/или передаваемых в виде электронных сигналов по системной шине или сети. Программное обеспечение, которое реализует функциональные возможности, ассоциированные с компонентами, описанными в материалах настоящей заявки, может содержать одиночную команду или многочисленные команды и может быть распределено по нескольким разным кодовым сегментам, среди разных программ, и по нескольким устройствам памяти.
Фиг.1 иллюстрирует примерную одноранговую сеть 100, в которой некоторые варианты осуществления могут быть осуществлены на практике. Сеть 100 включает в себя некоторое количество узлов 102. В частности, сеть 100 включает в себя узел A 102a, узел B 102b, узел C 102c и узел D 102d. Сеть 100 также включает в себя концентратор 104, который присоединяет узлы 102 один к другому, и маршрутизатор 106, который дает узлам 102 возможность поддерживать связь с другими устройствами вне сети 100 через сеть 108 Интернет. Конечно, сеть 108 Интернет является только одним типом сети, которая могла бы подвергаться доступу через маршрутизатор 106.
Сплошные линии, показанные на фиг.1, представляют физические соединения между узлами 102. Таким образом, каждый узел 102 физически присоединен к концентратору 104. Маршрутизатор 106 также физически присоединен к концентратору 104 и к сети 108 Интернет. Пунктирные линии, показанные на фиг.1, показывают, что каждый узел 102 в сети 100 способен поддерживать связь со всеми из других узлов 102 в сети 100. К тому же одно или более устройств в сети 108 Интернет может поддерживать связь с узлами 102 в сети 100, и наоборот.
Варианты осуществления, описанные в материалах настоящей заявки, могут быть осуществлены на практике в одноранговой сети 100, где по меньшей мере некоторые из узлов 102 являются встроенными системами. Как обсуждено выше, термин «встроенная система» обычно относится к компьютерным аппаратным средствам и программному обеспечению, которые являются частью большей системы. В сети 100, которая изображена на фиг.1, некоторые из узлов 102 могут быть встроенными системами.
Сеть 100, показанная на фиг.1, предоставлена только в целях примера. Для простоты, сеть 100, показанная на фиг.1, включает в себя всего лишь несколько узлов 102. Однако варианты осуществления могут быть осуществлены на практике в одноранговых сетях, которые включают в себя гораздо больше узлов 102. Варианты осуществления также могут быть осуществлены на практике в одноранговых сетях, которые включают в себя меньшее количество узлов 102.
Некоторые или все из узлов 102 в сети 100 могут быть сконфигурированы для многоадресной передачи сообщений на другие узлы 102 в сети 100. В качестве используемого в материалах настоящей заявки термин «многоадресная передача» относится к последовательности операций отправки сообщения одновременно на более чем один узел 102 в сети 100. Многоадресная передача отлична от широковещательной передачи тем, что многоадресная передача означает отправку сообщения в определенные группы узлов 102 в пределах сети 100, тогда как широковещательная передача подразумевает отправку сообщения на все из узлов 102 в сети 100. Узлы 102 в пределах сети 100 также могут быть сконфигурированы для одноадресной передачи сообщений на другие узлы 102 сети. Термин «одноадресная передача» относится к отправке сообщения на определенный узел 102 в сети 100. Транспортный протокол без установления соединения, такой как протокол дейтаграмм пользователя (UDP), может использоваться как для многоадресной передачи, так и для одноадресной передачи сообщений на другие узлы 102 сети. В качестве альтернативы, варианты осуществления изобретения могут быть осуществлены на практике с сетью 100, где широковещательная передача используется вместо многоадресной передачи. Широковещательная передача является особым случаем многоадресной передачи, где группа многоадресной передачи включает в себя все узлы 102.
По меньшей мере некоторые из узлов 102 могут предоставлять данные и/или услуги другим узлам 102 в сети 100. Узлы 102 также могут предоставлять данные и/или услуги устройствам, которые расположены вне сети 100, например, через сеть 108 Интернет.
В качестве используемого в материалах настоящей заявки термин «многоадресный запрос» относится к запросу в отношении данных и/или одной или более услуг, которые отправляются посредством многоадресной передачи. Многоадресный запрос адресуется группе многоадресной передачи и (умозрительно) доставляется на все узлы 102, которые объединили группу многоадресной передачи. «Запросчик» является узлом 102, который отправляет многоадресный запрос. «Ответчик» является узлом 102, который отвечает на многоадресный запрос. Фиг.2A-2F иллюстрируют, каким образом узлы 202 в одноранговой сети 100 могут взаимодействовать для того, чтобы предоставлять данные и/или услуги один другому. Проиллюстрированный пример включает в себя четыре узла 202, а именно узел A 202a, узел B 202b, узел C 202c и узел D 202d.
Как показано на фиг.2A, узел A 202a вначале многоадресно передает запрос 210 на услугу 212. В дополнение к запросу 210 узел A 202a также многоадресно передает список 214 ответчиков, который ассоциирован с запросом 210. Например, ID (идентификатор) транзакции может быть назначен обоим, запросу 210 и списку 214 ответчиков. В общих чертах список 214 ответчиков, который ассоциирован с многоадресным запросом 210, является списком 202 узлов, которые ответили на многоадресный запрос 210 раньше. Список 214 ответчиков может использоваться для расширения пропускной способности данных в сети 100, как будет более подробно пояснено ниже. На фиг.2A список 214 ответчиков пуст. Это происходит потому, что фиг.2A показывает запросчика 202a, отправляющего многоадресный запрос 210 в первый раз. Конечно, запрос 210 и список 214 ответчиков могут отправляться по сети 100 совместно.
В проиллюстрированном примере будет предполагаться, что узел B 202b, узел C 202c и узел D 202d объединились в группу многоадресной передачи, которой адресован запрос 210. Узел B 202b и узел C 202c - оба принимают многоадресный запрос 210, когда он отправляется в первый раз. Однако узел D 202d не принимает многоадресный запрос 210, когда он отправляется в первый раз. Есть многообразие причин, почему многоадресный запрос 210 может не приниматься узлом D 202d. Например, сеть 100 может быть слишком перегруженной трафиком, и запрос 210 может отбрасываться в некоторой точке, существующей на маршруте от узла A 202a до узла D 202d. Когда пакет, такой как многоадресный запрос 210, отбрасывается до того, как он достигает своего пункта назначения, это иногда упоминается как потеря пакета. (Термин «пакет» соответствует блоку информации, который передается с одного узла 202 на другой узел 202 по сети 100. Типично, многоадресный запрос 210 содержится в одиночном пакете.)
Когда узел 202 принимает многоадресный запрос 210, он определяет, способен ли он к предоставлению запрошенных данных и/или услуг(и). Если способен, узел 202 отправляет ответ 216 на узел 202, который отправлял многоадресный запрос 210. Фиг.2B показывает работу узла B 202b, узла C 202c и узла D 202d в ответ на отправку узлом A 202a запроса 210 в первый раз. Узел B 202b и узел C 202c - оба предоставляют запрошенную услугу 212. Соответственно, узел B 202b отправляет ответ 216b обратно на узел A 202a. К тому же узел C 202c отправляет ответ 216c обратно на узел A 202a. Ответы 216b, 216c могут отправляться посредством одноадресной передачи. Так как узел D 202d не принимал запрос 210, он не будет отвечать на многоадресный запрос 210.
Через определенный период времени узел A 202a повторно отправляет запрос 210 ради требуемой услуги 212. Фиг.2C показывает узел A 202a, отправляющий запрос 210 и список 214 ответчиков во второй раз. Фиг.2D показывает работу узла B 202b, узла C 202c и узла D 202d в ответ на отправку узлом A 202a запроса 210 и списка 214 ответчиков во второй раз.
Как и раньше, оба, запрос 210 и список 214 ответчиков, отправляются посредством многоадресной передачи. Так как узел B 202b и узел C 202c раньше ответили на многоадресный запрос 210, список 214 ответчиков теперь включает в себя как узел B 202b, так и узел C 202c. Как показано на фиг.2C, каждый из узла B 202b, узла C 202c и узла D 202d принимает многоадресный запрос 210 и список 214 ответчиков, когда они отправлены во второй раз. Когда узел B 202b и узел C 202c принимают многоадресный запрос 210 и список 214 ответчиков, они оба распознают, что они включены в список 214 ответчиков. Как результат, ни узел B 202b, ни узел C 202c не отвечают на этот многоадресный запрос 210. Однако узел D 202d распознает, что он не включен в список 214 ответчиков. Соответственно, как показано на фиг.2D, узел D 202d отправляет ответ 216d обратно на узел A 202a. Ответ 216d может отправляться посредством одноадресной передачи.
Через определенный период времени узел A 202a еще раз повторно отправляет запрос 210 ради требуемой услуги 212. Фиг.2E показывает узел A 202a, отправляющий запрос 210 и список 214 ответчиков в третий раз. Фиг.2F показывает работу узла B 202b, узла C 202c и узла D 202d в ответ на отправку узлом A 202a запроса 210 и списка 214 ответчиков в третий раз.
Как и раньше, оба, запрос 210 и список 214 ответчиков, отправляются посредством многоадресной передачи. Так как узел B 202b, узел C 202c и узел D 202d раньше ответили на многоадресный запрос 210, список 214 ответчиков теперь включает в себя узел B 202b, узел C 202c и узел D 202d. Как показано на фиг.2E, каждый из узла B 202b, узла C 202c и узла D 202d принимает многоадресный запрос 210 и список 214 ответчиков, когда они отправлены в третий раз. Каждый из этих узлов 202b, 202c, 202d распознает, что он включен в список 214 ответчиков. Как результат, ни один из этих узлов 202b, 202c, 202d не отвечает на этот многоадресный запрос 210.
Количество раз, которое запросчик (например, узел A 202a) повторно отправляет многоадресный запрос 210 после начальной попытки, в материалах настоящей заявки будет упоминаться как количество «повторов». Запросчик может быть сконфигурирован так, что он отправляет определенное количество повторов. В примере, показанном на фиг.2A-2F, была одна начальная попытка и два повтора. Конечно, запросчик может быть сконфигурирован для отправки дополнительных повторов или меньшего количества повторов в соответствии с вариантами осуществления, раскрытыми в материалах настоящей заявки.
Фиг.3 - схема потоков данных, которая иллюстрирует различные компоненты программного обеспечения, которые могут использоваться узлом 302 в одноранговой сети 100 согласно варианту осуществления. Узел 302, показанный на фиг.3, включает в себя модуль 318 прикладных программ. Модуль 318 прикладных программ может предоставлять данные и/или услуги другим узлам 102 в сети 100. Модуль 318 прикладных программ также может получать данные и/или услуги от других узлов 102 по сети 100.
Проиллюстрированный узел 302 также включает в себя модуль 320 связи. Модуль 320 связи обеспечивает связь между модулем 318 прикладных программ и другими узлами 102 в сети 100. Модуль 320 связи может быть сконфигурирован для отправки сообщений на и приема сообщений из других узлов 102 сети посредством многоадресной передачи и/или посредством одноадресной передачи.
Модуль 318 прикладных программ и модуль 320 связи могут работать вместе, для того чтобы узел 302 взаимодействовал с другими узлами 102 в сети 100 образом, проиллюстрированным выше в связи с фиг.2A-2F. Для того чтобы получать данные и/или одну или более услуг, предоставляемых одним или более другими узлами 102, по сети 100, модуль 318 прикладных программ может производить один или более вызовов в отношении модуля 320 связи для многоадресной передачи запроса 210 ради данных и/или услуг(и). Когда другой узел(ы) 102 в сети 100 отвечает на многоадресный запрос 210, ответ(ы) 216 может приниматься модулем 320 связи, а затем направляться в модуль 318 прикладных программ.
Фиг.4 - еще одна схема потоков данных, которая иллюстрирует различные компоненты программного обеспечения, которые могут использоваться узлом 302 в одноранговой сети 100 согласно варианту осуществления. Как указано выше, варианты осуществления, раскрытые в материалах настоящей заявки, относятся к управлению трафиком в одноранговой сети 100, для того чтобы максимизировать пропускную способность наряду с минимизацией потери пакетов. Компоненты, показанные на фиг.4, могут использоваться для реализации этих функциональных возможностей.
В изображенном варианте осуществления некоторое количество событий 422 определено в качестве подразумевающих перегрузку в сети 100. Эти события 422 в материалах настоящей заявки будут упоминаться как события 422 перегрузки. В дополнение, некоторое количество событий 424 определено в качестве подразумевающих отсутствие перегрузки в сети 100. Эти события 424 в материалах настоящей заявки будут упоминаться как события 424 без перегрузки. События 424 без перегрузки могут помогать прогнозировать/предсказывать будущую перегрузку сети. Некоторые примеры событий 422 перегрузки и событий 424 без перегрузки будут обсуждены ниже.
Модуль 426 обнаружения событий предусмотрен на узле 402. Модуль 426 обнаружения событий отслеживает активность узла 402 на предмет наступления одного из событий 422 перегрузки или одного из событий 424 без перегрузки.
Модуль 428 интервала между пакетами также предусмотрен на узле 402. Когда модуль 426 обнаружения событий обнаруживает любое из определенных событий 422 перегрузки или событий 424 без перегрузки, он уведомляет модуль 424 интервала между пакетами. Если обнаружено одно (или более) из определенных событий 422 перегрузки, модуль 424 интервала между пакетами увеличивает интервал между пакетами, которые отправляются узлом 402. Другими словами, узел 402 увеличивает количество времени, которое он ожидает после отправки одного пакета до того, как он отправляет другой пакет. Это делается в целях уменьшения объема трафика по сети 100, тем самым уменьшая перегрузку сети 100. Наоборот, если обнаружено одно (или более) из определенных событий 424 без перегрузки, это означает, что нет значительного объема трафика в сети 100, и в ответ модуль 428 интервала между пакетами уменьшает интервал между пакетами, которые отправляются узлом 402 (то есть он уменьшает количество времени, которое он ожидает после отправки одного пакета, до того как он отправляет другой пакет).
В некоторых вариантах осуществления модуль 428 интервала между пакетами регулирует интервал между пакетами, только которые отправляются согласно протоколу без установления соединения, такому как UDP. Модуль 428 интервала между пакетами может быть сконфигурирован так, что он не оказывает влияния на интервал между пакетами, которые отправляются в соответствии с основанным на соединении протоколом, таком как TCP/IP (протокол управления передачей/межсетевой протокол).
Фиг.5 - блок-схема последовательности операций, которая иллюстрирует работу узла 102 в пределах одноранговой сети 100 согласно варианту осуществления. В соответствии с проиллюстрированным способом 500 определяются 502 одно или более событий 422 перегрузки. К тому же определяются 504 одно или более событий 424 без перегрузки.
Модуль 426 обнаружения событий в узле 102 может отслеживать 506 активность узла 102 на предмет наступления одного из событий 422 перегрузки или одного из событий 424 без перегрузки. Когда обнаруживается 508 событие 422 перегрузки, модуль 428 интервала между пакетами в узле 102 может увеличивать 510 интервал между пакетами, которые отправляются узлом 102, в стремлении уменьшить перегрузку сети. Наоборот, когда обнаружено событие 424 без перегрузки, модуль 428 интервала между пакетами может увеличивать 512 интервал между пакетами, которые отправляются узлом 102.
В некоторых вариантах осуществления многочисленные узлы 102 в сети 100 работают в соответствии со способом 500, показанным на фиг.5. Другими словами, многочисленные узлы 102 могут быть сконфигурированы для увеличения интервала между пакетами, когда обнаруживаются события 422 перегрузки, и для уменьшения интервала между пакетами, когда обнаруживаются события 424 без перегрузки. Фактически все из узлов 102 в сети 100 могут быть сконфигурированы для работы этим способом. Таким образом, может быть предусмотрен механизм для максимизации пропускной способности данных в пределах сети 100 наряду с минимизацией потери пакетов. Преимущественно, центральному серверу необязательно управлять интервалом между пакетами отдельных узлов 102 в сети 100. Взамен узлы 102 сами регулируют интервал между пакетами в ответ на условия сети.
Далее будет обсужден пример специального алгоритма, который может использоваться узлом 102 в одноранговой сети 100 согласно варианту осуществления. Хотя будет обсужден специальный алгоритм, варианты осуществления не ограничены этим специальным алгоритмом. В самом деле, любой адаптивный алгоритм может использоваться с вариантами осуществления, раскрытыми в материалах настоящей заявки. Некоторые примеры адаптивных алгоритмов, которые могут использоваться, включают в себя алгоритмы нейронных сетей, алгоритмы нечеткой логики, генетические алгоритмы и т.п.
Фиг.6 иллюстрирует пример события 624 без перегрузки, которое может быть определено для узла 102 согласно варианту осуществления. Событие 624 без перегрузки, показанное на фиг.6, включает в себя два условия 630a, 630b. Первое условие 630a состоит в том, что узел 102 принял многоадресный запрос 210 и список 214 ответчиков, который ассоциирован с многоадресным запросом 210. Второе условие 630b состоит в том, что узел 102 включен в список 214 ответчиков. Если модуль 426 обнаружения событий определяет, что оба из этих условий 630a, 630b удовлетворены, то модуль 426 обнаружения событий определяет, что произошло событие 624 без перегрузки.
Как указано выше, в ответ на обнаружение события 624 без перегрузки узел 102 может уменьшать свой интервал между пакетами. В некоторых вариантах осуществления, когда происходит событие 624 без перегрузки, которое показано на фиг.6, узел 102 может уменьшать свой интервал между пакетами в соответствии с уравнением 1:
swnd
= swnd
shrink
new
factor
*(1-1/) (1)
swnd
swnd
shrink
shrink
new
factor
factor
В уравнении 1 член  является текущим значением окна на передачу. Окно на передачу является переменной, которая может быть определена для узла 102. Окно на передачу указывает, как долго узел 102 ожидает между отправкой пакетов. Член  является новым значением окна на передачу. Член  является множителем, который может использоваться для управления тем, насколько быстро окно на передачу уменьшается при благоприятных условиях сети 100. В примерном варианте осуществления значение  может быть установлено равным 16.
Фиг.7 иллюстрирует пример события 722 перегрузки, которое может быть определено для узла 102 согласно варианту осуществления. Событие 722 перегрузки, показанное на фиг.7, включает в себя два условия 730a, 730b. Первое условие 730a состоит в том, что узел 102 принял многоадресный запрос 210 и список 214 ответчиков, который ассоциирован с многоадресным запросом 210. Второе условие 730b состоит в том, что узел 102 не включен в список 214 ответчиков, хотя он предоставляет услугу 212. Если модуль 426 обнаружения событий определяет, что оба из этих условий 730a, 730b удовлетворены, то модуль 426 обнаружения событий определяет, что произошло событие 722 перегрузки.
Как указано выше, в ответ на обнаружение события 722 перегрузки, узел 102 может увеличивать свой интервал между пакетами. В некоторых вариантах осуществления, когда происходит событие 722 перегрузки, которое показано на фиг.7, узел 102 может увеличивать свой интервал между пакетами в соответствии с уравнением 2:
swnd
= grow
swnd
/ rlSize / grow
new
min
max
throttle
+  (2)
swnd
grow
swnd
rlSize
grow
grow
swnd
grow
new
min
max
throttle
min
max
throttle
В уравнении 2 член  является новым значением окна на передачу (окно на передачу обсуждалось выше в связи с уравнением 1). Член  является минимальным значением окна для передачи, когда узел 102 увеличивает интервал между пакетами. Член  является максимальным значением окна на передачу. Член является размером списка 214 ответчиков. Член  является множителем, который может использоваться для управления тем, насколько быстро увеличивается интервал между пакетами. В примерном варианте осуществления  может быть установлен равным 0,5 секундам,  может быть установлен равным 8 секундам, а  может быть установлен равным 1.
Фиг.8 иллюстрирует еще один пример события 822 перегрузки, которое может быть определено для узла 102 согласно варианту осуществления. Событие 822 перегрузки, показанное на фиг.8, включает в себя одиночное условие 830. Это условие 830 состоит в том, что узел 102 отправляет многоадресный запрос 210. В некоторых вариантах осуществления, когда происходит событие 822 перегрузки, показанное на фиг.8, узел 102 может увеличивать интервал между пакетами в соответствии с уравнением 3:
swnd
= swnd *
+
shrink
new
factor
(11/) (3)
swnd
swnd
shrink
new
factor
В уравнении 3 член  является окном на передачу (обсужденным выше). Член  является новым значением окна на передачу. Член  является множителем, который может использоваться для управления тем, насколько быстро окно на передачу уменьшается при благоприятных условиях сети 100.
Фиг.9 иллюстрирует еще один пример события 922 перегрузки, которое может быть определено для узла 102 согласно варианту осуществления. Событие 922 перегрузки, показанное на фиг.9, включает в себя три условия 930a, 930b, 930c. Первое условие 930a состоит в том, что узел 102 принял многоадресный запрос 210. Второе условие 930b состоит в том, что узел 102 не принимает ассоциированный список 214 ответчиков. Третье условие 930c состоит в том, что узел 102 отправляет многочисленные ответы 216 на многоадресный запрос 210 (в результате неприема списка 214 ответчиков). Если модуль 426 обнаружения событий определяет, что все из этих условий 930a, 930b, 930c удовлетворены, то модуль 426 обнаружения событий определяет, что произошло событие 922 перегрузки. В некоторых вариантах осуществления, когда происходит событие 922 перегрузки, показанное на фиг.9, узел 102 может увеличивать интервал между пакетами в соответствии с уравнением 4:
swnd
swnd+(swnd
- swnd)/grow
max
factor
=  (4)
swnd
swnd
grow
swnd
grow
max
factor
max
factor
В уравнении 4 член  является окном на передачу. Член  является максимальным значением окна на передачу. Член  является множителем, который может использоваться для управления скоростью роста окна на передачу при неблагоприятных условиях. В примерном варианте осуществления член  может быть установлен равным 8 секундам, а член  может быть установлен равным 16.
Фиг.10 иллюстрирует еще один пример события 1022 перегрузки, которое может быть определено для узла 102 согласно варианту осуществления. Событие 1022 перегрузки, показанное на фиг.10, включает в себя одиночное условие 1030. Это условие 1030 состоит в том, что узел 102 принимает многоадресный запрос 210 во время задержки запроса на передачу. Как обсуждено выше, узел 102 может ожидать некоторое количество времени после отправки одного пакета до того, как он отправляет другой пакет. Это может делаться для цели уменьшения объема трафика по сети 100, в силу этого - снижения перегрузки сети 100. Термин «задержка запроса на передачу» относится к периоду времени после того, как узел 102 определяет, что ему необходимо отправить пакет, но до того, как пакет фактически отправлен вследствие задержки, привнесенной окном на передачу. В некоторых вариантах осуществления, когда происходит событие 1022 перегрузки, показанное на фиг.10, узел 102 может увеличивать интервал между пакетами в соответствии с уравнением 5:
timeSendMcast =
swnd + swnd
+mretries
(5)
jitter
()/(1)
timeSendMcast
swnd
swnd
mretries
jitter
В уравнении 5 член  является продолжительностью времени, которое узел 102 ожидает до тех пор, пока он не отправляет многоадресный пакет. Эта задержка предназначена для побуждения всех узлов 102 рассрочивать свои запросы, чтобы предотвращать пиковые нагрузки, обуславливающие потерю пакетов. Член  является окном на передачу (обсужденным выше). Член  является случайным числом (например, между 0 и 100), которое привносит изменчивость в отправку пакетов, чтобы избегать столкновений. Член  является количеством раз, которое узел 102 принимает многоадресный запрос, в то время как он сам был ожидающим отправки такового. Количество используется в уравнении для предотвращения информационного голода, означающего неспособность отправлять какие бы то ни было пакеты.
Фиг.11 иллюстрирует еще один пример события 1122 перегрузки, которое может быть определено для узла 102 согласно варианту осуществления. Событие 1122 перегрузки, показанное на фиг.11, включает в себя одиночное условие 1130. Это условие 1130 состоит в том, что узел 102 принимает одноадресный ответ 216 во время задержки запроса на передачу, как описанная выше. В некоторых вариантах осуществления, когда происходит событие 1122 перегрузки, показанное на фиг.11, узел 102 может увеличивать интервал между пакетами в соответствии с уравнением 6:
timeSendUcast
rand(swnd/2)
=(6)
timeSendUcast
swnd
rand
swnd/2
swnd/2
В уравнении 6 член является продолжительностью времени, которое узел 102 ожидает до тех пор, пока он не отправляет одноадресный пакет. Эта задержка предназначена для побуждения всех ответчиков рассрочивать свои запросы, чтобы предотвращать пиковые нагрузки, обуславливающие потерю пакетов. Член  является окном на передачу (обсужденным выше). Член () является случайным числом между 0 и .
Как указано выше, узел 102 в пределах одноранговой сети 100 может быть встроенной системой. Фиг.12 - структурная схема компонентов аппаратных средств, которые могут использоваться во встроенной системе 1202, которая сконфигурирована согласно варианту осуществления. Центральный процессор (ЦП, CPU) 1208 или процессор может быть предусмотрен для управления работой встроенной системы 1202, включающей в себя другие ее компоненты, которые присоединены к ЦП 1208 через шину 1210. ЦП 1208 может быть воплощен в качестве микропроцессора, микроконтроллера, цифрового сигнального процессора или другого устройства, известного в данной области техники. ЦП 1208 выполняет логические и арифметические операции на основании управляющей программы, хранимой в памяти. В определенных вариантах осуществления память 1214 может быть внутриплатной памятью, заключенной ЦП 1208. Например, микроконтроллеры часто включают в себя определенный объем внутриплатной памяти.
Встроенная система 1202 также может включать в себя сетевой интерфейс 1212. Сетевой интерфейс 1212 предоставляет встроенной системе 1202 возможность присоединяться к сети, которая может быть пейджерной сетью, сотовой сетью, сетью глобальной связи, сетью Интернет, компьютерной сетью, телефонной сетью и т.п. Сетевой интерфейс 1212 работает согласно стандартным протоколам для применимой сети.
Встроенная система 1202 также может включать в себя память 1214. Память 1214 может включать в себя оперативное запоминающее устройство (ОЗУ) для сохранения временных данных. В качестве альтернативы или в дополнение, память 1214 может включать в себя постоянное запоминающее устройство (ПЗУ) для хранения более постоянных данных, таких как фиксированный код и конфигурационные данные. Память 1214 также может быть воплощена в качестве магнитного устройства хранения данных, такого как накопитель на магнитных дисках. Память 1214 может быть любым типом электронного устройства, которое способно к хранению электронной информации.
Встроенная система 1202 также может включать в себя один или более портов 1216 связи, которые содействуют связи с другими устройствами. Встроенная система 1202 также может включать в себя устройства 1218 ввода/вывода, такие как клавиатура, мышь, джойстик, сенсорный экран, монитор, динамики, принтер и т.п.
Конечно, фиг.12 иллюстрирует только одну из возможных конфигураций встроенной системы 1202. Могут использоваться различные другие архитектуры и компоненты.
Настоящие системы и способы могут использоваться в нескольких контекстах. Фиг.13 иллюстрирует один из вариантов осуществления системы, в которой могут быть реализованы настоящие системы и способы. Фиг.13 - структурная схема, которая иллюстрирует один из вариантов осуществления системы 1300 освещения, которая включает в себя систему 1308 контроллера освещения. Система 1300 освещения по фиг.13 может содержаться в различных комнатах в доме. Как проиллюстрировано, система 1300 включает в себя комнату A 1302, комнату B 1304 и комнату C 1306. Хотя три комнаты показаны на фиг.13, система 1300 может быть реализована в любом количестве и многообразии комнат в пределах дома, жилого помещения, здания или другой среды.
Система 1308 контроллера освещения может контролировать и управлять дополнительными встроенными системами и компонентами в пределах системы 1300. В одном из вариантов осуществления комната A 1302 и комната B 1304, каждая, включает в себя коммутационный компонент 1314, 1318. Коммутационные компоненты 1314, 1318 также могут включать в себя вспомогательную встроенную систему 1316, 1320. Вспомогательные встроенные системы 1316, 1320 могут принимать команды из системы 1308 контроллера освещения. Вспомогательные встроенные системы 1316, 1320 затем могут выполнять эти команды. Команды могут включать в себя включение питания или выключение питания различных компонентов 1310, 1312, 1322 и 1324 освещения. Команды также могут включать в себя затемнение яркости или повышение яркости различных компонентов 1310, 1312, 1322 и 1324 освещения. Команды дополнительно могут включать в себя компоновку яркости компонентов 1310, 1312, 1322 и 1324 освещения в различные картины. Вспомогательные встроенные системы 1316, 1320 содействуют системе 1308 контроллера освещения для контроля и управления каждым компонентом 1310, 1312, 1322 и 1324 освещения, расположенным в комнате A 1302 и комнате B 1304.
Система 1308 контроллера освещения также могла бы выдавать команды непосредственно на компонент 1326 освещения, который включает в себя вспомогательную встроенную систему 1328 в изображенной комнате C 1306. Система 1308 контроллера освещения может выдавать команды вспомогательной встроенной системе 1328 для выключения питания или включения питания отдельного компонента 1326 освещения. Подобным образом, команды, принятые из системы 1308 контроллера освещения, могут включать в себя затемнение яркости или повышение яркости отдельного компонента 1326 освещения.
Система 1308 контроллера освещения также может контролировать и выдавать команды непосредственно на отдельные компоненты 1330 и 1332 освещения в пределах системы 1300. Эти команды могут включать в себя такие же команды, как описанные ранее.
Фиг.14 - дополнительный вариант осуществления системы, в которой могут быть реализованы представленные системы и способы по настоящему изобретению. Фиг.14 - структурная схема, иллюстрирующая систему 1400 безопасности. Система 1400 безопасности, в изображенном варианте осуществления, реализована в комнате A 1402, комнате B 1404 и комнате C 1406. Эти комнаты могут быть в пределах дома или другой замкнутой среды. Система 1400 также может быть реализована в открытой среде, где комнаты A, B и C, 1402, 1404 и 1406 соответственно представляют территории или границы.
Система 1400 включает в себя систему 1408 контроллера безопасности. Система 1408 контроллера безопасности контролирует и принимает информацию с различных компонентов в пределах системы 1400. Например, датчик 1414, 1418 движения может включать в себя вспомогательную встроенную систему 1416. Датчики 1414, 1418 движения могут контролировать ближайшее пространство на движение и предупреждать систему 1408 контроллера безопасности, когда движение обнаружено с помощью вспомогательной встроенной системы 1416, 1420. Система 1408 контроллера безопасности также может выдавать команды на различные компоненты в пределах системы 1400. Например, система 1408 контроллера безопасности может выдавать команды во вспомогательные встроенные системы 1416, 1420 для включения питания или выключения питания датчика 1410, 1422 открывания окна и датчика 1412, 1424 открывания двери. В одном из вариантов осуществления вспомогательные встроенные системы 1416, 1420 уведомляют систему 1408 контроллера безопасности, когда датчики 1410, 1422 открывания окон обнаруживают перемещение окна. Подобным образом, вспомогательные встроенные системы 1416, 1420 уведомляют систему 1408 контроллера безопасности, когда датчики 1412, 1424 открывания дверей обнаруживают перемещение двери. Вспомогательные встроенные системы 1416, 1420 могут выдавать команды на датчики 1414, 1418 движения для приведения в действие СИД (не показан), расположенный в датчиках 1414, 1418 движения.
Система 1408 контроллера безопасности также может контролировать и выдавать команды непосредственно на отдельные компоненты в пределах системы 1400. Например, система 1408 контроллера безопасности может контролировать и выдавать команды для включения питания или выключения питания на датчик 1430 движения или датчик 1432 открывания окна. Система 1408 контроллера безопасности также может выдавать команду датчику 1430 движения и датчику 1432 открывания окна для приведения в действие ЖКИ (не показан) или уведомлений звукового сигнала тревоги в пределах датчиков 1430 и 1432.
Каждый отдельный компонент, составляющий систему 1400, также может включать в себя вспомогательную встроенную систему. Например, фиг.14 иллюстрирует датчик 1426 открывания дверей, включающий в себя вспомогательную встроенную систему 1428. Система 1408 контроллера безопасности может контролировать и выдавать команды во вспомогательную встроенную систему 1428, до некоторой степени подобно тому, как описано ранее.
Фиг.15 - структурная схема, иллюстрирующая один из вариантов осуществления системы 1500 управления домом. Система 1500 управления домом включает в себя домашний контроллер 1508, который содействует контролю различных систем, таких как система 1300 освещения, система 1400 безопасности и тому подобные. Система 200 управления домом предоставляет пользователю возможность управлять различными компонентами и системами через одну или более встроенных систем. В одном из вариантов осуществления система 1508 домашнего контроллера контролирует и выдает информацию таким же образом, как описано ранее относительно фиг.13 и 14. В изображенном варианте осуществления домашний контроллер 1508 выдает команды на отопительный компонент 1524 через вспомогательную встроенную систему 1520. Отопительный компонент 1524 может включать в себя отопительный котел или другие отопительные устройства, типично обнаруживаемые в местах постоянного проживания или офисах. Система 1508 домашнего контроллера может выдавать команды для включения питания или выключения питания отопительного компонента 1524 через вспомогательную встроенную систему 1520.
Подобным образом, домашний контроллер 1508 может контролировать и выдавать команды непосредственно на компонент в пределах системы 1500 управления домом, такой как компонент 1530 охлаждения. Компонент 1530 охлаждения может включать в себя воздушный кондиционер или другие устройства охлаждения, типично обнаруживаемые в местах постоянного проживания или офисах. Центральный домашний контроллер 1508 может выдавать команду компоненту 1530 охлаждения для включения питания или выключения питания в зависимости от показаний температуры, собранных центральной встроенной системой 1508. Система 1500 управления домом функционирует до некоторой степени подобно тому, как описано ранее относительно фиг.13 и 14.
Информация и сигналы могут быть представлены с использованием любой из многообразия разных технологий и методик. Например, данные, инструкции, команды, информация, сигналы, биты, символы и символы псевдошумовой последовательности, которые могут упоминаться по всему вышеприведенному описанию, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами или любым их сочетанием.
Различные иллюстративные логические блоки, модули, схемы и этапы алгоритмов, описанные в связи с вариантами осуществления, раскрытыми в материалах настоящей заявки, могут быть реализованы в виде электронных аппаратных средств, компьютерного программного обеспечения или сочетаний обоих. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны выше, как правило, в показателях их функциональных возможностей. Реализованы ли такие функциональные возможности в виде аппаратных средств или программного обеспечения, зависит от конкретного применения и проектных ограничений, накладываемых на всю систему. Специалисты могут реализовать описанные функциональные возможности отличающимися способами для каждого конкретного применения, но такие реализационные решения не должны интерпретироваться в качестве служащих причиной выхода за рамки объема настоящего изобретения.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с вариантами осуществления, раскрытыми в материалах настоящей заявки, могут быть реализованы или выполнены с помощью процессора общего назначения, цифрового сигнального процессора (ЦСП), специализированной интегральной схемы (ASIC), сигнального устройства программируемой пользователем вентильной матрицы (FPGA) или другого программируемого логического устройства, дискретной вентильной или транзисторной логики, дискретных компонентов аппаратных средств или любого их сочетания, предназначенного для выполнения функций, описанных в материалах настоящей заявки. Процессором общего применения может быть микропроцессор, но в альтернативном варианте процессор может быть любым традиционным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также может быть реализован в виде комбинации вычислительных устройств, например, сочетания ЦСП и микропроцессора, множества микропроцессоров, одного или более микропроцессоров в соединении с ЦСП-ядром, или любой другой такой конфигурации.
Этапы способа или алгоритма, описанные в связи с вариантами осуществления, раскрытыми в материалах настоящей заявки, могут быть воплощены непосредственно в аппаратных средствах, в программном модуле, выполняемом процессором, или в сочетании этих двух. Программно-реализованный модуль может находиться в памяти ОЗУ, флэш-памяти, памяти ПЗУ (ROM), памяти СППЗУ (EPROM), памяти ЭСППЗУ (EEPROM), регистрах, на жестком диске, съемном диске, CD-ROM (ПЗУ на компакт-диске) или любой другой разновидности запоминающего носителя, известной в данной области техники. Примерный запоминающий носитель присоединен к процессору из условия, чтобы процессор мог считывать информацию с и записывать информацию на запоминающий носитель. В альтернативном варианте запоминающий носитель может быть интегральным по отношению к процессору. Процессор и запоминающий носитель могут находиться в ASIC. ASIC может находиться в пользовательском терминале. В альтернативном варианте процессор и запоминающий носитель могут находиться, в виде дискретных компонентов, в пользовательском терминале.
Способы, раскрытые в материалах настоящей заявки, содержат один или более этапов или действий для выполнения описанного способа. Этапы и/или действия способа могут взаимно обмениваться один с другим, не выходя за рамки объема настоящего изобретения. Другими словами, пока определенный порядок этапов или действий не требуется для надлежащей работы варианта осуществления, порядок и/или использование определенных этапов и/или действий могут модифицироваться, не выходя за рамки объема настоящего изобретения.
Несмотря на то, что были проиллюстрированы и описаны отдельные варианты осуществления и применения настоящего изобретения, должно быть понятно, что изобретение не ограничено точной конфигурацией и компонентами, раскрытыми в материалах настоящей заявки. Различные модификации, изменения и варианты, которые будут очевидны специалистам в данной области техники, могут производиться в компоновке, работе и деталях способов и систем по настоящему изобретению, раскрытому в материалах настоящей заявки, не выходя за рамки сущности и объема изобретения.