Nghiên cứu phương pháp điều khiển tắc nghẽn trong NGN
MỤC LỤC
LỜI NÓI ĐẦU
CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN MẠNG THẾ HỆ SAU 1
1.1 Giới thiệu chương 1
1.2 Mạng viễn thông hiện tại 1
1.2.1 Khái niệm về mạng viễn thông hiện tại 1
1.2.2 Các đặc điểm của mạng viễn thông hiện tại 2
1.2.3 Những hạn chế của mạng viễn thông hiện tại 3
1.3 Mạng viễn thông thế hệ sau 4
1.3.1 Định nghĩa 4
1.3.2 Đặc điểm của NGN 5
1.3.3 Nguyên nhân xây dựng mạng thế hệ sau 7
1.3.4 Sự triển khai từ mạng hiện có lên NGN 7
1.4 Cấu trúc NGN 10
1.4.1 Lớp truyền dẫn và truy cập 12
1.4.2 Lớp truyền thông 14
1.4.3 Lớp điều khiển. 15
1.4.4 Lớp ứng dụng 16
1.4.5 Lớp quản lý 17
1.5 Tổng kết chương 17
CHƯƠNG 2: ĐIỀU KHIỂN TẮC NGHẼN TRONG NGN 18
2.1 Giới thiệu chương 18
2.2 Vấn đề tắc nghẽn trong NGN 18
2.2.1 Nguyên nhân xảy ra tắc nghẽn 20
2.2.2 Nguyên lý chung điều khiển tắc nghẽn 20
2.3 Các phương pháp điều khiển tắc nghẽn 22
2.3.1 Các đặc điểm chung 22
2.3.2 Phân loại 22
2.4 Các tiêu chí đánh giá phương pháp điều khiển tắc nghẽn 23
2.4.1 Tính hiệu quả (Efficient) 23
2.4.2 Tính bình đẳng (Fairness) 24
2.4.3 Tính hội tụ (Convergence) 25
2.4.4 Thời gian đáp ứng nhanh (Small response time) 25
2.4.5 Độ mịn trong điều khiển (Smoothness) 26
2.4.6 Tính phân tán (Distributedness) 26
2.5 Thuật toán tăng giảm 27
2.5.1 Thuật toán tăng giảm 27
2.5.2 Biểu diễn thuật toán bằng vector 29
2.6 Kết luận chương 33
CHƯƠNG 3: CÁC PHƯƠNG PHÁP ĐIỀU KHIỂN TẮC NGHẼN 34
3.1 Giới thiệu chương 34
3.2 Một số phương pháp điều khiển tắc nghẽn truyền thống 34
3.2.1 DECbit 34
3.2.2 Điều khiển chống tắc nghẽn trong TCP 35
3.3 Một số phương pháp điều khiển tắc nghẽn mới 37
3.3.1 EWA (Explicit Window Adaptation) và FEWA (Fuzzy EWA) 37
3.3.2 ETCP (Enhanced TCP) 38
3.3.3 XCP (Eplicit Control Protocol) 39
3.3.3.1 Mào đầu chống tắc nghẽn. 39
3.3.3.2 Bộ điều khiển chống tắc nghẽn. 40
3.3.3.3 Tính thực tế của XCP. 43
3.3.4 FBA-TCP 44
3.3.4.1 CSFQ (Core-Stateless Fair Queueing) 44
3.3.4.2 FBA-TCP 47
3.3.5 QS-TCP (Quick Start TCP): 48
3.4 Đánh giá chung 49
3.5 Kết luận chương 50
CHƯƠNG 4 CHƯƠNG TRÌNH MÔ PHỎNG ĐIỀU KHIỂN TẮC NGHẼN DÙNG THUẬT TOÁN TĂNG GIẢM 51
4.1 Giới thiệu chương 51
4.2 Phương pháp và công cụ mô phỏng 51
4.2.1 Phương pháp phân tích 51
4.2.2 Chuẩn bị công cụ mô phỏng 53
4.3 Nội dung và kết quả mô phỏng 53
4.3.1 Mô phỏng thuật toán tăng giảm 53
4.3.2 Mô phỏng giao thức XCP 59
4.3.2.1 Các luồng đều là XCP 60
4.3.2.1 Khi XCP và TCP cùng tồn tại 63
4.1 Kết luận chương 66
KÊT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 67
TÀI LIỆU THAM KHẢO 69
PHỤ LỤC
16 trang |
Chia sẻ: banmai | Lượt xem: 2347 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Nghiên cứu phương pháp điều khiển tắc nghẽn trong NGN, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Chương 4
CHƯƠNG TRÌNH MÔ PHỎNG ĐIỀU KHIỂN TẮC NGHẼN DÙNG THUẬT TOÁN TĂNG GIẢM
4.1 Giới thiệu chương
Nội dung chương 4 mô phỏng thuật toán tăng giảm. Mục đích chính là phân tích sự hội tụ đến tính bình đẳng và hiệu quả của các thuật toán. Ở đây ta chỉ đề cập đến thuật toán tăng giảm tuyến tính, từ đó thấy rằng AIMD là thuật toán đảm bảo hội tụ đến tính hiệu quả và bình đẳng so với các thuật toán tăng giảm khác. Mô phỏng cho thuật toán này được phân tích trong 4.3.1. Ngoài ra chương 4 còn mô phỏng tính bình đẳng, hiệu quả của giao thức điều khiển tắc nghẽn TCP và XCP. Trên thực tế tính bình đẳng, hiệu quả còn chịu nhiều ảnh hưởng khác nhau như thời gian vòng truyền RTT không đồng nhất, sử dụng các dịch vụ khác nhau, số lượng luồng đang truyền dữ liệu,... Công cụ mô phỏng là NS2, kết quả mô phỏng là các đồ thị và minh họa mạng NAM được phân tích trong 4.3.2.
4.2 Phương pháp và công cụ mô phỏng
4.2.1 Phương pháp phân tích
Trong đề tài này, sinh viên chọn phương pháp mô phỏng trên máy tính với CAVT và NS-2 (Network Simulation v.2). CAVT [12] là ứng dụng Java nhỏ được Michael Welzl xây dựng dựa trên biểu đồ vectơ Chiu/Jain [7] đã được đề cập trong chương 2, nó cung cấp giao diện người dùng mà ta có thể thiết lập điểm bắt đầu và quan sát quỹ đạo tương ứng bằng cách kích chuột vào biểu đồ.
NS-2 là phần mềm mã nguồn mở, mô phỏng các sự kiện rời rạc nhằm mục đích nghiên cứu mạng, nó hỗ trợ các giao thức mạng như TCP, UDP, hoạt động của những tài nguyên mạng như FPT, Telnet, Web, CBR và VBR, các cơ chế quản lý hàng đợi như Drop Tail, RED và CBR, các thuật toán định tuyến ... NS-2 được viết bằng C++ và OTcl.
Hình 4.1 Tổng quan về NS dưới góc độ người dùng
OTcl Script Kịch bản OTcl
Simulation Program Chương trình Mô phỏng
OTcl Bộ biên dịch Tcl mở rộng hướng đối
tượng
NS Simulation Library Thư viện Mô phỏng NS
Event Scheduler Objects Các đối tượng Bộ lập lịch Sự kiện
Network Component Objects Các đối tượng Thành phần Mạng
Network Setup Helping Modules Các mô đun Trợ giúp Thiết lập Mạng
Plumbling Modules Các mô đun Plumbling
Simulation Results Các kết quả Mô phỏng
Analysis Phân tích
NAM Network Animator Minh họa Mạng NAM
Để thiết lập và chạy một mạng mô phỏng, người dùng phải viết một tập lệnh OTcl Script và khởi động một lịch trình sự kiện, thiết lập cấu hình mạng sử dụng các đối tượng mạng và các hàm chức năng trong thư viện, chỉ cho tài nguyên lưu lượng biết khi nào thì bắt đầu và kết thúc việc truyền gói thông qua lập biểu.
Khi mô phỏng kết thúc, NS-2 sẽ xuất hiện một hay nhiều file text, ở đó có chứa các dữ liệu kết quả mô phỏng chi tiết nếu chúng ta yêu cầu trong tập lệnh Tcl. Các file này lại là dữ liệu đầu vào cho một chương trình hiển thị mô phỏng trực quan gọi là Network Animator (NAM). Các số liệu kết quả mô phỏng cũng được dùng để vẽ các đồ thị phân tích bằng chương trình Xgraph theo các yêu cầu người dùng.
4.2.2 Chuẩn bị công cụ mô phỏng
NS-2 được thiết kế để chạy trong môi trường Unix. Tuy nhiên, ta vẫn có thể cài đặt NS-2 trong Windows bằng cách dùng thêm chương trình Cygwin. Ở đây, sinh viên cài NS-2 trên Windows XP với Cygwin v1.5.24.
Cài đặt gói phần mềm ns-allinone-2.32 phát hành ngày 03/09/2007 tại website Trong gói phần mềm này đã bao gồm ns-2.32, nam-1.13, otcl-1.13 và tclcl-1.19. Trong thư viện đã hỗ trợ cho mô phỏng của sinh viên.
4.3 Nội dung và kết quả mô phỏng
4.3.1 Mô phỏng thuật toán tăng giảm
Như trong chương 2, tài nguyên phân bố của 2 người dùng bất kỳ có thể biểu diễn như điểm {x1, x2 } trong không gian 2 chiều. Khi chúng ta đang hoạt động tại hay gần điểm gãy (Knee) (mạng có tài nguyên Xgoal) mọi tài nguyên yêu cầu bởi người dùng đều được chấp nhận. Thuật toán tăng giảm mong muốn hội tụ đến bình đẳng và hiệu quả, tức là x1+x2=Xgoal /2
Bắt đầu
x1=x2=Xgoal/2
x1+x2>Xgoal
Sai
Dùng thuật toán tăng
x’1=aI+bI.x1
x’2=aI+bI.x2
Dùng thuật toán giảm
x’1=aD+bD.x1
x’2=aD+bD.x2
x1=x’1
x2=x’2
Kết thúc
Đúng
Đúng
Nhập phân phối cho người dùng 1 (x1), người dùng 2 (x2), mức lưu lượng đưa vào tại điểm knee (Xgoal), các hệ số trong thuật toán tăng giảm aI, aD, bI, bD
Sai
Hình 4.2 Sơ đồ thuật toán tăng giảm
Trong hình 4.3, trục Y (trục đứng) mô tả phân phối (allocation) cho người dùng 1 x1, và trục X (trục ngang) mô tả phân phối cho người dùng 2 x2. Tất cả sự phân phối với x1+x2=Xgoal là phân phối có hiệu quả. Nó tương ứng với đường thẳng là “đường hiệu quả” (đường màu đỏ). Tất cả phân phối mà x1= x2 là phân bố bình đẳng. Nó tương ứng với đường thẳng được gọi là “đường bình đẳng” (đường màu xanh). Hai đường này cắt nhau tại điểm (Xgoal/2, Xgoal/2) là điểm tối ưu. Mục tiêu của phương pháp điều khiển là làm cho hệ thống đến hoạt động tại điểm này mà không quan tâm đến vị trí bắt đầu. Tất cả các điểm bên dưới đường hiệu quả mô tả hệ thống “không đủ tải” và một cách lý tưởng hệ thống sẽ yêu cầu người dùng tăng tải. Tương tự, tất cả các điểm trên đường hiệu quả mô tả hệ thống quá tải.
Hình 4.3 Giao diện công cụ mô phỏng thuật toán tăng giảm
Khi ta chọn đồng bộ ngõ vào tức là 2 người dùng sử dụng thuật toán như nhau. Ta có thể thay đổi các hệ số tăng giảm a, b, thay đổi thời gian vòng truyền (là tổng thời gian mất do mạng khi phát gói đi từ luồng đến phía nhận và phát phúc đáp đến phía gởi). Phụ thuộc vào thuật toán lựa chọn, các hệ số thay đổi đến các giá trị cho phép. Thêm vào đó ta có thể vẽ đồ thị tốc độ người dùng theo thời gian, khoảng cách đến điểm tối ưu và tạo ra file dưới dạng text để dùng với các công cụ vẽ đồ thị thông thường như xgraph hay gnuplot.
Mô phỏng thuật toán AIMD và MIAD với 2 người dùng có cùng thời gian vòng truyền RTT=1s, khoảng thời gian mô phỏng là 50s, các hệ số a=0.1 và b=0.5. Giá trị x, y lần lượt là tốc độ của người dùng.
Hình 4.4 Biểu đồ vector của thuật toán AIMD
Hình 4.5 Đồ thị biểu diễn theo thời gian
Như vậy hình 4.4. và 4.5 cho ta thấy AIMD hội tụ nhanh đến điểm tối ưu và dao động quanh điểm này.
Hình 4.6 Biểu đồ theo vector thuật toán MIAD
Hình 4.7 Đồ thị biểu diễn tốc độ theo thời gian
Theo kết quả trong hình 4.6 cho ta thấy thuật toán MIAD có thể hội tụ đến hiệu quả nhưng không hội tụ đến bình đẳng. Tương tự cũng như đối với thuật toán MIMD trong hình 4.8 nhưng ta thấy MIMD đảm bảo hội tụ đến hiệu quả nhanh hơn. Kết quả mô phỏng trong hình 4.7 càng cho thấy rõ tốc độ của 2 người dùng càng lúc càng chênh lệch và do đó khoảng cách đến điểm tối ưu càng xa.
Hình 4.8 Thuật toán MIMD hội tụ nhanh đến đường hiệu quả
Như vậy với điều kiện mô phỏng ở trên (ngõ vào đồng bộ, RTT như nhau) trong tất cả các thuật toán tăng giảm tuyến tính, thuật toán AIMD là tốt nhất do nó bảo đảm hội tụ đến điểm tối ưu.
Tuy nhiên, môi trường mạng thực tế rất phức tạp, các điều kiện trên khó xảy ra được. Với RTT khác nhau thì sự hội tụ cũng là rất khó. Trong hình 4.9 là mô phỏng thuật toán AIMD khi người dùng 1 có RTT gấp đôi RTT của người dùng 2, điều đó có nghĩa là mỗi lần người dùng 1 cập nhật tốc độ thì người dùng 2 cập nhật 2 lần.
Hinh 4.9 Thuật toán AIMD khi RTT1 = 2 RTT2
4.3.2 Mô phỏng XCP
Như trong chương 3, XCP là giao thức truyền thông liên quan đến TCP. Không như TCP, XCP cung cấp phản hồi chống tắc nghẽn rõ từ router có khả năng XCP đến XCP phía gởi. Do đó, XCP phía gởi có thể điều khiển cửa sổ gởi thích hợp hơn để đạt được tính hiệu quả, bình đẳng, điều khiển tắc nghẽn có thể mở rộng qui mô và ổn định trong toàn mạng.
Mục đích của phần này là mô phỏng để cho ta thấy rằng:
XCP hội tụ nhanh đến lượng phân bổ băng thông bị thắt cổ chai hợp lý.
XCP đạt hiệu quả sử dụng đường truyền cao.
XCP duy trì số gói tại hàng đợi nhỏ.
Trong phần này ta sẽ mô phỏng 2 trường hợp: 3 luồng đều là XCP; 3 luồng XCP và 1 luồng TCP cùng tồn tại trong cùng một mạng có topo như hình 4.10.
Các thông số trong mô phỏng:
Băng thông BW = 20Mb/s
Độ trễ delay = 10 ms
Kích thước hàng đợi qSize = 100 Kbytes
Hình 4.10 Topo mạng sử dụng trong quá trình mô phỏng
Các luồng đều là XCP
3 nguồn 0, 1, 2 là 3 nguồn XCP lần lượt xuất phát từ 3 nút 0, 1, 2. Mô phỏng trực quan được thể hiện rõ trên cửa sổ NAM. Trong đó, cửa sổ monitors cho ta kích thước cửa sổ của các nguồn. Thời gian các luồng bắt đầu truyền được thể hiện trong cửa sổ dưới cùng.
Hình 4.11 Mô phỏng 3 luồng XCP cùng chia sẻ đường truyền.
Hình 4.12 Hiệu quả sử dụng đường truyền cao
Hình 4.12 cho ta thấy hiệu quả sử dụng đường truyền của các luồng XCP trong mô phỏng trên là rất cao. Khi có 1 đường truyền nhánh từ nút 0 đến router thắt cổ chai ngừng truyền thì hiệu quả vẫn được đảm bảo như trong hình 4.13
Hình 4.13 Hiệu quả vẫn bảo đảm khi 1 luồng ngừng truyền đột ngột.
Hình 4.14 cwnd hội tụ nhanh đến lượng chia sẻ hợp lý
Hình 4.15 Số gói tại hàng đợi nhỏ.
4.3.2.2 Khi XCP và TCP cùng tồn tại
Trong trường hợp này, ta có 3 luồng XCP xuất phát từ 3 nguồn 0, 1, 2 (lần lượt ứng với các node 0, 1, 2 trong topo mạng hình 4.10) và luồng TCP xuất phát từ nút 0 Trong đó, thời gian các luồng bắt đầu truyền các đoạn dữ liệu được đưa ra trong cửa sổ dưới cùng trong NAM. Router có khả năng XCP sẽ phân biệt các luồng TCP và XCP và xếp hàng chúng 1 cách tách biệt nhau.
Hình 4.16 Mô phỏng 3 luồng XCP và 1 luồng TCP cùng tồn tại trong mạng
Hình 4.17 Biểu diễn cwnd của 2 loại lưu lượng TCP và XCP.
Hình 4.18 Hiệu quả khi có 1 luồng TCP
Hình 4.19 Trạng thái hàng XCP.
Như vậy, qua các kết quả mô phỏng như trên ta thấy XCP cho ta hiệu quả sử dụng đường truyền cao trong khi đảm bảo số gói tại hàng đợi nhỏ. Ngoài ra nó còn đảm bảo các luồng hội tụ nhanh đến điểm tối ưu. Luồng XCP nhanh chiếm băng thông đường truyền nhanh hơn TCP.
4.4 Kết luận chương
Trong chương này, sinh viên mô phỏng thuật toán tăng giảm truyền thống để cho thấy thuật toán AIMD sử dụng trong các giao thức hiệu quả như thế nào. Từ đó sinh viên mô phỏng XCP với các ưu điểm về tính bình đẳng và hiệu quả trong khi sự mất gói là rất hiếm. Phần mô phỏng này được thực hiện với phần mềm nguồn mở ns2.
Các file OTcl Scripts thực hiện mô phỏng trình bày trong phần phụ lục của luận văn.