4824
правки
Irina (обсуждение | вклад) (Новая страница: «== Ключевые слова и синонимы == Одноранговая сеть (''Peer to peer''); перекрытие, оверлей (''Overlay''); оверлейная сеть (''Overlay network''); DHT; распределенная хэш-таблица (''Distributed hash table''); CDN; сеть доставки контента (''Content delivery network''); совместный доступ к файлам (''File sharing''); совмес...») |
Irina (обсуждение | вклад) м (→Применение) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 12: | Строка 12: | ||
Из-за своей симметричной и бессерверной природы такие сети называются P2P-сетями. В последующем обсуждении узлы, участвующие в сети, будут также называться пирами (peers). | Из-за своей симметричной и бессерверной природы такие сети называются ''P2P''-сетями. В последующем обсуждении узлы, участвующие в сети, будут также называться ''пирами'' (peers). | ||
Наиболее влиятельным механизмом в этой области является последовательное | Наиболее влиятельным механизмом в этой области является ''последовательное хэширование'', впервые примененное в работе Каргера и др. [21]. Идея приблизительно заключается в следующем. Часто хорошим способом организации каталога поиска является хэш-таблица, обеспечивающая быстрый доступ к данным со сложностью O(1). Для масштабирования и обеспечения высокой доступности сервисов поиска мы разбиваем хэш-таблицу на части и назначаем разные части разным серверам. Например, если в хэш-таблице есть записи от 1 до <math>n</math>, а в системе поиска участвуют <math>k</math> серверов, мы можем дать возможность каждому серверу выбрать виртуальный идентификатор от 1 до <math>n</math> случайным образом. Тогда сервер <math>i</math> будет отвечать за значения ключей, которые ближе к <math>i</math>, чем к идентификатору любого другого сервера. При хорошей рандомизации хэш-ключей мы можем получить более или менее сбалансированное распределение информации между нашими <math>k</math> серверами. Ожидается, что каждый сервер будет отвечать за <math>(n/k)</math> ключей. Кроме того, отключение или подключение сервера затрагивает только один или два других сервера с соседними виртуальными идентификаторами. | ||
Сеть серверов, реализующих последовательное | Сеть серверов, реализующих последовательное хэширование, называется ''распределенной хэш-таблицей'' (DHT). Многие современные сети совместного использования ресурсов и практически все академические исследовательские проекты в этой области построены на идее DHT. | ||
Задача поддержки DHT состоит из двух частей: | Задача поддержки DHT состоит из двух частей: | ||
Оверлейная маршрутизация | '''Оверлейная маршрутизация''' | ||
Пусть имеется хэш-ключ i. Начиная с любого узла r в сети, задача заключается в том, чтобы найти сервер s, диапазон ключей которого содержит i. Имя ключа i не имеет отношения к какому-либо реальному сетевому адресу, например IP-адресу узла, и поэтому мы не можем использовать базовую IP-инфраструктуру для поиска s. Оверлейная сеть маршрутизации связывает узлы и предоставляет им протокол маршрутизации, так что r может направиться к s, используя цель маршрутизации i. | Пусть имеется хэш-ключ <math>i</math>. Начиная с любого узла <math>r</math> в сети, задача заключается в том, чтобы найти сервер <math>s</math>, диапазон ключей которого содержит <math>i</math>. Имя ключа <math>i</math> не имеет отношения к какому-либо реальному сетевому адресу, например IP-адресу узла, и поэтому мы не можем использовать базовую IP-инфраструктуру для поиска <math>s</math>. Оверлейная сеть маршрутизации связывает узлы и предоставляет им протокол маршрутизации, так что <math>r</math> может направиться к <math>s</math>, используя цель маршрутизации <math>i</math>. | ||
'''Динамическая поддержка''' | |||
Динамическая поддержка | |||
DHT должны работать в очень динамичной среде, где размер сети не известен заранее, и где нет постоянных серверов для поддержки хэш-функции или оверлейной сети (предполагается, что все серверы эфемерны). Это особенно актуально для P2P-сети, где серверами являются временные пользователи, которые могут приходить и уходить по своему усмотрению. Следовательно, должен существовать децентрализованный протокол, исполняемый присоединяющимися и уходящими пирами, который бы поступательно поддерживал структуру системы. Кроме того, присоединяющийся пир должен быть способен корректно выполнить этот протокол, изначально имея информацию только об одном, произвольном узле сети. | DHT должны работать в очень динамичной среде, где размер сети не известен заранее, и где нет постоянных серверов для поддержки хэш-функции или оверлейной сети (предполагается, что все серверы эфемерны). Это особенно актуально для P2P-сети, где серверами являются временные пользователи, которые могут приходить и уходить по своему усмотрению. Следовательно, должен существовать децентрализованный протокол, исполняемый присоединяющимися и уходящими пирами, который бы поступательно поддерживал структуру системы. Кроме того, присоединяющийся пир должен быть способен корректно выполнить этот протокол, изначально имея информацию только об одном, произвольном узле сети. | ||
Одним из первых проектов оверлейных сетей был Chord [35], в честь которого названа запись в энциклопедии (2001; Стойка, Моррис, Каргер, Каашук, Балакришнан). Более подробная информация о Chord приведена ниже. | Одним из первых проектов оверлейных сетей был '''Chord''' [35], в честь которого названа запись в энциклопедии (2001; Стойка, Моррис, Каргер, Каашук, Балакришнан). Более подробная информация о Chord приведена ниже. | ||
== Основные результаты == | == Основные результаты == | ||
Строка 51: | Строка 50: | ||
'''Chord ''' | '''Chord ''' | ||
Система Chord была создана в Массачусетском технологическом институте и далее развивалась в рамках проекта IRIS научной установки ядерного синтеза (FNSF) (http://project-iris.net/). Некоторые аспекты дизайна Chord [35] оказали влияние на последующие системы. Кратко поясним основную структуру Chord. Узлы имеют двоичные идентификаторы, назначаемые равномерно случайным образом. Узлы расположены в связанном кольце в соответствии с их виртуальными идентификаторами. Кроме того, каждый узел имеет короткие ссылки на другие узлы вдоль кольца, связывающие узел i с узлом, находящимся на расстоянии | Система Chord была создана в Массачусетском технологическом институте и далее развивалась в рамках проекта '''IRIS''' научной установки ядерного синтеза (FNSF) (http://project-iris.net/). Некоторые аспекты дизайна Chord [35] оказали влияние на последующие системы. Кратко поясним основную структуру Chord. Узлы имеют двоичные идентификаторы, назначаемые равномерно случайным образом. Узлы расположены в связанном кольце в соответствии с их виртуальными идентификаторами. Кроме того, каждый узел имеет короткие ссылки на другие узлы вдоль кольца, связывающие узел <math>i</math> с узлом, находящимся на расстоянии <math>2^i</math> от него в пространстве виртуальных идентификаторов. Таким образом, можно постепенно продвигаться к цели, уменьшая расстояние в два раза на каждом шаге. Маршрутизация в среднем требует <math>log \; n</math> переходов для достижения любой цели в сети, содержащей <math>n</math> узлов. Каждый узел поддерживает примерно log n связей, обеспечивая возможность маршрутизации на геометрически возрастающие расстояния. | ||
'''Постоянное состояние каждого узла''' | '''Постоянное состояние каждого узла''' | ||
Несколько алгоритмов оверлейных сетей были разработаны с целью свести к минимуму объем информации о состоянии сети, хранимой каждым узлом в оверлее. Мы называем состояние, хранимое узлом, его степенью, поскольку она в основном отражает количество связей с другими узлами. Viceroy [23] стала первым примером динамической сети, в которой каждый узел хранит только пять связей с другими узлами сети и прокладывает маршрут к любому другому узлу за логарифмическое число переходов – log n для сети из узлов. Viceroy обеспечил динамическую эмуляцию сети типа «бабочка» (см. в [ ] справочное описание сетей взаимосвязей типа «бабочка»). Позже появилось несколько эмуляций сетей De Bruijn, включая базовую сеть Абрахама и др. (AAABMP) [ ], сеть с делением расстояний пополам [26], D2B [13] и Koorde [ ]. Оверлейные сети с константными степенями слишком хрупки для практических целей и могут легко снизить производительность или даже распасться при возникновении сбоев. Исследование оверлейных сетей в условиях оттока пользователей продемонстрировало эти моменты [ ]. И в самом деле, насколько известно, ни одна из таких сетей с константной степенью не была построена. Их главный вклад и основная причина упоминания этих работ здесь – это знание того, что в принципе возможно привести состояние каждого узла к простой и небольшой константе. | Несколько алгоритмов оверлейных сетей были разработаны с целью свести к минимуму объем информации о состоянии сети, хранимой каждым узлом в оверлее. Мы называем состояние, хранимое узлом, его ''степенью'', поскольку она в основном отражает количество связей с другими узлами. '''Viceroy''' [23] стала первым примером динамической сети, в которой каждый узел хранит только пять связей с другими узлами сети и прокладывает маршрут к любому другому узлу за логарифмическое число переходов – <math>log \; n</math> для сети из <math>n</math> узлов. Viceroy обеспечил динамическую эмуляцию сети типа «бабочка» (см. в [11] справочное описание сетей взаимосвязей типа «бабочка»). Позже появилось несколько эмуляций сетей De Bruijn, включая базовую сеть Абрахама и др. (AAABMP) [ ], '''сеть с делением расстояний пополам''' [26], '''D2B''' [13] и '''Koorde''' [20]. Оверлейные сети с константными степенями слишком хрупки для практических целей и могут легко снизить производительность или даже распасться при возникновении сбоев. Исследование оверлейных сетей в условиях оттока пользователей продемонстрировало эти моменты [18]. И в самом деле, насколько известно, ни одна из таких сетей с константной степенью не была построена. Их главный вклад и основная причина упоминания этих работ здесь – это знание того, что в принципе возможно привести состояние каждого узла к простой и небольшой константе. | ||
'''Сеть с адресуемым содержимым''' | '''Сеть с адресуемым содержимым''' | ||
Сеть с адресуемым содержимым (CAN) [ ], разработанная в ICSI, строит сеть как виртуальное d-мерное пространство, присваивая каждому узлу d-мерный идентификатор. Топология маршрутизации напоминает d-мерный тор. Маршрутизация осуществляется по евклидовым координатам в каждом измерении, что дает стратегию маршрутизации с | Сеть с адресуемым содержимым (CAN) [31], разработанная в ICSI, строит сеть как виртуальное <math>d</math>-мерное пространство, присваивая каждому узлу <math>d</math>-мерный идентификатор. Топология маршрутизации напоминает <math>d</math>-мерный тор. Маршрутизация осуществляется по евклидовым координатам в каждом измерении, что дает стратегию маршрутизации с <math>dn^{1/d}</math> переходов. Параметр <math>d</math> может быть настроен администратором сети. Отметим, что при <math>d = log \; n</math> характеристики CAN такие же, как и в Chord, а именно: логарифмическая степень и логарифмическое число переходов маршрутизации. | ||
'''Оверлейная маршрутизация, вдохновленная сетями типа «Мир тесен»''' | '''Оверлейная маршрутизация, вдохновленная сетями типа «Мир тесен»''' | ||
Алгоритм Symphony [ ] эмулирует маршрутизацию в «тесном» мире. Узлы имеют k связей с узлами, виртуальные идентификаторы которых выбираются случайным образом в соответствии с маршрутизируемым распределением тесного мира [22]. Ожидается, что при k связях Symphony найдет цель за log 2/k переходов. | Алгоритм '''Symphony''' [24] эмулирует маршрутизацию в «тесном» мире. Узлы имеют <math>k</math> связей с узлами, виртуальные идентификаторы которых выбираются случайным образом в соответствии с маршрутизируемым распределением тесного мира [22]. Ожидается, что при <math>k</math> связях Symphony найдет цель за <math>log^2 \; n/k</math> переходов. | ||
'''Оверлейные сети с поддержкой диапазонных запросов''' | '''Оверлейные сети с поддержкой диапазонных запросов''' | ||
Один из недостатков сетей с распределенной хэш-таблицей (DHT) заключается в том, что они поддерживают только точный поиск ключей, а значит, плохо решают задачи поиска диапазона ключей или нечеткого поиска, например, поиска любого ключа, соответствующего некоторому префиксу. SkipGraphs [4] и схема SkipNet [19] от Microsoft (проект Herald) независимо друг от друга разработали аналогичную сеть DHT на основе рандомизированного списка пропусков [28], которая поддерживает запросы по диапазону в распределенной сети. Подход в обеих этих сетях заключается в объединении объектов в двухсвязный список, отсортированный по именам объектов, над которым строятся «короткие» указатели. Указатели от каждого объекта переходят на геометрическую последовательность расстояний в отсортированном списке, то есть первый указатель переходит через два элемента, второй – через четыре, и так далее, вплоть до указателя log n - 1, который переходит через половину списка. Логарифмический, сбалансированный по нагрузке поиск достигается в этой схеме таким же образом, как и в Chord. Поскольку пространство идентификаторов сортируется по именам объектов, а не по хэш-идентификаторам, диапазоны объектов можно эффективно сканировать, просто переходя к наименьшему значению в диапазоне; остальные узлы диапазона располагаются смежно вдоль кольца. | |||
Один из недостатков сетей с распределенной хэш-таблицей (DHT) заключается в том, что они поддерживают только точный поиск ключей, а значит, плохо решают задачи поиска диапазона ключей или нечеткого поиска, например, поиска любого ключа, соответствующего некоторому префиксу. '''SkipGraphs''' [4] и схема '''SkipNet''' [19] от Microsoft (проект Herald) независимо друг от друга разработали аналогичную сеть DHT на основе рандомизированного списка пропусков [28], которая поддерживает запросы по диапазону в распределенной сети. Подход в обеих этих сетях заключается в объединении объектов в двухсвязный список, отсортированный по именам объектов, над которым строятся «короткие» указатели. Указатели от каждого объекта переходят на геометрическую последовательность расстояний в отсортированном списке, то есть первый указатель переходит через два элемента, второй – через четыре, и так далее, вплоть до указателя <math>log \; n - 1</math>, который переходит через половину списка. Логарифмический, сбалансированный по нагрузке поиск достигается в этой схеме таким же образом, как и в Chord. Поскольку пространство идентификаторов сортируется по именам объектов, а не по хэш-идентификаторам, диапазоны объектов можно эффективно сканировать, просто переходя к наименьшему значению в диапазоне; остальные узлы диапазона располагаются смежно вдоль кольца. | |||
Строка 80: | Строка 80: | ||
'''Обзор сетей, не учитывающих локальность''' | '''Обзор сетей, не учитывающих локальность''' | ||
Каждая из упомянутых выше сетей отличается одним или несколькими следующими свойствами: (интуитивно) эмулируемая топология; ожидаемое количество переходов, необходимых для достижения цели; степень каждого узла. Эти свойства сведены в таблице 1. | Каждая из упомянутых выше сетей отличается одним или несколькими следующими свойствами: (интуитивно) эмулируемая '''топология'''; ожидаемое количество '''переходов''', необходимых для достижения цели; '''степень''' каждого узла. Эти свойства сведены в таблице 1. | ||
{| class="wikitable" style="text-align:center" | |||
! Оверлейная схема поиска !! Похожая топология !! Число переходов !! Степень | |||
|- | |||
| Chord | |||
| Гиперкуб | |||
| log n | |||
| log n | |||
|- | |||
| Viceroy | |||
| Бабочка | |||
| log n | |||
| 5 | |||
|- | |||
| AAABMP, сеть с делением расстояний пополам, Koorde, D2B | |||
| De Bruijn | |||
| log n | |||
| 4 | |||
|- | |||
| Symphony | |||
| «Тесный мир» | |||
| <math>log^2 \; n/k</math> | |||
| k | |||
|- | |||
| SkipGraphs/SkipNet | |||
| Список пропусков | |||
| log n | |||
| log n | |||
|- | |||
| CAN | |||
| Тор | |||
| <math>dn^{1/d}</math> | |||
| d | |||
|} | |||
Таблица 1. Сравнение различных показателей схем поиска, не обладающих осведомленностью о локальности | |||
'''Осведомленность о локальности''' | '''Осведомленность о локальности''' | ||
Проблема с перечисленными выше подходами заключается в том, что они игнорируют близость узлов в базовых сетях и позволяют «прыгать» туда-сюда через большие физические расстояния в поисках контента. Недавние исследования масштабируемых сетей обмена контентом [ ] показали, что до 80% запросов в Интернет могут быть удовлетворены локальными узлами в пределах собственной организации автора запроса. Поэтому даже один далекий переход может оказаться слишком дорогим. Следующие системы учитывают отношения близости между узлами, чтобы обеспечить осведомленность о локальности, то есть чтобы стоимость поиска была пропорциональна реальному расстоянию между взаимодействующими сторонами. | Проблема с перечисленными выше подходами заключается в том, что они игнорируют близость узлов в базовых сетях и позволяют «прыгать» туда-сюда через большие физические расстояния в поисках контента. Недавние исследования масштабируемых сетей обмена контентом [17] показали, что до 80% запросов в Интернет могут быть удовлетворены локальными узлами в пределах собственной организации автора запроса. Поэтому даже один далекий переход может оказаться слишком дорогим. Следующие системы учитывают отношения близости между узлами, чтобы обеспечить осведомленность о локальности, то есть чтобы стоимость поиска была пропорциональна реальному расстоянию между взаимодействующими сторонами. | ||
'''Сети с ограниченным ростом ''' | '''Сети с ограниченным ростом ''' | ||
Несколько сетей поиска с учетом локальности были построены на основе протокола исправления битов, взятого из фундаментальной работы Плакстона и коллег [27] (PRR). Модель сети с ограниченным ростом, для которой предназначена эта схема, рассматривает сеть как метрическое пространство и предполагает, что плотность узлов в разных частях сети не слишком сильно различается. Схема поиска PRR [27] использует префиксную маршрутизацию, аналогичную Chord. Она отличается от Chord тем, что ссылка для «переворачивания» i-го бита идентификатора соединяется с любым узлом, чей префикс длины i совпадает со следующим переходом. Таким образом, схема отдает предпочтение ближайшему узлу в сети. Эта стратегия позволяет построить геометрическую маршрутизацию, особенностью которой является то, что шаги маршрутизации по направлению к цели увеличиваются в геометрической прогрессии. Это достигается за счет большой гибкости в выборе связей для каждого префикса в начале маршрута и сужения их списка по мере продвижения по маршруту. В результате получается схема оверлейной маршрутизации, которая находит любую цель с затратами, пропорциональными кратчайшему расстоянию до нее. | Несколько сетей поиска с учетом локальности были построены на основе протокола исправления битов, взятого из фундаментальной работы Плакстона и коллег [27] (PRR). Модель ''сети с ограниченным ростом'', для которой предназначена эта схема, рассматривает сеть как метрическое пространство и предполагает, что плотность узлов в разных частях сети не слишком сильно различается. Схема поиска PRR [27] использует префиксную маршрутизацию, аналогичную Chord. Она отличается от Chord тем, что ссылка для «переворачивания» <math>i</math>-го бита идентификатора соединяется с любым узлом, чей префикс длины <math>i</math> совпадает со следующим переходом. Таким образом, схема отдает предпочтение ближайшему узлу в сети. Эта стратегия позволяет построить ''геометрическую маршрутизацию'', особенностью которой является то, что шаги маршрутизации по направлению к цели увеличиваются в геометрической прогрессии. Это достигается за счет большой гибкости в выборе связей для каждого префикса в начале маршрута и сужения их списка по мере продвижения по маршруту. В результате получается схема оверлейной маршрутизации, которая находит любую цель с затратами, пропорциональными кратчайшему расстоянию до нее. | ||
К системам, использующим алгоритм PRR, относятся Pastry [33], Tapestry [36] и Bamboo [32]. Очень близким вариантом является Kademlia [ ], в которой связи симметричны. Стоит отметить, что схема LAND [2] улучшает схем у PRR, обеспечивая почти оптимальную гарантию локальности; однако LAND не была развернута на практике. | К системам, использующим алгоритм PRR, относятся '''Pastry''' [33], '''Tapestry''' [36] и '''Bamboo''' [32]. Очень близким вариантом является '''Kademlia''' [25], в которой связи симметричны. Стоит отметить, что схема LAND [2] улучшает схем у PRR, обеспечивая почти оптимальную гарантию локальности; однако LAND не была развернута на практике. | ||
== Применение == | == Применение == | ||
'''Кэширование''' | '''Кэширование''' | ||
Сеть Coral [ ] из Нью-Йоркского университета, построенная на основе DSHT [15], функционирует примерно с 2004 года. Она предоставляет бесплатные услуги по доставке контента на базе распределенного испытательного стенда PlanetLab [ ], аналогичные коммерческим услугам, предлагаемым сетью Akamai. Подписчики используют ее для предоставления нескольких быстрых точек доступа к контенту, который они хотят опубликовать в Сети. | Сеть Coral [14] из Нью-Йоркского университета, построенная на основе DSHT [15], функционирует примерно с 2004 года. Она предоставляет бесплатные услуги по доставке контента на базе распределенного испытательного стенда PlanetLab [9], аналогичные коммерческим услугам, предлагаемым сетью Akamai. Подписчики используют ее для предоставления нескольких быстрых точек доступа к контенту, который они хотят опубликовать в Сети. | ||
Строка 117: | Строка 144: | ||
'''Многоадресная рассылка''' | '''Многоадресная рассылка''' | ||
В некоторых работах служба уведомления о событиях или публикации и подписки развертывается поверх существующего оверлея маршрутизации путем построения многоадресных путей с обратной маршрутизацией от одной «цели» ко всем «источникам». Например, к многоадресным системам, построенным таким образом, относятся сеть Bayeux [ ], построенная на базе Tapestry [36], и SCRIBE [ ], построенная на Pastry. Чтобы опубликовать файл, источник рекламирует с помощью «затопления» кортеж, содержащий семантическое имя сеанса многоадресной рассылки и уникальный идентификатор. Этот кортеж хешируется для получения идентификатора узла, который становится корневым узлом сеанса. Каждый узел может присоединиться к сеансу многоадресной рассылки, отправив сообщение корневому узлу. Узлы по пути следования сохраняют информацию о членстве, так что дерево многоадресной рассылки формируется в обратном направлении. Содержимое файла (и любые обновления) распространяется по дереву путем затопления. Narada [ ] построена на той же общей архитектуре, но отличается выбором связей и обслуживанием данных. | В некоторых работах служба уведомления о событиях или публикации и подписки развертывается поверх существующего оверлея маршрутизации путем построения многоадресных путей с обратной маршрутизацией от одной «цели» ко всем «источникам». Например, к многоадресным системам, построенным таким образом, относятся сеть Bayeux [38], построенная на базе Tapestry [36], и SCRIBE [5], построенная на Pastry. Чтобы опубликовать файл, источник рекламирует с помощью «затопления» кортеж, содержащий семантическое имя сеанса многоадресной рассылки и уникальный идентификатор. Этот кортеж хешируется для получения идентификатора узла, который становится корневым узлом сеанса. Каждый узел может присоединиться к сеансу многоадресной рассылки, отправив сообщение корневому узлу. Узлы по пути следования сохраняют информацию о членстве, так что дерево многоадресной рассылки формируется в обратном направлении. Содержимое файла (и любые обновления) распространяется по дереву путем затопления. Narada [8] построена на той же общей архитектуре, но отличается выбором связей и обслуживанием данных. | ||
'''Инфраструктура маршрутизации''' | '''Инфраструктура маршрутизации''' | ||
DHT может служить для хранения маршрутизации и (потенциально динамической) информации о местоположении виртуальных имен хостов. Эта идея была использована в ряде проектов. Система именования для Интернета под названием CoDoNS [30] была построена в Корнельском университете на основе оверлея BeeHive [29]. CoDoNS обеспечивает безопасность и является возможной заменой системы доменных имен, которая в настоящее время служит для поиска имен хостов. Поддержка виртуальных сетевых адресов IPv6 обеспечивается в [ ] путем сопоставления имен с их актуальными, достижимыми адресами IPv4. Инфраструктура Internet Indirection Infrastructure [34], созданная в Калифорнийском университете в Беркли, поддерживает виртуальные адреса хостов Интернета, обеспечивая возможность мобильности. | DHT может служить для хранения маршрутизации и (потенциально динамической) информации о местоположении виртуальных имен хостов. Эта идея была использована в ряде проектов. Система именования для Интернета под названием CoDoNS [30] была построена в Корнельском университете на основе оверлея BeeHive [29]. CoDoNS обеспечивает безопасность и является возможной заменой системы доменных имен, которая в настоящее время служит для поиска имен хостов. Поддержка виртуальных сетевых адресов IPv6 обеспечивается в [37] путем сопоставления имен с их актуальными, достижимыми адресами IPv4. Инфраструктура Internet Indirection Infrastructure [34], созданная в Калифорнийском университете в Беркли, поддерживает виртуальные адреса хостов Интернета, обеспечивая возможность мобильности. | ||
Строка 133: | Строка 160: | ||
Очень популярной сетью распространения файлов является система BitTorrent [10]. Узлы в BitTorrent делятся на узлы- | Очень популярной сетью распространения файлов является система BitTorrent [10]. Узлы в BitTorrent делятся на узлы-''сиды'' (источники) и ''клиентов''. Узлы-сиды содержат желаемый контент в полном объеме (либо являясь оригинальными поставщиками, либо недавно загрузив его). Клиентские узлы соединяются с одним или несколькими сидами, а также с узлом-''трекером'', целью которого является отслеживание клиентов, загружающих контент в данный момент. Каждый клиент выбирает группу (в настоящее время размером около 20) других клиентов, осуществляющих загрузку, и обменивается с ними фрагментами данных, полученных от сидов. BitTorrent использует несколько сложных стратегий для выбора того, какие куски запрашивать у других клиентов, чтобы добиться справедливого распределения нагрузки при раздаче контента и, в то же время, обеспечить высокую скорость загрузки. | ||
Строка 142: | Строка 169: | ||
Недавно ряд работ Microsoft Research продемонстрировал преимущества сетевого кодирования для эффективной многоадресной рассылки, например [ ] и Avalanche [ ]. Вкратце изложим ключевые идеи, лежащие в их основе. | Недавно ряд работ Microsoft Research продемонстрировал преимущества сетевого кодирования для эффективной многоадресной рассылки, например [7] и Avalanche [16]. Вкратце изложим ключевые идеи, лежащие в их основе. | ||
правки