Tail drop

Tail drop (Отбрасывание конца очереди или Обрубание хвоста) — один из простейших алгоритмов AQM для управления переполнением очередей маршрутизаторов. В отличие от более сложных алгоритмов, таких как RED и WRED, в Tail Drop трафик не разделяется по типам пакетов.

Общие положения

Принцип алгоритма

Задаётся максимальный размер очереди (в пакетах или в байтах), вновь прибывающий пакет помещается в конец очереди, когда очередь заполняется до некоторого заданного максимального размера, все вновь поступающие пакеты отбрасываются, пока очередь не будет иметь место, достаточное для поступления входящего трафика.

Недостатки

При использовании протокола TCP, когда пакеты начинают теряться, модули TCP в рабочих станциях решают, что в сети перегрузка и замедляют передачу пакетов. При заполненной очереди возможны случаи, когда несколько сообщений отбрасываются друг за другом — в результате целый ряд приложений решит замедлить передачу. Затем приложения начнут зондировать сеть, чтобы определить, насколько она загружена, и буквально через несколько секунд возобновят передачу в прежнем темпе, что опять приведёт к потерям сообщений[1].

В некоторых ситуациях данный алгоритм может вызвать так называемый эффект «локаута» (lock-out). Это происходит в тех случаях, когда очередь монополизирует либо один поток пакетов, либо несколько потоков, случайно или по необходимости синхронизированных (например, потоков, несущих изображение и его звуковое сопровождение), что препятствует попаданию в очередь пакетов остальных потоков.

Выводы

Алгоритм Tail Drop нерационально использует пространство памяти маршрутизатора: очереди оказываются заполненными (или почти заполненными) в течение длительного периода времени. Так происходит, поскольку алгоритм сигнализирует только о том, что очередь полна. Большой размер очередей сильно увеличивает время доставки пакета от одной рабочей станции к другой. Поэтому желательно, чтобы средний размер очередей в маршрутизаторах был невелик. С другой стороны, известно, что трафик в сети, как правило, неравномерен, и поэтому маршрутизатор должен иметь буфер, размер которого достаточен для того, чтобы «амортизировать» неравномерность трафика.

Примечания

  1. Управление трафиком: очереди и шейпинг. Дата обращения: 26 января 2010. Архивировано 14 октября 2008 года.

Литература

  • Comer, Douglas E. Internetworking with TCP/IP (неопр.). — 5. — Prentice Hall: Upper Saddle River, NJ, 2006..
  • Гольдштейн Б. С., Пинчук А. В., Суховицкий А. Л. IP-Телефония. — СПб.: БХВ-Петербург, 2014.