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].
См. такжеПравить
ПримечанияПравить
- ↑ Руссинович М., Соломон Д. Внутреннее устройство Microsoft Windows. — 6-е изд. — СПб.: Питер, 2013. — 800 с. — ISBN 978-5-459-01730-4.
- ↑ 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.
СсылкиПравить
- Peer Name Resolution Protocol — на сайте microsoft.com
- Протокол PNRP — на сайте microsoft.com