В передаче данных управление потоком — это процесс управления скоростью передачи данных между двумя узлами, чтобы не допустить перегрузки медленного получателя быстрым отправителем. Управление потоком следует отличать от управления перегрузкой , которое используется для управления потоком данных, когда перегрузка действительно произошла. [1] Механизмы управления потоком можно классифицировать по тому, отправляет ли узел-получатель обратную связь отправляющему узлу.
Управление потоком важно, поскольку отправляющий компьютер может передавать информацию с большей скоростью, чем принимающий компьютер может ее получить и обработать. Это может произойти, если принимающие компьютеры имеют большую нагрузку трафика по сравнению с отправляющим компьютером, или если принимающий компьютер имеет меньшую вычислительную мощность, чем отправляющий компьютер.
Управление потоком «стоп-и-жди» — простейшая форма управления потоком. В этом методе сообщение разбивается на несколько кадров, а получатель сообщает о своей готовности принять кадр данных. Отправитель ждет подтверждения получения (ACK) после каждого кадра в течение определенного времени (называемого тайм-аутом). Получатель отправляет ACK, чтобы дать отправителю знать, что кадр данных был получен правильно. Затем отправитель отправит следующий кадр только после ACK.
Если кадр или ACK потерян во время передачи, то кадр передается повторно. Этот процесс повторной передачи известен как ARQ ( автоматический запрос повтора ).
Проблема с Stop-and-wait заключается в том, что за один раз можно передать только один кадр, и это часто приводит к неэффективной передаче, поскольку пока отправитель не получит ACK, он не может передать ни одного нового пакета. В это время и отправитель, и канал не используются.
Плюсы
Единственным преимуществом этого метода управления потоком является его простота.
Минусы
Отправителю необходимо ждать ACK после каждого переданного кадра. Это источник неэффективности, и особенно плохо, когда задержка распространения намного больше задержки передачи . [2]
Остановка и ожидание также могут создавать неэффективность при отправке более длинных передач. [3] При отправке более длинных передач существует большая вероятность ошибки в этом протоколе. Если сообщения короткие, то ошибки с большей вероятностью будут обнаружены на ранней стадии. Еще большая неэффективность возникает, когда отдельные сообщения разбиваются на отдельные кадры, поскольку это делает передачу более длинной. [4]
Метод управления потоком, при котором приемник дает передатчику разрешение передавать данные до тех пор, пока окно не заполнится. Когда окно заполнено, передатчик должен прекратить передачу, пока приемник не объявит большее окно. [5]
Управление потоком скользящего окна лучше всего использовать, когда размер буфера ограничен и заранее установлен. Во время типичной связи между отправителем и получателем получатель выделяет буферное пространство для n кадров ( n — размер буфера в кадрах). Отправитель может отправлять, а получатель может принимать n кадров, не дожидаясь подтверждения. Кадрам присваивается порядковый номер, чтобы помочь отслеживать те кадры, которые получили подтверждение. Получатель подтверждает кадр, отправляя подтверждение, которое включает порядковый номер следующего ожидаемого кадра. Это подтверждение объявляет, что получатель готов принять n кадров, начиная с указанного номера. И отправитель, и получатель поддерживают то, что называется окном. Размер окна меньше или равен размеру буфера.
Управление потоком скользящего окна имеет гораздо лучшую производительность, чем управление потоком stop-and-wait. Например, в беспроводной среде, если скорость передачи данных низкая, а уровень шума очень высокий, ожидание подтверждения для каждого передаваемого пакета не очень осуществимо. Поэтому передача данных в виде большого объема даст лучшую производительность с точки зрения более высокой пропускной способности.
Управление потоком скользящего окна — это протокол точка-точка, предполагающий, что ни один другой объект не пытается связаться, пока текущая передача данных не будет завершена. Окно, поддерживаемое отправителем, указывает, какие кадры он может отправить. Отправитель отправляет все кадры в окне и ждет подтверждения (в отличие от подтверждения после каждого кадра). Затем отправитель сдвигает окно на соответствующий порядковый номер, тем самым указывая, что кадры в окне, начиная с текущего порядкового номера, могут быть отправлены.
Алгоритм автоматического запроса на повтор (ARQ), используемый для исправления ошибок, в котором отрицательное подтверждение (NACK) вызывает повторную передачу слова с ошибкой, а также следующих N–1 слов. Значение N обычно выбирается таким образом, чтобы время, необходимое для передачи N слов, было меньше задержки на передачу в оба конца от передатчика к приемнику и обратно. Поэтому буфер на приемнике не нужен.
Нормализованная задержка распространения (a) = время распространения (Tp) ⁄ время передачи (Tt) , где Tp = длина (L) по скорости распространения (V) и Tt = битрейт (r) по частоте кадров (F). Так что a = LF ⁄ Vr .
Чтобы получить утилизацию, необходимо определить размер окна (N). Если N больше или равно 2a + 1, то утилизация равна 1 (полная утилизация) для канала передачи. Если она меньше 2a + 1, то для вычисления утилизации необходимо использовать уравнение N ⁄ 1+2a . [6]
Избирательный повтор — это протокол, ориентированный на соединение, в котором и передатчик, и приемник имеют окно порядковых номеров. Протокол имеет максимальное количество сообщений, которые могут быть отправлены без подтверждения. Если это окно заполняется, протокол блокируется до тех пор, пока не будет получено подтверждение для самого раннего неотправленного сообщения. В этот момент передатчик может отправлять больше сообщений. [7]
Этот раздел посвящен идее сравнения метода остановки и ожидания , скользящего окна с подмножествами возврата N и выборочного повторения .
Без ошибок: . [ необходима ссылка ]
С ошибками: . [ необходима ссылка ]
Мы определяем пропускную способность T как среднее количество блоков, переданных на один переданный блок. Удобнее вычислить среднее количество передач, необходимых для передачи блока, величину, которую мы обозначим через 0, а затем определить T из уравнения . [ необходима цитата ]
Управление потоком передачи может происходить:
Скорость передачи может контролироваться из-за требований сети или DTE. Управление потоком передачи может происходить независимо в двух направлениях передачи данных, что позволяет скорости передачи в одном направлении отличаться от скоростей передачи в другом направлении. Управление потоком передачи может быть
Управление потоком может быть выполнено
В обычном RS-232 имеются пары линий управления, которые обычно называются аппаратным управлением потоком :
Аппаратное управление потоком данных обычно осуществляется DTE или «главным концом», поскольку он первым поднимает или утверждает свою линию, чтобы дать команду другой стороне:
Примером аппаратного управления потоком является полудуплексный радиомодем-компьютерный интерфейс. В этом случае управляющее программное обеспечение в модеме и компьютере может быть написано для предоставления приоритета входящим радиосигналам, так что исходящие данные с компьютера приостанавливаются путем понижения CTS, если модем обнаруживает прием.
Напротив, XON/XOFF обычно называют программным управлением потоком данных.
Механизм управления потоком с открытым контуром характеризуется отсутствием обратной связи между приемником и передатчиком. Этот простой способ управления широко используется. Распределение ресурсов должно осуществляться по принципу «предварительного резервирования» или «перехода от перехода к переходу».
Управление потоком в открытом цикле имеет присущие проблемы с максимизацией использования сетевых ресурсов. Распределение ресурсов производится при установке соединения с использованием CAC ( управление доступом к соединению ), и это распределение производится с использованием информации, которая уже является «старой новостью» в течение срока службы соединения. Часто происходит перераспределение ресурсов, и зарезервированные, но неиспользованные мощности тратятся впустую. Управление потоком в открытом цикле используется ATM в его услугах CBR , VBR и UBR (см. договор о трафике и управление перегрузкой ). [1]
Управление потоком с открытым контуром включает два элемента управления: контроллер и регулятор. Регулятор способен изменять входную переменную в ответ на сигнал от контроллера. Система с открытым контуром не имеет механизма обратной связи или прямой связи, поэтому входные и выходные сигналы не связаны напрямую, и увеличивается изменчивость трафика. В такой системе также ниже скорость поступления и выше скорость потерь. В системе с открытым контуром контроллеры могут управлять регуляторами через регулярные интервалы, но нет гарантии, что выходная переменная может поддерживаться на желаемом уровне. Хотя использование этой модели может быть дешевле, модель с открытым контуром может быть нестабильной.
Механизм управления потоком с замкнутым контуром характеризуется способностью сети сообщать передатчику о перегрузке сети . Затем эта информация используется передатчиком различными способами для адаптации его деятельности к существующим условиям сети. Управление потоком с замкнутым контуром используется ABR (см. контракт трафика и управление перегрузкой ). [1] Управление потоком передачи, описанное выше, является формой управления потоком с замкнутым контуром.
Эта система включает в себя все основные элементы управления, такие как датчик, передатчик, контроллер и регулятор. Датчик используется для захвата переменной процесса. Переменная процесса отправляется на передатчик, который транслирует переменную на контроллер. Контроллер проверяет информацию относительно желаемого значения и инициирует корректирующее действие, если требуется. Затем контроллер сообщает регулятору, какое действие необходимо для обеспечения того, чтобы значение выходной переменной соответствовало желаемому значению. Таким образом, существует высокая степень уверенности в том, что выходную переменную можно поддерживать на желаемом уровне. Замкнутая система управления может быть системой обратной связи или прямой связи:
Система с обратной связью замкнутого контура имеет механизм обратной связи, который напрямую связывает входные и выходные сигналы. Механизм обратной связи контролирует выходную переменную и определяет, требуется ли дополнительная коррекция. Значение выходной переменной, которое подается в обратном направлении, используется для инициирования корректирующего действия на регуляторе. Большинство контуров управления в отрасли имеют тип обратной связи.
В системе с обратной связью с прямой связью измеряемая переменная процесса является входной переменной. Измеренный сигнал затем используется таким же образом, как и в системе с обратной связью.
Замкнутая модель обеспечивает меньший уровень потерь и задержки в очередях, а также обеспечивает трафик, чувствительный к перегрузкам. Замкнутая модель всегда стабильна, поскольку количество активных минимумов ограничено.
Раздвижное окно: