Mô phỏng mạng UDP sử dụng giải thuật RED:

Một phần của tài liệu Các phương pháp quản lý hàng đợi tích cực (Trang 132 - 197)

4.3.3.1 Mục đích:

Bài này sinh viên làm với mục đích quan sát giải thuật RED làm việc trong hệ thống tương tự các bài mô phỏng trên nhưng sử dụng giao thức UDP.Qua đó rút ra nhận xét về hiệu quả của RED trong mạng sử dụng UDP.

4.3.3.2 Mô hình:

Ở bài này, sinh viên vẫn sử dụng topology mạng như hình 29 với những thay đổi: + Liên kết giữa nút s1 và nút s2 với nút s3 sử dụng giao thức UDP. +

Có 2 nguồn CBR được gắn vào nút s1 và nút s2.

4.3.3.3 Thực hiện và kết quả:

Thực hiện mô phỏng với lịch trình quy định trong script của chương trình:

Thời điểm 0.0s : Luồng 1 ( luồng cbr1 từ nút s1 đến nút s3 ) bắt đầu truyền. Thời điểm 3.0s : Luồng 2 ( luồng cbr2 từ nút s2 đến nút s3 ) bắt đầu truyền. Thời điểm 30.0s : Cả 2 luồng ngưng truyền.

Kết quả thu được:

Hình 41. Sự mất mát gói tin trong mạng UDP sử dụng RED.

+ Đồ thị trên hình 40 miêu tả mối tương quan giữa chiều dài hàng đợi trung bình và chiều dài hàng đợi tức thời khi sử dụng giải thuật RED cho mạng sử dụng giao thức UDP.

+ Hình 41 là kết quả quan sát trực quan việc mất gói tin trong mô hình mạng mô phỏng.

4.3.3.4 Nhận xét và kết luận:

Quan sát kết quả thu được bằng chương trình Xgraph trong NS-2 như trên hình 40, ta thấy kích thước hàng đợi trung bình ở mức cao trong suốt quá trình mô phỏng dù hàng đợi tức thời không cao và dao động không lớn. Hàng đợi tức thời dao động theo những chu kỳ khá bằng nhau theo thời gian. Giá trị hàng đợi trung bình trong trường hợp này không

ảnh hưởng gì đến sự điều tiết ở hàng đợi.

Quan sát trực quan việc mất mát gói tin qua cửa sổ NAM của chương trình NS-2, ta thấy sự mất mát gói tin là rất lớn và xảy ra khá liên tục.

Sở dĩ có điều này vì mặc dù khi hàng đợi trung bình lớn hơn minth, các gói tin đến hàng đợi được đánh dấu với một xác suất nhất định, nhưng giao thức UDP không có tính năng thông báo mức độ đánh dấu ( hoặc loại bỏ ) của các gói tin cho phía đầu gửi giống như giao thức TCP. UDP không chứa bất kỳ kỹ thuật nào để nhận biết các gói tin có bị mất hay không.

Mặc dù kích thước hàng đợi trung bình đã ở mức cao, các gói tin bị loại bỏ nhưng phía nguồn phát tin hiệu do không có cơ chế nhận biết gói tin bị mất ( hay bị đánh dấu ) nên không ngừng việc tiếp tục gửi các gói tin đến hàng đợi và RED không thể tác động lên những nguồn phát UDP để thông báo một dấu hiệu của sự tắc nghẽn nào đó. Cơ chế dự báo tắc nghẽn của RED dựa vào việc thông báo với nguồn gửi dữ liệu sự tắc nghẽn phôi

thai qua các gói tin bị mất và bị đánh dấu đối với giao thức UDP là không hiệu quả. Kết luận:

Giải thuật RED không hiệu quả với mạng sử dụng giao thức UDP.

4.5 Tổng kết chương:

Chương này thể hiện các bài mô phỏng với các mục đích:

Mô phỏng cơ chế hoạt động của giải thuật RED trong các bộ định tuyến thể hiện qua mối quan hệ giữa giá trị hàng đợi tức thời và hàng đợi trung bình với các tham số điều khiển của giải thuật.

Sau đó thực hiện thay đổi các tham số điều khiển của RED để nhận xét, đánh giá sự phụ thuộc của giải thuật vào việc lựa chọn chính xác các tham số điều khiển.

Thực hiện mô phỏng giải thuật RED sử dụng trong mạng UDP.

Chương này mới chỉ dừng ở mức độ đánh giá hiệu quả của giải thuật RED trong việc quản lý hàng đợi tại 1 nút router , chưa đánh giá được hiệu năng TCP ở các mối liên kết đầu cuối. Phần này sẽ được đề cập đến kỹ lưỡng hơn ở hướng phát triển tiếp theo của đồ án.

Các file OTcl Scripts của các chương trình mô phỏng được trình bày trong phần phụ lục của cuốn đồ án.

PHẦN KẾT LUẬN 1.Các kết quả đạt được:

Đồ án này được xây dựng với nhiệm vụ là nghiên cứu các phương thức quản lý hàng đợi tích cực. Qua đó xem xét vai trò của các phương thức này trong việc né tránh và quản lý tắc nghẽn. Với nhiệm vụ như vậy, kết quả đạt được của đồ án như sau:

- Tìm hiểu về khái niệm hàng đợi tích cực, công tác quản lý hàng đợi tích cực và các phương thức quản lý hàng đợi tích cực để né tránh và điều khiển tắc nghẽn.

- Tìm hiểu, phân tích các phương thức quản lý hàng đợi tích cực đã được đề xướng và sử dụng hiện nay.

- Mô phỏng giải thuật RED trong công tác tránh tắc nghẽn và tìm hiểu sự ảnh hưởng của các tham số điều khiển đến sự thực hiện và hiệu quả của giải thuật. Sinh viên làm đồ án này nhằm nghiên cứu các phương thức quản lý hàng đợi tích cực khác nhau đã được đề xướng qua đó đưa ra một cái nhìn tổng quan về các phương thức này.

2. Các hướng phát triển tiếp:

Với việc phát triển mạnh mẽ của công nghệ thông tin và truyền thông như hiện nay. Vấn đề bảo toàn và cải thiện hiệu xuất mạng trở lên vô cùng quan trọng, tránh tắc nghẽn và quản lý tắc nghẽn trở thành một yêu cầu tất yếu đặt ra cho những hệ thống mạng trong hiện tại và cho tương lai.

Quản lý hàng đợi tích cực là một khía cạnh quan trọng để thực hiện các yêu cầu trên. Ngày nay, người ta đã đưa ra rất nhiều những giải thuật quản lý hàng đợi khác nhau nhằm mục đích tìm kiếm và đi đến một giải pháp tối ưu nhất để tránh tắc nghẽn và tối ưu hiệu năng mạng. Tuy nhiên những giải thuật này vẫn còn nhiều hạn chế và vẫn đang được tìm tòi phát triển và hoàn thiện hơn.

Đồ án này đã phần nào đưa ra một cái nhìn tổng quan về các giải thuật quản lý hàng đợi được sử dụng hiện nay thông qua việc tìm hiểu và phân tích cơ chế của các giải thuật này. Tuy nhiên còn hạn chế cả về chiều rộng ( số lượng các giải thuật được nghiên cứu ), và chiều sâu ( ví dụ như ứng dụng các giải thuật vào thực tế ).

Ở phần mô phỏng hoạt động của phương pháp RED, mới chỉ đánh giá được công tác quản lý hàng đợi ở một node router mà chưa đánh giá được hiệu năng TCP ở các mối liên kết đầu cuối.

Hướng phát triển tiếp theo của đồ án sẽ là :

Nghiên cứu một cách đầy đủ và sâu rộng hơn về các giải thuật mới, các phương pháp quản lý mới đang được đề xuất như những hướng phát triển trong tương lai của công tác quản lý hàng đợi tích cực.

Ở phần mô phỏng giải thuật RED, sẽ đánh giá được chi tiết hơn hiệu năng TCP ở những mối liên kết đầu cuối.

TÀI LIỆU THAM KHẢO

[1] Nguyen Tuong Long Le. Investigating the Effects of Active Queue Management on the Performance of TCP Applications.

[2] Võ Thanh Tú, Nguyễn Thúc Hải .Tích hợp cơ chế điều khiển gói báo nhận và quản lý hàng đợi trong điều khiển lưu thông mạng.

[3] Kun I.Pack, Ph.D QOS IN PACKET NETWORKS . The MITRE corporation USA. [4] Jae Chug and Mark Claypool .Analysis of Active Queue Management . Computer Science Department Worcester Polytechnic Institute MA 01609 , USA.

[5] Sally Floyd . TCP and Explicit Congestion Notification. Lawrence Berkeley Laboratory One Cyclotron Road, Berkelay ,CA 94704.

[6] Aleksandar Kuzmanovic. The Power of Explicit Congestion Notification . [7] Michael E.Flannagan . Cisco QoS.

[8] Sally Floyd and Van Jacobson Random Early Detection Gateways for Congestion Avoidance. August 1993 .

[9] S.Floyd, L.Zang, V.Jacobson . rfc2309:Recommendations on Queue Management and Congestion Avoidance in the Internet . April 1998.

[10] Sally Floyd " RED: Discussions of Setting Parameters" November 1997. [11] Floyd . Recommendation on using the "gentle" variant of RED. March 2000. [12] http://www.vnpro.org ,Tìm hiểu DropTail và RED .

[13] http://www.vnpro.org , Tìm hiểu cơ chế WRED.

[14] Cisco Systems, Inc Cisco IOS Quality of Service Solutions Configuration Guide. [15] Sally Floyd, Ramakrishna Gummadi, and Scott Shenker . Adaptive RED: An Algorithm for Increasing the Robustness of RED's Active Queue Management, August 1, 2001.

[16] R.J.La, P.Ranjan, and E.H.Abeb Analysis of Adaptive Random Early Detection (ARED) . Department of Electrical and Computer Engineering University of Maryland, college Park, MD, 20742, USA.

[17] Rahul Verma, Aravind Iyer and Abhay Karandikar. Active Queue Management using Adaptive RED.

[18] Youquan ZHENG, Mingquan LU, and Zhenming FENG. Performance Evaluation of Adaptive AQM Algorithms in a Variable Bandwidth Network.

[19] Mahmud.H.Etbega, M.E.Woodward, Hussein Abdel-Jaber, Abdulmonam G.Ali A New Version of Adaptive RED with Reduced Dependency on Parameterisation. Department of Computing, School of Informatics University of Bradford, Bradford , UK.

[20] A.A.Akintola, G.A.Aderounmu, and L.A.Akanbi Modeling and Performance Analysis of Dynamic Random Early Detection (DRED) Gateway for Congestion Avoidance.

[21] Hiroyuki Ohsaki, Hideyuki Yamamoto, Makoto Imase Scalable Modeling and Performance Evaluation of Dynamic RED router using Fluid-Flow Approximation.

[22] Tomoya Eguchi, Hiroyuki Ohsaki On Control Parameters Tuning for Active Queue Management Mechanisms using Multivariate Analysis.

[23] Teunis J.Ott, T.V.Lakshman, Larry Wong SRED:Stabilized RED.

[24] Mikkel Christiansen , Kevin Jeffay, David Ott, F.Donelson Smith Tuning RED for Web Traffic. University of North Carolina at Chapel Hill Department of Computer Science Chalpel Hill. NC 27599-3175 USA.

[25] Eitan Altman, Tania Jimenez . Simulation analysis of RED with short lived TCP connections. 8 October 2003.

[26] Wu-Chang Feng IMPROVING INTERNET CONGESTION CONTROL AND QUEUE MANAGEMENT ALGORITHMS. A dissertation Submitted in partial fulfillment of the requirements for the degree of Doctor of Philosophy . 1999.

[27] Wu-chang Feng, Dilip D.Kandlur, Debanjan Saha, Kang G.Shin BLUE: A New Class of Active Queue Management Algorithms.

[28] Milike Erol, Sema Oktug, Tayfun Akgul Self-Similarity of AQM Filtered Traffic . [29] Sunitha Burri BLUE:Active Queue Management CS756 Project Report May 5, 2004.

[30] Jae Chug and Mark Claypool NS by Example WPI worcester Polytechnic Institute.

[31] Marc Greis Marc Greis' Tutorial for UCB/LBNL/VINT Network Simulator "ns". [32]

www.isi.edu NS tutorial.

[33] Eitan Altman and Tania Jimenez NS Simulator for beginners. December 4, 2003. [34] www.cs.bu.edu/groups/itm/Home.html ns-2 Simulation Code and Example. [35] Arijit Ganguly , Pasi Lassila A study of TCP-RED congestion control using ns2. July 20, 2001.

[36] Sally Floyd and Kevin Fall Ns Simulator Test for Random Early Detection (RED) Queue Management Lawrence Berkeley Laboratory April 29, 1997.

[37] Victor Firois and Marty Borden A Study of Active Queue Management for Congestion Control.

[38] www.vnpro.org Ảnh hưởng của TCP/UDP đến việc mất gói.

[39] Kevin Fall, Kannan Varadhan The ns Manual ( formerly ns Notes and Documentation ) The VINT Project Acollaboration between researchers at UC Berkeley , LBL, USC/ISI and Xerox RARC.

PHỤ LỤC

bai1.tcl

#######################################################################

# ## ## BAI 1: MO PHONG MANG TCP VOI GIAI THUAT RED ## ##

#

####################################################################### # Tao ra mot doi tuong mo phong

set ns [new Simulator]

#Tao file de xuat ket qua cho NAM set nf [open bai1.nam w]

$ns namtrace-all $nf # tao trace file

set tf [open bai1out.tr w] $ns trace-all $tf

#

# So do ket noi mang

# Create a simple six node topology:

# # s1 s3 # \ / # 10Mb,2ms \ 1.5Mb,20ms / 10Mb,4ms # r1 --- r2 # 10Mb,3ms / \ 10Mb,5ms # / \# s2 s4 #

# Dinh nghia mau ( cho NAM ) $ns color 1 Blue

$ns color 2 Red # Khai bao cac nut set node_(s1) [$ns set node_(s2) [$ns set node_(r1) [$ns set node_(r2) [$ns set node_(s3) [$ns set node_(s4) [$ns mang node] node] node] node] node] node]

# Khai bao link: nodes bw delay queue

$ns duplex-link $node_(s1) $node_(r1) 10Mb 2ms DropTail $ns duplex-link $node_(s2) $node_(r1) 10Mb 3ms DropTail

$ns duplex-link $node_(r1) $node_(r2) 1.5Mb 20ms RED

$ns queue-limit $node_(r1) $node_(r2)

25

$ns queue-limit $node_(r2) $node_(r1)

25

$ns duplex-link $node_(s3) $node_(r2) 10Mb 4ms

DropTail

$ns duplex-link $node_(s4) $node_(r2) 10Mb 5ms

DropTail

# Thiet lap dang so do mang: $ns duplex-link-op $node_(s1) $ns duplex-link-op $node_(s2) $ns duplex-link-op $node_(r1) $ns duplex-link-op $node_(r1) $ns duplex-link-op $node_(r2) $ns duplex-link-op $node_(s3) $ns duplex-link-op $node_(s4) $node_(r1) $node_(r1) $node_(r2) $node_(r2) $node_(r1) $node_(r2) $node_(r2) orient right-down orient right-up orient right queuePos 0 queuePos 0 orient left-down orient left-up

# Gan nhan cho cac lien ket trong mang

$ns duplex-link-op $node_(s1) $node_(r1) label " 10Mb

2ms "

$ns duplex-link-op $node_(s2) $node_(r1) label " 10Mb

3ms "

$ns duplex-link-op $node_(r1) $node_(r2) label " 1.5Mb

20ms "

$ns duplex-link-op $node_(r2) $node_(s3) label " 10Mb

4ms "

$ns duplex-link-op $node_(r2) $node_(s4) label " 10Mb

5ms "

# Tao cac ket noi trong mang # tao sink

set sink1 [new Agent/TCPSink] $ns attach-agent $node_(s3) $sink1 set sink2 [new Agent/TCPSink] $ns attach-agent $node_(s3) $sink2 # tao ftp

set tcp1 [new Agent/TCP] $tcp1 set window_ 15

$ns attach-agent $node_(s1) $tcp1 set ftp1 [new Application/FTP] $ftp1 attach-agent $tcp1 $ns connect $tcp1 $sink1 set tcp2 [new Agent/TCP] $tcp2 set window_ 15

$ns attach-agent $node_(s2) $tcp2 set ftp2 [new Application/FTP] $ftp2 attach-agent $tcp2 $ns connect $tcp2 $sink2 $tcp1 set fid_ 1

$tcp2 set fid_ 2

$redq trace ave_

Các phương thức quản lý hàng đợi tích cực.

$redq trace curq_ $redq attach $tchan_

# Dinh thoi gian cho chuong trinh mo phong $ns at 0.0 "$ftp1 start"

$ns at 3.0 "$ftp2 start" $ns at 30 "finish"

# Thu tuc dong file va hien thi ket qua khi mo phong proc finish {} { global nf ns tf tchan_ set awkCode { { if ($1 == "Q" && NF>2) { print $2, $3 >> "temp.q"; set end $2 }

else if ($1 == "a" && NF>2) print $2, $3 >> "temp.a"; }

}

set f [open temp.queue w] puts $f "TitleText: red" if { [info exists tchan_] } {

close $tchan_ }

exec rm -f temp.q temp.a exec touch temp.a temp.q exec awk $awkCode all.q puts $f \"queue

exec cat temp.q >@ $f puts $f \n\"ave_queue exec cat temp.a >@ $f close $f

ns flush-trace close $nf close $tf

exec xgraph -bb -tk -x time -y queue temp.queue \

-t "Bai1: Giai thuat RED voi minth=5 maxth = 12" -tf "helvetica-12" & exec nam -r 6ms bai1.nam &

exit 0 }

$ns at 5.0 "$ns trace-annotate {RED voi minth=5 maxth = 15 !}" $ns run

Các phương thức quản lý hàng đợi tích cực.

bai2a.tcl

####################################################################### #

#

# BAI 2a: GIAI THUAT RED voi minth=2, maxth=12

# #

####################################################################### # Tao ra mot doi tuong mo phong

set ns [new Simulator]

#Tao file de xuat ket qua cho NAM set nf [open bai2a.nam w]

$ns namtrace-all $nf # tao trace file

set tf [open bai2aout.tr w] $ns trace-all $tf

#

# So do ket noi mang # # # s1 s3 # \ / # 10Mb,2ms \ 1.5Mb,20ms / 10Mb,4ms # r1 --- r2 # 10Mb,3ms / \ 10Mb,5ms # / \ # s2 s4 #

# Dinh nghia mau ( cho NAM ) $ns color 1 Blue

$ns color 2 Red # Khai bao cac nut set node_(s1) [$ns set node_(s2) [$ns set node_(r1) [$ns set node_(r2) [$ns set node_(s3) [$ns set node_(s4) [$ns mang node] node] node] node] node] node]

# Khai bao link: nodes bw delay queue

$ns duplex-link $node_(s1) $node_(r1) 10Mb 2ms DropTail $ns duplex-link $node_(s2) $node_(r1) 10Mb 3ms DropTail $ns duplex-link $node_(r1) $node_(r2) 1.5Mb 20ms RED $ns queue-limit $node_(r1) $node_(r2) 25

$ns queue-limit $node_(r2) $node_(r1) 25

Các phương thức quản lý hàng đợi tích cực.

$ns duplex-link $node_(s3) $node_(r2) 10Mb 4ms DropTail $ns duplex-link $node_(s4) $node_(r2) 10Mb 5ms DropTail # Thiet lap dang so do mang:

$ns duplex-link-op $node_(s1) $ns duplex-link-op $node_(s2) $ns duplex-link-op $node_(r1) $ns duplex-link-op $node_(r1) $ns duplex-link-op $node_(r2) $ns duplex-link-op $node_(s3) $ns duplex-link-op $node_(s4) $node_(r1) $node_(r1) $node_(r2) $node_(r2) $node_(r1) $node_(r2) $node_(r2) orient right-down orient right-up orient right queuePos 0 queuePos 0 orient left-down orient left-up # Gan nhan cho cac lien ket trong mang

$ns duplex-link-op $node_(s1) $node_(r1) label " 10Mb

2ms "

$ns duplex-link-op $node_(s2) $node_(r1) label " 10Mb

3ms "

$ns duplex-link-op $node_(r1) $node_(r2) label " 1.5Mb

20ms "

$ns duplex-link-op $node_(r2) $node_(s3) label " 10Mb

4ms "

$ns duplex-link-op $node_(r2) $node_(s4) label " 10Mb

5ms "

# Tao cac ket noi trong mang # tao sink

set sink1 [new Agent/TCPSink] $ns attach-agent $node_(s3) $sink1 set sink2 [new Agent/TCPSink] $ns attach-agent $node_(s3) $sink2 # tao ftp

set tcp1 [new Agent/TCP] $tcp1 set window_ 15

$ns attach-agent $node_(s1) $tcp1 set ftp1 [new Application/FTP] $ftp1 attach-agent $tcp1 $ns connect $tcp1 $sink1 set tcp2 [new Agent/TCP] $tcp2 set window_ 15

$ns attach-agent $node_(s2) $tcp2 set ftp2 [new Application/FTP] $ftp2 attach-agent $tcp2 $ns connect $tcp2 $sink2 $tcp1 set fid_ 1

$tcp2 set fid_ 2

# Danh dau hang doi, thiet lap cac tham so dieu kgien cho RED set redq [[$ns link $node_(r1) $node_(r2)] queue]

set tchan_ [open all.q w] $redq set thresh_ 2

$redq set maxthresh_ 12 $redq set linterm_ 50 $redq trace ave_ $redq trace curq_ $redq attach $tchan_

Các phương thức quản lý hàng đợi tích cực.

# Dinh thoi gian cho chuong trinh mo phong $ns at 0.0 "$ftp1 start"

$ns at 3.0 "$ftp2 start" $ns at 30 "finish"

# Thu tuc dong file va hien thi ket qua khi mo phong proc finish {} { global nf ns tf tchan_ set awkCode { { if ($1 == "Q" && NF>2) { print $2, $3 >> "temp.q"; set end $2 }

else if ($1 == "a" && NF>2) print $2, $3 >> "temp.a";

Một phần của tài liệu Các phương pháp quản lý hàng đợi tích cực (Trang 132 - 197)