Устройство и способ установления и использования резервных каналов связи
Иллюстрации
Показать всеГруппа изобретений относится к области компьютерных сетей. Техническим результатом является обеспечение возможности установления, поддержания и использования резервных каналов в одноранговой (Р2Р) сети. Каждое мобильное устройство может установить первичный канал одноранговой связи с одним или более другими мобильными устройствами. Как только первичный канал установлен, каждое мобильное устройство может использовать первичный канал для осуществления обмена данными о соединении по вторичному каналу и может вслед за этим открыть один или более вторичных каналов одноранговой связи с указанными другими мобильными устройствами. При обнаружении того, что первичный канал одноранговой связи нарушен или ухудшился ниже заданного порога (например, некоторого порогового значения ширины полосы пропускания или скорости передачи битов), один из вторичных каналов одноранговой связи может быть автоматически сделан первичным каналом одноранговой связи. 3 н. и 21 з.п. ф-лы, 30 ил., 3 табл.
Реферат
Уровень техники
Область техники, к которой относится изобретение
Группа изобретений относится, в общем, к области компьютерных сетей. Более конкретно, группа изобретений относится к усовершенствованным аппарату и способу для создания и использования резервных каналов связи для мобильных устройств.
Описание уровня техники, предшествующего изобретению
А. Преобразование сетевых адресов ("NAT - преобразование")
Большие сети общего пользования, такие как сеть Интернет, часто имеют соединения с меньшими частными сетями, такими как сети, эксплуатируемые корпорацией, провайдерами услуг сети "Интернет" или даже индивидуальными домашними хозяйствами. По самой своей природе, сети общего пользования должны иметь распределение сетевых адресов, по которому имеется общее соглашение, то есть публичные адреса. По различным причинам лица, эксплуатирующие частные сети, часто выбирают для частных сетей использование частных сетевых адресов, которые не являются частью распределения, по которому имеется общее соглашение. Таким образом, для того чтобы сетевой трафик из частной сети был способен проходить сеть общего пользования, требуется некоторая форма преобразования сетевых адресов из частных в публичные ("NAT - преобразования").
Устройство, выполняющее операции NAT - преобразования, изменяет пакеты данных, отправляемые из частной сети, таким образом, чтобы они удовлетворяли схеме адресации сети общего пользования. В частности, транслятор сетевых адресов заменяет исходный частный адрес и номер порта пакета своим собственным публичным адресом и назначенным номером порта. Транслятор сетевых адресов также изменяет пакеты данных, принимаемые для компьютеров частной сети, таким образом, чтобы заменять публичный адрес пункта назначения и номер порта правильным частным адресом и номером порта подразумеваемого адресата. Термин "адрес", в том значении, в котором он здесь используется, должен толковаться таким образом, чтобы включать в себя как адрес, так и номер порта, если это уместно по контексту, что должно быть понятно специалисту обычного уровня квалификации в данной области техники.
При обработке данных в современных сетях NAT - преобразование становится все более распространенным. Одно из преимуществ NAT - преобразования заключается в том, что оно замедляет истощение адресного пространства сети общего пользования. Например, адресация по протоколу TCP/IP (протоколу управления передачей/ межсетевому протоколу), которая используется в сети "Интернет", содержит четыре последовательности из трех разрядов каждая, обеспечивая, таким образом, конечное адресное пространство. В дополнение к этому, определенные участки этого адресного пространства зарезервированы для особых вариантов использования или пользователей, еще более истощая фактически располагаемое количество адресов. Однако при использовании NAT - преобразования частная сеть или подсеть могут использовать произвольное количество адресов и все-таки представлять для внешнего мира один единственный, стандартизированный публичный адрес. Это делает количество располагаемых адресов фактически безграничным, потому что каждая частная сеть могла бы, теоретически, использовать в точности одинаковые частные адреса.
Одно из преимуществ, предоставляемых NAT - преобразованием, заключается в повышении безопасности, являющемся результатом того факта, что абоненты сети общего пользования не могут определить фактический (то есть частный) сетевой адрес компьютера в частной сети. Причина этого заключается в том, что в сети общего пользования транслятором сетевых адресов предоставляется только публичный адрес. В дополнение к этому, этот публичный адрес может соответствовать любому количеству компьютеров в частной сети.
Различные типы NAT - преобразования используют различные уровни защиты. Например, в случае "полного конического NAT - преобразования", когда внутренний адрес (iAddr:iPort) отображается на внешний адрес (eAddr:ePort), любое внешнее хост -устройство может отправлять пакеты для iAddr:iPort, отправляя пакеты по адресу iAddr:ePort. В случае "ограниченного конического NAT - преобразования" внешнее хост - устройство с адресом hAddr может отправлять пакеты для iAddr:iPort, отправляя пакеты по адресу iAddr:ePort, только в том случае, если iAddr:iPort предварительно отправил пакет по адресу hAddr. Порт внешнего хост - устройства в данном случае не важен. В случае, когда имеет место "Ограниченное по порту коническое NAT - преобразование" внешнее хост - устройство, имеющее адрес/порт hAddr:hPort может отправлять пакеты для iAddr:iPort, отправляя пакеты по адресу iAddr:ePort, только в том случае, если iAddr:iPort предварительно отправлял пакет по адресу iAddr:hPort. Наконец, в случае Симметричного NAT - преобразования каждый запрос с одного и того же адреса iAddr:iPort в некоторый конкретный IP - адрес и порт пункта назначения соответствует уникальному eAdd:ePort. Если одно и то же внутреннее хост - устройство отправляет пакет в различные пункты назначения, то используются различное отображение внешнего адреса и порта. Только то внешнее хост - устройство, которое принимает пакет от внутреннего хост - устройства, может отправить пакет в обратном направлении этому внутреннему хост - устройству.
В. Проблемы NAT - преобразования в случае одноранговых сетей
Термин "одноранговая (Р2Р) обработка данных" относится к распределенной сетевой архитектуре, состоящей из вычислительных узлов, которые делают часть своих ресурсов напрямую доступными для других участников сети. Одноранговые узлы в одноранговой сети устанавливают прямые каналы связи друг с другом и действуют в качестве как клиентов, так и серверов, в отличие от традиционной модели "клиент - сервер", при которой серверы предоставляют ресурсы, а клиенты потребляют ресурсы.
Описанные выше операции NAT - преобразования создают множественные проблемы для одноранговых соединений. Например, установление прямого соединения между двумя одноранговыми узлами становится все более трудным в том случае, если один или оба из одноранговых узлов располагаются позади системы NAT - преобразования одного или более типов, описанных выше. Эта проблема усиливается тем фактом, что мобильные устройства, такие как Apple iPod Touch®, Apple iPhone®, Apple iPad® и различные другие устройства (например, устройства RIM Blackberry®, устройства Palm Pre® и так далее) часто перемещаются между сетями, имеющими различные варианты реализации NAT - преобразования. Например, устройство Apple iPhone™ способно поддерживать связь по сетям Wi-Fi (например, по сетям стандартов 802.11b, г, n); по 3G - сетям (сетям третьего поколения, например, сетям Универсальной системы мобильной связи ("UMTS - сетям"), по высокоскоростным спутниковым сетям пакетного доступа ("HSUPA - сетям") и так далее); и по сетям Bluetooth (известным как персональные сети ("PAN - сети")). Будущие мобильные устройства будут способны поддерживать связь по дополнительным каналам связи, таким как, например, сеть WiMAX Усовершенствованная сеть международной мобильной телекоммуникации ("IMT") и Усовершенствованная сеть долгосрочного развития ("LTE").
Раскрытие изобретения
Описываются устройство, способ и машиночитаемый носитель информации для создания, поддержания и использования резервных каналов в одноранговой ("Р2Р") сети. Например, в одном варианте реализации изобретения каждое мобильное устройство может устанавливать первичный канал одноранговой связи с одним или более другими мобильными устройствами. Как только первичный канал установлен, каждое мобильное устройство может использовать этот первичный канал для обмена данными для соединения по вторичному каналу и может вслед за этим открыть один или более вторичных каналов одноранговой связи с этими другими мобильными устройствами. При обнаружении того, что первичный канал одноранговой связи нарушен или ухудшился ниже некоторого указанного порога (например, порогового значения ширины полосы пропускания или скорости передачи битов), один из вторичных каналов одноранговой связи может быть автоматически сделан первичным каналом одноранговой связи.
Краткое описание чертежей
Лучше понять настоящее изобретение можно из нижеследующего детализированного описания в сочетании с нижеследующими чертежами, на которых:
На Фиг.1 проиллюстрирована сетевая архитектура, в которой группа мобильных устройств и сервисов поддерживают связь по сети.
На Фиг.2а-с проиллюстрированы транзакции между одним вариантом реализации сервиса обмена соединительными данными (CDX - сервиса), сервисом формирователя сочетания и/или сервисом приглашения.
На Фиг.3 проиллюстрирован один вариант реализации структуры данных билета.
На Фиг.4 проиллюстрирован один вариант реализации способа, воплощаемого CDX - сервисом.
На Фиг.5 проиллюстрирован один вариант реализации способа, воплощаемого мобильным устройством.
На Фиг.6 проиллюстрирована группа мобильных устройств, соединенных посредством первичного и вторичного каналов связи.
На Фиг.7 проиллюстрирован один вариант реализации мобильного устройства для выбора среди первичного и вторичных каналов связи.
На Фиг.8а-b проиллюстрирована группа мобильных устройств, соединенных посредством первичного и вторичных каналов связи, и получающаяся в результате этого топология сети.
На Фиг.9 проиллюстрирован один вариант реализации воплощаемого компьютером способа для выбора между первичным и вторичными каналами связи.
На Фиг.10 проиллюстрирована сетевая архитектура, в которой по сети поддерживают связь группа мобильных устройств и сервисов, включающих в себя сервис каталога и сервис "проталкиваемых" уведомлений.
На Фиг.11 проиллюстрированы транзакции между одним вариантом реализации сервиса приглашения, сервисом "проталкиваемых" уведомлений и сервисом обмена соединительными данными (CDX - сервисом).
На Фиг.12 проиллюстрированы транзакции между одним вариантом реализации сервиса приглашения, сервисом "проталкиваемых" уведомлений и сервисом ретрансляции.
На Фиг.13 проиллюстрирован один вариант реализации сервиса ретрансляции для установления ретрансляционного соединения между двумя или больше мобильными устройствами.
На Фиг.14 проиллюстрирован один вариант реализации таблицы совместимости NAT - преобразования (преобразования сетевых адресов), предназначенной для определения совместимости NAT - преобразования.
На Фиг.15 проиллюстрирован один вариант реализации сервиса формирователя сочетания для сочетания между собой мобильных устройств для онлайновых приложений.
На Фиг.16 проиллюстрирован один вариант реализации способа для сочетания между собой пользователей/устройств.
На Фиг.17a-d проиллюстрирована приводимая в качестве примера последовательность обновлений таблиц, выполняемых для сочетания пользователей/устройств.
На Фиг.18 проиллюстрирован способ для сочетания пользователей/устройств с использованием различных переменных "соответствия" сочетания.
На Фиг.19 проиллюстрирован каркас, предоставляющий интерфейс прикладного программирования (API - интерфейс) для приложений и интерфейс прикладного программирования для сервисов, предназначенный для поддержания связи с набором сервисов.
На Фиг.20 проиллюстрирован один вариант реализации каркаса игр, имеющий API - интерфейс для приложений, игрового "демона" и модуль игровых сервисов для поддержания связи с сервисами.
На Фиг.21 проиллюстрирован один вариант осуществления программного компонента реализации API - интерфейса и программного компонента вызова API - интерфейса.
На Фиг.22 проиллюстрирован один вариант реализации изобретения, в котором между операционными системами, сервисами, и приложениями производятся вызовы API - интерфейса.
На Фиг.23 проиллюстрирован один вариант реализации архитектуры приводимой в качестве примера компьютерной системы.
На Фиг.24 проиллюстрирован другой вариант реализации архитектуры приводимой в качестве примера компьютерной системы.
Подробное описание предпочтительных вариантов реализации изобретения
Ниже описаны варианты реализации аппарата, способа и машиночитаемого носителя информации для создания, поддержания и использования первичных и/или резервных одноранговых каналов связи в сети. Также описаны сервис приглашения и сервис формирователя сочетания, предназначенные, соответственно, для приглашения пользователей и формирования сочетаний пользователей для сеансов одноранговой связи. В дополнение к этому, описывается сервис ретрансляции, позволяющий пользователям при определенных указанных условиях устанавливать соединения ретрансляции. Наконец, описываются каркас приложений и связанный с ним интерфейс прикладного программирования (API - интерфейс), позволяющие разработчикам приложений разрабатывать приложения, которые используют преимущество разнообразных описанных здесь онлайновых функциональных возможностей.
Повсюду в описании, в целях объяснения, сформулированы многочисленные конкретные подробности, дающие полное понимание настоящего изобретения. Однако специалисту в данной области техники будет очевидно, что настоящее изобретение может быть осуществлено без некоторых из этих конкретных подробностей. В других случаях, хорошо известные конструкции и устройства не показаны или показаны в форме структурной схемы для того, чтобы избежать затруднения понимания основных принципов настоящего изобретения.
Устройство и способ для эффективного и безопасного обмена соединительными данными
Как проиллюстрировано на Фиг.1, общая топология сети, воплощенная в одном варианте реализации изобретения может включать в себя группу "клиентских" или "одноранговых" мобильных вычислительных устройств: А-D 120-123, соответственно, поддерживающих связь друг с другом и с одним или более сервисами 110-112 по сети 120. Хотя на Фигуре 1 "сеть" 120 проиллюстрирована как единое сетевое облако, она может включать в себя разнообразие различных компонентов, включающих в себя, например, сети общего пользования, такие как сеть "Интернет", и частные сети, такие как локальные сети Wi-Fi (например, бытовые беспроводные сети стандарта 802.11 n или точки беспроводного доступа), локальные сети Ethernet, сотовые сети передачи данных (например, 3G (сети третьего поколения), Edge (сети с технологией повышенных скоростей передачи данных для развития системы GSM и так далее), и сети WiMAX. Например, мобильное устройство А 120 может быть соединено с бытовой сетью Wi-Fi, представленной сетевой линией 125, мобильное устройство В 121 может быть соединено с сетью 3G (например, с сетью Универсальной мобильной системы связи ("UMTS - сетью"), с высокоскоростной спутниковой сетью пакетного доступа ("HSUPA - сетью") и так далее), мобильное устройство С 122 может быть соединено с сетью WiMAX, представленной сетевой линией 127, а мобильное устройство 123 может быть соединено с сетью Wi-Fi общего пользования, представленной сетевой линией 128. Каждая из линий 125-128 локальной сети, по которой соединены мобильные устройства 120-123, может быть подсоединена к сети общего пользования, такой как сеть "Интернет", через шлюз и/или NAT - устройство (устройство преобразования сетевых адресов) (не показанное на Фигуре 1), таким образом, делая возможной связь между различными мобильными устройствами 120-123 по сети общего пользования. Однако если два мобильных устройства находятся в одной и той же локальной или частной сети (например, в одной и той же сети Wi-Fi), то эти два устройства могут поддерживать связь напрямую по этой локальной/частной сети, обходя сеть общего пользования. Конечно же, следует отметить, что принципы, лежащие в основе изобретения, не ограничены никаким конкретным набором типов сетей или топологий сети.
Каждое из мобильных устройств 120-123, проиллюстрированных на Фиг.1, может поддерживать связь с сервисом (110) обмена соединительными данными (CDX - сервисом), сервисом 111 формирователя сочетания и сервисом 112 приглашения. В одном варианте реализации изобретения сервисы 110-112 могут быть воплощены как программное обеспечение, исполняемое на одном или более физических вычислительных устройствах, таких как серверы. Как показано на Фигуре 1, в одном варианте реализации изобретения сервисы 110-112 могут быть воплощены в рамках контекста более крупного сервиса 100 данных, управляемого одним и тем же объектом (например, одним и тем же поставщиком сервиса данных) и доступного для каждого из мобильных устройств 120-123 через сеть 120. Сервис 100 данных может включать в себя локальную сеть (например, локальную сеть на основе Ethernet), соединяющую различные типы серверов и баз данных. Сервис 100 данных может также включать в себя одну или более сетей устройств хранения данных ("SAN - сетей") для хранения данные. В одном варианте реализации изобретения эти базы данных сохраняют и управляют данными, относящимися к каждому из мобильных устройств 120-123, и пользователей этих устройств (например, данными учетных записей пользователей, данными учетных записей устройств, данными о пользовательских приложениях, … и так далее).
В одном варианте реализации изобретения сервис 111 формирователя сочетания может, основываясь на некотором указанном наборе условий, формировать сочетание двух или более мобильных устройств для совместного сеанса одноранговой связи. Например, пользователи двух или больше мобильных устройств могут быть заинтересованы в проведении некоторой конкретной игры для нескольких игроков. В таком случае, сервис 111 формирователя сочетания может идентифицировать группу мобильных устройств для участия в игре, основываясь на таких переменных, как уровень мастерства каждого пользователя, возраст каждого из пользователей, время поступления запросов сочетания, конкретная игра, для которой запрашивается сочетание, и разнообразные переменные, специфические для игры. В порядке примера, а не ограничения, отметим, что сервис 111 формирователя сочетания может, при проведении некоторой конкретной игры, попытаться сочетать пользователей со сходными уровнями мастерства. В дополнение к этому, взрослые могут сочетаться с другими взрослыми, а дети могут сочетаться с другими детьми. Кроме того, сервис 111 формирователя сочетания может располагать по приоритетам пользовательские запросы, основываясь на порядке, в котором принимаются эти запросы. Принципы, лежащие в основе изобретения, не ограничены никаким конкретным набором критериев сочетания или никаким конкретным типом однорангового приложения.
Как подробно описывается ниже, в ответ на запрос сочетания сервис 111 формирователя сочетания может осуществлять с CDX - сервисом (110) согласование с целью обеспечения того, чтобы все сочетаемые участники получили соединительные данные, необходимые для организации сеансов одноранговой связи эффективным и безопасным образом.
В одном варианте реализации изобретения сервис (112) приглашения также идентифицирует мобильные устройства для участия в совместных сеансах одноранговой связи. Однако в случае сервиса (112) приглашения, по меньшей мере, один из участников специально идентифицируется другим участником. Например, пользователь мобильного устройства А 120 может специально запросить совместный сеанс связи с пользователем мобильного устройства В 121 (например, идентифицируя мобильное устройство В посредством идентификатора или телефонного номера пользователя). Как и в случае сервиса 111 формирователя сочетания, в ответ на запрос приглашения, сервис 112 приглашения может идентифицировать набор участников и осуществлять с CDX - сервисом ПО согласование с целью обеспечения того, чтобы все сочетаемые участники получили соединительные данные, необходимые для организации сеансов одноранговой связи эффективным и безопасным образом.
Как было упомянуто выше, в одном варианте реализации изобретения CDX - сервис ПО функционирует в качестве некоторой центральной точки обмена данными в отношении соединительных данных, требующихся для организации сеансов одноранговой связи между двумя или больше мобильными устройствами. В частности, один вариант реализации CDX - сервиса генерирует, в ответ на запросы мобильных устройств, данные прохождения NAT - преобразования (иногда именуемые как данные "проделывания прохода") для того, чтобы позволить внешним сервисам и клиентам поддерживать связь через NAT - систему каждого мобильного устройства (то есть "проделать проход" через NAT - систему, чтобы добраться до устройства). Например, в одном варианте реализации изобретения, CDX - сервис определяет внешний IP-адрес и порт, необходимые для поддержания связи с мобильным устройством, и предоставляет эту информацию мобильному устройству. В одном варианте реализации изобретения CDX - сервис также принимает и обрабатывает списки мобильных устройств, генерируемые сервисом 111 формирователя сочетания и сервисом 112 приглашения и эффективно и надежно подает соединительные данные каждому из мобильных устройств, включенных в состав этих списков (как подробно описывается ниже).
В одном варианте реализации изобретения связь между мобильными устройствами и CDX - сервисом ПО устанавливается с использованием относительно легковесного сетевого протокола, такого как сокеты Протокола пользовательских дейтаграмм ("UDP - протокола"). Как известно специалистам в данной области техники, соединения сокетов UDP - протокола не требуют диалогов квитирования связи для обеспечения надежность передачи пакета, упорядоченности или целостности данных и, следовательно, не поглощают такого большого количества служебных данных для обработки пакетов как соединения сокетов TCP - протокола. Следовательно, легковесная и не требующая запоминания состояний природа UDP - протокола полезна для серверов, которые отвечают на небольшие запросы от обширного количества клиентов. Кроме того, в отличие от TCP - протокола, UDP - протокол совместим с вещательной передачей пакетов (при которой пакеты отправляются всем устройствам в локальной сети) и с групповым вещанием (при котором пакеты отправляются некоторому подмножеству устройств в локальной сети). Как описывается ниже, даже при том, что может использоваться UDP - протокол, безопасность в CDX - сервисе ПО можно поддерживать, шифруя данных прохождения NAT - преобразования, используя ключи сеанса связи.
В противоположность имеющему малое количество служебных данных, легковесному сетевому протоколу, используемому CDX - сервисом 110, в одном варианте реализации изобретения связь между мобильными устройствами 120-123 и сервисом 111 формирователя сочетания и/или сервисом 112 приглашения устанавливается посредством внутренне защищенного сетевого протокола, такого как Протокол защищенной передачи гипертекстов ("HTTPS - протокол"), который полагается на соединения Протокола защищенных сокетов ("SSL - протокола") или Протокола защиты транспортного уровня ("TLS - протокола"). Подробности, связанные с этими протоколами, хорошо известны специалистам в данной области техники.
На Фиг.2 а проиллюстрирована приводимая в качестве примера последовательность транзакций, которые могут быть осуществлены CDX - сервером (сервером обмена соединительными данными). При описании функционирования одного варианта реализации CDX - сервиса нижеследующие термины имеют следующие значения.
Соединительные данные - это информация, которой потенциальные одноранговые пользователи должны обменяться друг с другом для организации Сеанса одноранговой связи. Ниже описаны варианты реализации механизма для того, чтобы можно было обмениваться этой информацией.
CDX - сервер (Сервер обмена соединительными данными) - CDX - сервер в одном варианте реализации изобретения представляет собой аутентифицированный отражатель группового вещания, который позволяет уполномоченным объектам обмениваться произвольными данными. Эти данные именуются как Полезные данные.
CDX - сеанс (Сеанс связи с обменом соединительными данными) - Термин "CDX - сеанс связи" относится к группе клиентских устройств, которые могут поддерживать связь друг с другом через CDX - сервер. Каждому клиентскому устройству, которое является участником этого сеанса связи, выдается CDX - билет (Билет на обмен соединительными данными). Каждый сеанс связи имеет уникальный идентификатор CDX - сеанса связи, который является большим целым числом, которое можно использовать для идентификации отдельного сеанса связи или ссылки на этот сеанс связи.
CDX - Запрос (Запрос обмена соединительными данными) - Запрос, который посылается из клиентского устройства на CDX - сервер. Запрос обычно состоит из двух частей: CDX - билета и Полезных данных. В этом варианте реализации изобретения полезные данные представляют собой Соединительные данные, зашифрованные посредством Ключа сеанса связи.
CDX - ответ - CDX - ответ представляет собой то, что "отражается" назад другим устройствам в ходе CDX - сеанса связи, когда CDX - сервер принимает CDX - запрос от участника CDX - сеанса связи. Он строится путем присоединения Полезных данных к Корешку CDX - билета от CDX - Билета, использованного в данном CDX - запросе.
CDX - билет - CDX - билет сообщает CDX - серверу о том, как отправить Полезные данные участникам CDX - сеанса связи. В одном варианте реализации изобретения этот билет "подписывается" Ключом CDX - билета для того, чтобы предотвратить подделку или фальсификацию. Как проиллюстрировано на Фиг.3, в одном варианте реализации изобретения, CDX - билет содержит нижеследующую информацию:
Идентификатор 301 сеанса связи, который в одном варианте реализации изобретения не является зашифрованным или скрытым.
Количество 302 участников сеанса связи, которое в одном варианте реализации изобретения не является зашифрованным или скрытым.
Индекс 303 того участника сеанса связи, к которому относится этот билет (не зашифрован или не скрыт в одном варианте реализации изобретения).
Время/дата 304 истечения срока действия, после которого билет считается недействительным (не зашифрованные или не скрытые в одном варианте реализации изобретения).
Данные 305-306 "проделывания прохода" через CDX - систему для каждого участника сеанса связи, зашифрованные, в одном варианте реализации изобретения, с использованием Ключа CDX - билета.
Код 307 аутентификации сообщения, использующий Ключ CDX - билета, который действует в качестве "Цифровой подписи" для гарантии того, что билет подлинный.
Корешок CDX - билета - Первая часть CDX - билета минус Данные "проделывания прохода" через CDX - систему и Код аутентификации сообщения.
Полезные данные - это вторая часть CDX - запроса и CDX - ответа. Полезные данные представляют собой данные, которые клиентское устройство желает сообщить другим устройствам в ходе CDX - сеанса связи. В этом варианте реализации изобретения полезные данные представляют собой Соединительные данные, зашифрованные посредством Ключа сеанса связи. В одном варианте реализации изобретения CDX- сервер не дешифрует полезные данные, он просто передает их дальше в неизменном виде.
Ключ сеанса связи - это ключ, используемый клиентами, для шифрования Соединительных данных. В одном варианте реализации изобретения этот ключ не известен CDX - серверу. В этом варианте реализации изобретения Ключ сеанса связи генерируется сервисом формирования сочетания и передается клиентам вместе с их индивидуальными CDX- билетами.
Ключ CDX - билета - Это - ключ, используемый для создания и "подписания" CDX - билетов. Ключ CDX - билета известен только CDX - серверу и сервису, который генерирует CDX - билеты - который, как было описано ниже, мог бы представлять собой сервис формирования сочетания и/или сервис приглашения.
Запрос на "проделывание прохода" через CDX - систему - специальный тип CDX запроса, который используется для того, чтобы получать от CDX - сервера Данные "проделывания прохода" через CDX - систему.
Данные "проделывания прохода" через CDX - систему - это непрозрачный "блоб" данных, который описывает то, как CDX - сервер может отправить информацию клиенту, который изначально ее запросил. Их получают, отправив CDX - серверу Запрос на "проделывание прохода" через CDX - систему. Данные "проделывания прохода" через CDX - систему должны быть собраны с каждого клиентского устройства в ходе CDX - сеанса связи прежде, чем могут быть сгенерированы CDX - билеты. Данные "проделывания прохода" через CDX - систему (иногда именуемые как "данные прохождения NAT - преобразования") могут включать в себя публичный IP - адрес и порт запрашивающего устройства.
Обратимся теперь к Фиг.2а, на которой в одном варианте реализации изобретения мобильное устройство А 120 и мобильное устройство В 121 могут исполнять некоторое совместно используемое приложение, такое как игра для нескольких игроков или совместный сеанс "чата" (диалога в реальном масштабе времени), которое требует однорангового соединения с одним или более другими вычислительными устройствами. На этапе 201а мобильное устройство 120 передает CDX - серверу 110 Запрос "проделывания прохода" через CDX - систему. После этого, на этапе 202a, CDX - сервер 110 отвечает, передавая Данные "проделывания прохода" через CDX - систему. В одном варианте реализации изобретения эти данные "проделывания прохода" включают в себя публичный IP - адрес и порт мобильного устройства (А) и/или любые другие данные, необходимые для "проделывания прохода" через NAT - систему мобильного устройства (A) (например, данные о типе NAT - преобразования, определяющие тип NAT - преобразования для мобильного устройства (А)). Аналогичные транзакции выполняются для мобильного устройства (В), соответственно, на этапах 201b и 202b.
После этого, на этапах 203а и 203b мобильные устройства (А) и (В) отправляют сервису формирования сочетания запросы сочетания, включающие в себя Данные "проделывание прохода" через CDX - систему, вместе с любыми дополнительными критериями сочетания (описываемыми ниже). На этой стадии мобильные устройства (А) и (B) могут начать создавать Соединительные данные, необходимые для установления одноранговой связи. Это может быть достигнуто, например, с использованием такой транзакции, как стандартная транзакция по установлению соединения в сети "Интернет" ("ICE - транзакция") (например, посредством сервиса прохождения NAT - преобразования). Однако, принципы, лежащие в основе изобретения, не ограничены никаким конкретным механизмом для определения соединительных данных.
В одном варианте реализации изобретения после того, как сервис 111 формирования сочетания определил набор клиентских устройств с критериями сочетания, он может сгенерировать уникальный Идентификатор CDX - сеанса связи, уникальный CDX- билет для каждого участника CDX - сеанса связи и уникальный Ключ сеанса связи. В одном варианте реализации изобретения сервис 111 формирования сочетания, может зашифровать Данные "проделывания прохода" через CDX - систему для CDX - билета, используя уникальный ключ - CDX билета. После этого, на этапах 204а и 204b, сервис формирования сочетания может затем отправить каждому из мобильных устройств (А) и (В) их CDX - билет и Ключ сеанса связи.
Мобильное устройство (А) принимает CDX - билет и Ключ сеанса связи и зашифровывает свои предварительно определенные Соединительные данные, используя этот Ключ сеанса связи, создавая Полезные данные. В одном варианте реализации изобретения мобильное устройство (А), присоединяя созданные Полезные данные к CDX - билету, составляет CDX - запрос. На этапе 205а мобильное устройство (А) отправляет CDX - серверу ПО CDX - запрос. Мобильное устройство (В) на этапе 205b также могло бы выполнить такие же операции и передать запрос CDX - серверу.
На этапе 206a CDX - сервер (ПО) принимает CDX - запрос, исследует билет дл того, чтобы убедиться, что он действительный и аутентичный (например, основываясь на коде 307 аутентификации сообщения). Если CDX - билет недействителен, то запрос удаляется. В одном варианте реализации изобретения CDX - сервер после этого, используя ключ CDX - билета, который содержится в CDX - билете, дешифрует набор Данных "проделывания прохода" через CDX систему. В одном варианте реализации изобретения ключ CDX - билета может включать в себя время/дату истечения срока действия, которые также могут быть переданы с билетами. CDX - сервис 110 и сервис 111 формирователя сочетания могут хранить два (или больше) различных ключей CDX - билета для шифрования/дешифрования: первый, который активен в текущее время, и второй, который станет активным после достижения времени/даты истечения срока действия первого ключа. После приема билета CDX - сервис 110 может прочитать время/дату истечения срока действия, определяя то, какой ключ билета, использовать. Когда срок действия ключа CDX - билета истек, как CDX - сервис (110), так и сервис 111 формирователя сочетания могут каждый сгенерировать новый ключ билета (который будет следующим ключом, подлежащим использованию после истечения срока действия текущего ключа билета). В одном варианте реализации изобретения CDX - сервис 110 и сервис 111 формирователя сочетания исполняют один и тот же алгоритм генерации ключа для того, чтобы гарантировать непротиворечивость между двумя ключами билета. Например, могут быть использованы технологии, такие как те, что используются для хорошо известного аутентификационного механизма RSA SecurlD (безопасной идентификации на основе шифрования методом Ривеста, Шамира и Адлемана), в котором новый аутентификационный код генерируется через постоянные промежутки времени. В одном варианте реализации изобретения новый ключ CDX - билета генерируется на ежедневной основе. Однако принципы, лежащие в основе изобретения, не ограничены никаким конкретным механизмом для генерирования ключей CDX - билета.
Те же самые операции могли бы быть выполнены, как показано на этапе 206b, для мобильного устройства В. CDX - сервер составляет CDX - ответ, исходя из CDX - запроса, и затем использует Данные "проделывания прохода" через CDX - систему для того, чтобы отправить CDX - ответ участникам CDX - сеанса связи (отправка мобильному устройству (В) на этапе 207а и мобильному устройству (А) на этапе 207b).
Мобильное устройство (В) принимает от CDX - сервера CDX - ответ 207 а. Клиентское устройство (В) исследует Корешок CDX - билета для обеспечения того, чтобы Идентификатор сеанса связи соответствовал Идентификатор сеанса связи своего собственного CDX - билета. После этого мобильное устройство (В) может дешифровать Полезные данные, используя Ключ сеанса связи, что дает Соединительные данные, поступившие от Мобильного устройства (А). После этого Мобильное устройство (В) использует Соединительные данные, поступившие от Мобильного устройства (А), для того, чтобы начать процесс организации сеанса одноранговой связи. В одном варианте реализации изобретения это включает в себя стандартные ICE - транзакции (транзакции по установлению соединения в сети "Интернет"). Однако принципы, лежащие в основе изобретения, не ограничены никаким конкретным механизмом для установления одноранговой связи.
Как было упомянуто выше, в одном варианте реализации изобретения мобильные устройства (А) и (В) для того, чтобы поддерживать связь с сервисом (111) формирователя сочетания, организуют сеансы связи по Протоколу защищенной передачи гипертекстов ("HTTPS - протоколу") (например, используя транзакции запроса/ответа по HTTPS - протоколу), а для поддержания связи с CDX - сервисом (110) устанавливают сокеты Протокола пользовательских дейтаграмм ("UDP - протокола"). Запросы 204а, 204b сочетания могут включать в себя тип NAT - преобразования и данные "проделывания прохода" (например, публичный IP - адрес и порт), предварительно определенные для каждого соответствующего мобильного устройства. В варианте реализации изобретения, который включает в себя игру для нескольких игроков, каждый запрос сочетания может идентифицировать игрока на каждом мобильном устройстве (например, используя уникальный идентификационный код игрока), игру, в которую хочет играть каждый пользователь, количество игроков, которое будет участвовать в игре, и/или другие переменные параметры конфигурации игры, связанные с требуемой игрой. В порядке примера, а не ограничения, отметим, что переменные параметры конфигурации игры, связанные с игрой, могут включать в себя уровень трудности (например, простой, нормальный, трудный), возраст пользователя (например, "младше 13"), подобласть игры (например, "уровень 2") и/или уровень мастерства игрока (например, мастер, новичок, промежуточный уровень). Как было подробно описано ниже, эти переменные иногда именуются как игровой "короб" и иденти