По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Вам, как сетевому инженеру, крайне важно разбираться в том, каким образом вызовы 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.
img
Перед тем как начать чтение этой статьи, советуем ознакомиться с материалом про расчет пути по алгоритму Bellman - ford. Алгоритм диффузного обновления (Diffusing Update Algorithm -DUAL) - один из двух обсуждаемых здесь алгоритмов, изначально предназначенных для реализации в распределенной сети. Он уникален тем, что также удаляет информацию о достижимости и топологии, содержащуюся в конечном автомате алгоритма. Другие обсуждаемые здесь алгоритмы оставляют удаление информации на усмотрение реализации протокола, а не рассматривают этот аспект работы алгоритма внутри самого алгоритма. К 1993 году Bellman-Ford и Dijkstra были реализованы как распределенные алгоритмы в нескольких протоколах маршрутизации. Опыт, полученный в результате этих ранних реализаций и развертываний, привел ко "второй волне" исследований и размышлений о проблеме маршрутизации в сетях с коммутацией пакетов, что привело к появлению вектора пути и DUAL. Поскольку DUAL разработан как распределенный алгоритм, лучше всего описать его работу в сети. Для этой цели используются рисунки 8 и 9. Чтобы объяснить DUAL, в этом примере будет прослеживаться поток A, изучающего три пункта назначения, а затем обрабатываются изменения в состоянии доступности для этих же пунктов назначения. В первом примере будет рассмотрен случай, когда есть альтернативный путь, но нет downstream neighbor, второй рассмотрит случай, когда есть альтернативный путь и downstream neighbor. На рисунке 8 изучение D с точки зрения A: A узнает два пути к D: Через H стоимостью 3. Через C стоимостью 4. A не узнает путь через B, потому что B использует A в качестве своего преемника: A - лучший путь B для достижения D. Поскольку B использует путь через A для достижения D (пункта назначения), он не будет анонсировать маршрут, который он знает о D (через C) к A. B выполнит split horizon своего объявления D на A, чтобы предотвратить образование возможных петель пересылки. A сравнивает доступные пути и выбирает кратчайший путь без петель: Путь через H помечен как преемник. Возможное расстояние устанавливается равным стоимости кратчайшего пути, равной 3. A проверяет оставшиеся пути, чтобы определить, являются ли какие-либо из них downstream neighbors: Стоимость C составляет 3. A знает это, потому что C объявляет маршрут к D со своей локальной метрикой, равной 3. A сохраняет локальную метрику C в своей таблице топологии. Следовательно, A знает локальную стоимость в C и локальную стоимость в A. 3 (стоимость в C) = 3 (стоимость в A), поэтому этот маршрут может быть петлей, следовательно, C не удовлетворяет условию выполнимости. C не помечен как downstream neighbors. Downstream neighbors в DUAL называются возможными преемниками. Предположим, что канал [A, H] не работает. DUAL не полагается на периодические обновления, поэтому A не может просто ждать другого обновления с достоверной информацией. Скорее A должен активно следовать альтернативному пути. Таким образом, это диффузный процесс обнаружения альтернативного пути. Если канал [A, H] не работает, учитывая только D: A проверяет свою локальную таблицу на предмет возможных преемников (Downstream neighbors). Возможных преемников нет, поэтому A должен найти альтернативный путь без петель к D (если он существует). A отправляет запрос каждому соседу, чтобы определить, есть ли какой-либо альтернативный путь без петель к D. В C: Преемником C является E (не A, от которого он получил запрос). Стоимость E ниже, чем стоимость A для D. Следовательно, путь C не является петлей. C отвечает со своей текущей метрикой 3 на A. В B: А - нынешний преемник Б. Посредством запроса B теперь обнаруживает, что его лучший путь к D потерпел неудачу, и он также должен найти альтернативный путь. Обработка B здесь не расписывается, а предоставляется выполнить самостоятельно. B отвечает A, что у него нет альтернативного пути (отвечает бесконечной метрикой). A получает эти ответы: Путь через C - единственный доступный, его стоимость 4. A отмечает путь через C как его преемника. Других путей к D нет. Следовательно, нет подходящего преемника (downstream neighbor). На рисунке 9 пункт назначения (D) был перемещен с H на E. Это будет использоваться во втором примере. В этом примере есть возможный преемник (downstream neighbor). Изучение D с точки зрения A: A узнает два пути к D: Через H стоимостью 4. Через C стоимостью 3. A не узнает никакого пути через B: У B есть два пути к D. Через C и A стоимостью 4. В этом случае B использует как A, так и C. B выполнит split horizon свого объявления D на A, потому что A помечен как преемник. A сравнивает доступные пути и выбирает кратчайший путь без петель: Путь через C отмечен как преемник. Возможное расстояние устанавливается равным стоимости кратчайшего пути, равной 3. A проверяет оставшиеся пути, чтобы определить, являются ли какие-либо из них downstream neighbors: Стоимость H составляет 2. 2 (стоимость в H) = 3 (стоимость в A), поэтому этот маршрут не может быть петлей. Следовательно, H удовлетворяет условию выполнимости. H отмечен как возможный преемник (downstream neighbors). Если канал [A, C] не работает, просто рассматривая A: A проверит свою таблицу локальной топологии на предмет возможного преемника. Возможный преемник существует через H. A переключает свою локальную таблицу на H как лучший путь. Распространяющееся обновление не запускалось, поэтому пути не были проверены или пересчитано. Следовательно, допустимое расстояние изменить нельзя. Он остается на 3. A отправляет обновление своим соседям, отмечая, что его стоимость достижения D изменилась с 3 до 4. Как вы можете видеть, обработка, когда существует возможный преемник, намного быстрее и проще, чем без него. В сетях, где был развернут протокол маршрутизации с использованием DUAL (в частности, EIGRP), одной из основных целей проектирования будет ограничение объема любых запросов, генерируемых в случае отсутствия возможного преемника. Область запроса является основным определяющим фактором того, как быстро завершается двойной алгоритм и, следовательно, как быстро сходится сеть. На рисунке 10 показан базовый законченный автомат DUAL. Вещи, входящие в route gets worse (ухудшение маршрута), могут представлять собой: Отказ подключенного канала или соседа Получение обновления для маршрута с более высокой метрикой Получение запроса от текущего преемника Получение нового маршрута от соседа Обнаружен новый сосед, а также маршруты, по которым он может добраться Получение всех запросов, отправленных соседям, когда маршрут ухудшается
img
В данной статье будет в общем виде рассмотрен диалплан и его содержимое - контексты и экстеншены в Asterisk. Формат диалплана Диалплан в файле extensions.conf структурирован в секции, называемые контекстами. Контекстом называется сущность внутри диалплана, которая позволяет функционировать его различным частям совершенно независимо. Контексты используются для разделения функций, улучшения безопасности между различными частями диалплана, настройкой классов обслуживания для разных пользователей и так далее. Контексты в диалплане Синтаксис для контекста точно такой же как и во всех конфигурационных файлах Asterisk (файлах с расширением .conf) Для создания контекста просто необходимо поместить его название в квадратные скобки: [telephony-users] Экстеншены в диалплане Внутри каждого контекста необходимо обозначит один или более экстеншенов. Экстеншен по сути это определенный список действий с определенным названием. После набора номера экстеншена, Астериск последовательно выполняет каждое действие. Синтаксис у экстешена следующий: exten => number,priority,application([parameter[,parameter2...]]) К примеру: exten => 101,1,Dial(PJSIP/celecom, 20) В данном случае, номер экстеншена – 101, номер приоритета – 1, используемое приложение – Dial(), с параметрами PJSIP/celecom и 20. Приоритеты Внутри каждого экстеншена должен быть один или более номеров приоритетов. Приоритет это просто число, от 1 до N. Команда с первым приоритетом будет соответственно исполнена первой, после её завершения будет исполняться команда с приоритетом 2 и так далее. Обязательно нужно использовать последовательные числа, иначе выполнение сценария будет прервано. exten => 101,1,выполнить действие exten => 101,2,выполнить другое действие exten => 101,5,выполнить еще какое-то действие В примере выше выполнение сценария прервется после строчки с приоритетом 2, по причине того, что отсутствует приоритет с номером 3. Кроме того, вместо номера приоритета можно указывать литеру n (next). То есть возможен такой сценарий: exten => 101,1,выполнить действие exten => 101,n,выполнить другое действие exten => 101,n,выполнить еще какое-то действие Если не хочется постоянно писать номер экстеншена, можно использовать функцию same. exten => 101,1,NoOp() same => n(repeat),Verbose("Нужно что-то сделать!") same => n,Verbose("Нужно сделать что-то другое!") Порядок обработки диалплана Порядок считывания экстеншенов внутри контекста идёт сверху вниз, причем вложенные контексты обрабатываются первыми. То есть к примеру у вас есть три контекста – X, Y и Z. Если вы хотите чтобы контекст Z обрабатывался первым, просто сделайте его вложенным контекстом для контекста X. Порядок поиска таков: Экстеншены Экстеншены с масками Вложенные экстеншены Переключатели
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59