31
TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT I . Vấn đề gặp phải khi thực hiện liên mạng bằng Repeater / Hub và giải pháp khắc phục. a) Khó khăn khi liên mạng bằng Repeater + Xét liên mạng sau để thấy được hạn chế của Repeater / Hub trong liên mạng : Hình 1 : Hạn chế của Repeater / Hub Ta thấy : liên mạng trên gồm 2 nhánh mạng LAN 1 và LAN 2 kết nối với nhau bằng một Repeater. Giả sử máy N2 gởi cho N1 một Frame thông tin. Frame được lan truyền trên LAN 1 và đến cổng 1 của Repeater dưới dạng một chuỗi các bit. Repeater sẽ khuếch đại chuỗi bit nhận được từ cổng 1 và chuyển chúng sang cổng 2. Điều này làm cho Frame mà N2 gửi cho N1 sang LAN 2. Trên LAN 1, N1 nhận toàn bộ gói tin còn trên LAN 2 không có máy nào nhận được gói tin cả. Mà ta biết gói tin N2 gửi đến N1 không nhất thiết phải gửi sang LAN 2 để tránh lãng phí đường truyền trên LAN 2. Tuy nhiên, do Repeater hoạt động ở tầng 1, nó không hiểu Frame là gì nên nó sẽ chuyển đi bất cứ thứ gì mà nó nhận được sang các cổng còn lại. Điều này làm

TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Embed Size (px)

Citation preview

Page 1: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

I . Vấn đề gặp phải khi thực hiện liên mạng bằng Repeater / Hub và giải pháp

khắc phục.

a) Khó khăn khi liên mạng bằng Repeater

+ Xét liên mạng sau để thấy được hạn chế của Repeater / Hub trong liên mạng :

Hình 1 : Hạn chế của Repeater / Hub

Ta thấy : liên mạng trên gồm 2 nhánh mạng LAN 1 và LAN 2 kết nối với nhau bằng

một Repeater. Giả sử máy N2 gởi cho N1 một Frame thông tin. Frame được lan

truyền trên LAN 1 và đến cổng 1 của Repeater dưới dạng một chuỗi các bit.

Repeater sẽ khuếch đại chuỗi bit nhận được từ cổng 1 và chuyển chúng sang cổng 2.

Điều này làm cho Frame mà N2 gửi cho N1 sang LAN 2. Trên LAN 1, N1 nhận

toàn bộ gói tin còn trên LAN 2 không có máy nào nhận được gói tin cả. Mà ta biết

gói tin N2 gửi đến N1 không nhất thiết phải gửi sang LAN 2 để tránh lãng phí

đường truyền trên LAN 2. Tuy nhiên, do Repeater hoạt động ở tầng 1, nó không

hiểu Frame là gì nên nó sẽ chuyển đi bất cứ thứ gì mà nó nhận được sang các cổng

còn lại. Điều này làm tăng vùng xung đột của liên mạng, khả năng xung đột khi

truyền tin của các máy tính sẽ tăng lên, hiệu năng mạng sẽ giảm xuống.

b) Giải pháp khắc phục

Cũng xét liên mạng như trên nhưng ở đây ta thay thế Repeater bằng một Bridge thì ở

đây Frame mà N2 gửi cho N1 cũng sẽ đến cổng 1 của Bridges nhưng Bridge sẽ phân

tích địa chỉ MAC của Frame và thấy rằng không cần thiết phải chuyển Frame sang

LAN 2. Do đó Bridge sẽ làm giảm xung đột khi truyền tin giữa các máy tính trên

mạng và làm tăng hiệu năng mạng hay tiết kiệm được đường truyền.

Page 2: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Mô hình liên mạng như sau :

Hình 2 : Bridge khắc phục nhược điểm của Repeater / Hub

II . Giới thiệu chung về Bridge

+ Bridge là thiết bị mạng thuộc lớp 2 (Lớp liên kết dữ liệu) của mô hình hệ thống

mở OSI, được sử dụng để ghép nối 2 hoặc nhiều mạng với nhau để tạo thành một

mạng lớn duy nhất.

+ Bridge được sử dụng phổ biến để làm cầu nối giữa 2 mạng Ethernet. Bằng cách

quan sát các gói tin trên mọi mạng, khi thấy một gói tin từ một máy tính thuộc mạng

này chuyển tới một máy tính trên mạng khác, Bridge sẽ sao chép và gửi gói tin này

tới mạng đích.

+ Ưu điểm của Bridge :

Hoạt động “trong suốt”, có nghĩa là các máy tính thuộc các mạng khác nhau

vẫn có thể gửi các thông tin với nhau đơn giản mà không cần biết có sự can

thiệp của Bridges hay không.

Xử lý được nhiều lưu thông trên mạng cũng như địa chỉ IP cùng lúc.

Chia liên mạng thành những vùng xung đột nhỏ nhằm cải thiện hiệu năng

của liên mạng tốt hơn so với liên mạng sử dụng Repeater và Hub.

+ Nhược điểm :

Bridge chỉ kết nối những mạng cùng loại .

Khó khăn trong xử lý nhanh nếu chúng không nằm gần nhau về mặt địa lý.

+ Phân loại

Bridge gồm có 3 loại chính :

Cầu nối trong suốt : Cho phép nối các mạng Ethernet / Fast Ethernet.

Page 3: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Cầu nối xác định đường đi từ nguồn : Cho phép nối các mạng Token Ring lại

với nhau.

Cầu nối trộn lẫn : Cho phép nối mạng Ethernet và Token Ring lại với nhau.

II . Cầu nối trong suốt

2.1 Tổng quan về cầu nối trong suốt

+ Cầu nối trong suốt được phát triển bởi tập đoàn thiết bị số và được đưa vào chuẩn

IEEE 802.1D

+ Chức năng : kết nối các mạng Ethernet lại với nhau.

+ Đặc điểm :

- Sự hiện diện và hoạt động của Bridge “trong suốt” (có nghĩa là ẩn) với các

máy trạm.

- Các máy trạm khi kết nối thì không cần phải cấu hình gì thêm để có thể

truyền tải thông tin trên mạng.

Các tính chất của Bridge :

The no-frills Bridge

The learning Bridge

Thuật toán cây

2.2 Các đặc trưng cơ bản của cầu nối trong suốt

2.2.1 The no-frills bridge

Chức năng cơ bản nhất của cầu nối trong suốt là kết nối 2 hoặc nhiều mạng LAN

lại với nhau. Mỗi LAN được gắn với một cổng của Bridge. Bridge lắng nghe ngẫu

nhiên gói tin được truyền tới cho đến khi nó có thể được truyền đi trên các mạng

LAN khác. Ta goi đó là No-frills bridge ( cầu không kiểu cách).

Hoạt động của Bridge

Bước 1 : Lắng nghe ngẫu nhiên mọi gói tin được truyền đi.

Bước 2 : Lưu giữ mỗi gói tin nhận được cho đến khi truyền được đến các LAN rỗi

khác (trừ LAN mà bridge nhận được gói tin từ nó). Do đó nó có thể cho 2 trạm đối

diện hai bên cầu có thể truyền tin với nhau mà không va chạm.

Page 4: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Đặc điểm

+ Mở rộng khả năng của mạng LAN : Cầu nối trong suốt được phát triển để cho

phép các trạm chỉ hoạt động trên một mạng LAN đơn có thể làm việc được trong

môi trường đa mạng LAN.

+ Không biến đổi gói tin mà nó nhận được : Bridge truyền đi các gói tin chính xác

như nó nhận được. Nếu Bridge sửa đổi gói tin trong bất kỳ trường hợp nào, ví dụ :

cầu nối ghi đè lên phần địa chỉ trên Header của gói tin với địa chỉ riêng của nó thì

các giao thức trong các trạm không thể làm việc chính xác.

+ Cho phép 2 trạm ở 2 bên cầu truyền đồng thời mà không có xung đột.

+ Nếu băng thông vượt quá tốc độ LAN thì gói tin sẽ bị loại trước khi truyền đến

đích.

2.2.2 The learning bridge

* Nguyên lý hoạt động chung :

Bridge lắng nghe ngẫu nhiện và nhận bất kỳ gói tin nào được truyền.

“Học” vị trí của các máy trên mạng bằng cách phân tích địa chỉ máy gửi gói

tin mà Bridge nhận được.

Xây dựng bảng địa chỉ cục bộ để làm cơ sở cho việc chuyển tiếp gói tin.

Khi gói tin đến một cổng của Bridge thì Bridges đọc 6 bytes đầu tiên của gói

tin để xác định địa chỉ máy nhận khung.

Bridge tìm địa chỉ máy nhận trong bảng địa chỉ cục bộ và xử lý theo một

trong các trường hợp sau :

Page 5: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Nếu máy nhận nằm cùng một cổng với cổng đã nhận Frame, cầu nối sẽ bỏ

qua Frame vì biết rằng máy nhận đã nhận được Frame.

Nếu máy nhận nằm trên một cổng khác với cổng đã nhận Frame, cầu nối sẽ

chuyển Frame sang cổng có máy nhận.

Nếu không tìm thấy địa chỉ máy nhận trong bảng địa chỉ, cầu nối sẽ gửi đến

tất cả các cổng còn lại của nó (trừ cổng đã nhận Frame).

* Để hiểu hơn về Learning bridges ta xét các ví dụ sau.

Ví dụ 1 : Cho liên mạng như sau :

a) Giả sử A muốn truyền một gói tin đến D. Ban đầu Bridges chưa biết gì về D.

Hỏi, A truyền gói tin đến D như thế nào ?

b) Giả sử Q muốn truyền gói tin đến A. Ban đầu Bridges chưa biết gì về Q. Hỏi,

Q truyền gói tin đến A như thế nào ?

Giải :

a) Máy A gửi gói tin đến D

+ Ta biết, gói tin mà A muốn truyền đi sẽ có địa chỉ đích của máy D, có dạng như

sau :

Page 6: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

+ Bridge sẽ tra địa chỉ nguồn của gói tin trong bảng địa chỉ, đồng thời B ghi nhớ gói

tin này nhận từ cổng 1 và trạm A nằm trên cổng 1.

+ Cầu B không biết vị trí của D, do đó nó chuyển tiếp gói tin tới tất cả các cổng

ngoại trừ cổng 1 (cổng mà nó nhận được gói tin).

+ Cổng 2 của cầu B được nối với LAN 2 chứa máy D cũng nhận được gói tin, mà

gói tin này chứa địa chỉ đích của máy D do đó mà gói tin sẽ được gửi đến máy D.

c) Q truyền gói tin đến máy A

+ Ta biết gói tin truyền đi có chứa địa chỉ đích của A, có dạng như sau :

+ Khi Bridge nhận được gói tin từ Q truyền đến thì nó sẽ tra địa chỉ nguồn và đích

của gói tin trong bảng địa chỉ và ghi nhớ rằng gói tin đã nhận được trên cổng 1, Q

nằm trên cổng 1. Từ đây cầu B đã học được địa chỉ của A và vì A nằm cùng cổng 1

với cổng Q nên Bridges biết rằng nó không cần chuyển tiếp gói tin nữa mà gói tin từ

Q đi thẳng đến A.

Ví dụ 2 : Cho liên mạng sau :

Giả sử B chưa biết gì về C,D.

a) Hỏi máy A sẽ truyền gói tin đến máy D như thế nào ?

b) Hỏi máy Z sẽ truyền gói tin đến máy C như thế nào ?

Page 7: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Giải :

a) A truyền gói tin đến D

+ Ban đầu , cầu B biết rằng nó có 3 cổng. Nhưng nó sẽ ghi nhớ rằng A nằm trên

cổng 1. Vì B không biết vị trí của D nên sau khi nhận gói tin từ cổng 1 thì nó sẽ

chuyển gói tin tới tất cả các cổng còn lại, tức cổng 2 và 3. Cầu B tiến hành “học” vị

trí của A, D bằng cách phân tích địa chỉ nguồn và đích của gói tin, khi xác định được

địa chỉ đích của D thì nó biết rằng D nằm trên cổng 2. Suy ra gói tin từ cổng 2 sẽ

được truyền vào D.

b) Z truyền gói tin đến C

+ Cầu B biết rằng Z nằm trên cổng 3 nhưng B không biết vị trí của C nên sau khi

nhận được gói tin mà Z truyền đi thì nó sẽ gửi gói tin đến tất cả các cổng còn lại.

Sau khi “học” được vị trí của C qua việc phân tích địa chỉ đích và nguồn của gói tin

thì B bỏ qua gói tin vì biết rằng Z và C cùng thuộc cổng 3 của B nên gói tin từ Z

truyền thẳng đến C.

Liên mạng với số cầu bất kỳ

Xét liên mạng gồm 2 cầu nối và 3 mạng LAN như hình sau :

Ta thấy : Cầu B1 không thể phân biệt được vị trí các máy trên LAN 2 và LAN 3.

Theo như hình trên thì : B1 kết nối LAN 1 với cổng 1và LAN 2 với cổng 2 của

nó.Còn cầu B2 kết nối với LAN 2 và LAN 3, ở đây cầu xem cầu B2 là trong suốt,

tức là sự tồn tại của B2 ẩn với B1, cũng có nghĩa là B2 cũng ẩn với tất cả các máy.

Sau khi tất cả các máy đều truyền đi bất kỳ một gói tin nào đó thì B1, B2 sẽ ‘học” vị

trí của các máy. Lúc này bộ nhớ đệm của B1, B2 sẽ lưu các gói tin mà chúng nhận

Page 8: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

được từ các máy, thực hiện phân tích địa chỉ của gói tin để lập bảng địa chỉ nhằm

phục vụ cho việc chuyển tiếp tiếp theo.

Trạng thái bộ nhớ đệm của cầu B1, B2 được thể hiện như hình dưới đây :

Vì vậy, nếu xem B2 là cầu trong suốt thì liên mạng được kết nối bởi B1 như sau :

Nếu xem B1 là trong suốt thì liên mạng được kết nối bởi B2 như sau :

Ở trên ta đã xét các liên mạng đơn giản được nối bởi Bridge giữa các mạng LAN

với nhau, mỗi quá trình truyền gói tin từ máy trạm đến cầu nối , rồi từ cầu nối đến

các LAN được xem như là các bước nhảy. Nhưng nếu ta xét một liên mạng gồm 2

Page 9: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

LAN cùng được nối bởi nhiều Bridge thì điều gì sẽ xảy ra khi A truyền đi một gói

tin và liệu khả năng mở rộng tất cả các kiểu mạng có còn đúng với Bridge ?

Để trả lời cho câu hỏi trên ta tiến hành phân tích liên mạng sau :

+ Giả sử các cầu nối B1, B2, B3 chưa biết gì về các đích đến, tức là không có dữ

liệu đích đến trong các bộ nhớ đệm của chúng. Dự đoán đầu tiên là có 3 bản sao của

gói tin được truyền đến LAN 2. Theo luật của các mạng LAN thì mỗi một trong 3

cầu sẽ nhận được gói tin và ghi nhớ rằng A nằm trong LAN 1. Sau đó chúng sẽ

chuyển tiếp gói tin vào LAN 2. Có 3 trường hợp xảy ra :

- Giả sử B3 thành công trong việc truyền dẫn gói tin từ LAN 1 vào LAN 2. Vì B3 là

trong suốt đối với B1, B2 nên gói tin sẽ được truyền trên LAN chính xác như khi nó

nhận được từ A và lúc này B3 ghi nhớ rằng A nằm trên LAN 2. Khi đó B1, B2 cũng

sẽ nhận được gói tin và ghi nhớ trong các bảng địa chỉ của chúng là A nằm trên

LAN 2. Gói tin mà B1, B2 nhận được sẽ được chuyển đến LAN 1.

- Giả sử B1 là cầu thành công trong việc truyền tải gói tin nhận được từ A sang

LAN 2 thì cầu B2, B3 cũng sẽ nhận được gói tin từ LAN 2 và ghi nhớ trong bảng

địa chỉ của chúng rằng A nằm trên LAN 2. Gói tin mà B2, B3 nhận được sẽ được

truyền sang LAN 1.

- Giả sử B2 thành công trong việc truyền tải gói tin từ A sang LAN 2 thì cầu B1, B3

cũng sẽ nhận được gói tin từ LAN 2 và chuyển tiếp chúng sang LAN 1.

Nhận thấy rằng nếu các trường hợp trên xảy ra thì các cầu nối không chỉ làm

cho gói tin lặp lại mà còn nhân lên rất nhiều lần, gói tin sẽ được truyền đi trong cái

vòng luẩn quẩn mà không khi đến được đích rồi thì nó vẫn tiếp tục được gửi đi và

Page 10: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

không biết phải ngừng khi nào. Do đó giải pháp đưa ra nhằm khắc phục vấn đề này

là sử dụng thuật toán cây bao trùm (the spainning tree) nhằm ngăn chặn được sự lặp

vòng, cho phép các Bridges truyền thông với nhau để phát hiện vòng lặp vật lý trong

mạng. Sau đó giao thức này sẽ định rõ thuật toán mà Bridges có thể tạo ra một cấu

trúc mạng logic chứa vòng lặp hay tạo ra cấu trúc cây của vòng lặp gồm các lá và

nhánh nối toàn bộ mạng.

Hình 3 : Mô hình Spanning Tree

2.3 Thuật toán cây

2.3.1 Nguyên nhân gây ra vòng lặp trong liên mạng

Hai nguyên nhân chính gây ra sự lặp vòng tai hại trong mạng chuyển mạch là do

broadcast và sự sai lệch của bảng bridge.

Page 11: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

a) Vòng lặp broadcast

Vòng lặp broadcast và vòng lặp lớp 2 là một sự kết hợp nguy hiểm nếu không

có thuật toán cây.

Hình 4 : Không có thuật toán cây, broadcast tạo ra vòng lặp phản hồi

(Feedback loop)

Bước 1: Host A gửi một frame bằng địa chỉ broadcast (FF-FF-FF-FF-

FF-FF).

Bước 2: Frame đến cả hai Bridge 1, 2 qua cổng 1/1

Bước 3: Bridge 1 sẽ đưa frame qua cổng 1/2.

Page 12: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Bước 4: Frame được truyền đến tất cả các nút trên đoạn mạng Ethernet

kể cả cổng 1/2 của Bridge 2.

Bước 5: Bridge 2 đưa frame này đến cổng 1/1 của nó.

Bước 6: Một lần nữa, Frame xuất hiện cổng 1/1 của Bridge 1.

Bước 7: Bridge1 sẽ gửi Frame này đến cổng 1/2 lần hai. Như vậy tạo

thành một vòng lặp ở đây.

b) Nguyên nhân sai lệch bảng bridge

Nhiều nhà quản trị đã nhận thức vấn đề cơ bản của broadcast, tuy nhiên ta

phải biết rằng thậm chí các unicast Frame cũng có thể truyền mãi trong mạng mà

chứa vòng lặp. Hình sau thể hiện sự sai lệch do bảng Bridge như sau :

Hình 5 : Frame unicast cũng có thể gây ra vòng lặp

và làm sai lệnh bảng bridge

Page 13: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Bước 1: Host A muốn gửi gói unicast đến host B, nhưng host B đã rời

khỏi mạng, và đúng với bảng bridge thì không có địa chỉ của host B.

Bước 2: Giả sử rằng cả hai Bridges đều không dùng thuật toán cây, thì

frame đến cổng 1/1 trên cả hai Bridges.

Bước 3: Vì host B bị down, nên Bridge 1 không có địa chỉ MAC (BB-

BB-BB-BB-BB-BB) trong bảng bridge, và nó tràn frame qua các

cổng.

Bước 4: Bridge 2 nhận được frame trên cổng 1/2 . Có 2 vấn đề xảy ra:

o Bridge 2 tràn frame vì nó không học địa chỉ MAC BB-BB-BB-

BB-BB-BB, điều này tạo ra feedback loop và làm down mạng.

o Bridge 2 chú ý rằng, nó chỉ nhận một frame trên cổng 1/2 với

địa chỉ MAC là AA-AA-AA-AA-AA-AA. Nó thay đổi địa chỉ

MAC của host A trong bảng bridge dẫn đến sai cổng.

Vì frame bị lặp theo hướng ngược lại, nên ta thấy địa chỉ MAC của host A bị

lẫn giữa cổng 1/1 và 1/2. Điều này không chỉ làm mạng bị tràn với các gói

unicast mà còn làm sai bảng bridge. Như vậy không chỉ có broadcast mới làm

hỏng mạng.

2.3.2 Mục đích của Spainning Tree

Mục đích của thuật toán cây là phải có một cầu nối tự động phát hiện ra một

tập các vòng lặp vật lý. Sau đó thì có một đường dẫn giữa mỗi cặp các mạng

LAN tức là tạo ra liên kết dự phòng để khôi phục mạng khi xảy ra lỗi.

2.3.3 Các khái niệm cơ bản của thuật toán cây

Việc tính toán Spanning Tree dựa trên hai khái niệm khi tạo ra vòng lặp logic

trong cấu trúc mạng đó là: Bridge ID (BID) và Cost ID (chi phí đường đi).

b) Bridge ID (BID)

BID là một trường có 8 byte, nó gồm có 2 trường con được miêu tả như sau :

Page 14: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Hình 6 : Hai trường của BID

Trong đó:

Địa chỉ MAC: có 6 byte được gán cho Bridge. Sử dụng một trong số các địa chỉ MAC từ vùng 1024 địa chỉ gán cho mỗi giám sát viên (supervisor) và bảng nối đa năng (backplane). Địa chỉ MAC trong BID sử dụng định dạng hexa.

Bridge Priority: là độ ưu tiên Bridge có 2 byte tạo thành 216 giá trị từ 0 - 65.535. Độ ưu tiên bridge có giá trị mặc định là giá trị ở khoảng giữa (32.768).

Chú ý: ta chỉ tập trung vào chuẩn IEEE của giao thức Spanning Tree. Mặc dù về cơ bản là như nhau nhưng có một vài điểm khác biệt giữa IEEE STP và DEC STP như DEC STP sử dụng 8 bit Bridge priority.

b) Cost ID (Chi phí đường đi)

Bridge sử dụng khái niệm chi phí để đánh giá các bridge khác. 802.1D định nghĩa chi phí là 1000 Mbps bằng cách chia băng thông của liên kết. Ví dụ như một liên kết 10BaseT có chi phí là 100 (1000/10), Fast Ethernet và FDDI sử dụng chi phí là 10 (1000/100).

Để giải quyết tình trạng khó xử này, IEEE quyết định sửa đổi chi phí để sử dụng tính co dãn không tuyến tính. Bảng sau cho ta một danh sách giá trị chi phí mới.

Băng thông Chi phí STP

4 Mbps 250

10 Mbps 100

16 Mbps 62

45 Mbps 39

100 Mbps 19

Page 15: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

155 Mbps 14

622 Mbps 6

1 Gbps 4

10 Gbps 2

2.3.4 Các bước ra quyết định của thuật toán Spainning Tree

Khi tạo ra cấu trúc mạng logic chứa vòng lặp (loop-free) thì Spanning Tree

luôn thực hiện trình tự bốn bước sau:

Bước 1 : Chọn BID gốc (Root BID) thấp nhất.

Bước 2 : Tính toán chi phí đường đi đến Bridge gốc thấp nhất.

Bước 3 : Xác định BID của người gửi thấp nhất.

Bước 4 : Chọn ID của cổng thấp nhất.

Bridge trao đổi thông tin Spanning Tree với nhau, sử dụng frame xác định là

đơn vị dữ liệu giao thức bridge (Bridge Protocol Data Unit - BPDU) hay còn gọi

là cấu bình BPDU. Một bridge sử dụng trình tự bốn bước này để lưu một bản sao

của BPDU tốt nhất trên mỗi cổng. Khi đánh giá, nó xem tất cả BPDU nhận được

trên cổng cũng như BPDU gửi đi trên cổng đó. Mỗi BPDU đến đều được kiểm

tra theo trình tự bốn bước này, nếu tốt hơn BPDU hiện tại thì nó được lưu lại

cổng đó và thay thế giá trị cũ.

2.3.5 Thuật toán Spainning Tree

Phần này ta sẽ xem xét thuật toán mà Spainning Tree sử dụng để hội tụ lần

đầu tiên trên cấu trúc mạng logic chứa vòng lặp. Mặc dù có nhiều khía cạnh,

nhưng sự hội tụ ban đầu được phân nhỏ thành ba bước cơ bản sau:

Chọn một bridge gốc (Root Bridge).

Chọn cổng gốc (Root Port).

Chọn cổng được chỉ định (Designated Port).

Page 16: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Khi một mạng khởi động lần đầu, tất cả các bridge thông báo thông tin

BPDU một cách lộn xộn. Tuy nhiên, các bridge này sẽ lập tức áp dụng trình tự

bốn bước như trên. Một bridge gốc được quyết định để hoạt động như là “trung

tâm của vạn vật” đối với mạng. Tất cả các bridge còn lại tính toán việc thiết lập

các cổng gốc và các cổng chỉ định để xây dựng cấu trúc mạng chứa loop-free.

Kết quả là bridge gốc giống như một hub với cấu trúc mạng chứa vòng lặp logic.

Khi mạng có trạng thái ổn định, thì bridge gốc sẽ gửi các BPDU đến mỗi đoạn

mạng.

Để hiểu rõ hơn ta xét ví dụ cụ thể sau :

Ví dụ : Xét liên mạng gồm có 3 bridge kết nối thành một vòng lặp. Mỗi cầu nối

được gán một địa chỉ MAC không có thật tương ứng với tên thiết bị (ví dụ như

Cat-A sử dụng địa chỉ MAC là AA-AA-AA-AA-AA-AA).

Hình 7: Mô hình mạng sử dụng Spainning Tree

Bước 1: Chọn một bridge gốc (Root Bridge)

Đầu tiên tìm bridge có BID thấp nhất để lấy nó làm Bridge gốc.

Như đã nói đến ở phần trên BID là một định danh 8 byte được chia thành 2

trường là Bridge Priority và địa chỉ MAC từ người giám sát (supervisor) hoặc

backplane. Ở hình 7 ta thấy Cat-A có BID mặc định là 32.768 và địa chỉ MAC là

AA-AA-AA-AA-AA-AA. Cat-B là (32.768, BB-BB-BB-BB-BB-BB) và Cat-C

là (32.768, CC-CC-CC-CC-CC-CC). Vì cả ba bridge đều sử dụng Bridge Priority

là 32.678 nên địa chỉ MAC thấp nhất là AA-AA-AA-AA-AA-AA và Cat-A trở

thành Bridge gốc. Hình 8 dưới đây sẽ mô tả quá trình này.

Page 17: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Hình 8 : Chọn Bridge Root

Nhưng làm thế nào các bridge biết được Cat-A có BID thấp nhất? Đó là do

việc trao đổi các BPDU. Bridge sử dụng BPDU dành riêng để thay đổi cấu trúc

mạng và thông tin Spanning Tree lẫn nhau. Các BPDU được gửi mặc định 2s

một lần. Các BPDU là lưu lượng bridge-to-bridge, nó không mang lưu lượng

end-to-end.

Nội dung cơ bản của một BPDU được thể hiện như sau :

Hình 9 : Các thành phần cơ bản của BPDU

Mục đích việc chọn bridge gốc chỉ liên quan đến trường Root BID và Sender

BID. Khi một bridge phát ra một BPDU 2s một lần, ngay tức khắc nó sẽ xác định

Page 18: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

bridge gốc dựa vào trường Root BID. Bridge này luôn đặt BID của chính nó

trong Sender BID.

Chú ý: Root BID là ID của bridge gốc hiện tại, trong khi Sender BID là ID

của bridge cục bộ hoặc switch.

Khi bridge khởi động lần đầu tiên, nó luôn luôn đặt BID trong cả hai trường

Root BID và Sender BID. Giả sử rằng, Cat-B khởi động đầu tiên và bắt đầu gửi

các BPDU thông báo chính nó là Bridge gốc 2s một lần. Một vài phút sau Cat-C

khởi động và thông báo chính nó là Bridge gốc. Khi BPDU của Cat-C đến Cat-B,

Cat-B sẽ loại bỏ BPDU vì nó có B-ID thấp hơn được lưu trên các cổng của nó.

Ngay lập tức Cat-B truyền BPDU, Cat-C biết được là giả định ban đầu của nó là

sai. Tại thời điểm đó, Cat-C bắt đầu gửi BPDU với Root BID là B và Sender

BID là C. Bây giờ mạng chấp nhận B là Bridge gốc.

Bước 2: Chọn cổng gốc

Sau khi xác định được Bridge gốc, thì các Bridge sẽ chuyển qua chọn cổng

gốc. Cổng gốc là một cổng trên bridge cục bộ. Mỗi brigde (trừ bridge gốc) phải

lựa chọn một cổng gốc.

Bridge sẽ sử dụng khái niệm chi phí để xét cổng gốc. Cụ thể là các bridge

theo dõi chi phí đường đi gốc, chi phí tích lũy của tất cả các liên kết đến bridge

gốc. Hình 10 mô tả làm thế nào tính toán qua nhiều bridge và kết quả của việc

chọn cổng gốc. Nó biểu diễn Cat-B tính toán và chọn ra cổng 1/1 là cổng gốc với

chi phí là 19, và chú ý là khi một cổng nhận BPDU thì chi phí sẽ tăng dần.

Page 19: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Hình 10 : Chọn Root Port

Quá trình như sau :

(1): khi Cat-A (bridge gốc) gửi các BPDU, thì nó chứa chi phí đường

đi gốc là 0.

(2): khi B nhận các BPDU này, nó thêm vào chi phí đường đi của cổng

1/1vào chi phí đường đi gốc chứa trong BPDU nhận. Cat-B nhận chi

phí đường đi gốc là 0 và thêm vào chi phí của cổng 1/1 là 19.

(3): sau đó Cat-B sử dụng giá trị 19 và gửi BPDU với chi phí đường đi

gốc là 10 ra cổng 1/2.

(4): khi Cat-C nhận BPDU này từ B, thì nó tăng chi phí đường đi gốc

thành 38 (19+19).

(5): tuy nhiên Cat-C cũng nhận BPDU từ bridge gốc trên cổng 1/1.

Cat-C sẽ thêm vào cổng 1/1 với chi phí là 0, và ngay lập tức nó tăng

chi phí lên 19.

(6): Cat-C thấy chi phí đường đi gốc là 19 trên cổng 1/1 và 38 trên

cổng 1/2, nó quyết định cổng 1/1 là cổng gốc (chọn giá trị nhỏ nhất).

Page 20: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

(7): sau đó Cat-C bắt đầu quảng bá chi phí đường đi gốc với giá trị 19

đến các Bridge xuôi dòng.

Chú ý:

Chi phí STP được tăng khi một cổng nhận BPDU, chứ không phải vì

nó được gửi ra khỏi cổng. Ví dụ như, các BPDU đến trên cổng 1/1 của

Cat-B với chi phí là 0 và tăng lên 19 bên trong Cat-B.

Sự khác nhau giữa chi phí đường đi và chi phí đường đi gốc.

Chi phí đường đi là giá trị được gán cho mỗi cổng, nó được thêm vào

các BPDU được nhận trên cổng đó để tính toán chi phía đường đi gốc.

Chi phí đường đi gốc là chi phí tích lũy đến bridge gốc. Trong BPDU,

đây là giá trị của trường chi phí. Đối với một bridge, giá trị này được

tính bằng cách cộng các chi phí đường đi của các cổng nhận với giá trị

chứa trong BPDU.

Bước 3: quyết định cổng được chỉ định.

Mỗi đoạn mạng trên một bridge có một cổng được chỉ định, cổng này có

chức năng nhận và gửi lưu lượng đến đoạn mạng kia và bridge gốc. Nếu chỉ có

một cổng nắm giữ lưu lượng trên mỗi liên kết, thì tất cả vòng lặp bị phá bỏ.

Bridge chứa cổng được chỉ định được gọi là designated bridge cho đoạn mạng

đó.

Page 21: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Hình 11 : Chọn cổng chỉ định

Để xác định cổng được chỉ định, ta hãy nhìn vào mỗi đoạn mạng. Đầu tiên là

đoạn 1, liên kết giữa Cat-A và B có 2 cổng là Cat-A: cổng 1/1, và Cat-B: cổng

1/1. Cổng 1/1 của Cat-A có chi phí đường đi gốc là 0, và cổng 1/1 của B là 19

(giá trị 0 được nhận trong BPDU từ A cộng với chi phí đường đi được gán cho

cổng 1/1 của B). Vì cổng 1/1 của A có chi phí đường đi thấp hơn nên nó trở

thánh cổng được chỉ định đối với liên kết này.

Đối với đoạn mạng 2 (kiên kết giữa Cat-A và C), tương tự cổng 1/2 của A trở

thành cổng được chỉ định. Chú ý là mỗi cổng hoạt động trên bridge gốc đều trở

thành cổng được chỉ định.

Bây giờ ta hãy xem đoạn 3 (liên kết giữa Cat-B và C), cả hai cổng 1/2 của B

và 1/2 của C đều có chi phí đường đi gốc là 19. Đây là một sự hạn chế, và

Spainning Tree thường sử dụng trình tự bốn bước để quyết định:

BID gốc thấp nhất.

Chi phi đường đi đến bridge gốc thấp nhất.

Sender BID thấp nhất.

ID của cổng thấp nhất.

Page 22: TÌM HIỂU VỀ CẦU NỐI TRONG SUỐT

Trong ví dụ ở hình 11, tất cả các bridge đều tán thành Cat-A là Bridge gốc, cả

B và C đều có chi phí là 19, nên ta sẽ lấy yếu tố BID để quyết định. BID của B là

(32.768.BB-BB-BB-BB-BB-BB) và của C là (32.768.CC-CC-CC-CC-CC-CC),

do đó cổng 1/2 của B là Cổng được chỉ định cho đoạn 3.

Khi một cổng nhận BPDU nó sẽ so sánh với các BPDU nhận được trên các

cổng khác (cũng như BPDU được gửi trên cổng đó). Chỉ BPDU tốt nhất mới

được lưu lại. Tốt nhất ở đây có nghĩa là giá trị thấp nhất (ví dụ như BID thấp

nhất trở thành Bridge gốc, giá trị thấp nhất cũng được sử dụng để chọn cổng gốc

và cổng được chỉ định). Một cổng sẽ ngưng truyền BPDU nếu nó nghe được

một BPDU tốt hơn BPDU của nó.