Mô hình lưu lượng là phần rất quan trọng trong việc kiểm thử và mô phỏng một hệ thống mạng. Bởi vì nếu không có một dạng lưu lượng gần giống với lưu lượng thực thì việc mô phỏng bị hạn chế rất nhiều về tính thực tế khả dụng của nó.
NSZ2 hỗ trợ nhiều loại hình lưu lượng khác nhau như là FTP, Telnet, CBR, Multimedia… Nhưng mục đích của mô phỏng này so sánh hiệu năng của các giao thức định tuyến trên cơ sở tỷ lệ mất gói ứng với các điều kiện khác nhau về môi trường. Vì vậy, mô hình mô phỏng sẽ sử dụng nguồn lưu lượng tốc độ bit không đổi (CBR – Constant Bit Rate). Trong nút mạng, mô hình lưu lượng được đưa vào lớp ứng dụng và được gắn kết với thực thể lớp giao vận như TCP hoặc UDP. Giao tiếp giữa hai lớp thông qua một giao diện chương trình ứng dụng API.
Các tham số cấu hình của lưu lượng CBR trong mô phỏng này được thiết lập như sau:
PacketSize_ : Kích thước gói tin là 512 bytes.
Rate_ : Tốc độ phát lưu lượng trong thời gian phát 4 hoặc 0.25 kbps Interval_ : Khoảng cách thời gian giữa các gói tin là 4.
Random_ : Lựa chọn có nên đưa nhiễu ngẫu nhiên vào trong thời gian khởi phát gói tin hay không.
Báo cáo Đồ án Tốt nghiệp Chương V: Thực hiện mô phỏng
Sự kết nối lưu lượng ngẫu nhiên của CBR và TCP có thể được thiết lập giữa các nút mạng di động sử dụng mã khởi tạo kịch bản lưu lượng. Có thể tìm thấy mã khởi tạo lưu lượng này có sẵn trong trong thư mục cài đặt bộ công cụ NS (~ns/indepZutils/cmuZscenZ gen). Nó được sử dụng để tạo ra lưu lượng CBR và TCP kết nối giữa các nút mạng di động vô tuyến. Lệnh khởi tạo có dạng như sau:
ns cbrgen.tcl [ type cbr | tcp] [ nn nodes] [ seed seed] [ mc connections] [ rate rate]
Mô phỏng sử dụng các kịch bản di động sau: Z cbrZ50Z10Z4Z512
Z cbrZ50Z20Z4Z512 5.3.3. Thiết lập mô hình di động
Có hai cách tạo mô hình di động trong mạng Ad hoc: di động ngẫu nhiên và tạo kịch bản di động trước. Việc để cho các nút mạng di động một cách ngẫu nhiên sẽ rất khó đưa ra kết quả so sánh, vì vậy trong mô hình mô phỏng này chúng ta sẽ tạo ra các kịch bản di động và các giao thức sẽ thực hiện trên cùng các kịch bản này.
Một vài mô hình di động đã được đề xuất cho các giao thức định tuyến mạng Ad hoc [21] để cố gắng biểu diễn một cách thực tế những hành vi của các nút di động. Có thể kể đến các mô hình như: Mô hình di động có đường đi ngẫu nhiên; Mô hình di động điểm ngẫu nhiên; Mô hình di động có hướng ngẫu nhiên, Mô hình di động vùng mô phỏng không có đường bao; Mô hình di động GaussZMarkov… Trong đó, sự di chuyển Random_Waypoint là đơn giản cho tính toán và thể hiện.
Mô hình này đưa ra sự vận động khá “tự nhiên”.Theo Random_Waypoint, mọi sự chuyển động của nút mạng là không liên quan với nhau và các nút mạng có khả năng chuyển qua khoảng cách dài trước khi dừng giống như khoảng cách ngắn. Nó cũng thích hợp với sự đa dạng về khoảng cách của mỗi hành trình nút mạng.Vì vậy trong mô hình mô phỏng này chúng ta lựa chọn mô hình Random Waypoint Kịch bản Random Waypoint được biểu thị bằng giá trị thời gian dừng ảnh hưởng đến các nút mạng di chuyển như thế nào theo kịch bản. Kịch bản được tạo ra bằng cách trước hết chọn giá trị cho thời gian dừng và sau đó theo thuật toán sau:
Mỗi nút mạng bắt đầu quá trình mô phỏng bằng một vị trí ngẫu nhiên. Sau khi quá trình mô phỏng bắt đầu, nút mạng vẫn đứng yên một chỗ trong những giây thời gian dừng. Sau đó, nó lựa chọn một đích đến trong trạng thái mô phỏng và di chuyển tới nút mạng đó với tốc độ phân phối từ 0 đến tốc độ cực đại. Sau khi tới đích, nút mạng lại dừng, lựa chọn đích khác và tiến trình diễn ra như mô tả ở trên, lặp lại hoạt động này trong suốt quá trình mô phỏng.
Mô hình di động được tạo ra với phần mã lệnh được cho trong ~ns/indepeutils/cmue scenegen/setdest, bao gồm setdest{.cc,.h} và Makefile. Lệnh khởi tạo có dạng như sau: ./setdest [ n num_of_node] [ p pausetime] [ s maxspeed] [ t simtime] \ [ x maxx] [ y maxy] > [outdir/movement file]
Mô phỏng được thực hiện trong diện tích 1500mx300m với 50 nút, các thời gian dừng là: 0s, 30s, 60s, 120s, 300s, 600s, 900s. Các nút di động sẽ di chuyển với tốc độ ngẫu nhiên trong khoảng 0Z1m/s hoặc 0Z20m/s. Tổng thời gian mô phỏng là 900s. Do đó, tổng số kịch bản di động được tạo là: 14. Mỗi giao thức sẽ thực hiện 14 kịch bản này. Một số kịch bản di động được sử dụng là: Z scenZ1500x300Z50Z0Z20Z1 Z scenZ1500x300Z50Z30Z20Z1 Z scenZ1500x300Z50Z60Z20Z1 Z scenZ1500x300Z50Z120Z20Z1 Z scenZ1500x300Z50Z300Z20Z1 Z scenZ1500x300Z50Z600Z20Z1 Z scenZ1500x300Z50Z900Z20Z1 … 5.3.4. Thông số để đánh giá
Mục đích của mô hình là để giảm thiểu tỷ lệ mất gói, vì vậy thông số chính để đánh giá là tỷ lệ mất gói. Tỷ lệ mất gói tính toán dựa trên gói dữ liệu được truyền phát tới đích được phát sinh bởi các nguồn CBR. Công thức tính tỷ lệ mất gói:
Tỷ lệ mất gói= 1e (số gói nhận/số gói gửi)
Kết hợp tỷ lệ mất gói với số lượng kết nối và tốc độ di chuyển của các nút trong hệ thống để đánh giá và đưa ra lựa chọn
5.3.5. Thực hiện mô phỏng
5.3.5.1. Mã lệnh tạo nút mạng di động
Một nút mạng di động về cơ bản bao gồm: một lớp liên kết (LL), một modul ARP kết nối với LL, một hàng đợi giao diện ưu tiên (IFq), một lớp MAC, một giao diện mạng (NetIF), tất cả được kết nối với kênh. Các phần tử này được tạo ra cùng nhau trong Otcl. NS hỗ trợ việc thiết lập các phần tử trên có sẵn trong ~ns/tcl/lib/nsZ mobilenode.tcl (xem chi tiết phần phụ lục)
Báo cáo Đồ án Tốt nghiệp Chương V: Thực hiện mô phỏng
5.3.5.2. Mã lệnh thiết lập tham số trong chương trình chính
# Thi"t l#p các tham s% trong chương trình
set opt(chan) Channel/WirelessChannel # Mô hình kênh v#t lý
set opt(prop) Propagation/TwoRayGround # Mô hình truy6n phát
set opt(netif) Phy/WirelessPhy # Giao di7n m8ng vô tuy"n
set opt(mac) Mac/802_11 # L>p Mac
set opt(ifq) Queue/DropTail/PriQueue # Hàng ñEi giao di7n m8ng
set opt(ll) LL # L>p liên k"t
set opt(ant) Antenna/OmniAntenna # Mô hình anten
set opt(x) 1500 # TIa ñJ X cLa tôpô
set opt(y) 300 # TIa ñJ Y cLa tôpô
set opt(ifqlen) 50 # ðJ dài hàng ñEi gdi7n
set opt(tr) out.tr # File trace ñQu ra
set opt(nam) final.nam # File nam ñQu ra
set opt(adhocRouting) DSDV # Giao thTc ñUnh tuy"n
set opt(nn) 50 # S% nút m8ng
set opt(cp) "cbr 50 20 4 512" # Mô hình lưu lưEng
set opt(sc) "scen 1500x300 50 900 20 1" # Mô hình di ñJng
set opt(stop) 900.0 # ThZi gian mô ph[ng
5.3.6. Kết quả mô phỏng
5.3.6.1. Hình ảnh minh họa mô phỏng
Hình ảnh mô phỏng được tạo ra dưới dạng file Nam. Sau đây là một vài hình ảnh truyền phát tín hiệu và dữ liệu của mô hình sử dụng giao thức DSR với mô hình lưu lượng cbrZ50Z10Z4Z512 và mô hình di động scenZ1500x300Z50Z0Z20Z1. Với mỗi mô phỏng tương ứng với các giao thức khác ta cũng thu được kết quả tương tự. Tuy nhiên, chúng ta quan tâm nhiều hơn đến dữ liệu được tạo ra trong file Trace.
5.3.6.2. Dữ liệu tạo ra qua mô phỏng
Dữ liệu được tạo ra trong quá trình mô phỏng được lưu trong các file Trace (.tr). Nếu cần thiết có thể mở các file này dưới dạng text hoặc .tcl. Khuôn dạng dữ liệu trong file Trace được tạo ra cho các nút mạng di động mô phỏng có dạng như sau:
s t 4.084797885 Hs 7 Hd 2 Ni 7 Nx 659.18 Ny 19.48 Nz 0.00 Ne 1.000000 Nl AGT Nw Ma 0 Md 0 Ms 0 Mt 0 Is 7.2 Id 9.0 It cbr Il 512 If 0 Ii 0 Iv 32 Pn cbr Pi 0 Pf 0 Po 2 r t 4.084797885 Hs 7 Hd 2 Ni 7 Nx 659.18 Ny 19.48 Nz 0.00 Ne 1.000000 Nl RTR Nw Ma 0 Md 0 Ms 0 Mt 0 Is 7.2 Id 9.0 It cbr Il 512 If 0 Ii 0 Iv 32 Pn cbr Pi 0 Pf 0 Po 2
Định dạng Trace trong mô phỏng có thể được chia thành các loại trường sau: Loại sự kiện: trường thứ nhất mô tả loại sự kiện, có thể là một trong bốn loại sau: s (gửi), r (nhận), d (mất), f (gửi lại).
Thẻ tổng quát: Trường thứ hai bắt đầu với chữ “Zt” để chỉ thời gian và trường tiếp sau nó là thời gian thực hiện.
Các thẻ riêng: loại trường này bao hàm những tính chất riêng của nút như id, loại thẻ này bắt đầu bằng “ZN”: ZNi: id nút, ZNx: tọa độ x của nút, ZNy: tọa độ y của nút, ZNz: tọa độ z của nút, ZNe: mức năng lượng của nút, ZNl: mức trace (như: AGT (trace mức tác nhân), RTR (trace mức định tuyến), MAC), ZNw: lý do của sự kiện.
Thông tin gói ở mức IP: loại thẻ này cho các trường này bắt đầu bằng “ZI”: ZIs: địa chỉ nguồn.số cổng nguồn, ZId: địa chỉ đích.số cổng đích, ZIt: loại gói, ZIl: kích thước gói, ZIf: id luồng, ZIl: if duy nhất, ZIv: giá trị ttl (thời gian tồn tại). Thông tin bước tiếp theo: bắt đầu bằng “ZH”: ZHs: id của nút này, ZHd: id của bước tiếp theo hướng tới đích.
Thông tin gói ở lớp MAC: bắt đầu bằng “ZM”: ZMa: khoảng thời gian, ZMd: địa chỉ ethernet của nút đích, ZMs: địa chỉ ethernet của nút nguồn, ZMt: loại ethernet.
Thông tin gói ở mức ứng dụng: thông tin gói ở mức này như: ARP, TCP, loại giao thức định tuyến DSDV, AODV, DSR… Trường này bắt đầu bằng “ZP”. Ví dụ, ở dòng đầu tiên, thời điểm 4.0848s nút 7 ở tọa độ (659.18, 19.48, 0) gửi tới nút 2, mức Trace là AGT, loại gói CBR (Constant Bit Rate), kích thước gói 512 bytes.
5.3.6.3. Đánh giá kết quả mô phỏng
Từ kết quả có trong file .tr, ta thực hiện việc tách dữ liệu, tính toán và sau đó sử dụng excell để vẽ đồ thị. Ta có các đồ thị biểu diễn tỷ lệ mất gói của các giao thức ứng với một số điều kiện như trình bày trên các hình sau đây.
Báo cáo Đồ án Tốt nghiệp Chương V: Thực hiện mô phỏng 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0 200 400 600 800 1000 Th i gian d ng (s) T l m ! t g ó i AODV'10 DSDV'10 DSR'10
Hình 5.5: Đồ thị tỷ lệ mất gói, số nút nguồn là 10, tốc độ di chuyển lớn nhất là 20m/s
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0 200 400 600 800 1000 Th i gian d ng (s) T l m ! t g ó i AODV'20 DSDV'20 DSR'20
Hình 5.6: Đồ thị tỷ lệ mất gói, số nút nguồn là 20, tốc độ di chuyển lớn nhất là 20m/s
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0 200 400 600 800 1000 Th i gian d ng (s) T l m ! t g ó i AODV'10'1 DSDV'10'1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0 200 400 600 800 1000 Th i gian d ng (s) T l m ! t g ó i AODV'20'1 DSDV'20'1
Hình 5.8: Đồ thị tỷ lệ mất gói, số nút nguồn là 20, tốc độ di chuyển lớn nhất 1m/s
Nhận xét đánh giá các kết quả mô phỏng:
Với tốc độ di chuyển lớn nhất là 20m/s, dù với số nút nguồn là 10 hay 20 thì DSR và AODV cũng cho một tỷ lệ mất gói thấp hơn (dưới 0.12) (hình 5.5, 5.6). Trong đó, ở những giây mô phỏng đầu DSDV có tỷ lệ mất gói rất cao (lên tới 0.7), với số nút nguồn càng tăng thì tỷ lệ mất gói trong những giây đầu càng tăng. Thời gian mô phỏng tăng, tỷ lệ mất gói của DSDV giảm nhanh đến mức 0. Tỷ lệ mất gói của DSR và AODV tương đối ổn định, hoạt động tốt trong trường hợp số nút nguồn tăng.
Với tốc độ di chuyển lớn nhất là 1m/s, AODV hoạt động tốt cho tỷ lệ mất gói rất thấp (hình 5.7, 5.8). Trong khi đó, số nút nguồn giảm và tốc độ di chuyển của các nút giảm dần, tỷ lệ mất gói của DSDV dưới 0.07 (hình 5.7).
Như vậy, AODV và DSR có tỷ lệ mất gói thấp và ổn định hơn trong các điều kiện như số nút nguồn thay đổi và tốc độ di chuyển trung bình thay đổi. Còn DSDV có tỷ lệ mất gói cao trong điều kiện có nhiều nút nguồn và tốc độ di chuyển trung bình của các nút cao. DSDV cho tỷ lệ mất gói thấp trong trường hợp tốc độ di chuyển trung bình chậm.
5.3.7. Ra quyết định lựa chọn thuật toán định tuyến
Căn cứ kết quả thu được ở trên, ta có thể xây dựng hàm ra quyết định giải quyết bài toán lựa chọn thuật toán định tuyến.
Thuật toán của hàm ra quyết định được mô tả dưới dạng mã giả như sau: Function Lựa chọn thuật toán định tuyến
Begin
If tỷ lệ mất gói >= 0.7 then return AODV If ( tỷ lệ mất gói < 0.07) then
Báo cáo Đồ án Tốt nghiệp Chương V: Thực hiện mô phỏng
Begin
If (số nút nguồn <= 10) và (tốc độ lớn nhất <= 1m/s) then return DSDV;
If (số nút nguồn > 10) và (tốc độ lớn nhất trong khoảng 1 đến 20 m/s) then return DSR
Else return AODV; End;
If ( 0.07 < tỷ lệ mất gói < 0.7 ) then Begin
If (số nút nguồn <= 10)và(tốc độ lớn nhất<=20) then return DSR elseIf (số nút nguồn >10)và(tốc độ lớn nhất<=20) then return AODV
else return DSDV End;
End;
5.4. Mô phỏng cho bài toán ứng dụng mạng Ad hoc trong giao thông
5.4.1. Mô tả kịch bản mô phỏng
Mô phỏng được thực hiện với mục đích trình bày về khả năng áp dụng mạng Ad hoc phục vụ cho giao thông. Với việc kết hợp mô hình lựa chọn thuật toán định tuyến để giảm thiểu tỷ lệ mất gói, mô hinh ứng dụng mạng Ad hoc trong bài toán giao thông cụ thể đã nêu ở đầu chương IV sẽ đem lại hiệu quả cao hơn và có ý nghĩa thực tiễn hơn. Tuy nhiên, trong phần này bài đồ án chỉ mô phỏng cách thức hoạt động của một hệ thống truyền thông gắn với những con đường (chưa có phần kết hợp việc tính toán tỷ lệ mất gói và lựa chọn định tuyến). Phần mô phỏng này sẽ giúp có cái nhìn trực quan hơn về mô hình bài toán đã nêu.
Mô hình được tạo ra ban đầu có hình dạng giống như trong hình 4.1. Sử dụng thuật toán lựa chọn ngầm định ban đầu là AODV. Tổng số nút là 15, trong đó nút 1 đến nút 12 là những nút được đặt cố định, mô phỏng cho những nút mạng được đặt cố định ở hai bên đường dọc tuyến giao thông. Các nút từ 13, 14 là những nút di động, mô phỏng cho các nút Ad hoc, nghĩa là các máy đầu cuối người dùng (Laptop, PDA, các máy đầu cuối di động). Trong cấu hình mạng mô phỏng như trên, bất kỳ nút nào cũng có thể là nút nguồn, nút đích hoặc nút trung gian. Các nút di động sẽ truyền thông cho nhau trực tiếp hoặc qua các nút trung gian khác (là nút cố định hoặc nút di động) tùy thuộc vào vị trí, tốc độ di chuyển và thuật toán định tuyến.
Để cho đơn giản và dễ sắp xếp, lưu lượng và di động của các nút mạng được thiết lập ngay trong chương trình chính chứ không qua việc tạo ra các kịch bản di động và lưu lượng riêng.
15 nút mạng được biểu diễn trong diện tích giả định 900mx400m, thời gian mô phỏng là 100s. Mô phỏng sử dụng mô hình lưu lượng FTP và lưu lượng có tốc độ không đổi CBR với kích thước gói là 512 Bytes.
5.4.2. Thực hiện mô phỏng
Các thiết lập về nút mạng và các điều kiện khác cũng giống như việc mô phỏng để xây dựng hàm ra quyết định như đã nêu ở phần trên. Hình 5.9 minh họa các nút mạng cố định (nút 0 đến nút 12) và các nút mạng di động (nút 13, 14) trên một tuyến đường giao thông. Các nút mạng tạo thành một mạng Ad hoc. Các nút di động (13, 14) có thể truyền thông cho nhau thông qua các nút mạng hai bên đường (0 đến 12) hoặc có thể truyền thông trực tiếp với các nút mạng này.
Hình 5.9: Mô phỏng các nút mạng Ad hoc trong bài toán áp dụng mạng Ad hoc cho tuyến đường giao thông.
5.4.3. Đánh giá mức độ áp dụng
Theo kết quả mô phỏng trên, ta nhận thấy hoàn toàn có thể xây dựng một mô hình áp dụng mạng Ad hoc cho truyền thông tin trên một tuyến đường giao thông. Trong mô hình mạng Ad hoc này, mô hình lựa chọn thuật toán định tuyến với tỷ lệ mất gói thấp