Опубликован: 26.10.2007 | Уровень: специалист | Доступ: свободно
Лекция 7:

Управление трафиком

Таблица 7.1. Пример диаграммы дырявого ведра
содержимое ведра до поступления пакетов содержимое ведра после поступления пакетов Интервал между поступлениями пакетов содержимое ведра к моменту следующего поступления Примечание
0 4 1 3
3 7 3 4
4 8 3 5
5 9 2 7
7 11 Пакет не принят
9 7 2
2 6 7 0 Размерность X' меньше нуля
0 4 1 3
3 7 1 6
6 10 Пакет не принят
10 5 5
5 9 Далее процесс продолжается
I=4, \; L+I=10

порция поступает через 2 момента времени и содержимое ведра будет равно 7, и если добавить 4 пакета, то это значение 11 превысит глубину ведра. Поэтому ведро не наполняется и продолжает опустошаться. Следующая порция пакетов поступает через 7 интервалов после последнего поступления конформной (принятой) порции пакетов. К этому моменту величина содержимого равна 2, а после добавления она становится равна 6.

Поскольку следующее поступление состоится через 7 интервалов, ведро опустошается до нуля. Далее процесс продолжается аналогичным образом.

Максимальное число обрабатываемых пакетов может быть определено следующим образом.

Если I - количество пакетов, поступающих в один момент времени, а T - время в числе интервалов между двумя поступлениями, то к моменту следующего поступления в буфере окажется I-T пакетов (предполагаем, что в один интервал времени убывает один пакет). Число шагов, через которое накопится L пакетов (заполнится пространство (L+I)-I =L), равно

\left[ \frac {L}{I-T}\right]

где [x] означает ближайшее целое, меньшее, чем x.

С учетом первого шага разрешенное накопление пакетов не приводящее к потерям MBS (максимальный размер пачки - maximum burst size) определяется выражением ( рис. 7.10).

MBS = 1+\left[ \frac {L}{I-T}\right]
Параметры передачи трафика, определяемые с помощью принципа "дырявое ведро"

увеличить изображение
Рис. 7.10. Параметры передачи трафика, определяемые с помощью принципа "дырявое ведро"

Так, для нашего примера, где I=4, L=6, а T=1

MBS =3.

После того как будет накоплено L пакетов, необходим интервал для разгрузки буферной памяти (опустошение ведра) с максимальным значением, равным L.

Величину, обратную I (1/I), часто называют поддерживаемой скоростью (Sustainable Rate).

Комбинация дырявых ведер может использоваться для определения нескольких параметров потоков, например пиковой скорости (PCR) и поддерживаемой скорости источника (SCR). В этом случае используются сдвоенные дырявые ведра, показанные на рис. 7.11.

Если в схеме используется два ведра, то в каждое из них направляется равное количество "жидкости", что на рисунке показано диаганальной линией с двумя стрелками. Будем преполагать, что доска, по которой жидкость выливается в дырявые ведра так, что заполняет оба ведра на ту же глубину, как если бы жидкость от одной ячейки была бы плавно вылита в ведро. На рисунке 7.11 показаны следующие конфигурации.

  1. Основная конфигурация – одиночное ведро, которое позволяет проверить пиковую скорость (PCR 0+1) общего потока ячеек (CLP 0+1).
  2. Эта конфигурация позволяет проверить соотвествие пиковой скорости ячеек первого приоритета и пиковой скорости общего потока ячеек.
  3. Конфигурация аналогична конфигурации 2, но меняет значение поля приоритета потери ячейки с 0 на 1
  4. Эта конфигурация позволяет проверить как пиковую, так и поддерживаемую скорости общего потока ячеек (CLP 0+1). Неконформные ячейки в данной конфигурации отбрасываются.
  5. и 6. Аналогичны 2 и 3 , но осуществляют проверку как пиковой скорости суммарного потока ячеек (CLP 0 +1), так и поддерживаемую скорость потока ячеек 1-го приоритета (CLP 0).
Конфигурация дырявых ведер

Рис. 7.11. Конфигурация дырявых ведер
Елтай Осербай
Елтай Осербай
Олег Сергеев
Олег Сергеев

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.6779102955568watchdog( )../bootstrap.inc:0
22.6783102958032module_invoke( )../bootstrap.inc:967
32.6783102959888call_user_func_array ( )../module.inc:462
42.6783102960224devel_watchdog( )../module.inc:462
52.6784102961072decode_entities( )../devel.module:382
62.6784102962992drupal_error_handler( )../devel.module:340
72.6784102966616watchdog( )../common.inc:663
82.6785102968680module_invoke( )../bootstrap.inc:967
92.6785102970536call_user_func_array ( )../module.inc:462
102.6785102970872devel_watchdog( )../module.inc:462
112.6785102971568decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.6779102955568watchdog( )../bootstrap.inc:0
22.6783102958032module_invoke( )../bootstrap.inc:967
32.6783102959888call_user_func_array ( )../module.inc:462
42.6783102960224devel_watchdog( )../module.inc:462
52.6784102961072decode_entities( )../devel.module:382
62.6784102962992drupal_error_handler( )../devel.module:340
72.6784102966616watchdog( )../common.inc:663
82.6785102968680module_invoke( )../bootstrap.inc:967
92.6785102970536call_user_func_array ( )../module.inc:462
102.6785102970872devel_watchdog( )../module.inc:462
112.6785102971568decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.6779102955568watchdog( )../bootstrap.inc:0
22.6783102958032module_invoke( )../bootstrap.inc:967
32.6783102959888call_user_func_array ( )../module.inc:462
42.6783102960224devel_watchdog( )../module.inc:462
52.6784102961072decode_entities( )../devel.module:382
62.6792102963184drupal_error_handler( )../devel.module:340
72.6792102966872watchdog( )../common.inc:663
82.6792102968936module_invoke( )../bootstrap.inc:967
92.6792102970792call_user_func_array ( )../module.inc:462
102.6792102971128devel_watchdog( )../module.inc:462
112.6792102971904decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.6779102955568watchdog( )../bootstrap.inc:0
22.6783102958032module_invoke( )../bootstrap.inc:967
32.6783102959888call_user_func_array ( )../module.inc:462
42.6783102960224devel_watchdog( )../module.inc:462
52.6784102961072decode_entities( )../devel.module:382
62.6792102963184drupal_error_handler( )../devel.module:340
72.6792102966872watchdog( )../common.inc:663
82.6792102968936module_invoke( )../bootstrap.inc:967
92.6792102970792call_user_func_array ( )../module.inc:462
102.6792102971128devel_watchdog( )../module.inc:462
112.6792102971904decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.6799102956112watchdog( )../bootstrap.inc:0
22.6799102958176module_invoke( )../bootstrap.inc:967
32.6799102960032call_user_func_array ( )../module.inc:462
42.6799102960368devel_watchdog( )../module.inc:462
52.6800102961072decode_entities( )../devel.module:382
62.6800102962992drupal_error_handler( )../devel.module:340
72.6800102966600watchdog( )../common.inc:663
82.6800102968664module_invoke( )../bootstrap.inc:967
92.6800102970520call_user_func_array ( )../module.inc:462
102.6800102970856devel_watchdog( )../module.inc:462
112.6801102971552decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.6799102956112watchdog( )../bootstrap.inc:0
22.6799102958176module_invoke( )../bootstrap.inc:967
32.6799102960032call_user_func_array ( )../module.inc:462
42.6799102960368devel_watchdog( )../module.inc:462
52.6800102961072decode_entities( )../devel.module:382
62.6800102962992drupal_error_handler( )../devel.module:340
72.6800102966600watchdog( )../common.inc:663
82.6800102968664module_invoke( )../bootstrap.inc:967
92.6800102970520call_user_func_array ( )../module.inc:462
102.6800102970856devel_watchdog( )../module.inc:462
112.6801102971552decode_entities( )../devel.module:382

( ! ) Warning: include_once(./includes/unicode.entities.inc) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.6799102956112watchdog( )../bootstrap.inc:0
22.6799102958176module_invoke( )../bootstrap.inc:967
32.6799102960032call_user_func_array ( )../module.inc:462
42.6799102960368devel_watchdog( )../module.inc:462
52.6800102961072decode_entities( )../devel.module:382
62.6805102963184drupal_error_handler( )../devel.module:340
72.6805102966872watchdog( )../common.inc:663
82.6806102968936module_invoke( )../bootstrap.inc:967
92.6806102970792call_user_func_array ( )../module.inc:462
102.6806102971128devel_watchdog( )../module.inc:462
112.6806102971904decode_entities( )../devel.module:382

( ! ) Warning: include_once() [<a href='function.include'>function.include</a>]: Failed opening './includes/unicode.entities.inc' for inclusion (include_path='.:/usr/local/zend/var/libraries/Zend_Framework_1/default/library:/usr/local/zend/share/pear') in /.2/var_www_new.intuit.ru/htdocs/includes/unicode.inc on line 340
Call Stack
#TimeMemoryFunctionLocation
12.6799102956112watchdog( )../bootstrap.inc:0
22.6799102958176module_invoke( )../bootstrap.inc:967
32.6799102960032call_user_func_array ( )../module.inc:462
42.6799102960368devel_watchdog( )../module.inc:462
52.6800102961072decode_entities( )../devel.module:382
62.6805102963184drupal_error_handler( )../devel.module:340
72.6805102966872watchdog( )../common.inc:663
82.6806102968936module_invoke( )../bootstrap.inc:967
92.6806102970792call_user_func_array ( )../module.inc:462
102.6806102971128devel_watchdog( )../module.inc:462
112.6806102971904decode_entities( )../devel.module:382