1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đo băng thông của nhiều luồng lưu lượng gửi qua một mạng gồm nhiều nút.

16 448 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 602,96 KB

Nội dung

Bài tập lớn cơ sở truyền số liệu, đo băng thông của nhiều luồng lưu lượng gửi qua một mạng gồm nhiều nút. Sử dụng phần mềm NS2 để lập trình mô phỏng trên hệ điều hành ubuntu. Học cách cài đặt ubuntu, NS2 và sử dụng các lệnh cơ bản trên NS2.

Trang 1

Nhóm 9 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ VIỄN THÔNG



BÁO CÁO BÀI TẬP LỚN

CƠ SỞ TRUYỀN SỐ LIỆU

Đề tài 5 : Đo băng thông của nhiều luồng lưu lượng

gửi qua một mạng gồm nhiều nút

Giáo viên hướng dẫn :TS TRƯƠNG THU HƯƠNG

Sinh viên : Dương Văn Vinh 20122804

Lê Văn Kiên 20121940 Nguyễn Thị Thiên Trang 20122593

Đỗ Trung Kiên 20101737 Phạm Thị Lan Hương 20121880

Hà nội, ngày 01/12/2015

Trang 2

Nhóm 9 2

MỤC LỤC

MỤC LỤC 2

I Giới thiệu về nhóm và bài tập lớn thực hiện 3

1 Giới thiệu về nhóm 3

2 Đề tài thực hiện 3

II Phân công công việc và tiến độ: 4

1 Phân công công việc 4

2 Tiến độ công việc 4

III Quá trình thực hiện 5

1.Xây dụng đồ hình gồm các Nut,Agent truyền và nhận dữ liệu 5

2.Tạo các luồng lưu lượng 7

3.Xây dựng các hàm tính băng thông 8

4.Xây dựng các hàm tính tốc độ mất gói 9

5.Sử dụng hàm làm đứt link3 10

6.Xây dựng biểu đồ tính lưu lượng của link1 và link3 10

7 Kết thúc chương trình, vẽ đồ thị 10

8 Chạy chương trình 11

IV Kết quả 12

4.1 Sau khi mô phỏng thành công thu đựợc kêt quả như sau: 12

4.2 Vẽ đồ thị ( kết quả mô phỏng sau 100s ) 14

4.3 Đồ thị tốc độ mất gói tại nút 2(S3-D3) 14

4.4 Kết luận 15

V Tài liệu tham khảo 16

Trang 3

Nhóm 9 3

I Giới thiệu về nhóm và bài tập lớn thực hiện.

1 Giới thiệu về nhóm

Tên nhóm : Nhóm 9 Thành viên :

1 Dương Văn Vinh 20122804

2 Lê Văn Kiên 20121940

3 Nguyễn Thị Thiên Trang 20122593

4 Đỗ Trung Kiên 20101737

5 Phạm Thị Lan Hương 20121880

2 Đề tài thực hiện

Đề tài thực hiện : Bài tập 5 Đo băng thông của nhiều luồng lưu lượng gửi qua một mạng gồm nhiều nút

Đề bài :

Cho một mạng gồm 5 nút như hình vẽ Nút 1, 2, 3, 4, 5 là các hàng đợi đơn hoạt động theo nguyên tắc LIFO với độ lớn hàng đợi K=6 gói Có 3 luồng dữ liệu được gửi qua mạng tương ứng là (S1, D1), (S2, D2) và (S3,D3) Trong đó Si là nguồn phát dữ liệu còn Di là đích Các nguồn Si đều phát gói với độ dài cố định là 145byte, khoảng

Trang 4

Nhóm 9 4

thời gian giữa các gói tuân theo phân bố Poisson với tốc độ trung bình: λS1=450kbit/s, λS2=250kbit/s, λS3=600kbit/s Các đường nối giữa các nút mạng L1, L2, L3, L4, L5 đều có dung lượng và trễ lan truyền bằng nhau và bằng 1Mb/s, 130ms

5.1 Dựng kịch bản mô phỏng để mô phỏng mạng trên Chạy mô phỏng trong vòng 100s, tại thời gian t=45s, đường liên kết L3 bị đứt, tại thời gian t=95s, đường L3 lại trở lại hoạt động bình thường

5.2 Vẽ đồ thị băng thông ri(t) mà các luồng (S1, D1), (S2, D2) và (S3, D3) sử dụng Vẽ đồ thị lưu lượng tổng cộng C1(t) tại liên kết L1 và L3

5.3 Vẽ đồ thị tốc độ mất gói e(t) tại nút 2

II Phân công công việc và tiến độ:

1 Phân công công việc

 Dương Văn Vinh, Phạm Thị Lan Hương: Tìm hiểu cách thức đo băng thông,vẽ đồ thị (sử dụng xgraph) trong NS2 Dựng kịch bản mô phỏng để mô phỏng mạng trên Chạy mô phỏng trong vòng 100s, tại thời gian t=45s, đường liên kết L3 bị đứt, tại thời gian t=95s, đường L3 lại trở lại hoạt động bình thường

 Lê Văn Kiên, Đỗ Trung Kiên: vẽ đồ thị băng thông ri(t) mà các luồng (S1, D1), (S2, D2) và (S3, D3) sử dụng Vẽ đồ thị lưu lượng tổng cộng C1(t) tại liên kết L1 và L3.Vẽ đồ thị tốc độ mất gói e(t) tại nút 2

 Nguyễn Thị Thiên Trang : Mô phỏng, viết báo cáo

2 Tiến độ công việc

 Tuần 5 : Tìm hiểu đo băng thông của nhiều luồng lưu lượng gửi qua một mạng gồm nhiều nút

 Tuần 5-12 : Học cài đặt ns2 trên ubuntu và các thao tác trên ns2

 Tuần 13 : Viết chương trình mô phỏng bằng ns2, viết báo cáo

Trang 5

Nhóm 9 5

III Quá trình thực hiện

Sử dụng công cụ NS2 mô phỏng hệ thống gồm 3 luồng lưu lượng gửi qua 5 nút Giả thiết :

* Độ dài hàng đợi: K = 6

* 3 luồng dữ liệu (S1,D1),(S2,D2),(S3,D3) phát gói với độ dài 145 bytes

Và khoảng thời gian giữa các gói là λ(S1)= 450; λ(S2)=250kbit/s; λ(S3)=600kbit/s

* Các link đều có dung lượng và trễ như nhau và bằng:1Mb/s và 130ms

1.Xây dụng đồ hình gồm các Nut,Agent truyền và nhận dữ liệu

# Tạo 5 nút:

set n1 [$ns node]

set n2 [$ns node]

set n3 [$ns node]

set n4 [$ns node]

set n5 [$ns node]

#Tạo đường link giữa các nút:

$ns duplex-link $s1 $n1 10Mb 130ms DropTail

$ns duplex-link $s2 $n3 10Mb 130ms DropTail

$ns duplex-link $s3 $n3 10Mb 130ms DropTail

$ns duplex-link $n2 $d3 10Mb 130ms DropTail

$ns duplex-link $n4 $d1 10Mb 130ms DropTail

$ns duplex-link $n4 $d2 10Mb 130ms DropTail

$ns duplex-link $n1 $n2 1Mb 130ms DropTail

$ns duplex-link $n1 $n3 1Mb 130ms DropTail

$ns duplex-link $n2 $n4 1Mb 130ms DropTail

$ns duplex-link $n3 $n5 1Mb 130ms DropTail

$ns duplex-link $n4 $n5 1Mb 130ms DropTail

#Thiết lập vị trí hàng đợi:

$ns duplex-link-op $n1 $n2 queuePos 0.5

Trang 6

Nhóm 9 6

$ns duplex-link-op $n1 $n3 queuePos 0.5

$ns duplex-link-op $n2 $n4 queuePos 0.5

$ns duplex-link-op $n3 $n5 queuePos 0.5

$ns duplex-link-op $n4 $n5 queuePos 0.5 #Sắp xếp vị trí các nút, đích và nguồn:

$ns duplex-link-op $n1 $n2 orient right

$ns duplex-link-op $n2 $n4 orient down

$ns duplex-link-op $n1 $n3 orient left-down

$ns duplex-link-op $n3 $n5 orient right

$ns duplex-link-op $n4 $n5 orient left

$ns duplex-link-op $s1 $n1 orient right-down

$ns duplex-link-op $s2 $n3 orient right-down

$ns duplex-link-op $s3 $n3 orient right

$ns duplex-link-op $n2 $d3 orient right-up

$ns duplex-link-op $n4 $d1 orient right

$ns duplex-link-op $n4 $d2 orient right-up

#Tạo nguồn phát và kết nối nó vào hệ thống

set udp0 [new Agent/UDP]

$udp0 set class_ 1

$ns attach-agent $s1 $udp0 set udp1 [new Agent/UDP]

$udp1 set class_ 2

$ns attach-agent $s2 $udp1 set udp2 [new Agent/UDP]

$udp2 set class_ 3

$ns attach-agent $s3 $udp2

#Tạo đối tượng LossMonitor duy trì thông tin và thống kê dữ liệu nhận được

Trang 7

Nhóm 9 7

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

#Kết nối nguồn tới các đích theo dõi

$ns connect $udp0 $sink0

$ns connect $udp1 $sink1

$ns connect $udp2 $sink2

2.Tạo các luồng lưu lượng

#Tốc độ phát gói (goi/s) của các nguồn lần lượt là:

set lambdas1 450.0 set lambdas2 250.0 set lambdas3 600.0

#Thời gian để phát đi một gói sẽ là:

set InterArrivalTime0 [new RandomVariable/Exponential]

$InterArrivalTime0 set avg_ [expr 1/$lambdas1]

set InterArrivalTime1 [new RandomVariable/Exponential]

$InterArrivalTime1 set avg_ [expr 1/$lambdas2]

set InterArrivalTime2 [new RandomVariable/Exponential]

$InterArrivalTime2 set avg_ [expr 1/$lambdas3]

#Kích thước mỗi gói (bytes) là:

set pksize 145.0

#Các gói truyền đi từ các nút s1, s2, s3 tuân theo phân bố Poisson được thiết lập bởi các hàm sendpacket:

proc sendpacket0 {} {

global ns udp0 InterArrivalTime0 pksize

Trang 8

Nhóm 9 8

set time [$ns now]

$ns at [expr $time + [$InterArrivalTime0 value]] "sendpacket0"

$udp0 send $pksize }

proc sendpacket1 {} {

global ns udp1 InterArrivalTime1 pksize set time [$ns now]

$ns at [expr $time + [$InterArrivalTime1 value]] "sendpacket1"

$udp1 send $pksize }

proc sendpacket2 {} {

global ns udp2 InterArrivalTime2 pksize set time [$ns now]

$ns at [expr $time + [$InterArrivalTime2 value]] "sendpacket2"

$udp2 send $pksize

}

3.Xây dựng các hàm tính băng thông

#hàm tính toán dữ liệu để vẽ đồ thị băng thông

proc record_bw {} {

global sink0 sink1 sink2 f0 f1 f2 f3 set ns [Simulator instance]

#cài đặt thời gian để các thủ tục được thực hiện lại set time 1

#có bao nhiêu bytes đã được nhận tại đích

Trang 9

Nhóm 9 9

set bw0 [$sink0 set bytes_]

set bw1 [$sink1 set bytes_]

set bw2 [$sink2 set bytes_]

set now [$ns now]

#tính toán băng thông (Kbit/s) của tuyến (Si, Di) và ghi lại kết quả #S1-D1

puts $f0 "$now [expr $bw0/$time*8/1000]"

#S2-D2

puts $f1 "$now [expr $bw1/$time*8/1000]"

#S3-D3

puts $f2 "$now [expr $bw2/$time*8/1000]"

#(reset) thiết lập lại các giá trị tại đích nhận

$sink0 set bytes_ 0

$sink1 set bytes_ 0

$sink2 set bytes_ 0

#sau khi reset lặp lại các thủ tục trên

$ns at [expr $now + $time] "record_bw"

}

4.Xây dựng các hàm tính tốc độ mất gói

proc record_lost {} {

global sink0 sink1 sink2 l0 l1 l2 set ns [Simulator instance]

set time 1

#có bao nhiêu gói bị mất set lost0 [$sink0 set nlost_]

set lost1 [$sink1 set nlost_]

set lost2 [$sink2 set nlost_]

Trang 10

Nhóm 9 10

set now [$ns now]

#tính toán số gói bị mất puts $l2 "$now [expr $lost2]"

$sink0 set nlost_ 0

$sink1 set nlost_ 0

$sink2 set nlost_ 0

$ns at [expr $now + $time] "record_lost"

}

5.Sử dụng hàm làm đứt link3

$ns rtmodel-at 45 down $n4 $n5

$ns rtmodel-at 95.0 up $n4 $n5

6.Xây dựng biểu đồ tính lưu lượng của link1 và link3

#băng thông tổng cộng của link L3+L1 puts $f3 "$now [expr ($bw0+$bw1+$bw2)/$time*8/1000]"

7 Kết thúc chương trình, vẽ đồ thị

#hàm kết thúc chương trình và vẽ đồ thị

proc finish {} {

global ns namFile f0 f1 f2 f3 TraceAll

$ns flush-trace

#đóng các tệp tin đầu ra close $namFile

close $f0 close $f1 close $f2

Trang 11

Nhóm 9 11

close $f3 close $TraceAll

#thủ tục để vẽ nam dựa trên dấu vết tệp tin exec nam -a out.nam &

#thủ tục vẽ đồ thị băng thông và mất gói exec xgraph Flow_S1-D1.tr Flow_S2-D2.tr Flow_S3-D3.tr Flow_L1+L3.tr -geometry 1280x720 -t "đồ thị băng thông các link" -x "Time(s)" -y "Speed(Kbit/s)" &

exec xgraph Lost_S3-D3.tr -geometry 1280x720 -t

"đồ thị mất gói tại nút 2" -x "Time(s)" -y "Packets" &

exit 0 }

8 Chạy chương trình

#thiết lập thời gian hoạt động của hệ thống

$ns at 0.0 "record_bw"

$ns at 0.0 "record_lost"

$ns at 1.0 "sendpacket0"

$ns at 1.0 "sendpacket1"

$ns at 1.0 "sendpacket2"

$ns rtmodel-at 45.0 down $n4 $n5

$ns rtmodel-at 95.0 up $n4 $n5

$ns at 100.0 "finish"

#chạy chương trình

$ns run

Sau 5 lần thay biến timer bằng các giá trị:0.05;0.1;0.5;0.75 ;1; cuối cùng đặt biến timer có giá trị bằng 1s và mô phỏng trong 100s.thì thu được kết quả dễ quan sát nhất

Trang 12

Nhóm 9 12

Đơn vị của băng thông và lưu lượng là Kbit/s

Đơn vị tốc độ mất gói là e(goi/s)

Quy định màu :(S1,D1)-red;(S2,D2):green;(S3,D3):blue

IV Kết quả

4.1 Sau khi mô phỏng thành công thu đựợc kêt quả như sau:

Hình 1.Mô hình theo kịch bản:

Trang 13

Nhóm 9 13

Hình 2.Mô hình sau khi chạy ( trước khi L3 bị đứt)

Hình 3.Mô hình sau khi L3 bị đứt:

Trang 14

Nhóm 9 14

4.2 Vẽ đồ thị ( kết quả mô phỏng sau 100s )

Hình 4:Đồ thị băng thông của các luồng (S1,D1), (S2,D2), (S3,D3), L1+L3 :

H4: Đồ thị băng thông 3 nguồn S1,S2,S3 và L1+L3

- nguồn S1

- nguồn S2

- nguồn S3

L1+L3

4.3 Đồ thị tốc độ mất gói tại nút 2(S3-D3)

Trang 15

Nhóm 9 15

Hình 5 Đồ thị tốc độ mất gói tại nút 2

4.4 Kết luận

Các nguồn lưu lượng phân chia tài nguyên băng thông rất phù hợp thực tế và lý thuyết

Tuy đã tìm hiểu trên nhiều trang mạng và cũng đã tham khảo các bài tập mẫu để hiểu rõ bản chất, tuy nhiên có nhiều phần code chúng em vẫn là làm theo chứ chưa thể hiểu bản chất cụ thể Chưa hoàn thành tuyệt đối yêu cầu của cô giáo Vì vậy chúng em kính mong cô giáo sẽ chỉ bảo thêm để chúng em hoàn thiện bài tập lớn này, cũng như các kiến thức của bản thân

Trang 16

Nhóm 9 16

V Tài liệu tham khảo

 http://www.isi.edu/nsnam/ns/tutorial/index.html

 http://nile.wpi.edu/NS/

 http://www-sop.inria.fr/maestro/personnel/Eitan.Altman/COURS-NS/n3.pdf

 http://www.isi.edu/nsnam/ns/tutorial/nsscript4.html

 http://www.isi.edu/nsnam/ns/ns-build.html

 http://www.isi.edu/nsnam/ns/ns-problems.html

 http://www.svbkol.org/forum/showthread.php?t=11106

Ngày đăng: 07/05/2016, 16:00

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w