Đề tài Vấn đề liên quan đến NS

Tài liệu Đề tài Vấn đề liên quan đến NS: KH OA C NT T – Đ H KH TN Lời cám ơn LỜI CÁM ƠN Chúng tôi vô cùng biết ơn sự dìu dắt và hướng dẫn tận tình, chu đáo của thầy Cao Đăng Tân, trưởng bộ môn Mạng Máy Tính và Viễn Thông, trong suốt quá trình thực hiện luận văn này. Thầy luôn theo sát từng bước đi của chúng tôi, gợi mở cho chúng tôi cách thức để giải quyết các vấn đề gặp phải khi tiến hành nghiên cứu đề tài này. Thông qua các cuộc thảo luận, thầy không chỉ giúp chúng tôi hiểu rõ bản chất của một vấn đề cụ thể cần nghiên cứu mà còn hướng chúng tôi tìm hiểu những trường hợp tổng quát, những vấn đề liên quan có thể nảy sinh. Thêm vào đó, phong cách làm việc của thầy là tấm gương thúc đẩy chúng tôi hăng say nghiên cứu hơn. Chúng tôi xin bày tỏ lòng biết ơn chân thành đến tất cả các thầy cô, những người đã dạy dỗ, truyền đạt và trang bị cho chúng tôi nguồn tri thức khoa học rộng lớn về tự nhiên và xã hội trong những năm ngồi ở ghế giảng đường đại học. Chúng tôi xin cảm ơn các anh Trương Bảo Lo...

pdf124 trang | Chia sẻ: hunglv | Lượt xem: 1440 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Vấn đề liên quan đến NS, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
KH OA C NT T – Đ H KH TN Lời cám ơn LỜI CÁM ƠN Chúng tôi vô cùng biết ơn sự dìu dắt và hướng dẫn tận tình, chu đáo của thầy Cao Đăng Tân, trưởng bộ môn Mạng Máy Tính và Viễn Thông, trong suốt quá trình thực hiện luận văn này. Thầy luôn theo sát từng bước đi của chúng tôi, gợi mở cho chúng tôi cách thức để giải quyết các vấn đề gặp phải khi tiến hành nghiên cứu đề tài này. Thông qua các cuộc thảo luận, thầy không chỉ giúp chúng tôi hiểu rõ bản chất của một vấn đề cụ thể cần nghiên cứu mà còn hướng chúng tôi tìm hiểu những trường hợp tổng quát, những vấn đề liên quan có thể nảy sinh. Thêm vào đó, phong cách làm việc của thầy là tấm gương thúc đẩy chúng tôi hăng say nghiên cứu hơn. Chúng tôi xin bày tỏ lòng biết ơn chân thành đến tất cả các thầy cô, những người đã dạy dỗ, truyền đạt và trang bị cho chúng tôi nguồn tri thức khoa học rộng lớn về tự nhiên và xã hội trong những năm ngồi ở ghế giảng đường đại học. Chúng tôi xin cảm ơn các anh Trương Bảo Long và Nguyễn Xuân Quang, tác giả của phần mềm SoftSwitch, đã nhiệt tình giúp đỡ và đóng góp ý kiến cho luận văn. Chúng tôi cũng xin gởi lời cám ơn đến bạn bè của chúng tôi, những người đã nhiệt tình giúp đỡ chúng tôi tìm kiếm các tài liệu cần thiết cho việc nghiên cứu, đóng góp những ý kiến quý báu cho luận văn cũng như động viên, khích lệ chúng tôi trong thời gian thực hiện đề tài này. Cuối cùng, chúng tôi muốn bày tỏ lòng biết ơn sâu sắc đến những người thân trong gia đình, đặc biệt là cha mẹ của chúng tôi, vì tất cả tấm lòng yêu thương bao la và sự chăm sóc ân cần mà họ dành cho chúng tôi. 1 KH OA C NT T – Đ H KH TN Mục lục MỤC LỤC LỜI CÁM ƠN............................................................................................................1 MỤC LỤC..................................................................................................................2 BẢNG HÌNH VẼ .......................................................................................................5 TÓM TẮT LUẬN VĂN............................................................................................7 1. GIỚI THIỆU..........................................................................................................9 1.1. Những kỹ thuật cân bằng tải giữa các server .............................................10 1.1.1. Xử lý các yêu cầu kết nối tập trung ....................................................11 1.1.2. Xử lý các yêu cầu kết nối phân tán .....................................................14 1.2. Cân bằng tải trong mạng nhiều bridge/switch nối với nhau ......................20 1.2.1. Per-VLAN Spanning Tree (PVST) và PVST+...................................22 1.2.2. Multiple Spanning Tree (MST) ..........................................................24 1.2.3. EtherChannel.......................................................................................27 1.3. Cân bằng tải trong mạng gồm nhiều router kết nối với nhau.....................28 1.3.1. Routing Information Protocol (RIP) ...................................................29 1.3.2. Interior Gateway Routing Protocol (IGRP) và Enhanced IGRP (EIGRP).............................................................................................................30 1.3.3. Open Shortest Path First (OSPF) ........................................................32 1.3.4. Per destination.....................................................................................32 1.3.5. Per packet............................................................................................33 2. TỔNG QUAN VỀ LAYER 2 SWITCH ............................................................35 2.1. Giới thiệu chung .........................................................................................35 2.2. Các chức năng điển hình của layer 2 switch ..............................................36 2.2.1. Chức năng học địa chỉ.........................................................................36 2.2.2. Quyết định forward/filter ....................................................................40 2.2.3. Chống Loop ........................................................................................41 2.2.4. Virtual LAN (VLAN) .........................................................................47 2.3. Các frame được truyền đi như thế nào .......................................................48 2.4. Switch “nói chuyện” với các thiết bị khác như thế nào .............................49 2 KH OA C NT T – Đ H KH TN Mục lục 3. TỔNG QUAN VỀ CÁC CHƯƠNG TRÌNH NETWORK SIMULATOR ....52 3.1. Lý do sử dụng Simulation ..........................................................................52 3.1.1. Định nghĩa...........................................................................................52 3.1.2. Mục đích .............................................................................................52 3.1.3. Những ưu khuyết điểm của hệ thống Simulation ...............................53 3.2. Các chương trình Simulation đang được sử dụng......................................53 3.2.1. MIT's NETSIM ...................................................................................53 3.2.2. NIST....................................................................................................54 3.2.3. CPSIM.................................................................................................54 3.2.4. INSANE..............................................................................................55 3.2.5. NEST 2.5.............................................................................................55 3.2.6. REAL 5.0 ............................................................................................56 3.2.7. NS version 2.0.....................................................................................57 3.3. Network Simulator .....................................................................................58 3.3.1. Kiến trúc..............................................................................................58 3.3.2. Sơ lược các thành phần tạo mô hình...................................................60 3.3.3. Sơ lược về NAM ( Network AniMator) .............................................63 3.3.4. Một chương trình ví dụ về NS ............................................................65 4. CÁC MÔ HÌNH SOFTSWITCH VÀ KẾT QUẢ KIỂM TRA.......................71 4.1. Các mô hình SoftSwitch.............................................................................72 4.2. Kết quả kiểm tra các mô hình SoftSwitch bằng NS...................................76 4.2.1. Kết quả kiểm tra mô hình 2.................................................................76 4.2.2. Kết quả kiểm tra mô hình 3.................................................................77 4.2.3. Kết quả kiểm tra mô hình 4.................................................................78 5. CÁC MÔ HÌNH CÂN BẰNG TẢI VÀ KẾT QUẢ KIỂM TRA ....................82 5.1. Các mô hình cân bằng tải đề nghị ..............................................................82 5.1.1. Theo số thread.....................................................................................82 5.1.2. Theo priority .......................................................................................85 5.2. Kết quả kiểm tra các mô hình.....................................................................87 5.2.2. Mô hình nhiều module cân bằng tải....................................................88 5.3. Kết luận ......................................................................................................89 6. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT........................................................92 6.1. Cấu trúc dữ liệu ..........................................................................................92 6.1.1. Các hằng số được định nghĩa trong chương trình...............................92 6.1.2. Các biến toàn cục ................................................................................92 6.1.3. Cấu trúc dữ liệu cho forwarding table ................................................93 6.2. Giải thuật ....................................................................................................95 3 KH OA C NT T – Đ H KH TN Mục lục 7. ĐÁNH GIÁ VÀ KẾT LUẬN............................................................................102 7.1. Kết quả kiểm nghiệm ...............................................................................102 7.1.1. Mô hình 1 ..........................................................................................102 7.1.2. Mô hình 2 ..........................................................................................103 7.2. Kết quả đạt được ......................................................................................104 7.3. Đánh giá về chương trình SoftSwitch ......................................................104 7.3.1. Ứng dụng 1........................................................................................104 7.3.2. Ứng dụng 2........................................................................................105 7.4. Hướng mở rộng của chương trình ............................................................107 TÀI LIỆU THAM KHẢO ....................................................................................108 PHỤ LỤC...............................................................................................................111 4 KH OA C NT T – Đ H KH TN Bảng hình vẽ BẢNG HÌNH VẼ Hình 1-1 – 2-way packet rewriting ...........................................................................11 Hình 1-2 – 1-way packet rewriting ...........................................................................13 Hình 1-3 – Distributed packet rewriting ...................................................................15 Hình 1-4 – Thí dụ 1 về CST......................................................................................21 Hình 1-5 – Thí dụ 2 về CST......................................................................................22 Hình 1-6 – Thí dụ 1 về PVST và PVST+ .................................................................23 Hình 1-7 – Thí dụ 2 về PVST và PVST+ .................................................................23 Hình 1-8 – Internal Spanning Tree............................................................................26 Hình 1-9 – EtherChannel ..........................................................................................28 Hình 1-10 – Thí dụ 1 về RIP.....................................................................................29 Hình 1-11 – Thí dụ 2 về RIP.....................................................................................30 Hình 1-12 – IGRP .....................................................................................................31 Hình 2-1 – Generic Switch........................................................................................36 Hình 2-2 – Các bước học địa chỉ của Switch............................................................37 Hình 2-3 – Các bước học địa chỉ của Switch............................................................38 Hình 2-4 – Các bước học địa chỉ của Switch............................................................39 Hình 2-5 – Quyết định forward/filter ........................................................................40 Hình 2-6 – Loại bỏ Broadcast Storm ........................................................................43 Hình 2-7 – Loại bỏ truyền lặp nonbroadcast frame ..................................................44 Hình 2-8 – Loại bỏ tính không ổn định của MAC database .....................................46 Hình 3-1 - Quá trình biên dịch một tập tin *.tcl........................................................62 Hình 3-2 – Giao diện và các phím chức năng của NAM..........................................65 Hình 3-3 – Hình ảnh khi NS bắt đầu chạy. ...............................................................68 Hình 3-4 – Hình ảnh chụp được trong quá trình chạy NS .......................................69 Hình 3-5 – Khi kích chuột phải trên các packet, chọn Monitor...............................69 Hình 4-1 – Mô hình 1 của SoftSwitch ......................................................................72 Hình 4-2 – Mô hình 2 của SoftSwitch ......................................................................73 Hình 4-3 – Mô hình 3 của SoftSwitch ......................................................................74 Hình 4-4 – Mô hình 4 của SoftSwitch ......................................................................75 Hình 4-5 – Giao diện chương trình NS.....................................................................80 Hình 5-1 – Mô hình cân bằng tải Multi-thread 1-1...................................................83 Hình 5-2 – Mô hình cân bằng tải Multi-thread 1-n...................................................84 Hình 5-3 – Mô hình cân bằng tải sử dụng độ ưu tiên 1-1 .........................................85 Hình 5-4 – Mô hình cân bằng tải sử dụng độ ưu tiên 1-n .........................................86 Hình 6-1 – Mô hình cấu trúc của forwarding table...................................................93 Hình 7-1 – Mô hình PING ......................................................................................102 Hình 7-2 – Mô hình truyền file ...............................................................................103 5 KH OA C NT T – Đ H KH TN Bảng hình vẽ Hình 7-3 – Mô hình ứng dụng 1..............................................................................104 Hình 7-4 – Mô hính ứng dụng 2..............................................................................106 Hình phụ lục 1 – Giao diện chương trình................................................................112 Hình phụ lục 2 – Giao diện mô tả quá trình truyền nhận frame .............................113 Hình phụ lục 3 – MH2: Packet đi từ NIC ...............................................................113 Hình phụ lục 4 – MH2: Các packet bắt đầu đi đến Switching module...................114 Hình phụ lục 5 – MH2: Packet đang xử lý trong module Switching......................114 Hình phụ lục 6 – MH2: Packet đi ra khỏi module Switching để đến NIC .............115 Hình phụ lục 7 – MH2: Packet đến NIC.................................................................115 Hình phụ lục 8 – MH2 Drop: Packet bắt đầu đi từ NIC đến module Switching ....116 Hình phụ lục 9 – MH2 Drop: Packet đang xử lý ở module Switching, ô vuông màu xanh là packet bị drop do quá tải ....................................................................116 Hình phụ lục 10 – MH2 Drop: Packet được xử lý và đưa đến NIC........................117 Hình phụ lục 11 – MH2 Drop: Packet đến được NIC.............................................117 Hình phụ lục 12 – MH3: Packet bắt đầu di chuyển ................................................118 Hình phụ lục 13 – MH3: Sơ đồ Packet di chuyển...................................................118 Hình phụ lục 14 – MH3 Drop: Packet bắt đầu di chuyển.......................................119 Hình phụ lục 15 – MH3 Drop: Packet bị drop tại Switching do không xử lý kịp ..119 Hình phụ lục 16 – MH3 Drop: Sơ đồ di chuyển Packet .........................................120 Hình phụ lục 17 – MH4: Các packet bắt đầu di chuyển .........................................120 Hình phụ lục 18 – MH4: Sơ đồ packet di chuyển...................................................121 Hình phụ lục 19 – MH4 Drop: Packet bắt đầu di chuyển.......................................121 Hình 20 – MH4 Drop: Packet bị drop do Thread Send không xử lý kịp................122 Hình phụ lục 21 – MH4 Drop: Ban đầu thì Thread Send vẫn chưa bị quá tải, các packet vẫn đi đến đích.....................................................................................122 Hình phụ lục 22 – MH 1-N: Packet bắt đầu di chuyển...........................................123 Hình phụ lục 23 – MH 1-N: Sơ đồ các packet di chuyển .......................................123 Hình phụ lục 24 – MH 1-1: Packet bắt đầu di chuyển............................................124 Hình phụ lục 25 – MH 1-1: Sơ đồ packet di chuyển. .............................................124 6 KH OA C NT T – Đ H KH TN Tóm tắt luận văn TÓM TẮT LUẬN VĂN Yêu cầu về băng thông luôn là một vấn đề làm “đau đầu” các nhà quản trị mạng, dù rằng tốc độ của những thiết bị mạng ngày càng được cải thiện và nâng cao. Một trong các hướng giải quyết mâu thuẫn giữa nhu cầu về băng thông và băng thông thực tế của mạng truyền thông là kỹ thuật cân bằng tải. Cân bằng tải có thể được thực hiện ở các tầng 2, 3 và 4 của mô hình OSI. Hiện nay, có nhiều phương pháp được đề xuất cho phép thực hiện việc cân bằng tải giữa các collision domain (tầng 2) và giữa các broadcast domain (tầng 3, 4). Tuy nhiên, hầu như chưa có giải pháp và thiết bị nào cho phép thực hiện cân bằng tải giữa các collision domain dựa trên địa chỉ MAC. Chương 1 của luận văn này sẽ trình bày chi tiết đến các phương pháp cân bằng tải trên mạng đang được sử dụng phổ biến hiện nay. Kiến trúc, các chức năng chung cũng như cách thức nhận và truyền frame của một layer 2 switch điển hình sẽ được đề cập đến trong chương tiếp theo. Network Simulator (NS) version 2.0 là một chương trình mô phỏng hướng đối tượng, cho phép mô phỏng một mạng máy tính bao gồm các thành phần “cứng” của mạng như đường truyền, các thiết bị mạng, server, … và các hoạt động truyền thông giữa chúng. Nhóm thực hiện đề tài đã tiến hành nghiên cứu và sử dụng NS như là một môi trường mô phỏng các module “mềm” có trong một layer 2 switch, từ đó, cho phép kiểm tra và đánh giá các phương án khác nhau trong quá trình tìm ra mô hình thích hợp để giải quyết vấn đề được đặt ra. Các chương trình giả lập mạng đang được sử dụng hiện nay cũng như các vấn đề liên quan đến NS sẽ được trình bày trong chương 3 của luận văn. 7 KH OA C NT T – Đ H KH TN Tóm tắt luận văn SoftSwitch là một phần mềm cho phép biến một PC chạy hệ điều hành Linux thành một layer 2 switch đơn giản (chủ yếu đảm bảo chức năng switching), rẻ tiền nhưng rất hiệu quả về tốc độ. Các mô hình switching liên quan đến SoftSwitch được mô phỏng lại bằng NS để khẳng định các kết quả thực nghiệm là đáng tin cậy. Dựa trên những kết quả đánh giá có được thông qua việc mô phỏng nói trên, đề tài đã lựa chọn mô hình switching tốt nhất làm cơ sở cho việc đề xuất các giải pháp cân bằng tải trong một layer 2 switch. Các giải pháp này cũng được mô phỏng để lựa chọn ra một giải pháp tối ưu cho vấn đề. Cuối cùng, phần mềm tương ứng giải pháp tối ưu cho cân bằng tải trên một layer 2 switch được xây dựng trên cơ sở mở rộng phần mềm SoftSwitch. Các kết quả thử nghiệm, đánh giá và hướng phát triển của chương trình được đề cập ở chương cuối của luận văn. 8 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Chương 1 GIỚI THIỆU Ngày nay, công nghệ thông tin đã và đang đóng vai trò quan trọng trong đời sống kinh tế – xã hội của nhiều quốc gia trên thế giới, là một thành phần không thể thiếu trong một xã hội hiện đại. Nói đến công nghệ thông tin không thể không đề cập đến lĩnh vực mạng máy tính, đặc biệt là mạng Internet. Với sự phát triển mạnh mẽ và liên tục của công nghệ thông tin nói chung và công nghệ mạng nói riêng, Internet đang được sử dụng rộng rãi từ các cơ quan chính phủ, các công ty hoạt động trong nhiều lĩnh vực khác nhau cho đến các hộ gia đình. Con người ngày càng nhận thấy tầm quan trọng cũng như những lợi ích lớn lao mà mạng Internet mang lại. Internet không chỉ là kho tri thức khổng lồ trên tất cả các lĩnh vực từ khoa học kỹ thuật, văn học nghệ thuật, thiên văn học, y học, giáo dục, … cho đến âm nhạc và giải trí mà đó còn là nơi con người có thể thư giản, vui chơi sau những giờ làm việc căng thẳng. Tất cả những điều đó đã làm cho số người sử dụng Internet không ngừng tăng lên một cách chóng mặt hàng ngày hàng giờ. Sự gia tăng số người dùng trên mạng dẫn đến hệ quả tất yếu đó là sự tranh chấp tài nguyên và lưu lượng tải của mạng không ngừng tăng lên. Điều này dẫn đến mâu thuẫn giữa nhu cầu băng thông và băng thông thực tế. Đây là một vấn đề luôn được đặt ra khi thiết kế và xây dựng một mạng máy tính. Hiện nay, có nhiều giải pháp để giải quyết vấn đề này. Trong đó, cân bằng tải là một giải pháp được ưa thích và sử dụng phổ biến. Các giao thức mạng (RIP, IGRP, 9 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu OSPF,…) cũng như các thiết bị mạng hoạt động ở tầng 3, 4 (router) của mô hình OSI hiện nay đều có hỗ trợ khả năng thực hiện cân bằng tải dựa trên địa chỉ IP và chỉ số port của ứng dụng, nghĩa là cân bằng tải được thực hiện giữa các broadcast domain. Một số kỹ thuật khác như VLAN, EtherChannel, … cho phép thực hiện cân bằng tải giữa các collision domain trong một broadcast domain. Tuy nhiên, hầu như chưa có một phương pháp hay một thiết bị mạng nào cung cấp cơ chế để tiến hành cân bằng tải dựa trên từng địa chỉ MAC cụ thể. Do đó, đề tài “Xây dựng một Traffic Balancing Layer 2 trên nền SoftSwitch” được thực hiện nhằm giải quyết vấn đề được đặt ra ở trên. Phần tiếp theo của chương này sẽ trình bày các phương pháp cân bằng tải tại các tầng 2, 3 và 4 của mô hình OSI. Trong đó, mục 1.1 đề cập đến những kỹ thuật cân bằng tải giữa các server. Các cách thức để thực hiện cân bằng tải giữa các collision domain sẽ được trình bày trong mục 1.2. Cuối cùng, trong mục 1.3 sẽ là các phương pháp cân bằng tải giữa các broadcast domain. 1.1. Những kỹ thuật cân bằng tải giữa các server Cân bằng tải giữa các server (Server Load Balancing) là quá trình phân phối các yêu cầu dịch vụ đến một nhóm những server. Thực hiện cân bằng tải đối với các server là một giải pháp được chấp nhận rộng rãi để đáp ứng những yêu cầu về tính sẵn sàng và hiệu suất hoạt động của server. Trước đây, việc phân phối các yêu cầu kết nối từ client đến các server trong một cluster dựa trên Round – Robin DNS (RR – DNS). Điều này được thực hiện bằng cách ánh xạ một tên miền đơn vào nhiều địa chỉ IP khác nhau. Tuy nhiên, do những cơ chế phức tạp của giao thức DNS (vấn đề caching) nên kỹ thuật RR – DNS bộc lộ 10 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu nhiều hạn chế trong cân bằng tải và tính chịu lỗi đối với những Web Server cluster có khả năng mở rộng. Hiện nay, có 2 kỹ thuật được sử dụng phổ biến: xử lý các yêu kết nối tập trung (Centralized Connection Routing – CCR) và xử lý các yêu cầu kết nối phân tán (Distributed Connection Routing – DPR). 1.1.1. Xử lý các yêu cầu kết nối tập trung Thay vì ủy quyền cho DNS việc phân phối những yêu cầu đến các server riêng lẻ trong một cluster, phương pháp xử lý các yêu cầu kết nối tập trung (CCR) sử dụng một “router” cục bộ để thực hiện chức năng này. Hình 1-1 – 2-way packet rewriting Như được minh họa trong hình vẽ 1.1, MagicRouter hoạt động như một bảng chuyển mạch, phân phối các yêu cầu dịch vụ Web đến các node riêng lẻ trong cluster. Để thực hiện được điều này, đòi hỏi các gói tin gởi đi từ client phải 11 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu được chuyển tiếp (hay “được viết lại”) bởi MagicRouter đến một server được lựa chọn để phục vụ cho kết nối TCP từ client. Ngoài ra, các gói tin trả lời từ server cho client cũng đòi hỏi phải “được viết lại” bởi MagicRouter. Trong phương pháp này, chỉ có địa chỉ IP của “router’ được công bố thông qua DNS. Kỹ thuật packet rewritting làm cho người dùng có cảm giác như đang sử dụng một Web Server có “hiệu suất hoạt động cao”, nhưng thực sự đó là một hệ thống bao gồm một thiết bị trung tâm đóng vai trò như một thiết bị định tuyến cho toàn bộ hệ thống và một tập hợp các server nằm phía sau. Một số giải pháp khác cũng đã được nghiên cứu và phát triển dựa trên kiến trúc tương tự bao gồm: Local Director của Cisco và Interactive Network Dispatcher của IBM. Ưu điểm của phương pháp CCR đó là: • Việc định hướng lại cho các kết nối từ client đến các server thích hợp trong hệ thống là hoàn toàn trong suốt với người dùng. • Tính linh hoạt cao: khi phát hiện một node bị “chết”, local router sẽ chuyển tất cả các yêu cầu kế tiếp đến node khác đang hoạt động. Tuy nhiên, phương pháp CCR cũng còn tồn tại một số khuyết điểm sau: • Khi số kết nối từ client đến local router tăng cao, toàn hệ thống sẽ gặp tình trạng nút cổ chai (bottle-neck) ngay tại thiết bị trung tâm này. • Thiết bị trung tâm (MagicRouter) là thiết bị phần cứng đặc biệt, giá thành cao. • Khi thiết bị trung tâm bị hỏng, toàn bộ hệ thống sẽ ngưng hoạt động, do đó tính chịu lỗi thấp. • Tăng chi phí xử lý do phải “viết lại” gói tin theo cả 2 chiều từ client đến server và ngược lại. 12 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Một kiến trúc hơi khác so với kiến trúc trên, sử dụng một “TCP Router” đóng vai trò như một thiết bị hoạt động ở đầu vào, tiếp nhận các yêu cầu dịch vụ từ client, và sau đó có nhiệm vụ phân phối các yêu cầu đến các server riêng lẻ trong một cluster của hệ thống. TCP Router có 2 đặc điểm giúp phân biệt với giải pháp MagicRouter được đề cập ở trên. Thứ nhất, như được minh họa ở hình vẽ 1.2, quá trình viết lại các gói tin trả lời của server cho client được loại bỏ. Các server bên trong hệ thống sẽ trả lời trực tiếp cho client mà không cần thông qua TCP Router. Điều này đặc biệt quan trọng khi phải xử lý một lượng lớn dữ liệu. Thứ hai, TCP Router sẽ “chuyển” các kết nối đến các server dựa trên trạng thái của những server này. Điều này có nghĩa là TCP Router phải theo dõi việc định hướng lại các kết nối từ client đến server. Hình 1-2 – 1-way packet rewriting Mặc dù, kiến trúc dùng TCP Router cho phép khắc phục một phần tình trạng nút cổ chai do chỉ phải viết lại gói tin theo một chiều từ client đến server, nhưng kiến trúc này vẫn tồn tại một nhược điểm: khi TCP Router bị hỏng, toàn bộ hệ thống sẽ ngừng hoạt động. 13 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Tóm lại, kỹ thuật xử lý các yêu cầu kết nối tập trung rõ ràng đã giải quyết được vấn đề cân bằng tải trên mạng. Tuy nhiên, kỹ thuật này có tính chịu lỗi, tính sẵn sàng thấp và chi phí cao (do đòi hỏi phải có thiết bị dự phòng). Vì thế, kỹ thuật xử lý các yêu cầu kết nối phân tán được đề xuất nhằm khắc phục những nhược điểm trên. 1.1.2. Xử lý các yêu cầu kết nối phân tán Tất cả các kỹ thuật định hướng kết nối được trình bày ở trên (còn gọi là kỹ thuật Layer 4 Switching) đều sử dụng một node trung tâm để xử lý tất cả các yêu cầu đến từ client. Ngược lại, trong kỹ thuật “viết lại” gói tin phân tán (Distributed Packet Rewritting – DPR) hay còn được gọi là kỹ thuật định hướng kết nối phân tán, tất cả các host của hệ thống phân tán đều tham gia vào việc xử lý các kết nối giữa client với server (như được minh họa ở hình 1.3). Cách tiếp cận này làm tăng khả năng mở rộng cũng như tính chịu lỗi của hệ thống so với các hệ thống sử dụng router chuyên biệt nằm ở vị trí trung tâm. DPR là một kỹ thuật hoạt động ở tầng IP, cho phép một server có khả năng định hướng lại một kết nối từ client đến một server khác dựa trên mỗi gói tin đầu tiên (SYN packet) cũng như thông tin về tải (load) của các server trong hệ thống. Sử dụng thông tin này, một server trong hệ thống DPR có thể định hướng lại một kết nối đến một server khác hoặc chính bản thân server này sẽ xử lý kết nối đó. Trong trường hợp kết nối được định hướng lại, server xử lý kết nối sẽ trả lời trực tiếp cho client nhưng địa chỉ nguồn của gói tin là địa chỉ của server đã tiếp nhận yêu cầu kết nối lúc ban đầu. Mỗi server trong hệ thống DPR cung cấp cả dịch vụ Web và chức năng định tuyến. Ngoài ra, địa chỉ IP của tất cả server trong hệ thống DPR sẽ được công bố một cách tuần tự trên Internet dựa trên kỹ thuật DNS Round Robin. 14 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Hệ thống sử dụng kỹ thuật DPR có một số ưu điểm sau: • Hệ thống dễ dàng mở rộng. Khi thêm vào hệ thống một server mới, không đòi hỏi phải có phần cứng đặc biệt; ngược lại còn tận dụng được khả năng của server được thêm vào để tăng hiệu suất cũng như khả năng cung cấp dịch vụ và định tuyến kết nối của hệ thống. • Hệ thống có tính chịu lỗi cao, mềm dẻo, linh hoạt. • Quá trình định hướng lại các kết nối từ client đến server hoàn toàn trong suốt với người dùng. Kỹ thuật này vẫn còn tồn tại một khuyết điểm: tốn tài nguyên trên mỗi server do mỗi server trong hệ thống đều phải lưu danh sách các server khác trong hệ thống cũng như một bảng định tuyến các kết nối. Hình 1-3 – Distributed packet rewriting Kỹ thuật DPR hoạt động dựa trên 2 cơ chế: DPR Stateless và DPR Stateful. 15 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu 1.1.2.1. DPR Stateless: DPR Stateless không đòi hỏi bất kỳ thông tin nào khác ngoài những gì có thể được tìm thấy trong các header của mỗi gói tin được gởi đi. Cơ chế này sử dụng một hàm băm để tính ra một giá trị băm dựa trên địa chỉ IP và port number của gói tin gởi từ client để quyết định đích đến cho mỗi gói tin. IP/port của client, sau khi được tính toán bằng hàm băm, tạo ra một giá trị duy nhất làm khóa cho những yêu cầu từ client đến server. Do đó, có thể dùng hai giá trị này để định hướng lại cho những yêu cầu. Với việc lựa chọn TCP port, client đã gián tiếp lựa chọn server để phục vụ mình. Những chỉ số port tiếp theo từ cùng một client được ánh xạ vào các server khác, nhờ đó giảm bớt sự mất cân bằng do sự tràn ngập những yêu cầu từ client gây ra. DPR Stateless có ưu điểm của là dễ thực hiện, kết quả phân tải chấp nhận được, không có overhead. Tuy nhiên, việc định hướng lại cho các kết nối không thể dựa trên những nhân tố khác như: tải của server, khoảng cách, … Để khắc phục những khuyết điểm của cơ chế DPR Stateless, người ta đề xuất một cơ chế khác đó là DPR Stateful. 1.1.2.2. DPR Stateful: Theo cơ chế DPR Stateful, mỗi server lưu giữ một danh sách tất cả các server khác trong hệ thống, bao gồm: địa chỉ IP và tải hiện thời trên mỗi server, cũng như các bảng định tuyến chứa thông tin về những kết nối được định hướng đến các server khác. Theo từng khoảng thời gian xác định, mỗi server sẽ thông báo cho những server khác về tải hiện tại của nó bằng cách gởi đi các gói tin UDP Multicast hay Broadcast. 16 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Tải của mỗi server trong hệ thống có thể được tính toán dựa trên các yếu tố khác nhau như: việc sử dụng CPU, thời gian trả lời, số kết nối được định hướng lại mà server đang phục vụ, …. Tuy nhiên, các kết quả thực nghiệm cho thấy việc tính tải dựa trên số kết nối TCP đang mở trên mỗi server là hiệu quả nhất. Server đóng vai trò bộ định hướng kết nối gọi là rewriter, khi nhận được gói tin đầu tiên của dòng TCP từ client, có quyền chọn một đích đến cho kết nối này, dựa trên bảng trạng thái của những server trong hệ thống mà nó lưu giữ. Sau khi ghi nhận vào bảng định tuyến, server đóng vai trò là rewriter này sẽ chuyển tiếp các gói tin liên quan đến kết nối bằng cách viết lại địa chỉ MAC hay sử dụng kỹ thuật IP – IP encapsulation, tùy thuộc vào vị trí đích đến của gói tin trên mạng. Giải thuật cho một server khi nhận gói tin IP: Nếu (gói tin TCP và chứa cờ SYN) { Nếu (tải trên server < tải lớn nhất) Server tự xử lý Ngược lại Tạo một mục mới trong bảng định tuyến Gói tin được chuyển tiếp } Ngược lại (không chứa cờ SYN) { Nếu (kết nối được định hướng lại) Gói tin được chuyển tiếp Ngược lại Server tự xử lý } Mặc dù, DPR Stateful đã khắc phục được những khuyết điểm của DPR Stateless, nhưng nó lại làm tăng overhead, giảm băng thông trên mạng cũng như tiêu tốn tài nguyên của server cho việc lưu giữ các bảng định tuyến và thông tin về các server khác trong hệ thống. 17 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu 1.1.2.3. Phương pháp đánh địa chỉ áp dụng cho hệ thống DPR: Trong quá trình định hướng lại kết nối giữa các server trong hệ thống, có 2 phương pháp đánh địa chỉ được áp dụng: • Server đóng vai trò rewriter chỉ viết lại địa chỉ MAC của gói tin và truyền đi, giữ nguyên địa chỉ IP và checksum của gói tin. Phương pháp này hiệu quả nhất nhưng chỉ thực hiện được khi 2 server (rewriter và server phục vụ cho kết nối được định hướng lại bởi rewriter) thuộc cùng một LAN. • Đối với trường hợp rewriter server và server phục vụ kết nối được định hướng lại bởi rewriter không thuộc cùng một LAN, việc định hướng phải xảy ra ở mức IP sử dụng kỹ thuật IP – IP encapsulation: tại rewriter, gói tin đến từ client được đóng gói trong một gói tin IP khác. Gói tin này có địa chỉ IP đích (IP2) là địa chỉ của server xử lý kết nối. Khi gói tin đến server có địa chỉ IP2, header IP – IP bên ngoài bị gỡ bỏ. Header bên trong được xử lý. Khác với kỹ thuật xử lý các yêu cầu kết nối tập trung chỉ có một địa chỉ IP của thiết bị trung tâm (MagicRouter hay TCP Router) được công bố, trong kỹ thuật DPR, có nhiều hơn một địa chỉ IP được công bố trên mạng. Những địa chỉ IP này sẽ được phân giải luôn phiên đến client dựa trên kỹ thuật Round Robin DNS. 1.1.2.4. DNS Round Robin: Đây là một kỹ thuật cân bằng tải được thực hiện tại DNS Server. Để cân bằng tải trên các server, DNS Server duy trì một số địa chỉ IP khác 18 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu nhau cho một tên miền. Nhiều địa chỉ IP đại diện cho nhiều máy trong một hệ thống, tất cả chúng đều ánh xạ vào cùng một tên miền logic. Round Robin hoạt động trên cơ sở luân phiên hoán đổi địa chỉ IP cho một tên miền theo cách sau: một địa chỉ IP, trong danh sách các địa chỉ IP của một tên miền, được dùng để trả lời cho một câu truy vấn từ client. Địa chỉ này, sau đó, được đưa về cuối danh sách; địa chỉ IP của server kế tiếp sẽ được dùng để trả lời cho câu truy vấn tiếp theo và sau đó lại được đưa xuống cuối danh sách, …. Quá trình này cứ thế diễn ra, phụ thuộc vào số server đang được sử dụng. Thí dụ: có 3 server cùng chứa website www.loadbalancing.com. DNS Server sẽ chứa 3 record sau: www.loadbalancing.com IN A 200.100.10.1 www.loadbalancing.com IN A 200.100.11.1 www.loadbalancing.com IN A 200.100.12.1 Khi một client truy vấn DNS Server về website này, nếu không có chức năng DNS Round Robin: server có địa chỉ IP thứ nhất luôn luôn được dùng để phục vụ cho client. Việc sử dụng các server có địa chỉ IP thứ hai và thứ ba chỉ xảy ra khi server thứ nhất (200.100.10.1) bị hỏng. Ngược lại, nếu có chức năng DNS Round Robin: với mỗi câu truy vấn, giải thuật Round Robin xoay vòng thứ tự của các record mà DNS Server trả về cho client để cân bằng tải giữa tất cả các host: • Lần đầu, client truy vấn DNS Server, DNS Server trả về 200.100.10.1 200.100.11.1 200.100.12.1 cho client. • Lần thứ hai, DNS Server trả về 200.100.11.1 200.100.12.1 200.100.10.1 cho client. • Lần thứ ba, DNS Server trả về 200.100.12.1 200.100.10.1 200.100.11.1 cho client và cứ tiếp tục như thế. 19 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Các DNS Server hiện nay đều có hỗ trợ chức năng này. Quá trình cài đặt RR – DNS dễ dàng, chi phí thấp. Bên cạnh những ưu điểm, kỹ thuật này vẫn có những nhược điểm đó là tính chịu lỗi không cao và cân bằng tải kém. Tóm lại, việc thực hiện cân bằng tải giữa các server thực sự đã giải quyết một số yêu cầu đang ngày càng trở nên quan trọng trong các hệ thống mạng: khả năng mở rộng, hiệu suất hoạt động, tính sẵn sàng và tính chịu lỗi. 1.2. Cân bằng tải trong mạng nhiều bridge/switch nối với nhau Để đảm bảo tính sẵn sàng và hiệu suất hoạt động của mạng cao, người ta thường thiết kế các mạng có những đường truyền dư thừa. Các đường truyền này ngoài nhiệm vụ dự phòng, chúng còn có khả năng cho phép thực hiện cân bằng tải. Tuy nhiên, trong mạng Ethernet, chỉ cho phép một con đường “hoạt động” duy nhất tồn tại giữa hai switch/bridge. hiều con đường “hoạt động” giữa các switch/bridge sẽ hình thành nên các vòng loop trong mạng. Để giải quyết vấn đề này, chuẩn IEEE 802.1q định nghĩa một Common Spanning Tree (CST), nghĩa là chỉ thừa nhận một đồ hình cây duy nhất, cho toàn bộ mạng được “bắc cầu” (bridged network). Chuẩn này hoàn toàn không quan tâm đến số lượng các VLAN có trong mạng. Nếu trên mạng có nhiều con đường có thể dùng để phân tải luồng dữ liệu của các VLAN, CST sẽ vô hiệu một số con đường truyền dữ liệu dư thừa đó nhờ vào Spanning Tree Protocol (STP). Xét 2 thí dụ sau: • Thí dụ 1: cho một mạng gồm có 3 bridge nối kết với nhau và có 1000 VLAN như hình vẽ 1.4 bên dưới: 20 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Hình 1-4 – Thí dụ 1 về CST Nếu CST được áp dụng vào đồ hình trên để xác định một “cây” chung cho toàn mạng, ta sẽ được kết quả như sau: o Con đường trực tiếp đi từ A đến D2 và ngược lại bị khóa để chống loop. o Luồng dữ liệu của tất cả VLAN từ 1 đến 1000 từ A đều phải đi qua D1 để đến D2 và ngược lại. • Thí dụ 2: cho một mạng gồm có 3 switch nối kết với nhau. Trong mạng có 2 VLAN với ID 10 và 20. Sw1 có 2 VLAN 10 và 20 được gán vào 2 port duy nhất trên switch để 2 luồng dữ liệu của VLAN 10 và 20 “chảy” trên hai con đường riêng biệt như được minh họa ở hình 1.5. Giả sử mạng chạy CST và Sw3 được chọn làm root bridge, STP sẽ khóa con đường giữa Sw1 và Sw2. Khi điều này xảy ra, luồng dữ liệu từ VLAN 20 không thể truyền đi trên mạng. 21 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Hình 1-5 – Thí dụ 2 về CST Do vậy, một mạng chạy CST không có khả năng cân bằng tải. Để giải quyết vấn đề trên, Cisco đã đề ra giải pháp Per-VLAN Spanning Tree (PVST) và PVST+. 1.2.1. Per-VLAN Spanning Tree (PVST) và PVST+ Trong giải pháp PVST và PVST+, mỗi VLAN tương ứng với một Spanning Tree. Do đó, mỗi VLAN có một đồ hình không loop riêng của nó. Xét lại thí dụ 1 ở mục 1.2, mỗi VLAN từ 1 – 1000 có một thể hiện Spanning Tree (ST Instance – STI). Các Spanning Tree của những VLAN từ 1 đến 500 lấy D1 làm root bridge, khóa đường truyền giữa A và D2. Các Spanning Tree của những VLAN từ 501 đến 1000 lấy D2 làm root bridge, khóa đường truyền giữa A và D1. Khi đó, luồng dữ liệu của 1000 VLAN sẽ được phân đôi theo 2 con đường khác nhau (hình vẽ 1.6). Mặc dù, thực sự chỉ có 2 đồ hình logic khác nhau nhưng số STI là 1000. Đây cũng chính là một khuyết điểm của giải pháp này. 22 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Hình 1-6 – Thí dụ 1 về PVST và PVST+ Xem lại thí dụ 2 ở mục 1.2, nếu VLAN 10 được gán cho STI1 và VLAN 20 được gán cho STI2 (như hình vẽ 1.7), mạng sẽ có hai đồ hình Spanning Tree riêng biệt. Sw3 sẽ trở thành root bridge của thể hiện 1 và sẽ khóa đường kết nối giữa Sw1 và Sw2. Tuy nhiên, không giống như trường hợp mạng chạy CST, luồng dữ liệu từ VLAN 20 có thể truyền đi trên mạng. Điều này xảy ra là do STI2 chọn Sw2 làm root bridge cho đồ hình Spanning Tree của nó và khóa đường truyền giữa Sw1 và Sw3, không cho luồng dữ liệu từ VLAN 20 đi qua. Hình 1-7 – Thí dụ 2 về PVST và PVST+ 23 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Ưu điểm của giải pháp PVST và PVST+ chính là khả năng cân bằng tải và tận dụng các đường truyền dư thừa trong mạng. Tuy nhiên, khi số lượng VLAN trong mạng nhiều, việc tính toán các Spanning Tree cho từng VLAN sẽ dẫn đến sự quá tải trên CPU của switch, kèm theo đó là sự tăng lưu lượng mạng do mỗi STI gởi đi BPDU của riêng nó. Chính vì thế, tổ chức IEEE đã đưa ra giải pháp Multiple Spanning Tree (IEEE 802.1s) để khắc phục những khuyết điểm của PVST và PVST+. 1.2.2. Multiple Spanning Tree (MST) MST kết hợp được những ưu điểm của cả PVST+ và IEEE 802.1q (CST). Trong các mạng chạy MST, mỗi VLAN có một đồ hình riêng và một STI có thể được chia sẻ bởi nhiều VLAN. Do đó, số lượng STI ít hơn số VLAN thực có trong mạng. Mỗi một “cây” được gọi là một MST Instance (MSTI). Xét lại thí dụ 1 ở mục 1.2, khi mạng chạy MST, các VLAN từ 1 đến 500 được ánh xạ vào một Spanning Tree và các VLAN từ 501 đến 1000 được ánh xạ vào một Spanning Tree khác. Lưu ý rằng bây giờ chỉ có 2 đồ hình “cây” được duy trì, trong khi con số này khi chạy PVST+ là 1000. Mặc dù, MST là một giao thức mới và phức tạp nhưng nó cho phép các mạng thực hiện cân bằng tải, đồng thời tính chịu lỗi của mạng cao cũng như ít hao tốn tài nguyên CPU của switch dùng cho việc tính toán các instance. Phần tiếp theo sẽ trình bày các khái niệm liên quan đến MST như MST Region, Internal Spanning Tree và Multiple Spanning Tree Instance. Chúng có những đặc điểm gì? Hoạt động ra sao? 24 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu 1.2.2.1. MST Region: Có thể hiểu một MST Region tương tự như một hệ tự trị (autonomous system – AS); đó là một nhóm các switch được đặt dưới một chính sách quản trị chung. Mỗi MST bridge/switch phải có thể quản lý ít nhất 2 loại thể hiện: Internal Spanning Tree (IST) và một hay nhiều MSTI. Và một MST Region có tối đa 16 instance: một IST và 15 MSTI. Mỗi switch chạy MST trong mạng đều có một cấu hình MST, gồm 3 thuộc tính sau: o Tên của cấu hình (bao gồm cả chữ và số), độ lớn 32 byte. o Số revision của cấu hình, độ lớn 2 byte. o Một bảng gồm 4096 phần tử ứng với 4096 VLAN có thể được cho phép tạo ra trên switch. Bảng này dùng để xác định những VLAN nào thuộc MSTI nào. Những switch thuộc cùng một MST Region sẽ có chung thông tin cấu hình. 1.2.2.2. Internal Spanning Tree (IST): IST được sử dụng để cho phép một MST Region có khả năng tương tác với các vùng (region) khác sử dụng CST (IEEE 802.1q). IST đại diện cho toàn bộ MST Region như là một bridge (switch) ảo chạy CST để “giao tiếp” với bên ngoài. Nói cách khác, IST chính là đồ hình “hoạt động” duy nhất của toàn bộ MST Region mà bên ngoài có thể nhận biết. 25 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Thí dụ, xét hình minh họa 1.8 bên dưới. Trong một mạng “bắc cầu” điển hình, bạn sẽ mong đợi thấy một port bị khóa giữa 2 switch M và B. Thay vì khóa đường đi trên port của D, bạn sẽ mong đợi “loại bỏ” loop thứ 2 trong mạng bằng cách khóa một port ở một vị trí nào đó ở giữa MST Region. Tuy nhiên, do IST, toàn bộ region xuất hiện như một bridge ảo chạy CST. Do đó, bridge ảo khóa con đường thứ hai tới root bridge thông qua một port trên switch B. Cũng tương tự như vậy, bridge ảo đó có đường đi từ C đến D. Điều này dẫn đến switch D khóa port của nó. Hình 1-8 – Internal Spanning Tree 1.2.2.3. Multiple Spanning Tree Instance (MSTI): MSTI chỉ tồn tại bên trong một MST Region và không bao giờ tương tác cũng như gởi BPDU ra bên ngoài MST Region chứa nó. Chỉ có IST “đại diện” cho toàn bộ MST Region thực hiện điều này. 26 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Không giống như mạng chạy CST, trong MST Region, hai phía của đường truyền có thể gởi và nhận BPDU cùng lúc. Các MSTI BPDU không chứa các tham số về thời gian như: hello time, forward delay và max age như thường được tìm thấy trong những CST BPDU. Instance duy nhất trong MST Region sử dụng các tham số này là IST. MSTI dựa vào IST để truyền đi thông tin của chúng; do đó, chúng không cần các tham số thời gian đó. Một kỹ thuật khác cho phép cân bằng tải giữa các collision domain là EtherChannel. Đây là một kỹ thuật được nghiên cứu và phát triển bởi Cisco. 1.2.3. EtherChannel EtherChannel cho phép những đường truyền song song nối 2 node trên mạng được STP xem như là một đường logic. Các đường truyền được gom lại thành một “bó” (bundle). Nếu một đường truyền trong bundle “chết”, luồng dữ liệu trên đường truyền đó sẽ được định tuyến lại trên một đường khác trong khoảng thời gian vài miligiây. Kỹ thuật EtherChannel cho phép tích hợp 2, 4 hoặc 8 link và có thể cân bằng tải dựa trên địa chỉ MAC (Layer 2), địa chỉ IP (Layer 3), hoặc giá trị TCP port (Layer 4). Hình 1.9 minh họa quá trình cân bằng tải dựa trên địa chỉ MAC sử dụng kỹ thuật EtherChannel. Cách thức phục hồi lỗi trên một đường truyền (link) trong bundle: khi phát hiện một link trong bundle bị hư, bộ kiểm soát bó (Ethernet Bundle Controller – EBC) thông báo cho mạch logic nhận biết địa chỉ mở rộng (Enhanced Address Recognition Logic – EARL) về link bị hư. EARL sẽ xóa tất cả các mục liên quan đến những địa chỉ học được trên link đó. Điều này 27 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu cho phép EBC và EARL xác định lại bằng phần cứng cặp địa chỉ nguồn và đích trên một link khác. Hình 1-9 – EtherChannel Trên đây là các giải pháp cân bằng tải giữa các collision domain trong một mạng. Còn đối với một mạng diện rộng, tồn tại rất nhiều con đường để đi từ một đường mạng này đến một đường mạng khác, vấn đề đặt ra là có thể thực hiện cân bằng tải giữa các broadcast domain hay không để có thể tận dụng được băng thông của các đường truyền nhằm tăng hiệu suất mạng? Các giao thức cũng như các thiết bị mạng hoạt động ở tầng 3 của mô hình OSI hiện nay đều hỗ trợ khả năng cân bằng tải để đảm bảo hiệu suất hoạt động cũng như tính sẵn sàng của mạng. Phần cuối của chương này sẽ đề cập đến các phương pháp cân bằng tải được thực hiện ở tầng 3. 1.3. Cân bằng tải trong mạng gồm nhiều router kết nối với nhau Hiện nay, có rất nhiều giao thức hoạt động tại tầng 3 của mô hình OSI hỗ trợ việc cân bằng tải trên mạng. Dưới đây là một số giao thức điển hình: 28 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu 1.3.1. Routing Information Protocol (RIP) RIP là một giao thức định tuyến distance vector. Mectric của các con đường được tính bằng “hop count”, nghĩa là số router mà một gói tin phải đi qua để đến đích. Số hop count tối đa được phép là 15. RIP có khả năng thực hiện cân bằng tải trên các con đường có metric bằng nhau. Và số con đường tối đa được phép thực hiện cân bằng tải là 6 (giá trị mặc định là 4). Hiện nay, có 2 phiên bản là RIP version 1 (RIP – 1) và RIP – 2. Ưu điểm của RIP là đơn giản và dễ cấu hình. Tuy nhiên, đối với các mạng sử dụng RIP làm giao thức định tuyến, việc lựa chọn đường đi cho các gói tin và cân bằng tải không được tối ưu, do metric được xác định bằng hop count. Thí dụ, xét sơ đồ mạng như hình minh họa 1.10. RIP xác định metric của các con đường dựa trên hop count, do đó, các gói tin sẽ được truyền trên đường serial backup có băng thông 19.2 kbps thay vì đường T1. Trường hợp sơ đồ mạng như hình vẽ 1.11, đường backup và đường T1 có giá trị metric bằng nhau. Điều này cho phép load sharing trên 2 con đường. Mặc dù hai con đường có băng thông khác nhau nhưng số gói tin được phân phối trên 2 con đường lại như nhau. Hình 1-10 – Thí dụ 1 về RIP 29 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Hình 1-11 – Thí dụ 2 về RIP 1.3.2. Interior Gateway Routing Protocol (IGRP) và Enhanced IGRP (EIGRP) IGRP và EIGRP đều là các giao thức định tuyến distance vector, được phát triển bởi Cisco. Hai giao thức này tự động cân bằng tải trên các con đường có metric bằng nhau. Metric trong IGRP và EIGRP được tính toán dựa trên băng thông, độ trễ, tải, độ tin cậy, và MTU (mặc định là băng thông và độ trễ). Hơn nữa, IGRP và EIGRP còn có khả năng thực hiện cân bẳng tải trên các con đường có metric không bằng nhau. Những con đường có metric nằm trong khoảng được định nghĩa trước, từ metric “xấu nhất” có thể chấp nhận được cho đến metric “tốt nhất” (metric nhỏ nhất), sẽ được xem xét để tham gia vào “nhóm” các con đường thực hiện load sharing. Chúng cho phép thực hiện cân bằng tải tối đa trên 6 con đường (mặc định là 4). Việc cân bằng tải có thể dựa theo từng đích đến hoặc dùng kỹ thuật round robin, tùy thuộc vào bộ chuyển mạch trong router. Trong khi đường kính mạng của RIP tối đa chỉ là 15 hop, IGRP/EIGRP cho phép mạng có đường kính lên tới 255 hop. Các gói tin trên mạng sử dụng IGRP và EIGRP được phân phối theo tỉ lệ nghịch với metric của những đường truyền cho phép cân bằng tải nên việc cân bằng tải được thực hiện tối ưu. 30 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu IGRP và EIGRP là những giao thức độc quyền được phát triển bởi Cisco nên chỉ được áp dụng giới hạn cho những sản phẩm của Cisco. Thí dụ, xét một mạng như hình 1.12. Để đi từ router F đến network A, con đường đi qua router C và G có metric nhỏ nhất (10). Giả sử muốn thực hiện cân bằng tải giữa các con đường có metric nằm trong khoảng từ 10 đến 20, giá trị X sẽ được xác định bằng 2. Kết quả là những con đường có metric nằm trong khoảng từ 10 đến 10*2 sẽ được đưa vào bảng định tuyến để thực hiện cân bằng tải. Đó là 3 con đường: F -> D -> B (15), F -> C -> B (15) và F -> C -> G (10). Tương ứng với mỗi gói tin được gởi trên hai con đường có metric bằng 15, có 2 gói tin được gởi trên con đường có metric bằng 10. Hình 1-12 – IGRP 31 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu 1.3.3. Open Shortest Path First (OSPF) OSPF là một giao thức định tuyến link state, được phát triển bởi IETF. OSPF sử dụng thuật toán Dijkstra để xây dựng bảng định tuyến và thực hiện cân bằng tải trên các con đường có metric bằng nhau, tối đa là 6 con đường. Metric của các con đường trên mạng chạy OSPF được xác định dựa trên “giá thành” (cost), đó là một phép tính phức tạp dựa trên nhiều yếu tố. Hiện nay, OSPF được sử dụng phổ biến trong các mạng diện rộng bởi vì những ưu điểm như: không bị giới hạn về đường kính của mạng, khả năng hội tụ nhanh, metric được tính toán dựa trên nhiều yếu tố nên việc cân bằng tải được thực hiện tốt hơn so với RIP và mỗi router đều có một sơ đồ về toàn mạng. Mặc dù vậy, các mạng sử dụng OSPF phức tạp trong thiết kế, cấu hình và bảo trì. Việc cân bằng tải mạng của các giao thức định tuyến như OSPF, RIP, IGRP, … được trình bày ở trên, đều dựa theo 1 trong 2 phương pháp phân phối gói tin: theo địa chỉ đích (per destination) hoặc theo từng gói tin (per packet). 1.3.4. Per destination Phương pháp cân bằng tải theo từng đích phân phối tải mạng dựa vào địa chỉ đích đến của gói tin. Giả sử có 2 con đường để đi đến cùng một mạng. Khi đó, tất cả gói tin có cùng một địa chỉ đích đến nào đó, thuộc mạng này, có thể “di chuyển” trên con đường thứ nhất; tất cả gói tin có cùng địa chỉ đích đến thứ hai (khác địa chỉ đầu), cũng thuộc mạng này, có thể “di chuyển” trên con đường thứ hai; tất cả gói tin có cùng đích đến thứ ba có thể lại được truyền đi trên con đường thứ nhất, và cứ thể tiếp tục. Phương pháp này còn được gọi là fast switching. 32 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Hoạt động: khi một router chuyển gói tin đến một đích cụ thể, việc tra cứu bảng định tuyến được thực hiện và một interface được lựa chọn như là ngõ ra cho gói tin. Sau đó, router tìm ra thông tin tầng data-link cần thiết dùng để đóng khung (frame) gói tin (thí dụ, từ bộ đệm ARP), tiếp theo, gói tin được đóng gói và truyền đi. Thông tin về tầng data-link và con đường được lựa chọn được đưa vào bộ đệm fast switching. Khi những gói tin tiếp theo có cùng đích đến đi vào router, thông tin trong bộ đệm sẽ cho phép router ngay lập tức chuyển gói tin đi mà không cần thực hiện tra cứu bảng định tuyến và bộ đệm ARP nữa. 1.3.5. Per packet Cân bằng tải dựa trên từng gói tin nghĩa là một gói tin được gởi đến một đích nào đó trên một đường truyền, gói tin tiếp theo có cùng đích đến được gởi đi trên đường truyền kế tiếp, và cứ thế tiếp tục, giả sử những con đường có giá thành bằng nhau (equal-cost). Nếu các con đường có giá thành không bằng nhau (unequal-cost), cân bằng tải có thể là: cứ một gói tin được gởi đi trên một đường truyền có giá thành cao thì có 3 gói tin được gởi đi trên đường truyền có giá thành thấp, hay có thể dựa theo tỉ lệ về giá thành của các đường truyền. Phương pháp này còn được gọi là process switching. Process switching đơn giản có nghĩa là: đối với tất cả các gói tin, router đều thực hiện việc tra cứu bảng định tuyến, lựa chọn interface, và sau đó là tìm kiếm thông tin tầng data-link. Do mỗi quyết định định tuyến độc lập với mỗi gói tin, tất cả gói tin đi đến cùng một đích không bị “bắt buộc” sử dụng cùng một interface làm ngõ ra. 33 KH OA C NT T – Đ H KH TN Chương 1 Giới Thiệu Tóm lại, chương 1 đã trình bày các giải pháp liên quan đến kỹ thuật cân bằng tải ở các tầng khác nhau của mô hình OSI. Để đảm bảo một mạng có thể hoạt động với hiệu suất cao và có tính chịu lỗi, đòi hỏi nhà quản trị mạng phải biết kết hợp các giải pháp cân bằng tải ở mỗi tầng cho phù hợp với kiến trúc mạng của mình. Trong chương tiếp theo, các vấn đề liên quan đến kiến trúc và các chức năng chung của một layer 2 switch sẽ được đề cập đến. 34 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Chương 2 TỔNG QUAN VỀ LAYER 2 SWITCH 2.1. Giới thiệu chung Ethernet switch hoạt động tại tầng 2 (data-link) của mô hình OSI. Trong switch, việc chuyển frame được xử lý bởi thiết bị phần cứng đặc biệt, được gọi là “những mạch tích hợp ứng dụng chuyên biệt” (application-specific intergrated circuits – ASICs). Công nghệ ASIC cho phép một con chip silicon được lập trình nhằm thực hiện một chức năng riêng biệt. Công nghệ này cho phép các chức năng được thực hiện với tốc độ nhanh hơn gấp nhiều lần so với tốc độ của một con chip được lập trình bằng phần mềm. Do đó, switch xử lý các frame nhanh hơn bridge. Dựa vào công nghệ ASIC, switch cung cấp khả năng mở rộng mạng lên tốc độ gigabit với độ trễ thấp. Tương tự như bridge, switch phân đoạn mạng thành nhiều collision domain (miền đụng độ). Các layer 2 switch có 3 chức năng chính sau: học địa chỉ (address learning), lọc/chuyển tiếp gói tin (filtering/ forwaring) và chống loop (loop advoidance). Phần tiếp theo, mục 2.2, sẽ trình bày chi tiết các chức năng chung của một layer 2 switch. 35 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Hình 2-1 – Generic Switch 2.2. Các chức năng điển hình của layer 2 switch Các chức năng switching tương tự như những chức năng được cung cấp bởi Ethernet bridge: • Một Ethernet switch “học” địa chỉ MAC của các thiết bị được gắn vào mỗi port của nó. Những ánh xạ “địa chỉ - port” được lưu trữ trong một hệ cơ sở dữ liệu địa chỉ MAC (MAC database). • Khi một Ethernet switch nhận một frame, nó tiến hành tra cứu trong MAC database để quyết định port nào có thể đi đến máy trạm được xác nhận là đích đến của frame. Nếu địa chỉ đích được tìm thấy, frame được truyền lại đến duy nhất port đó. • Khi một mạng chuyển mạch (switched-network) có nhiều vòng loop để tạo khả năng dư thừa trong mạng, một Ethernet switch sẽ ngăn không cho các loop này làm nghẽn mạng, nhưng vẫn cho phép các con đường dự phòng tồn tại dựa vào việc cấu hình Spanning Tree trên switch. 2.2.1. Chức năng học địa chỉ Một Ethernet switch “học” địa chỉ và hoạt động như một bridge trong suốt. Switch duy trì một bảng địa chỉ MAC (MAC address table) dùng để theo dõi 36 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch vị trí của những thiết bị được kết nối vào switch. Sau đó, nó sử dụng bảng này để quyết định những gói tin nào cần được chuyển đến các segment khác. Lưu ý rằng vào lúc mới khởi chạy, switch không biết các host trên mạng nằm ở những segment nào như được minh họa ở hình 2.2. Hình 2-2 – Các bước học địa chỉ của Switch Mục đích của switch là phân đoạn luồng dữ liệu trên mạng để các gói tin được gởi đến một host trong một collision domain nào đó không truyền đi trên một segment khác. Điều này thực hiện được là nhờ “việc học” của switch về vị trí các host trên mạng. Quá trình forwarding và learning của switch được mô tả dưới đây: • Khi một switch lần đầu được khởi chạy, bảng địa chỉ MAC của switch hoàn toàn rỗng, như hình 1. • Với một bảng địa chỉ MAC rỗng, switch không thể đưa ra bất kỳ quyết định nào về forwarding và filtering các gói tin dựa trên địa chỉ đích, do đó, switch phải chuyển mỗi frame đến tất cả các port ngoại trừ port mà switch đã nhận frame. • Việc chuyển một frame đến tất cả các port được gọi là flooding frame. 37 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch • Flooding là một phương pháp truyền dữ liệu kém hiệu quả nhất trên switch bởi vì nó tiêu tốn băng thông không cần thiết cho việc truyền frame trên các segment mà frame không cần thiết đến. • Do switch xử lý luồng dữ liệu cho nhiều segment tại cùng một thời điểm nên switch bổ sung một bộ nhớ đệm để nó có thể nhận và truyền các frame một cách độc lập trên mỗi port hay segment. Để hiểu về quá trình “học” của switch, xem hình 2.3. Hình này minh họa quá trình truyền dữ liệu giữa 2 trạm làm việc nằm trên các segment khác nhau. Hình 2-3 – Các bước học địa chỉ của Switch Ở hình 2.3, máy trạm A với địa chỉ MAC là 0260.8c01.1111 muốn gởi dữ liệu đến máy trạm C với địa chỉ MAC là 0260.8c01.2222. Switch nhận được frame này và thực hiện các tác vụ sau: Bước 1: frame ban đầu được nhận vào từ một interface Ethernet vật lý và được lưu vào bộ nhớ đệm tạm thời. Bước 2: do switch không biết interface nào nối nó với máy trạm đích của frame nên nó bắt buộc phải flood frame đến tất cả các port khác. 38 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Bước 3: khi flood frame từ máy trạm A, switch học địa chỉ nguồn của frame và kết buộc nó với port E0 tạo thành một mục (entry) mới trong bảng địa chỉ MAC. Bước 4: một entry trong bảng địa chỉ MAC được cache. Nếu entry này không được “làm tươi” bởi một frame mới đi qua switch trong một khoảng thời gian giới hạn, entry này sẽ bị loại bỏ khỏi bảng địa chỉ MAC. Hình 2-4 – Các bước học địa chỉ của Switch Switch và bridge hoạt động hiệu quả là nhờ vào quá trình học địa chỉ. Khi các máy trạm tiếp tục gởi frame đến một máy trạm khác, quá trình học địa chỉ lại tiếp tục diễn ra, như được minh họa ở hình 2.4. Ở hình 2.4, máy trạm D với địa chỉ MAC 0260.8c01.4444 gởi thông tin đến máy trạm C với địa chỉ MAC 0260.8c01.2222. Switch thực hiện một số tác vụ sau: Bước 1: địa chỉ nguồn, 0206.8c01.4444, được thêm vào bảng địa chỉ MAC. Bước 2: địa chỉ đích của frame được truyền đi, máy trạm C, được đối chiếu với các entry trong bảng địa chỉ MAC. 39 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Bước 3: khi phần mềm xử lý thông báo không có ánh xạ “port-địa chỉ MAC” nào tồn tại cho địa chỉ đích này, frame được flood đến tất cả các port ngoại trừ port mà từ đó frame được nhận. Bước 4: khi máy trạm C gởi ngược trở về máy trạm A, switch cũng học được địa chỉ MAC của máy trạm C, tại port E2. Bước 5: do tất cả các máy trạm đều gởi frame dữ liệu trong khoảng thời gian sống của các entry trong bảng địa chỉ MAC, nên một bảng địa chỉ MAC đầy đủ về các máy trạm được xây dựng. Những entry này, sau đó, được sử dụng cho việc đưa ra các quyết định forwarding và filtering thông minh. 2.2.2. Quyết định forward/filter Khi switch nhận một frame, quá trình đưa ra quyết định diễn ra như sau: Hình 2-5 – Quyết định forward/filter • Nếu thiết bị đích nằm trên cùng segment với frame, switch ngăn chặn không cho frame đi đến các segment khác. Quá trình này được gọi là “lọc” frame – filtering. 40 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch • Nếu thiết bị đích nằm trên segment khác, switch chuyển frame đến segment thích hợp. quá trình này được gọi là forwarding. • Nếu switch không biết địa chỉ đích của frame, switch chuyển frame đến tất cả các segment ngoại trừ segment mà từ đó switch nhận được frame. Quá trình này được gọi là flooding. Ở hình 2.5, máy trạm A gởi một frame đến máy trạm C. Khi địa chỉ MAC đích (địa chỉ MAC của C) tồn tại trong bảng địa chỉ MAC, switch truyền lại frame này chỉ trên port được tương ứng với C. Quá trình máy trạm A gởi một frame đến máy trạm C diễn ra như sau: Bước 1: địa chỉ đích MAC của frame được truyền, 0260.8c.1.2222, được đối chiếu với các entry trong bảng địa chỉ MAC. Bước 2: khi switch quyết định rằng địa chỉ MAC đích có thể đi tới thông qua port E2, nó truyền lại frame đến duy nhất port này. Bước 3: switch không truyền lại frame trên port E1 hay E3 nhằm tiết kiệm băng thông trên các đường truyền này. Hành động này được gọi là frame filtering (lọc frame). Switch không bao giờ học địa chỉ multicast hay broadcast bởi vì những địa chỉ multicast hay broadcast không bao giờ xuất hiện như là địa chỉ nguồn của một frame. 2.2.3. Chống Loop Chức năng thứ 3 của switch là chống loop. Những mạng bắc cầu (bridged network), bao gồm cả những mạng chuyển mạch (switched network), thường được thiết kế với những đường truyền và thiết bị dư thừa. Những thiết kế như 41 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch vậy giúp loại trừ khả năng xảy ra sự hỏng hóc tại một điểm (a single point of failure) có thể dẫn đến kết quả toàn bộ switched network bị “sụp”. Mặc dù những thiết kế có độ dư thừa loại trừ khả năng “một điểm lỗi”, nhưng chúng lại đặt ra một số vấn đề cần phải được xem xét: • Nếu không có một dịch vụ chống loop nào đó hoạt động, switch sẽ flood các gói tin broadcast vô tận. Tình trạng này thường được gọi là bridge loop. Việc truyền liên tục các gói tin broadcast này theo vòng loop tạo ra một “cơn bão broadcast” (broadcast storm), điều này làm cho băng thông bị tiêu tốn lãng phí và ảnh hưởng rất xấu đến hiệu suất của mạng. • Nhiều bản sao của các frame không phải là broadcast có thể được phân phát đến các máy trạm đích. Nhiều giao thức chỉ “mong chờ” nhận chỉ một bản sao đơn của mỗi lần truyền. Nhiều bản sao của cùng một frame có thể gây ra các lỗi không thể phục hồi. • Tính không ổn định trong nội dung của bảng địa chỉ MAC là do các bản sao của cùng một frame được nhận trên các port khác nhau của switch. Việc chuyển tiếp dữ liệu có thể không thực hiện được khi switch sử dụng các nguồn tài nguyên để giải quyết sự thay đổi liên tục trong bảng địa chỉ MAC. Những phần sau đây chỉ ra khả năng chống loop của switch có thể giải quyết những vấn đề nêu trên như thế nào. 42 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch 2.2.3.1. Loại bỏ broadcast storm Hình 2-6 – Loại bỏ Broadcast Storm Một broadcast storm xảy ra mà nguyên nhân có thể là do một NIC card bị hư, một mạng được thiết kế tồi, hay là do một bridging/switching loop. Broadcast storm được minh họa trong hình 2.6 xảy ra theo một chuỗi các sự kiện sau: Bước 1: khi host X gởi đi một broadcast frame, frame được nhận bởi switch A. Bước 2: switch A kiểm tra trường địa chỉ đích trong frame và quyết định frame phải được flood trên đường truyền Ethernet bên dưới, Segment 2. Bước 3: khi bản sao của frame này đến switch B, quá trình xử lý frame lặp lại, và một bản sao khác của frame được truyền trên đường truyền Ethernet bên trên, Segment 1. 43 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Bước 4: do bản sao đầu tiên của frame đến switch B trên Segment 1 vào một thời điểm nào đó sau khi frame được nhận bởi switch A, nên nó cũng sẽ được chuyển đi bởi switch B trên Segment 2. Những frame này, do đó, sẽ đi trong vòng loop theo cả 2 hướng thậm chí sau khi máy trạm đích đã nhận một bản sao của frame. Giải pháp chống loop bằng cách ngăn không cho 1 trong 4 interface truyền hay nhận frame trong suốt thời gian hoạt động bình thường sẽ giúp giải quyết vấn đề này. Việc thực thi giao thức Spanning Tree trên switch sẽ giúp thực hiện được điều này. 2.2.3.2. Loại bỏ việc truyền lặp lại các nonbroadcast frame Các bước sau đây dẫn chứng cho việc truyền lặp lại nhiều lần xảy ra như thế nào (xem hình 2.7): Hình 2-7 – Loại bỏ truyền lặp nonbroadcast frame 44 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Bước 1: khi host X gởi một unicast frame đến router Y, router Y nhận một bản sao thông qua kết nối Ethernet trực tiếp, Segment 1. Cũng vào khoảng thời gian đó, switch A nhận một bản sao và đặt nó vào trong buffer. Bước 2: nếu switch A kiểm tra trường địa chỉ đích trong frame và không tìm thấy entry nào trong bảng địa chỉ MAC tương ứng với router Y, switch A flood frame ra tất cả các port ngoại trừ port mà frame đã đi đến. Bước 3: khi switch B nhận được một bản sao của frame từ switch A trên segment 2, switch B cũng chuyển một bản sao của frame trên segment 1 nếu không có entry nào trong bảng địa chỉ MAC cho router Y. Bước 4: router Y nhận một bản sao nữa của cùng một frame lần thứ 2. Giải pháp chống loop bằng cách ngăn không cho 1 trong 4 interface truyền hay nhận frame trong suốt thời gian hoạt động bình thường của switch sẽ giúp giải quyết vấn đề này. Đây là một chức năng khác của giao thức Spanning Tree. 2.2.3.3. Loại bỏ tính không ổn định của MAC database Tính không ổn định của MAC database là kết quả khi nhiều bản sao của một frame đến trên nhiều port khác nhau của một switch (xem hình 2.8). Ở hình 2.8, con đường dư thừa trên mạng không chạy Spanning Tree sẽ tạo nên tính không ổn định của MAC database. Điều này xảy ra là do các sự kiện sau đây xảy ra: 45 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Bước 1: host X gởi một unicast frame đến router Y. Bước 2: địa chỉ MAC của router Y không được học bởi bất kỳ switch nào. Bước 3: switch A và B học địa chỉ MAC của host X trên port 0. Bước 4: frame có đích là router Y được flood trên mạng. Bước 5: switch A và B học lại sai địa chỉ MAC của host X trên port 1. Hình 2-8 – Loại bỏ tính không ổn định của MAC database Tùy thuộc vào kiến trúc bên trong của switch mà nó có thể hoặc không thể giải quyết tốt sự thay đổi nhanh chóng trong MAC database của nó. Trong trường hợp này, giải pháp chống loop bằng cách ngăn không cho một trong bốn interface nhận hay truyền frame trong thời gian hoạt động bình thường của switch giúp giải quyết vấn đề này. Đảm bảo tính ổn định của MAC database là một chức năng khác của giao thức Spanning Tree. 46 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Bản chất và chức năng của một mạng bắc cầu hay chuyển mạch là cung cấp các dịch vụ mạng nâng cao dựa trên việc phân đoạn mạng thành nhiều collision domain. Tuy nhiên, mạng bridged/switched vẫn là một broadcast domain. Việc kiểm soát quá trình truyền các gói tin broadcast trên mạng là vấn đề hết sức quan trọng. Do đó, switch cung cấp một phương pháp để phân chia một broadcast domain được gọi là mạng LAN ảo (virtual LAN – VLAN). Một VLAN được định nghĩa như là một broadcast domain. 2.2.4. Virtual LAN (VLAN) Những lợi ích của VLAN: tính bảo mật, sự phân đoạn mạng, tính linh hoạt. VLAN cho phép nhóm những người dùng trong một broadcast domain mà không quan tâm đến vị trí vật lý của họ trong mạng. Tạo ra các VLAN giúp nâng cao hiệu suất và độ bảo mật trong mạng chuyển mạch do kiểm soát được việc truyền broadcast. Một VLAN là một miền broadcast logic, có thể trải ra trên nhiều LAN segment vật lý. Mỗi port của switch được gán vào duy nhất một VLAN. VLAN cho phép các switch tạo ra nhiều broadcast domain trong một switched network. Bất kỳ người dùng nào trong một VLAN đều sẽ nhận gói tin broadcast từ một thành viên trong cùng VLAN, người dùng của các VLAN khác sẽ không nhận được những gói tin broadcast này. Mỗi người dùng trong một VLAN cũng sẽ có cùng một IP subnet. Một VLAN có thể tồn tại trên một switch hay trải ra trên nhiều switch. Các VLAN có thể chứa đựng nhiều máy trạm trong một tòa nhà hay những cơ sở hạ tầng gồm nhiều tòa nhà. 47 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch VLAN hoạt động như thế nào. Mỗi VLAN được cấu hình trên switch thực hiện đầy đủ các chức năng như một bridge vật lý cụ thể: học địa chỉ, đưa ra các quyết định filering/forwarding và các phương pháp chống loop. Một VLAN có thể bao gồm một vài port. Luồng dữ liệu được flood từ một VLAN cụ thể chỉ flood ra những port khác thuộc cùng VLAN đó. Để cho một VLAN có thể trải ra trên nhiều switch trên một kết nối đơn, một đường trunk được yêu cầu để nối kết 2 switch. Đường trunk mang thông tin cho tất cả các VLAN. Một trunk port chỉ có thể được cấu hình trên những port Fast Ethernet. Những phần trên đây đã trình bày các chức năng cũng như một số kỹ thuật được sử dụng trong layer 2 switch nhằm tăng hiệu suất hoạt động trên mạng. Phần tiếp theo sẽ đề cập đến một vấn đề khác: các cơ chế truyền nhận frame của switch và switch giao tiếp với các thiết bị khác như thế nào. 2.3. Các frame được truyền đi như thế nào Có 3 kiểu (mode) xử lý chính được sử dụng để điều khiển việc chuyển gói tin. Store-and-forward (lưu và chuyển) – trong mode store-and-forward, switch phải nhận được toàn bộ frame trước khi forwarding xảy ra. Địa chỉ nguồn và đích của frame được đọc, quá trình kiểm tra độ dư vòng (cyclic redundancy check – CRC) được thực hiện, các quá trình lọc liên quan được áp dụng và frame được forward. Nếu CRC sai, frame bị bỏ đi. Độ trễ của gói tin đi qua switch thay đổi tùy thuộc vào chiều dài của frame. 48 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Cut-through – trong mode cut-through, switch kiểm tra địa chỉ đích của frame ngay khi nhận được header và ngay lập tức bắt đầu forward frame. Độ trễ khi sử dụng chuyển gói bằng cut-through là một hằng số bất chấp kích thước của frame bởi vì switching mode này bắt đầu forward frame ngay khi switch đọc được địa chỉ đích của frame. Điểm hạn chế của quá trình xử lý này là switch sẽ vẫn forward đi các frame bị đụng độ hay frame có giá trị CRC sai. Một số switch tiếp tục CRC và duy trì một biến dùng để đếm số lỗi. Nếu tốc độ lỗi xảy ra quá cao, switch có thể được thiết lập – hoặc bằng tay hay tự động – để sử dụng store-and-forward. Fragment-free – trong mode fragment-free (được biết đến như phiên bản chỉnh sửa của mode cut- through), switch đọc 64 byte đầu tiên trước khi forward frame. Thông thường, sự đụng độ xảy ra trong vòng 64 byte đầu tiên của frame. Bằng cách đọc 64 byte, switch có thể loại bỏ các frame bị đụng độ. Tùy theo hãng sản xuất và giá thành mà switch có thể có hoặc không có đầy đủ cả 3 mode xử lý các gói tin được trình bày ở trên. 2.4. Switch “nói chuyện” với các thiết bị khác như thế nào Đóng vai trò là thiết bị trung gian giữa các thiết bị cuối (end device), switch cung cấp nhiều kiểu giao tiếp khác nhau giữa switch và end device. Các mode được sử dụng để giao tiếp giữa switch và end device là half-duplex và full-duplex. Mode truyền half-duplex thực thi việc kiểm tra đụng độ trên đường truyền đa truy cập sử dụng sóng mang (CSMA/CD). Những mạng LAN chia sẻ truyền thống hoạt động ở chế độ half-duplex và dễ bị ảnh hưởng do xảy ra đụng độ trên đường truyền. Half-duplex về cơ bản giống như một cây cầu chỉ có một làn đường bắc qua một con dòng sông. Chỉ duy nhất một xe có thể vượt qua cầu tại một thời điểm. 49 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch Full-duplex Ethernet làm tăng đáng kể hiệu suất mạng mà không cần phải chi phí thêm cho việc lắp đặt môi trường mới. Truyền theo mode full-duplex giữa các trạm đạt được bằng cách sử dụng những kết nối Fast Ethernet và point-to-point Ethernet. Kỹ thuật này giúp cho việc truyền dữ liệu không xảy ra đụng độ. Những frame được gởi đi bởi 2 node được kết nối với nhau không thể đụng độ bởi vì sử dụng 2 mạch truyền tách biệt trong sợi cáp xoắn đôi. Điều này cũng giống như một cây cầu có 2 làn xe chạy bắc qua một con sông. Tóm lại, điều này có nghĩa là băng thông của một đường truyền được tăng lên gấp đôi. Mỗi kết nối full-duplex chỉ sử dụng một port. Các kết nối full-duplex có thể sử dụng những đường truyền 10BaseT, 100BaseT và 100BaseFX để tạo ra các đường truyền point-to-point giữa các switch hay các end node, nhưng không tồn tại giữa những hub. Trong mode full-duplex, mạch phát hiện đụng độ được vô hiệu hóa. Các node được gắn vào hub, hay các node chia sẻ kết nối của chúng đến một port của switch, phải hoạt động ở mode half-duplex bởi vì các trạm cuối phải có khả năng phát hiện đụng độ. Hiệu suất của cấu hình Ethernet chuẩn thông thường đạt tỷ lệ từ 50% - 60% của băng thông 10 Mbps. Chế độ full-duplex cho phép đạt 100% hiệu suất băng thông theo cả 2 chiều (10 Mbps truyền và 10 Mbps nhận). Tóm lại, những mạng chuyển mạch (switched network) có những đặc trưng sau: • Mỗi segment là một miền đụng độ (collision domain). • Tất cả các thiết bị được kết nối vào cùng bridge/switch đều là một phần của miền broadcast (broadcast domain). • Tất cả các segment phải sử dụng cùng một giao thức tầng data-link, thí dụ như Ethernet hay Token Ring. Nếu một máy trạm phải giao tiếp với một máy trạm khác nằm trên một môi trường khác, thì một thiết bị nào đó, thí dụ như 50 KH OA C NT T – Đ H KH TN Chương 2 Tổng Quan Về Layer 2 Switch một router hay bridge có khả năng “thông dịch”, phải thông dịch giữa 2 kiểu môi trường khác nhau. • Trong môi trường switch, có thể có một thiết bị trên một segment, mỗi thiết bị có thể gởi frame tại cùng một thời điểm. Các chương 1 và 2 đã lần lượt giới thiệu những vấn đề cơ bản về cân bằng tải trên mạng và cơ chế hoạt động cũng như kiến trúc của thiết bị mạng tầng 2 (layer 2 switch). Tuy nhiên, để có thể đưa ra một mô hình phù hợp cho việc thực hiện cân bằng tải đòi hỏi phải có một công cụ kiểm chứng. Chương tiếp theo sẽ trình bày sơ lược về các chương trình Network Simulator. Đây là các chương trình giả lập mạng, cho phép kiểm tra và đánh giá các mô hình cân bằng tải mạng để từ đó lựa chọn được mô hình tốt nhất. 51 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Chương 3 TỔNG QUAN VỀ CÁC CHƯƠNG TRÌNH NETWORK SIMULATOR Trong chương này ta sẽ tìm hiểu về Simulator, các chương trình Simulator hiện có, Network Simulator là chương trình như thế nào, hoạt động ra sao. Kết thúc chương ta sẽ có một cái nhìn tổng quát về Simulator, và nắm được cách thức hoạt động của chương trình Network Simulator. 3.1. Lý do sử dụng Simulation 3.1.1. Định nghĩa Simulation một hoạt động là phương pháp sử dụng một số giả thiết đã cho trước, rồi dùng chương trình máy tính để xác định qui luật hoạt động của một hoạt động thực tế. 3.1.2. Mục đích Các chương trình Simulation thường được sử dụng ở các viện nghiên cứu và các trường đại học vì các hệ thống thực không phải bao giờ cũng sẵn sàng, mà chúng có thể rất phức tạp hoặc nguy hiểm và chi phí để thực hiện việc kiểm tra là khá đắt. Sử dụng chương trình Simulation sẽ giúp cho việc nghiên cứu hiệu quả và sát thực tế hơn. Nhờ vào Simulation, người ta có thể đánh giá các phương pháp khác nhau một cách hữu hiệu và nhanh chóng. Dĩ nhiên sự đánh giá cũng chỉ mang tính tương đối và phụ thuộc vào chương trình Simulation. 52 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Chương trình Simulation còn đánh giá được những chức năng phức tạp mà công thức hoặc kỹ thuật tính toán thông thường không tính được. 3.1.3. Những ưu khuyết điểm của hệ thống Simulation Nhờ vào chương trình Simulation, ta có thể tìm ra được những hoạt động không nhìn thấy trước được, tìm thấy lỗi trong thiết kế nhờ vào việc có thể lặp đi lặp lại các hoạt động, gỡ rối và phân tích chi tiết từng trường hợp. Ta cũng có thể giả lập hệ thống ở nhiều mức, điều chỉnh các giá trị để chúng hoạt động hiệu quả hơn. Có thể điều chỉnh các thông số đầu vào. Điều này giúp ta tiết kiệm chi phí và thời gian hơn việc đưa hệ thống ra kiểm nghiệm thực tế. Tuy nhiên, Simulation cũng không thể tự hoạt động, người dùng phải đưa vào các mô hình tương ứng để kiểm tra. Tùy độ phức tạp của mô hình mà Simulation có thể không giống như hoạt động ở thực tế và dĩ nhiên là không thể giống 100% như thế giới thực. Thêm vào đó, thời gian hoạt động của hệ thống trong chương trình Simulation có thể bị chậm hơn so với thế giới thực. 3.2. Các chương trình Simulation đang được sử dụng 3.2.1. MIT's NETSIM NETSIM dùng để giả lập mạng chuyển mạch gói được viết bởi MIT LCS Advanced NetWork Architecture group sử dụng cho mục đích riêng của họ. NETSIM dùng một giao diện X-Window để chạy chương trình, người sử dụng có thể chỉnh sửa một vài thông số trên giao diện. Các thành phần trong NETSIM bao gồm: quản lý sự kiện, thủ tục xuất nhập, các cấu trúc khác nhau như hàng đợi, danh sách, Ngoài ra còn có bộ dụng cụ, đây là một thư viện 53 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator chức năng ( viết bằng ngôn ngữ C ) cho phép tạo mới, chỉnh sửa, hiển thị, lưu trữ cấu hình mạng. Để thực hiện giả lập, người sử dụng có thể dùng ngôn ngữ C để viết những thành phần mới, hoặc chỉnh sửa một số file, biên dịch và kết nối chúng lại. Hoặc người sử dụng có thể dùng bộ công cụ để thực hiện giả lập. Mỗi thành phần sẽ được quản lý bởi một lớp, một kiểu, hoặc một handle quản lý sự kiện. Tất cả được lưu trong doubly-linked list khi Netsim chạy và được đại diện bằng cấu trúc hàng đợi và một action routin. Action routin được gọi khi nào có một sự kiện được gởi đến 1 thành phần. NETSIM thực hiện định tuyến tĩnh. NETSIM chỉ hỗ trợ cho kiểu dữ liệu gói (packet data). 3.2.2. NIST National Institute of Standards and Technology (NIST) đã phát triển ATM Network Simulator dùng cho việc nghiên cứu và đánh giá độ hiệu quả của mạng ATM, dựa trên NETSIM của MIT. Chương trình này có 2 nhiệm vụ chính: đánh giá độ hiệu quả của mạng ATM và giao thức ATM. Các thành phần cơ bản không có khác biệt nhiều so với NETSIM của MIT. Tuy nhiên, người sử dụng có thể tạo cấu hình mạng trực tiếp trên giao diện. 3.2.3. CPSIM CPSIM là một công cụ Simulator mục đích song song ( parallel general- purpose ) dùng cho mục đích thương mại, được viết bởi Groselj Boyan (BoyanTech Inc). 54 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Parallel discrete-event simulation (PDES) phù hợp cho giả lập môi trường sự kiện riêng rẽ, như mạng máy tính. Phiên bản miễn phí cho giả lập tối đa đến 255 đối tượng. PDES không sử dụng giao diện đồ họa và chỉ dành cho người chuyên nghiệp. Có sự phân biệt giữa nhân CPSIM và thư viện CPSIM. Nhân ( kernel ) cung cấp quá trình đồng bộ hóa, bộ lập lịch, ngăn chận Deadlock và chuyển thông điệp cho nhiều máy khác nhau. Còn thư viện thì chứa các hàm C. Kernel CPSIM cũng có 2 phiên bản, phiên bản xử lý song song và phiên bản xử lý đơn (uniprocessor). Để thực hiện giả lập, người sử dụng định nghĩa một cấu trúc dữ liệu sự kiện (event data structure), đối tượng đồ họa và viết chương trình xử lý cho sự kiện. 3.2.4. INSANE INSANE được viết bởi đại học California tại Berkeley năm 1996. INSANE (Internet Simulated ATM Networking Environement) với mục đích xây dựng công cụ giả lập để phân tích hiệu quả của các chính sách IP qua ATM khác nhau (various IP over ATM policies) trong mạng Internetwork không đồng nhất (heterogeneous internetwork). INSANE có thể tính được hiệu quả của một vài ứng dụng Internet trong mạng Internetwork không đồng nhất với số lượng hàng ngàn máy. INSANE được dùng để giả lập mạng xương sống ATM diện rộng. 3.2.5. NEST 2.5 NEST (NEtwork Simulation Testbed) được viết bởi khoa máy tính Đại học Columbia. Mục đích: giả lập và chuẩn hóa các hệ thống và thuật toán phân tán. 55 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator NEST dùng để giả lập hệ thống cân bằng tải dựa trên các nguyên lý microeconomic, dùng nghiên cứu vấn đề cập nhật đồ hình ARPANET, và được sử dụng bởi viện nghiên cứu và công nghệ Northrop để giả lập giao thức Noahnet ( kiến trúc mạng dựa trên các giao thức flooding). Công cụ NEST dùng theo mô hình Client-Server, Display Client được kết nối với Simulation Server bằng Socket. Simulation Server trả về kết quả chạy simulation. Client là những chương trình độc lập dùng để tạo, cấu hình kiểu giả lập, điều khiển chạy giả lập, sử dụng giao diện đồ họa, được kết nối với Simulation Server thông qua kết nối TCP/IP và cho phép chỉnh sửa, thay đổi cấu hình mạng. Hệ thống yêu cầu băng thông thấp. NEST dùng bộ lập lịch theo cơ chế Round-Robin. 3.2.6. REAL 5.0 REAL (REalistic And Large) được viết bởi Đại học Cornell, do S.Keshav dựa trên phiên bản NEST 2.5. REAL dùng để nghiên cứu hoạt động lược đồ quản lý tắt nghẽn và luồng dữ liệu trong chuyển mạch gói (TCP/IP). REAL cung cấp 30 module viết bằng C mô phỏng giao thức điều khiển luồng như TCP và 5 cách sử dụng bộ lập lịch : FIFO, Fair Queueing, DEC congestion avoidance và Hierarchical Round Robin. REAL cũng dựa trên chương trình Client-Server như NEST 2.5. REAL dùng bộ định tuyến tĩnh, dựa trên thuật toán tìm đương ngắn nhất Dijkstra và cũng như NEST, không hỗ trợ thời gian thực. 56 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator 3.2.7. NS version 2.0 NS là object-oriented discrete-event simulator dùng để nghiên cứu mạng, dựa trên REAL. NS version 1 do Network Research Group tại Lawrence Berkeley National Laboratory (LBNL). Nhưng NS version 2 lại do VINT Project, là một phần của đại học Southern California được tài trợ bởi DARPA, cộng tác với Xerox PARC and LBNL. Mục đích là tạo một chương trình giả lập mạng với công cụ và phương pháp đổi mới hơn. NS được viết bằng C++. Nhưng không phải là tạo ra một chương trình hoàn toàn mới, mà là tập hợp những kết quả của những người làm công việc giả lập mạng. Vì đơn giản, phần lớn các chương trình giả lập chỉ làm việc trên các giao thức đơn lẻ và giả lập giao thức trong trường hợp cô lập. Chúng không tương tác với các địa chỉ của những thành phần khác trong kiến trúc. Vì thế, kết quả đạt được khá hẹp, đơn giản và biệt lập. Trong khi mạng internet ngày càng được mở rộng, số giao thức được sử dụng và tính phức tạp của mạng ngày càng tăng. Thì việc mô phỏng càng trở nên khó khăn. Thêm vào đó, rất hiếm chương trình mô phỏng cung cấp công cụ để hình dung và hiển thị kết quả. Vì thế, VINT Project đưa ra đề nghị hợp lực trong cộng đồng mô phỏng. Các nhà nghiên cứu đã tập hợp lại và có được kinh nghiệm phong phú hơn nhờ vào kinh nghiệm của các nhà nghiên cứu trước (MIT's NETSIM, University of Maryland's MARS, UC Berkeley's REAL, Columbia's NEST and LBNL's NS). Dự án được dựa trên NS và NAM ( Network Animator, một công cụ động cho phép hiển thị kết quả mô phỏng và dữ liệu định tuyến packet). 57 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Mục đích của dự án là mô phỏng chính xác và hiệu quả mạng Internet diện rộng ở mọi mức độ. Ở thời điểm hiện tại, NS thích hợp cho mạng chuyển mạch gói, dùng mô phỏng hàng đợi, quản lý tắt nghẽn, multicast, hỗ trợ nhiều hoạt động TCP khác nhau, link layer, địa chỉ MAC,…. Hiện tại NS có bộ nhớ giới hạn trong mô phỏng lớn (has memory limitations in the face of large simulations). Ngoài ra, còn có OPNET, MARS, NETSIM của đại học Richmond, SimuNet, GPSS, NETSIM++ của đại học Bucarest. 3.3. Network Simulator 3.3.1. Kiến trúc NS là một chương trình mô phỏng hướng đối tượng, được viết bằng C, với bộ diễn dịch OTcl. NS hỗ trợ kiến trúc hệ thống lớp trong C++, và một kiến trúc kế thừa lớp đơn giản hơn trong Otcl. Ở góc độ người sử dụng thì hai hệ thống kiến trúc này tương tự nhau, có sự tương ứng một – một giữa một lớp thuộc kiến trúc biên dịch và một lớp thuộc kiến trúc diễn dịch. Gốc của kiến trúc này là lớp TclObject. Người sử dụng tạo một đối tượng giả lập mới thông qua bộ diễn dịch, các đối tượng này “gần như” được ánh xạ vào đối tượng tương ứng trong bộ biên dịch. 3.1.1.1. NS sử dụng 2 ngôn ngữ vì lý do gì? Khi thiết lập một giao thức, yêu cầu ngôn ngữ lập trình hệ thống phải quan tâm đến bytes, packet, headers, thực hiện thuật toán với khối lượng dữ liệu lớn. Để thực hiện tốt thì tốc độ “run-time” đối với tác vụ 58 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator là quan trọng, còn thời gian “turn-around” ( như chạy giả lập, tìm lỗi, sửa lỗi,…) ít quan trọng hơn. Mặc khác, phần lớn việc nghiên cứu mạng lại liên quan đến các biến không ổn định, hoặc cấu hình, hoặc muốn khảo sát nhanh chóng một số mô hình. Trong trường hợp này thì thời gian lặp lại ( chuyển đổi mô hình và chạy lại ) là quan trọng. Khi cấu hình 1 lần thì thời gian chạy không còn quan trọng nữa. NS sử dụng cả 2 lợi thế này của C++ và Otcl. C++ chạy nhanh nhưng khi có sự thay đổi thì chậm, trong khi Otcl thì chạy chậm nhưng thích ứng với việc thay đổi. Vì vậy mà Ns ( thông qua Tclcl) đề nghị kết hợp việc tạo đối tượng và biến xuất hiện trong cả 2 ngôn ngữ. Vì vậy, Otcl được sử dụng để cấu hình, cài đặt các thành phần, như độ trễ, hàng đợi, và phần lớn thuật toán định tuyến. Và C++ dùng trong các phần còn lại, như xử lý mỗi packet trong một luồng. 3.1.1.2. Các lớp được sử dụng trong NS Lớp Tcl chứa các hàm được mã C++ sử dụng để truy cập vào bộ diễn dịch. Lớp TclObject là lớp cơ bản của các đối tượng giả lập, và cũng được ánh xạ vào kiến trúc biên dịch. Lớp TclClass định nghĩa kiến trúc lớp diễn dịch và các hàm cho phép người sử dụng gọi đến TclObject. 59 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Lớp TclCommand được dùng để định nghĩa các lệnh diễn dịch toàn cục đơn giản. Lớp EmbeddedTcl chứa các hàm để giúp việc giả lập cấu hình đơn giản hơn. Và cuối cùng là lớp InstVar chứa các hàm để truy cập vào các biến của C++ cũng như các instance của Otcl. Có thể tham khảo thêm các lớp này trong tập tin Tcl.*, Tcl2.cc, tcl- object.tcl, tracevar.* ( đều nằm trong thư mục Tclcl, là thư mục con của thư mục cài NS – mặc định là NS). 3.3.2. Sơ lược các thành phần tạo mô hình Sự mô phỏng được cấu hình, điều khiển và hoạt động thông qua giao diện sử dụng, được cung cấp bởi lớp của Otcl. Lớp này cung cấp thủ tục để khởi tạo và quản lý cấu hình, khởi tạo chuẩn packet, và lập kế hoạch cho quá trình mô phỏng. Người sử dụng dùng Otcl để tạo cấu hình mạng thông qua sử dụng lớp Node và lớp Link. 3.3.2.1. Lớp Node Chức năng của Node là nhận packet, xem xét nó rồi chuyển đến interface tương ứng. Một node bao gồm nhiều đối tượng Classifier đơn giản. Mỗi Classifier trong một Node thực hiện một chức năng riêng biệt, xem xét phần đặc biệt của packet và chuyển nó sang Classifier tiếp theo. 60 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Agents là một thành phần khác của Node, là nơi packet được phát sinh và tiếp nhận. NS hỗ trợ nhiều kiểu NS khác nhau: TCP agents, CBR, UDP, và các protocols khác, bao gồm RTP, RTCP, SRM. Điều này không đề cập đến protocol ATM. 3.3.2.2. Lớp Link Đường Link được thể hiện thông qua độ delay và băng thông. Chúng được xây dựng từ một đối tượng Connector tuần tự. Cấu trúc dữ liệu của Link bao gồm hàng đợi của đối tượng Connector, head của nó, kiểu đường truyền, TTL (time to live), và một đối tượng xử lý đường link bị drop. Connector nhận packet, thực hiện chức năng, và gởi packet đến Connector tiếp theo hoặc đến đối tượng Drop. NS hỗ trợ nhiều kiểu đường truyền khác nhau, như point-to-point, wireless, broadcast. Trong NS, hàng đợi được xem là một phần của đường truyền. NS cho phép giả lập nhiều kiểu hàng đợi, cũng như cách thức xử lý các packet, như drop-tail (FIFO) queueing, Random Early Detection (RED) buffer management, CBQ (priority and round-robin), Weighted Fair Queueing (WFQ), Stochastic Fair Queueing (SFQ) and Deficit Round-Robin (DRR). Sự kiện được mô tả bởi thời điểm kích hoạt và hàm quản lý. Kiểu của sự kiện được dùng để giả lập có thể là một trong 4 kiểu sau đây: hàng đợi theo sự kiện (default), heap, calendar queue và Real-time. Mỗi kiểu sự kiện sử dụng một cấu trúc hàng đợi khác nhau. • Hàng đợi theo sự kiện cung cấp một danh sách sự kiện theo trật tự thời gian, từ sớm nhất đến trễ nhất. Thực thể trên cùng luôn luôn được thực hiện đầu tiên. Các thực thể có cùng thời gian kích hoạt sẽ được gọi theo trật tự trong list. 61 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator • Hàng đợi Heap lấy từ simulator MARS-2.0. Kiểu hàng đợi này tốt hơn hàng đợi theo sự kiện khi số sự kiện lớn. • Trong hàng đợi calendar queue, các sự kiện có cùng ngày tháng của nhiều năm được ghi trong 1 "ngày". • Hàng đợi real-time vẫn đang được phát triển và hiện tại là lớp con của hàng đợi list. Nõ khá phù hợp khi sự kiện đến với tỉ lệ tương đối chậm. Các sự kiện chạy ở thời gian thực. NS có thể phát sinh traffic theo kiểu FTP và Telnet, hoặc có thể theo dạng Trace file. Quá trình thực hiện mô phỏng bằng NS có thể được mô tả như hình vẽ 3-1. Hình 3-1 - Quá trình biên dịch một tập tin *.tcl Để phân tích kết quả, NS cung cấp nhiều lớp để theo dõi từng packet riêng biệt, như thời điểm packet được phát sinh, thời điểm nó đến, packet có bị drop hay không và nó ghi lại các giá trị tính toán dựa trên một luồng hay tất cả các packet. Việc theo dõi này là do người sử dụng cài đặt. 62 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Người sử dụng phải chỉ rõ phương thức định tuyến ( tĩnh hay động ), và sử dụng protocol nào. Điều này được thực hiện với một hàm trong lớp Simulator. Các phương thức định tuyến được NS hỗ trợ bao gồm asymetric routing, multipath routing, Distance Vector algorithm, multicast routing (PIM, ...). 3.3.3. Sơ lược về NAM ( Network AniMator) NAM là một công cụ linh hoạt dựa trên Tcl/TK để hiển thị mô hình đã được mô phỏng. NAM được thiết kế để xem được các mô hình mô phỏng lớn và có thể mở rộng cho các mô hình mạng khác nhau. NAM sẽ đọc các lệnh sự kiện trong tập tin trace (được khai báo trong chương trình). NAM chỉ giữ một ít thông tin trong bộ nhớ, các lệnh sự kiện được giữ trong tập tin và được đọc lại khi cần thiết. Bước đầu tiên để sử dụng NAM là tạo ra tập tin trace. Tập tin trace chứa thông tin cấu hình, như node, các đường kết nối, cũng như dấu vết các packet. Thông thường thi tập tin trace được ns phát sinh. Trong suốt quá trình simulation, người dùng có thể tạo cấu hình mạng, cách bố trí, dấu vết packet. Khi tập tin trace được phát sinh, thì NAM đã có thể chạy được. Khi chạy, NAM đọc từ tập tin trace thông tin cấu hình, hiển thị cửa sổ, sắp xếp lại nếu thấy cần thiết và dừng ở thời điểm 0 ms. NAM tạo được hiển thị cho các đối tượng sau: • Node: Thay thế cho một máy tính, một tài nguyên hay một router. NAM sẽ bỏ qua các node khai báo trùng nhau. Node có thể có 3 kiểu ( 63 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator vòng tròn, hình vuông hay hình lục giác), nhưng khi đã tạo thì nó không thể thay đổi hình dạng được. Node có thể được gán tên, gán màu và màu sắc có thể thay đổi trong khi chạy NAM. • Link: Các link được tạo giữa các node trong mô hình. Thường thì các kết nối NAM chứa 2 đường kết nối riêng biệt (thay vì duplex). Các kết nối cũng có thể được gán tên và màu sắc, màu sắc có thể thay đổi trong khi chạy NS. • Hàng đợi: Hàng đợi cần được tạo ra trong NAM, giữa 2 node. Hàng đợi chỉ nằm một bên đối với một kết nối là duplex. Hàng đợi hiển thị như là một stack packet. Các packet được chồng lên thành một hàng, góc giữa hàng này và đường nằm ngang có thể định nghĩa được. • Packet: Các packet được hiển thị là một khối với mũi tên. Hướng của mũi tên chỉ ra hướng của packet. Các packet trong hàng đợi được hiển thị là các hình vuông nhỏ. Packet có thể bị drop tại hàng đợi hoặc đường kết nối (link). Các packet bị drop được thể hiện là hình vuông xoay vòng và rơi xuống dần đến hết màn hình. Các packet bị drop không hiển thị trong lúc ta thực hiện backward. • Agent: Các Agent được dùng để phân biệt các protocol riêng biệt ở các node. Chúng luôn luôn đi liền với các node. Một Agent có một cái tên, là một định danh riêng biệt của agent. Chúng được hiển thị là một hình vuông với tên bên trong, gần với node được gán. Hình vẽ 3-1 sẽ minh họa giao diện hoạt động và các phím chức năng trong NAM. 64 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Hình 3-2 – Giao diện và các phím chức năng của NAM 3.3.4. Một chương trình ví dụ về NS Để tạo một mô phỏng bằng NS, ta thực hiện các bước sau: • Khởi tạo Ns. • Quy định tên tập tin cần xuất dữ liệu ( tập tin trace). • Tạo các node trong mô hình. • Các link giữa các node, có thể link theo dạng duplex hoặc half-duplex. 65 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator • Tiếp đó, ta muốn dùng giao thức UDP, TCP hoặc SCTP thì ta gán vào cho node. • Sau khi kết gán các giao thức cần thiết, ta đặt thời gian cho các sự kiện. • Và bước cuối cùng, gọi NS chạy. Một chương trình NS đơn giản: # The preamble set ns [new Simulator] # initialise the simulation # Predefine tracing set f [open out.tr w] $ns trace-all $f set nf [open out.nam w] # trace file $ns namtrace-all $nf # init node set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] # init link $ns duplex-link $n0 $n2 5Mb 2ms DropTail # link node n0 and n2 $ns duplex-link $n1 $n2 5Mb 2ms DropTail # link node n1 and n2 $ns duplex-link $n2 $n3 1.5Mb 10ms DropTail # link node n2 and n3 # Some agents. set udp0 [new Agent/UDP] # A UDP agent $ns attach-agent $n0 $udp0 # on node n0 66 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator set cbr0 [new Application/Traffic/CBR] # A CBR traffic generator agent $cbr0 attach-agent $udp0 # attached to the UDP agent $udp0 set class_ 0 # actually, the default, but. . . set null0 [new Agent/Null] # Its sink $ns attach-agent $n3 $null0 # on node $n3 $ns connect $udp0 $null0 $ns at 1.0 "$cbr0 start" puts [$cbr0 set packetSize_] puts [$cbr0 set interval_] # A FTP over TCP/Tahoe from $n1 to $n3, flowid 2 set tcp [new Agent/TCP] $tcp set class_ 1 $ns attach-agent $n1 $tcp set sink [new Agent/TCPSink] $ns attach-agent $n3 $sink set ftp [new Application/FTP] # TCP does not generate its own traffic $ftp attach-agent $tcp $ns at 1.2 "$ftp start" $ns connect $tcp $sink $ns at 1.35 "$ns detach-agent $n0 $tcp $ns detach-agent $n3 $sink" # The simulation runs for # The simulation comes to an end when the scheduler invokes the # finish{} procedure below. 67 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator # This procedure closes all trace files, and invokes nam visualization on # one of the trace files. $ns at 3.0 "finish" # ns run in 3 second proc finish {} { global ns f nf $ns flush-trace close $f close $nf puts "running nam..." # after display “running nam…” on terminal exec nam out.nam & # run Nam, The Network Aminator exit 0 } # Finally, start the simulation. $ns run Thí dụ trên được mô tả trong NAM như hình vẽ minh họa 3-3. Hình 3-3 – Hình ảnh khi NS bắt đầu chạy. 68 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Hình 3-4 – Hình ảnh chụp được trong quá trình chạy NS Hình 3-5 – Khi kích chuột phải trên các packet, chọn Monitor. 69 KH OA C NT T – Đ H KH TN Chương 3 Tổng Quan Về Các Chương Trình Network Simulator Các phần mềm Simulation trên chủ yếu hỗ trợ việc giả lập một mạng máy tính gồm: các thiết bị mạng, đường truyền và các máy trạm/server. Vấn đề giả lập các thành phần có trong một layer 2 switch, bao gồm các thành phần “mềm” như: • Switching module. • Module cân bằng tải. • Hàng đợi gởi, nhận. • Các thread nhận và gởi. • Dòng thông tin trao đổi giữa các thành phần … là một việc khó khăn do không có phần mềm cho phép giả lập các thành phần trên. Luận văn này đã tìm cách sử dụng phần mềm NS để giả lập hoạt động của các thành phần “mềm” nói trên trong một switch. Ngoài ra, luận văn cũng tìm cách vận dụng các mô hình cân bằng tải giữa các thiết bị mạng được đề cập trong chương 2 để đưa ra các mô hình cân bằng tải trong một switch. Chương tiếp theo sẽ trình bày các mô hình đã được đề xuất của Soft Switch, các kết quả kiểm tra các mô hình bằng NS cũng như kết quả thực nghiệm, để từ đó lựa chọn ra một mô hình tối ưu nhất cho phép phát triển mô hình cân bằng tải. 70 KH OA C NT T – Đ H KH TN Chương 4 Các Mô Hình SoftSwitch và Kết Quả Kiểm Tra Chương 4 CÁC MÔ HÌNH SOFTSWITCH VÀ KẾT QUẢ KIỂM TRA Chương này sẽ đề cập lại các mô hình đã được đề xuất trong phần mềm SoftSwitch, các kết quả kiểm tra, đánh giá bằng NS và kết quả thực nghiệm của các mô hình trên. Từ đó, chọn lựa ra mô hình SoftSwitch được xem là tốt nhất để làm cơ sở đề xuất các mô hình cân bằng tải. Dùng NS để mô tả SoftSwitch thì sử dụng các thành phần như sau: • Xem mỗi Node tương đương với một module hoặc một thread. • Để chuyển dữ liệu từ node này sang node kia, thì tạo một đường kết nối giữa 2 node, tùy theo yêu cầu của kết nối mà có thể tạo kết nối kiểu đường truyền là simple-link hay duplex-link, cũng như tốc độ truyền, độ delay. • Mặc định của một kết nối là có buffer, nên nếu không sử dụng buffer thì tạo buffer có chiều dài là 2. • Tại node có nhiều đường kết nối đi ra thì node sẽ sử dụng mỗi port cho mỗi đường đi ra. Do đó, để cho các kết nối đi qua cùng một port chia node cũ ra làm 2 node, một node nhận các đường vào, một node nhận các đường ra, và tạo một đường kết nối giữa 2 node này. Các hình ảnh khi mô phỏng bằng NS được đưa vào phần phụ lục. 71 KH OA C NT T – Đ H KH TN Chương 4 Các Mô Hình SoftSwitch và Kết Quả Kiểm Tra 4.1. Các mô hình SoftSwitch MÔ HÌNH 1 Hình 4-1 – Mô hình 1 của SoftSwitch • Diễn giải Ứng dụng được xây dựng theo mô hình 1 sẽ bắt tất cả các frames từ tất cả các NIC có trên máy Switch và đưa vào module switching để xử lý. Tại module switching, frames sẽ được định hướng và được forward tới NIC tương ứng để đi đến đích. • Ưu điểm Đây là mô hình đơn giản nhất trong các mô hình switching, dễ thực hiện. • Khuyết điểm Mô hình này chỉ có một module switching xử lý các frames đến từ nhiều port. Do đó, có thể xảy ra trường hợp overhead, nghĩa là có quá nhiều 72 KH OA C NT T – Đ H KH TN Chương 4 Các Mô Hình SoftSwitch và Kết Quả Kiểm Tra frames được gửi đến module switching cùng lúc và module này không xử lý kịp, kết quả là có thể bị mất một số frames. Ngoài ra, mô hình này xử lý rất chậm vì chỉ có duy nhất một module swit

Các file đính kèm theo tài liệu này:

  • pdfUnlock-0012137 - 0012188.pdf
Tài liệu liên quan