LINUX.ORG.RU

История изменений

Исправление router, (текущая версия) :

Какое время?

Текущее эмулируемое

Смотришь два события:

  • очередной пакет пришёл
  • очередной пакет из очереди обработан

смотришь, что раньше наступит

  1. пришёл пакет

очередь полностью забита? отбрасываешь

если нет, добавляешь в очередь

если очередь была пустая, текущее время заменяешь на время прибытия пакета

  1. пакет обработан

увеличиваешь текущее время на время обработки этого пакета

удаляешь его из очереди

да, если обработчик сразу забирает пакет из очереди (ещё в процессе обработки), можно считать как очередь длины N+1

Исправление router, :

Какое время?

Текущее эмулируемое

Смотришь два события:

  • очередной пакет пришёл
  • очередной пакет из очереди обработан

смотришь, что раньше наступит

  1. пришёл пакет

очередь полностью забита? отбрасываешь

если нет, добавляешь в очередь

если очередь была пустая, текущее время заменяешь на время прибытия пакета

  1. пакет обработан

увеличиваешь текущее время на время обработки этого пакета

удаляешь его из очереди

да, если обработчик сразу забирает пакет из очереди, можно считать как очередь длины N+1

Исходная версия router, :

Какое время?

Текущее эмулируемое

Смотришь два события:

  • очередной пакет пришёл
  • очередной пакет из очереди обработан

смотришь, что раньше наступит

  1. пришёл пакет

очередь полностью забита? отбрасываешь

если нет, добавляешь в очередь

если очередь была пустая, текущее время заменяешь на время прибытия пакета

  1. пакет обработан увеличиваешь текущее время на время обработки этого пакета

удаляешь его из очереди

да, если обработчик сразу забирает пакет из очереди, можно считать как очередь длины N+1