РАСШИРЕНИЕ ВОЗМОЖНОСТЕЙ УНИВЕРСАЛЬНОЙ АВТОМАТИЧЕСКОЙ НАСТРОЙКИ СЕТЕВЫХ УСТРОЙСТВ В СРЕДЕ С ОГРАНИЧЕННОЙ ЭНЕРГИЕЙ
EXPANDING PERFORMANCES OF UNIVERSAL AUTOMATIC TUNING OF NETWORK DEVICES IN MEDIUM WITH LIMITED POWER

Область техники
Настоящее изобретение в целом относится к системам связи, а более конкретно - к расширению возможностей универсальной автоматической настройки сетевых устройств в среде с ограниченной энергией.
Уровень техники
Универсальная автоматическая настройка сетевых устройств UPnP™ (Universal plug and play - универсальная технология "включай и пользуйся") определяет архитектуру для обеспечения возможности соединения "интеллектуальных" бытовых устройств, беспроводных устройств и персональных компьютеров. Она предназначена для предоставления удобной в работе и гибкой связи на основе стандартов, например, в сетях ad hoc или неуправляемых сетях - в доме, в рамках мелкого бизнеса, в общественных местах или для связи с Интернетом. Технология UPnP обеспечивает распределенную открытую сетевую архитектуру, в которой используются технологии TCP/IP и сетевые технологии, что обеспечивает непосредственный доступ к ближайшей сети, а также управление и перенос данных между сетевыми устройствами.
Архитектура устройств UPnP (UDA, UPnP Device Architecture) предназначена для поддержки "невидимой" сети "нулевой" конфигурации и автоматического поиска широкого спектра устройств широкого диапазона поставщиков. Это означает, что устройство может динамически подсоединиться к сети, получить IP-адрес, передать свои характеристики и узнать о присутствии и характеристиках других устройств.
Интерфейс прикладного программирования (API) сокетов Беркли включает библиотеку для разработки приложений, написанных на языке программирования Си, для доступа к компьютерной сети. Сокеты Беркли, известные также как API сокетов BSD (Berkeley software distribution, дистрибутив программного обеспечения университета Беркли) берут свое начало от системы 4.2BSD, в качестве API. Интерфейс API сокетов BSD де-факто образует стандартную абстракцию для сетевых сокетов. Большинство других языков программирования использует интерфейс, аналогичный интерфейсу API на языке Си.
Существующие стандарты (например, протоколы UPnP) для "цифрового дома" (Digital Home) не являются дружественными к устройствам с ограниченными возможностями, которые характеризуются ограниченным сроком службы батареи, а также ограниченной шириной полосы канала (например, BLUETOOTH). Протоколы UPnP в процессе проектирования не включали требований к экономии энергии, что не позволяет мобильным устройствам с ограниченными возможностями использовать энергосберегающие способы для продления срока службы батареи. Протоколы UPnP позволяют устройству быть активным/присутствовать в сети, и в этом случае устройство должно в течение всего времени иметь включенную (то есть получающую питание) подсистему связи, в противном случае оно будет отключено от сети. Очевидно, что такое ограничение неприемлемо для устройств с ограниченными возможностями, которые стремятся сэкономить энергию, разумно регулируя потребление энергии подсистемами связи.
Терминалы могут быть связаны с сетью с использованием проводной или беспроводной технологии (включая, например, BLUETOOTH). Некоторые из терминалов всегда связаны с источником питания (например, настольные компьютеры, телевизоры, персональные видеомагнитофоны и т.д.), некоторые имеют встроенный аккумулятор (например, мобильные телефоны, КПК и т.д.), а некоторые способны совмещать обе характеристики (например, ноутбуки). Для увеличения срока службы аккумулятора портативных электронных устройств (с питанием от аккумулятора) весьма распространенный подход состоит в том, чтобы перевести подсистему связи в режим низкого потребления энергии, например режим экономии энергии для беспроводной локальной сети (WLAN) или режим "sniff' и "hold" для BLUETOOTH. Когда подсистема связи (например, терминал) находится в режиме экономии энергии, способность осуществлять передачу и прием сообщений по сети для этой подсистемы резко падает, делая способность этой подсистемы к реагированию очень низкой или практически нулевой. Для компенсации этого недостатка точка доступа сети обычно кэширует сообщения до тех пор, пока "спящее" устройство не проснется.
Для другого расширения возможностей этой энергосберегающей схемы к точкам доступа можно добавить функции взаимодействия (interworking) так, чтобы они могли проводить интеллектуальную фильтрацию сообщений, кэшированных в буфере. Одна из функций взаимодействия, которая может быть реализована в точках доступа в сетях UPnP, должна осуществлять фильтрацию трафика группового вещания в рамках протокола пользовательских дейтаграмм (UDP) для устройств, которые находятся в режиме экономии энергии. Кроме того, функция взаимодействия обнаруживает, когда трафик TCP предназначен для терминалов, которые находятся, например, в спящем режиме, и может немедленно запустить процедуру пробуждения для соответствующего устройства. Эта известная процедура описана, например, в заявке на патент Финляндии №20040179 "Optimization of Data Transfer between Networked Devices", 6 февраля 2004 г.
Кроме того, спящий режим (или аналогично промежуточный режим, то есть режим, менее активный, чем нормальный, но более активный, чем спящий режим) обеспечивает высокий уровень экономии энергии в предположении, что терминал (например, мобильное устройство) может быть разбужен за приемлемое время. Даже в случае режима ожидания (standby mode), в котором осуществляется сбережение энергии на уровне канала, когда связь может быть активизирована входящим графиком, для пробуждения требуется слишком много времени. Спящий режим, по определению, является более медленным (медленнее, чем, например, менее жесткие режимы), то есть он требует большего времени для пробуждения устройства и поэтому возникают большие задержки в рамках протокола TCP и повторных передач. Таким образом, когда приемное устройство находится в режиме ожидания, для получения от него ответа требуется большее время. Это время может (или даже обязательно будет) превышать время повторной передачи в рамках протокола TCP, или даже может произойти тайм-аут сокета. Тайм-аут сокета является частью реализации сокета и задает время, которое можно использовать для установления связи перед тем, как отказаться от этой попытки. Этот механизм тайм-аута является отдельным от определенного непосредственно в протоколе TCP. Это приводит к неполному использованию ресурсов сети, весьма часто вызывая ложные ошибки, видимые пользователям. Это, естественно, отрицательно воздействует на пользователя.
Сущность изобретения
Согласно первому аспекту настоящего изобретения предложен способ связи терминала с дополнительным терминалом посредством сети в среде с ограниченной энергией с использованием приложения связи, доступного в терминале. Способ включает прием терминалом уведомления о режиме экономии энергии дополнительным терминалом; подачу в сеть протокольным стеком терминала сигнала связи, предназначенного для указанного дополнительного терминала, передачу сигнала связи согласно заранее выбранной процедуре; и, после того, как указанный дополнительный терминал пробудился, прием терминалом подтверждения приема сигнала связи дополнительным терминалом, причем перед тем, как завершить связь на основе заранее заданного критерия, реализуемого в приложении связи в терминале, терминал ожидает подтверждения по меньшей мере в течение временного интервала, необходимого для того, чтобы дополнительный терминал успел пробудиться.
Кроме того, согласно первому аспекту изобретения режим экономии энергии может быть спящим режимом.
Кроме того, согласно первому аспекту настоящего изобретения приложение связи может быть приложением универсальной автоматической настройки, протокольный стек может быть стеком TCP/IP, а между терминалом и дополнительным терминалом до приема терминалом уведомления может не быть установлено никакого соединения, а перед шагом подачи терминалом сигнала связи в сеть способ может включать следующие шаги: создание приложением универсальной автоматической настройки нового сокета в стеке TCP/IP терминала для связи с дополнительным терминалом; установку приложением универсальной автоматической настройки новой опции сокета SO-CONTIMEO, задающей в стеке TCP/IP временной предел для установления связи с дополнительным терминалом; и выдачу инструкции в стек TCP/IP приложения универсальной автоматической настройки для установления связи с дополнительным терминалом. Кроме того, в ответ на выдачу инструкции в сеть может подаваться сигнал связи, и этот сигнал связи может быть сигналом установления соединения, инициирующим установление соединения, подтверждение может быть подтверждением успешного установления соединения между терминалом и дополнительным терминалом, а временной интервал может быть задан временным пределом, задаваемым новой опцией сокета SO-CONTIMEO.
Кроме того, согласно первому аспекту настоящего изобретения приложение связи может быть приложением универсальной автоматической настройки, протокольный стек может быть стеком TCP/IP, а до приема терминалом уведомления между терминалом и дополнительным терминалом может не быть установлено никакого соединения, а перед шагом подачи терминалом сигнала связи в сеть способ может включать создание приложением универсальной автоматической настройки нового сокета в стеке TCP/IP терминала для связи с дополнительным терминалом; выдачу приложением универсальной автоматической настройки инструкции в стек TCP/IP для установления соединения с дополнительным терминалом. Кроме того, сигнал связи может быть сигналом установления соединения, инициирующим установление соединения, а подтверждение может быть подтверждением успешного установления соединения между терминалом и дополнительным терминалом, причем шаг подачи в сеть терминалом сигнала связи может включать подачу в сеть терминалом сигнала связи в ответ на выдачу инструкции о повторной передаче сигнала связи согласно заранее заданной процедуре; прием приложением универсальной автоматической настройки ошибки тайм-аута; выдачу приложением универсальной автоматической настройки дополнительной инструкции в стек TCP/IP для установления соединения с дополнительным терминалом путем повторной передачи сигнала связи согласно заранее заданной процедуре спустя заранее заданный временной период, который по меньшей мере равен временному интервалу, необходимому для того, чтобы указанный дополнительный терминал пробудился; и, в ответ на выдачу дополнительной инструкции, подачу терминалом в сеть сигнала связи путем повторной передачи сигнала связи согласно заранее заданной процедуре.
Кроме того, согласно первому аспекту настоящего изобретения приложение связи может быть приложением универсальной автоматической настройки, протокольный стек может быть стеком TCP/IP, а до приема терминалом уведомления между терминалом и дополнительным терминалом может не быть установлено никакого соединения, сокет может быть уже создан приложением универсальной автоматической настройки в стеке TCP/LP терминала для связи с дополнительным терминалом, а перед шагом подачи терминалом сигнала связи в сеть способ может включать следующие шаги: установку приложением универсальной автоматической настройки опции сокета SO-SNDTIMEO, задающей в стеке TCP/IP временной предел для посылки сигнала терминалом, и опции сокета SO-RCVTIMEO, задающей в стеке TCP/IP временной предел для приема ответных данных из указанного дополнительного терминала; выдачу приложением универсальной автоматической настройки инструкции в стек TCP/IP для посылки сигнала связи в указанный дополнительный терминал. Кроме того, сигнал связи может быть направлен в сеть в ответ на выдачу указанной инструкции, сигнал связи может быть сигналом передачи данных, посылаемых в указанный дополнительный терминал, подтверждение может быть подтверждением успешного приема сигнала передачи данных указанным дополнительным терминалом, а временной интервал может быть задан временным пределом, заданным опцией сокета SO-SNDTIMEO. Кроме того, первый аспект настоящего изобретения может дополнительно включать посылку дополнительного сигнала передачи данных указанным дополнительным терминалом в терминал и прием указанного дополнительного сигнала передачи данных терминалом, если временной предел, заданный опцией сокета SO-RCVTIMEO для данных, принимаемых от дополнительного терминала, не истек.
Кроме того, согласно первому аспекту настоящего изобретения операции, выполненные на или в протокольном стеке, могут быть реализованы с помощью интерфейса прикладного программирования (API, application programming interface) сокетов Беркли (BSD, Berkeley software distribution).
Кроме того, согласно первому аспекту настоящего изобретения терминал или дополнительный терминал может быть мобильным терминалом, беспроводным устройством, портативным устройством, устройством мобильной связи или мобильным телефоном.
Согласно второму аспекту настоящего изобретения предложен компьютерный программный продукт, который включает структуру для хранения данных, читаемую компьютером и содержащую программные коды, предназначенные для исполнения компьютерным процессором, причем этот компьютерный программный код отличается тем, что включает инструкции для выполнения шагов по первому аспекту настоящего изобретения, причем эти инструкции выполняются любым компонентом или комбинацией компонентов терминала, дополнительного терминала или сети.
Согласно третьему аспекту настоящего изобретения предложен терминал, способный осуществлять связь с дополнительным терминалом через сеть в среде с ограниченной энергией, причем этот терминал содержит протокольный стек, реагирующий на уведомление о режиме экономии энергии в дополнительном терминале, для посылки в сеть сигнала связи, предназначенного для дополнительного терминала, путем передачи сигнала связи согласно заранее заданной процедуре; приложение связи, предназначенное для подачи в протокольный стек инструкции согласно заранее заданному критерию, задающему период ожидания, для приема подтверждения получения сигнала связи дополнительным терминалом после того, как этот дополнительный терминал пробудится, причем этот период ожидания имеет по меньшей мере такую же длительность, как временной интервал, необходимый для пробуждения дополнительного терминала.
Кроме того, согласно третьему аспекту настоящего изобретения режим экономии энергии может быть спящим режимом.
Кроме того, согласно третьему аспекту настоящего изобретения приложение связи может быть приложением универсальной автоматической настройки, протокольный стек может быть стеком TCP/IP, а перед приемом терминалом уведомления между терминалом и дополнительным терминалом не установлено соединение, причем перед посылкой в сеть терминалом сигнала связи приложение универсальной автоматической настройки может обеспечить: создание нового сокета в стеке TCP/IP для связи с дополнительным терминалом; установку новой опции сокета SO-CONTIMEO, задающей для стека TCP/IP временной предел для установления соединения с дополнительным терминалом; и выдачу инструкции в стек TCP/IP для установления соединения с дополнительным терминалом. Кроме того, сигнал связи может быть послан в сеть в ответ на выдачу инструкции, сигнал связи может быть сигналом установления соединения, который инициирует установление соединения, подтверждение может быть подтверждением успешного установления соединения между терминалом и дополнительным терминалом, а временной интервал может определяться временным пределом, задаваемым новой опцией сокета SO-CONTIMEO.
Кроме того, согласно третьему аспекту настоящего изобретения приложение связи может быть приложением универсальной автоматической настройки, протокольный стек может быть стеком TCP/IP, и до приема терминалом уведомления между терминалом и дополнительным терминалом не установлено никакого соединения, а перед шагом подачи терминалом сигнала связи в сеть приложение универсальной автоматической настройки может обеспечить создание нового сокета в стеке TCP/IP для связи с дополнительным терминалом; и выдачу инструкции в стек TCP/IP для установления соединения с дополнительным терминалом. Кроме того, сигнал связи может быть сигналом установления соединения, который инициирует установление соединения, а подтверждение может быть подтверждением успешного установления соединения между терминалом и дополнительным терминалом, причем подача в сеть терминалом сигнала связи может включать: подачу в сеть терминалом сигнала связи в ответ на подачу инструкции путем повторной передачи сигнала связи согласно заранее заданной процедуре; прием ошибки тайм-аута приложением универсальной автоматической настройки выдачу дополнительной инструкции в стек TCP/IP приложением универсальной автоматической настройки для установления соединения с дополнительным терминалом путем повторной передачи сигнала связи согласно заранее заданной процедуре спустя заранее заданный временной период, который по меньшей мере равен временному интервалу, необходимому для пробуждения дополнительного терминала; и, в ответ на выдачу дополнительной инструкции, подачу в сеть терминалом сигнала связи путем повторной передачи сигнала связи согласно заранее заданной процедуре.
Кроме того, согласно третьему аспекту настоящего изобретения приложение связи может быть приложением универсальной автоматической настройки, протокольный стек может быть стеком TCP/IP, а до приема терминалом уведомления между терминалом и дополнительным терминалом соединение уже установлено, и в стеке TCP/IP терминала приложением универсальной автоматической настройки уже создан сокет для связи с дополнительным терминалом, причем перед подачей в сеть терминалом сигнала связи приложение универсальной автоматической настройки может обеспечить: установку в стеке TCP/IP опции сокета SO-SNDTIMEO, задающей временной предел для посылки сигнала связи терминалом, и опции сокета SO-RCVTIMEO, задающей временной предел для приема данных от дополнительного терминала; и выдачу в стек TCP/IP инструкции для посылки сигнала в дополнительный терминал. Кроме того, сигнал связи может подаваться в сеть в ответ на выдачу инструкции, сигнал связи может быть сигналом передачи данных, содержащим данные, посланные дополнительному терминалу, подтверждение может быть подтверждением успешного приема сигнала передачи данных дополнительным терминалом, а временной интервал может определяться временным пределом, заданным опцией сокета SO-SNDTMEO. Кроме того, после приема сигнала передачи данных из терминала дополнительный терминал может послать в терминал дополнительный сигнал передачи данных, и этот дополнительный сигнал передачи данных может быть принят терминалом, если временной предел для приема данных от дополнительного терминала, заданный опцией сокета SO-SNDTIMEO, не истек.
Кроме того, согласно третьему аспекту настоящего изобретения операции, выполненные на или в протокольном стеке, могут быть реализованы с помощью интерфейса прикладного программирования сокетов BSD.
Согласно четвертому аспекту настоящего изобретения предложена система связи, обеспечивающая связь в среде с ограниченной энергией и содержащая дополнительный терминал, способный работать в режиме экономии энергии и реагирующий на сигнал пробуждения; терминал, реагирующий на уведомление о режиме экономии энергии в дополнительном терминале, для подачи сигнала связи, предназначенного для дополнительного терминала, путем передачи сигнала связи согласно заранее заданной процедуре, обеспечения заранее заданного критерия, задающего период ожидания для приема подтверждения о получении сигнала связи дополнительным терминалом после того, как дополнительный терминал пробудился, причем период ожидания равен по меньшей мере временному интервалу, необходимому для того, чтобы дополнительный терминал пробудился; сеть для подачи уведомления, обеспечивающего запрос на пробуждение дополнительного терминала в ответ на сигнал связи, для обеспечения посылки сигналов между терминалом и дополнительным терминалом, причем приложение универсальной автоматической настройки доступно в терминале и дополнительном терминале.
Согласно пятому аспекту настоящего изобретения предложен способ осуществления связи между терминалом и дополнительным терминалом посредством сети в среде с ограниченной энергией с использованием приложения связи, доступного в терминале и дополнительном терминале, включающий: прием терминалом уведомления о режиме экономии энергии в дополнительном терминале; подачу в сеть протокольным стеком терминала сигнала связи, предназначенного для дополнительного терминала, передачу сигнала связи согласно заранее заданной процедуре; обнаружение сигнала связи и инициирование процесса пробуждения дополнительного терминала в ответ на сигнал связи; и, после того, как дополнительный терминал пробудился, прием сигнала связи дополнительным терминалом и посылку в терминал подтверждения о получении сигнала связи дополнительным терминалом, причем перед завершением связи терминал ожидает подтверждения по меньшей мере в течение временного интервала, необходимого для того, чтобы дополнительный терминал пробудился, на основе заранее заданного критерия, обеспеченного приложением связи в терминале.
Настоящее изобретение позволяет снизить количество ложных ошибок приложения в результате тайм-аута сокета. Для приложений, "не знающих" о задержках, обусловленных режимом экономии энергии, это изобретение поможет пользователям не ощущать таких задержек.
Кроме того, настоящее изобретение позволяет более эффективно использовать сокеты, так как только один сокет используется в сеансе связи, поскольку нет необходимости открывать новый сокет из-за ошибки тайм-аута.
Краткое описание чертежей
Для лучшего понимания сущности и целей настоящего изобретения ниже дано его подробное описание со ссылками на сопровождающие чертежи, где:
на фиг.1 показана блок-схема, демонстрирующая среду системы связи, подходящую для реализации настоящего изобретения;
на фиг.2 показана блок-схема системы связи, более детально иллюстрирующая элементы системы, необходимые для реализации настоящего изобретения;
на фиг.3а и 3b показана последовательность операций и схема, соответственно описывающие один из вариантов выполнения настоящего изобретения, когда между терминалом и дополнительным терминалом предварительно не было установлено соединение, а дополнительный терминал находится в спящем режиме;
на фиг.4а и 4b показана последовательность операций и схема, соответственно, описывающие другой вариант выполнения настоящего изобретения, когда между терминалом и дополнительным терминалом предварительно не было установлено соединение, а дополнительный терминал находится в спящем режиме; и
на фиг.5а и 5b показана последовательность операций и схема, соответственно описывающие еще один вариант выполнения настоящего изобретения, когда между терминалом и дополнительным терминалом предварительно было установлено соединение, а дополнительный терминал переходит в спящий режим.
Варианты осуществления настоящего изобретения
Настоящее изобретение предлагает новую методологию для расширения возможностей технологии универсальной автоматической настройки сетевых устройст (UPnP) в среде с ограниченной энергией, что облегчает связь между двумя терминалами с возможностями приложений UPnP, когда один из терминалов находится в спящем режиме. Настоящее изобретение может быть применено (но этим не ограничивается) к мобильным терминалам, беспроводным устройствам, портативным устройствам, устройствам мобильной связи, мобильному телефону и т.д.
В настоящем изобретении описан механизм, посредством которого приложение UPnP динамически выдает инструкции в стек TCP/IP (включающий реализацию сетевого сокета) для настройки его параметров так, чтобы он допускал большие задержки и тайм-ауты (предельные периоды ожидания), вследствие работы в среде UPnP с ограниченной энергией.
Реализация этого изобретения может быть связана, например, с рядом опций сокета BSD, предназначенных для выдачи инструкции согласно заранее заданному критерию в стек TCP/IP терминала (то есть терминала исходящей связи, который пробует установить соединение с дополнительным терминалом), или к использованию указанного приложения UPnP на основе заранее заданного критерия, как подробно описано ниже. Приложение UPnP терминала пробует связаться (например, путем установления нового сеанса связи между терминалами или передачи данных, после того, как дополнительный терминал вошел в спящий режим в течение сеанса связи) с другим приложением UPnP дополнительного терминала, который находится в режиме экономии энергии (например, в спящем режиме), и согласно настоящему изобретению должен подстроить вышеуказанные параметры так, чтобы дополнительный терминал был в состоянии пробудиться в течение временного интервала, который короче, чем продолжительность тайм-аута.
На фиг.1 показан один из примеров блок-схемы, демонстрирующей среду системы связи, пригодную для реализации настоящего изобретения. Терминал А 10 (называемый в дальнейшем просто терминалом) и терминал В 16 (называемый в дальнейшем дополнительным терминалом) способны осуществлять связь посредством сети 12, имеющей точку 14 доступа (АР, access point) с функцией взаимодействия (interworking) (или аналогичной возможностью), при этом трафик между терминалом А 10 и терминалом В 16 проходит через эту точку доступа. В контексте настоящего описания для примеров, представленных ниже, предполагается, что терминал 16 В способен переходить в режим экономии энергии, а терминал 10 является неким опорным устройством, поскольку все операции сокета происходят именно в этом терминале 10.
На фиг.2 показан пример блок-схемы другой системы связи, где более подробно показаны блоки 10 и 16, пригодные для реализации настоящего изобретения. Терминал 10 содержит приложение А 18 UPnP, которое выдает в стек 22 TCP/IP инструкции согласно заранее заданному критерию, задающему такой период ожидания, который позволяет обеспечить повышенные значения задержки и тайм-аута. Стек 22 TCP/IP реагирует на уведомление из сети 12 о режиме экономии энергии в дополнительном терминале (терминал В 16) и выдает в сеть 12 сигнал связи (более подробно описанный ниже), предназначенный для указанного дополнительного терминала 16, путем повторной передачи указанного сигнала связи согласно заранее заданной процедуре. Интерфейс 20 прикладного программирования (API) сокетов BSD осуществляет операции, выполняемые в стеке 22 TCP/IP или посредством этого стека 22. Терминал В 16 имеет характеристики, подобные характеристикам терминала 10, с аналогичными блоками:
приложение А 24 UPnP, стек В 28 TCP/IP и интерфейс 26 API сокетов BSD.
На фиг.3а и 3b показана последовательность операций и схема, соответственно описывающие один из вариантов выполнения настоящего изобретения, где предварительного соединения между терминалом 10 (терминал А) и дополнительным терминалом 16 (терминал В) не устанавливалось, а дополнительный терминал 16 находится в спящем режиме. Фиг.3b дополняет фиг.3а для более полного и глубокого понимания последовательности операций, изображенной на фиг.3а.
Последовательность операций на фиг.3а представляет лишь один из множества возможных сценариев. В способе согласно настоящему изобретению на первом шаге 30 терминал А 10 принимает уведомление о том, что терминал В 16 находится в спящем режиме (режиме экономии энергии). Информация о характере режима экономии энергии в терминале В 16 (дополнительном терминале) может содержаться, например, в виде указаний в объявлении UPnP терминала В 16 (например, в специфических для режима пониженной мощности заголовках простого служебного протокола обнаружения (SSDP, simple service discovery protocol)) или в документе описания устройства.
На следующем шаге 32 приложение 1 UPnP терминала 10 создает для связи с дополнительным терминалом 16 новый сокет в стеке А 22 TCP/IP с использованием, например, функции socket() (как показано на фиг.3b). На следующем шаге 34 приложение 1 UPnP устанавливает новую опцию сокета SO-CONTIMEO с использованием например, функции setsocketopt() (как показано на фиг.3b), задающую в сокете А 22 TCP/IP временной предел для установления соединения с дополнительным терминалом (терминалом В) 16 (для того, чтобы не дать функции connect(), описанной ниже, возвратить ошибку тайм-аута) согласно заранее заданному критерию. Как правило, согласно настоящему изобретению опцию SO_CONTIMEO устанавливают равной значению, которое немного превышает время, необходимое для пробуждения терминала В 16. На следующем шаге 36 приложение 1 UPnP выдает инструкции стеку А 22 TCP/IP для установки соединения с дополнительным терминалом 16 с использованием, например, функции connect() (как показано на фиг.3b).
На следующем шаге 38 стек F 22 TCP/IP передает (или повторно передает) сигнал связи (обозначенный на фиг.3b как TCP SYN) в сеть 12 (например, в точку 14 доступа) согласно известному алгоритму повторной передачи (например, увеличивая вдвое время между повторными передачами). На следующем шаге 40 сеть 12 (функция взаимодействия) обнаруживает сигнал связи и запускает процесс пробуждения терминала В 16, пытаясь пробудить терминал В 16 с использованием, например, технологии, специфической для уровня канала (или альтернативно, когда терминал В 16 анализирует входящие пакеты, он замечает попытку установления соединения и переходит в активное состояние). На следующем шаге 42 терминал В 16 пробуждается, принимает сигнал связи и посылает в терминал А 10 подтверждение (обозначенное на фиг.3b как TCP SYN, ACK).
На следующем шаге 44 выясняют, получено ли подтверждение до того, как истек временной период, установленный новой опцией сокета SO-CONTIMEO. Если это не так, сеанс связи входит в неопределенное состояние и прерывается на шаге 48. Однако если установлено, что подтверждение получено до того, как истек временной период, установленный новой опцией сокета SO-CONTIMEO, на следующем шаге 46 устанавливают соединение, и приложение 18 UPnP инициирует посылку данных в терминал В 16 (например, путем вызова функции send(), как показано на фиг.3b).
На фиг.4а и 4b показаны последовательность операций и схема соответственно, иллюстрирующие альтернативный вариант выполнения настоящего изобретения (аналогичный представленному на фиг.3а и 3b), где предварительного соединения между терминалом 10 (терминал А) и дополнительным терминалом 16 (терминалом В) не устанавливалось, а дополнительный терминал 16 находится в спящем режиме. Фиг.4b дополняет фиг.4а для более полного и глубокого понимания последовательности операций, изображенной на фиг.4а.
Последовательность операций на фиг.4а представляет лишь один из множества возможных сценариев. В способе согласно настоящему изобретению на первом шаге 50 терминал 10 принимает уведомление о том, что терминал В 16 находится в спящем режиме (режиме экономии энергии). Информация о характере режима экономии энергии в терминале В 16 (дополнительном терминале) может быть представлена тем же способом, который описан при рассмотрении шага 30 на фиг.3а (то есть шаг 50 аналогичен шагу 30 на фиг.3а).
На следующем шаге 52 приложение 1 UPnP терминала 10 создает для связи с дополнительным терминалом 16 новый сокет в стеке А 22 TCP/IP с использованием, например, функции socket() (как показано на фиг.4b). На следующем шаге 54 приложение 1 UPnP выдает инструкцию в стек А 22 TCP/IP для установления соединения с дополнительным терминалом 16 с использованием, например, функции connect() (как показано на фиг.4b). На следующем шаге 56 стек А 22 TCP/IP передает (повторно передает) сигнал связи (обозначенный на фиг.4b как TCP SYN) в сеть 12 (например, в точку 14 доступа) согласно известному алгоритму повторной передачи (например, увеличивая вдвое время между повторными передачами). На следующем шаге 58 сеть 12 (функция взаимодействия) обнаруживает сигнал соединения и запускает процесс пробуждения терминала В 16, пытаясь пробудить терминал В 16 с использованием, например, технологии, специфической для уровня канала (или альтернативно, когда терминал В16 анализирует входящие пакеты, он замечает попытку установления соединения и переходит в активное состояние). Шаги 52, 54, 56 и 58 аналогичны шагам 32, 36, 38 и 40 соответственно, иллюстрируемым на фиг.3а.
На следующем шаге 60 соединение нарушается, и в приложение 18 UPnP посылается сигнал ошибки. Вместо того, чтобы информировать пользователя о разрыве соединения (как имело место в известном техническом решении), согласно заранее заданному критерию после получения одного или большего количества таких сигналов ошибки и после ожидания в течение дополнительного временного интервала (с момента исходной попытки соединения), обычно немного большего, чем время, необходимое для пробуждения терминала В 16, на следующем шаге 62, после того, как терминал В 16 пробудился, приложение 18 UPnP вновь вызывает функцию connect() для установления соединения с терминалом В 16, и стек А 22 TCP/IP вновь посылает сигнал связи (TCP SYN) в сеть 12 (например, в точку 14 доступа).
На следующем шаге 64 проверяют, потерпела ли попытка соединения неудачу. Если это так, то процесс возвращается на шаг 60. Этот циклический процесс может иметь установленный временной предел (например, 30 секунд). Однако если установлено, что соединение успешно, на следующем шаге 66 терминал В 16 пробуждается, принимает сигнал соединения и посылает в терминал 10 подтверждение (обозначенные на фиг.4b как TCP SYN, ACK). На следующем шаге 68 устанавливают соединение, и приложение 18 UPnP приступает к передаче данных в терминал В 16 (например, путем вызова функции send(), как показано на фиг.4b).
На фиг.5а и 5b показаны последовательность операций и схема соответственно, описывающие один из возможных вариантов выполнения настоящего изобретения, когда уже было предварительно установлено соединение между терминалом (терминалом А) 10 (то есть в стеке 22 ТСР/Р терминала 10 указанным приложением 18 UPnP уже создан сокет для связи с дополнительным терминалом 16) и дополнительным терминалом 16, который переходит в спящий режим (например, после некоторого периода бездействия). Фиг.5b дополняет фиг.5а для более полного и глубокого понимания последовательности операций, изображенной на фиг.5а.
Последовательность операций на фиг.5а представляет лишь один из множества возможных сценариев. В способе согласно настоящему изобретению на первом шаге 70 терминал 10 получает уведомление о том, что терминал В 16 находится в спящем режиме (режиме экономии энергии). Информация о характере режима экономии энергии в терминале В 16 (дополнительном терминале) может быть представлена тем же способом, который был описан при рассмотрении шага 30 на фиг.3а (то есть шаг 70 аналогичен шагу 30 на фиг.3а и шагу 50 на фиг.4а соответственно).
На следующем шаге 72 приложение 1 UPnP устанавливает, например, с использованием функции setsocketopt() (как показано на фиг.5b), опцию сокета SO-SNDTIMEO, задающую в указанном стеке 22 TCP/IP временной предел для посылки указанного сигнала соединения указанным терминалом 10, и опцию сокета SO-RCVTIMEO, задающую в указанном стеке 22 TCP/IP временной предел для приема данных от указанного дополнительного терминала 16 (терминала В) на основе заранее заданного критерия. Опция SO_SNDTIMEO устанавливает тайм-аут (например, в миллисекундах) для посылки вызовов, и если время посылки вызова, заданное тайм-аутом, истекает, то соединение находится в неопределенном состоянии и должно быть завершено, а опция SO_RCVTIMEO устанавливает тайм-аут (например, в миллисекундах) для приема вызовов, и если время приема вызова, заданное тайм-аутом, истекает, то соединение находится в неопределенном состоянии и должно быть завершено.
На следующем шаге 74 приложение 1 UPnP выдает инструкции в стек 22 TCP/IP для посылки в дополнительный терминал 16 данных, например, с использованием функции data() (как показано на фиг.5b).
На следующем шаге 76 стек 22 TCP/IP передает (повторно передает) сигнал передачи данных (обозначенный на фиг.5b как TCP DATA) в сеть 12 (например, в точку 14 доступа) согласно известному алгоритму повторной передачи (например, увеличивая вдвое время между повторными передачами). На следующем шаге 78 сеть 12 (функция взаимодействия) обнаруживает сигнал передачи данных и запускает процесс пробуждения терминала В 16, пытаясь пробудить терминал В 16 с использованием, например, технологии, специфической для уровня канала (или альтернативно, когда терминал В16 анализирует входящие пакеты, он замечает попытку установления соединения и переходит в активное состояние). На следующем шаге 80 терминал В16 пробуждается, принимает сигнал передачи данных и посылает в терминал 10 подтверждение (обозначены на фиг.5b как TCP DATA, ACK).
На следующем шаге 82 выясняют, получено ли подтверждение до истечения временного периода, установленного новой опцией сокета SO-SNDTIMEO. Если это не так, то сеанс связи находится в неопределенном состоянии и на шаге 84 завершается. Однако если установлено, что подтверждение получено до истечения временного периода, установленного новой опцией SO-SNDTIMEO сокета, на следующем шаге 86 соединение остается активным и терминал В 16 посылает в терминал 10 ответный сигнал передачи данных. Если ответный сигнал передачи данных получен терминалом 10 до истечения периода времени, установленного новой опцией сокета SO-RCVTIMEO, ответный сигнал передачи данных принимается и подтверждается терминалом 10, а в противном случае (если период времени, установленный новой опцией сокета SO-RCVTIMEO, истек), сеанс связи находится в неопределенном состоянии и должен быть завершен, как указано выше.
Следует отметить, что примеры, представленные на фиг.2, 3а, 3b, 4а, 4b, 5а и 5b, представляют только одну реализацию с использованием приложений А 18 или В 24 UPnP, стека А 22 TCP/IP или В 28 и интерфейса прикладного программирования (API) 20 или 26 сокетов BSD. Согласно настоящему изобретению альтернативные реализации могут в общем случае включать приложение связи (приложение А 18 или В 24 UPnP является лишь одним из возможных приложений связи), протокольный стек (стек А 22 или стек В 28 TCP/IP является лишь одним из возможных стеков) и различные сокеты, реализованные в виде разных интерфейсов прикладного программирования, отличных от интерфейса 20 или 26 прикладного программирования сокетов BSD.
Должно быть понятно, что описанные выше конфигурации являются только иллюстрациями применения принципов настоящего изобретения. Специалистами в данной области техники могут быть предложены многочисленные модификации и альтернативные конструкции без выхода за рамки настоящего изобретения, и формула изобретения охватывает все такие модификации и конструкции.