BC/NW 2006, №2, (9) :5.1
ИСПОЛЬЗОВАНИЕ МЕХАНИЗМОВ ПИРИНГОВЫХ
СЕТЕЙ ПРИ ОРГАНИЗАЦИИ ПОТОКОВЫХ СЕРВИСОВ
Куприянов А.Г.
(Москва, Московский энергетический институт
(технический университет), Россия)
В настоящее время в сети получают все
более широкое распространение различные потоковые сервисы, пользователям
предоставляется возможность просмотра телепередач, прослушивания радио;
становятся популярны сетевые трансляции различных конференций, событий и
прочее.
Одновременно с ростом популярности
потоковых сервисов, все чаще возникают ситуации, когда тысячи пользователей
обращаются к единственному сайту для просмотра трансляции. Как результат –
большинство пользователей остаются неудовлетворенными качеством сервиса, а для
некоторых само подключение является просто невозможным, из-за перегрузки.
Существующее решение данной проблемы –
распределение нагрузки между потоковыми серверами. Для проведения сетевых
трансляций некоторыми компаниями используются сети CDN (Content
Distributor Network)
– сети распространения контента. Эти сети представляют собой сотни
географически распределенных серверов. Когда пользователь запрашивает
какую-либо потоковую услугу, его запрос направляется ближайшему серверу, таким
образом, снижается нагрузка на центральный сервер (ЦС). Примерами такой сети
может быть крупнейшая сеть Akamai. Эта сеть насчитывает более 18 тысяч серверов,
распределенных в 69 странах мира[1]. Обслуживание такой сети требует больших средств,
поэтому цены на её использование для многих компаний остаются.
Решением может быть подход, который
широко используется в существующих файлообменных пиринговых сетях.
Основное свойство пиринговых сетей – это
использование клиентских компьютеров одновременно в качестве клиентов и
серверов. Таким образом, в файлообменных пиринговых сетях загрузка файлов
осуществляется не с центрального сервера, что было бы невозможным, при числе
клиентов до 1,5 млн. и более, а с клиентских компьютеров.
По аналогии с пиринговыми сетями
возможно организовать передачу потоковой информации в первую очередь на
компьютеры с высокоскоростными Интернет каналами, а обладатели более медленных
соединений уже будут подключаться к «толстым» клиентам. Таким образом, нагрузка
будет распределена между ЦС и мощными клиентскими машинами.
Пользователь сначала подключается к ЦС.
На центральном сервере хранятся данные обо всех пользователях, получающих
потоковую информацию. Эта информация может состоять из IP адреса клиента, его скорости подключения и т.п. Если
клиент обладает высокой скоростью подключения и пропускной способности ЦС все
еще достаточно, то он получает потоковую информацию непосредственно с ЦС. В
случае если пропускная способность ЦС уже исчерпана, то пользователь
переключается на один из подключенных «толстых» клиентов. Когда пропускная
способность «толстых» клиентов исчерпана, то переключение переходит на клиентов
«второго уровня», и так происходит до тех пор, пока клиент не получит
доступного подключения. Кроме того, в случае выхода из строя одного из узлов
сети, продолжение трансляции может быть получено с другого узла. Данная
архитектура приведена на рис. 1.
Рисунок 1.
Архитектура пиринговой потоковой сети
Проведем оценку эффективности данного
метода.
Поскольку важной функцией ЦС, наряду с
передачей потока, является распределение клиентов по источникам, то необходимо
зарезервировать пропускную полосу для удовлетворения запросов, т.е. для
передачи служебной информации.
Nreq – число
байт в запросе клиента к серверу на получение данных
Nansw
– число байт в ответе сервера с указанием источника данных
Приемлемое время получения ответа t (в данном случае учитываем только передачу сигналов,
без времени обработки запроса на самом сервере). Таким образом, пропускная
способность, необходимая для передачи служебной информации для i-го клиента Ccl_i = Nserv / t бит/с для каждого клиента, где Nserv = (Nreq + Nansw) бит.
Соответственно, необходимо
зарезервировать пропускную способность, необходимую для передачи служебной
информации Сserv = Сcl_i * Nкл * K, где Nкл –
число клиентов, а K –
коэффициент, который вносит поправку в число одновременных запросов. Поскольку
весьма маловероятно, что одновременно все пользователи сети будут выполнять
подключения, и резервирование пропускной способности под всех клиентов будет
неоправданно. Примем, коэффициент равный K = 0,7.
На первый взгляд, кажется, что трафик,
генерируемый запросами клиентов может быть незначительным, однако при большом
числе подключений, происходит значительный рост числа служебного трафика, что
может сказаться на работоспособности сети.
Соответственно для полезного трафика
остается пропускная способность: Cполез =
Сcs –
Сserv, где Сcs – пропускная способность ЦС.
Vstream – скорость передачи потоковой информации к клиенту. Следовательно к ЦС
может подключиться Ncl_cs = Cполез /
Vstream клиентов.
Но такие же подключения могут осуществляться и к клиентским машинам, которые
выступают в роли серверов для более медленных компьютеров.
Проведем моделирование работы
рассматриваемой архитектуры на компьютере. Клиенты, обладающие высокой
скоростью подключения, подключаются к ЦС, пока Cполез > Сserv. Как
только это неравенство не выполняется, то подключения осуществляются к
клиентским машинам, и так происходит до тех пор, пока все клиенты не
подключены, либо исчерпаны все ресурсы пропускной способности. Данное моделирование
является лишь оценкой производительности с рядом допущений.
Во-первых, не учитываем время обработки
запросов на самом сервере, а также клиентских компьютерах, выступающих в роли
серверов, во-вторых, считаем, что пользователи только получают потоковый
контент и не пользуются другими сервисами Интернета одновременно, в-третьих,
скорость потока примем 256 Кбит/с, а также разделим всех пользователей на
несколько групп, в зависимости от скорости подключения. Данное представление
приведено в таблице 1.
Таблица 1. Скорости подключений потоковых клиентов
№ группы |
Скорость подключения клиентов, Кбит/с |
Процент от общего числа клиентов |
1 |
4096 |
1% |
2 |
2048 |
2% |
3 |
1024 |
10% |
4 |
512 |
20% |
5 |
400 |
25% |
6 |
256 |
42% |
В результате моделирования работы
получили зависимость числа обслуженных пользователей от пропускной способности
канала. Данная зависимость приведена на рис. 2.
Рисунок 2.
Зависимость числа пользователей от скорости подключения
Как видно из графика при росте скорости
подключения ЦС и при использовании пирингового механизма перераспределения
нагрузки, число одновременно обслуживающихся пользователей растет значительно
быстрее, чем при стандартном подходе. Соответственно качество, предоставляемых
сервисов становится выше, за счет того, что данный механизм препятствует
падению скорости для каждого клиента.
В данной работе показана принципиальная
возможность применения пиринговых принципов организации сети при реализации
сети передачи потоковых данных с целью улучшения качества предоставляемых
сервисов. Необходимо отметить также, что, скорее всего, данная технология может
быть использована в регионах с развивающейся структурой потоковых сервисов,
там, где отсутствуют высокоскоростные каналы, приближенные к пользователям.
ЛИТЕРАТУРА
1. Subramanian R.,
Goodman B., Peer-to-peer computing : the
evolution of a disruptive technology. Idea Group Inc., Лондон, Великобритания, 2005
2. Webb К.,
Peer-to-Peer Computing and Business Networks. LLC, Херши, США, 2001.