Контроль перегрузок в службе ABR сетей ATM
В разделе «Контроль перегрузок в ТСР» мы подробно рассмотрим механизмы контроля перегрузки оконечными системами на примере протокола TCP, а сейчас остановимся на службе ABR сетей ATM, в которой реализован другой вид контроля перегрузок с сетевой поддержкой. Служба ABR была разработана для «эластичной» передачи данных в стиле протокола TCP. При низких нагрузках в сети служба ABR должна была улучшать качество обслуживания, используя свободные ресурсы, а в условиях перегрузки снижать скорости передачи до заранее установленного минимума. Детальное описание механизмов контроля перегрузок в службе ABR сетей ATM и управления трафиком в сетях ATM можно найти в. На рис. 3.45 представлена схема ABR-контроля перегрузки в сетях ATM. Ниже мы будем придерживаться терминологии, принятой в ATM, и употреблять вместо терминов «маршрутизатор» и «пакет» термины «коммутатор» и «ячейка» соответственно. При использовании службы ABR ячейки передаются от отправителя к получателю через последовательность коммутаторов. Среди ячеек с данными содержатся служебные ячейки управления ресурсами (Resource Management, RM). RM-ячейки используются для обмена информацией о перегрузках между хостами и коммутаторами. Получатель отсылает RM-ячейки обратно отправителю, иногда внося изменения в их содержимое. Коммутатор может самостоятельно генерировать RM-ячейки и отправлять их нужным хостам. Таким образом, с помощью RM-ячеек возможна организация как прямой обратной связи, так и обратной связи «через получателя».
Механизм ABR-контроля перегрузок в сетях ATM основан на величине скорости передачи: передающая сторона явно рассчитывает максимальную скорость, с которой может вестись передача, и при необходимости регулирует ее. У ABR есть три возможности оповестить через коммутатор получателя о наличии перегрузок.
□ Бит EFCI. Каждая ячейка с данными содержит бит EFCI (Explicit Forward Congestion Indication — явный признак перегрузки). При возникновении перегрузки коммутатор устанавливает этот бит в 1. Хосты назначения проверяют значение бита EFCI всех принимаемых ячеек. Если при получении RM-ячейки хост обнаруживает 1 в бите EFCI последней принятой ячейки с данными, то бит CI (Congestion Indication — признак перегрузки) RM-ячейки также устанавливается в 1, а RM-ячейка отсылается передающей стороне. Таким образом, при помощи бита EFCI ячеек с данными и бита CI RM-ячеек осуществляется обратная связь коммутаторов с хостом-отправителем.
□ Биты CIuNI. Как было показано ранее, RM-ячейки, передаваемые от отправителя получателю, распределены среди множества ячеек с данными. Частота передачи RM-ячеек настраивается; по умолчанию RM-ячейки пересылаются через каждые 32 ячейки с данными. В состав RM-ячеек входят уже знакомый вам бит CI, а также бит N1 (No Increase — запрет увеличения), значения которых могут быть изменены коммутаторами. Обычно 6htNI устанавливается коммутатором в 1 при умеренной перегрузке, а бит CI — при значительной. Получив RM-ячейку, получатель отсылает ее обратно отправителю, при этом значение бита N1 всегда остается прежним, а значение бита CI может быть установлено в 1 в результате проверки бита EFCI.
□ Поле ER. RM-ячейки содержат двухбайтовое поле ER (Explicit Rate — явная частота). При возникновении перегрузки коммутатор может снизить значение, содержащееся в этом поле. Таким образом, при достижении получателя RM-ячейка будет содержать в поле ER наименьшую из частот передачи, обеспечиваемую коммутаторами пути.
ABR-источники в сетях ATM регулируют скорость передачи данных как функцию значений CI, N1 и ER получаемых RM-ячеек. Правила вычисления скорости передачи весьма сложны и не представляют для нас большой важности; заинтересованный читатель может обратиться к дополнительным источникам информации.