Информационные технологии Вестник Нижегородского университета им. Н.И. Лобачевского, 2011, № 1, с. 213-221
УДК 004.652.5
АРХИТЕКТУРЫ ОДНОРАНГОВЫХ СИСТЕМ РАЗРЕШЕНИЯ ИМЕН В СЕТИ ИНТЕРНЕТ
© 2011 г. Ю.В. Панкратов, В.В. Крылов
ООО «МераЛабс», Нижний Новгород
Поступила в редакцию 18.11.2011
Рассматриваются различные архитектуры одноранговых систем разрешения имен сетевых устройств. Описываются разработанная архитектура и алгоритмы поиска на основе графов «тесного мира». Приведены результаты экспериментального измерения производительности прототипа системы, основанной на данной архитектуре.
Ключевые слова: доменное имя, система имен, Интернет, адресация, маршрутизация, сетевой адрес, тесный мир, Р2Р.
Введение
Использование имен для различных сущностей в информационных технологиях и в Интернете в частности имеет своей целью повысить «дружественность» описаний и алгоритмов по сравнению с их бинарными или эквивалентными идентификаторами. Появление Web привело к стандартизации имен информационных ресурсов, размещенных в сети. Несмотря на то, что основным идентификатором сетевого устройства в Интернете является его сетевой адрес, практически всегда устройство адресуется по своему имени.
В сети APRA, предшествовавшей Интернету, преобразование имен устройств в сетевые адреса производилось при помощи специального текстового файла hosts.txt. Этот файл составлялся централизованно на сервере и обновлялся отдельно для каждой из сетевых машин. По мере роста сети стала проявляться проблема своевременной синхронизации данного файла на всех машинах. В 1983 году группа исследователей разработала концепцию и создала первую реализацию системы доменных имен. Основным отличием данной системы был её распределённый характер: информация о сетевых устройствах была разделена на множество областей, доменов. Каждый сервер системы хранил информацию только об устройствах, принадлежащих его домену. Это позволило обеспечить высокую масштабируемость и отказоустойчивость системы.
Для осуществления эффективного поиска данных в системе домены были организованы в
древовидную иерархию. При этом поиск информации начинается с корневого домена и продолжается путем спуска вниз по иерархии доменов до тех пор, пока не будет найден нужный домен. Практический опыт, полученный при эксплуатации системы, подтвердил эффективность таких решений [1]. Однако целостность и функциональность системы до сих пор зависят от корректной работы серверов корневого домена. Это является фактором, ограничивающим масштабируемость и производительность системы.
Можно предположить, что следующим шагом развития систем разрешения имен станет дальнейшая децентрализация и отказ от иерархического подхода к организации данных. В данной работе мы рассматриваем возможную архитектуру одноранговых систем разрешения имен, основанную на использовании математических графов, обладающих свойствами тесного мира.
Обзор работ
Идея о создании одноранговой системы разрешения имен в сети Интернет не является новой. В 2002 году группа исследователей из МТИ изучала возможность создания системы разрешения имен на основе распределенных хеш-таблиц (DHT). Одним из результатов их исследований стало наблюдение, что время отклика при некэшируемых ответах для системы на основе DHT намного превышает время отклика системы DNS. Авторы приходят к выводу, что система разрешения имен сетевых
устройств не может быть построена на основе DHT и на основе каких-либо одноранговых сетей в принципе [2, 3].
Роберт Кан, при поддержке DARPA и корпорации CNRI, имплементировал систему Handle [4]. Система Handle представляет собой распределенное хранилище персистентных идентификаторов цифровых документов и других Интернет-ресурсов. Помимо множества локальных регистров идентификаторов (Local Handle Services), управляемых локально их владельцами, существует уникальный глобальный регистр идентификаторов (Global Handle Registry). Данный регистр поддерживает глобальную целостность системы и позволяет определить, к какому из локальных регистров принадлежит выбранный идентификатор. Таким образом, для поддержания целостности системы был введен дополнительный уровень иерархии.
В рамках системы доменных имен для хранения нестандартной дополнительной информации о ресурсе часто используется тип ресурсной записи NAPTR [5]. Так, например, этот тип записей используется для хранения контактной информации (номеров телефонов) в домене .tel [6].
Одним из наиболее популярных типов сетевых приложений, основанных на одноранговой архитектуре, стали сети пирингового файлооб-мена. Подобная популярность положила начало научному исследованию и проектированию систем хранения и поиска информации, основанных на одноранговых сетях [7-13].
Для одноранговых систем характерно отсутствие централизованной инфраструктуры, работа таких систем зависит от добровольного предоставления ресурсов участников в общее пользование. Основной задачей является организация участников сети таким образом, который позволял бы им взаимодействовать наиболее эффективным способом. Применительно к системам файлообмена это означает организацию участников в распределённый индекс, позволяющий пользователям сети быстро и эффективно находить нужный контент [8-13].
Системы пирингового файлообмена можно классифицировать по используемым ими методам поиска. Система Napster, ставшая первой успешной системой файлообмена, использовала централизованный подход к поиску данных. Поисковые запросы посылались к центральному серверу, однако сам обмен файлами происходил непосредственно между участниками сети. Такой подход позволяет производить быструю обработку поисковых запросов, сохраняя при этом высокую масштабируемость
системы. Однако при таком подходе предъявляются высокие требования, в том числе в плане производительности, к центральному серверу, так как он является «единой точкой отказа» всей системы.
Пиринговые сети, не использующие централизованной инфраструктуры в своей работе, могут быть классифицированы на структурированные и неструктурированные. Структурированные пиринговые сети опираются на различные реализации DHT, например CAN, Chord, Pastry и Tapestry, и распределяют ответственность за каждый файл между участниками сети [9-13]. В таких сетях производится «направленный поиск», позволяющий быстро находить необходимые файлы. В свою очередь, неструктурированные пиринговые сети, такие как Gnutella и Freenet [7], не имеют средств контроля над размещением файлов в сети и, как правило, используют алгоритмы «наводнения» (англ. Flooding) для поиска информации.
Алгоритмы направленного поиска более эффективны, так как позволяют эффективно маршрутизировать запросы пользователей к узлам сети, хранящим нужные файлы. Такие алгоритмы находят целевой контент за меньшее число шагов и, следовательно, генерируют меньше сетевого трафика.
Алгоритмы типа «Flooding» менее эффективны, они не могут гарантировать нахождение искомых данных, даже если последние присутствуют в сети. Однако такие алгоритмы не требуют затрат на настройку и администрирование сети и позволяют пользователям задавать сложные поисковые запросы. Такие свойства неструктурированных P2P-систем делают их более привлекательными для массового пользователя [14, 15].
Перспективность одноранговых телекоммуникационных систем подтверждается тем фактом, что Международный союз электросвязи (ITU-T) выпустил ряд рекомендаций, регламентирующих обеспечение информационной безопасности в одноранговых коммуникационных системах [16, 17].
На сегодня одноранговые сети получили широкое распространение в построении распределенных индексов для сетей пирингового файло-обмена. Основными проблемами в данной области является эффективный поиск информации и маршрутизация в одноранговой сети.
Постановка задачи
Основной задачей нашей работы являлась разработка эффективной системы управления
адресацией узлов и маршрутизацией трафика в больших компьютерных сетях. Мы видим своей задачей создание такой системы, которая позволяла бы осуществлять поиск информации в глобальной сети без обращения к множеству внешних сервисов.
Эта цель может быть достигнута путем создания глобального распределенного хранилища информации о сетевых устройствах. Для того чтобы такое хранилище информации было практически востребованным в современном мире, оно должно отвечать следующим требованиям: 1) масштабируемость при взрывообразном росте; 2) мобильность пользователей; 3) информационная безопасность. Рассмотрим каждое из этих требований более подробно.
Масштабируемость. На данный момент в Интернете подключено около 750 миллионов Интернет-устройств (зарегистрированных в DNS), и их число продолжает расти по экспоненте (рис. 1), как и число пользователей Интернета (рис. 2).
При разработке глобальной системы имен необходимо учесть масштаб, в котором ей придется работать. Система должна быть в состоянии хранить данные о миллиардах сетевых устройств и предоставлять их пользователям по запросу.
Мобильность пользователей. Как видно из рис. 2, рост пользователей сети не останавливается, а, наоборот, продолжает ускоряться. Все больше пользователей начинает выходить в Интернет через мобильные устройства: сотовые телефоны или ноутбуки. Учитывая этот фактор, система разрешения имен должна быть равнодоступной в любой точке планеты для всех пользователей, имеющих выход в Интернет. Также необходимо предусмотреть механизмы динамического обновления информации об устройстве, например информации о его географическом положении при перемещении устройства.
Безопасность. Под безопасностью будем понимать, в нашем контексте, обеспечение таких базовых функциональностей, как разделение доступа, целостность данных и аутентификации источников. Данные, хранимые системой имен, являются публичными, поэтому защита от несанкционированного доступа к ним не является обязательной. Более важными для системы являются задачи обеспечения доступности и аутентификации информации. В рамках нашей системы мы планируем обеспечить аутентификацию данных при помощи механизмов цифровой подписи; неиерархическая структура системы и эффективные алгоритмы поиска должны обеспечить доступность информации.
Система, удовлетворяющая вышеперечисленным требованиям, должна быть полностью распределенной децентрализованной системой, поддерживающей высокоскоростную параллельную обработку данных множеством сущностей. Эта концепция весьма схожа с концепцией параллельной обработки данных с использованием пространств кортежей [18]. В данной концепции кортежи, упорядоченные конечные множества элементов, хранятся в репозитории, поддерживающем параллельный доступ к ресурсам. Основной проблемой при реализации распределенного репозитория кортежей является выбор архитектуры, которая сочетала бы высокую масштабируемость и производительность с эффективным поиском данных. Существуют различные реализации распределенных репозиториев кортежей, многие из них основаны на использовании распределенных хеш-таблиц [19, 20].
Метризованный тесный мир. В нашей работе мы использовали собственный механизм организации данных. Элементы данных, кортежи, объединялись в распределенную структуру данных, называемую «Метризованный тесный мир» (МБ*), представляющую собой математический граф, обладающий свойствами «тесного мира» [21, 22, 23].
Базовым принципом графов МБ* является хранение каждого элемента данных в виде комбинации самих данных и системы ссылок на другие элементы. Ссылки на другие элементы создаются на основе вычисления метрики разности между элементами. Данная метрика характеризует степень различия между двумя элементами. При условии, что определена одна метрика или более, алгоритмы МБ* могут построить одну или несколько систем ссылок между хранимыми элементами данных. Другие методы создания таких графов описаны в [23, 24]. Наш метод предполагает динамическое создание графов из заданного множества вершин. Пусть V - множество элементов, пронумерованных в порядке их появления. Данные элементы должны быть объединены системой двусторонних ссылок Е таким образом, чтобы получившийся граф О = (V, Е) был графом, обладающим свойствами «тесного мира».
Если на множестве элементов V определена метрика ^ Я, становится возможным
формировать ссылки между элементами таким образом, что элементы, близкие по данной метрике, оказываются на минимальном расстоянии друг от друга. Ниже приведен алгоритм сборки графа МБ* с параметрами т и п, где п - количество шагов алгоритма (что определяет точ-
Число пользователей, млн. чел.
300.000.000
Source: Internet Systems Consortium Iwww isr, nrnl
Рис. 1. Рост числа Интернет-хостов с 1994 по 2010 год
Год
Source: www.internetworldstats.com - January, 2008
Рис. 2. Рост числа пользователей Интернета с 1995 по 2010 год
ность сборки), а т - целевое количество ссылок, формируемое вновь присоединенным элементом; п > т. Предположим, что в структуру, уже содержащую і-1 элементов, добавляется і-й элемент. Алгоритм сборки в данном случае будет соответствовать блок-схеме, представленной на рис. 3.
Использование метрик разности при сборке графа позволяет реализовать эффективные алгоритмы поиска в таких графах для произвольного формата хранения данных. Теоретически оцениваемое время поиска в таких структурах пропорционально 1о§^, где N - общее количество элементов системы.
Свойства графа и эффективность алгоритмов поиска в значительной мере зависят от свойств выбранной метрики. При этом невозможно гарантировать, что присоединяемый элемент будет соединен ссылкой с ближайшим по метрике элементом. Чтобы убедиться в этом, пришлось бы измерить расстояние до каждого из элементов данных, хранимых в структуре. Чтобы решить эту проблему, необходимо ввести дополнительное условие: метрика должна индуцировать отношение частичного порядка на множестве элементов, т.е. для любой пары элементов можно было бы утверждать, который из них предшествует другому. В таком случае каждый элемент должен быть
Рис. 3. Блок-схема алгоритма добавления элемента в систему MSW
соединен с предшествующим и последующим элементами согласно метрике.
В таком случае алгоритм создания отличается от приведенного выше и состоит из трех шагов. На первом шаге находится элемент Утт, соседние узлы которого обладают большими или равными значениями по метрике по отношению к элементу Vi, добавляемому в систему. Элемент Vmm является «локальным минимумом» метрики между элементом Vi и остальными элементами структуры. Элемент Vmm является предшествующим или последующим элементом Vi. На втором шаге исполнения алгоритма элемент Vi соединяется со своим предшествующим и последующим элементами, одним из которых является Утт, а другим - один из соседних с Vmm элементов. На третьем шаге выполняется алгоритм, приведенный выше, для того чтобы найти и установить связи с m ближайших по метрике элементов, при условии, что Vk = = Утт и П = m.
Одним из ограничений такого подхода является зависимость эффективности алгоритма от порядка добавления элементов: эффективность алгоритма максимальна при добавлении элементов, чьи значения распределены случайным образом, относительно порядка, устанавливаемого метрикой.
Экспериментальная часть
В процессе исследования характеристик прототипа одноранговой системы имен были проведены эксперименты на добавление потоков данных в хранилище на основе графов «тесного мира». В качестве тестовых входных данных использовались простейшие кортежи
вида: адрес, имя устройства. В качестве адресов использовались сетевые адреса протокола 1Ру4, создаваемые в ходе эксперимента по шаблону: 192.XX.XX.XX. Доменные имена создавались по шаблону: nameXXXXX.com, где Х обозначает случайным образом генерируемые в пределах от 0 до 9 цифры.
Критерием оптимальной работы системы может служить логарифмическая зависимость времени добавления от общего числа элементов системы.
В качестве тестового стенда была собрана сеть из трёх компьютеров, на которых были установлены МБ'^серверы прототипа системы (рис. 4). На двух машинах были установлены серверы, на третьей были установлены как МБ'^сервер, так и клиентское приложение, служившее консолью оператора. Операция добавления элементов была выбрана для исследования системы потому, что она эквивалентна двум операциям: поиску и вставке элемента.
Логарифмическую зависимость времени добавления от количества элементов удалось получить уже при добавленных первых 40000 элементов (рис. 5). При добавлении в систему 300000 элементов (что заняло 82 часа) удалось получить нелинейную зависимость, по форме близкую к логарифмической (рис. 6).
По полученной выборке значений была построена нелинейная модель зависимости времени добавления узлов от количества узлов.
В общем случае нелинейные регрессионные модели имеют вид:
У = / (®, х) + V.
Они могут быть представлены в виде скалярного произведения:
Рис. 4. Структура тестового стенда. Три MSW-сервера, объединённых локальной сетью
1, МС
4000 г
3000
2000
—I---- ----------------------- --- --- ----.--- --------------1--- ^ п, ед.
0 10 000 20 000 30 000 40 000
Рис. 5. Экспериментальная и теоретическая зависимости времени добавления элемента от общего числа элементов системы для первых 40000 добавляемых элементов
I, МС
5000г
4000
3000
0 50 000 100 000 150 000 200 000 250 000 300 000 П’ '
Рис. 6. Экспериментальная зависимость времени добавления элемента от общего числа элементов системы для 300000 добавляемых элементов
П
/(ш, х) = (ш, g(х)) = Х®г • §г (х) ,
I = 1
где ш = [ш1,...,шП] - параметры регрессионной модели, х - свободная переменная из про-
странтва Гп, у - зависимая переменная, V -случайная величина и g = [gl,...,gП] - функция из некоторого заданного множества. Для оценки качества модели используется критерий суммы квадратов регрессионных остатков:
n
s = £ (.У, - f (ю, X))2 . i=1
В данном случае получили модель следующего вида:
f (ю, х) = log1017 (300.561+997.826х).
Таким образом, можно говорить о логариф-мичности зависимости времени добавления узлов от количества узлов при добавлении.
Заключение
В данной статье мы рассмотрели одну из возможных архитектур для организации глобальной системы разрешения имен в Интернете. В основе этой архитектуры лежит концепция пространства кортежей (с некоторыми оговорками). Сам репозиторий кортежей предполагается реализовать на основе структуры данных «Метризованный тесный мир», позволяющей создавать распределённые высокомасштабируемые хранилища информации и разрабатывать эффективные алгоритмы поиска, чья вычислительная сложность пропорциональна логарифму от размера хранилища. Такой подход к организации данных представляется нам достаточно мощным и гибким инструментом для решения задач такого класса.
В плане практического применения нам кажется возможным создание малых сетевых сервисов разрешения имен, которые могут быть впоследствии объединены в единую базу данных о сетевых устройствах.
Обобщением такой системы имен может стать система комплексных персистентных идентификаторов сетевых устройств, которые могут хранить различную информацию об устройствах, что позволит производить более сложные виды поиска.
Список литературы
1. Mockapetris P.V., Dunlap K.J. Development of the Domain Name System // Proc. ACM SIGCOMM, Stanford, CA, Aug. 1998.
2. Cox R., Muthitacharoen A., Morris R. Serving DNS using a peer-to-peer lookup service // 1st International Workshop on Peer-to-Peer Systems, Cambridge, MA, Mar. 2002.
3. Cox R., Muthitacharoen A., Morris R.T. DNS and DHTs: not quite perfect together // First International Peer-to-Peer Symposium, March 2002. Режим доступа: http://swtch.com/~rsc/talks/ iptps02.pdf
4. Kah R., Wilensky R. A framework for distributed digital object services // International Journal on Digital Libraries. 2006. Vol. 6. N. 2.
5. RFC 3761. Режим доступа: http://tools.ietf. org/html/rfc3761
6. «NAPTR Records in .tel», whitepaper Telnic Ltd., September 2008. Режим доступа: dev.telnic. org/docs/naptr.pdf
7. Clarke I., Sandberg O., Wiley B., Hong T. Free-net: A distributed anonymous information storage and retrieval system // Proceedings of the ICSI Workshop on Design Issues in Anonymity and Unobservability, Berkeley, CA, 2000.
8. Druschel P., Rowstron A. Past: A large-scale, persistent peer-to-peer storage utility // Proceedings of the Eighth IEEE Workshop on Hot Topics in Operating Systems (HotOS-VIII), Schoss Elmau, Germany, May 2001.
9. Ratnasamy S., Francis P., Handley M. et al. A scalable content-addressable network // Proceedings of the ACM SIGCOMM 2001 Technical Conference, San Diego, CA, USA, August 2001.
10. Stoica I., Morris R., Karger D. et al. Chord: A scalable content-addressable network // Proceedings of the ACM SIGCOMM 2001 Technical Conference, San Diego, CA, USA, August 2001.
11. Waldman M., Rubin A., Cranor L. Publius: A robust, tamper-evident, censorship-resistant, web publishing system // Proceedings of the 9th USENIX Security Symposium, August 2000.
12. Rowstron A., Druschel P. Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems // Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), Nov. 2001.
13. Zhao B., Kubiatowicz K., Joseph A. Tapestry: An infrastructure for fault-resilient wide-area location and routing. Technical Report UCB//CSD-01-1141, University of California at Berkeley Technical Report, April 2001.
14. Cholvi V., Felber P., Biersack E. Efficient search in unstructured peer-to-peer networks European Transactions on Telecommunications. Special Issue on P2P Networking and P2P Services, No.15, 2004.
15. Веб-сайт проекта Netsukuku [Электронный ресурс]. Режим доступа: http://lab.dyne.org/Netsukuku
16. Framework for secure peer-to-peer communications. Recommendation ITU-T X.1161. 2008.
Режим доступа: http://www.itu.int/rec/T-REC-X.1161-200805-I
17. Security architecture and operations for peer-to-peer networks. Recommendation ITU-T X.1162. 2008. Режим доступа: http://www.itu.int/rec/T-REC-X.1162-200805-I
18. Gelernter D., Carriero N. Coordination languages and their significance // Communications of the ACM. 1992. 35(2). Р. 97-107.
19. Веб-сайт проекта Entangled [Электронный ресурс]. Режим доступа: http://entangled.sourceforge.net/
20. Ranjan R., Harwood A., Buyya R. Peer-to-peer tuple space: a novel protocol for coordinated resource provisioning. Technical Report GRIDS-TR-2007-14, Grids Laboratory, CSSE Department, The University of Melbourne, Australia, 2007.
21. Krylov V., Logvinov A., Ponomarenko A., Ponomarev D. Metrized small world properties data structure // Proceedings of 17th International Conference
on Software Engineering and Data Engineering. 2008. P. 203-208.
22. Krylov V., Logvinov A., Ponomarenko A., Ponomarev D. Active database architecture for XML documents // Proceedings of 21st International Conference on Computer Applications in Industry and Engineering. 2008. P. 118-123.
23. Aiello F.C.W., Lu L. Random evolution in massive graphs // Proceedings of the 42nd IEEE on Foundations of Computer Science. FOCS, IEEE Computer Society, 2001. P. 510.
24. Schmitz C. Self-organization of a small world by topic // Proc. of the 1st Intl. Workshop on Peer-to-Peer Knowledge Management, Boston, MA, USA, 2004.
ARCHITECTURES OF INTERNET PEER-TO-PEER NAME RESOLUTION SYSTEMS
Yu. V. Pankratov, V. V. Krylov
This article reviews different architectures of peer-to-peer name resolution systems. The authors propose an architecture and data search algorithms created on the basis of «small world» networks’ properties. The article describes the concept and the results of an experimental analysis of the proposed system’s prototype.
Keywords: domain name, name system, Internet, routing, network address, small world, P2P.