По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Вам, как сетевому инженеру, крайне важно разбираться в том, каким образом вызовы VoIP влияют на пропускную способность канала в вашей компании. И по мере того, как работа из дома становится новой нормой, важность этого понимания возрастает еще больше.
Расчет пропускной способности ваших IP-вызовов Cisco сводится к нескольким простым вычислениям. Такое уравнение поможет вам и вашей компании определить потребности сети.
Эта статья разделена на 2 части. В первой объясняется терминология для проведения вычислений. Во второй – дается практический пример расчетов пропускной способности канала. Кроме того, мы поговорим о том, как разные протоколы влияют на ширину полосы, и где почитать подробнее о вычислениях.
Что такое кодек?
«Кодек» расшифровывается как «кодер/декодер». В принципе, его полное название должно помочь в понимании функций, но давайте поговорим о них подробнее. Когда человек осуществляет вызов через VoIP и разговаривает, его голос должен переводиться в нечто понятное для компьютера. Кодек – это часть программного обеспечения, которая и выполняет цифровое преобразование голоса или любого другого звука. Давайте вкратце обсудим, как это происходит.
Основная функция кодека – преобразование голоса в цифровой сигнал. Голос – это звуковая волна, а компьютер может получить лишь часть, или выборку, этой волны с помощью математического процесса под названием интерполяция. Иначе говоря, кодек разрезает волную на несколько выборок, а затем приблизительно рассчитывает оставшуюся часть волны. Потом он берет этот примерный расчет и переводит его в бинарные данные, которые вновь преобразуются в голос. Теперь, когда мы поняли, как работает кодек, настало время поговорить о четырех примерах, которыми мы будем пользоваться в вычислениях.
4 кодека VoIP для Cisco
4 кодека VoIP для Cisco – это G.711, G.729, G.7622 и ILBC. Для каждого кодека существует своя величина выборки. Величина выборки кодека (Codec Sampling Size) – это количество байт, которое используется для оцифровки образца сигнала. Поговорим об этом подробнее, начиная с G.711.
Что такое G.711?
Кодек G.711 – это кодек, который специализируется на ясности и производительности. Именно поэтому у него высокая скорость передачи данных, или битрейт (64 000 КБ от пропускной способности сети), а величина выборки кодека – целых 80 байт. В основном, он используется для VoIP, но подходит также и для факсов.
Что такое G.729?
Кодек G.729 – это идеальное решение при ограниченной пропускной способности канала. Например, он хорошо подходит для малых бизнесов. Однако крупные компании, одновременно обслуживающие многих клиентов, быстро столкнутся с ограничениями G.729. Этот кодек занимает 8 000 КБ полосы и ограничивается только VoIP.
Что такое G.722?
G.722 похож на G.711. Величина выборки тоже 80 байт, а скорость передачи данных – 64 кбит/сек. Основное отличие заключается в том, что в G.722 доступна более широкая речевая полоса частот на 50-7000 Гц, тогда как речевая полоса в G.711 варьирует от 200 до 3000 Гц. G.722 хорошо подходит для случаев, когда звук должен быть особенно точным.
Что такое iLBC?
ILBC расшифровывается как Internet Low Bitrate Codec, или интернет-кодек с низкой скоростью передачи данных. Его битрейт составляет порядка 15 кбит/сек, а величина выборки кодека – 38 байт. Самое лучшее в iLBC – его способность снижать качество речи при потере большого количества блоков данных (фреймов).
Теперь, когда мы детально разобрались в 4 разных протоколах, давайте вернемся к разговору о том, как рассчитать пропускную способность канала для каждого из них.
Расчет пропускной способности канала
Рассчитать пропускную способность канала можно в несколько простых шагов. Первым делом обозначьте все необходимые переменные. Обязательные переменные перечислены ниже:
кодек и скорость передачи данных
величина выборки кодека
интервал выборки кодека
средняя оценка разборчивости речи (MOS)
размер полезной части голосового пакета
Обратите внимание на четвертую переменную – среднюю оценку разборчивости речи. Она оценивает качество звука (от 1 до 5) при использовании конкретного кодека.
Рассмотрим пример в таблице:
Кодек и битрейт
Величина выборки кодека
Интервал выборки кодека
Средняя оценка разборчивости речи
Размер полезной части голосового пакета
Пропускная способность для Ethernet
G.711 (64 кбит/сек)
80
10
4,1
160
87,2
G.729 (8 кбит/сек)
10
10
3,92
20
31,2
G.722 (64 кбит/сек)
80
10
4,13
160
87,2
ILBC (15,2 кбит/сек)
38
10
4,14
38
38,4
Помните, что наша цель – найти самое последнее число из таблица, то есть пропускную способность для Ethernet. Основное уравнение принимает вид:
Общая пропускная способность = Размер пакета х Пакетов в секунду
Но выполнить расчеты по этой формуле не так уж просто, поскольку в таблице данных отсутствуют значения «Размер пакета» и «Пакетов в секунду». Давайте рассчитаем пропускную способность для кодека G.711 со скоростью передачи данных в 87,2 кб/сек.
Вычисление размера пакета
Для начала определим размер пакета для отдельного вызова VoIP. Выражение для определения этого параметра принимает вид:
Размер выборки в байтах = (Размер пакета x пропускная способность кодека) / 8
Переменную «Размер выборки в байтах» можно взять из таблицы (см. «Размер полезной части голосового пакета), а пропускная способность кодека берется из первого столбца. Теперь наше выражение выглядит так:
160 байт = (размер пакета x 64 000) / 8
Обратите внимание, что мы делим правую часть на 8, потому как все вычисляется в битах, а итоговый ответ нужно получить в байтах. Далее умножим каждую часть на 8, чтобы убрать 8 из знаменателя. Получается следующее:
1280 = (размер пакета x 64 000)
И, наконец, найдем размер пакета, разделив каждую часть на 64 000. В результате мы нашли размер пакета в 0,02 или 20 мс. То есть голосовую выборку для пропускной способности в 20 мс. Например, это количество времени, которое требуется, чтобы произнести букву «П» в слове «Привет», – именно это мы и вычисляли.
Добавление потребления ресурсов в объем выборки
Вы же помните, что VoIP не происходит в вакууме. Множество других процессов приводят к дополнительному потреблению ресурсов. Вернемся к нашему размеру полезной части голосового пакета в 160 байт. Один только Ethernet добавит к этой цифре еще 18 байт. Затем, как мы знаем, IP, UDP и протоколы RTP не останутся в стороне и добавят лишние 40 байт. Получается, что настоящий размер выборки становится 160 + 40 + 218 – это общий размер выборки в 218 байт.
Расчет общей пропускной способности
Теперь мы дошли до финальной части. Ранее уже говорилось, что общая пропускная способность равна размеру пакета х количество пакетов в секунду. Мы нашли наш размер выборки – 20 мс. Чтобы найти количество пакетов, передаваемых по проводам за этой время, воспользуемся следующим уравнением:
1000 мс / размер пакета = 1000 мс / 20 мс = 50 пакетов в секунду.
Мы рассчитали, что размер пакета (он же размер выборки) равен 218 байт. И теперь можно получить ответ:
Общая пропускная способность = 218 байт x 50 пакетов
Общая пропускная способность = 10 900 байт/сек
Переведем это число в килобайты, разделив его на 8. В результате мы получаем 87,2 кб/сек.
Заключение
В статье было много специальной лексики и математических расчетов. Но, разобравшись в этом, вы станете бесценным членом команды сетевых инженеров и сможете работать с VoIP-технологиями Cisco.
Ядро Linux является основой Unix-подобных операционных систем. Ядро отвечает за связь между оборудованием и программным обеспечением и за распределение доступных ресурсов.
Все дистрибутивы Linux основаны на предопределенном ядре. Но если вы хотите отключить несколько параметров и драйверов или попробовать экспериментальные исправления, вам необходимо собрать ядро Linux.
В этом пошаговом руководстве вы узнаете, как собрать и скомпилировать ядро Linux с нуля.
Сборка ядра Linux
Процесс создания ядра Linux состоит из семи простых шагов. Однако процедура требует значительного времени для завершения, в зависимости от скорости системы.
Примечание. Если версия на веб-сайте ядра не совпадает с версией из приведенных ниже шагов, используйте эти команды и замените номер версии ядра.
Шаг 1. Загрузите исходный код
1. Посетите официальный сайт ядра www.kernel.org и загрузите последнюю версию. Загруженный файл содержит сжатый исходный код.
2. Откройте терминал и используйте команду wget для загрузки исходного кода ядра Linux:
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.6.tar.xz
По завершении загрузки в выходных данных отображается сообщение "saved".
Шаг 2: извлеките исходный код
Когда файл будет готов, запустите команду tar, чтобы извлечь исходный код:
tar xvf linux-5.9.6.tar.xz
Вывод отображает извлеченный исходный код ядра:
Шаг 3: Установите необходимые пакеты
Перед сборкой ядра установите дополнительные пакеты. Для этого запустите эту команду:
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison
Команда, которую мы использовали выше, устанавливает следующие пакеты:
git - отслеживает и записывает все изменения исходного кода во время разработки. Это также позволяет отменить изменения.
fakeroot - упаковочный инструмент, создающий фальшивую корневую среду.
build-essential - Устанавливает инструменты разработки, такие как C, C++, gcc и g++.
ncurses-dev - Библиотека программирования, предоставляющая API для текстовых терминалов.
xz-utils - обеспечивает быстрое сжатие и распаковку файлов.
libssl-dev - поддерживает SSL и TSL, которые шифруют данные и делают интернет-соединение безопасным.
bc (Basic Calculator) - математический язык сценариев, поддерживающий интерактивное выполнение операторов.
flex (Fast Lexical Analyzer Generator) - генерирует лексические анализаторы, преобразующие символы в токены.
libelf-dev - выдает общую библиотеку для управления файлами ELF (исполняемые файлы, дампы ядра и объектный код)
bison - генератор парсера GNU, который преобразует описание грамматики в программу на языке C.
Шаг 4: Настройте ядро
Исходный код ядра Linux поставляется с конфигурацией по умолчанию. Однако вы можете настроить его под свои нужды. Для этого выполните следующие действия:
1. Перейдите к каталогу linux-5.9.6. с помощью команды cd:
cd linux-5.9.6
2. Скопируйте существующий файл конфигурации с помощью команды cp:
cp -v /boot/config-$(uname -r) .config
3. Чтобы внести изменения в файл конфигурации, выполните команду make:
make menuconfig
Команда запускает несколько скриптов, которые затем открывают меню конфигурации:
4. Меню конфигурации включает в себя такие параметры, как прошивка, файловая система, сеть и параметры памяти. Используйте стрелки, чтобы сделать выбор, или выберите HELP, чтобы узнать больше о вариантах. Когда вы закончите вносить изменения, выберите SAVE, а затем выйдите из меню.
Примечание. Изменение настроек некоторых параметров может привести к тому, что ядро не будет работать. Если вы не знаете, что изменить, оставьте настройки по умолчанию.
Шаг 5: Соберите ядро
1. Начните сборку ядра, выполнив следующую команду:
make
Процесс сборки и компиляции ядра Linux занимает некоторое время.
Терминал перечисляет все компоненты ядра Linux: управление памятью, драйверы оборудования, драйверы файловой системы, сетевые драйверы и управление процессами.
2. Установите необходимые модули с помощью этой команды:
sudo make modules_install
3. Наконец, установите ядро, набрав:
sudo make install
Вывод показывает готово, когда закончено:
Шаг 6. Обновите загрузчик (необязательно)
Загрузчик GRUB - это первая программа, которая запускается при включении системы.
Команда make install выполняет этот процесс автоматически, но вы также можете сделать это вручную.
1. Обновите initramfs до установленной версии ядра:
sudo update-initramfs -c -k 5.9.6
2. Обновите загрузчик GRUB с помощью этой команды:
sudo update-grub
Терминал выведет процесс и подтверждающее сообщение:
Шаг 7: перезагрузите и проверьте версию ядра
Когда вы выполните описанные выше действия, перезагрузите компьютер.
Когда система загрузится, проверьте версию ядра с помощью команды uname:
uname -mrs
Терминал покажет текущую версию ядра Linux.
Итог
В этом пошаговом руководстве вы узнали, как собрать ядро Linux с нуля и установить необходимые пакеты.
Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно.
Основы
Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры:
/home/user1/tmp/test.sh - полный путь;
~/tmp/file1 - относительный путь;
Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ.
Команды для работы с файлами и директориями
Команд довольно много, я перечислю самые, на мой взгляд, часто используемые:
cd - смена директории на домашнюю, можно добавлять аргументы – к примеру, cd /root;
pwd - команда покажет текущий путь к директории, в которой вы находитесь в данный момент;
ls - вывод списка файлов и каталогов по порядку (наверное, самая известная команда) если добавить модификаторы lax, то команда выведет форматированный список всех файлов и директорий (в том числе скрытые);
cat - показывает содержимое файла, к примеру – cat /root/file.txt;
tail - например, tail /root/file.txt, выводит только конец файла, удобно при работе с логами;
cp - копирование директории или файла, то есть cp /root/file.txt /etc/folder1/file.txt – из /root файл будет скопирован в указанную директорию
mkdir - создание директории, например, mkdir /root/1;
rmdir - удаление директории, синтаксис такой же, как и у команды выше;
rm -rf - очень опасная команда (и довольно популярная в интернет фольклоре), но иногда и она может пригодиться – она удаляет директорию со вложенными файлами;
mv - переименование файла или директории, сначала указывается целевая директория и затем её новое название;
locate - поиск файла с заданным названием;
Для наглядности, посмотрите на вывод команды tail
# tail install.log
Installing dosfstools-3.0.9-4.el6.i686
Installing rfkill-0.3-4.el6.i686
Installing rdate-1.4-16.el6.i686
Installing bridge-utils-1.2-10.el6.i686
Installing eject-2.1.5-17.el6.i686
Installing b43-fwcutter-012-2.2.el6.i686
Installing latrace-0.5.9-2.el6.i686
Installing trace-cmd-2.2.4-3.el6.i686
Installing crash-trace-command-1.0-5.el6.i686
*** FINISHED INSTALLING PACKAGES ***
В примере выше, команда tail вывела только последние 11 строк.
Работа с архивами
Работа с .tar архивами – очень часто встречающаяся задача, поэтому хотим привести несколько полезных команд, чтобы не пришлось лишний раз пользоваться поисковиком :)
tar cf example.tar /home/example.txt - создание .tar архива, который будет содержать в себе текстовый файл example.txt;
tar cjf example1.tar.codez2 /home/example1.txt - команда с тем же функционалом, только будет использоваться сжатие Bzip2;
tar czf example2.tar.gz /home/example2.txt - опять архивация, только на этот раз со сжатием Gzip;
tar xf example.tar - распаковка архива в текущую директорию, если тип сжатия нестандартный, то после расширения нужно добавить тип сжатия (.codez2 или .gz соответственно);
Работа с .rpm пакетами
Так как мы больше всего рассказываем и пишем про FreePBX, который по умолчанию скачивается с официального сайта вместе c СentOS, здесь место для пары команд по работе c RPM пакетами. Почему? Потому что CentOS – RPM-based Linux Distribution :) Команды требуют наличие прав супер - пользователя.
rpm -qa - вывод списка всех установленных RPM пакетов в системе;
rpm –i rpmpackage.rpm - установка пакета с именем rpmpackage;
rpm –e rpmpackage - удаление пакета с таким именем;
dpkg -i *.rpm - установка всех пакетов в директории;
Про жёсткие диски
Команда fdisk –l выводит информацию о всех подключенных жёстких и сменных дисках в системе, бывает очень полезной. Ниже пример вывод этой команды (в качестве пример рассматривается OTRS - сервер)
umask 0077