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
Chương 4: Chương trình mơ phỏng điều khiển tắc nghẽn dùng thuật tốn tăng giảm Chương 4 CHƯƠNG TRÌNH MƠ PHỎNG ĐIỀU KHIỂN TẮC NGHẼN DÙNG THUẬT TỐN TĂNG GIẢM 4.1 Giới thiệu chương Nội dung chương 4 mơ phỏng thuật tố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 tốn. Ở đây ta chỉ đề cập đến thuật tốn tăng giảm tuyến tính, từ đó thấy rằng AIMD là thuật tốn đảm bảo hội tụ đến tính hiệu quả và bình đẳng so với các thuật tốn tăng giảm khác. Mơ phỏng cho thuật tốn này được phân tích trong 4.3.1. Ngồ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 ngun mạng như FPT, Telnet, Web, CBR và VBR, các cơ chế quản lý 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 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. 52 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 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 http://nsnam.isi.edu/nsnam. 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 53 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 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ự 54 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 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 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. 55 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 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. 56 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 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. 57 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 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. 58 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 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ý. 59 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 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. 60 [...]... 63 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 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 64 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 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 65 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. . .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 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 61 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 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... 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ý 62 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 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... tăng giảm 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. .. 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 66