Управление трафиком
Управление с обратной связью
Главная цель управления перегрузкой в сети состоит в том, чтобы максимально использовать линии связи и в то же предотвратить переполнение буфера из-за перегрузки. Максимальное использование линии связи требует, чтобы источники передавали пакеты, как только пакеты готовы для передачи; чтобы предотвратить переполнение буфера из-за перегрузки, надо, чтобы источники не передавали слишком много пакетов. Эти две противоречивые цели являются причиной сложности проблемы управления перегрузками и поводом для того, чтобы искать пути ее решения.
Управление перегрузкой обычно применяет механизм управления с обратной связью (управление по замкнутому шлейфу - closed loop control). Этот механизм опирается на получение информации по обратной связи, чтобы регулировать скорость передачи потока пакетов. Основой для принятия решений служит информация обратной связи о состоянии сети. Это может быть информация о заполнении буферов, использовании линии связи или другая существенная информация о перегрузке. Получатель информации обратной связи обычно зависит от уровня связи, который занимается управлением перегрузкой. В системе TCP/IP управление реализовано на транспортном уровне, и таким образом получатель информации обратной связи обычно постоянно находится в источнике. В системе ATM управление реализовано в уровне ATM, соответствующем сетевому уровню, и таким образом получатель информации обратной связи может постоянно находиться в промежуточном узле.
Имеются два типа управления по обратной связи: из конца в конец и по участкам.
В случае управления по обратной связи из конца в конец информация обратной связи о состоянии сети распространяется назад к источнику, который может регулировать скорость потока пакетов. Информация обратной связи может быть отправлена непосредственно узлом, который обнаружил перегрузку, или может быть отправлена сначала пункту назначения, который затем ретранслирует информацию к источнику, как показано на рис. 7.15а.
Поскольку передача информации по обратной связи вносит некоторую задержку распространения, когда источник получает такую информацию, она не может быть точной. И это надо учитывать при управлении.
Управление по участкам обычно может реагировать намного быстрее, чем управление из конца в конец, из-за более короткой задержки распространения. При управлении с обратной связью по участкам состояние сети распространяется в направлении к расположенному выше по направлению потока узлу, как показано на рис. 7.15б. Когда узел обнаруживает перегрузку на исходящей линии связи, он может сообщить эту информацию расположенному выше по потоку соседу и замедлить скорость передачи этого узла. В результате расположенный выше по потоку узел может также испытать перегрузку. Тогда он может передать своему расположенному выше по потоку соседу сигнал уменьшить скорость. Этот процесс "обратного давления" (backpressure) от одного нижестоящего узла до другого вышестоящего узла может продолжиться до тех пор, пока этот сигнал не попадет к источнику.
Информация обратной связи может быть неявная или явная. При явной обратной связи узел, обнаруживающий перегрузку, передает явное сообщение, которое в конечном счете уведомляет источник о перегрузке в сети. Явное сообщение может быть передано как отдельный пакет или совместно с пакетом. Простейшая форма использует один бит информации (эта форма часто называется информацией обратной связи), которая указывает на наличие или отсутствие перегрузки. Другая, более сложная форма должна использовать более сложную информацию для обратной связи. Одним из примеров может быть сообщение в форме "желательная скорость передачи", по которой принимающий узел может точно регулировать скорость передачи.
Управление с обратной связью в ATM-сетях - это один из примеров, когда источник постоянно корректирует свою скорость передачи согласно явной информации обратной связи, которая записывается в один бит. Этот бит называется "явный указатель перегрузки" (Explicit Congestion Indication - EFCI) и устанавливается в заголовке ячейки ATM в идентификаторе полезной нагрузки (см. таблицу 5.1). Когда узел обнаруживает угрозу перегрузки, он устанавливает бит EFCI в ячейке данных, передаваемых по загруженной линии в направлении пункта назначения. Пункт назначения, получив такие ячейки, посылает специальное сообщение для указания источнику, что обнаружена перегрузка. Источник должен регулировать свою скорость передачи.
При неявной обратной связи явное сообщение не отправляется. Вместо этого источник должен опираться на некоторую информацию идентификатора объекта, чтобы определить ситуацию перегрузки. Один из примеров - использование тайм-аута, основанного на отсутствии подтверждения от пункта назначения, чтобы решить, имеется ли в сети перегрузка.
Управление перегрузкой в TCP - один из примеров, который регулирует скорость передачи, используя неявную обратную связь, устанавливает отсутствие подтверждения, включая тайм-аут для повторной передачи. Когда в источнике сработает тайм-аут, он уменьшает скорость передачи, уменьшая "окно передачи". Затем источник ступенчато увеличивает скорость передачи, пока снова не будет обнаружена перегрузка, и потом повторяется весь цикл. Управление перегрузкой будет обсуждаться при рассмотрении протоколов TCP.