CHƯƠNG 3: THIẾT KẾ MÔ PHỎNG GIAO THỨC COOPMAC TRONG MẠNG VÔ

Một phần của tài liệu NGHIÊN cứu ĐÁNH GIÁ mô PHỎNG GIAO THỨC MAC hợp tác TRONG MẠNG vô TUYẾN AD HOC (Trang 43 - 55)

MẠNG VÔ TUYẾN ADHOC

3.1. GIỚI THIỆU VỀ PHẦN MỀM OMNET++

OMNeT++ (Objective Modular Network Testbed in C++) là một ứng dụng cung cấp cho người sử dụng môi trường để tiến hành mô phỏng hoạt động của mạng. Mục đích chính của ứng dụng là :

- Mô phỏng hoạt động mạng thông tin, tuy nhiên do tính phổ cập và linh hoạt của nó, OMNeT++ còn được sử dụng trong nhiều lĩnh vực khác như mô phỏng các hệ thống thông tin phức tạp, các mạng kiểu hàng đợi (queueing networks) hay các kiến trúc phần cứng...

- Cung cấp sẵn các thành phần tương ứng với các mô hình thực tế. Các thành phần này (còn được gọi là các module) được lập trình theo ngôn ngữ C++, sau đó được tập hợp lại thành những thành phần hay những mô hình lớn hơn bằng một ngôn ngữ bậc cao (NED).

- Hỗ trợ giao diện đồ hoạ, tương ứng với các mô hình cấu trúc của nó đồng thời phần nhân mô phỏng (simulation kernel) và các module của OMNeT++ cũng rất dễ dàng nhúng vào trong các ứng dụng khác.

Một mô hình OMNeT++ bao gồm:

- Ngôn ngữ mô tả topology – NED (file có phần mở rộng .ned): mô tả cấu trúc của module với các tham số, các cổng…

- Định nghĩa cấu trúc của các message (các file có phần mở rộng .msg): Người sử dụng có thể định nghĩa rất nhiều kiểu message và thêm các trường dữ liệu cho chúng. OMNeT++ sẽ dịch những định nghĩa này sang các lớp C++ đầy đủ.

- Mã nguồn của các module đơn giản. Đây là các file C++ với phần mở rộng là .h hoặc .cc.

Hệ thống mô phỏng cung cấp cho ta các thành phần sau:

- Phần nhân mô phỏng. Phần này chứa code để quản lý quá trình mô phỏng và các thư viện lớp mô phỏng.

- Giao diện người sử dụng. Giao diện này được sử dụng khi thực hiện quá trình mô phỏng, tạo sự dễ dàng cho quá trình sửa lỗi, biểu diễn (demonstration) hoặc khi thực hiện mô phỏng theo từng khối (batch execution of simulations).

3.2. KẾT QUẢ MÔ PHỎNG MẠNG ADHOC

Ý tưởng của mạng Ad-hoc là xây dựng 1 mạng kết nối giữa các thiết bị đầu cuối mà không cần phải dùng các trạm thu phát gốc (BS). Các thiết bị đầu cuối sẽ tự động bắt liên lạc với nhau để hình thành nên một mạng kết nối tạm thời dùng cho mục đích truyền tin giữa các nút mạng.

3.2.1. Một số hình ảnh mô phỏng sử dụng OMNET++

Sau đây là tuần tự các quá trình trao đổi gói tin: Khám phá tuyến bằng cách gửi bản tin REQ, gửi gói tin dữ liệu, và gửi ACK báo nhận.

Trước khi gửi gói tin tới một đích, nút nguồn sẽ gửi bản tin REQ đi đến các nút lân cận để tìm kiếm nút chuyển tiếp.

Sau khi nút nguồn gửi bản tin REQ, nút đích sẽ gửi thông báo REPLY rằng chấp nhận yêu cầu chuyển tiếp từ nguồn.

Nút đích gửi bản tin REPLY, sau đó nút nguồn sẽ gửi ACK tới nút đích để xác nhận nó đã sẵn sàng gửi dữ liệu đến nút đích.

Như vậy, nút nguồn kết nối các nút đích và bắt đầu truyền gói tin dữ liệu tới các nút đích.

Nút đích nhận được gói tin dữ liệu, nó sẽ gửi báo nhận ACK tới nút nguồn để xác nhận nó đã nhận được gói dữ liệu từ nút nguồn.

3.2.2. Kết quả đánh giá giao thức CoopMac trong mạng vô tuyến Ad hoc sử dụng công cụ mô phỏng Matlab.

Để đánh giá phẩm chất của giao thức MAC 802.11 với giao thức CoopMAC, chúng tôi thực hiện mô phỏng máy tính sử dụng phần mềm Matlab. Mô hình mạng Ad- hoc được tạo ra với các node có phân bố ngẫu nhiên. Giữa hai node Nguồn và Node Đích (màu đỏ) là 10 node trung gian có thể hợp tác với node Nguồn để chuyển tiếp dữ liệu tới Đích. -5 0 -4 0 -3 0 -2 0 -1 0 0 1 0 2 0 3 0 4 0 5 0 -2 0 -1 0 0 1 0 2 0 3 0 4 0 T o a d o X To a do Y -5 0 -4 0 -3 0 -2 0 -1 0 0 1 0 2 0 3 0 4 0 5 0 -4 0 -3 0 -2 0 -1 0 0 1 0 2 0 3 0 4 0 To a d o X To a do Y

Hình 3.6. Kết quả chạy lần 1 Hình 3.7. Kết quả chạy lần 2

Sau mỗi lần mô phỏng ta thấy rằng sự lựa chọn các nút trung gían để hợp tác truyền dữ liệu là khác nhau. Sự lựa chọn nút chuyển tiếp trung gian được trình bày ở mục 2.1. Sau đây là các kết quả đánh giá mô phỏng:

- Với lần chạy thứ nhất (hình 3.6), các tham số nhận được là: Thông lượng hợp tác là: 1.7729e+007 bps

Thông lượng truyền trực tiếp: 1.1908e+007 bps Độ trễ gói truyền dẫn hợp tác: 0.0462 s

- Lần chạy thứ 2, các tham số có được là:

Thông lượng hợp tác là: 1.5785e+007 bps Thông lượng truyền trực tiếp: 1.1908e+007 bps Độ trễ gói truyền dẫn hợp tác: 0.0519 s

Độ trễ gói truyền dẫn trực tiếp: 0.0688 s

Nhận xét:

Từ các kết quả thu được thông qua mô phỏng ở trên đã chứng minh được rằng Mạng Ad-hoc sử dụng giao thức CoopMAC cho phẩm chất tốt hơn hẳn so với trường hợp sử dụng giao thức MAC của tiêu chuẩn 802.11.

3.2.3.Chương trình mô phỏng

* File CoopMac.m

% Caculating throughput

clear all;

global R rou W R1 Ro;

global M_max Kgm C Rhl Mo RATE CRgm;

global t gW;

global Mo S1 S2 Mc;

global Tp1 To1 Tp5 To5 Td;

global RTS CTS RTH Header ACK SIFS;

global ST SIFS DIFS EIFS;

global Throu Jgm1 Th1 Th2;

global T_HI T_GI T_MI t_fb;

global G N Kl;

global sigma Jmax Jk;

global Pw_n Pf_n NumG Colum Gopt Nopt;

global NkJ AKgm SNR_Helper Cmax; Pe = 10e-6; dist_direct=0; dist_SH=0; dist_HD=0; MeanCoopThroughput=0; MeanDirectThroughput=0; newTh = 0; Tcoop=0; Tdirect=0; nDelay = 0; Ro = 2e+6; Header = 272; RTS = 352; % bits CTS = 304; % bits RTH = 304; % bits ACK = 304; % bits RTH = 304; % bits SIFS = 16*1e-6; % 16 us DIFS = 34*1e-6; EIFS = 92.6*1e-6; ST = 9*1e-6; % 9 us sigma = 1*1e-6; t_fb = ST; %tx = ST-2*sigma; tx=4*sigma;

T_HI = tx; T_GI = tx; T_MI = tx;

% Radio propagation parameters

Gt=1; Gr=1;

freq=2.4e9; % IEEE 802.11a or g

BW = 3e6; L=1; ht=1.5; hr=1.5;

pathLossExp=3.2;

std_db=0.1; % variance used in shadowing (approximately: 10^(std_db/10) = 2%)

d0=1; % reference distance used in shadowing

lambda = 3e8 / freq; % wave length

PTr = 1; N0 = 1e-12; % ****************************************************************** R = 1e6*[3 6 9 12 18 24 36 48 54]; Q = length(R); % Because R = BW*log2(1+SNR) gama_th = []; gama_0 = 0; for q = 1:Q

gama_th(q) = db(2^(R(q)/BW)-1,'power'); % SNR (dB) thresold for rates in R

end

NumOfNode = 10;

kc=40;%khoang cah giua nguon va dich

x=randint(1,NumOfNode,[1 360])*pi/180; z=cos(x)+sqrt(-1)*sin(x);

Radius=randint(1,NumOfNode,[1 kc]);% tinh toc do

Position=Radius.*z; P_Helper=Position; %P_Helper = -10 + kc*sqrt(-1)*[0.5 -0.5 0.5]; P_Source =-kc; P_Dest = kc; %plot(P_Helper,'o','MarkerSize',6); % Generating topology

dist_direct = abs(P_Source - P_Dest); % abs la tri tuyet doi

Pt = PTr/2;% Ptr la cong suat phat ban dau minh cai dat

PrSD = log_normal_shadowing(Pt, Gt, Gr, lambda, L, pathLossExp, std_db, d0, dist_direct); gamaSD=db(PrSD/N0,'power'); q = find(gama_th<=gamaSD); RateSD = R(q(length(q))); R1=RateSD; for i=1:NumOfNode dist_SH = abs(P_Helper(i)-P_Source); dist_HD = abs(P_Helper(i)-P_Dest);

Pt = PTr/2; %cong suat phat,nut nguon truyen theo 2 duong nen phai chia 2

PrSH = log_normal_shadowing(Pt, Gt, Gr, lambda, L, pathLossExp, std_db, d0, dist_SH);%cong suat thu tai not chuyen tiep tu nguon

gamaSH=db(PrSH/N0,'power'); q = find(gama_th<=gamaSH); RateSH = R(q(length(q))); RateC1=RateSH;

Helper(i,3)=gamaSH; Pt = PTr;

PrHD = log_normal_shadowing(Pt, Gt, Gr, lambda, L, pathLossExp, std_db, d0, dist_HD);%cong suat thu tai dich tu nut chuyen tiep

gamaHD=db(PrHD/N0,'power'); gamaC=2*gamaSD + gamaHD; q = find(gama_th<=gamaC); RateC = R(q(length(q))); Helper(i,2)=RateC; Helper(i,5) = i; end

rou=1; % balance parameter

W = 100*1024*8;

% ---

Tp_direct = W/R1;

To_direct = (RTS+CTS+ACK)./Ro + 3*SIFS; pot = 0;

for i=1:NumOfNode

if Helper(i,1)>0 && Helper(i,2)>0

Helper(i,4)=Helper(i,1)*Helper(i,2)/(Helper(i,1)+Helper(i,2)); pot = pot + 1;

end end

% Sap xep toc do hop tac giam dan for i=1:pot-1 for j=i+1:pot if Helper(i,4)<Helper(j,4) temp=Helper(i,:); Helper(i,:)=Helper(j,:); Helper(j,:)=temp; end end end

Rh = Helper(1,4); % Toc do hop tac max

To_coop = (RTS + CTS + RTH + ACK)/Ro + 4*SIFS; Tp_coop = W/Rh;

J_coop = W/(To_coop + Tp_coop);

J_direct = W/(To_direct + Tp_direct); delay_direct = To_direct + Tp_direct;

if J_coop >J_direct Throu = J_coop;

delay_coop = To_coop + Tp_coop;

end

plot(Position,'o','MarkerSize',6); hold on;

plot(-kc,0,'or','MarkerSize',6); hold on;

plot(kc,0,'or','MarkerSize',6); hold on; x=[-kc, kc]; y=[0, 0]; plot(x,y,'b-.'); sh1=[-kc, real(P_Helper(1,5))]; sh2=[0, imag(P_Helper(1,5))]; hold on; plot(sh1,sh2,'r-.'); hd1=[real(P_Helper(1,5)), kc]; hd2=[imag(P_Helper(1,5)), 0];

hold on;

plot(hd1,hd2,'r-.');

*File friis.m

function Pr = friis(Pt, Gt, Gr, lambda, L, d)

% Friis free space propagation model: % Pt * Gt * Gr * (lambda^2) % Pr = --- % (4 *pi * d)^2 * L M = lambda / (4 * pi * d); Pr = Pt * Gt * Gr * (M * M) / L; return; *File log_normal_shadowing.m

function Pr = log_normal_shadowing(Pt, Gt, Gr, lambda, L, pathlossExp, std_db, d0, d)

% log normal shadowing radio propagation model: % Pr0 = friss(d0)

% Pr(db) = Pr0(db) - 10*n*log(d/d0) + X0

% where X0 is a Gaussian random variable with zero mean and a variance in db

% Pt * Gt * Gr * (lambda^2) d0^passlossExp (X0/10) % Pr = ---*---*10

% (4 *pi * d0)^2 * L d^passlossExp % calculate receiving power at reference distance

Pr0 = friis(Pt, Gr, Gr, lambda, L, d0); % Gt=1; Gr=1; L=1; d0=1 % calculate average power loss predicted by path loss model

avg_db = -10.0 * pathlossExp * log10(d/d0);

% get power loss by adding a log-normal random variable (shadowing) % the power loss is relative to that at reference distance d0

% question: reset rand does influcence random %rstate = randn('state');

%randn('state', d);

powerLoss_db = avg_db + (randn*std_db+0); % random('Normal', 0, std_db); %randn('state', rstate);

% calculate the receiving power at distance d

Pr = Pr0*10^(powerLoss_db/10); % log normal shadowing %Pr = Pr0; % friss

KẾT LUẬN 1. Kết quả thu được

-Hiểu được mạng Ad-hoc, mô hình các ứng dụng và vấn đề liên quan trong mạng Ad-hoc.

-Nắm được một số giao thức điều khiển truy nhập môi trường MAC trong mạng Ad-hoc.

-Đánh giá được hiệu năng mạng Ad-hoc thông qua mô phỏng giao thức CoopMac

2. Định hướng phát triển đề tài.

Với sự phát triển nhanh chóng của mạng adhoc trong đời sống, nhu cầu nâng cao hiệu suất của mạng cần được quan tâm nhiều hơn.Các giao thức mạng cần phải được nghiên cứu và phát triển để nâng cao hiệu suất sử dụng mạng trong tương lai.Việc tìm ra giao thức MAC cải tiến cho mạng adhoc cũng là hướng phát triển trong đề tài này.Hướng nghiên cứu tiếp theo là:

-Nghiên cứu, xây dựng và triển khai các vấn đề an ninh cho mạng vô tuyến AdHoc. - Nghiên cứu, xây dựng và triển khai hệ thống dự báo thời tiết, cứu hộ,cứu nạn, hệ thống cảnh báo sự xâm nhập trái phép vào vùng biên giới quốc gia sử dụng mạng vô tuyến AdHoc.

Do còn nhiều hạn chế về mặt thời gian cũng như kiến thức, nên đề tài không thể tránh khỏi thiếu sót.Em rất mong nhận được những đóng góp, phê bình của quý thầy cô để đề tài hoàn thiện hơn.

Một phần của tài liệu NGHIÊN cứu ĐÁNH GIÁ mô PHỎNG GIAO THỨC MAC hợp tác TRONG MẠNG vô TUYẾN AD HOC (Trang 43 - 55)

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

(56 trang)
w