Trước hết chúng ta hãy nhớ lại format của BPDU và cách thức mà chúng so sánh với nhau để tạo ra loop-free topology cho mạng switch network Field Description Number of Bytes Protocol ID (always 0) 2 Version (always 0) 1 Message Type (Configuration or TCN BPDU) 1 Flags 1 Root Bridge ID 8 Root Path Cost 4 Sender Bridge ID 8 Port ID 2 Message Age (in 256ths of a second) 2 Maximum Age (in 256ths of a second) 2 Hello Time (in 256ths of a second) 2 Forward Delay (in 256ths of a second) 2 Một BPDU được coi là tốt hơn BPDU khác khi: - Nó có Bridge ID tốt hơn ( BID) ( giá trị thấp hơn sẽ tốt hơn ) - Khi BID bằng nhau thì sẽ so sánh tiếp Root path cost ( lowest) - Khi BID bằng nhau , Root path cost cũng bằng nhau thì so sánh tiếp Sender ID ( lowest) - Nếu các giá trị trên đều bằng nhau thi so sánh tiêp Port ID ( lowest). Ta sẽ xem xét tiếp STP sẽ xử lí như thế nào đối với Indirect Link Failure: Ba Switch R , B , S đang kết nối full-meshed với nhau . Giả sử STP đã converged và R đang là Root Bridge , S đang block port P . Tiến trình ứng phó của STP đối với indirect link failure sẽ xảy ra như sau : 1 . Nếu Link L1 down , B sẽ nhận thấy kết nối trực tiếp của mình vừa bị down và lập tức tự nhận mình là root . Nó gửi BPDU cho S thông báo rằng nó là newroot . 2 . Khi S nhận được BPDU mới này , nó nhận thấy đây là một inferior BPDU , kém chất lượng hơn BPDU nó đang lưu trên port P nên S sẽ ignore BPDU này . 3 . Sau khi khoảng thời gian Max_age đã hết hạn , S sẽ age_out thông tin BPDU chứa trong port P . Port P lúc này sẽ chuyển sang trạng thái Listening và gửi 1 BPDU tốt hơn cho B . 4 . Khi B nhận được BPDU mới tốt hơn , nó sẽ không gửi ra BPDU của nó nữa . 5 . Port P chuyển từ trạng thái Listening + Learning mất 30s , cộng thêm khoảng thời gian Max_age là 20s nữa , như vậy phải mất 50s thì mạng mới hoạt động lại bình thường được . Tính năng Backbone Fast cho phép chúng ta tiết kiệm được khoảng thời gian Max_age 20s bằng cách age_out thông tin BPDU trên một port ngay lập tức nếu port đó nhận được một inferior BPDU . Khi một switch gửi đi một inferior BPDU , nghĩa là bridge này đã : - Mất kết nối đến Root và bắt đầu gửi một inferior BPDU . - Path cost dẫn đến Root tăng lên . Chú ý trường hợp ngoại lệ sau đây đối với Indirect Link Failure Link Failure xảy ra giữa R và Hub , B sẽ không phát hiện được kết nối down ngay lập tức mà phải đợi cho đến khi Max_age hết hạn mới phát hiện được . Backbone Fast sẽ xử lí như thế nào đối với trường hợp Indirect link failure ? Khi nhận được một inferior BPDU, thay vì switch phải thụ động đợi cho Max_age hết hạn , switch sẽ chủ động “ping” root bằng Root Link Query PDU. Nó cho phép switch nhanh chóng xác định được BPDU nó lưu trên non-designated port là còn giá trị hay là phải discard đi. Khi nhận được một inferior BPDU từ designated bridge , Switch sẽ gửi RLQ Request trên tất cả các non-designated port ( block port và root port ), ngoại trừ port mà nó nhận vào và port thuộc loại seft-loop. (seft-loop port là port có kết nối với một port khác trên cùng một switch và tạo thành loop). Khi nhận được RLQ response , nếu được trả lời là “negative” , tức là port này đã mất kết nối đến Root và Switch ngay lập tức Age_out thông tin BPDU lưu trên port này. Thêm vào đó, nếu như switch nhận được RLQ response đều là “ negative” nghĩa là Switch đã mất Root và bắt đầu tính toán lại STP từ đầu. Nếu nhận được RLQ response là “ok” thì Switch ngay lập tức Age_out Port nhận được inferior BPDU ban đầu ngay. Ví dụ : các port A , B , D , E là các non-desinagted port của Switch S , A là root port , B , D , E là block port . Khi port E nhận được Inferior BPDU thì backbone fast sẽ kích hoạt và làm giảm thời gian converge xuống . Switch S gửi RLQ request trên tất cả các non-designated port ( ngoại trừ port E là port nhận inferior BPDU ) . RLQ reply sẽ chỉ ra rằng , có thể đến đựợc bằng port này hay không ? Port D nhận được thông tin “không đến được root” . Switch S sẽ age_out port D và chuyển sang trạng thái Listening , tuy nhiên lúc này Port E vẫn chưa bị Age_out do Switch S vẫn chưa biết rõ là mình còn đến được root nữa hay không. (phải chờ thêm các thông tin reply khác nữa). Port A và port B nhận được RLQ response chỉ ra rằng vẫn còn kết nối tới R . Thông tin BPDU trên port E bây giờ có thể bị age_out ngay . Port E chuyển sang trạng thái Listening , không phải chờ đến thời gian max_age hết hạn nữa . Thuật toán STP sẽ quyết định port E hay port D là blocking hay forwarding . Tóm tắt: - Nếu inferior BPDU được nhận trên một port đang ở trạng thái Blocking , Switch sẽ dò tìm đường đi đến root thông qua các non-designated port thông qua root port hay các blocking port khác . - Nếu inferior BPDU được nhận trên root port , Switch sẽ tìm đường đi đến root thông qua các blocking port khác . - Nếu inferior được nhận trên root port và switch này không có port nào là blocking port cả thì Switch coi như đã mất kết nối tới Root và nó sẽ bắt đầu lại giải thuật STP bằng cách giả sử mình là root và gửi đi BPDU . Backbone fast trong trường hợp này cho phép loại bỏ đi khoảng thời gian max-age và lập tức chuyển sang trạng thái Listening . Chú ý: Rõ ràng Switch phải đợi nhận được tất cả các RLQ reply, trong đó có ít nhất một RLQ reply đến được root thì Switch mới age-out thông tin trên port nhận inferior BPDU. Như vậy để tiết kiệm được thời gian max-age thì switch phải chịu một khoảng thời gian relay để đợi các RLQ reply.Tuy nhiên, khoảng thời gian Relay này rất thấp , chỉ khoảng vài giây mà thôi nên vẫn đảm bảo cho vấn đề tiết kiệm max-age timer. Khi enable backbone fast phải enable trên tất cả các switch, vì tất cả các switch phải process các RLQ PDU. Tính năng này được áp dụng cho Core layer và trường hợp indirect link failure . . là 20s nữa , như vậy phải mất 50s thì mạng mới hoạt động lại bình thường được . Tính năng Backbone Fast cho phép chúng ta tiết kiệm được khoảng thời gian Max_age 20s bằng cách age_out thông. được kết nối down ngay lập tức mà phải đợi cho đến khi Max_age hết hạn mới phát hiện được . Backbone Fast sẽ xử lí như thế nào đối với trường hợp Indirect link failure ? Khi nhận được một inferior. của Switch S , A là root port , B , D , E là block port . Khi port E nhận được Inferior BPDU thì backbone fast sẽ kích hoạt và làm giảm thời gian converge xuống . Switch S gửi RLQ request trên tất