Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
2,68 MB
Nội dung
Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] I Đề yêu cầu Cho mạng thông tin với cấu Hình Nút s1 phát luồng gói gửi tới đầu cuối d1, nút s2 tạo hai luồng gói gửi tới nút d1 tới nút d2 Cả luồng thơng tin nói sử dụng giao thức truyền UDP Kích thước gói s1 s2 phát tương ứng 1300 byte 1000 byte; số lượng gói phát luồng tuân theo phân bố Poisson, tốc độ 1000 gói/s, 1500 gói/s 2000 gói/s Dựng kịch mô hệ thống thông tin nói với thời gian mơ dài phút Thu thập số liệu mô vẽ đồ thị thời gian trễ định tuyến Trong phiên chạy mô phỏng, tốc độ phát sinh gói luồng tăng 100 gói/s sau khoảng thời gian 30s, thống kê vẽ đồ thị tỷ lệ gói định tuyến khoảng thời gian Thay đổi tham số tốc độ phát sinh kích thước gói theo chiều biến thiên ngược nhau, vẽ đồ thị biểu diễn độ trễ truyền thông luồng Nhận xét kết thu Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] II Phân tích yêu cầu Phân tích đề Bài tốn đặt có số số liệu đầu tham số không nêu đề bài, để thực cần tùy chọn số giá trị tham số sau: máy tính (node s1 s2) nối với mạng liên kết Ethernet 100Mb Trễ truyền lan tất liên kết 10ns Chiều dài mặc định tất hàng đợi 50 Bài toán yêu cầu xây dựng mạng thông tin với luồng liệu UDP từ node nguồn đến đích thơng qua node mạng (router) Yêu cầu cụ thể phải thực phần mềm NS2: Dựng kịch mô hệ thống, vẽ đồ thị thời gian trễ router, thay đổi tốc độ phát sinh gói, vẽ đồ thị tỷ lệ gói router, vẽ đồ thị biểu diễn độ trễ truyền thông Để thực u cầu thành viên nhóm cần phải: - Cài đặt, tìm hiểu sử dụng tốt hệ điều hành ubuntu, Bộ công cụ mơ ns2 Tìm hiểu định tuyến Thiết lập số lượng gói phát sinh theo phân bố Poisson Tìm hiểu giao thức truyền thơng UDP Tìm hiểu cơng cụ xử lý số liệu vẽ đồ thị ns2 Phương hướng thực yêu cầu phần mềm NS2 a Tạo phân bố Poisson Trong Ns2 mặc định khơng có sẵn traffic Poisson để gắn vào agent UDP để mơ lưu lượng mạng Tuy nhiên Ns2 lại có sẵn traffic Exponential – thay đổi theo phân bố mũ Do đó, dựa vào mối quan hệ phân bố Poisson phân bố Exponential, ta xây dựng tiến trình Poisson qua đối tượng ExponentialOn/Off với thành phần tham số: packetsize_ dung lượng cố định gói liệu burst_ time_ thời gian “bật” khởi tạo idle_ time_ thời gian “tắt” khởi tạo rate_ tốc độ gói Để tạo tiến trình Poisson ta cho tham số burst_time_ idle_time tiến trình Poisson Hỗ trợ ơn tập [TYPE THE DOCUMENT TITLE] b Tính thời gian trễ định tuyến Thời gian trễ định tuyến tính từ lúc node bắt đầu nhận gói tin từ node trước đến node gửi gói tin sang node khác Để tính thời gian ta tạo file traceAll.tr để lưu vết tất kiện xảy Sau xây dựng hàm lưu file awk để trích xuất liệu thời gian gói tin đến node từ trace-file tr c Tăng gói tin Để tăng tốc độ gói tin sau khoảng thời gian 30 s ta dùng thủ tục thủ tục có câu lệnh gọi lại sau 30s Như ta cần gọi thủ tục lần Về phương pháp ta thực sau.: - Nguồn s1 phát gói tin với tốc độ 1300(byte/gói) x 1000 (gói/s) = 1.3 MBps - Nguồn s2 phát luồng với gói tin tốc độ 1.5MBps 2MBps - Cứ sau 30s nguồn s1 s2 tăng tốc độ gói 100 gói/s nên ta có lượng tăng sau 30s là: s1: 100 * 1300 = 130000 bytes s2: 100 * 1000 = 100000 bytes (2 luồng) - Khi thay đổi số gói (λ) dần đến idle_time_ rate_ thay đổi Cách tính idle_time_ sau: = λ , sau giảm λ idle_time_ = - Rate tính sau: S1: rate_ = rate_ + 130000 (bytes ) S2: rate_ = rate_ + 100000 (bytes) Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] d T í n h t ỉ lệ gói định tuyến : Tính tỉ lệ gói tính tuyến cách lấy số gói bị drop chia cho tổng số gói truyền số gói bị drop số gói sent Trong khoảng thời gian 30s lại reset số gói drop số sent Ta tạo hàm lưu file awk để trích xuất kiện gói đến gói bị rớt từ file trace để tính tốn tỉ lệ gói e Tính độ trễ truyền thơng luồng Trễ truyền thơng luồng tính thời gian từ lúc gửi gói từ node nguồn đến nhận gói node đích Tương tự trên, ta tạo hàm lưu file awk để trích xuất liệu từ file trace, hàm lấy thời điểm phát, thời điểm đến đích bị hủy tất gói tin tất luồng để tính độ trễ Các gói luồng phân biệt pktid fid III.Lập kế hoạch phân công công việc a Lập kế hoạch Bài tập lớn thực tuần , từ tuần đến tuần 15 thực học, bảo vệ tập lớn tuần 16.: - - Tuần 1: Cài đặt hệ điều hành Ubuntu NS2, Các thành viên nhóm liên hệ với nhau, tổ chức họp nhóm bầu nhóm trưởng , tìm hiều u cầu đề bài, phân cơng cơng việc cho thành viên nhóm Tuần 2:Tìm hiều giao thức truyền thơng mạng UDP , phát gói tin theo phân bố Poission, Thực mô số hệ thống mạng thông tin đơn giản NS2 Hỗ trợ ôn tập - [TYPE THE DOCUMENT TITLE] Tuần 3: Code mơ hình mạng thơng tin số 1, chạy thử kiểm tra, Tuần 4: Gắn nguồn liệu vào node truyền yêu cầu đề Tuần 5,6 : Tìm hiểu trễ đường truyền, trễ định tuyến tỷ lệ gói định tuyến Tuần 7,8: Kiểm tra lại code lần cuối viết báo cáo b Phân công việc STT Họ Tên Công việc Đặng Đình Tuấn Tìm hiểu cơng cụ xgraph AWK Tính tốn trễ định tuyến vẽ đồ thị Tăng tốc độ phát sinh gói Hồ Anh Tuấn Lê Văn Tuấn luồng 100 gói/s sau khoảng thời gian 30s, thống kê vẽ đồ thị tỉ lệ gói định tuyến khoảng thời gian Hồ Anh Tuấn Lê Văn Tuấn Vũ Việt Vương Xây dựng tiến trính Poisson Thay đổi tốc độ phát sinh kích thước gói theo chiều biến thiên ngược (sau 30s thay đổi 100 gói/s 100byte) Tính tốn trễ truyền thơng luồng Nhận xét kết thu I Quá trình thực Tìm hiểu chuẩn bị kiến thức lý thuyết liên quan a Các phương thức định tuyến NS-2 thực thi ba sách định tuyến: - static routing (định tuyến tĩnh): Là định tuyến dùng mặc định ns2 Định tuyến sử dụng thuật toán tinh toán đường xác lần lúc khởi động Khi cấu trúc mạng thay đổi phải cập nhật lại, phù hợp với hệ thống đơn giản, có kết nối đơn đường truyến liệu xác định trước Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] session routing (định tuyến động) : nút mạng tự động tìm đường tối ưu đến nút khác lập bảng định tuyến Bảng định tuyến cập nhật thường xuyên co thay đổi Trong tập ta sử dụng phương pháp định tuyến - DV routing: định tuyến véc tơ khoảng cách Dùng phương thức rtproto lớp Simulator để xác định sách định tuyến dùng $ns rtproto - b Tìm hiểu giao thức truyền thông UDP Giao thức UDP (User Datagram Protocol) hay cịn gọi giao thức gói người dùng hai giao thức cốt lõi giao thức TCP/IP, cho phép người dùng gửi liệu ngắn gọi datagram từ máy tính đến máy tính khác UDP khơng đảm bảo tin cậy thứ tự truyền nhận, gói liệu đến khơng thứ tự bị mà khơng có thơng báo Tuy nhiên, UDP nhanh hiệu mục tiêu kích thƣớc nhỏ yêu cầu khắt khe thời gian, giao thức hữu dụng việc trả lời truy vấn với số lượng lớn người yêu cầu Những ứng dụng phổ biến sử dụng UDP DNS (Domain Name System), ứng dụng streaming media, Voice over IP, Trivial File Transfer Protocol (TFTP), game trực tuyến c Tracing Trong NS, hoạt động mạng trace (lưu dấu) simplex link Nếu mô trực tiếp đến hoạt động trace (bằng lệnh $ns trace-all file hay $ns namtrace-all file) link có đối tượng trace chèn thêm vào User tạo đối tượng trace với loại xác định để lưu vết mạng từ nguồn đến đích lệnh create-trace {type file src dst} Khi đối tượng chèn thêm đối tượng trace (EnqT, DeqT, DrpT, RecvT) nhận packet, ghi vào file trace xác định mà không tiêu tốn thời gian mô Và truyền packet đến đối tượng mạng File trace chuẩn NS-2 định dạng file sau: Hỗ trợ ôn tập o o o o o o o o o o o o [TYPE THE DOCUMENT TITLE] event: thao tác thực mô time: thời gian xuất kiện from node: node node trace to node: node node trace pkt type: loại packet pkt size: kích cỡ packet flags: cờ fid: mã luồng src addr: địa node nguồn dst addr: địa node đích seq num: số trình tự pkt id: mã packet d Xgraph Xgrap công cụ vẽ đồ thị cung cấp ns Xgraph cho phép tạo file postcript , ảnh , số định dạng khác cách ấn vào “Hdcpy” câu lệnh gọi Xgraph khai báo kịch TCL xuất đồ thị kết thúc mô Đầu vào Xgraph nhiều file chứa cặp giá trị x-y dòng (mỗi dòng chứa tọa độ điểm đồ thị ) Ví dụ lệnh : Xgraph f1 f2 vẽ đồ thị file f1,f2 Một số lựa chọn sử dụng Xgraph : -Title : -t “ten_do_thi” -Kích thướ c : -geometry xsize x ysize -Tiêu đề cho trục : -x “xtitle” –y “ytitle” - Màu chữ lướ i – v -Màu – bg Thực chương trình a) Tạo phân bố Poisson Chúng em tạo phân phối Poisson theo phương pháp trình bày phần phân tích u cầu Ví dụ # Tao phan phoi Possion cho udp1 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] Tạo đối tượng Exponential set Poisson1 [new Application/Traffic/Exponential] $Poisson1 set packetSize_ 1000 Cho tham số burst_time_ idle_time tiến trình Poisson Theo có lamda cho luồng UDP1 1000 => idle_time_ = 0.001 $Poisson1 set burst_time_ $Poisson1 set idle_time_ 0.001 $Poisson1 set rate_ 5Mb $Poisson1 attach-agent $udp1 b) Tính thời gian trễ định tuyến Ta tạo file awk với nội dung hàm sau.: # Node # TimePktIn: thoi diem goi tin bat dau di vao hang doi # TimePktOut: thoi diem goi tin di # Delay: tre truyen thong cua goi tin BEGIN {TimePktIn[50000];TimePktOut[50000];Delay[50000];} { if (($1 == "r") && ($4 == "2")) TimePktIn[$12] = $2; if (($1 == "-") && ($3 == "2")) { TimePktOut[$12] = $2; Delay[$12] = TimePktOut[$12]-TimePktIn[$12]; print $12" "Delay[$12]; } } END {} Hàm dùng lệnh if để kiểm tra kiện thêm xuất gói node Đánh dấu mốc thời gian xảy kiện trừ cho để tính trễ c) Tăng gói tin Thủ tục tăng gói tin khaii báo sau: proc PackageIncrease {} { global ns Poisson1 Poisson2 Poisson3 set now [$ns now] set time 30 set idle1 [$Poisson1 set idle_time_] set idle2 [$Poisson2 set idle_time_] set idle3 [$Poisson3 set idle_time_] set rate1 [$Poisson1 set rate_] set rate2 [$Poisson2 set rate_] Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] set rate3 [$Poisson3 set rate_] $Poisson1 set idle_time_ [expr 1.0/[expr 1.0/[$idle1 + 100]]] $Poisson2 set idle_time_ [expr 1.0/[expr 1.0/[$idle2 +100]]] $Poisson3 set idle_time_ [expr 1.0/[expr 1.0/[$idle3 +100]]] $Poisson1 set rate_ [expr $rate1 + 130000] $Poisson2 set rate_ [expr $rate2 + 100000] $Poisson3 set rate_ [expr $rate3 + 100000] $ns at [expr $now + $time] "PackageIncrease" } Hàm lấy đầu vào idle_time_ rate_ phân phối poisson (thực chất đối tượng ExponentialOn/Off ) để tính tốn lại giá trị sau tốc độ phát sinh tăng lên gán trở lại cho đầu vào d) T í n h t ỉ lệ gói định tuyến Tạo file awk chứa hàm sau: #Ti le mat goi tai node1 BEGIN {packetDrop = 0;packetReceive = 0; ThoiGianXet =0;} { if ($2 >= ThoiGianXet) { if (packetDrop + packetReceive) print ThoiGianXet" "100*packetDrop/(packetReceive + packetDrop); else print ThoiGianXet" "0; packetDrop =0; packetReceive =0; ThoiGianXet=ThoiGianXet +30; } if (($3=="2") && ($1=="+")) packetReceive++; if (($3=="2") && ($1=="d")) packetDrop++; } END {} Hàm dùng hai biến packetDrop packetReceive để lưu số gói số gói lưu vào hàng đợi Biến ThoiGianXet dùng để khoảng thời gian bội số 30s Nghĩa sau 30s ta lại tính độ trễ lần khoảng thời gian 30s đó, sau lại cho packetDrop packetReceive để tính đọ trễ cho 30s Dữ liệu đầu vào trích xuất từ file trace thơng qua lệnh if Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] e) Tính độ trễ truyền thơng luồng BEGIN {TimeReceive[50000];TimeSend[50000];Delay[50000]} { action = $1; time = $2; from = $3; to = $4; type = $5; pktsize = $6; flow_id = $8; src = $9; dst = $10; seq_no = $11; packet_id = $12; if ((flow_id=="1")) { if ((action == "+")&&(from=="0")) { TimeSend[packet_id] = time; } if ((action == "r") && (to == "8")) { TimeReceive[packet_id] = time; Delay[packet_id] = TimeReceive[packet_id]TimeSend[packet_id]; print time " "Delay[packet_id] >> "DelayUDP1.tr"; } if (action == "d") { Delay[packet_id] = 0; print time " "Delay[packet_id] >> "DelayUDP1.tr"; } } if ((flow_id=="2")) { if ((action == "+") && (from=="1")) { TimeSend[packet_id] = time; } if ((action == "r") && (to == "9")) { TimeReceive[packet_id] = time; Delay[packet_id] = TimeReceive[packet_id]TimeSend[packet_id]; 10 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] print time " "Delay[packet_id]>> "DelayUDP2.tr"; } if (action == "d") { Delay[packet_id] = 0; print time " "Delay[packet_id]>> "DelayUDP2.tr"; } } if ((flow_id=="3")) { if ((action == "+")&&(from=="1")) { TimeSend[packet_id] = time; } if ((action == "r") && (to == "8")) { TimeReceive[packet_id] = time; Delay[packet_id] = TimeReceive[packet_id]TimeSend[packet_id]; print time " "Delay[packet_id]>> "DelayUDP3.tr"; } if (action == "d") { Delay[packet_id] = 0; print time " "Delay[packet_id]>> "DelayUDP3.tr"; } } } END {} Trong hàm trên, lệnh if kiểm tra mã luồng kiện file trace xét tới để tìm packet luồng Các lệnh if bên kiểm tra kiện gửi packet nút nguồn để tìm thời điểm gửi, kiểm tra kiện nhận packet nút đích để kiểm tra thời điểm nhận Tính hiệu thời gian thời điểm ta có trễ truyền thơng gói xét II Thực mô Kịch mô phỏng: 11 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] Thời điểm(s) 1.0 Mục đích Luồng 1,2,3 truyền liệu 2.0 Luồng truyền liệu 3.0 Luồng truyền liệu 30.0 300.0 Bắt đầu tăng tốc độ gói 100 gói/s sau chu kỳ 30s ( Với yêu cầu ko cho hàm thực thi ) Luồng kết thúc truyền liệu 300.0 Luồng kết thúc truyền liệu 300.0 Luồng kết thúc truyền liệu 305.0 Đóng file trace data Vẽ đồ thị trễ , tỉ lệ gói, trễ truyền thông Kết thúc mô 12 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] Kết mô a Xây dựng mơ hình mạng Trong file mã nguồn chúng em sử dụng định tuyến động, gán giá cho liên kết tỉ lệ nghịch với băng thông để gói tin theo liên kết có băng thơng rộng nhất, tránh gói Kết cho thấy mô phỏng, luồng truyền tin theo tính tốn Luồng UDP từ s1 qua n1 n3 n5 d1 Luồng UDP từ s2 qua n2 n3 n4 n6 d2 Luồng UDP từ s2 qua n2 n3 n5 d1 13 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] b Tính trễ định tuyến Thời gian trễ node1 Thời gian trễ node 14 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] Thời gian trễ node Thời gian trễ node 15 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] a Tính tỉ lệ gói node tăng tốc độ gửi Tỉ lệ gói node 456 Tỉ lệ gói node 16 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] Tỉ lệ gói node b Tính trễ truyền thơng luồng Trường hợp 1: Tăng tốc độ phát sinh thêm 100 gói/s giảm kích thước gói 100byte sau khoảng 30s 17 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] Trễ truyền thông luồng Trễ truyền thông luồng 18 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] Trễ truyền thông luồng Trường hợp 2: Giảm tốc độ phát sinh thêm 100 gói/s tăng kích thước gói 100byte sau khoảng 30s 19 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] Trễ luồng UDP Trễ luồng UDP 20 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] Trễ luồng UDP Nhận xét: Khi ta tăng tốc độ phát sinh giảm kích thước gói sau 30s trễ truyền thơng luồng UDP giảm xuống rõ rệt Còn ta giảm tốc độ phát sinh tăng kích thước gói sau 30s trễ truyền thơng luồng UDP tăng lên Như vậy, kích thước gói tin có ảnh hưởng mạnh tới trễ truyền thông giao thức UDP 21 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] KẾT LUẬN Trong trình học tập từ trước tới giờ, chúng em làm quen sử dụng số công cụ mô phỏng, hiểu vai trò ý nghĩa việc mô thiết kế thực tế Đây lầm chúng em tiếp xúc làm việc với cơng cụ Ns2, thực mức biết sử dụng chưa thể nói sử dụng thành thạo Tuy nhiên, thông qua việc thực tập lớn lần công cụ ns2, chúng em hiểu thêm hình dung nhiều vấn đề liên quan đến mạng, định tuyến, truyền thơng mạng… Từ hiểu hơn, thắt chặt củng cố kiến thức lý thuyết lớp mà thầy dạy Mặc dù cố gắng chắn làm chúng em cịn nhiều thiếu sót, mong Thầy góp ý cho chúng em nhận xét quý báu để tập lớn hồn thiện Lời cuối, nhóm chúng em xin kính chúc Thầy sức khỏe, cơng tác tốt, gặt hái nhiều thành công đào tạo nghiên cứu! Nhóm chúng em xin chân thành cảm ơn! 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 Tài liệu tham khảo NS2 (Ns2_manual, Introduction to Network Simulator NS2 – Teerawat Issariyakul) Tài liệu hướng dẫn NS2 http://www.isi.edu/nsnam/ns/tutorial/ 22 Hỗ trợ ôn tập [TYPE THE DOCUMENT TITLE] 23