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ântích
Trang 1TÌ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ằngmột Repeater Giả sử máy N2 gởi cho N1 một Frame thông tin Frame được lantruyề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ậntoà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ếtgó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ônghiể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ổngcò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 khitruyề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ântích địa chỉ MAC của Frame và thấy rằng không cần thiết phải chuyển Frame sangLAN 2 Do đó Bridge sẽ làm giảm xung đột khi truyền tin giữa các máy tính trênmạng và làm tăng hiệu năng mạng hay tiết kiệm được đường truyền
Trang 2Mô 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ộtmạ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áchquan 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ạngnà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àytớ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 nhauvẫ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ự canthiệ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ăngcủ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
Trang 3 Cầu nối xác định đường đi từ nguồn : Cho phép nối các mạng Token Ring lạivớ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
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 LANlại với nhau Mỗi LAN được gắn với một cổng của Bridge Bridge lắng nghe ngẫunhiên gói tin được truyền tới cho đến khi nó có thể được truyền đi trên các mạngLAN 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ỗikhác (trừ LAN mà bridge nhận được gói tin từ nó) Do đó nó có thể cho 2 trạm đốidiện hai bên cầu có thể truyền tin với nhau mà không va chạm
Trang 4 Đặ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 để chophép các trạm chỉ hoạt động trên một mạng LAN đơn có thể làm việc được trongmô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ácnhư 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óitin 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óitin để 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ộttrong các trường hợp sau :
Trang 5 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 đếntấ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 :
Trang 6+ Bridge sẽ tra địa chỉ nguồn của gói tin trong bảng địa chỉ, đồng thời B ghi nhớ góitin 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ổngngoạ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 ?
Trang 7Giả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ủanó.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
Trang 8đượ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ằmphụ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 LANvớ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 đếncá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
Trang 9LAN 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óitin 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ủagói tin được truyền đến LAN 2 Theo luật của các mạng LAN thì mỗi một trong 3cầ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ênLAN 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 sangLAN 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ẽ đượctruyề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, B3cũ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àmcho 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áivò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à
Trang 10khô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ặpvò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ý trongmạng Sau đó giao thức này sẽ định rõ thuật toán mà Bridges có thể tạo ra một cấutrú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à dobroadcast và sự sai lệch của bảng bridge
Trang 11a) 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
Trang 12 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 taphả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
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
Trang 13 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) trong bảng bridge, và nó tràn frame qua cáccổng
(BB- 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, điều này tạo ra feedback loop và làm down mạng
BB-BB-BB-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óiunicast mà còn làm sai bảng bridge Như vậy không chỉ có broadcast mới làmhỏ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ộttậ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ạngLAN 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 logictrong 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 :
Trang 14Hì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ảnggiữ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à DECSTP 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 địnhnghĩ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
Trang 15155 Mbps 14
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 Treeluô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
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)