Принимая во внимание, что представленный выше алгоритм RED являлся базовым, т.е. дающим общее понимание логики функционирования", рассмотрим далее расширенную версию алгоритма RED. Именно расширенная версия RED применяется для реализации в реальных маршрутизаторах. Метакод расширенной версии RED представлен на рис. 2.52. Прежде чем перейти к рассмотрению принципа функционирования расширенного RED, необходимо определить используемые переменные.

Глобальные переменные:

Метакод расширенного алгоритма RED

Рис. 2.52. Метакод расширенного алгоритма RED

Расширенный алгоритм RED функционирует следующим образом. При акти&ации алгоритма происходит инициализация переменных count и avg. Далее с приходом каждого нового пакета в систему осуществляется ряд действий.

Вначале вычисляется значение среднего размера очереди avg:

Если очередь пуста, то оценивается количество пакетов малой длины, которые могли бы быть переданы в период отсутствия пакетов в очереди:

Далее для вычисления среднего размера очереди avg предполагается, что за время отсутствия пакетов в очереди поступило m пакетов. Если не сделать такое предположение, то значение avg будет вычислено неправильно.

После подсчета среднего размера очереди avg необходимо оценить его значение. Если avg принадлежит интервалу [min_t'n;

.■пах_-сп], го вычисляется вероятность маркировки/сбороса пакета РЬ, которая линейно изменяется в интервале от 0 до шах о:

Вероятность, на основе которой осуществляется маркировка/сброс поступающего пакета, вычисляется с использованием счетчика количества пакетов, пришедших в очередь с момента последнего сброса count - чем больше пакетов пришло, тем выше вероятность сброса. Такой подход гарантирует, что RED не будет ожидать слишком много времени, прежде чем осуществит маркировку/сброс пакета, т.е. маркировка/сброс осуществляется пропорционально нагрузке:

Если значение avg превышает значение max_th, то поступающий пакет маркируется или сбрасывается в зависимости от реализации.

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

Таким образом, пакеты большого размера, например, пакеты FTP, будут маркироваться или сбрасываться с большей вероятностью, нежели пакеты малой длины, например, пакеты Telnet.

Принцип функционирования базового алгоритма red | Управление трафиком и качество обслужевания в сети | Настройка параметров алгоритма red