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.
BTL sở truyền số liệu 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 : Đo băng thông nhiều luồng lưu lượng gửi qua 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 Nhóm BTL sở truyền số liệu MỤC LỤC MỤC LỤC I Giới thiệu nhóm tập lớn thực Giới thiệu nhóm Đề tài thực II Phân công công việc tiến độ: Phân công công việc Tiến độ công việc III Quá trình thực 1.Xây dụng đồ hình gồm Nut,Agent truyền nhận liệu 2.Tạo luồng lưu lượng 3.Xây dựng hàm tính băng thông 4.Xây dựng hàm tính tốc độ gói 5.Sử dụng hàm làm đứt link3 10 6.Xây dựng biểu đồ tính lưu lượng link1 link3 10 Kết thúc chương trình, vẽ đồ thị 10 Chạy chương trình 11 IV Kết 12 4.1 Sau mô thành công thu đựợc kêt sau: 12 4.2 Vẽ đồ thị ( kết mô sau 100s ) 14 4.3 Đồ thị tốc độ gói nút 2(S3-D3) 14 4.4 Kết luận 15 V Tài liệu tham khảo 16 Nhóm BTL sở truyền số liệu I Giới thiệu nhóm tập lớn thực Giới thiệu nhóm Tên nhóm : Nhóm Thành 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 Đề tài thực Đề tài thực : Bài tập Đo băng thông nhiều luồng lưu lượng gửi qua mạng gồm nhiều nút Đề : Cho mạng gồm nút hình vẽ Nút 1, 2, 3, 4, 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ó luồng liệu gửi qua mạng tương ứng (S1, D1), (S2, D2) (S3,D3) Trong Si nguồn phát liệu Di đích Các nguồn Si phát gói với độ dài cố định 145byte, khoảng Nhóm BTL sở truyền số liệu thời gian 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 nút mạng L1, L2, L3, L4, L5 có dung lượng trễ lan truyền 1Mb/s, 130ms 5.1 Dựng kịch mô để mô mạng Chạy mô vòng 100s, thời gian t=45s, đường liên kết L3 bị đứt, 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à luồng (S1, D1), (S2, D2) (S3, D3) sử dụng Vẽ đồ thị lưu lượng tổng cộng C1(t) liên kết L1 L3 5.3 Vẽ đồ thị tốc độ gói e(t) nút II Phân công công việc tiến độ: 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) NS2 Dựng kịch mô để mô mạng Chạy mô vòng 100s, thời gian t=45s, đường liên kết L3 bị đứt, 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à luồng (S1, D1), (S2, D2) (S3, D3) sử dụng Vẽ đồ thị lưu lượng tổng cộng C1(t) liên kết L1 L3.Vẽ đồ thị tốc độ gói e(t) nút Nguyễn Thị Thiên Trang : Mô phỏng, viết báo cáo Tiến độ công việc Tuần : Tìm hiểu đo băng thông nhiều luồng lưu lượng gửi qua mạng gồm nhiều nút Tuần 5-12 : Học cài đặt ns2 ubuntu thao tác ns2 Tuần 13 : Viết chương trình mô ns2, viết báo cáo Nhóm BTL sở truyền số liệu III Quá trình thực Sử dụng công cụ NS2 mô hệ thống gồm luồng lưu lượng gửi qua nút Giả thiết : * Độ dài hàng đợi: K = * luồng liệu (S1,D1),(S2,D2),(S3,D3) phát gói với độ dài 145 bytes Và khoảng thời gian gói λ(S1)= 450; λ(S2)=250kbit/s; λ(S3)=600kbit/s * Các link có dung lượng trễ bằng:1Mb/s 130ms 1.Xây dụng đồ hình gồm Nut,Agent truyền nhận liệu # Tạo 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 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 Nhóm BTL sở truyền số liệu $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í nút, đích 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 kết nối vào hệ thống set udp0 [new Agent/UDP] $udp0 set class_ $ns attach-agent $s1 $udp0 set udp1 [new Agent/UDP] $udp1 set class_ $ns attach-agent $s2 $udp1 set udp2 [new Agent/UDP] $udp2 set class_ $ns attach-agent $s3 $udp2 #Tạo đối tượng LossMonitor trì thông tin thống kê liệu nhận Nhóm BTL sở truyền số liệu 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 đích theo dõi $ns connect $udp0 $sink0 $ns connect $udp1 $sink1 $ns connect $udp2 $sink2 2.Tạo luồng lưu lượng #Tốc độ phát gói (goi/s) nguồn là: set lambdas1 450.0 set lambdas2 250.0 set lambdas3 600.0 #Thời gian để phát gói 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 gói (bytes) là: set pksize 145.0 #Các gói truyền từ nút s1, s2, s3 tuân theo phân bố Poisson thiết lập hàm sendpacket: proc sendpacket0 {} { global ns udp0 InterArrivalTime0 pksize Nhóm BTL sở truyền số liệu 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 hàm tính băng thông #hàm tính toán 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 để thủ tục thực lại set time #có bytes nhận đích Nhóm BTL sở truyền số liệu 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) tuyến (Si, Di) ghi lại kết #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 giá trị đích nhận $sink0 set bytes_ $sink1 set bytes_ $sink2 set bytes_ #sau reset lặp lại thủ tục $ns at [expr $now + $time] "record_bw" } 4.Xây dựng hàm tính tốc độ gói proc record_lost {} { global sink0 sink1 sink2 l0 l1 l2 set ns [Simulator instance] set time #có gói bị set lost0 [$sink0 set nlost_] set lost1 [$sink1 set nlost_] set lost2 [$sink2 set nlost_] Nhóm 9 BTL sở truyền số liệu set now [$ns now] #tính toán số gói bị puts $l2 "$now [expr $lost2]" $sink0 set nlost_ $sink1 set nlost_ $sink2 set nlost_ $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 link1 link3 #băng thông tổng cộng link L3+L1 puts $f3 "$now [expr ($bw0+$bw1+$bw2)/$time*8/1000]" Kết thúc chương trình, vẽ đồ thị #hàm kết thúc chương trình vẽ đồ thị proc finish {} { global ns namFile f0 f1 f2 f3 TraceAll $ns flush-trace #đóng tệp tin đầu close $namFile close $f0 close $f1 close $f2 Nhóm 10 BTL sở truyền số liệu close $f3 close $TraceAll #thủ tục để vẽ nam dựa dấu vết tệp tin exec nam -a out.nam & #thủ tục vẽ đồ thị băng thông 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 link" -x "Time(s)" -y "Speed(Kbit/s)" & exec xgraph Lost_S3-D3.tr -geometry 1280x720 -t "đồ thị gói nút 2" -x "Time(s)" -y "Packets" & exit } Chạy chương trình #thiết lập thời gian hoạt động 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 lần thay biến timer giá trị:0.05;0.1;0.5;0.75 ;1; cuối đặt biến timer có giá trị 1s mô 100s.thì thu kết dễ quan sát Nhóm 11 BTL sở truyền số liệu Đơn vị băng thông lưu lượng Kbit/s Đơn vị tốc độ gói e(goi/s) Quy định màu :(S1,D1)-red;(S2,D2):green;(S3,D3):blue IV Kết 4.1 Sau mô thành công thu đựợc kêt sau: Hình 1.Mô hình theo kịch bản: Nhóm 12 BTL sở truyền số liệu Hình 2.Mô hình sau chạy ( trước L3 bị đứt) Hình 3.Mô hình sau L3 bị đứt: Nhóm 13 BTL sở truyền số liệu 4.2 Vẽ đồ thị ( kết mô sau 100s ) Hình 4:Đồ thị băng thông luồng (S1,D1), (S2,D2), (S3,D3), L1+L3 : H4: Đồ thị băng thông nguồn S1,S2,S3 L1+L3 nguồn S1 nguồn S2 nguồn S3 L1+L3 4.3 Đồ thị tốc độ gói nút 2(S3-D3) Nhóm 14 BTL sở truyền số liệu Hình Đồ thị tốc độ gói nút 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 phù hợp thực tế lý thuyết Tuy tìm hiểu nhiều trang mạng tham khảo tập mẫu để hiểu rõ chất, nhiên có nhiều phần code chúng em làm theo chưa thể hiểu chất cụ thể Chưa hoàn thành tuyệt đối yêu cầu cô giáo Vì chúng em kính mong cô giáo bảo thêm để chúng em hoàn thiện tập lớn này, kiến thức thân Nhóm 15 BTL sở truyền số liệu 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 Nhóm 16 [...]... 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) Nhóm 9 14 BTL cơ sở truyền số liệu 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. .. $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 Nhóm 9 11 BTL cơ sở truyền số liệu Đơ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ả... -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"... 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 Nhóm 9 15 BTL cơ sở truyền số liệu