1. Как ёмкость буфера влияет на метрики QoS? Прямо пропорционально для задержки и загрузки и обратно пропорционально для процента потерь. 2. Алгоритмы обслуживания. FIFO ---- Элементарная очередь без приоретизации: каждый класс трафика получает одинаковое количество обслуживания в случае, если считать задержку ожидания в буфере, при учёте задержки при выдаче в канал связи, то равное обслуживание не обеспечвается. pfifo ----- Packet fifo -- FIFO по пакетам. bfifo ------ Byte fifo -- FIFO по байтам. pfifo_fast ---------- Содержит три отряда для разделения трафика. Каждый отряд -- обычная очередь FIFO. высокоприоритетный трафик помещается в нулевой отряд и всегда обрабатывается в первую очередь и так далее. pfifo_fast является бесклассовой и не может содержать подклассы и другое ДО очередей. FIFO с учётом ToS пакета. PQ -- Разным классам трафика устанавливается приоритет: трафик низкоприоритетного класса передаётся только в том случае, когда нет пакетов высокоприоритетного класса на передачу. Таким образом обуславливается наилучшее качество обслуживания для высокоприоритетного класса, однако блокирует низкоприоритетный при перегрузках. WFQ (Weighted Fair Queuing) --------------------------- Для каждого трафика устанавливается вес; за каждый цикл работы WFQ из очереди одного класса передаются пакеты суммарным размером равным весу класса. Установка веса даёт гарантии, что класс с большим весом будет получать большее качество обслуживания и что в условиях высокой нагрузки класс будет получает канал за конечное время. WRED (Weighted Random Early Detection) -------------------------------------- Взвешенное произвольное ранее обнаружение -- алгоритм для управление переполнением очередей маршрутизаторов. Предоставляет различные уровни обслуживания пакетов в зависимости от вероятности их отбрасывания. Более интенсивно отбрасываются пакеты одного типа трафика и менее -- другого. Используется для своевременного обнаружения перегрузок. TBF (Token Bucket Filter) ------------------------- Данная дисциплина обработки очереди основывается на токенах. Она просто ограничивает скорость исходящего потока на интерфейсе и представляет собой отличное решение в случаях, когда нужно ограничить скорость передачи. Пакеты передаются только в случае наличия достаточного количества токенов. При недостатке токенов, пакеты начинают помещаться в буфер, а после его заполнения -- уничтожаться. Дисциплина ТBF для своей работы использует механизм токенов. Токены генерируются системой с постоянной скоростью и помещаются в буфер(bucket). За каждый токен, вышедший из буфера с интерфейса уходит IP-пакет. Если скорости передачи пакетов и генерации токенов совпадает, процесс передачи данных идет без задержки. Если скорость передачи пакетов меньше чем скорость токенов, последние начинают накапливаться в буфере и затем могут использоваться для кратковременной передачи данных на скорости выше пороговой. Если скорость передачи пакетов выше — токенов начинает не хватать. Пакеты данных ожидают новых токенов некоторое время, а затем начинают отбрасываться. HTB (Hierarchical Token Bucket) ------------------------------- Дисциплина HTB использует идею токенов. Благодаря классовости, поддержки технологии заема полосы пропускания, HTB позволяет организовывать сложное и тонкое управление трафиком. Одно из наиболее простых применений данной дисциплины -- это простое ограничение скорости. Весь процесс ограничения полосы пропускания выполняется в краевых классах. Внутренние классы предназначены для реализации механизма заема пропускной способности. Важной составляющей дисциплины HTB является механизм заема полосы пропускания. Подклассы начинают занимать часть полосы пропускания у своих родительских классов, только когда трафик превышает значение, заданное параметром rate. Подклассы могут занимать полосу пропускания, только если часть общей полосы пропускания свободна. Максимальное значение полосы пропускания, до которого может занимать класс, определяется параметром ceil, по достижении которого пакеты начинают помещаться в буфер, ожидая токены. Дисциплина HTB позволяет создавать классы двух типов, поведение которых при различных значениях параметра rate приведено ниже в таблице HTB помогает контролировать исходящий трафик на заданном интерфейсе путем разделения физического канала на несколько логических и распределения по ним трафика разных типов. Согласно правилам HTB скорость передачи данных каждого класса будет равна минимуму из запрошенной скорости и скорости, гарантированной определением класса. Если класс запрашивает скорость меньше гарантированной, остаток полосы распределяется между остальными. Как это работает: все ИСХОДЯЩИЕ пакеты, т.е. предназначенные для выдачи на любой интерфейс вместо того, чтобы отправляться напрямую на интерфейс ставятся в разные очереди. Длина каждой очереди настраивается. Н астраиваются также: скорость выдачи данных из очереди (это и есть собственно лимит), длина очереди (размер в байтах), размер пакета, выходящего из очереди (может не совпадать с длиной поступающих пакетов) и многое другое. Пакеты, не помещающиеся в очередь, сбрасываются. Данные из очереди выдаются на интерфейс и далее — к клиенту. Есть 3 типа класса: root, inner, leaf. root -- задаёт класс inner -- имеют потомков и предков. leaf -- не имеют потомков. FQ_CODEL (Fair Queuing with Controlled Delay) --------------------------------------------- Планировщик пакетов с активным управлением очередью. Использует стохастическую модель для классификации входящих пакетов в разные потоки. Используется для честного разделения канала между потоками. Каждый поток управляется ДО CoDel. CoDel: Измеряет минимальную задержку в очереди и сравнивает её с заданным значением задержи. Если текущая задержка меньше заданной, то пакет не отбрасывается. Если текущая задержка превосходит заданную на время, большее чем заданный интервал, то пакет отбрасывается. 3. Метрики * Пропускная способность * Задержка * Потеря фреймов * Jitter 4. Джиттер -- вариация задержки пакета 5. RTT (round trip time)-- это время, затраченное на отправку сигнала, плюс время, которое требуется для подтверждения, что сигнал был получен. 6. Классы качества: * 0 -- приложения реального времени, высокоинтерактивные. * 1 -- приложения реального времени, среднеинтерактивные. * 2 -- транзакциии данных высокой степени интерактивности. * 3 -- транзакции данных средней степени интерактивности. * 4 -- приложения, допускающие низкий уровень потерь. * 5 -- обычные IP-пакеты. 7. Доверительные интервал нужен для оценки точности рассчётов. 8. Уменьшение джиттера: * Сокращение задержек (едва снизит). * Приоритизация трафика. * Шейпинг полосы. * Увеличение буфера. * Увеличение задержки. 9. Является ли стационарным? В зависимости от параметров. 10. Интутивные представления: для важных пакетов real-time приложения разумнее делать небольшой размер пакета, чтобы уменьшить потери. В то время как, к примеру, для VoD можно слать большие TCP-пакеты. 11. Методы QoS: * Best Effor Service Отсутствие механизмов QoS. * IntServ Модель интегрированного обслуживания. Обеспечивает свозное качество обслуживания. Позволяет приложениям выражать сквозное требование к ресурсам и содержит механизмы реализации данных требований. Единица обслуживания -- поток. Для реализации механизмов использует RSVP. * DiffServ Модель дифференцированного обслуживания. В архитектуре DiffServ каждый передаваемый пакет снабжается информацией, на основании которой принимается решение о его продвижении на каждом промежуточном узле сети, в соответствии с политикой обслуживания трафика данного класса (Per-Hop Behavior, PHB). Модель дифференцированного обслуживания занимает промежуточное положение между негарантированной доставкой данных и моделью IntServ и сама по себе не предполагает обеспечение гарантий предоставляемых услуг, поэтому дифференцированное обслуживание часто называют мягким QoS (soft QoS). Единица обслуживания -- класс.