2017-01-03 4 views
1

ВопросNumericals на Token Bucket

Для хост-компьютер, который использует маркер алгоритма ковш для управления перегрузкой, маркер ведро имеет емкость 1 мега байт, а максимальная выходная частота составляет 20 мега байт в секунду. Токены достигают скорости, чтобы поддерживать выход со скоростью 10 мегабайт в секунду. В настоящее время ведро маркера заполнено, и машине необходимо отправить 12 мегабайт данных. Минимальное время, необходимое для передачи данных, составляет _____________ секунд.

Мой подход

Первоначально маркер ведро заполнен. скорость, с которой он опорожняется, составляет (20-10) Мбит/с. время на пустой токенный ковш 1 мб составляет 1/10 в 0,1 сек.

Но ответ дается как 1.2сек.

ответ

0
  • Token Bucket имеет емкость 1 мега байт (максимальная емкость C)

Здесь один байт рассматривается как один маркер

⇒ C = 1 М лексем

  • выходная скорость составляет 20 мегабайт в секунду (M = 20MBps) Токены arr ив со скоростью, чтобы поддерживать выходную мощность при скорости 10 мега байт в секунду

⇒20-R = 10

⇒ вход Rate R = 10Mbps

  • В отличии от дырявого ведра , простаивающие хосты могут захватывать и сохранять c ≤ C токены, чтобы отправить более крупные всплески позже. s

  • Когда мы начинаем передавать маркеры, присутствующие в знак buckt передается сразу к сети

т.е.. если первоначально емкость маркера-токена равна «c», то ток-коды c будут мгновенно присутствовать в сети .

Время опорожнить Token Bucket

с: это щёток емкость памяти маркера R: каждую секунду мы получаем R лексемы M: Иви секунд M лексемы производятся

INPUT FLOW: Тогда количество пакетов, которые готовы войти в сеть в течение временного интервала 't', составляет c + Rt

OUTPUT FLOW: Затем количество пакетов, которые готовы ввести сеть в течение временного интервала 'Т' Мт

ВХОД ПОТОК = ВЫХОД ПОТОК

⇒ с + Rт = Мт

т = с/MR = 1/20-10 = 0,1 сек

  • Учитывая, что Token Bucket полна (с = C)

Теперь мы получили два случая

  1. Для передачи 1M лексемы, Будет ли это мгновенно с т = 0
  2. Или передать 1M лексемы, мы берем 10/20-10 = 0,1 сек?

Для передачи 1М (Начальное маркер) маркеры, будет ли он быть мгновенно с т = 0

Рассмотрим уравнение

INPUTFLOW = с + Rt

Это означает, что " c токены (первоначально содержащиеся в маркерном ковше) передаются без каких-либо задержек «

В отличие от неаккуратного ковша, токеновские ведра может продолжать хранить маркер, если отправитель простаивает. Когда он готов отправить пакеты. Пакеты будут принимать токены и будут передаваться в сеть. ⇒ c И затем мы добавляем токены R, произведенные в 't', время, чтобы финнализ получить INPUTFLOW

⇒ 1 МБ передается мгновенно. Теперь мы остались с 11 МБ для передачи

Для trnasfer оставшихся 11 Мб

при Т = 0 начала передачи данных 11 Мб.

при Т = 0,1 сек: 1 МБ (1 МБ переданы)

при Т = 0.2sec: 1 Мбайт (2 Мб переданы)

.. ..

при Т = 1,1 сек : 1 МБ (перенесено 11 МБ)

Поэтому для передачи 12 МБ требуется 1,1 с + 0 сек = 1.1 сек

Transfer 1M (маркер Начального) лексема, мы принимаем = 0,1 сек

(если это займет 0,1 сек для 1Мб я мог бы утверждать, что он будет принимать 1.2ssec для 12Мб)

затем в течение 0,1 с. 01 * 10MBps = 1M токены.

t = 0s: начать передачу данных 12 МБ.

т = 0.1с: 1 Мб

т = 0.2s: 1 Мбайт (2 Мб переданы)

т = 0.3с: 1 Мбайт (3 МБ переданы) .. ..

т = 1.2s: 1 МБ (12 МБ переведены)

Поэтому для передачи 12MB он принимает 1.2sec


Вопрос явно упоминает об этой части. Следовательно, общепринятой практикой всегда является лучший случай. Поэтому ответ будет 1,1 сек

Дополнительная информация: Посещение Gate Overflow - Gate 2016 Question on Token Bucket

Смежные вопросы