Настоящее изобретение относится к способу установления соединения в одноранговой сети, а также к одноранговому узлу, телекоммуникационной инфраструктуре, содержащей одноранговую сеть, и к компьютерному программному продукту для осуществления упомянутого способа.
Сетевые операторы (поставщики услуг связи и организации) имеют сильную потребность в легких решениях с минимальными CAPEX/OPEX, чтобы оставаться конкурентоспособными и увеличивать число клиентов (CAPEX=Капитальные Затраты; OPEX=Операционные Затраты).
Системы с низкими операционными затратами с минимально централизованной инфраструктурой часто используют сильно распределенные базы данных в перекрывающихся (наложенных) сетях. Наложенная сеть, как, например, одноранговая (P2P) сеть, является виртуальной сетью поверх существующей IP (протокол Интернет) сети. Современные P2P системы, как Chord, объединяют участвующие одноранговые узлы в граф, структуру узлов и краев. Узел обозначает участвующий одноранговый узел, а край - ближайшее взаимоотношение между двумя одноранговыми узлами. Каждый одноранговый узел в наложенной сети имеет уникальный идентификатор (ID однорангового узла или ID узла), который определяет его местоположение в наложении (ID=идентификатор/идентификация). Одноранговые узлы, которые являются соседями, соединены посредством прямого IP подключения. Для эффективных механизмов маршрутизации и поиска необходимо хорошо структурированное наложение. Сообщения могут быть отправлены другим одноранговым узлам посредством наложения, не зная IP адреса однорангового узла назначения.
Маршрутизаторы, работающие по протоколу Преобразования Сетевых Адресов (=NAT), вызывают известные проблемы при установлении подключения в P2P сетях: Каждый участник (одноранговый узел) в P2P наложении может находиться или в области общедоступных IP адресов, или в области частных IP адресов за одним или более NAT устройством. Предполагается, что за NAT маршрутизаторами находится высокий процент узлов пользователей Интернета. Одноранговые узлы в частной области не могут быть напрямую доступны из общедоступной области или из другой частной области. Так как не может быть гарантирована совместная работа вовлеченных NAT устройств, необходимо решение прохождения (автонастройки) NAT, которое основывается на предсказании поведения NAT, а не на совместной работе с NAT устройствами.
Целью настоящего изобретения является улучшение установления соединения в P2P сети с NAT.
Цель настоящего изобретения достигается способом установления соединения между первым одноранговым узлом в первой области адресов одноранговой сети и вторым одноранговым узлом во второй области адресов одноранговой сети, в соответствии с чем способ содержит этапы: обнаружения в одноранговой сети преобразования сетевого адреса, предотвращающего непосредственное соединение между первым одноранговым узлом и вторым одноранговым узлом; определения третьего однорангового узла одноранговой сети в качестве однорангового узла-ретранслятора; и ретрансляции посредством однорангового узла-ретранслятора соединения между первым одноранговым узлом и вторым одноранговым узлом. Цель настоящего изобретения в дальнейшем достигается одноранговым узлом одноранговой сети, содержащей один или более одноранговых узлов в первой области адресов одноранговой сети, и один или более одноранговых узлов во второй области адресов одноранговой сети, в соответствии с чем одноранговый узел содержит: средство обнаружения, приспособленное для того, чтобы обнаруживать в одноранговой сети преобразование сетевого адреса, предотвращающее прямое соединение между одноранговым узлом и одноранговым узлом другой области; средство определения, приспособленное для того, чтобы определить одноранговый узел одноранговой сети в качестве однорангового узла-ретранслятора; средство ретрансляции, приспособленное для того, чтобы поддерживать ретрансляцию соединения между первым одноранговым узлом в первой области адресов одноранговой сети и вторым одноранговым узлом во второй области адресов одноранговой сети; и средство распространения, приспособленное для того, чтобы распространять информацию, в конкретной информации соединения, в одноранговой сети. Цель настоящего изобретения достигается телекоммуникационной инфраструктурой, содержащей одноранговую сеть с первым одноранговым узлом в первой области адресов одноранговой сети и вторым одноранговым узлом во второй области адресов одноранговой сети, в соответствии с чем телекоммуникационная инфраструктура дополнительно содержит: преобразование сетевого адреса, предотвращающее прямое соединение между первым одноранговым узлом и вторым одноранговым узлом, и третий одноранговый узел одноранговой сети, определенный в качестве однорангового узла-ретранслятора, приспособленный для того, чтобы ретранслировать соединение между первым одноранговым узлом и вторым одноранговым узлом. Более того, цель настоящего изобретения достигается компьютерным программным продуктом, созданным для установления соединения в одноранговой сети, содержащей один или более одноранговых узлов в первой области адресов одноранговой сети и один или более одноранговых узлов во второй области одноранговой сети, в соответствии с чем компьютерный программный продукт при исполнении одноранговым узлом одноранговой сети осуществляет этапы, на которых: обнаруживают в одноранговой сети преобразование сетевого адреса, предотвращающее прямое соединение между одноранговым узлом и одноранговым узлом другой области адресов; определяют одноранговый узел одноранговой сети в качестве однорангового узла-ретранслятора, поддерживающего ретрансляцию соединения между первым одноранговым узлом в первой области адресов одноранговой сети и вторым одноранговым узлом во второй области адресов одноранговой сети, и распространяют информацию, в конкретной информации соединения, в одноранговой сети.
Настоящее изобретение предоставляет новую возможность решения вопросов прохождения (автонастройки) NAT в P2P сетях. Ранее используемые в этой области решения, такие как Hole Punching (Перфорирование), STUN, TURN и ICE, требуют компоненты главного сервера, тем самым вызывая серьезные недостатки, потому что главные компоненты не масштабируются с числом одноранговых узлов в P2P сети и главные компоненты увеличивают Капитальные Затраты поставщика услуг (STUN=Простое Прохождение Протокола Датаграмм Пользователя Через Преобразование Сетевых Адресов; TURN=Прохождение С Использованием Ретрансляции NAT; ICE=Установление Интерактивной Возможности Соединения).
В противоположность вышеупомянутым решениям, известным в предшествующей области техники, настоящее изобретение минимизирует необходимость в компонентах главного сервера путем улучшения структурированной P2P наложенной сети с помощью законченного решения прохождения NAT.
Минимизация необходимости компонентов главного сервера дает ряд преимуществ. Во-первых, это означает более низкие Операционные Затраты для поставщика услуг, так как для предложения требуемых услуг используются ресурсы участвующих пользователей. Во-вторых, достигается лучшая расширяемость, так как с большим числом участников в наложении число одноранговых узлов, предлагающих требуемые услуги, также растет. В-третьих, P2P сеть, использующая настоящее изобретение, показывает повышенную стойкость против атак Отказ-в-Обслуживании, так как в данном случае отсутствует главный объект, который может быть сделан мишенью.
Несмотря на то что вышеупомянутые решения предшествующего уровня техники не рассматривают особых требований и возможностей структурированного P2P наложения (как, например, Chord), изобретение улучшает структурированные P2P наложения путем предоставления возможности одноранговым узлам в области частных адресов проходить их NAT и участвовать в наложении.
Более того, настоящее изобретение строится по принципу один IP адрес на один одноранговый узел. Так как одноранговые узлы в P2P сети, как правило, имеют только один IP адрес, это означает существенное упрощение в сравнении с STURN серверами, а также TURN серверами - так как TURN есть расширение STURN - которые требуют два IP адреса для выявления поведения NAT. Вследствие этого интеграция настоящего изобретения в обычные P2P сети является очевидной и простой.
В соответствии с изобретением, когда одноранговый узел присоединяется к наложению, одноранговый узел взаимодействует с множеством одноранговых узлов, чтобы выявить свою «информацию соединения». Информация соединения состоит из поведения NAT, общедоступной конечной точки и частной конечной точки. Для выявления информации соединения используется протокол, похожий на STURN, но без необходимости во втором IP адресе. Таким образом, каждый одноранговый узел в наложении, который расположен в общедоступной области, может предложить услугу.
В соответствии с изобретением, когда одноранговый узел хочет установить соединение к другому узлу, оба обмениваются своей информацией соединения посредством наложения. Таким образом, сервер встречи не требуется. Имея полученную путем обмена информацию соединения, два одноранговых узла пытаются установить прямое соединение, основанное на механизме Hole Punching.
Узел, который еще не присоединился к наложению, не может принимать информацию соединения от своих коллег по соединению. Информация соединения маршрутизируется посредством наложения и может быть адресована только одноранговым узлам, которые уже присоединены к наложению. По этой причине присоединяющийся одноранговый узел нуждается в поддержке однорангового узла, который уже присоединен к наложению. Такой одноранговый узел ретранслирует сообщения, необходимые для установления соединения, между присоединяющимся одноранговым узлом и наложением.
В соответствии с изобретением два одноранговых узла, которые хотят установить соединение, если попытки прямого соединения провалились, запрашивают поддержку у третьего однорангового узла, который будет ретранслирующим сообщения между двумя. Два одноранговых узла устанавливают прямое соединение с ретранслирующим одноранговым узлом. Предпочтительно ретранслирующий одноранговый узел уже имеет установленное прямое соединение к одному из двух одноранговых узлов. Повторное использование уже установленных прямых соединений помогает минимизировать усилия по установлению соединения.
Дальнейшие преимущества достигаются вариантами осуществления изобретения, указанными соответствующими пунктами формулы изобретения.
В соответствии с предпочтительным вариантом осуществления изобретения обнаружение упомянутого преобразования сетевого адреса основано на топологии одноранговой сети и на информации соединения. Каждый одноранговый узел P2P сети имеет свою собственную информацию соединения, характерную для этого однорангового узла. Одноранговый узел, который уже интегрирован в наложение P2P сети, может быть доступен посредством информации соединения. Предпочтительно индивидуальная для однорангового узла информация соединения содержит тип NAT, описывающий NAT, ассоциированный с одноранговым узлом, одной или более самовоспринимаемых конечных точек и одной или более UNSAF вторичных конечных точек (UNSAF=Одностороннее Закрепление Своего Адреса). Предпочтительно специфическая для однорангового узла информация соединения также содержит один или более кандидатов-ретрансляторов.
Тип NAT представлен поведением построения соответствий (построение соответствия не производится, EIM, ADM, PDM), поведением фильтрации (EIF, ADF, PDF) и преобразованием разворота (возможно, невозможно) (EIM=Отображение Независимо от Конечной Точки; ADM=Отображение в зависимости от Адреса; PDM=Отображение В зависимости от Адреса и Порта; EIF = Фильтрация Независимо от Конечной Точки; ADM=Фильтрация В зависимости от Адреса; PDF= Фильтрация В зависимости от Адреса и Порта). Самовоспринимаемые конечные точки являются группой взаимосвязанных элементов записей IP адреса и порта, которые обнаруживаются, используя способы локальной операционной системы. UNSAF вторичные конечные точки является группой взаимосвязанных элементов записей IP адреса и порта, которые обнаруживаются посредством UNSAF механизма (например STUN). Если одноранговый узел не подвергнут NAT, т.е. не расположен за NAT устройством, UNSAF вторичные конечные точки равны самовоспринимаемым конечным точкам. Кандидаты-ретрансляторы представляют собой одноранговые узлы P2P сети, которые предлагают услуги ретрансляции. Кандидаты идентифицируются по ID однорангового узла такого однорангового узла и набору эвристических значений, которые используются для оценки кандидатов-ретрансляторов.
Предпочтительно обнаружение упомянутого преобразования сетевого адреса основано на информации соединения, содержащей: спецификацию поведения обнаруженного преобразования сетевого адреса, конечную точку, ассоциированную с первым одноранговым узлом в первой области адресов, и конечную точку, ассоциированную со вторым одноранговым узлом во второй области адресов.
В соответствии с другим предпочтительным вариантом осуществления изобретения первый одноранговый узел и второй одноранговый узел обмениваются их соответствующей информацией соединения между первым одноранговым узлом и вторым одноранговым узлом в последовательной маршрутизации посредством одного или более одноранговых узлов одноранговой сети.
Если соединение необходимо установить между двумя одноранговыми узлами, обоим одноранговым узлам необходимо обмениваться собранной ранее информацией соединения. Обмен информацией соединения производится посредством P2P наложения. Чтобы гарантировать минимальное влияние на сеть, отправляются только два сообщения: запрос соединения и ответ соединения. Сообщение запроса соединения содержит информацию соединения запрашивающего однорангового узла, т.е. первого однорангового узла, и ID соединения. ID соединения используется для идентификации сообщений, которые принадлежат этой попытке установления соединения. Ответ соединения обязательно должен содержать точно такое же ID соединения, что и запрос соединения. Обычно ответ соединения содержит информацию соединения ответившего однорангового узла, т.е. второго однорангового узла. В противном случае ответ соединения должен интерпретироваться как отклонение запроса соединения. Запрос соединения может быть отклонен, если отвечающий одноранговый узел не может по какой-нибудь причине установить соединение, например потому что отвечающий одноранговый узел покидает P2P сеть или достиг своего предела соединения.
В соответствии с другим предпочтительным вариантом осуществления изобретения установление ретранслируемого соединения между первым одноранговым узлом и вторым одноранговым узлом посредством однорангового узла-ретранслятора выполняется через следующие шаги. Первый шаг - это отправка первым одноранговым узлом одноранговому узлу-ретранслятору запроса ретранслируемого соединения, содержащего информацию соединения первого однорангового узла. Следующий шаг содержит отправку одноранговым узлом-ретранслятором первому одноранговому узлу ответа ретранслируемого соединения, содержащего информацию соединения однорангового узла-ретранслятора. Следующий шаг содержит установление прямого соединения между первым одноранговым узлом и одноранговым узлом-ретранслятором, если нет уже установленного соединения между первым одноранговым узлом и одноранговым узлом-ретранслятором. Если прямое соединение между первым одноранговым узлом и одноранговым узлом-ретранслятором уже установлено, то шаг установления прямого соединения между первым одноранговым узлом и одноранговым узлом-ретранслятором пропускается, так как нет необходимости в установлении заново прямого соединения между первым одноранговым узлом и одноранговым узлом-ретранслятором.
Следующий шаг содержит отправку первым одноранговым узлом второму одноранговому узлу сообщения обнаруженного ретранслируемого содержащего идентификатор однорангового узла однорангового узла-ретранслятора. Следующий шаг содержит отправку вторым одноранговым узлом одноранговому узлу-ретранслятору запроса ретранслируемого соединения, содержащего информацию соединения второго однорангового соединения. Следующий шаг содержит отправку одноранговым узлом-ретранслятором второму одноранговому узлу ответа ретранслируемого соединения, содержащего информацию соединения однорангового узла-ретранслятора. И следующий шаг содержит установление прямого соединения между вторым одноранговым узлом и одноранговым узлом-ретранслятором, если еще не было установлено соединение между вторым одноранговым узлом и одноранговым узлом-ретранслятором. Если прямое соединение уже установлено между вторым одноранговым узлом и одноранговым узлом-ретранслятором, шаг установления прямого соединения между вторым одноранговым узлом и одноранговым узлом-ретранслятором пропускается, так как нет необходимости в установлении заново прямого соединения между вторым одноранговым узлом и одноранговым узлом-ретранслятором.
В предпочтительном варианте осуществления первый одноранговый узел и/или второй одноранговый узел предоставляют список, содержащий один или более кандидатов-ретрансляторов. Одноранговый узел-ретранслятор выбирается из этого списка. Выбор может быть основан на одном или более следующих шагах: выбор кандидата-ретранслятора, где для ретранслируемого соединения между первым одноранговым узлом и вторым одноранговым узлом может быть повторно использовано одно или более уже установленных прямых соединений в одноранговой сети; и предпочтение кандидата-ретранслятора, вовлеченного в меньшее количество соединений ретрансляции, чем другие кандидаты-ретрансляторы. Повторное использование существующих прямых соединений при установлении ретранслируемых соединений снижает трафик проверки активности, который необходим для создания и поддержания сети наложения.
В соответствии с другим предпочтительным вариантом осуществления изобретения способ содержит шаг отправки одноранговому узлу в области общедоступных адресов одноранговой сети запроса самонастройки, содержащего информацию соединения первого однорангового узла, в соответствии с чем одноранговый узел в области общедоступных адресов одноранговой сети работает в качестве однорангового узла самонастройки. Следующий шаг содержит ретрансляцию одноранговым узлом самонастройки сообщений обмена между первым одноранговым узлом и вторым одноранговым узлом.
Предпочтительно завершение соединения ретрансляции содержит следующие шаги. Первый шаг содержит завершение ретранслируемого соединения путем отправки первым одноранговым узлом одноранговому узлу-ретранслятору сообщения отмены размещения ретрансляции; сообщение отмены размещения ретрансляции, объявляющее ретранслируемое соединение ненужным. Следующий шаг содержит пересылку одноранговым узлом-ретранслятором второму одноранговому узлу сообщения отмены размещения ретрансляции, принятого от первого однорангового узла. Следующий шаг содержит отправку вторым одноранговым узлом одноранговому узлу-ретранслятору сообщения отмены размещения ретрансляции. Следующий шаг содержит пересылку одноранговым узлом-ретранслятором первому одноранговому узлу сообщения отмены размещения ретрансляции, принятого от второго однорангового узла. И следующий шаг содержит завершение ретранслируемого соединения после принятия пересылаемого сообщения отмены размещения переадресации первым одноранговым узлом.
Эти, как, впрочем, и дальнейшие признаки и преимущества изобретения, будут лучше восприняты путем прочтения следующего подробного описания представленных характерных вариантов осуществления вместе с сопроводительными чертежами, на которых:
Фиг. 1 является структурной схемой одноранговой сети в соответствии с вариантом осуществления изобретения;
Фиг. 2 является схемой услуги самонастройки в одноранговой сети в соответствии с вариантом осуществления изобретения;
Фиг. 3 является схемой установления прямого соединения в одноранговой сети в соответствии с вариантом осуществления изобретения;
Фиг. 4 является схемой завершения прямого соединения в одноранговой сети в соответствии с вариантом осуществления изобретения;
Фиг. 5 является ранжированным списком кандидатов-ретрансляторов в соответствии с вариантом осуществления изобретения;
Фиг. 6 является схемой установления ретранслируемого соединения в одноранговой сети в соответствии с вариантом осуществления изобретения;
Фиг. 7 является схемой завершения ретранслируемого соединения в одноранговой сети в соответствии с вариантом осуществления изобретения; и
Фиг. 8 является структурной схемой одноранговых узлов в соответствии с вариантом осуществления изобретения в одноранговой сети.
Фиг. 1 показывает P2P сеть 100, в качестве примера, представляющую телекоммуникационную инфраструктуру наподобие SIP сети. P2P сеть 100 содержит первый одноранговый узел 1, предлагающий UNSAF услугу, в области 101 общедоступных адресов P2P сети 100 и второй одноранговый узел 2 в области 102 частных адресов P2P сети 100. NAT устройство 21, например домашний маршрутизатор с NAT, отделяет область 102 частных адресов от области 101 общедоступных адресов. Второй одноранговый узел 2 является одноранговым узлом, размещенным за NAT, т.е. является так называемым скрытым посредством NAT одноранговым узлом, и доступен из области 101 общедоступных адресов посредством только NAT устройства 21.
UNSAF сервис позволяет одноранговым узлам, запрашивающим UNSAF услугу, выявлять, существует ли между ними и одноранговым узлом, предлагающим UNSAF услугу, любое NAT устройство. Если NAT устройство существует, то существует возможность выявить его поведение и общедоступную конечную точку, которая была выделена NAT устройством одноранговому узлу, запрашивающему UNSAF услугу. Эта UNSAF услуга может рассматриваться как минимальная версия STURN. При выявлении NAT поведения из-за меньшей точности второй IP адрес в обмене не требуется. Предлагать UNSAF услугу могут только одноранговые узлы, которые располагаются в области общедоступных адресов. Одноранговому узлу, предоставляющему услугу, приходится прослушивать UNSAF запросы на заранее определенном порту.
До того как одноранговый узел сможет участвовать в наложенной сети P2P сети 100, ему необходимо выявить его информацию соединения (=CI), которая состоит из NAT поведения, общедоступной(ых) конечной(ых) точки(ек), частной(ых) конечной(ых) точки(ек) и списка кандидатов-ретрансляторов. Выявление CI начинается с частных конечных точек. Конечная точка представлена IP адресом и номером порта. IP адрес может быть получен из операционной системы, а номер порта может быть выбран одноранговым узлом. Второй одноранговый узел 2 обязан знать конечную точку, по меньшей мере, одного первого однорангового узла 1, который предлагает UNSAF услугу. Только в качестве резервного решения, второй одноранговый узел 2 может обратиться к главному серверу для получения такой конечной точки.
Второй одноранговый узел 2 отправляет UNSAF запрос 201 из конечной точки второго однорангового узла 2 (=частная конечная точка) в UNSAF конечную точку первого однорангового узла 1. Когда этот UNSAF запрос 201 проходит NAT устройство 21, частная конечная точка, указанная в UNSAF запросе 201 в качестве конечной точки источника, замещается конечной точкой NAT устройства 21 (=выделенная конечная точка). Это происходит в соответствии с основной идеей работы за NAT. Первый одноранговый узел 1, предлагающий UNSAF услугу, обрабатывает принятый UNSAF запрос 201. Первый одноранговый узел 1 извлекает из UNSAF запроса 201 конечную точку источника, т.е. конечную точку NAT устройства 21 (= выделенная конечная точка). Одноранговый узел 1 формирует UNSAF ответ 202 на UNSAF запрос 201 и записывает в UNSAF ответ 202 извлеченную конечную точку источника (=выделенная конечная точка) в качестве конечной точки назначения. Другими словами, первый одноранговый узел 1 адресует UNSAF ответ 202 выделенной конечной точке, т.е. конечной точке NAT устройства 21. Когда UNSAF ответ 202 проходит через NAT устройство 21, конечная точка назначения, указанная в UNSAF ответе 202, т.е. выделенная конечная точка, замещается частной конечной точкой второго однорангового узла 2. Но полезные данные UNSAF ответа 202 по-прежнему содержат выделенную конечную точку.
Это означает, что UNSAF ответ 202 содержит - в полезных данных - конечную точку источника, которую первый одноранговый узел 1 извлек из UNSAF запроса 201. Второй одноранговый узел 2 принимает UNSAF ответ 202 и проверяет, совпадает ли эта конечная точка источника в полезных данных с частной конечной точкой, из которой второй одноранговый узел 2 отправил UNSAF запрос 201. Если эта конечная точка источника совпадает с частной конечной точкой, из которой второй одноранговый узел 2 отправил UNSAF запрос 201, может быть заключено, что второй одноранговый узел 2 располагается в области 101 общедоступных адресов. В противном случае UNSAF запрос 201 проходит через NAT устройства 21. Таким образом, второй одноранговый узел 2 располагается в области 102 частных адресов и нуждается в исследовании поведения его NAT устройства 21.
UNSAF ответ 202 также содержит список конечных точек других, известных первому одноранговому узлу 1, одноранговых узлов, которые предлагают UNSAF услугу. Таким образом, второй одноранговый узел 2 может повторить UNSAF процесс с другими одноранговыми узлами.
Изобретение рассчитывает на обмен информацией соединения (CI) между двумя одноранговыми узлами до установления соединения. Обмен CI производится через сообщения, отправленные посредством наложения. Но этим сообщениям могут быть доступны только одноранговые узлы, которые уже интегрированы в наложение. Если новый одноранговый узел намерен присоединиться к наложению, ему необходима поддержка однорангового узла, который уже интегрирован в наложение. В своей основе этим узлом может быть любой одноранговый узел, который доступен через общедоступный адрес. Одноранговый узел, предлагающий услугу самонастройки, ретранслирует сообщения между присоединяющимся одноранговым узлом и наложением. Предлагать услугу самонастройки могут только одноранговые узлы, расположенные в области общедоступных адресов. Одноранговому узлу, предлагающему услугу самонастройки, приходится прослушивать запросы самонастройки на заранее определенном порту.
Фиг. 2 показывает наложение 120 P2P сети с одноранговым узлом BP самонастройки, соседним одноранговым узлом 22 и множеством других одноранговых узлов с 220 по 223. Одноранговый узел BP самонастройки и соседний узел 22 уже полностью интегрированы в P2P наложение 120 и могут принимать сообщения посредством наложения 120. Присоединяющийся одноранговый узел 11 пока еще не интегрирован в P2P наложение 120. Когда присоединяющийся одноранговый узел 11 присоединяется к сети наложения 120, необходимо произвести следующие два шага. Присоединяющийся одноранговый узел 11 выявил свои CI и готов к присоединению к наложению 120. Следовательно, присоединяющемуся одноранговому узлу 11 необходимо установить соединение к одноранговому узлу (например, одноранговому узлу 22), с которым присоединяющийся одноранговый узел 11 будет совместно использовать DHT ответственность, как того требует P2P протокол (DHT = Распределенная Хэш-Таблица).
Присоединяющийся одноранговый узел 11 отправляет запрос 210 самонастройки одному из одноранговых узлов, с которыми он контактировал во время выявления CI, например одноранговому узлу BP самонастройки. Сообщение запроса 210 самонастройки содержит CI присоединяющегося однорангового узла 11 и ID однорангового узла присоединяющегося однорангового узла 11; ID однорангового узла, определяющее будущее местоположение присоединяющегося узла 11 в наложении 120. Таким образом, сообщение 210 может быть адресовано соседнему одноранговому узлу 22. Одноранговый узел BP самонастройки пересылает CI присоединяющегося однорангового узла 11 соседнему одноранговому узлу 22 посредством наложения 120 в последовательной маршрутизации 211 посредством одного или более других одноранговых узлов с 220 по 223 наложения 120. Соседний одноранговый узел 22 принимает CI присоединяющегося однорангового узла 11 и формирует ответ, содержащий CI соседнего однорангового узла 22. Ответ отправляется одноранговому узлу BP самонастройки в последовательной маршрутизации 212 посредством одного или более других одноранговых узлов с 220 по 223 наложения 120. Как только ответ от соседнего однорангового узла 22 получен одноранговым узлом BP самонастройки, одноранговый узел BP самонастройки отправляет сообщение 213 ответа самонастройки обратно присоединяющемуся одноранговому узлу 11; сообщение 213 ответа самонастройки, содержащее CI соседнего однорангового узла 22. После этих шагов присоединяющийся одноранговый узел 11 полностью интегрирован в наложение 120.
Фиг. 3 показывает наложение 130 P2P сети с первым одноранговым узлом 31 и вторым одноранговым узлом 21 и множеством других одноранговых узлов с 320 по 323. Первый одноранговый узел 31 хочет установить соединение со вторым одноранговым узлом 32. Для установления прямого соединения между первым одноранговым узлом 31 и вторым одноранговым узлом 32 необходимо провести следующие шаги: первый одноранговый узел 21 отправляет второму одноранговому узлу 32 сообщение 310 запроса соединения в последовательной маршрутизации посредством одного или более других одноранговых узлов с 320 по 323 в наложении 130, в соответствии с чем сообщение 310 запроса соединения содержит CI первого однорангового узла 31. После получения запроса 310 соединения второй одноранговый узел 32 отправляет первому одноранговому узлу 31 сообщение 311 ответа соединения в последовательной маршрутизации посредством одного или более других одноранговых узлов с 320 по 323 наложения 130; сообщение 311 ответа соединения, содержащее CI второго однорангового узла 32. В это время оба одноранговых узла 31, 32 знают CI друг друга. Обоим одноранговым узлам 31, 32 необходимо оценить полученные путем обмена CI, чтобы определить оптимальный подход к соединению. Возможно ли прямое соединение, зависит от поведения вовлеченных NAT устройств. Оценка имеет один из трех возможных результатов:
I) Два одноранговых узла расположены в одной и той же частной области, прямое соединение может быть установлено, используя частные конечные точки.
II) Два одноранговых узла могут установить прямое соединение, используя общие конечные точки.
III) Поведение вовлеченных NAT устройств препятствует прямому соединению. Необходимо найти третий одноранговый узел, который предлагает услугу ретрансляции. Больше деталей по установлению ретранслируемых соединений может быть найдено ниже.
Для установления прямого соединения могут быть использованы как UNSAF вторичные конечные точки, так и самовоспринимаемые конечные точки.
Если попытка установить прямое соединение, используя частные конечные точки, неудачна, делается попытка установить прямое соединение, используя общие конечные точки. Если попытка установить прямое соединение, используя общие конечные точки, неудачна, устанавливается ретранслируемое соединение.
Фиг. 3 описывает случай, когда прямое соединение может быть установлено. Прямое соединение может быть установлено как посредством общих конечных точек, так и посредством частных конечных точек в зависимости от того, как решено во время фазы оценки. Каждый одноранговый узел 31, 32 начинает отправлять сообщения 312, 323 о соединении в соответствующую конечную точку одноранговых узлов 31, 32. Соединение считается установленным, когда оба одноранговых узла 31, 32 приняли, по меньшей мере, одно сообщение о соединении. Попытка неудачна, если один из одноранговых узлов 31, 32 не может принять сообщения о соединении после многократных попыток. Как только прямое соединение установлено, необходимо, чтобы через регулярные промежутки времени в обоих направлениях отправлялись сообщения проверки активности, чтобы обновлять NAT отображения и правила фильтрации.
Фиг. 4 иллюстрирует завершение прямого соединения. Фиг. 4 показывает наложение 130 P2P сети с первым одноранговым узлом 31 и вторым одноранговым узлом 32. Как только нет необходимости в прямом соединении 410 между первым одноранговым узлом 31 и вторым одноранговым узлом 32, оно может быть завершено, чтобы высвободить ресурсы P2P сети. Соединение необходимо, если P2P протокол предъявляет к нему требования или если это соединение является частью ретрансляции. Первый одноранговый узел 31 уведомляет второй одноранговый узел 32, что соединение 410 является ненужным путем отправки сообщения 411 отмены размещения. В качестве альтернативы, первый одноранговый узел 31 уведомляет второй одноранговый узел, что соединение 410 является необходимым, путем отправки сообщения на размещение (не показано). Когда второй одноранговый узел 32 принимает сообщение 411 об отмене размещения от первого однорангового узла 31 и понимает, что соединение 410 более ненужно, второй одноранговый узел 32 также отправляет сообщение 412 на отмену размещения первому одноранговому узлу. Оба одноранговых узла 31, 32 рассматривают это соединение 410 как ненужное, вследствие чего оно и завершается. Если оба одноранговых узла 31, 32 рассматривают соединение 410 как ненужное, соединение завершается.
Если один из одноранговых узлов 31, 32 готов покинуть наложение 130, он отправляет сообщение завершения другому узлу, чтобы закрыть соединение 410. Если по прошествии особого промежутка времени не было принято ни одного сообщения проверки активности, соединение 410 также завершается.
В некоторых случаях прямое соединение между двумя одноранговыми узлами не может быть установлено. Тогда два одноранговых узла нуждаются в помощи третьего однорангового узла, который ретранслирует соединение между двумя (установление ретранслируемого соединения). Ретранслируемое соединение от первого однорангового узла ко второму одноранговому узлу строится из прямых соединений от первого однорангового узла к одноранговому узлу-ретранслятору и от второго однорангового узла к одноранговому узлу-ретранслятору, вследствие чего одноранговый узел-ретранслятор является одноранговым узлом, предлагающим услугу ретрансляции. Каждый одноранговый узел поддерживает список кандидатов-ретрансляторов. Существуют определенные требования, которые одноранговый узел должен выполнить, чтобы стать кандидатом-ретранслятором: одноранговый узел не должен быть за NAT с ADM, PDM или PDF поведением. Когда одноранговый узел устанавливает прямое соединение с другим одноранговым узлом и этот другой одноранговый узел выполняет вышеупомянутые требования, этот другой одноранговый узел добавляется в список кандидатов-ретрансляторов. Этот список обменивается параллельно с CI, когда устанавливается соединение.
Когда необходимо ретранслируемое соединение между двумя одноранговыми узлами, вначале необходимо обнаружить оптимальный ретранслятор. Во время обмена информацией соединения два одноранговых узла также обмениваются кандидатами-ретрансляторами как части информации соединения. Каждый из полученных обменом CI двух одноранговых узлов содержит список кандидатов-ретрансляторов. Два списка одноранговых узлов объединяются. Вследствие чего каждый одноранговый узел, который интегрирован в наложение, должен стать осведомленным, по меньшей мере, об одном кандидате-ретрансляторе. А одноранговые узлы, которые готовы присоединиться к наложению, знают одноранговый узел самонастройки, который расположен в общей области. Тем не менее, возможно, будет необходимо обходное решение для обнаружения одноранговых узлов, которые предлагают услуги ретрансляции. После обмена информацией соединения оба одноранговых узла имеют одинаковый список кандидатов-ретрансляторов.
Каждый кандидат-ретранслятор в списке оценивается, чтобы принять решение, с каким кандидатом-ретранслятором контактировать в первую очередь. Предпочтительно кандидаты-ретрансляторы оценены эвристическими значениями. Двумя подходящими значениями для оценки являются повторное использование и концентрация.
Значение повторного использования существующих соединений основано на цели оптимизации сетевого трафика. Чтобы минимизировать нагрузку на сеть, наилучшим способом является повторное использование прямых соединений, которые уже установлены, как части ретранслируемых соединений. Соединения, которые уже были установлены, должны быть повторно использованы. Если оба одноранговых узла имеют уже установленное соединение с кандидатом-ретранслятором, такой одноранговый узел будет оптимальным и повторное использование соединений будет максимальным. Однако это все же дополнительная выгода, если один из одноранговых узлов имеет установленное соединение.
В соответствии с предпочтительным вариантом осуществления изобретения значение повторного использования равно единице, если локальный одноранговый узел имеет активное прямое соединение к кандидату-ретранслятору. Оно равно двум, если после обмена информацией соединения известно, что оба одноранговых узла имеют активное соединение к одному и тому же кандидату-ретранслятору. Таким образом, кандидаты-ретрансляторы, которые имеют уже установленное прямое соединение к обоим одноранговым узлам, являются предпочтительными в сравнении с теми, которые имеют только одно прямое соединение к одному из двух.
Значение концентрации ретранслируемых соединений имеет отношение к диверсификации. Если одноранговый узел устанавливает все соединения, которые требуют ретрансляции, посредством одного и того же ретранслирующего однорангового узла и этот одноранговый узел покидает сеть, все соединения должны быть вновь установлены. По этой причине лучше разнообразить ретранслируемые соединения по многочисленным одноранговым узлам, т.е. распределить ретранслируемые соединения по различным ретранслирующим одноранговым узлам. Таким образом, кандидат-ретранслятор с наименьшим количеством ретранслируемых соединений лучше, чем один, который имеет больше соединений. В соответствии с предпочтительным вариантом осуществления изобретения значение концентрации равно числу ретранслируемых соединений, которые были установлены посредством этого кандидата-ретранслятора и являются активными.
Для сигнализации ретрансляции значения, подобные задержке или ширине полосы пропускания, являются неподходящими, потому что сигнализация трафика в отличие от трафика данных не критична ни ко времени, ни к потреблению полосы пропускания. Как только определено, что необходимо установить ретранслируемое соединение, задачей именно запрашивающего однорангового узла является выбор подходящего кандидата-ретранслятора из списка. Список формируется из кандидатов-ретрансляторов из информации соединения запрашивающего однорангового узла объединенных с кандидатами-ретрансляторами отвечающего однорангового узла.
Предпочтительно список хранится, используя эвристические значения: повторное использование является первичным критерием сортировки, за которым следует концентрация. Чем выше значение повторного использования, тем выше расстановка кандидата-ретранслятора в списке. Чем меньше значение концентрации, тем выше расстановка. Пример отсортированного списка представлен на Фиг. 5. Список 50 содержит четыре столбца с 51 по 54 и пять строк с 511 по 515. Столбец 51 показывает ID однорангового узла пяти кандидатов-ретрансляторов. Столбец 52 показывает значения повторного использования пяти кандидатов-ретрансляторов. Столбец 53 показывает значения концентрации, отнесенные к пяти кандидатам-ретрансляторам. Столбец 54 показывает расстановку каждого из пяти кандидатов-ретрансляторов, кандидат, получивший наивысшую оценку, расположен наверху.
Запрашивающий одноранговый узел затем пытается установить ретранслируемое соединение с кандидатом, имеющим наивысшую оценку в строке 511. Если это не удается (например, кандидат-ретранслятор отверг запрос или совсем не отвечает), список 50 обрабатывается далее вниз, строка за строкой, до тех пор, пока соединение не будет установлено. Это означает, что запрашивающий одноранговый узел пытается установить ретранслируемое соединение со вторым оцененным кандидатом в строке 512, третьим оцененным кандидатом в строке 513 и так далее до тех пор, пока соединение не будет установлено.
Как только запрашивающий одноранговый узел расставил кандидатов-ретрансляторов и подходящий кандидат был выбран, нужно осуществить контакт с кандидатом-ретранслятором. Ретранслируемое соединение устанавливается аналогично прямому соединению.
Фиг. 6 показывает наложение 160 P2P сети с первым одноранговым узлом 61, вторым одноранговым узлом 62, одноранговым узлом-ретранслятором R, который был выбран первым одноранговым узлом 61 как кандидат-ретранслятор, имеющий наивысшую расстановку, и множества кандидатов-ретрансляторов RC и других одноранговых узлов 620, 621. Оба, первый одноранговый узел 61 и второй одноранговый узел 62, находятся в отдельных областях частных адресов. Они уже полностью интегрированы в P2P наложение 160 и могут обмениваться сообщениями с другими одноранговыми узлами P2P наложения 160 посредством последовательной маршрутизации. Одноранговый узел-ретранслятор R может быть как в области частных адресов, так и в области общедоступных адресов до тех пор, пока одноранговый узел-ретранслятор R выполняет требования, чтобы быть ретранслятором. Как только кандидат-ретранслятор выбран из списка кандидатов-ретрансляторов, обоим, и первому одноранговому узлу 61, и второму одноранговому узлу 62, необходимо установить прямое соединение к одноранговому узлу-ретранслятору R.
Первый одноранговый узел 61 отправляет запрос 610 ретранслируемого соединения одноранговому узлу-ретранслятору R посредством P2P наложения 160, в последовательной маршрутизации посредством одного или более других кандидатов-ретрансляторов RC и/или других одноранговых узлов 620, 621 одноранговой сети 160. Запрос 610 ретранслируемое соединения содержит информацию соединения первого однорангового узла 61 и точно такое же ID соединения, которое было использовано в обмене информацией соединения между первым одноранговым узлом 61 и вторым одноранговым узлом 62. Одноранговый узел-ретранслятор R отвечает с помощью ответа 611 ретранслируемого соединения, отправляемого первому одноранговому узлу 61 в последовательной маршрутизации посредством одного или более других кандидатов-ретрансляторов RC и/или других одноранговых узлов 620, 621 одноранговой сети 160. Ответ ретранслируемого соединения 611 содержит информацию соединения однорангового узла-ретранслятора R и ID соединения. Путем отправки своей информации соединения одноранговый узел-ретранслятор R сигнализирует, что он принял запрос 610 ретрансляции. Если ответ 611 ретранслируемого соединения содержит только ID, запрос 610 будет отвергнут одноранговым узлом-ретранслятором R. Если одноранговый узел-ретранслятор R отверг/отклонил запрос 610 соединения ретрансляции первого однорангового узла 61, первому одноранговому узлу 61 будет необходимо найти нового кандидата-ретранслятора.
После того как одноранговый узел-ретранслятор R сигнализировал, что он принял запрос 610 ретрансляции, первый одноранговый узел 61 и одноранговый узел-ретранслятор R пытаются установить прямое соединение друг с другом путем отправки друг другу сообщений о соединении 612, 613, т.е. их соответствующих полученных обменом конечных точек. Если первый одноранговый узел 61 не может установить прямое соединение к одноранговому узлу-ретранслятору R, первому одноранговому узлу 61 необходимо найти нового кандидата-ретранслятора.
Приняв, что установление прямого соединения между первым одноранговым узлом 61 и одноранговым узлом-ретранслятором R удалось, первому одноранговому узлу 61 необходимо проинформировать второй одноранговый узел 62, что кандидат-ретранслятор найден, т.е. что одноранговый узел-ретранслятор R принят для выполнения функций в качестве однорангового узла-ретранслятора. Это достигается путем отправки сообщения 614 обнаруженного ретранслятора посредствам P2P наложения 160 в последовательной маршрутизации посредством одного или более других кандидатов-ретрансляторов RC и/или других одноранговых узлов 620, 621 одноранговой сети 160. Сообщение 614 обнаруженного ретранслятора содержит ID однорангового узла однорангового узла-ретранслятора R и ID соединения. После того как сообщение 614 обнаруженного ретранслятора принято, второй одноранговый узел 62 пытается установить прямое соединение с одноранговым узлом-ретранслятором R таким же образом, что описан выше: второй одноранговый узел 62 отправляет запрос 615 ретранслируемого соединения одноранговому узлу-ретранслятору R; запрос 615 ретранслируемого соединения, содержащий информацию соединения второго однорангового узла 62. В ответ на запрос 615 ретранслируемого соединения одноранговый узел-ретранслятор R отправляет второму одноранговому узлу 62 ответ 616 ретранслируемого соединения, содержащий информацию соединения однорангового узла-ретранслятора R. После обмена информацией соединения между вторым одноранговым узлом 62 и одноранговым узлом-ретранслятором R каждый одноранговый узел 62, R начинает отправку сообщений о соединении соответствующим конечным точкам другого однорангового узла R, 62. Прямое соединение 617 считается установленным между вторым одноранговым узлом 62 и одноранговым узлом-ретранслятором R, когда оба одноранговых узла 62, R приняли, по меньшей мере, одно сообщение о соединении. Прямое соединение 617 устанавливается только в том случае, если отсутствует уже установленное соединение между вторым одноранговым узлом 62 и одноранговым узлом-ретранслятором R.
Следовательно, по сути, обоим одноранговым узлам, запрашивающему первому одноранговому узлу 61 и отвечающему второму одноранговому узлу 62, необходимо инициализировать попытку соединения к одноранговому узлу-ретранслятору R. Таким образом, одноранговый узел-ретранслятор R не может быть использован в воздействии на другой одноранговый узел, потому что ни одно сообщение не отправляется второму одноранговому узлу 62 до тех пор, пока от второго однорангового узла 62 не принят запрос 615 ретранслируемого соединения. Одноранговый узел-ретранслятор R распознает запросы ретранслируемых соединений посредством посылаемых ID соединения. Как только прямое соединение с обоими одноранговыми узлами 61, 62 может быть установлено, необходимо, чтобы соединения были логически связаны, то есть те сообщения, которые отправлены от первого однорангового узла 61 второму одноранговому узлу 62 и наоборот, должны правильно пересылаться.
Часть процесса может быть пропущена в том случае, если прямое соединение между первым одноранговым узлом 61 и одноранговым узлом-ретранслятором R или вторым одноранговым узлом 62 и одноранговым узлом-ретранслятором R уже установлено. В этом случае все же должен быть произведен обмен запросом ретрансляции соединения и ответом, чтобы уведомить одноранговый узел-ретранслятор R, что это соединение теперь является частью ретрансляции, но нет необходимости в установлении заново прямого соединения. Для однорангового узла-ретранслятора R установление ретранслируемого соединения является эквивалентом логического связывания двух прямых соединений. Это связывание необходимо по двум причинам:
I) Чтобы отслеживать статус соединения двух прямых соединений, для того чтобы уведомить второй одноранговый узел 62, если соединение с первым одноранговым узлом 61 было потеряно.
II) Чтобы отслеживать необходимость двух прямых соединений.
Связывание не нужно для маршрутизации сообщений наложения. Каждое сообщение наложения содержит ID однорангового узла получателя, который используется, чтобы определить следующий участок маршрутизации. Алгоритм маршрутизации обрабатывает список прямых соединений и выбирает одно, которое наиболее близко ведет к ID назначения. То есть, нежели использоваться для маршрутизации, связывание используется для сохранения активности прямых соединений.
Если одноранговый узел-ретранслятор отклоняет запрос 615 ретрансляции соединения, посланный вторым одноранговым узлом 62, второму одноранговому узлу 62 приходится отправить первому одноранговому узлу 61 сообщение провала ретрансляции соединения, чтобы первый одноранговый узел 61 смог попытаться найти нового кандидата-ретранслятора. Если второй одноранговый узел 62 не может установить прямое соединение с одноранговым узлом-ретранслятором R, второму одноранговому узлу 62 необходимо отправить первому одноранговому узлу 61 сообщение провала ретрансляции соединения, чтобы первый одноранговый узел 61 смог попытаться найти нового кандидата-ретранслятора.
Как только ретранслируемое соединение становится далее ненужным, оно может быть завершено. Как в случае с прямым соединением, два конечных одноранговых узла, но не ретранслирующий одноранговый узел, могут объявить соединение ненужным путем отправки сообщения отмены размещения ретрансляции.
Соответственно, сообщение размещения ретрансляции объявляет необходимость соединения. Когда оба одноранговых узла объявили соединение ненужным, соединение ретрансляции завершается. Соединение ретрансляции также завершается, если один из трех одноранговых узлов покидает наложение. После завершения ретрансляции должно быть оценено, необходимы ли еще два прямых соединения, которые были частью ретрансляции.
Фиг. 7 иллюстрирует процесс, показывая наложение 160 P2P сети с первым одноранговым узлом 61, вторым одноранговым узлом 62 и одноранговым узлом-ретранслятором R. Ретранслируемое соединение 710 установлено между первым одноранговым узлом 61 и вторым одноранговым узлом 62. Ретранслируемое соединение 710 состоит из прямого соединения 710a между первым одноранговым узлом 61 и одноранговым узлом-ретранслятором R и прямого соединения 710b между вторым одноранговым узлом 62 и одноранговым узлом-ретранслятором R.
Первый одноранговый узел 61 отправляет сообщение 711 отмены размещения ретрансляции одноранговому узлу-ретранслятору R, объявляющее ретранслируемое соединение 710 ненужным. Одноранговый узел-ретранслятор R пересылает 712 второму одноранговому узлу 62 сообщение 711 отмены размещения ретрансляции, отправленное первым одноранговым узлом 61. По прошествии некоторого времени второй одноранговый узел 62 также отправляет сообщение 713 отмены размещения ретрансляции одноранговому узлу-ретранслятору R. Одноранговый узел-ретранслятор R пересылает 714 первому одноранговому узлу 61 сообщение 713 отмены размещения ретрансляции, отправленное вторым одноранговым узлом 62. Так как ни первый одноранговый узел 61, ни второй одноранговый узел 62 не считают ретрансляцию 710 необходимой, соединение ретрансляции 710 завершается. Необходимость каждого из прямых соединений 710a, 710b необходимо оценить.
Фиг. 8 показывает одноранговую сеть 800, содержащую первый одноранговый узел 81 и одноранговый узел-ретранслятор 83, которые находятся в первой области адресов одноранговой сети 800, и второй одноранговый узел 82 во второй области адресов одноранговой сети 800. Первый одноранговый узел 81 хочет установить соединение со вторым одноранговым узлом 82.
Из-за того что прямое соединение между первым одноранговым узлом 81 и вторым одноранговым узлом 82 невозможно, потому что второй одноранговый узел 82 за NAT устройством, например межсетевым экраном (не показан), расположенным на границе между первой областью адресов и второй областью адресов, устанавливается ретранслируемое посредством однорангового узла-ретранслятора 83 соединение между первым одноранговым узлом 81 и вторым одноранговым узлом 82.
Каждый из одноранговых узлов 81, 82, 83 составлен из одного или нескольких связанных между собой компьютеров, т.е. аппаратная платформа, программная платформа, основанная на аппаратной платформе, и несколько прикладных программ, выполняемых системной платформой, образованной программной и аппаратной платформой. Функциональность каждого из одноранговых узлов 81, 82, 83 обеспечивается путем выполнения этих прикладных программ. Прикладные программы или избранные части этих прикладных программ составляют продукт компьютерного программного обеспечения, предоставляющего услугу установления соединения, как описано выше, при выполнении на системной платформе. Более того, такой продукт компьютерного программного обеспечения содержит в себе носитель данных, хранящий эти прикладные программы или упомянутые избранные части прикладных программ.
Предпочтительно одноранговые узлы 81, 82, 83 являются обособленными сетевыми узлами, например индивидуальными персональными компьютерами, расположенными в различных физических местоположениях и связанными друг с другом посредством телекоммуникационной сети, например телефония и сеть передачи данных или Интернет.
С функциональной точки зрения, первый одноранговый узел 81 содержит модуль 811 обнаружения для обнаружения в одноранговой сети 800 преобразования сетевого адреса, предотвращающего прямое соединение между первым одноранговым узлом 81 и вторым одноранговым узлом 82. Кроме того, первый одноранговый узел 81 содержит модуль 812 определения для определения третьего однорангового узла одноранговой сети 800 в качестве однорангового узла-ретранслятора 83. Более того, первый одноранговый узел 81 содержит модуль 813 ретрансляции для поддержки ретрансляции соединения между первым одноранговым узлом 81 и вторым одноранговым узлом 82. И первый одноранговый узел содержит средство 814 распространения, например интерфейс приемопередатчика, для распространения информации посредством одноранговой сети 800. В добавление, первый одноранговый узел 81 содержит модуль 815 памяти для хранения компьютерного программного продукта, который при выполнении CPU первого однорангового узла 81 осуществляет функции первого однорангового узла 81 (CPU=Центральное Процессорное Устройство).
Предпочтительно модуль 811 обнаружения, модуль 812 определения, модуль 813 ретрансляции и средство 814 распространения являются компонентами программного обеспечения и/или аппаратными компонентами модуля 810 управления, управляющего функционированием первого однорангового узла 81. Также возможно, чтобы модуль 811 обнаружения, модуль 812 определения, модуль 813 ретрансляции и средство 814 распространения являлись отдельными модулями, связанными с модулем 810 управления. Предпочтительно модуль 810 управления также содержит упомянутый CPU.
По аналогии с моделью первого однорангового узла 81 второй одноранговый модуль 82 и одноранговый узел-ретранслятор 83 также содержат соответственно модули 821 и 831 обнаружения, соответственно модули 822 и 832 определения, соответственно модули 823 и 833 ретрансляции, соответственно средства 824 и 834 распространения и соответственно модули 825 и 835 памяти. В другом сценарии роли одноранговых узлов 81, 82, 83 внутри P2P сети 800 могут измениться. Например, одноранговый узел-ретранслятор 83 может представлять отвечающий одноранговый узел, первый одноранговый узел 81 может представлять одноранговый узел-ретранслятор, а второй одноранговый узел 82 может представлять запрашивающий одноранговый узел. По этой причине каждый из одноранговых узлов 81, 82, 83 содержит все упомянутые функциональные компоненты.
название | год | авторы | номер документа |
---|---|---|---|
СПОСОБ И УСТРОЙСТВО, ДЛЯ РЕТРАНСЛЯЦИИ ПАКЕТОВ | 2009 |
|
RU2543304C2 |
ОПТИМИЗАЦИИ ДЛЯ РЕТРАНСЛЯЦИОННОЙ СВЯЗИ | 2015 |
|
RU2703512C2 |
СПОСОБ ДЛЯ ВЫБОРА СУЩНОСТИ НА ОСНОВЕ ПОЛНОГО КАЧЕСТВА ЛИНИИ СВЯЗИ | 2014 |
|
RU2625943C2 |
ЗАЩИТНАЯ ИНФРАСТРУКТУРА И СПОСОБ ДЛЯ ПРОТОКОЛА РАЗРЕШЕНИЯ РАВНОПРАВНЫХ ИМЕН (PNRP) | 2003 |
|
RU2320008C2 |
СПОСОБ И УСТРОЙСТВО СМЕНЫ ПУТИ УСЛУГИ | 2014 |
|
RU2669582C2 |
УСТРОЙСТВО И СПОСОБ УСТАНОВЛЕНИЯ И ИСПОЛЬЗОВАНИЯ РЕЗЕРВНЫХ КАНАЛОВ СВЯЗИ | 2010 |
|
RU2527200C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ РЕТРАНСЛЯЦИИ, ОБЛЕГЧАЮЩЕЙ СВЯЗЬ | 2004 |
|
RU2337484C2 |
ОБРАБОТКА ПРИОРИТЕТОВ В СИСТЕМЕ СВЯЗИ ProSe | 2016 |
|
RU2694814C1 |
ОДНОРАНГОВАЯ ГЛОБАЛЬНАЯ СИСТЕМА СВЯЗИ | 2008 |
|
RU2440689C2 |
СПОСОБ СВЯЗИ ВНУТРИ КЛАСТЕРА ДИНАМИЧЕСКОЙ ГЛУБИНЫ ОБМЕНИВАЮЩИХСЯ ДАННЫМИ ЭЛЕКТРОННЫХ УСТРОЙСТВ, СООТВЕТСТВУЮЩЕЕ ОБМЕНИВАЮЩЕЕСЯ ДАННЫМИ ЭЛЕКТРОННОЕ УСТРОЙСТВО, ОСУЩЕСТВЛЯЮЩЕЕ УПОМЯНУТЫЙ СПОСОБ, И СООТВЕТСТВУЮЩАЯ СИСТЕМА | 2016 |
|
RU2690514C2 |
Изобретение относится к области передачи данных. Технический результат заключается в оптимизации установления соединения в одноранговой (Р2Р) сети с преобразованием сетевого адреса (NAT). Сущность изобретения заключается в том, что соединение устанавливается между первым одноранговым узлом (61) в первой области адресов одноранговой сети (160) и вторым одноранговым узлом (62) во второй области адресов одноранговой сети (160). В одноранговой сети (160) обнаруживается преобразование сетевого адреса, которое предотвращает прямое соединение между первым одноранговым узлом (61) и вторым одноранговым узлом (62). Третий одноранговый узел одноранговой сети (160) определяется в качестве однорангового узла-ретранслятора (R). Одноранговый узел-ретранслятор (R) ретранслирует соединение между первым одноранговым узлом (61) и вторым одноранговым узлом (62). 4 н. и 5 з.п. ф-лы, 8 ил.
1. Способ установления соединения между первым одноранговым узлом (61) в первой области адресов одноранговой сети (160) и вторым одноранговым узлом (62) во второй области адресов одноранговой сети (160), причем способ содержит этапы, на которых:
обнаруживают в одноранговой сети (160) преобразование сетевого адреса, предотвращающее прямое соединение между первым одноранговым узлом (61) и вторым одноранговым узлом (62);
определяют третий одноранговый узел одноранговой сети (160) в качестве однорангового узла-ретранслятора (R); и
ретранслируют одноранговым узлом-ретранслятором (R) соединение между первым одноранговым узлом (61) и вторым одноранговым узлом (62), и
выбирают одноранговый узел-ретранслятор (R) из списка (50) из одного или более кандидатов ретрансляторов (RC), причем список предоставлен первым одноранговым узлом (61) и/или вторым одноранговым узлом (62),
отличающийся тем, что выбор основан на следующих этапах, на которых:
выбирают кандидата ретранслятора (RC), в котором одно или более прямых соединений, которые уже установлены в одноранговой сети (160), могут быть повторно использованы для ретранслируемого соединения между первым одноранговым узлом (61) и вторым одноранговым узлом (62); и
отдают предпочтение кандидату-ретранслятору (RC), задействованному в меньшем числе ретранслируемых соединений, чем другие кандидаты-ретрансляторы (RC).
2. Способ п.1, отличающийся тем, что содержит этап, на котором:
обнаруживают упомянутое преобразование сетевого адреса на основе топологии одноранговой сети (160) и информации соединения, причем упомянутая информация соединения содержит спецификацию характера преобразования сетевого адреса, конечную точку, ассоциированную с первым одноранговым узлом (61) в первой области адресов, и конечную точку, ассоциированную со вторым одноранговым узлом (62) во второй области адресов.
3. Способ п.1, отличающийся тем, что содержит этап, на котором:
выполняют обмен соответствующей информацией соединения первого однорангового узла (61) и второго однорангового узла (62) между первым одноранговым узлом (61) и вторым одноранговым узлом (62) в маршрутизации шаг за шагом посредством одного или более других одноранговых узлов одноранговой сети (160).
4. Способ п.1, отличающийся тем, что содержит этапы, на которых:
отправляют первым одноранговым узлом (61) одноранговому узлу-ретранслятору (R) запрос (610) ретранслируемого соединения, содержащий информацию соединения первого однорангового узла (61);
отправляют одноранговым узлом-ретранслятором (R) первому одноранговому узлу (61) ответ (611) ретранслируемого соединения, содержащий информацию соединения однорангового узла-ретранслятора (R);
устанавливают прямое соединение (612, 613) между первым одноранговым узлом (61) и одноранговым узлом-ретранслятором (R), если нет уже установленного прямого соединения между первым одноранговым узлом (61) и одноранговым узлом-ретранслятором (R);
отправляют первым одноранговым узлом (61) второму одноранговому узлу (62) сообщение (614) обнаруженного ретранслятора, содержащее идентификатор однорангового узла однорангового узла-ретранслятора (R);
оправляют вторым одноранговым узлом (62) одноранговому узлу-ретранслятору (R) запрос (615) ретранслируемого соединения, содержащий информацию соединения второго однорангового узла (62);
оправляют одноранговым узлом-ретранслятором (R) второму одноранговому узлу (62) ответ (616) на запрос ретранслируемого соединения, содержащий информацию соединения однорангового узла-ретранслятора (R);
устанавливают прямое соединение (617) между вторым одноранговым узлом (62) и одноранговым узлом-ретранслятором (R), если нет уже установленного прямого соединения между вторым одноранговым узлом (62) и одноранговым узлом-ретранслятором (R).
5. Способ п.1, отличающийся тем, что способ дополнительно содержит этапы, на которых:
отправляют запрос (210) самонастройки, содержащий информацию соединения однорангового узла (11), одноранговому узлу (ВР) в области общедоступных адресов одноранговой сети (120), в соответствии с чем одноранговый узел (ВР) в области общедоступных адресов одноранговой сети (120) служит в качестве однорангового узла самонастройки; и
ретранслируют посредством однорангового узла самонастройки (ВР) обмениваемых между первым одноранговым узлом (11) и вторым одноранговым узлом (22) сообщений.
6. Способ п.1, отличающийся тем, что способ дополнительно содержит этапы, на которых:
завершают ретранслируемое соединение (710) путем отправки первым одноранговым узлом (61) одноранговому узлу-ретранслятору (R) сообщения (711) отмены размещения ретрансляции, при этом сообщение (711) отмены размещения ретрансляции объявляет ретранслируемое соединение (710) ненужным;
пересылают (712) одноранговым узлом-ретранслятором (R) второму одноранговому узлу (62) сообщение (711) отмены размещения ретрансляции, принятое от первого однорангового узла (61);
отправляют вторым одноранговым узлом (62) одноранговому узлу-ретранслятору (R) сообщение (713) отмены размещения ретрансляции;
пересылают (714) одноранговым узлом-ретранслятором (R) первому одноранговому узлу (61) сообщение (713) отмены размещения ретрансляции, принятое от второго однорангового узла (62); и
после приема первым одноранговым узлом (61) пересланного сообщения (714) отмены размещения ретрансляции завершают ретранслируемое соединение (710).
7. Одноранговый узел (81, 82, 83) одноранговой сети (800), содержащей один или более одноранговых узлов (81) в первой области адресов одноранговой сети (800) и один или более одноранговых узлов (82) во второй области адресов одноранговой сети (800),
причем одноранговый узел (81, 82, 83) содержит средство (811, 821, 832) обнаружения, приспособленное для того, чтобы обнаружить в одноранговой сети (800) преобразование сетевого адреса, предотвращающее прямое соединение между одноранговым узлом (81) и одноранговым узлом (82) другой области адресов; средство (812, 822, 832) определения, приспособленное для того, чтобы определять одноранговый узел (83) одноранговой сети (800) в качестве однорангового узла-ретранслятора; средство (812, 822, 832) ретрансляции, приспособленное для того, чтобы поддерживать ретрансляцию соединения между первым одноранговым узлом (81) в первой области адресов одноранговой сети (800) и вторым одноранговым узлом (82) во второй области адресов одноранговой сети (800); и средство (812, 822, 832) распространения, приспособленное для того, чтобы распространять информацию в конкретной информации соединения в одноранговой сети (800),
причем средство (812, 822, 832) определения дополнительно приспособлено выбирать одноранговый узел-ретранслятор (R) из списка (50) из одного или более кандидатов ретрансляторов (RC), причем список предоставлен одноранговым узлом (81, 82, 83) отличающийся тем, что выбор основан на следующих этапах, на которых:
выбирают кандидата ретранслятора (RC), в котором одно или более прямых соединений, которые уже установлены в одноранговой сети (160), могут быть повторно использованы для ретранслируемого соединения между первым одноранговым узлом (81) и вторым одноранговым узлом (82); и
отдают предпочтение кандидату-ретранслятору (RC), задействованному в меньшем числе ретранслируемых соединений, чем другие кандидаты-ретрансляторы (RC).
8. Телекоммуникационная инфраструктура, содержащая одноранговую сеть (160) с первым одноранговым узлом (61) в первой области адресов одноранговой сети (160) и вторым одноранговым узлом (62) во второй области адресов одноранговой сети (160),
причем телекоммуникационная инфраструктура дополнительно содержит преобразование сетевого адреса, предотвращающее прямое соединение между первым одноранговым узлом (61) и вторым одноранговым узлом (62), и третий одноранговый узел одноранговой сети (160), определенный в качестве однорангового узла-ретранслятора (R), приспособленного для того, чтобы ретранслировать соединение между первым одноранговым узлом (61) и вторым одноранговым узлом (62),
причем первый одноранговый узел (61) и/или второй одноранговый узел (62) приспособлены выбирать одноранговый узел-ретранслятор (R) из списка (50) из одного или более кандидатов ретрансляторов (RC), причем список предоставлен первым одноранговым узлом (61) и/или вторым одноранговым узлом (62), отличающийся тем, что выбор основан на следующих этапах, на которых:
выбирают кандидата ретранслятора (RC), в котором одно или более прямых соединений, которые уже установлены в одноранговой сети (160), могут быть повторно использованы для ретранслируемого соединения между первым одноранговым узлом (81) и вторым одноранговым узлом (82); и
отдают предпочтение кандидату-ретранслятору (RC), задействованному в меньшем числе ретранслируемых соединений, чем другие кандидаты-ретрансляторы (RC).
9. Машиночитаемый носитель, хранящий исполняемые компьютером команды, чтобы заставить компьютер осуществлять способ установления соединения между первым одноранговым узлом (81) в первой области адресов одноранговой сети (800) и вторым одноранговым узлом (82) во второй области адресов одноранговой сети (160), содержащий этапы, на которых:
обнаруживают в одноранговой сети (800) преобразование сетевого адреса, предотвращающее прямое соединение между одноранговым узлом (81) и одноранговым узлом (82) другой области адресов;
определяют одноранговый узел (83) одноранговой сети (800) в качестве однорангового узла-ретранслятора;
поддерживают ретрансляцию соединения между первым одноранговым узлом (81) в первой области адресов одноранговой сети (800) и вторым одноранговым узлом (82) во второй области адресов одноранговой сети (800); и
распространяют информацию в конкретной информации соединения в одноранговой сети (800), и
выбирают одноранговый узел-ретранслятор (R) из списка (50) из одного или более кандидатов ретрансляторов (RC), причем список предоставлен первым одноранговым узлом (81) и/или вторым одноранговым узлом (82),
отличающийся тем, что выбор основан на следующих этапах, на которых:
выбирают кандидата ретранслятора (RC), в котором одно или более прямых соединений, которые уже установлены в одноранговой сети (800), могут быть повторно использованы для ретранслируемого соединения между первым одноранговым узлом (81) и вторым одноранговым узлом (82); и
отдают предпочтение кандидату-ретранслятору (RC), задействованному в меньшем числе ретранслируемых соединений, чем другие кандидаты-ретрансляторы (RC).
Аппарат для очищения воды при помощи химических реактивов | 1917 |
|
SU2A1 |
АРХИТЕКТУРА КАНАЛА ПАКЕТНОЙ ПЕРЕДАЧИ ДЛЯ СЕТЕЙ ДОСТУПА | 1999 |
|
RU2260919C2 |
EP 1713233 A1, 18.10.2006 | |||
DE 102006004025 A1, 09.08.2007 | |||
US 2006294213 A1, 28.12.2006. |
Авторы
Даты
2012-08-27—Публикация
2008-11-13—Подача