Откуда берётся дефолтное значение Forward delay в STP?

1
0

У меня вопрос: откуда берётся дефолтное значение Forward delay в STP?

Понятно, что из IEEE 802.1D.:)

Но вопрос в том, а из каких соображений оно выбрано такое, 15с?

На Cisco.com есть статья: http://www.cisco.com/c/en/us/support/docs/lan-switching/spanning-tree-protocol/19120-122.html — в которой приводится расчёт:

2 x forward delay 
= end-to-end_BPDU_propagation_delay + Message_age_overestimate + 
    Maximum_frame_lifetime + Maximum_transmission_halt_delay 
= 14 + 6 + 7.5 + 1 = 28.5 

forward_delay 
= 28.5 /2 
= 15 (rounded)

Т.е. они считают, что перед тем, как поднять порт, нужно подождать Max Age (чтобы изменения топологии распространились по сети) и ещё подождать время, которое необходимо, чтобы пакеты, сгенерированные в старой топологии, были переданы и удалены из сети.

Вроде, всё логично. Но я не могу понять, зачем прибавлять к End-to-end BPDU propagation delay (14с) все остальные слагаемые? В какой ситуации они нужны (типа, есть такая-то топология, такие-то события — и вот нужно ждать эти 6 + 7.5 + 1)?

 

Мне кажется, Cisco подогнали под ответ, и время Forward delay должно быть 15с, но по другой причине.:)

Мне кажется, перед тем, как поднять порт надо ждать 2 x End-to-end BPDU propagation delay — т.е. 28с, как раз почти 30с (2 x Forward delay).

Пример такой: SW1 — SW2 — … — SW7  (все расчёты и дефолтные значения таймеров приводятся для сети с diameter=7); в топологии могут быть и другие линки, просто SW2 — самый ближний к Root Bridge, SW7 — самый дальний.

SW1 — Root Bridge. Внезапно SW1 умирает, SW2 сразу узнаёт об этом (допустим, у него линк упал) и объявляет себя Root Bridge. А SW7 в тот момент ещё имеет BPDU от SW1 с Message Age=6 (коммутаторы прибавляли +1 по дороге), и он ждёт ещё 14с до истечения Max Age (20с). Но на самом деле следующим Root Bridge должен быть SW7. BPDU от SW7 до SW2 дойдут тоже за 14с — и до тех пор SW2 не должен поднимать порты, а то будет построенна неправильная топология (пусть и временно).

Это я не сам придумал, прочитал такие соображения о Forward delay в книге Radia Perlman «Interconnections: Bridges, Routers, Switches, and Internetworking Protocols (2nd Edition)».

 

Вопрос: каким примером подтвердить рассуждения Cisco о времени расчёта Forward delay? Вы согласны, что надо рассчитывать Forward delay, исходя из того, что за это время пакет должен успеть сбегать по сети туда и обратно?:)

 

В стандартах IEEE обоснований дефолтных таймеров нет, только сами значения:

http://www.stephan-robert.ch/wp-content/uploads/2015/08/802-1D-2004.pdf

http://profesores.elo.utfsm.cl/~agv/elo309/doc/802.1D-1998.pdf

0
0

These values can seem quite conservative in a modern network, in which you are not likely to lose three BPDUs or to have 1 sec of latency for a frame through a switch. However, remember that these values exist in order to prevent STP loops that can occur in stress conditions, such as:

  • Very high CPU utilization
  • An overloaded port

Вы же сами ответили на свой вопрос. Нужно подождать, пока по сети распространятся BPDU, а после того, как эти BPDU спровоцируют изменения топологии, нужно подождать, чтобы фреймы от старой топологии дошли до источника (я так понимаю, чтобы не было ситуации, когда на один порт свича приходят фреймы от старой топологии, а на другой порт — от новой, и все от одного и того же хоста. Это ведет к MAC-флаппингу). И все это в условиях жутчайших тормозов CPU и интерфейсов!

(Наверное, создатели хотели, чтобы STP отработал даже во время бродкастового шторма.)

 

0
0

Необходимо ввести предположение о разумности сети — это как Вы верно написали сеть с diameter=7, т.е. считается разумным сеть из 7 коммутаторов.

Необходимо осознать, что в STP нет механизма выборов, об этом я написал в комментариях к вебинару STP. Ключевой момент, что по истечении 2 сек Hello таймер по дефолту каждый соседний коммутатор знает кто root и в каком состоянии порты. Таким образом SW7 необходимо время 7x2c=14c

Показано 2 результата
Ваш ответ

для ответа.