Chủ đề: "Mô phỏng mạng bằng công cụ NS2"
Bài này mình và các bạn sẽ tìm hiểu cách để vẽ một đồ thị bằng Xgraph trong mô phỏng hệ thống mạng sử dụng phần mềm NS2.
Xgraph là một công cụ vẽ đồ thị được cung cấp bởi ns. Câu lệnh gọi Xgraph có thể được khai báo trong kịch bản tcl do đó có thể xuất ra đồ thị ngay sau khi kết thúc công việc mô phỏng.
Đầu vào của Xgraph là một hoặc nhiều asccii file chứa mỗi cặp giá trị x-y trên một dòng (mỗi dòng sẽ vẽ được một điểm trên đồ thị.)
Một số lựa chọn được sử dụng trong Xgraph là:
Title: sử dụng -t "title"
Kích thước: -geometry xsize x ysize.
Tiêu đề cho các mục: -x "xtitle" (Khai báo tiêu đề cho trục x) và -y "ytitle" (khai báo tiêu đề cho trục y).
Màu của chữ và lưới: dùng với cờ -v
Ví dụ nếu ta muốn tính trễ truyền từ nguồn S1 đến đích D2, và vẽ đồ thị trễ truyền này lên file Xgraph.
Việc trước tiên ta phải tạo 1 file delay1_2.awk để xuất ra file lưu trữ các giá trị trễ ở các thời điểm khác nhau.
Ở đây mình có viết file delay1_2.awk như sau:
BEGIN {sent[5000];receiv[5000];delay[5000]}
{
fromnode= 0;
tonode = 4;
flow = 1;
#Begin Header: Gan cac gia tri $i
event = $1; time = $2;
from = $3; to = $4;
pktype = $5; pksize = $6;
flags = $7; fid = $8;
src = $9; dst = $10;
seqnum = $11; pkid = $12;
#End Header
if ((event == "+") && (from == fromnode) && (fid == flow)) sent[pkid] = time;
if ((event == "r") && (to == tonode) && (fid == flow))
{
receiv[pkid] = time;
delay[pkid] = receiv[pkid] - sent[pkid];
printf time " "delay[pkid] "\n";
}
}
END {}
Tương tự các bạn có thể viết tiếp cho các delay của các luồng còn lại. Đồng thời các bạn có thể tìm hiểu thuật toán để vẽ được chiều dài hàng đợi tức thời tại các node cần quan sát sự thay đổi của chiều dài hàng đợi.
Bài 4: Tạo file awk để vẽ đồ thị "Chiều dài hàng đợi và trễ truyền end to end"
Chú ý: Để máy tính hoạt động trơn tru và được bảo dưỡng tự động thường xuyên, các bạn nên cài một số phần mềm chăm sóc hệ thống. Mình đã và đang sử dụng phần mềm chăm sóc hệ thống Glary Utilities Pro và thấy rất tốt, các bạn có thể Download và cài đặt bản full có kèm theo Key (serial) đầy đủ ( đã test) rất đơn giản tại đây: Tải về
- Để bảo vệ máy tính tốt hơn chống lại các phần mềm gián điệp, virus độc hại mà không ngốn quá nhiều tài nguyên máy tính ngay cả ở chế độ hoạt động và chế độ chờ, mình khuyến nghị các bạn cài đặt và sử dụng phần mềm diệt Virus Avast internet security( Kèm theo key/Serial đã test): Tại đây
Click Yes nếu bạn cảm thấy bài viết này hữu ích.- Thanks!
Bài này mình và các bạn sẽ tìm hiểu cách để vẽ một đồ thị bằng Xgraph trong mô phỏng hệ thống mạng sử dụng phần mềm NS2.
Xgraph là một công cụ vẽ đồ thị được cung cấp bởi ns. Câu lệnh gọi Xgraph có thể được khai báo trong kịch bản tcl do đó có thể xuất ra đồ thị ngay sau khi kết thúc công việc mô phỏng.
Đầu vào của Xgraph là một hoặc nhiều asccii file chứa mỗi cặp giá trị x-y trên một dòng (mỗi dòng sẽ vẽ được một điểm trên đồ thị.)
Một số lựa chọn được sử dụng trong Xgraph là:
Title: sử dụng -t "title"
Kích thước: -geometry xsize x ysize.
Tiêu đề cho các mục: -x "xtitle" (Khai báo tiêu đề cho trục x) và -y "ytitle" (khai báo tiêu đề cho trục y).
Màu của chữ và lưới: dùng với cờ -v
Ví dụ nếu ta muốn tính trễ truyền từ nguồn S1 đến đích D2, và vẽ đồ thị trễ truyền này lên file Xgraph.
Việc trước tiên ta phải tạo 1 file delay1_2.awk để xuất ra file lưu trữ các giá trị trễ ở các thời điểm khác nhau.
Ở đây mình có viết file delay1_2.awk như sau:
BEGIN {sent[5000];receiv[5000];delay[5000]}
{
fromnode= 0;
tonode = 4;
flow = 1;
#Begin Header: Gan cac gia tri $i
event = $1; time = $2;
from = $3; to = $4;
pktype = $5; pksize = $6;
flags = $7; fid = $8;
src = $9; dst = $10;
seqnum = $11; pkid = $12;
#End Header
if ((event == "+") && (from == fromnode) && (fid == flow)) sent[pkid] = time;
if ((event == "r") && (to == tonode) && (fid == flow))
{
receiv[pkid] = time;
delay[pkid] = receiv[pkid] - sent[pkid];
printf time " "delay[pkid] "\n";
}
}
END {}
Đồng thời trong thủ tục finish{} ta phải thêm một số dòng lệnh sau:
#--------------------Khai
bao thu tuc "finish"-----------------------
proc
finish {} {
global ns tracefile namfile
$ns flush-trace
close $tracefile
close $namfile
exec
nam out.nam &
# Tre truyen giua cac
link
exec awk -f
delay1_2.awk out.tr > delayflow1_2.tr
# Ve do thi bang ham Xgraph:
# Do thi "Tre truyen end to end"
exec
xgraph delayflow1_2.tr -geometry 800x400 -t " Time Delay 1_2 " -x
" Packet" -y " Time (sec) " &
exit 0
}
Trong đó dòng lệnh: exec awk -f delay1_2.awk out.tr > delayflow1_2.tr : file delay1_2.awk sẽ lấy các thông tin trong file bám vết out.tr tính toán sau đó ghi kết quả tìm được vào file: delayflow1_2.tr.
Sau đó lệnh: exec xgraph delayflow1_2.tr -geometry 800x400 -t " Time Delay 1_2 " -x " Packet" -y " Time (sec) " & sẽ vẽ đồ thị Xgraph với các giá trị được lấy từ file delayflow1_2.tr vừa tính toán được ở trên.
Các thông số của file out.tr bao gồm 12 cột có cấu trúc như sau:
Dựa vào cấu trúc của file bám vết này các bạn dẽ dàng hiểu được các câu lệnh trong hàm delay1_2.awk. Các bạn chỉ lưu ý một điều là ký hiệu: $1 là giá trị của cột một trong file out.tr và là "Event". $2, $3, $4..., $12 Là các cột tương ứng trong file out.tr
Tương tự các bạn có thể viết tiếp cho các delay của các luồng còn lại. Đồng thời các bạn có thể tìm hiểu thuật toán để vẽ được chiều dài hàng đợi tức thời tại các node cần quan sát sự thay đổi của chiều dài hàng đợi.
Chú ý: Để máy tính hoạt động trơn tru và được bảo dưỡng tự động thường xuyên, các bạn nên cài một số phần mềm chăm sóc hệ thống. Mình đã và đang sử dụng phần mềm chăm sóc hệ thống Glary Utilities Pro và thấy rất tốt, các bạn có thể Download và cài đặt bản full có kèm theo Key (serial) đầy đủ ( đã test) rất đơn giản tại đây: Tải về
- Để bảo vệ máy tính tốt hơn chống lại các phần mềm gián điệp, virus độc hại mà không ngốn quá nhiều tài nguyên máy tính ngay cả ở chế độ hoạt động và chế độ chờ, mình khuyến nghị các bạn cài đặt và sử dụng phần mềm diệt Virus Avast internet security( Kèm theo key/Serial đã test): Tại đây
Click Yes nếu bạn cảm thấy bài viết này hữu ích.- Thanks!
chào bạn Thứ Lễ. Mình đang thắc mắc câu lệnh exec awk -f delay1_2.awk out.tr > delayflow1_2.tr : file delay1_2.awk. Mình làm và đã có file delayflow1_2.tr nhưng không có dữ liệu nào được ghi trong file đó cả. Bạn có yahoo không. Mình kết bạn nhé, để tớ hỏi thêm một số vấn đề.Hj
ReplyDeleteBạn có thể post file delay1_2.awk mà bạn viết lên được không!. Nếu bạn cần mình sẽ gửi cho bạn các file .awk mình viết để bạn tham khảo. Đây là file BTL.tcl của mình: http://khoanhkhaccuocsongviet.blogspot.com/2012/12/bai-5-file-btltcl-cho-mo-hinh-trong-bai.html
Deleteyahoo của mình: tinhyeuhoagio_hd1989.....Mong hồi âm sớm của bạn...
ReplyDeleteRất vui khi được làm quen với bạn!
DeleteBạn cho mình yahoo đi. Hoặc add yahoo của mình vào. Mình có thể nói chuyện kĩ hơn. Mình đang làm mô phỏng giao thức LEACH trong mạng WSN. Bạn có biết về mảng này không. yahoo của mình: tinhyeuhoagio_hd1989
ReplyDeleteNếu đọc được lời nhắn này của mình thì bạn add yahoo của mình vào nhé. Yahoo: tinhyeuhoagio_hd1989
ReplyDeleteMình đã add rồi mà, nếu bạn không thấy thì đây là yahoo của mình: svo_bk27
DeleteMình cũng vừa mới được học chuyên ngành về mạng nên chắc cũng không thể giúp bạn được nhiều đâu. Thông cảm nhé!
c ơi...c đọc đc tin nhắn này của t thì c online yahoo ngay nhé..t online đợi c suốt mà ko gặp đc c.hic..hic
ReplyDeleteMình đã gửi file .awk vào mail yahoo của bạn. Mình không hay vào yahoo nên hơi trễ một chút, bạn thông cảm nhé!
Deletec cho mình số điện thoại được ko..để mình gọi cho cậu. Mình hỏi một số thứ..ok..hoặc facebook cũng được
ReplyDeleteBạn vào mục "Giới thiệu" của blog có link dẫn đến Facebook: Argan nhé!
Deleteanh ơi giúp em vs. em muốn vẽ đồ thị nhưng mà chạy file graph nó cứ bị lỗi ý.
Deletec gửi file awk vào mail của mình nhé..tinhyeuhoagio_hd1989@gmail.com..cậu cho t hỏi thêm: sau khi chạy file .tcl rồi thì t có thêm 2 file là file .nam và file .tr. Bây giờ làm thế nào để đọc được file .tr đấy hả c.t muốn đọc những dữ liệu trong file .tr để lấy ra một số dữ liệu để vẽ biểu đồ như độ trễ, mức năng lượng...
ReplyDeleteBạn xem lại địa chỉ Email của bạn đã chính xác chưa, mình không gửi được. Để đọc file .tr thì bạn xem lại cấu trúc của file bám vết .tr ở trên: gồm 12 cột, mỗi cột là một trường cụ thể. Để lấy ra một số dữ liệu để vẽ thì trước tiên bạn phải viết 1 file đuôi .awk để trích xuất, tính toán dữ liệu từ file .tr ban đầu và xuất vào một file riêng dùng lệnh printf (hoặc print), bạn có thể tham khảo file delayflow1_1.awk của mình. Ví dụ để xuất dữ liệu trễ end to end trong delayflow1_1.awk, trong file .tcl: exec awk -f delayflow1_1.awk out.tr > delayflow1_1.tr và để vẽ bằng Xgraph thì:exec xgraph delayflow1_1.tr -geometry 800x400 -t " Time Delay 1_1 " -x " Packet" -y " Time (sec) " &
DeleteChào b thứ lễ. E đang làm mô phỏng về giao thức định tuyến AODV, DSDV,DSR. A có tài liệu về phần này cũng như mô phỏng không ạ!! Gửi cho e tham khảo vs ạ. E cảm ơn a. :(. Mail của e: whynotme024@gmail.com
Deleteuk.email của t là cuoi2308@gmail.com..hj..bạn gửi lại cho mình nhé...t hỏi nhé: thế khi có file delayflow1_1.awk rồi thì ta đặt file đó vào mục chứa với cùng file .tcl à. và chạy file đó như thế nào. chạy trên màn hình lệnh của NS2 với dòng lệnh exec awk -f delayflow1_1.awk out.tr > delayflow1_1.tr à hay là đưa dòng lệnh này vào file .tcl. Tối nay cậu online yahoo được ko?
ReplyDeleteĐã gửi. Bạn đặt file đó vào cùng một thư mục với file .tcl, dòng lệnh đó bạn đặt trong file .tcl nhé. Bạn tham khảo file BTL.tcl của mình ở bài 5 sẽ thấy: http://khoanhkhaccuocsongviet.blogspot.com/2012/12/bai-5-file-btltcl-cho-mo-hinh-trong-bai.html ;
DeleteTối mình phải đi học nên không online được, bạn thông cảm nhé!
Lúc nào bạn đi học về, bạn cứ online nhé, mình chờ bạn...hj
ReplyDeletecậu ơi..t gửi qua mail cho cậu file .tcl và file .tr của t nhé...cậu mô phỏng bằng xgraph cho t xem được ko nhé. t làm mà nó toàn báo lỗi thôi.hic. Mong cậu giúp đỡ tớ, t sắp nộp đồ án rồi mà chưa mô phỏng được.hic. Cảm ơn cậu trước nha.
ReplyDeleteai có bài nào đánh giá hiệu năng của 1 mô hình mạng k cho gửi cho mình với.đang làm đề tại mà k biết mô phỏng như thế nào.thanks các b nhiều.
ReplyDeletenick fb của m là : http://www.facebook.com/anhdao178
bạn nào biết nhiều về phần này mong giúp đỡ :)
bạn nào có bài mô phỏng diffserv bằng ns2 không? gửi cho mình với..gmail là doanhang.dtvt@gmail.com
ReplyDeletecám ơn các bạn
bạn mô phỏng đc Diffserv ah? cho mình hỏi tẹo?
Deletechào bạn, bạn gửi cho mình xin file awk với nhé, mình làm thử nhưng lỗi.
ReplyDeletethanglong.ptit@gmail.com
Đã gửi cho bạn rồi nhé!
Deletebạn ơi .bạn có bài mô phỏng giao thức SIP trên ns2 k.gửi cho mình với
Deletemail của mình là:anhvu10021991@gmail.com
tks bạn nhieuf nhé
chào bạn Thứ Lễ. Mình đang làm đồ án đánh giá hiệu năng của các giao thức định tuyến trong mạng adhoc. mình đã tạo và chạy được file.nam rùi, nhưng mình không biết làm thế nào để tính thông lượng, tỉ lệ mất gói tin...trong NS2. Bạn có thể giúp đỡ mình được không. MÌnh cảm ơn bạn nhiều!
ReplyDeletechao ban! ban co the gui cho minh awk voi. cam on ban nha.
ReplyDeletecái này không tính thời gian đợi hả bạn?
ReplyDeletebạn ơi cho mình hỏi sao mình chạy file xgraph lại bị lỗi như thế này
ReplyDeleteerror in file " out.tr" at line 9567
unknow line type
error in file " out.tr" at line 9568
unknow line type
error in file " out.tr" at line 9569
unknow line type
error in file " out.tr" at line 95610
unknow line type
cứ thế bạn ah? bạn biết chỉ giúp mình với
Ban gui chi minh file .awk nhe. Cam on truoc. Mail: longnguyenbk@gmail.com
DeleteGửi cho bạn rồi nhé!
Deletechào tất cả các bạn , mình vừa tham gia bên blog , mình cũng vừa tìm hiểu bên ns2 mà cũng chưa biết gì nhiều , mong pro giúp đở .
ReplyDeletecho mình hỏi là lưu thế này là thế nào bạn , sao mình tìm đường dẫn ko được
Sau đó bạn chạy file này bằng cách dẫn đường dẫn đến file chứa thư mục các bạn vừa tạo rồi sau đó dùng câu lệnh: ns BTL.tcl
Bạn nên tham khảo một chút về tập lệnh trong Linux đã nhé( Google nhiều lắm). Trước tiên bạn sẽ phải tạo và lưu project của mình ở một thư mục nào đó. Giả sử file BTL.tcl của mình được tạo nằm thư mục: Home/ArganSv/Project , để thức hiện chạy file này bạn thực hiện hai công việc sau:
Delete1. Mở cửa sổ dòng lệnh Terminal và gõ mở thư mục chứa file cần chạy: cd Home/ArganSv/Project
2. Chạy file BTL.tcl ns BTL.tcl
-> Thế là được.
(Vì lâu rồi cũng không biết có chính xác không nữa :) )
bạn ThứLễ ơi , cho mình hỏi là sao mình chạy file.tcl rồi, nó chạy ra đồ thị xgraph mà ko hiển thị mô phỏng nam là sao bạn? mình xem đồ thị xgraph rồi mà ko biết phân tích cái trục x , trục y thế nào, miêu tả hàng đợi ra sao , mong bạn giúp đỡ
ReplyDeleteKhông hiển thị được file nam có thể cách bạn tạo đồ thị nam chưa đúng, bạn xem lại bài 1 nhé. Còn về phần đồ thị Xgraph bạn có thể mở file .tr do file .awk khi chạy đã tạo ra để quan sát các giá trị thành phần!
Deletebạn ơi, bạn có code mô phỏng giao thức SIP trên NS-2 ko cho mình xin với
ReplyDeletemình chạy theo ví dụ của bạn THỨ LỂ trong bài 5 mà báo là thiếu file.awk là thế nào bạn?
ReplyDeletecan not open queuesize2_3.awk. cái này có phải là code sai hay là cái thiếu phần mềm hả bạn?
Bạn phải tạo file queuesize2_3.awk trong cùng thư mục nhé. Phải có file thì mới open được chứ bạn.
DeleteTiền Bối Thứ Lễ. cho em mấy cái file.awk với tính thông lượng, tỉ lệ mất gói tin, độ trễ... cho em với Mail: gacon.k3a1@gmail.com
ReplyDeleteĐã gửi cho bạn rồi nhé!
Deletemình làm về mạng Adhoc. giao thức DSDV và AODV bạn có thể giúp mình đc ko?
Deleteđang rất cần gấp nạ! mong giup do
A nguyên Hung cho e hỏi, a làm được 2 giao thức đấy chưa ạ. Nếu rồi thì gửi e qua mail : whynotme024@gmail.com với ạ. E cũng đang làm về vấn đề đó. e cảm ơn a .
DeleteA nguyên Hung cho e hỏi, a làm được 2 giao thức đấy chưa ạ. Nếu rồi thì gửi e qua mail : whynotme024@gmail.com với ạ. E cũng đang làm về vấn đề đó. e cảm ơn a .
DeleteAnh có thể giải thích cho em giá trị của folow trong file awk được không ạ. Em mới làm quen với NS-2
ReplyDeleteEm cảm ơn anh ạ!
bạn gửi cho mình các file .awk được không? cám ơn bạn rất nhiều.
ReplyDeletemail: hoainam.bkhnvn@gmail,com
A Thứ Lễ. cho em mấy cái file.awk với tính thông lượng, tỉ lệ mất gói tin, độ trễ... cho em với Mail: ngothanhthao91@gmail.com
ReplyDeleteE cảm ơn a nhiều ạ!
Chào bạn, bạn có thể gửi cho tớ file .awk theo địa chỉ mail: phamhonghvkt@gmail.com ?
ReplyDeleteCảm ơn bạn rất nhiều !
anh chị nòa có ví dụ về giao thức định tuyến TORA có thể cho e xem tham khảo vs đc k a. thanks
ReplyDeletechạy file.awk thì ntn vậy anh Thứ Lễ?
ReplyDelete