Chương 4. NGHIÊN CỨU VIỆC SỬ DỤNG BỘ MÔ PHỎNG NS2 ĐỂ ĐÁNH GIÁ DUNG LƯỢNG MẠNG MANET
4.3. Tạo ngữ cảnh chuyển động
Trong mô phỏng mạng adhoc, việc mô phỏng được dựa trên hai mô hình:
Thứ nhất là mô hình truyền thông thể hiện dạng truyền thông giữa các nút trong mạng.
Thứ hai là mô hình di chuyển thể hiện chuyển động của các nút trong mạng.
4.3.1. Tạo diện tích mô phỏng
Chúng tôi xây dựng mạng mô phỏng với số nút thay đổi và có độ linh động (di chuyển với vận tốc khác nhau) tạo nên một mạng ad hoc. Các nút này di chuyển trong một khu vực địa lý (không gian phẳng, hình vuông 1000m x 1000m). Tọa độ của mỗi nút tại mỗi thời điểm là (x,y,z), trong đó tọa độ z=0. Giá trị của các trục tọa độ được xác định như sau:
set val(x) 1000 set val(y) 1000
4.3.2. Tạo các thực thể giao thức và các nguồn sinh lưu lượng
Các mô hình truyền thông được mô phỏng trong NS-2 (hình 4.4) gồm hai loại là:
- Bộ tạo lưu lượng (traffic generator).
- Các ứng dụng mô phỏng (simulated application).
Các bộ tạo lưu lượng sử dụng giao thức UDP để gửi các gói tin trong khi đó các ứng dụng mô phỏng sử dụng giao thức TCP.
Hình 4.4. Các mô hình truyền thông trong NS-2. [1, 16]
Có bốn loại bộ tạo lưu lượng là: bộ tạo lưu lượng có phân bố lũy thừa, pareto, CBR và file trace.
- Bộ tạo lưu lượng có phân bố lũy thừa: tạo lưu lượng theo một phân bố bật/tắt lũy thừa. Trong quãng thời gian bật, các gói tin được gửi với vận tốc cố định và trong quãng thời gian tắt không có gói tin nào được gửi. Ngoài ra quãng thời gian bật/tắt được phân bố theo một phân bố lũy thừa. Các gói tin có kích thước không đổi. Bộ tạo lưu lượng lũy thừa có thể cấu hình để hoạt động như một quá trình Poisson.
- Bộ tạo lưu lượng có phân bố Pareto: tạo lưu lượng theo phân bố bật/tắt Pareto.
Phân bố này tương tự phân bố bật/tắt lũy thừa, chỉ khác là các quãng thời gian bật/tắt lấy theo phân bố Pareto. Các nguồn này có thể được dùng để tạo các lưu lượng kết hợp thể hiện sự phụ thuộc.
- Bộ tạo lưu lượng có phân bố đều CBR: tạo lưu lượng theo một tốc độ xác định. Kích thước gói tin là không đổi. Ngoài ra một số các dao động ngẫu nhiên được thực hiện giữa các quãng khởi đầu của các gói tin.
- Bộ tạo lưu lượng theo tệp vết: tạo lưu lượng theo một tệp vết (trace file) xác định thời gian phát và ngừng phát gói tin cùng các thông số khác dựa trên số liệu thu thập được từ mạng thực, đã được ghi trong tệp vết.
Trong luận văn chúng tôi sử dụng bộ tạo lưu lượng CBR – cbrgen.
cbrgen.tcl: là công cụ viết bằng ngôn ngữ tcl, sử dụng thông qua bộ thông dịch ns-2, giúp người nghiên cứu có thể tạo ra các kịch bản truyền thông. Câu lệnh tạo tệp như sau:
ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections]
[-rate rate] > <outdir>/<scenario-file>
Trong đó:
- type: kiểu lưu lượng kết nối là cbr hay tcp - nn: số lượng nút
- seed: giá trị seed - mc: số lượng kết nối - rate: vận tốc nút
- outdir: đường dẫn đến thư mục chứa tệp cần tạo - scenario-file: tên tệp
Ví dụ: ns cbrgen.tcl –type cbr –nn 50 –seed 1.0 –mc 10 –rate 2.0 > scen-50-10-2 4.3.3. Tạo các dạng chuyển động theo mẫu
Trong mô phỏng mạng Ad-hoc các mô hình di chuyển đóng một vai trò rất quan trọng. Nó thể hiện chính xác các ngữ cảnh có thể của mạng và góp phần quyết định tính đúng đắn của việc đánh giá hiệu suất của các giao thức định tuyến trước khi mang ra triển khai thực tế. Trên thực tế có hai loại mô hình di chuyển được sử dụng cho mạng không dây là mô hình dựa trên vết (trace-based model) và mô hình tổng hợp (synthetic model).
Mô hình dựa trên vết sử dụng lưu lượng thu thập được trên mạng thực, nó cung cấp đầy đủ thông tin để có thể suy luận ra quá trình thực hiện của hệ thống thực, để
xây dựng lại và chạy lại một quá trình một cách chính xác bằng cách trích xuất thông tin từ tập vết lưu lượng của mạng thực. Quá trình mô phỏng bằng mô hình dựa trên vết thường có hai phần, phần một là thực thi các chương trình để thu thập và lưu trữ lại các kết quả là các sự kiện trên lưu lượng mạng thực (gọi là tệp vết), phần hai là đọc tệp vết và thêm vào chúng thông tin để tạo ra các kịch bản mới (thường là phức tạp hơn).
Đối với mạng Ad-hoc, tô-pô mạng thường xuyên thay đổi do đó rất khó sử dụng mô hình vết, do đó trong mạng Ad-hoc cần thiết phải sử dụng các mô hình tổng hợp.
Mô hình tổng hợp phù hợp hơn đối với mạng di động ngày nay. Mô hình tổng hợp cố gắng thể hiện hành vi của các nút di động bằng cách thống kê. Để ngẫu nhiên hóa quá trình di chuyển của các nút trong mạng MANET, người ta sử dụng các giải thuật phù hợp mô tả quá trình di chuyển của nút. Hai mô hình tiêu biểu mô phỏng các mạng Ad-hoc là: Random Waypoint và Random Walk [18].
4.3.3.1. Mô hình Random Waypoint
Tại mô hình này, ban đầu mỗi nút có một vị trí ngẫu nhiên trong khu vực mô phỏng và ở tại đó một khoảng thời gian tạm dừng. Khi hết quãng thời gian tạm dừng, nút chọn cho mình một đích ngẫu nhiên trong khu vực mô phỏng và chuyển động với tốc độ phân bố đồng đều giữa [speedmin, speedmax]. Khi tới vị trí mới nút dừng một khoảng thời gian trong khoảng [Pmin, Pmax] và sau đó tiếp tục lại quá trình.
Chúng ta cần chú ý rằng, dạng chuyển động của mô hình Random Waypoint trong mạng MANET là giống như mô hình Random Walk trong trường hợp pause time bằng không và [minspeed, maxspeed] = [speedmin, speedmax].
+ Thiết lập các tệp tạo ngữ cảnh chuyển động của nút
Trong luận văn chúng tôi sử dụng công cụ setdest để tạo ngữ cảnh chuyển động của nút:
• setdest: Là công cụ viết trên nền C++, giúp cho người nghiên cứu tạo ra các kịch bản bao gồm vị trí ban đầu của nút di động và sự di chuyển của chúng. Trong công cụ này, chúng ta coi tọa độ z của các nút đều bằng 0 và các nút di chuyển trên cùng một mặt phẳng. Thực hiện setdest bằng cách viết lệnh như sau:
./setdest -n <num of nodes> -p <pausetime> -s <maxspeed> -t <simtime> -x
<maxx> -y <maxy> > <outdir>/<scenario-file>
Sử dụng các công cụ này giúp người nghiên cứu tạo ra các kịch bản truyền thông cũng như di chuyển của mạng với số lượng các nút di động là tương đối lớn. Tuy nhiên việc tạo ra các kịch bản này là ngẫu nhiên, có thể không theo ý muốn của người nghiên cứu, nên trong nhiều trường hợp người nghiên cứu phải tự viết ra các kịch bản truyền thông có ý nghĩa mô phỏng điển hình.
Đây là mô hình có tính linh động cao nên được sử dụng phổ biến và rộng rãi nhất. Mô hình Random Waypoint có biến thể khác với một vài thay đổi khác biệt là mô hình Random Walk.
4.3.3.2. Mô hình Random Walk
Mô hình này mô phỏng chuyển động ngẫu nhiên của các thực thể trong cuộc sống tự nhiên. Nút di động di chuyển từ vị trí hiện tại tới vị trí mới bằng việc chọn ngẫu nhiên một hướng nằm trong khoảng [0, 180°] và tốc độ nằm trong khoảng [speedmin, speedmax]. Mỗi chuyển động diễn ra trong khoảng thời gian travel_time (thời gian di chuyển của nút trước khi thay đổi hướng và tốc độ) hoặc trong một khoảng cách hằng số và đặc biệt là không có thời gian tạm dừng trước khi nút mạng thay đổi hướng và tốc độ.
+ Thiết lập các tệp tạo ngữ cảnh chuyển động của nút
Trong luận văn chúng tôi sử dụng chương trình Palm Calulus để tạo tệp ngữ cảnh theo mô hình Random Walk. Cấu trúc lệnh như sau:
./rwall 3 <number of nodes> <max –x> <max -y> <end time> <speed mean>
<spead delta> <pause time> <pause time>[<travel time> <travel time delta>]
Với mô hình chuyển động này thì tham số về sự thay đổi hướng di chuyển của nút có tính chất quyết định đến mức độ thay đổi của mạng. Nếu tham số này nhỏ, các nút di chuyển ngẫu nhiên trong phạm vi nhỏ, lúc này mạng được coi là mạng nửa tĩnh.
Ngược lại nếu tham số này lớn, mạng thay đổi trên phạm vi rộng hơn.