BÁO CÁO MÔN CƠ SỞ MẠNG THÔNG TIN - Pdf 11

BÁO CÁO MÔN
CƠ SỞ MẠNG THÔNG TIN tính tốc độ các luồng dữ liệu gửi qua mạng để các luồng chia sẽ băng
thông kênh truyền dựa theo nguyên lý công bằng cực đại cực tiểu (max-
min fairness) và dựng kịch bản mô phỏng bằng công cụ NS2.


quen

với

phương

pháp
đánh

giá

hoạt

động

của

một

hệ

thống

thông

tin

bằng



thống

hàng

đợi

đơn,

mạng
hàng

đợi,cơ

sở

cho

các



chế

điều

khiển

luồng



một

phương

pháp

khác

để

đánh

giá

hiệu

năng,

đó



phương

pháp



phỏng.

phân

tích,

đánh

giá

hệ

thống

khi

dùng

phương

pháp phân

tích

toán

học



phương


phỏng

mạng

thông

dụng nhất hiện nay

-
Làm

quen

với

hệ

điều

hành

Linux



lập

trình

trong

năng

làm

việc

độc

lập.
Yêu cầu của BTL:
BTL của nhóm yêu cầu tính tốc độ các luồng dữ liệu gửi qua mạng để các
luồng chia sẽ băng thông kênh truyền dựa theo nguyên lý công bằng cực đại cực
tiểu (max-min fairness) và dựng kịch bản mô phỏng bằng công cụ NS2.
Các thành viên trong nhóm và nhiệm vụ của từng thành viên
1.Lương Xuân Tiến
Tìm hiểu nguyên lý công bằng cực đại cực tiểu Max-min fairness và tính toán
các tham số

S1
,


S2
,


S3 dựa theo nguyên lý trên .
2.Lê Duy Tân
Tìm hiểu công cụ mô phỏng NS-2 và dựng kịch bản mô phỏng dựa theo các
thông số

kiểm soát tắc nghẽn.
Một trong những vấn đề khó khăn nhất của thực hiện điều khiển luồng và
kiểm soát tắc nghẽn là đảm báo tính công bằng cho các kết nối hoặc người dùng
khi xảy ra tắc nghẽn. Khái niệm tính công bằng thể hiện ở chỗ các kết nối, người
dùng được sử dụng tài nguyên mạng với cơ hội như nhau
Việc sử dụng tài nguyên mạng hiệu quả nhất có thể trong khi vẫn có thể đảm
bảo được tính công bằng cho các kết nối được thực hiện bởi cơ chế điều khiển
luồng cực đại – cực tiểu (max–min flow control). Cơ chế này được xây dựng trên
mô hình công bằng cực đại – cực tiểu (max-min fairness).
Nguyên tắc hoạt động cơ bản của cơ chế điều khiển luồng cực đại – cực tiểu
như sau:
Nguyên tắc :
Sau khi người dùng với yêu cầu ít nhất về tài nguyên đó được đáp ứng công
bằng, các tài nguyên còn lại được tiếp tục phân chia (một cách công bằng) cho
những người dùng còn lại. Trong nhóm người dùng này, tài nguyên lại được phân
chia sao cho người dùng có yêu cầu ít nhất được đáp ứng, và quá trình cứ tiếp tục
đến hết. Nói một cách khác, việc cấp phát tài nguyên mạng cho một người dùng i
không được làm ảnh hưởng đến tài nguyên đó cấp các ngườii dùng khác với yêu
cầu ít hơn i.
Thuật toán:
1.Khởi tạo tất cả các kết nối với tốc độ = 0
Tăng tốc độ của tất cả các kết nối với một lượng nhỏ bằng nhau

, lặp lại quá
trình này cho đến khi tồn tại các liên kết có tổng băng thông đạt đến giá trị băng
thông cực đại (F
a
= C
a
). Lúc này:



 


1
1
( )
( )
k k k
p
k
p
k k
p
r r p P
r
r p P



 









k k
 

Nếu P
k
là tập hợp rỗng thì dừng lại, nếu không thì quay lại bước 1.
II. Thực hiện:
1. Yêu cầu:
Với các tham số:
Đường

nối

L1



dung

lượng


C1=
1MB/s

trễ




các

hàng

đợi

đơn

hoạt động

theo

nguyên

tắc

FIFO

với

độ

lớn

hàng

đợi



truyền

vật





bằng

95%

dung

lượng

kênh

truyền => C1sd=95%*1MB/s=0.95MB/s
C2sd=95%*0.6MB/s=0.57MB/s

S1
,


S2
,

S3

Bước 1:
k = 1, F
0
1
= 0, F
0
2
=0, r
0
p
= 0, P
1
=[(S1,D1),(S2,D2),(S3,D3)] và A
1
= A
k
r

=min(
(0.57-0)/2,(0.95-0)/2
)=
0.285 MB/s
sMBr /285.0
1
1


sMBr /285.0
1
2


S2
=0.95-0.285=0.665 MB/s
Như vậy ta đã tính được các tham số

S1
,


S2
,

S3
theo nguyên lý max-min
fairness
2. Mô phỏng
Tạo đối tượng mô phỏng:
set ns [new Simulator]
Tạo namfile lưu dữ liệu hệ thống khi mô phỏng
set nf [open out.nam w]
$ns namtrace-all $nf
Tạo tracefile lưu dữ liệu để vẽ đồ thị băng thông
set f0 [open S1_D1_Band.tr w]
set f1 [open S2_D2_Band.tr w]
set f2 [open S3_D3_Band.tr w]
và đồ thị tốc độ mất gói
set l0 [open S1_D1_Lost.tr w]
set l1 [open S2_D2_Lost.tr w]
set l2 [open S3_D3_Lost.tr w]
Tạo 9 nút

$ns duplex-link-op $n3 $n2 queuePos 1.5

$ns queue-limit $n1 $n2 5
$ns queue-limit $n2 $n3 5
Xây dựng Agent cho các nút s1, s2, s3, d1, d2, d3
#Create a UDP agent and attach it to node s1
set udp0 [new Agent/UDP]
$udp0 set class_ 1
$ns attach-agent $s1 $udp0

#Create a UDP agent and attach it to node s2
set udp1 [new Agent/UDP]
$udp1 set class_ 2
$ns attach-agent $s2 $udp1

#Create a UDP agent and attach it to node s3
set udp2 [new Agent/UDP]
$udp2 set class_ 3
$ns attach-agent $s3 $udp2

#Create a Sink agent (a traffic sink) and attach it to node d1, d2, d3
set sink0 [new Agent/LossMonitor]
$ns attach-agent $d1 $sink0

set sink1 [new Agent/LossMonitor]
$ns attach-agent $d2 $sink1

set sink2 [new Agent/LossMonitor]
$ns attach-agent $d3 $sink2
Liên kết các nguồn và đích tương ứng

Set ArrivalTime1 [new RandomVariable/Exponential]
$ArrivalTime1 set avg_ [expr 1/$lambda1]
set ArrivalTime2 [new RandomVariable/Exponential]
$ArrivalTime2 set avg_ [expr 1/$lambda2]
kích thước mỗi gói (bytes) xác định bởi
set pksize 125.0
Các hàm sau lọc dữ liệu và lưu vào tracefile để vẽ đồ thị băng thông và đồ thị tốc
độ mất gói:
proc recordbw {} {
global sink0 sink1 sink2 f0 f1 f2
#Get an instance of the simulator
set ns [Simulator instance]
#Set the time after which the procedure should be called again
set time 0.5
#How many bytes have been received by the traffic sinks?
set bw0 [$sink0 set bytes_]
set bw1 [$sink1 set bytes_]
set bw2 [$sink2 set bytes_]
#Get the current time
set now [$ns now]
#Calculate the bandwidth (in MBit/s) and write it to the files
puts $f0 "$now [expr $bw0/$time*8/1000000]"
puts $f1 "$now [expr $bw1/$time*8/1000000]"
puts $f2 "$now [expr $bw2/$time*8/1000000]"
#Reset the bytes_ values on the traffic sinks
$sink0 set bytes_ 0
$sink1 set bytes_ 0
$sink2 set bytes_ 0
#Re-schedule the procedure
$ns at [expr $now+$time] "recordbw"

#Close the output files
close $f0
close $f1
close $f2
close $nf
#Execute nam on the trace file
exec nam out.nam &
#Call xgraph to display the results
exec xgraph S1_D1_Band.tr S2_D2_Band.tr S3_D3_Band.tr -geometry 800x400
-t "BandWidth" -x "s" -y "Mbit/s" &
exec xgraph S1_D1_Lost.tr B2_D2_Lost.tr S3_D3_Lost.tr -geometry 800x400 -t
"LostPacket" -x "s" -y "Packet" &
exit 0
}

Thực hiện chạy mô phỏng trong 100s
#Schedule events for the CBR agents
$ns at 0.0 "recordbw"
$ns at 0.0 "recordlost"
$ns at 0.5 "sendpacket0"
$ns at 0.5 "sendpacket1"
$ns at 0.5 "sendpacket2"
#Call the finish procedure
$ns at 100 "finish"

#Run the simulation
$ns run
3. Kết quả mô phỏng:
Kết quả mô phỏng trên nam


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status