Cài đặt kỹ thuật flooding theo xác suất trong NS-2

Một phần của tài liệu Broadcast xác suất cho kỹ thuật Flooding trong mạng Manet (Trang 51)

Như đã giới thiệu, phần mềm mô phỏng NS-2 là sự kết hợp của hai thành phần được viết trên hai ngôn ngữ là C++ và Otcl. Để có thể cài đặt được kỹ thuật này trong NS-2, một số công việc chính đã được thực hiện như sau:

(1). Thiết kế và cài đặt một lớp agent mới (FloodAgent) thừa kế từ lớp Agent đã có sẵn trong NS-2. Mã cài đặt (flood.h và flood.cc) được đặt trong thư mục ~/ns- 2.29/flood. Hai phương thức chủ yếu cần quan tâm là recv(packet*, handler*) (nhận và xử lý gói tin) và sentBroadcastPacket(packet*) (gửi gói tin broadcast).

(2). Cài đặt hai phương thức trong flood.cc:

sentBroadcastPacket(packet*): phải gán địa chỉ đích là IP_BROADCAST. recv(packet*, handler*): việc xử lý gói tin broadcast nhận được sẽ được cài đặt theo thuật toán sau:

pkt = getPacket(); //Thu nhận gói tin pkt;

If (received(pkt)) //Nếu không phải lần đầu tiên nhận được pkt

{

free(pkt); //Hủy bỏ gói tin;

return; //Kết thúc phương thức;

}

//Nếu là lần đầu tiên nhận được gói tin pkt

//Ghi nhận ID của gói tin dùng để kiểm tra các gói tin nhận được //tiếp theo có phải là lần đầu tiên không

savePacket(pkt);

If (isFloodingPacket(pkt)) //Nếu là gói tin broadcast {

randP = random(); //Khởi tạo biến ngẫu nhiên xác suất randP;

If (randP ≥ fP)

{ //fP là giá trị xác suất ngưỡng dùng để broadcast

sentBroadcastPacket(pkt); }

Else //Không gửi gói tin {

free(pkt); //Hủy gói tin

return; //Kết thúc phương thức

} }

(3). Viết script mô phỏng bằng Otcl (flood.tcl) để: - Khởi tạo hình trạng mạng

- Tạo và cấu hình các node sử dụng lớp FloodAgent vừa xây dựng. - Khởi tạo vị trí và tốc độ di động của các node.

- Lập lịch broadcast gói tin từ node nguồn. - Khai báo tệp lưu vết kết quả mô phỏng.

Các cài đặt trên mã C++ được biên dịch sang dạng object (flood.o) để NS-2 có thể sử dụng được trong quá trình mô phỏng.

Một phần của tài liệu Broadcast xác suất cho kỹ thuật Flooding trong mạng Manet (Trang 51)

Tải bản đầy đủ (PDF)

(65 trang)