Это не официальный сайт wikipedia.org 01.01.2023

Peer Name Resolution Protocol — Википедия

Peer Name Resolution Protocol

Peer Name Resolution Protocol (PNRP) — протокол, разработанный компанией Microsoft, применяющийся в одноранговой компьютерной сети с целью обращения к узлам сети по имени узла, которое связано с адресом IPv6. Протокол не предполагает использование сервера, обновление списка имен происходит динамически. Имена узлов (пиров) в сетях, использующих протокол PNPR состоят из двух частей: полномочий (Authority) и классификатора (Classifier). Часть «Полномочий» предназначена для безопасных клиентов сети и идентифицируются SHA-1 хэшем и связанного с ним открытым ключом, а для небезопасных клиентов эта часть имеет нулевой значение. Часть «Классификатор» — представляет собой строку, в которой идентифицируется служба, предоставляемой узлом сети.

ИсторияПравить

2001 год — PNRP версия 1, был впервые представлен на конференции P2P.

2003 год — PNRP версии 1, включен в поставку Windows XP, а после перенесен в Windows Vista под версией 2.0.

Windows Remote Assistance в Windows 7 использует PNRP, Teredo и IPv6 при выборе опции Easy Connect.

Права на протокол PNRP защищены патентом США под номером 7,065,587, выданным 20 Июня 2006.

Компоненты PNPRПравить

Структурно PNPR состоит из двух компонент[1]:

  • Полномочия (Authority) — 128 битный код используется для безопасных пиров (узлов), полномочия хешируются на основе SHA-1 и связанного с ним открытым ключом. В случае применения небезопасного узла поле заполняется нулями.
  • Классификатор (Classifier) — 128 бит которые идентифицируют службу, предоставляемые узлом.

Для работы необходим IPv6 и два глобальных облака, одно из которых соответствует всем IPv6 адресам, а другое служит для локальной связи, являющимся аналогом IPv4.

Принцип работы PNRPПравить

Создание идентификатораПравить

Создания идентификатора проходит в три этапа :

  • Происходит хеширование P2P ID 128 битным кодом, если используется безопасное хеширование, то используется открытый ключ, если не безопасное, то идентификатор заполняется нулями;
  • Создается 128 битный идентификатор службы, которое описывает расположение службы;
  • Идентификатор P2P объединяется с идентификатором службы образуя идентификатор PRNP ID.

Имена незащищенных пиров публикуются без подписи, в результате чего проверка невозможна.

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

Одноранговое имя может представлять собой как адрес в локальной сети, так и в сети интернет.

Публикация PNRPПравить

Разрешение имени осуществляется в два этапа:

  • Этап 1: определяется конечная точка — запрашивающий узел определяет адрес IPv6 , на котором расположена необходимая служба, если служба не найдена на ближайшем узле, то осуществляется последовательный перебор на следующие узлы, расположенные дальше от запрашиваемого узла;
  • Этап 2: выполняется разрешение PNRP ID — выполняется запрос для идентификатора PRNP запрашиваемой службы, который возвращает комментарий состоящий из 4кБ данных, связанных с службой.


Сравнение PNRP с распределенными хеш-таблицамиПравить

Внутренне PNRP использует архитектуру, аналогичную системам распределенных хеш-таблиц, таким как Chord или Pastry. Имя однорангового узла хешируется для создания 128-битного идентификатора, а DHT-подобный алгоритм используется для получения местоположения хоста, публикующего этот идентификатор. Но при всех сходствах, существуют и некоторые различия.

Системы DHT, такие как Chord или Pastry, хранят хеши в узлах, максимально близких к хосту, а алгоритм маршрутизации устроен так, чтобы обеспечить поиск этого узла. PNRP же, напротив, всегда хранит хеш на узле, который публикует идентификатор. Таким образом, узел будет иметь столько же записей в системе маршрутизации, сколько и идентификаторов, которые он использует. В результате складывается такая ситуация, что PNRP приходится жертвовать скоростью маршрутизации ради повышенной безопасности и надежности.

В отличие от систем DHT, PRNP разрешает нескольким хостам (например, одной группе), использовать одно и то же имя. В DHT предполагается уникальность имен. Внутренний индекс фактически состоит из 128-битного хеша имени однорангового узла и 128-битного идентификатора местоположения, полученного из IPv6-адреса узла.

Вместо таблицы маршрутизации в PNRP используется кэш записей. Каждая новая запись появляется за счет проходящего через сеть трафика. За счет этого обеспечивается актуальность информации о сети.

ПоддержкаПравить

Windows XP — PNPR версия 1, версия 2.0 в загружаемом пакете;

Windows Vista — PNPR версия 2.0

Windows Vista SP1, Windows Server 2008 и Windows XP SP3 была добавлена версия протокола PNRP 2.1.

Версия 2.0 не доступна пользователям Windows XP Professional x64 Edition, а также всех редакций Windows Server 2003[2].

См. такжеПравить

ПримечанияПравить

  1. Руссинович М., Соломон Д. Внутреннее устройство Microsoft Windows. — 6-е изд. — СПб.: Питер, 2013. — 800 с. — ISBN 978-5-459-01730-4.
  2. Peer Name Resolution Protocol  (неопр.). Дата обращения: 31 января 2019. Архивировано 28 января 2019 года.

ЛитератураПравить

  • Руссинович М., Соломон Д. Внутреннее устройство Microsoft Windows. — 6-е изд. — СПб.: Питер, 2013. — С. 755—757. — 800 с. — ISBN 978-5-459-01730-4.
  • James Pyles, Jeffrey L. Carrell, Ed Tittel. Guide to TCP/IP: IPv6 and IPv4. — Fifth Edition. — Boston, USA: Cengage Learning, 2017. — С. 476—478.

СсылкиПравить