Управление трафиком
Использование заголовка для определения приоритета очереди
Использование заголовка для определения приоритета очереди - второй метод, который определяет классы обслуживания. Отдельные буферы обслуживают различные классы обслуживания, имеющие различный приоритет (отметку коэффициента потери ячеек - CLP). Как показано на рис. 7.3, в каждый момент времени оборудование линии передачи, получая следующий пакет для передачи, выбирает пакет в зависимости от состояния очереди с высоким приоритетом. Например, пакет, который требует малого времени задержки, устанавливается в очередь, имеющую высокий приоритет ( ), а пакет, который не требует срочной передачи, устанавливается в очередь, имеющую низкий приоритет ( ). Размеры буферной памяти могут быть различными для каждого класса приоритета, в зависимости от требуемой вероятности потерь. Пакет из низкоприоритетной очереди принимается для передачи только в случае отсутствия заявок в буферной памяти высокого приоритета. Наличие заявок в очереди фиксируется в ее заголовке.
Несмотря на то, что приоритетная организация очереди обеспечивает различные уровни обслуживания для различных классов, она имеет недостатки. Например, она не позволяет доступ пакетам низкого уровня, пока есть пакеты высокого уровня, независимо от загрузки канала. Также редко поступающие (не подряд) заявки высокого уровня могут блокировать длинную очередь низкого уровня. Другая проблема состоит в том, что не учитываются заявки различных пользователей одного и того же приоритета. Например, пользователь с напряженной нагрузкой блокирует работу других пользователей.
Сортировка пакетов
Третий подход к организации планирования очереди показан на рис. 7.4. Он включает сортировку пакетов в буфере согласно приоритетной метке, отражающей безотлагательность, с которой каждый пакет должен быть передан. Эта система имеет большую гибкость, потому что метод открыт для присвоения приоритета и даже может делать это динамически.
Например, метка приоритета может содержать класс приоритета, который вытекает из времени прибытия пакета. В результате система улучшает дисциплину обслуживания с использованием заголовка. Во втором примере метка может указывать желательный срок прибытия. Пакетам, требующим меньшей задержки, присваивается соответственно более ранний срок прибытия, и они передаются скорее. Пакеты, не предъявляющие строгие требования, имеющие неопределенные или долгие сроки, могут быть переданы после того, как будут переданы пакеты с критическими сроками. Третий важный пример, который может быть реализован этим методом, - равнодоступная очередь.
Равнодоступная дисциплина
Равнодоступная дисциплина очереди пытается обеспечить равноправный доступ к пропускной способности канала. В компьютерной технике такая дисциплина называется дисциплиной, формируемой процессором (processor sharing discipline). Каждый пользовательский поток имеет свой собственный логический буфер. В идеальной системе пропускная способность передачи, скажем, C бит/с, разделена одинаково среди буферов. Содержание каждого буфера может тогда рассматриваться как жидкость, которая непрерывно вытекает. Такая ассоциация позволит в дальнейшем построить удобную модель. Размер буфера для каждого пользовательского потока может быть выбран так, чтобы выполнить заданные требования по вероятности потерь - ячейки или пакеты данного пользователя должны отклоняться, когда буфер полон.
Равнодоступная очередь равнодоступна в следующем смысле. В идеальной ситуации пропускная способность передачи разделена одинаково среди всех непустых буферов.
Таким образом, если общее количество потоков в системе n и пропускная способность передачи , то каждый поток гарантируется не менее чем бит/с.
Фактическая скорость передачи может быть выше, потому что буфера будут пусты время от времени, так как ресурс почти всегда больше, чем бит/с.
Практически деление пропускной способности "поровну" невозможно. Как показано на рис. 7.5, один из подходов состоит в циклическом опросе каждого непустого буфера (round robin polling) и передаче по одному биту. Однако декомпозиция результирующего потока бит в составляющие пакеты требовала бы введения цикловой синхронизации и сложной обработки при выводе. В случае ATM равнодоступной организации очереди можно добиться относительно простым способом. Поскольку в ATM все пакеты имеют одну и ту же длину, система может обслуживать циклически непустые буфера по одному пакету. Пользовательским потокам тогда гарантирован равный доступ к ресурсам передачи.
Следует обратить внимание, что при опросе имеются как минимум две стратегии считывания: по битам и по пакетам. Каждая из них оказывает различное влияние на времена ожидания. Разновидностью такой очереди является взвешенная равнодоступная очередь (Weighted Fair Queuing - WFQ). Она используется в том случае, когда имеются пользователи с различными требованиями. Как и в предыдущем случае, для потока каждого пользователя выделяется свой буфер, но каждый буфер имеет вес, который определяет долю участия в разделении производительности линии. Если, например, буфер 1 имеет вес 1, а буфер 2 имеет вес 3, то когда оба буфера не пусты, буфер 2 будет сканироваться в 3 раза чаще, чем буфер 1. При этом говорят, что буфер 1 получает 1/4 производительности линии, а буфер 2 - 3/4 производительности.
Еще одна разновидность равнодоступной очереди - случайное ранее обнаружение (Random Early Detection - RED). В этой системе происходит опрос буферов по случайному закону. При этом производится анализ заполнения буфера, и при угрозе переполнения проводится сброс пакетов.
Рассмотренное множество дисциплин не может исчерпать все их типы, но уже достаточно для рассмотрения алгоритмов, применяемых при коммутации и мультиплексировании потоков ATM.