Способ установления соединения

Иллюстрации

Показать все

Изобретение относится к области передачи данных. Технический результат заключается в оптимизации установления соединения в одноранговой (Р2Р) сети с преобразованием сетевого адреса (NAT). Сущность изобретения заключается в том, что соединение устанавливается между первым одноранговым узлом (61) в первой области адресов одноранговой сети (160) и вторым одноранговым узлом (62) во второй области адресов одноранговой сети (160). В одноранговой сети (160) обнаруживается преобразование сетевого адреса, которое предотвращает прямое соединение между первым одноранговым узлом (61) и вторым одноранговым узлом (62). Третий одноранговый узел одноранговой сети (160) определяется в качестве однорангового узла-ретранслятора (R). Одноранговый узел-ретранслятор (R) ретранслирует соединение между первым одноранговым узлом (61) и вторым одноранговым узлом (62). 4 н. и 5 з.п. ф-лы, 8 ил.

Реферат

Настоящее изобретение относится к способу установления соединения в одноранговой сети, а также к одноранговому узлу, телекоммуникационной инфраструктуре, содержащей одноранговую сеть, и к компьютерному программному продукту для осуществления упомянутого способа.

Сетевые операторы (поставщики услуг связи и организации) имеют сильную потребность в легких решениях с минимальными 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 двух одноранговых узлов содержит список кандидатов-ретрансляторов. Два списка одноранговых узлов объединяются. Вследствие чего каждый одноранговый узел, который интегрирован в наложение, должен стать осведомленным, по меньшей мере, об одном кандидате-ретрансляторе. А одноранговые узлы, которые готовы присоединиться к наложению, знают одноранговый узел самонастройки, который расположен в общей области. Тем не менее, возможно, будет необходимо обходное решение для обнаружения одноранговых узлов, которые предлагают услуги ретрансляции. После обмена информацией соединения оба одноранговых узла имеют одинаковый список кандидатов-ретрансляторов.

Каждый кандидат-ретранслятор в списке оценивается, чтобы принять решение, с каким кандидатом-ретранслятором контактировать в первую очередь. Предпочтительно кандидаты-ретрансляторы оценены эвристическими значениями. Двумя подходящими значениями для оценки являются повторное использование и концентрация.

Значение повторного использо