1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO BÀI TẬP LỚN MÔN CƠ SỞ MẠNG THÔNG TIN

25 5 0

Đ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

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI KHOA ĐIỆN TỬ VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN MÔN CƠ SỞ MẠNG THÔNG TIN ĐỀ BÀI SỐ GIẢNG VIÊN HƯỚNG DẪN: SINH VIÊN THỰC HIỆN: Nguyễn Ngọc Mạnh(TN) Lưu Tiến Đạt Nguyễn Viết Thu TS PHẠM VĂN TIẾN MSSV:20071914 MSSV:20070716 MSSV:20072801 HÀ NỘI 11/2010 Tóm tắt nội dung báo cáo : I, Đề phân tích yêu cầu II Cách thức tiến hành công việc III Giới thiệu NS2 IV, Nội dung chương trình mơ V, Kết mô 13 VI,Kết luận 24 I, Đề phân tích yêu cầu : 1.Đề bài: Các thông số mạng : - Mạng gồm nút - Các liên kết nút có trễ truyền lan 10ns, chiều dài hàng đợi 50 Cụ thể : + Các liên kết máy tính định tuyến thuộc loại 100BaseT có băng thơng 100 Mbps + Băng thơng liên kết nút hình vẽ - Mạng truyền nguồn thông tin : + Thứ nguồn lưu lượng tcp - ứng dụng FTP : Kích thưóc file : 50MByte Kích thước gói : 1400 byte + Thứ hai luồng udp - traffic CBR Tốc độ : 1Mbps Kích thước gói : 1024 byte Nguồn lưu lượng tcp khởi động trước luồng udp : 10s 2, Yêu cầu : - Viết kịch chạy mô mạng với thời gian lớn phút - Thu thập số liệu khả thông luồng vẽ đồ thị - Thu thập vẽ đồ thị cửa sổ tắc nghẽn (congestion window) - Thay đổi tham số luồng udp sau thu thập vẽ đồ thị tỷ lệ gói node_1 node_2 luồng udp II Cách thức tiến hành cơng việc: II.1 Cơng việc chung: -Tìm hiểu NS2 -Viết chương trình đơn giản chạy NS2 -Tạo topology cho tập lớn tự tạo kịch để chạy II.2 Phân chia công việc: 1.Nguyễn Ngọc Mạnh (trưởng nhóm) : -Cài đặt NS2, tìm tài liệu liên quan cung cấp cho thành viên nhóm Điều phối cơng việc nhóm -Tìm hiểu khái niệm congestion window -Thu thập số liệu vẽ cửa sổ tắc nghẽn -Thay đổi tốc độ luồng UDP thu thập số liệu -Tổng hợp , báo cáo 2.Lưu Tiến Đạt: -Tìm hiểu Xgraph -Xây dựng chương trình tính khả thơng cho luồng -Tìm hiểu UDP,TCP 3.Viết Thu: -Tìm hiểu awk -Viết chương trình tính tỉ lệ gói node_1, node_2 III Giới thiệu NS2 NS (phiên bản) phần mềm mô mạng điều khiển kiện riêng rẽ hướng đối tượng, phát triển UC Berkely, viết ngôn ngữ C++ OTcl NS hữu ích cho việc mơ mạng diện rộng (WAN) mạng local (LAN) Bốn lợi ích lớn NS-2 phải kể đến là:  Khả kiểm tra tính ổn định giao thức mạng tồn  Khả đánh giá giao thức mạng trước đưa vào sử dụng  Khả thực thi mơ hình mạng lớn mà gần ta khơng thể thực thi thực tế  Khả mô nhiều loại mạng khác Các lệnh bản: 1.Tạo biến Để tạo biến ta dùng lệnh set Có cách dùng lệnh set sau: set a : Tạo biến a gán cho a giá trị set b $a: Tạo biến b gán cho b giá trị giá trị biến a set a [] : Tạo biến a gán cho a giá trị hàm “[]” set a [ new Node]: Tạo biến a thiết lập a node Node đối tượng NS2 Kiểu biến Chú ý Tcl NS2 khơng có kiểu biến Biến string hay interger phụ thuộc vào giá trị ta gán cho biến Ví dụ: set a [expr 1/20] : a có giá trị set a [expr 1.0/20.0] : a có giá trị xác 0.05 Điều quan trọng trình lập trình cho NS2 Lệnh puts Lệnh puts dùng để ghi giá trị bên Trong NS2 lệnh puts ghi bảng lệnh terminal Mỗi lần lệnh puts gọi, tạo dịng Ngồi lệnh puts cịn dùng để ghi giá trị lên biến dùng để ghi giá trị (trong nam graph) định nghĩa từ trước Ví dụ: set nf [open out.nam w]n puts $nf “$a” Lệnh if Cấu trúc lệnh if giống c++: if{expression} { } else{ } Vòng lặp for for{ set i 0}{$i < 5} {incr i}{ } Chương trình Trong Tcl NS2, để thích ta sử dụng dấu # đầu dòng Điều làm cho chương trình thống, gọn gang hơn, dễ đọc dễ sửa sai Cấu trúc chương trình con: proc test2 { par1, par2, par3…}{ global var1, var2, var3… return $something } Chú ý lệnh return có khơng Phần mềm mơ Nam Ở nói đến số lệnh thường để sử dụng Nam phần mềm mô mạng NS2 Chú ý chạy trực tiếp chương trình Nam lệnh khác - Tạo file theo dõi hệ thống phục vụ cho việc mô phỏng: set nf [open out.nam w] $ns namtrace-all $nf - Gọi phần mềm mô Nam Lệnh thường đặt chương trình “finish” exec nam out.nam & Lệnh gọi chương trình Nam chạy dựa vào file theo theo dõi out.nam - Xác định vị trí node cửa sổ Nam $ns duplex-link-op $node1 $node2 orient right Chú ý câu lệnh right dùng để phương hướng Hồn tồn thay right left, right – down, down, left – down, v.v - Gán màu cho gói tin chạy chương trình mơ $ns color red # Gán cho gói tin thuộc luồng màu đỏ - Gán màu cho node $node color red # thay red blue, green, yellow…… - Gán hình dạng cho node $node shape box - Gán màu sắc cho đường link $ns duplex-link-op $node1 $node2 “green” Theo dõi kiện 2a Các lệnh theo dõi Các lệnh dùng để theo dõi kiện hệ thống: - Cân cấp phát đệm cho tất file theo dõi: $ns flush-trace - Tạo đối tượng theo dõi: Cấu trúc: create-trace {type filename scr dst} Ví dụ : $ns create-trace Drop $tf $n0 $n2 - Theo dõi tất kiện hệ thống: $ns trace-all $tf 2b Cấu trúc file trace Mỗi lệnh theo dõi lệnh có cấu trúc đầu khác Ở xét đến cấu trúc file đầu lệnh “traceall” Với công cụ phân tích file liệu có sẵn awk, grep, perl,… Chúng ta có tất thơng tin mong muốn q trình hệ thống mạng mơ cách phân tích file “trace-all” File trace tổ chức 12 trường hình Trường mô tả loại kiện, cho kí tự r, +, -, d tương ứng với trường hợp nhận (ở đầu link), xếp vào hàng đợi (enqueued), rời khỏi hàng đợi (dequeued), bị hủy (dropped) Trường thứ hai biểu diễn thời gian kiện xuất Thông báo node input link nơi kiện xảy Thông báo node ouput link nơi kiện xảy Loại gói tin ( ví dụ TCP, CBR, tên loại tương ứng với tên application mà đặt, ví dụ phần trước application TCP gọi “tcp”) Kích cỡ gói tin Một vài loại cờ Chúng ta xét phần sau Flow id (fid) Ipv6 mà người dùng thiết lập cho luồng (flow) đầu vào OTcl cript Ta dùng trường để phân tích kết quả, để thiết lập màu sắc cho luồng mô NAM Địa nguồn, nơi phát gói tin, cho dạng “node.port” 10 Địa nguồn đích, nơi nhận gói tin, cho với dạng 11 Số chuỗi gói tin lớp giao thức mạng Mặc dù thành phần UDP mạng thực tế khơng có số chuỗi ns giữ lại vết (track) để phân tích kết 12 Trường cuối ghi số id gói tin (unique id of packet) IV, Nội dung chương trình mơ phỏng: Mở đầu chương trình mơ ln ln lệnh tạo đối tượng Simulator: set ns [new Simulator] -gán màu cho luồng liệu: $ns color Blue $ns color Red -Tạo file lưu cửa sổ tắc nghẽn set cwnd [open cwnd.tr w] - Tạo file trace lưu tất thông số mạng xét set tracefile [open TraceAll.tr w] $ns trace-all $tracefile Tiếp theo ta thiết lập file ghi lại thông tin theo dõi phục vụ cho việc chạy Nam lệnh để tạo node: set nf [open out.nam w] $ns namtrace-all $nf -Tạo file chứa thông tin băng thông: set f1 [open khathong1.tr w] set f2 [open khathong2.tr w] - Xác định phương thức định tuyến cho mạng : $ns rtproto Session Tạo nút: set s1 [$ns node] set s2 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set n4 [$ns node] set d0 [$ns node] -Tạo liên kết nút: $ns duplex-link $s1 $n1 100Mb 10ns DropTail $ns duplex-link $s2 $n1 100Mb 10ns DropTail $ns duplex-link $n1 $n2 1.5Mb 10ns DropTail $ns duplex-link $n1 $n3 20Kb 10ns DropTail $ns duplex-link $n1 $n4 1.5Mb 10ns DropTail $ns duplex-link $n2 $n3 1Mb 10ns DropTail $ns duplex-link $n4 $n3 1.5Mb 10ns DropTail $ns duplex-link $n3 $d0 100Mb 10ns DropTail -Giới hạn kích thước hàng đợi liên kết: $ns queue-limit $n1 $n2 50 $ns queue-limit $n2 $n3 50 $ns queue-limit $n3 $d0 50 $ns queue-limit $n1 $n4 50 $ns queue-limit $n4 $n3 50 $ns queue-limit $n1 $n3 50 $ns queue-limit $s1 $n1 50 $ns queue-limit $s2 $n1 50 -Xắp sếp vị trí nút NAM $ns duplex-link-op $s1 $n1 orient right-down $ns duplex-link-op $s2 $n1 orient right-up $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right-down $ns duplex-link-op $n3 $d0 orient right $ns duplex-link-op $n1 $n4 orient right-down $ns duplex-link-op $n4 $n3 orient right-up $ns duplex-link-op $n1 $n3 orient right -Đặt nhãn cho nút: $s1 label $s2 label $d0 label $n1 label $n4 label $n3 label $n2 label " " " " " " " Source " Source 2" Destination " n1" n2 " n3" n4 " -Đặt kích thước băng thơng cho liên kết: $ns duplex-link-op $n1 $n2 label "1.5Mb" $ns duplex-link-op $n2 $n3 label "1.5Mb" $ns duplex-link-op $n1 $n4 label "1.5Mb" $ns duplex-link-op $n4 $n3 label "1Mb" $ns duplex-link-op $n1 $n3 label "20Kb" -Tạo cost cho liên kết theo băng thông: $ns cost $n1 $n2 $ns cost $n1 $n3 77 $ns cost $n1 $n4 $ns cost $n2 $n3 $ns cost $n3 $n4 - Tạo nguồn lưu lượng : + Nguồn lưu lượng tcp gắn mã luồng cho nguồn lưu lượng : set tcp [new Agent/TCP] $ns attach-agent $s1 $tcp set sink2 [new Agent/TCPSink/DelAck] $ns attach-agent $d0 $sink2 $ns connect $tcp $sink2 $tcp set fid_ $tcp set packetSize_ 1400 -Cài đặt ứng dụng FTP cho TCP set ftp [new Application/FTP] $ftp attach-agent $tcp $ftp set type_ FTP -Thiết lập UDP kết nối set udp [new Agent/UDP] $ns attach-agent $s2 $udp set sink1 [new Agent/LossMonitor] $ns attach-agent $d0 $sink1 $ns connect $udp $sink1 $udp set class_ 10 -Cài đặt ứng dụng CBR cho UDP set cbr [new Application/Traffic/CBR] $cbr attach-agent $udp $cbr set type_ CBR $cbr set packet_size_ 1024 $cbr set rate_ 1Mb - Thủ tục record với chức thu thập số liệu băng thông cửa sổ tắc nghẽn : proc record {} { global tcp cwnd sink1 sink2 f1 f2 set ns [Simulator instance] set time 0.5 #so byte nhan duoc tu moi luong set bw1 [$sink1 set bytes_] set bw2 [$sink2 set bytes_] #cai dat thoi gian hien tai set now [$ns now] #tinh toan bang thong va ghi no vao file puts $f1 "$now [expr $bw1/$time*8/1000000]" puts $f2 "$now [expr $bw2/$time*8/1000000]" #Reset gia tri sink $sink1 set bytes_ $sink2 set bytes_ set cwnd0 [$tcp set cwnd_] set now [$ns now] puts $cwnd "$now $cwnd0" $ns at [expr $now+$time] "record" } - Thủ tục finish với chức ghi liệu file trace, gọi lệnh mô vẽ đồ thị : proc finish {} { global ns nf cwnd f1 f2 tracefile losspacket_1 losspacket_2 $ns flush-trace #Close the NAM trace file close $nf close $tracefile close $f1 close $f2 11 close $cwnd close $losspacket_1 close $losspacket_2 ## Luu thong tin mat goi tai node2 cua luong cbr vao file node_2.dat exec awk -f node_1.awk TraceAll.tr >node_1.dat exec awk -f node_2.awk TraceAll.tr >node_2.dat exec nam out.nam & exec xgraph cwnd.tr -bg white -zg blue -t "Cua so tac nghen" & exec xgraph khathong1.tr khathong2.tr -bg white -y "Bandwith (Mbps)" -x "Time (s)" -t "Do thi kha thong" -geometry 800x400 & exec xgraph node_1.dat node_2.dat -bg white -t "Ti le mat goi cua luong CBR o node_1 node_2" -x "Time (s)" -y "%" -geometry 800x400 & exit } - Sau xây dựng xong cấu trúc mạng phương thức thu thập số liệu, ta đặt thời gian cho kiện : #thiet lap kich ban mo phong $ns at 0.0 "record" $ns at 0.1 "$ftp start" $ns at 10.1 "$cbr start" $ns at 130.0 "$ftp stop" $ns at 140.0 "$cbr stop" #goi thu tuc "finish" sau 150s $ns at 150.0 "finish" -Chạy mô $ns run V, Kết mơ : 1, Mơ hình thu NAM : a, Khi tốc độ luồng udp la 1MB - Mơ hình mơ mơ trước 10s( dùng công cụ edit cua Nam đễ xếp) 12 - mô sau 10.1s: 13 b,Khi tốc độ luồng udp1 1.5MB mô sau 10.1s: 14 c,Khi tốc độ luồng udp1 2MB mô sau 10.1s: 15 16 2, Các đồ thị thu : a, Khi tốc độ luồng udp1 1MB : - Đồ thị khả thông : 17 Đường màu đỏ biểu diễn khả thông luồng udp Đường màu xanh biểu diễn khả thông luồng tcp - Đồ thị cửa sổ tắc nghẽn : 18 - Đồ thị tỷ lệ gói node_1 node_2 : b, Khi tốc độ luồng udp 1: - Đồ thị khả thông : 19 - Đồ thị cửa sổ tắc nghẽn : - Đồ thị tỷ lệ gói node_1 node_2 : c, Khi tốc độ luồng udp 2MB - Đồ thị khả thông : 20 21 - Đồ thị cửa sổ tắc nghẽn : 22 - Đồ thị tỷ lệ gói node_1 node_2 : Nhận xét: -Nhìn vào đồ thị khả thơng ta thấy luồng udp bắt đầu phát tốc độ luồng tcp giảm mạnh, chí giảm Điều giao thức truyền tin UDP TCP TCP UDP giao thức tầng giao vận sử dụng giao thức IP tầng mạng Nhưng TCP cung cấp dịch vụ liên kết đáng tin cậy ◦ ứng dụng sử dụng TCP phải thiết lập liên kết với trước trao đổi liệu Dữ liệu từ tầng ứng dụng gửi đến TCP chia thành segment có kích thước phù hợp để gửi Khi TCP gửi segment trì thời gian đợi phúc đáp từ nơi nhận, thời gian khơng nhận phúc đáp, có phúc đáp báo sai segment gửi lại ◦ Khác với TCP, UDP khơng có chế báo nhận, khơng có chức thiết lập giải phóng liên kết, khơng xếp đơn vị liệu Vì dẫn đến tình trạng trùng liệu mà khơng có thơng báo lỗi đến người gửi 23 -Nhìn vào cửa sổ tác nghẽn luồng TCP ta thấy chế truyền gói tin giao thức TCP: +10s giá trị cửa sổ tăng dần +sau luồng UDP phát kích thước cửa sổ giảm mạnh ổn định kích thước cửa sổ khơng thay đổi nhiều Đặc biệt tốc độ luồng UDP tăng lên (1.5Mbps 2Mbps) cửa sổ biến -Nhìn vào đồ thị “tỉ lệ gói node1 node2”: - Khi luồng UDP phát gói tin node1 xảy tượng gói tin Với tốc độ luồng UDP 1Mbps tỉ lệ gói nút thấp (khoảng 1,2-1,4%) Do lúc tốc độ luồng UDP cịn thấp Khi tăng tốc độ lên 1.5Mbps tỉ lệ gói tăng vọt (~20%) Tiếp tục tăng tốc độ lên 2Mbps ban đầu (10.1-25s) xảy gói có xu hướng giảm dần sau (từ 25s trở đi) tỉ lệ gói -Tỉ lệ gói nút không.( hay không xảy tượng gói) Điều dễ dàng giải thích nút nút trung gian trình truyền gói thơng tin từ nguồn đến đích VI,Kết luận : Môn sở mạng thông tin môn học chun ngành thú vị,và bổ ích Nó cung cấp kiến thức cho bạn có định hướng theo mảng Viễn Thông Và theo quan điểm học phải đôi với hành, em thấy việc cho bọn em có hội làm tập lớn việc có ý nghĩa Và đề thầy giao phù hợp với trình độ chúng em Sau làm xong tập chúng em học thêm nhiều điều Trước tiên phải kể đến kiến thức mạng thơng tin, giao thức truyền gửi gói tin, Thứ hai biết cách sử dụng cơng cụ hỗ trợ thiết kế mạng hữu hiệu NS2, biết thêm hệ điều hành mã nguồn mở sử dụng ngày phổ biến ngày Linux Mặc dù cố gắng chúng em tự nhận thấy làm cịn nhiều thiếu sót, mong thầy xem xét cho ý kiến để tập hồn thiện Lời cuối, nhóm chúng em chúc thầy cơng tác tốt, sức khỏe có nhiều thành công *** 24 Tài liệu tham khảo Slide giảng Cơ sở mạng thông tin thầy Phạm Văn Tiến 2.Ebook: -Introduction to Network Simulator NS2 Teerawat Issariyakul • Ekram Hossain - Ns2_manual.pdf -NS2 for beginner.pdf 3.Trang web tham khảo: http://www.isi.edu/nsnam/ns/tutorial/ 4.Sử dụng Google.com 25

Ngày đăng: 27/12/2022, 00:48

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

TÀI LIỆU LIÊN QUAN

w