3.3. Phần mềm mô phỏng P2PSim
P2PSim là phần mềm mã nguồn mở, đa tiến trình, discrete event để mô phỏng mạng overlay có cấu trúc với nhiều topology khác nhau như end-to-end time graph, G2 graph, GT-ITM, random, và Euclidean. P2PSim do một nhóm nghiên cứu mạng P 2P tại Đ ạ i h ọ c MIT phát triển. P2PSim được nhiều nhóm nghiên cứu sử dụng để nghiên cứu DHTs.
Luận văn thạc sỹ KHMT Chương trình thử nghiệm
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
55
Nó có thể mơ phỏng sáu loại giao thức DHTs khác nhau: Chord, Accordion, Koorde, Kelips, Tapestry, Kademlia. P2PSim hoạt động trên hệ điều hành Unix. P2Psim giúp hiểu mã nguồn của các giao thức mạng ngang hàng và so sánh sự khác nhau giữa các giao thức về độ tiện lợi, khả năng thực hiện.
Số node mà P2PSim có thể mơ phỏng phụ thuộc vào giao thức thiết kế và tối đa có thể lên đến 3000 node (giao thức Chord).
Cài đặt
- P2Psim được cài đặt và dịch trên hệ điều hành Unix. Để cài đặt ta cần lấy file nguồn p2psim-0.3.tar.gz tại địa chỉ web:
http://pdos.csail.mit.edu/p2psim/howto.html.
- Để chạy P2PSim cần các gói GCC2.95.3. Để cài đặt GCC ta thực hiện các
bước sau: $ cp gcc-2.95.3.tar.gz /usr/local $ tar –zxvf gcc-2.95.3.tar.gz $ mv gcc-** gcc $ cd gcc $ ./configure --prefix=/usr/local/gcc $ make bootstrap $ make install $ export CC=/usr/local/gcc/bin/gcc $ export CXX=/usr/local/gcc/bin/g++ $ export CPP=/usr/local/gcc/bin/cpp
Luận văn thạc sỹ KHMT Chương trình thử nghiệm
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
56
- Sau đó ta cài P2PSim. Để cài P2PSim ta thực hiện các bước sau:
$ cp p2psim-0.3.tar.gz /usr/local/src $ tar –zxvf p2psim-0.3.tar.gz
$ cd p2psim-0.3
#Apply patch for Chord protocol
$ cp chord.diff /usr/local/src/p2psim-0.3/protocol $ patch -p0 < chord.diff
$ ./configure
$ make
3.3.1. Các bước mô phỏng với phần mềm P2PSim
Để thực hiện mô phỏng với phần mềm P2PSim ta thực hiện các bước sau:
Bƣớc 1: Tạo một File Topology Euclide ngẫu nhiên sử dụng Perl script
$./generate.pl rtt nodenumber > topology_nodenumber_rtt.txt
Script này có hai tham số đó là:
+ RTT: Là khoảng cách giữa hai Node. + Nodenumber: Là số Node trong mạng
Bƣớc 2: Lựa chọn các tham số để mô phỏng. Các tham số này được khai báo trong
File argument. Các tham số mô phỏng bao gồm:
+ Lifemean: Thời gian tồn tại trung bình của Node trên mạng.
+ Deathmean: Thời gian khơng tồn tại trung bình của Node trên mạng.
+ Lookupmean: Thời gian trung bình một Node sinh ra một yêu cầu tìm kiếm. + Exittime: Thời gian thực hiện mô phỏng.
+ Stattime: Thời gian thực hiện thu thập các thông số thống kê.
Bƣớc 3: Lựa chọn các tham số của DHT trong File argument. Đối với Chord sẽ bao
Luận văn thạc sỹ KHMT Chương trình thử nghiệm
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
57
+ Base: Xác định số finger trong bảng định tuyến. Nó xác định có bao nhiêu trạng thái ChordFingerPNS giữ (b-1)*logb(n).
+ Successors: Số Successor.
+ Pnstimer: Khoảng thời gian giữa hai lần Chord thực hiện cập nhật lại bảng định tuyến của mỗi Node.
+ Basictimer: Là khoảng thời gian giữa hai lần Chord thực hiện cập nhật lại successor và predecessor của mỗi Node.
+ Succlisttimer: Là khoảng thời gian giữa hai lần Chord cập nhật lại danh sách successor của mỗi Node.
+ Maxlookuptime: Là thời gian tối đa tìm kiếm lại. Nó xác định khi nào từ bỏ việc tìm kiếm lại sau khi nhận các kết quả tìm kiếm khơng chính xác. Nếu Maxlookuptime = 0 tức là khơng thực hiện việc tìm kiếm lại.
+ Recurs: Là để xác định việc tìm kiếm theo kiểu lặp hay theo kiểu đệ quy. Recurs = 1 tức là tìm kiếm theo kiểu đệ quy. Recurs = 0 tức là tìm kiếm theo kiểu lặp.
Bƣớc 4: Chạy mô phỏng. Cú pháp như sau:
$ scripts/run-simulations.pl --protocol protocol_name --topology topology_file -- logdir log_directory --args args_ file.
+ Ta cần truyền vào các tham số là: Tên giao thức DHTs, tên File topology của mạng, thư mục chứa File log, tên File argument.
Bƣớc 5: Kết hợp các kết quả. Bước này thực hiện kết hợp kết hợp các File ở trên lại
thành một File đầu ra duy nhất. Cú pháp:
$ scripts/merge-stats.pl --args protocol_args log/*.log > protocol_out
Bƣớc 6: Vẽ đồ thị kết quả mô phỏng. Cú pháp:
$ scripts/make-graph.pl --dat protocol_out --x BW_TOTALS:live_bw --y CORRECT_LOOKUPS:lookup_mean --convex both.
+ Ta cần truyền vào các tham số: File protocol_out là File kết quả của bước 5, các tham số trục x, trục y.
Luận văn thạc sỹ KHMT Chương trình thử nghiệm
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
58
3.3.2. Kịch bản mô phỏng
Sử dụng phần mềm P2PSim để mơ phỏng Chord: Kích thước của mạng là 100node, 250node, 500node và 1000node. RTT (round trip-time) trung bình khoảng 2 giây thiết lập giữa một cặp node bất kì. Ta tiến hành mơ phỏng để đánh giá hai tham số có liên quan đến hiệu năng của Chord là tỷ lệ tìm kiếm lỗi và trễ trung bình tìm kiếm thành cơng trong một số điều kiện khác nhau như số lượng node thay đổi, khoảng thời gian các node liên tục đến và rời khỏi mạng (churn rate) thay đổi, để từ đó rút ra một số nhận xét về những thay đổi này đến hiệu năng của Chord. Kịch bản mô phỏng và giá trị các tham số của Chord được lựa chọn như bảng dưới đây.