adsense

среда, 27 мая 2009 г.

NetUP IPTVProbe для мониторинга IPTV отметил новый релиз

Вышел новый релиз свободно распространяемой (по лицензии GPLv2, GPLv3) NetUP IPTVProbe.
По сути - это система мониторинга и контроля качества оказываемых услуг интерактивного телевидения. Новое в версии:
  • Добавлена обработка IGMP-запросов и отображение временных параметров работы с IGMP
  • Очистка кода, исправление ошибок
  • Новая версия протокола обмена данными с зондами
Однако, вызывает недоумение вот такая цитата из описания:
В первом случае использовался коммутатор Cisco Catalyst 2950T с поддержкой IGMP Snooping, а во втором случае использовался обычный коммутатор без поддержки IGMP snooping. Как видно во втором случае присутствует существенное количество потерянных IP-пакетов.
Непонятно, причем тут IGMP Snooping и потери пакетов и как связано его присутствие или отсутствие с потерями пакетов? В общем - откровенная чепуха.
Новость на linux.org.ru , NetUP .

вторник, 26 мая 2009 г.

Как организовать сервис телерадиовещания в интранет-сети

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

В сетях Интранет уже давно внедрен и успешно применяется сервис VoIP, позволивший организовать голосовую связь без значительных материальных затрат. В свою очередь, увеличение пропускной способности канала влечет за собой появление новых сервисов, способных существенно изменить представление о современной IP-сети. Сейчас есть возможность получать сервисы файлообмена (подразумевается внутри сети), Интернет, телефонию и телевидение по одному кабелю. В итоге, подобные решения позволяют сэкономить на кабельной инфраструктуре и ее обслуживании, позволяют повысить качество предлагаемых услуг.
Что может уже сейчас предоставить современная IP-сеть?
  • доступ в сеть Интернет
  • обмен файлами (p2p)
  • услуга IP-телефонии
  • телеконференции
  • теле и радиовещание
  • видеонаблюдение
Сегодня рассмотрим сервис телерадиовещания (ТРВ) и затронем тему видеонаблюдения.

Эволюция традиционных сетей привела к появлению так называемых "мультисервисных сетей". В нынешних корпоративных сетях разного масшатаба присутствует трафик, который условно можно разделить на четыре категории:
  • потоковое видео, аудио;
  • видеоконференции и голосовая связь;
  • обычные данные;
  • служебные данные необходимых сервисов (DHCP, DNS и т.д.).
Каждая категория трафика весьма специфична, и имеет свою степень устойчивости относительно уровня потерь пакетов, задержки, джиттера. Значения этих характеристик необходимо нормировать с помощью технологии обеспечения качества обслуживания (Quality of Service, QoS), поэтому необходимо обеспечивать не только широкую полосу пропускания, но и приоритезацию трафика (для стабильной работы в моменты всплесков в сети).
Существует три способа доставки потокового видео:
  • Unicast (передача данных от одного источника к одному потребителю);
  • Broadcast (передача данных всей сети, пакеты будут передаваться каждому клиенту);
  • Multicast (передача данных от одного источника группе получателей, клиент может принять решение об участии в получении данных или об отказе);
Прежде чем внедрять новый сервис, тем более такой ресурсоемкий как ТРВ, необходимо:
  • Выявить и изолировать или ограничить уровень мультикаст трафика в сегменты с низкой пропускной способностью, если таковые имеются.
  • Постараться максимально оптимизировать маршруты движения мультикаст трафика.
  • Настроить оборудование с поддержкой IGMP, IGMP-snooping, PIM (для маршрутизации мультикаст трафика). Хорошо если все оборудование в сети поддерживает IGMP (IGMP-snooping). Для большой сети желательно иметь централизованную систему мониторинга сетевого оборудования, для быстрого обнаружения возникающих проблем.
Проектирование мультисервисной сети обычно начинается с задания сервисов, для которых она создается. В нашем же случае, мы имеем дело с «наследуемой системой», поэтому необходимо определить ограничения, связанные с уже имеющейся в наличии конфигурацией сети и установленным оборудованием. В нашей сети сервис видео не является приоритетным, а является дополнением к традиционным сервисам. На этапе настройки сервиса ТРВ необходимо контролировать параметры загрузки сети, чтобы в последствии не допустить заметного ухудшения работы традиционных сервисов. При уже работающем сервисе, необходимо измерить характеристики производительности. Методология измерений и сами характеристики производительности сетей и сетевых устройств довольно подробно описаны в документах IETF [1,2,3]. Для сетевого уровня, например, это серия документов группы IETF "IP-Performance Metrics Working Group" (IPPM). Определены методики измерений и для канального уровня (RFC2544), а также для более высоких уровней группы SG12 ITU-T, отвечающей за рекомендации в области субъективной и объективной оценки аудио и видео. Практика показывает, что результаты измерений второго и третьего уровня по методикам IETF часто не объясняют низкого качества конечного результата, а могут лишь использоваться для поиска неисправностей и проверки части гипотез о причинах низкого качества сервиса. Соответствующие действительности результаты, можно получить лишь экспериментально.

Схема сети

Сервис ТРВ создавался на базе сети, упрощенная схема которой представлена на рис. 1.

Как видно из рисунка, конечные узлы подключены к коммутаторам лабораторий по технологии 100Base-T, которые в свою очередь соединены с корневым коммутатором 100/1000Base-T. Серверы, в том числе и сервер вещания (Srv7), подключены к корневому коммутатору по технологии 1000Base-T. Таким образом, корневой коммутатор образует скоростную «сжатую» магистраль между лабораториями и серверами. Протокол IGMP поддерживается корневым коммутатором и одним из коммутаторов лабораторий. Используется три вида коммутаторов уровня доступа (лабораторий): управляемые 100Baset-T с поддержкой IGMP, неуправляемые 100Baset-T и неуправляемые 100Baset-T с uplink-портом 1000Baset-T. Эти три вида коммутаторов представлены, соответственно, коммутаторами L1, L2 и LN.



Серверная часть

Сервер вещания генерирует около 10 мультикаст потоков 3-4 Мбит/с каждый. Вещание происходит по протоколу UDP. Потоки представляют собой MPEG-2 телеканалы, принимаемые со спутника.
Оговорюсь сразу, что наш сервер видеовещания не был и не будет предназначен для промышленного (понимать коммерческого) использования, для которого существует множество аппаратных, масштабируемых и надежных решений. В таких решениях используются профессиональные аппаратные ресиверы, кодеры, декодеры, мультиплексоры, платформы для вещания. Наш же сервер реализован с использованием программного решения.
Мы остановились на небезызвестном Open Source продукте - Video Lan Client (VLC) [4]. В качестве операционной системы выбрана Debian/GNU Linux. VLC и Linux - это отличная платформа для тестирования и настройки всей сети перед внедрением коммерческого вещания. Данную платформу можно использовать как недорогое решение видеовещания для локальных сетей. Цена решения складывается из стоимости DVB-S тюнеров и сервера видеовещания, в который тюнеры будут установлены.
В качестве DVB-S тюнера было принято решение установить 3 карты SkyStar2 [5]. Причина, по которой была выбрана именно эта карта - большое количество различных программных решений под нее, как под Linux, так и под Windows. Так выглядит запуск VLC с необходимыми нам параметрами.
vlc --ts-es-id-pid --programs=16,17,18,65,75 dvb:
--dvb-adapter=0 --dvb-frequency=12207000 --dvb-s
rate=27500000 --dvb-voltage=18 –sout-standard-access=udp
--udp-caching=600 --sout-standard-mux=ts --sout '
#duplicate{dst=std{dst=230.1.1.1},select="program=8201",
dst=std{dst=230.1.1.2},select="program=8204",
dst=std{dst=230.1.1.3},select="program=8208",
dst=std{dst=230.1.1.4},select="program=8211",
dst=std{dst=230.1.1.6},select="program=8202",
dst=std{dst=230.1.1.7},select="program=8203",
scodes=dvbs}' -d;
В данной строке мы указываем номера каналов (programs), номер тюнера (dvb-adapter), параметры транспондера (dvb-frequency, dvb-srate) и указываем адрес назначения (dst). В качестве адреса назначения используются мультикаст адреса, выбираемые из диапазона 224.0.0.0 – 239.255.255.255. Исключение при выборе составляют следующие адреса:
  • 224.0.0.1 – все узлы в данной сети; 224.0.0.2 – все маршрутизаторы в данной сети;
  • 224.0.0.5 – все OSPF-маршрутизаторы; 224.0.0.6 – выделенные OSPF-маршрутизаторы;
  • 224.0.0.9 – маршрутизаторы RIP-2; 224.0.0.10 – IGRP-маршрутизаторы;
  • 224.0.1.1 – получатели информации по протоколу точного времени NTP.
Так выглядит скрипт в /etc/init.d/ для автоматической загрузки модулей карты с параметром dvb ядра dvb_shutdown_timeout=0, который не позволяет "уснуть" карте если она длительное время не задействована.

#! /bin/sh
set -e

case "$1" in
start)

/sbin/modprobe dvb-core dvb_shutdown_timeout=0
/sbin/modprobe skystar2
/sbin/modprobe stv0299

;;

stop)

/sbin/modprobe -r skystar2
/sbin/modprobe -r stv0299
/sbin/modprobe -r dvb-core

;;
*)
echo "Usage: /etc/init.d/dvb {start|stop}"
exit 1
esac
exit 0

В ходе эксплуатации выявилась аппаратная проблема у карты SkyStar2 (либо же "кривая" реализация драйверов). Проблема такова, что при пропадании сигнала, причиной чего могут быть различные атмосферные явления, уровень сигнала не всегда восстанавливается, и как следствие, поток с DVB-S карты SkyStar2 отсутствует. Дело в том, что данная карта не рассчитывалась для интенсивной бесперебойной работы, а является лишь бюджетным любительским вариантом спутникового тюнера.
Алгоритм решения проблемы следующий:

  1. Завершение приложений использующих DVB-S карту SkyStar2.
  2. Перезапуск драйвера DVB-S карты SkyStar2 (в этот момент карта инициализируется).
  3. Повторный запуск приложений (конкретно VLC).
Был написан простой скрипт watchdog, который постоянно следит за потоком с сетевого интерфейса сервера и перезагружает сервис. Ниже представлена одна из первых версий скрипта, так как на данный момент, в связи с еще несколькими сервисами на основе VLC на этом сервере, скрипт существенно изменен.
Значение исходящего потока (переменная thread) получено экспериментально на основе мониторинга сетевого интерфейса. Как только значение потока становится ниже заданного порога, выполняются действия описанные выше.

#! /bin/sh

while [ 0 ] ; do

thread=$(tcpstat -o '%B' -F -s 7 | awk -F. '{print($1)}';

sig0=`dvbsnoop -n 1 -timeout 10 -s signal -adapter 0
| tail -n 1 | awk -F\ '{printf $7}'`;

sig1=`dvbsnoop -n 1 -timeout 10 -s signal -adapter 1
| tail -n 1 | awk -F\ '{printf $7}'`;

sig2=`dvbsnoop -n 1 -timeout 10 -s signal -adapter 2
| tail -n 1 | awk -F\ '{printf $7}'`;

echo $sig0 $sig1 $sig2 $thread >> /usr/dvb/log


if [ $thread -lt 3300000 ] ; then

echo $thread

echo "Завершаем все процессы VLC"

killall -9 vlc;

echo "Выгружаем DVB-S модули"

/etc/init.d/dvb stop

echo "Запускаем DVB-S модули"

/sbin/modprobe dvb-core dvb_shutdown_timeout=0

/sbin/modprobe skystar2

/sbin/modprobe stv0299

echo "Запускаем VLC с новыми DVB-S модулями"


vlc --ts-es-id-pid --programs=16,17,18,65,75 dvb:
--dvb-adapter=0 --dvb-frequency=12207000 –dvb-s
rate=27500000 --dvb-voltage=18 --sout-standard-access=udp
--udp-caching=600 --sout-standard-mux=ts
–sout '#duplicate{dst=std{dst=230.1.3.1},
select="program=16",dst=std{dst=230.1.3.2},
select="program=17",dst=std{dst=230.1.3.3},
select="program=18",dst=std{dst=230.1.3.4},
select="program=65",dst=std{dst=230.1.3.5},
select="program=75",sap,name="Radio_Music_Box",
scodec=dvbs}' -d

pidof vlc > vlcpid0


vlc --ts-es-id-pid –programs=8201,8204,8208,8211,8202,8203
dvb: --dvb-adapter=1 --dvb-frequency=12597000
--dvb-srate=27500000 --dvb-voltage=13
--sout-standard-access=udp --udp-caching=600
--sout-standard-mux=ts –sout '#duplicate{
dst=std{dst=230.1.1.1},select="program=8201",
dst=std{dst=230.1.1.2},select="program=8204",
dst=std{dst=230.1.1.3},select="program=8208",
dst=std{dst=230.1.1.4},select="program=8211",
dst=std{dst=230.1.1.6},select="program=8202",
dst=std{dst=230.1.1.7},select="program=8203",
scodes=dvbs}' -d;

pidof vlc > vlcpid1;


vlc --ts-es-id-pid --programs=525 dvb: --dvb-adapter=2
--dvb-frequency=12692000 –dvb-srate=27500000 –dvb-voltage=13
--sout-standard-access=udp --udp-caching=600
--sout-standard-mux=ts --sout '#duplicate{dst=std{
dst={230.1.2.1},select="program=525"}' -d;

pidof vlc > vlcpid2;


sleep 14

echo `date +%d.%m.%Y"-"%k:%M:%S`

SignalLevel[0,1,2,eth1]: $sig0 $sig1 $sig2 $thread >> /var/log/dvb/restartlog0

echo $thread – "Значение потока в норме"

fi

done

Как видно из кода скрипта информация о перезапусках сервиса пишется в файл /var/log/dvb/restartlog0, где можно точно посмотреть когда происходил перезапуск сервиса и составить диаграмму стабильности (нестабильности) работы сервиса. По данной диаграмме можно легко выяснить причину падения уровня сигнала. Причиной может послужить например загораживание вашей антенны каким-либо объектом или же неблагоприятные для приема атмосферные условия). Для повышения стабильности сервиса нужно повысить уровень принимаемого сигнала, чтобы даже при значительных изменениях в атмосфере уровень сигнала оставался в норме. Решение сводится к выбору большей по диаметру спутниковой антенны, качественного конвертера и кабеля от конвертера к картам SkyStar2. Другое решение - использовать другой, возможно, более дорогой, спутниковый тюнер. Характеристики самого сервера следующие: P-IV 1.6ГГц, RAM DDR 1Гб, HDD - 40Гб. Так как в нашем случае VLC не перекодирует принимаемый поток, то соответственно загрузка процессора не должна быть высокой. Значение не превышает 30%, а в среднем составляет 15 - 20 %. На этом реализация серверной части заканчивается.

Клиентская часть

Смотреть телеканалы можно как с помощью компьютера, так и на обычном телевизоре через STB (Set Top Box).
Рассмотрим первый вариант - просмотр видео на компьютере. Здесь можно выбрать один из трех способов.

1 способ. Для просмотра телеканалов можно воспользоваться все тем же самым VLС плеером (см. рис. 2).

Составляем плейлист из мультикаст адресов потоков с названиями каналов и выбирая элементы плейлиста смотрим. Тут никаких хитростей. Не забываем выбрать Deinterlace, чтобы убрать эффект гребенки.
Так выглядит плейлист VLC в текстовом виде.
#EXTINF:0,EuroNews
udp://@230.1.1.4
#EXTINF:0,BBC
udp://@230.1.1.2
#EXTINF:0,1Kanal
udp://@230.1.1.3
.........




2 способ.
Также для просмотра можно использовать и Windows Media Player (WMP). Но как всегда с продуктами компании Microsoft возникают сложности. Для начала нужно установить Elecard [6] кодек, он коммерческий и в качестве триал версии его можно использовать 21 день. Далее установить программу UdpFilters [7], которая собственно и заставляет WMP смотреть наши каналы. Ссылка на канал по адресу udp://230.1.1.1:1234 выглядит в WMP таким образом "elecard://230.1.1.1:1234/udp". Составляем плейлист и смотрим (стрелки тегов изменены нарошно).
>?wpl version="1.0"?<
>smil<
>head<
>meta name="Generator" content=
"Microsoft Windows Media Player --10.0.0.4036"/<
>title<>/title<
>/head<
>body<
>seq<
>media src="elecard://230.1.1.1:1234/udp >>
Sport Planeta"/<
>media src="elecard://230.1.1.2:1234/udp >> BBC"/<
>media src="elecard://230.1.1.3:1234/udp >> 1 Kanal"/<
>media src="elecard://230.1.1.4:1234/udp >> EuroNews"/<
... ... ...
>/seq<
>/body<
>/smil<
3 способ. Можно смотреть и при помощи браузера. Для этого, устанавливая VLC, необходимо установить ActiveX и Mozilla плагин. Поднимаем веб-сервер, а если он имеется, то размещаем на нем php скрипт, находящийся по адресу [8]. Скрипт был немного изменен: добавлены ссылки на каналы (справа от видеоэкрана на рис. 3), установлен по-умолчанию режим деинтерлейсинга blend, удалена излишняя для просмотра вещаемых каналов функциональность. Скрипт автоматически определяет браузер и поэтому в Internet Explorer будет использоваться ActiveX, а в Mozilla Firefox - Mozilla плагин.
Оба плагина поддерживают регулировку громкости и полноэкранный режим (веб-интерфейс представлен ниже). Данное решение является не только межпрограммным, но и межплатформенным, так как установить Mozilla и VLC с плагином можно на большинстве современных операционных систем (см. рис. 3).

К сожалению, при просмотре через WMP + Elecard обнаружилось, что некоторые каналы начинают откровенно "тормозить" при частом переключении с канала на канал, по той же причине WMP часто зависает. Разницы в качестве картинки между использованием коммерческого кодека Elecard и кодека VLC не заметно, что весьма удивительно (возможно что-то не так в настройках). На некоторых каналах VLC выигрывает в качестве. По функциональности, если нет задачи записывать видео или «играться» с деинтерлейсингом (хотя никто не мешает добавить эту возможность в веб-интерфейс), то, без сомнений, веб-интерфейс гораздо удобнее. Подавляющее большинство пользователей в нашей сети использует именно веб-интерфейс.

А теперь можно перейти и ко второму варианту просмотра телеканалов.
Вариант второй заключается в просмотре телеканалов на телевизионном приемнике (телевизоре :-) ) с использованием STB-приставки. STB представляет собой небольшое устройство с сетевым интерфейсом и обычно с несколькими видеовыходами.
В качестве образца была взята STB-приставка AmiNet 110 (см. рис. 4) [9].

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







Развитие сервиса


Сервис может получить развитие в виде новых источников:
  • каналы традиционного аналогового вещания;
  • веб-камеры;
  • создание своего видеоканала (например вещание видеозаписей или частной фильмотеки);
  • реализация сервиса VoD (Video on Demand).
В нашей сети к нескольким компьютерам подключены вебкамеры Logitech QuickCam. На данных компьютерах установлена программа VLC в качестве службы. Принятый с камер поток принимается, декодируется и раздается по мультикаст адресам в сеть. Таким образом, организован простой сервис видеонаблюдения. Организован свой канал — транслируются видеозаписи интересных и важных наших событий.

Заключение

Сервис ТРВ добавил функциональность в существующую инфраструктуру нашей сети, а также помог определить процент пользователей интересующихся данным видом сервиса, что может быть важно перед внедрением коммерческого вещания.
При всем при этом, на данный момент, он существенно не повлиял на ухудшение работы других сервисов сети.
Не стоит забывать о том, что требуется проводить контроль задержки, уровней ошибки и потери пакетов, джиттера, в условиях мультикаст трафика разной интенсивности и при выполнении на конечных узлах реально используемых сетевых приложений в рамках обычных (нескольких типовых) сценариев работы пользователей.
Отмечу, что за рамками данной статьи осталась информация о применении технологии имитационного моделирования для проектирования сетей и выявления потенциальных узких мест в них, настройке на оборудовании протоколов IGMP, PIM, реализации сервиса VoD. Внедрив сервис ТРВ, вы получите массу удовольствия!

Литература

  1. IETF Network Working Group, IP-Performance Metrics (IPPM) for spatial and multicast - 2006. - (http://www.ietf.org/internet-drafts/draft-ietf-ippm-multimetrics-02.txt). (на текущий момент доступна уже 11 версия)
  2. IETF Network Working Group, Benchmarking Methodology for Network Interconnect Devices-1999.- (http://www.ietf.org/rfc/rfc2544.txt).
  3. IETF Network Working Group, Framework for IP-Performance Metrics - 1998.- (http://www.ietf.org/rfc/rfc2330.txt).
  4. http://www.videolan.org/vlc/
  5. http://www.technisat.de
  6. http://www.elecard.com/products/products-pc/consumer/mpeg2-decoder-plugin/
  7. http://borpas.info/download/add/UdpFilters.exe
  8. http://people.videolan.org/~dionoea/vlc-plugin-demo/plugin.php
  9. http://www.aminocom.com/products/ipstb/aminet110.html

Опубликовано в журнале "Системный администратор", сентябрь 2007

понедельник, 25 мая 2009 г.

Мультисервисная сеть: качество обслуживания и мультикаст. Часть 3

Часть 1, Часть 2, Часть 3

Реализация QoS

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

Приоритеты и механизм ACL

Маркировку пакетов необходимо производить максимально близко к абоненту, то есть на оборудовании, к которому он непосредственно подключен. Для маркировки пакетов используется механизм ACL (Access Control List).

Стандартом IEEE 802.1d определены 8 уровней приоритетов:

  • Level 7 - для трафика, связанного с управлением сетью, например, для сообщений с настройками маршрутизатора.
  • Level 6 - для голосового трафика, особенно чувствительного к неустойчивой синхронизации (т.е. к изменчивости задержек).
  • Level 5 - для видеоданных, требующих широкой полосы пропускания и чувствительных к неустойчивой синхронизации.
  • Level 4 - для трафика с контролируемой нагрузкой на сеть, но чувствительного к задержкам – например, для транзакций SNA (системной сетевой архитектуры IBM).
  • Level 3 - для трафика, требующего передачи при первой возможности или с преимуществом относительно других видов трафика – например, для важного рабочего трафика, допускающего некоторую задержку.
  • Level 2 - для выделения резерва полосы пропускания.
  • Level 1 - для некритичного “фонового” трафика, например, для неконтролируемой передачи данных, которая допускается, но не должна никоим образом сказываться на других задачах и пользователях. Level 0 - для трафика, передаваемого только при наличии возможностей.

В нашей конфигурации управление сетевым оборудованием вынесено в отдельный vlan (9-manage), поэтому необходимо определить для всего 9-manage vlan - 7 уровень приоритета (IEEE 802.1d).

В nord-mk1 строки конфигурации выглядят следующим образом:

create access_profile ip vlan profile_id 3 //Создаем правило

config access_profile profile_id 3 add access_id 1
ip vlan 9-manage port 1 permit priority 7 replace_priority
//
для 9-manage vlan задаем 7 приоритет на 1 порту

...

config access_profile profile_id 3 add access_id 1
ip vlan 9-manage port 28 permit priority 7 replace_priority

Создаем для VoIP следующую конфигурацию:

create access_profile ip source_ip_mask 255.255.255.255
profile_id 4

config access_profile profile_id 4 add access_id 29
ip source_ip 192.168.0.4 port 1 permit priority 6
replace_priority

...

config access_profile profile_id 4 add access_id 29
ip source_ip 192.168.0.4 port 28 permit priority 6
replace_priority

Для всего мультикаст трафика задаем 6 приоритет:

create access_profile ip destination_ip_mask 240.0.0.0
profile_id 6

config access_profile profile_id 6 add access_id 1
ip destination_ip 224.0.0.0 port 1 permit priority 5
replace_priority

...

config access_profile profile_id 6 add access_id 1
ip destination_ip 224.0.0.0 port 28 permit priority 5
replace_priority

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

С остальными сервисами поступаем аналогично.

Для того, чтобы nord-mk1-sw04 (DES-2108) "понимал" заданные nord-mk1 приоритеты, необходимо, чтобы uplink его был тегированный.

Текущая конфигурация не обеспечивает полноценную реализацию QoS для каждого абонента, то есть исходящий трафик от абонента маркируется только после приема его nord-mk1. Вследствие этого, может возникнуть перегрузка на nord-mk1-sw04 (рисунок 1), когда абоненты создадут исходящий поток, превышающий пропускную способность uplink-канала (100 Мбит/c) на nord-mk1 (nord-mk1).

При использовании коммутаторов серии DES-3526 (26 портов) взамен DES-2108 (8 портов) этот недостаток полностью устраняется тем, что в DES-3526 существует механизм ACL, что позволяет перенести маркирование трафика максимально близко к абонентам. Конфигурация ACL DES-3828 полностью совместима с DES-3526. В итоге, получаем схему, в которой нужный исходящий и входящий трафик абонента промаркирован на всем пути следования пакетов. Таким образом, реализуется полноценное качество обслуживания для каждого абонента.

Использование DES-2108 обусловлено двумя причинами:

  • стоимость коммутатора DES-2108 в 3 раза ниже DES-3526;
  • невысокая плотность клиентов в подъездах;

По мере развития сети, увеличения плотности абонентов, повышения нагрузки на каналы в «узких» местах коммутаторы DES-2108 будут заменяться.

Методы обработки классифицированых пакетов.

Для обработки классифицированных пакетов в выбранном оборудовании есть возможность выбрать один из двух методов:

  1. Метод Strict.

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

  1. Wighted Round Robin (Взвешенное круговое обслуживание).

Обработка приоритетов происходит в зависимости от их "веса", задаваемого в конфигурации коммутатора.

Пример:

config scheduling 0 max_packet 1
config scheduling 1 max_packet 2
config scheduling 2 max_packet 3
config scheduling 3 max_packet 4
config scheduling 4 max_packet 5
config scheduling 5 max_packet 6
config scheduling 6 max_packet 7
config scheduling 7 max_packet 8

В примере, для каждого уровня QoS задается количество пакетов, которые будут обработаны в первую очередь. То есть, при наличии в буфере устройства трафика с 8 приоритетами, сначала будут обработаны 8 пакетов 7 уровня QoS, затем 7 пакетов 6 уровня QoS, и так далее по убыванию.

Масштабируемость и модернизация сети

При увеличении количества абонентов плотность абонентов также будет расти. Масштабируемость и модернизация на уровне доступа абонента реализуется заменой свитчей DES-2108. В качестве замены выступает свитч DES-3526 (таблица 1), обладающий бОльшим количеством портов, наличием 2х комбо-портов 1000BASE-T/SFP Gigabit Ethernet, продвинутой функциональностью. Стоимость «на порт» DES 3526 равна стоимости «на порт» DES-2108.

Использование приоритетов для выбранного трафика позволит обеспечить стабильное функционирование важных сервисов без увеличения пропускной способности канала, что сэкономит и оттянет затраты на замену вышестоящего оборудования. При дальнейшем увеличении количества абонентов и загруженности каналов, управляемый коммутатор Fast Ethernet уровня 3 DES-3828 может быть заменен на аналогичный по функциональности DGS-3627G. Этот коммутатор обеспечивает высокую плотность гигабитных портов оснащенных слотами SPF для гибкого подключения по оптике, а также слотами для установки модулей расширения с портами 10 Gigabit Ethernet.

Так как все используемые коммутаторы стекируемые (за исключением DES-2108), то использование технологии виртуального стека, также позволяет масштабировать сеть, добавляя необходимое количество портов.

Итог

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

Надеюсь, данная статья поможет разобраться с практическими основами внедрения QoS, повысить эффективность работы сети, а также поможет обеспечить стабильную работу нужных именно Вам сервисов.

Литература

  1. Шринивас Вегешна «Качество обслуживания в сетях IP», Cisco, издательство «Вильямс»,2003
  2. http://www.dlink.ru/technical/
  3. «Как организовать сервис телерадиовещания в сети», «Системный администратор», сентябрь 2007

Опубликовано в журнале "Системный администратор", апрель 2008