- 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)
Теперь мы получили два случая
- Для передачи 1M лексемы, Будет ли это мгновенно с т = 0
- Или передать 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