Tải bản đầy đủ (.pdf) (16 trang)

Tài liệu Công nghệ OFDM - chương 4 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (814.55 KB, 16 trang )

www.4tech.com.vn

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
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ý
www.4tech.com.vn

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

52
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.

www.4tech.com.vn

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

53
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ỳ
})(),({
21
txtx có thể biểu diễn như điểm {x
1
, x
2

} 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 X
goal
)
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à x
1
+x
2
=X
goal
/2


www.4tech.com.vn

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

54



















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 x
1
, và trục X (trục ngang) mô tả phân phối cho người dùng 2 x
2
. Tất cả sự
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,
a
D, bI, bD
Sai
www.4tech.com.vn

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

55
phân phối với x
1
+x
2
=X
goal
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à x
1
= x
2
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 (X
goal
/2, X
goal

/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.
www.4tech.com.vn

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

56
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.
www.4tech.com.vn

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

57

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.
www.4tech.com.vn

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

58

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.






www.4tech.com.vn

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

59



Hinh 4.9 Thuật toán AIMD khi RTT
1
= 2
×
RTT
2
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ý.
www.4tech.com.vn

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

60
 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
4.3.2.1 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.

www.4tech.com.vn


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

61

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
www.4tech.com.vn

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

62
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ý
www.4tech.com.vn

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

63


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.









www.4tech.com.vn

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

64



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

www.4tech.com.vn

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

65


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


www.4tech.com.vn

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

66


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.



×