Научная статья на тему 'Метод выбора узлов-партнеров при пиринговом обмене данными с учетом топологии сети'

Метод выбора узлов-партнеров при пиринговом обмене данными с учетом топологии сети Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
122
35
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Метод выбора узлов-партнеров при пиринговом обмене данными с учетом топологии сети»

при соответствующем их расположении больше арифметической суммы зон локализации этих распылителей. В этих условиях важно выбрать /щах - наивыгоднейший интервал расположения распылителей. При />/тах и /</тах суммарная зона локализации будет меньшей. Таким образом, наблюдается возникновение как прямого, так и обратного синергетического эффекта [5].

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

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

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

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

Литература

1. Маршалл В. Основные опасности химических производств. М.: Мир, 1989. 671 с.

2. Захматов В.Д. Техника многоплановой защиты. М.: ИПМ АН СССР, 1991. 124 с.

3. Захматов В.Д., Щербак Н.В. Личное оружие пожарного для тушения пожаров в лесу, небоскребах и зонах катастроф // Пожарная безопасность в строительстве. 2011. № 3. С. 58-65.

4. Захматов В.Д. Теоретические основы разработки импульсной техники пожаротушения и многоплановой защиты. К.: Ин-т проблем материаловедения АН Украины, 1994. 72 с.

5. Кряжич О.А. Экономико-математическое моделирование при обосновании модернизации предприятий: поиск синергетического эффекта // Системи шдтримки прийняття ршень. Теорiя i практика: збiрник доповщей наук.-практ. конф. з мiжнар. участю. К.: 1ПММС НАНУ, 2009. С. 59-62.

References

1. Marshall V., Osnovnye opasnosti khimicheskikh proizvodstv [Major hazard of chemical production], Moscow, Mir, 1989, 671 p.

2. Zakhmatov V.D., Tekhnika mnogoplanovoy zashchity [Technique of multidimensional protection], Moscow, IPM AN USSR, 1991, 124 p.

3. Zakhmatov V.D., Shcherbak N.V., Pozharnaya bezopas-nost v stroitelstve [Fire security in construction], 2011, no. 3, pp. 58-65.

4. Zakhmatov V.D., Teoreticheskiye osnovy razrabotki im-pulsnoy tekhniki pozharotusheniya I mnogoplanovoy zashchity [Fundamentals of the fire fighting pulse technique development and multidimensional protection], Kiev, IPMS, 1994, 72 p.

5. Kryazhich O.A., Systemy pidtrymky pryyniattia rishen. Teoriia i praktyka: zbirnyk dopovidei nauk. -prakt. konf. z mizhnar. uchastiu [Decision support system. Theory and practice: proc. of int. conf.], Kiev, IMMSP NASU, 2009, pp. 59-62.

УДК 004.738.5

метод выбора узлов-партнеров при пиринговом обмене данными с учетом топологии сети

В.П. Соловьев, к.т.н., профессор; Н.В. Павленко, ст. преподаватель (Московский государственный университет путей сообщения, ул. Образцова, 9, стр. 9, г. Москва, 127055, Россия, [email protected])

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

проблему на основе информации о топологии глобальной сети. Приводится пошаговое описание алгоритма иерархической группировки узлов и методики использования данной информации для построения связей между узлами пиринговой сети. Описываются характеристики модели компьютерной и пиринговой сетей для проведения модельного эксперимента. Приводятся результаты имитационного моделирования работы пиринговой сети с использованием предложенного метода и без него. Полученные в ходе моделирования данные подтверждают эффективность и целесообразность предложенного метода.

Ключевые слова: глобальные компьютерные сети, интернет-телевидение, сетевая топология, иерархическая группировка, пиринговые сети.

A METHOD FOR CHOOSING PEERS IN PEER-TO-PEER COMMUNICATIONS BASED ON NETWORK TOPOLOGY

Solovyov V.P., Ph.D., Professor; Pavlenko N.V., Senior Lecturer (Moscow State University of Railway Engineering, 9/9, Obraztsova St., Moscow, 127055, Russia, [email protected]) Аbstract. The article shows necessity of peering mechanims for transferring multimedia data between nodes of the global netwotk. It discusses the problems of choosing peers for transferring data streams in modern peer-to-peer networks. A new method is introduced which solves this problem using information about the topology of the global network. The article introduces an algorithm for hierarchical node clustering and new methods to use this information for building connections between the nodes of the peer network. Properties of the model of a computer network and peer network for simulation are described. The results of simulation of such peer network based on the proposed method and without it are shown. The data collected during the simulation confirm the efficiency and suitability of the proposed method.

Keywords: global computer networks, Internet TV, network topology, hierarchical grouping, peer-to-peer networks.

В настоящее время сеть Интернет демонстрирует впечатляющие темпы роста во всем мире. С увеличением количества пользователей сети появляется все больше интернет-сервисов, предоставляющих широкий спектр самых разнообразных возможностей, одной из которых является передача потоков данных большого объема, прежде всего потоков медиаинформации. Согласно исследованию компании Cisco «Индекс развития визуальных сетевых технологий в период с 2011 по 2016 гг.» [1], в последнее время наблюдается многократный рост IP-трафика благодаря популярности новых интерактивных медиарешений и стремительному увеличению объема видеоконтента. В частности, на 2011 год объем видеотрафика превысил 50 % и к 2016 году эта цифра будет только увеличиваться [1]. При этом все чаще разработчики сетей передачи медиапотоков используют пиринговую технологию для повышения качества передаваемого видеоконтента. Поскольку качество звука и изображения определяется объемом получаемых в единицу времени данных (битрейтом), наработки при создании пиринговых файлооб-менных сетей, позволяющие обмениваться файлами с высоким битрейтом, нашли применение и при передаче медиапотоков.

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

потоков. В последние годы проводится много исследований в данной области и публикуется большое количество материалов на эту тему (в основном в западных изданиях). В настоящей статье предлагается новый способ решения проблемы выбора логических связей сети распределения данных потокового вещания на основе пирингового подхода.

Учет сетевой топологии для распределения потоков

В основе большинства пиринговых технологий распределения потоков [2-5] лежит закон случайного равномерного распределения каждому из узлов партнеров по обмену трафиком, то есть логические связи обмена данными между узлами в сети устанавливаются случайным образом, без оценки возможностей тех или иных узлов и без учета их местоположения. Каждый партнер передает узлу те фрагменты потока, которых у последнего нет. Из совокупности фрагментов складывается целевой медиапоток. В целом использование такого децентрализованного подхода на практике показало неплохие результаты. Например, система CoolStreaming [2] в 2006 году насчитывала один миллион пользователей из Европы и США. Средний битрейт при этом составлял 450 Кбит/с. Схожие результаты демонстрировали в 2008 году китайские системы PPLive [4] и PPStгeam [5].

Однако основным недостатком такого рода систем распределения потоков является то, что партнеры для каждого узла выбираются случайным образом, как бы далеко друг от друга они ни находились. На практике часто возникала ситуация, когда новый пользователь, подключившийся к системе ГР-ТУ из Европы, в качестве партнеров получал узлы, расположенные в США. Можно было бы исключить такие ситуации, ограничив

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

Для решения описанной проблемы предлагается учитывать топологию глобальной компьютерной сети с целью определения узлов, находящихся в одной локальной сети либо в соседних локальных сетях. Для этого каждому узлу должно быть сопоставлено некоторое свойство, определяющее его физическое местонахождение в глобальной компьютерной сети. В качестве такого свойства предлагается использовать маршрут от сервера до узла, который представляет собой множество маршрутизаторов (точнее - их IP-адреса). В этом случае маршруты узлов, находящихся в одной локальной сети, будут совпадать с точностью до последнего маршрутизатора. Маршруты узлов из соседних локальных сетей будут совпадать полностью, за исключением нескольких маршрутизаторов. Фактически уровень совпадения маршрутов от сервера до узлов определяет «близость» этих узлов друг к другу в сетевой инфраструктуре. На основе информации о маршрутах можно так выбирать узлы-партнеры, что средняя задержка между партнерами будет существенно ниже, а скорость обмена трафика между ними повысится в несколько раз по сравнению с используемыми сейчас технологиями. При этом количество процедур получения маршрутов будет равно числу пользователей системы.

Сбор информации о сетевой топологии предлагается проводить с помощью метода трассировки маршрутов, который нашел реализацию в программах traceroute (Linux) и tracert (Windows). Здесь маршрут - это линейно упорядоченное

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

На основе данного метода можно найти маршрут между сервером (я) системы распределения потоков и любым узлом (р). Таким образом, 2*,р={з, г1, ..., гк,р}, где Л={гь ..., гк} - множество 1Р-адресов маршрутизаторов компьютерной сети, входящих в этот маршрут. Множество маршрутов

1 соответствует графу ,р) = (Т, Е), где Т -

множество вершин (узлы компьютерной сети), а Е - множество дуг (связи между узлами на сетевом уровне). При этом Т={яи гь ..., гьр}, а Е={в(яь гх), г(тъ г2), ..., фи, гк), е(Гк, р)}. Пример графа, полученного после объединения множества маршрутов, представлен на рисунке 1.

Полученный таким образом граф (О) обладает несколькими важными свойствами:

- граф О является взвешенным; вес ребра, соединяющего две вершины О, - это сетевая задержка между узлами компьютерной сети, соответствующими этим вершинам;

- граф О является связным, то есть между любыми двумя его вершинами есть путь;

- граф О имеет два типа вершин: ут и уп (ут -маршрутизаторы сети, уп - узлы сети);

- вершины со степенью, равной 1, принадлежат к типу уп;

- вершины со степенью, больше 1 , принадлежат к типу ут.

На основе данного графа необходимо провести многоуровневую группировку вершин типа уп.. В результате должно быть получено множество групп Тш={Т\ Т2, ..., Т1}, где Т- множество вершин уп, у которых / общих вершин типа ут, а/е [1, 1], то есть Т1 - множество групп вершин с одной общей вершиной типа ут, а Т - группа, объединяющая все вершины уп. Пример такой группировки представлен на рисунке 1.

В идеале группировка должна быть выполнена таким образом, чтобы группы на каждом уровне

Сервер \

Рис. 1. Пример двухуровневой группировки 15 узлов на основе информации о сетевой топологии

были одинаковыми по размеру. Поскольку специфика графа О в том, что объединять вершины уп можно только через общую вершину ут, степень которой может быть любой (кроме единицы), такое объединение не всегда достижимо. Поэтому задача алгоритма многоуровневой группировки -объединить вершины уп так, чтобы группы на одном уровне были как можно более близкими по размеру, насколько это позволяет смежность вершин графа.

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

Дано: граф О на множестве вершин Т={/1, ..., 4} и его матрица смежности МО. При этом

- значение МО(1, /) равно сетевой задержке между 1-й и /-й вершинами;

- каждый 1-й элемент Т обладает степенью ё(1), которая является степенью соответствующей вершины и равна количеству ненулевых значений в 1-й строке матрицы МО;

- каждый 1-й элемент Т сам является множеством и обладает размером size(i), равным мощности этого множества.

Пример такого графа О представлен на рисунке 2а.

Описание алгоритма.

Шаг 1. Удаляем из О все вершины типа ут , у которых степень равна двум. Удаление происходит по следующему принципу.

Проходим слева направо по всем строкам матрицы МО, тип вершин которых ут. Находим такие строки матрицы 1, /ь /2, что МО(1, /'0^0, МО(1, /2)^0, а V /х<е [1, к], /х^/2, Мо(/, /х)=0. Для каждой тройки 1, /ь /2 устанавливаем МО(/1, /2)= МО(1, /1)+Мо(/, /2) и Мо(/2,/1)=Мо(/,/О+МоО', /2), а затем удаляем строку и столбец с номером Пример полученного графа О после 1-го шага представлен на рисунке 2б.

Шаг 2. Упорядочиваем в Т элементы по возрастанию их степени, то есть Т={/ь ..., 4}, где t1>ti_1, если 1е[2, Ь] и

Все образовавшиеся подгруппы элементов Т с равными степенями сортируем по возрастанию размера этих элементов, то есть V ^ V , если 1е [2, Ь] и ё^^ё^^х), то t>ti_1, если size(t1)>size(ti.1).

Шаг 3. Проходим по Т от меньшего элемента к большему и для каждого его 1-го элемента выполняем следующие действия с 1-й строкой матрицы М0:

1) находим множество номеров столбцов 3, такое, что VjеJ (МО(1,/)^0);

2) если номер какого-либо столбца / из 3 соответствует вершине типа «маршрутизатор», считаем, что у=/, и переходим к пункту 6;

3) находим такое множество ХсЛ, что VxеX

максимальная степень эле-

(ё(х)= ), где -

ментов Т с индексами из 3;

4) находим такое множество ГсХ, что VyеY (же(у)= sizex ), где sizex - минимальный размер

элементов Т с индексами из X;

5) находим такой элемент yеY, что значение МО(1, у) является минимальным;

6) суммируем 1-ю и у-ю строки матрицы и записываем результат в 1-ю строку; суммируем 1-й и у-й столбцы матрицы в один и записываем результат в 1-й столбец;

7) устанавливаем МО(1, у)=0 и МО(у, 1)=0;

8) удаляем у-й столбец и у-ю строку из матрицы МО;

9) если у-й элемент является маршрутизатором, никаких действий не предпринимаем, в противном случае объединяем у-й элемент списка Т с 1-м элементом и устанавливаем его на позицию 1-го элемента.

Шаг 4. Запоминаем множество Т с номером итерации и (в виде Т1) и, если оно состоит более чем из одного элемента, переходим к шагу 2. Если же в | Т | =1, считаем алгоритм завершенным.

В результате работы алгоритма будет получено необходимое упорядоченное множество Т/п={Т\ Т2, ..., Т*}, где И - количество итераций, Т1 - множество групп узлов Ы-то уровня.

На рисунке 2а изображен пример графа, для которого необходимо получить множество Т/1п. Пример работы алгоритма после 1 -го шага представлен на рисунке 2б, после первой итерации - на рисунке 2в, после второй - на рисунке 2г. Результатом работы является множество Т/И={Т1, Т2, Т3}, Т1={{1}, {2, 3}, {4, 5, 6}, {7, 8}}, Т2={{2, 3}, {4, 5, 6}, {1, 7, 8}}, Т3={{2, 3, 4, 5, 6, 1, 7, 8}}.

Полученное множество Т/пп дает информацию, на основе которой можно выбрать партнеров по обмену данными для каждого узла пиринговой сети. При этом партнерами могут быть только узлы, находящиеся в одной группе на том или ином уровне. Сервер (узел-источник данных) входит в число узлов. Остается выбрать уровень группировки. Современные пиринговые алгоритмы используют уровень И - выбираются узлы-партнеры из всего доступного множества узлов, то есть сетевая топология не учитывается. Если, например, выбрать уровень 1, то возникнет проблема недоступности данных: данные будут получать только те узлы, которые попали на первом уровне в одну группу с сервером. Поэтому каждому узлу следует выбрать часть узлов из его группы на 1 -м уровне, часть из 2-й и т.д. вплоть до уровня И. То есть, если Т£ - группа узла р на уровне и, то множество партнеров узла р (Ьр) будет рассчитываться так:

п п п

Ь = НЛМОТ , ) и ЕЛШ(Т2 ) и... и ВАШТ ), к к к

где пр - количество партнеров для каждого узла;

RAND(X,, q) - функция, возвращающая q случайных элементов из множества X; —— округленное целое значение.

Оценка эффективности предложенного метода на основе результатов модельного эксперимента

Для подтверждения эффективности предложенного метода был проведен комплекс модельных экспериментов. В качестве критериев эффективности выбраны следующие характеристики:

- производительность (средний битрейт потоков, получаемых пользователями);

- масштабируемость (снижение среднего битрейта при увеличении количества пользователей);

- задержка поступления данных на конечные узлы.

При проведении эксперимента были реализованы модели функционирования технологий CoolStreaming [2], PPLive [4] и предложенная система выбора партнеров, которая получила название CRSelector (Cluster-Routed Selector). Выбор CoolStreaming и PPLive обусловлен тем, что эти технологии получили широкое распространение

на практике и доказали свою экономическую целесообразность.

Для проведения модельного эксперимента использовался написанный на C++ открытый программный пакет OMNeT++, который позволяет построить имитационную модель сети Интернет с реализацией протокола Ethernet, всех протоколов стека TCP/IP и др. [1]. Выбор OMNeT++ обусловлен его популярностью в академической среде исследователей в области телекоммуникаций и открытостью исходного кода. В процессе разработки модели для OMNet++ были добавлены дополнительные программные модули, определяющие порядок функционирования технологий CoolStreaming, PPLive и предложенной методики выбора партнеров CRSelector.

Перед проведением эксперимента были определены следующие характеристики модели Интернет:

- количество маршрутизаторов - 90;

- задержка между маршрутизаторами - случайная величина с нормальным распределением (математическое ожидание - 7,3 мс, дисперсия -8,9);

- количество интерфейсов у маршрутизаторов, то есть количество физических связей с другими маршрутизаторами, - случайная величина с равномерным распределением в интервале [2, 4].

Выбор данных характеристик был обусловлен проведенным авторами в июне 2009 года исследованием европейского, российского и ближневосточного сегментов Интернета.

При построении моделей CoolStreaming, PPLive и CRSelector были выбраны следующие характеристики:

- количество пользователей - от 10 до 950;

- битрейт медиапотока, передаваемого сервером, - 1500 Кбит/с;

- размер фрагмента потока - 20 Кбайт (160 Кбит);

- количество фрагментов в единицу времени, достаточное для воспроизведения видео без потерь (sconst), - 6 за секунду;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

- продолжительность сессии пользователей -от 10 секунд до 60 минут;

- количество партнеров у каждого узла - 10.

Модельный эксперимент проводился на компьютере со следующими параметрами: процессор - 2 х AMD Opteron 246 2 ГГц, объем оперативной памяти - 2 Гб, операционная система - Linux Debian 4.0.

Время моделирования (локальное время модели) составило 5 часов.

Из рисунка 3 видно, что использование технологий PPLive и CoolStreaming при величине битрейта, передаваемого сервером, 1500 Кбит/с приводит к тому, что до пользователей доходит только 65 % данных. Использование CRSelector при первоначальном выборе партнеров позволило снизить потери с 35 % до 13 %. Кроме того, на рисунке 4 показано, что использование CRSelector позволяет снизить задержку поступления потока

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

Таким образом, в данной статье предложен новый подход к выбору узлов-партнеров пиринговой системы потоковой передачи данных с использованием информации о сетевой топологии. Основные достоинства предложенного метода (CRSelec-tor) в соответствии с результатами модельного эксперимента - независимость от используемой технологии распределения медиапотоков; увеличение производительности системы: повышение уровня среднего битрейта, поступающего конечным пользователям, на 30 % за счет почти трехкратного снижения потерь; обеспечение достаточного уровня масштабируемости: увеличение среднего битрейта не зависит от количества пользователей. Кроме того, данный метод позволяет снизить среднюю задержку потоков в два раза.

Литература

1. Zhang X., Liu J., Li B., Yum T.-S.P., CoolStreaming/ DONet: A data-driven overlay network for peer-to-peer live media streaming, Proc. IEEE INFOCOM, 2005, Vol. 3, pp. 2102-2111.

2. Biskupski B., Cunningham R., Dowling J., Meier R., High-bandwidth mesh-based overlay multicast in heterogeneous environments, Proc. AAA-IDEA'06, ACM 2006, no. 4.

3. PPLive. URL: http://pplive.com (дата обращения: 25.12.2012).

4. PPStream. URL: http://ppstream.com, свободный (дата обращения: 25.12.2012).

5. OMNET++ Discrete Event Simulation System. URL: http://www.omnetpp.org/index.php (дата обращения: 20.12.2012).

6. CISCO reports. URL: http://www.cisco.com/en/US/solu tions/collateral/ns341/ns525/ns537/ns705/ns827/white_paper_c11-481360.pdf (дата обращения: 10.11.2012).

7. Тюхтин М.Ф. Системы Интернет-телевидения. М.: Горячая линия-Телеком, 2008. 320 с.

8. Setton E., Girod B., Peer-to-Peer Video Streaming, Springer Science+Business Media, LLC, 2007.

References

1. Zhang X., Liu J., Li B., Yum T.-S.P., CoolStreaming/ DONet: A data-driven overlay network for peer-to-peer live media streaming, Proc. IEEE INFOCOM, 2005, Vol. 3, pp. 2102-2111.

2. Biskupski B., Cunningham R., Dowling J., Meier R., High-bandwidth mesh-based overlay multicast in heterogeneous environments, Proc. AAA-IDEA'06, ACM 2006, no. 4.

3. PPLive, Available at: http://pplive.com (accessed 25 Dec. 2012).

4. PPStream, Available at: http://ppstream.com (accessed 25 Dec. 2012).

5. OMNET++ Discrete Event Simulation System, Available at: http://www.omnetpp.org/index.php (accessed 20 Dec. 2012).

6. CISCO reports, Available at: http://www.cisco.com/en/ US/solutions/collateral/ns341/ns525/ns537/ns705/ns827/white_pap er_c11-481360.pdf (accessed 10 Nov. 2012).

7. Tyukhtin M.F., Sistemy internet televideniya [Internet TV system], Moscow, 2008.

8. Setton E., Setton E., Girod B., Peer-to-Peer Video Streaming, Springer Science Business Media LLC, 2007.

0 100 200 300 400 500 600 700 800 900 1000 Количество пользователей —•— CoolStreaming —■— PPLive

Рис. 3. Зависимость среднего битрейта получаемого пользователями потока от количества пользователей

0 100 200 300 400 500 600 700 800 900 1000 Количество пользователей —•— CoolStreaming —■—PPLive

Рис. 4. Зависимость задержки потока данных от количества пользователей

1500

1400

1300

1200

1100

и 1000

900

U 800

700

i Надоели баннеры? Вы всегда можете отключить рекламу.