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...
124 trang |
Chia sẻ: hunglv | Lượt xem: 1440 | Lượt tải: 0
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:
- Unlock-0012137 - 0012188.pdf