Bộ mô phỏng mạng NS2 [2]-[15]-[20]

Một phần của tài liệu LUẬN VĂN:ĐỊNH TUYẾN TRONG MẠNG AD HOC VÔ TUYẾN pdf (Trang 65 - 94)

4.1.1. Giới thiệu

NS là bộ mô phỏng mạng theo sự kiện rời rạc được phát triển ở trường đại học Berkely bang California đầu tiên bắt nguồn từ dự án VINT được bộ quốc phòng Mỹ cấp kinh phí phát riển. NS được phát triển từ bộ mô phỏng REAL của S. Keshav từ năm 1989, còn REAL thì bắt nguồn từ bộ mô phỏng NEST. Các phiên bản NS version 2 ra đời sau năm 1997 và từ đó người ta thường gọi bộ mô phỏng là NS-2. NS-2 được viết trên hai ngôn ngữ hướng đối tượng là C++ và OTcl. C++ được sử dụng để xây dựng phần nhân của bộ mô phỏng để đảm bảo tốc độ thực hiện cao và thay đổi. OTcl được sử dụng để xây dựng phần giao tiếp với người sử dụng (shell), giúp người sử dụng dễ dàng thiết lập cấu hình mạng, lựa chọn giao thức truyền thông, thiết lập các nguồn sinh lưu lượng, các mô hình sinh lỗi v.v.

Hình 4.1. Mô hình tổng quan bộ mô phỏng NS-2

NS-2 là kịch bản hướng đối tượng, bộ thông dịch nó chứa bộ lập lịch các sự kiện(Event Scheduler) và thư viện đối tượng các thành phần mô phỏng mạng (Network Component Object), thư viện module thiết lập mạng. Nói cách khác, người dùng NS lập trình bằng ngôn ngữ kịch bản OTcl lập lịch các sự kiện trên một đồ hình mạng cụ thể sau đó chạy mô phỏng mạng, thông qua trình thông dịch trong NS-2 để đưa kết quả ra 2 loại tệp chính: đó là tệp vết (trace file), có tên mở rộng là *.tr, ghi lại tất cả các sự kiện mạng (người sử dụng có thể lọc bớt các sự kiện bằng OTcl). Loại tệp thứ hai có tên mở rộng là *.nam, có khuôn dạng tương tự tệp vết, được sử dụng làm

đầu vào cho chương trình hiển thị kết quả mô phỏng dưới dạng đồ họa, chương trình NAM.

NS được cải tiến và mở rộng không ngừng, trung bình cứ 6 tháng người ta lại đưa ra một phiên bản mới, trong đó đã sửa chữa các khiếm khuyết được cộng đồng sử dụng phát hiện và bổ sung thêm một số khả năng mô phỏng mới. Phiên bản đầu tiên được giới thiệu và sử dụng rộng rãi là NS-2.1b2, phiên bản mới nhất, tính đến giữa năm 2008 là NS-2.34.

Ngày nay, cộng đồng sử dụng NS-2 gồm hàng nghìn trường đại học, viện nghiên cứu, công ty… và hàng vạn người trên thế giới. Các kết quả nghiên cứu bằng NS-2 là đáng tin cậy và được cộng đồng nghiên cứu về mạng thừa nhận.

4.1.2. Sự liên kết giữa C++ và OTCL

NS được xây dựng trên hai ngôn ngữ C++ và kịch bản OTcl. Để có được hiệu suất cao, NS tách biệt việc xử lý và điều khiển dữ liệu. Để giảm thời gian xử lý gói và các sự kiện (không phải thời gian mô phỏng), bộ lập lịch các sự kiện và các thành phần đối tượng mạng cơ bản trong phần dữ liệu được viết và biên dịch sử dụng trình biên dịch C++. Các đối tượng được biên dịch này có thể được sử dụng bằng trình thông dịch OTcl qua một mối liên kết OTCL, mối liên kết tạo lên sự phù hợp giữa đối tượng OTcl cho mỗi đối tượng C++ và tạo nên các chức năng, các tham số cấu hình bởi đối tượng C++ tương ứng với các hàm thành phần và các biến thành phần của đối tượng OTclL. Theo cách đó, các đối tượng điều khiển của C++ được trao cho OTcl. Nó cũng có thể thêm các hàm thành phần và các biến vào C++ đã được liên kết với đối tượng OTcl. Các đối tượng trong C++ không cần được điều khiển trong mô phỏng hoặc được sử dụng bên trong bởi đối tượng khác không được liên kết tới OTcl. Cũng như vậy, một đối tượng (không phải phần dữ liệu) có thể được triển khai hoàn toàn bằng OTcl.

Hình 4.2: C++ và OTcl, hai thành phần đối ngẫu

Hình trên mô tả một một ví dụ về phân cấp đối tượng trong C++ và OTcl. Một điều chú ý trong hình đó là các đối tượng trong C++ có sự liên kết với OTcl dựng lên một phân cấp, đó là một phân cấp đối tượng OTcl giống như của C++.

4.1.3. Mô hình kiến trúc NS2

Hình 4.3: Kiến trúc của NS

Hình trên cho thấy kiến trúc tổng quát của NS. Trong hình này, một người dùng thông thường (không phải người phát triển) đứng ở vị trí góc dưới bên trái, thiết kế và chạy các mô phỏng trong Tcl sử dụng các đối tượng mô phỏng trong thư viện OTcl. Bộ lập lịch các sự kiện và hầu hết các thành phần mạng được triển khai trong C++ và có thể sử dụng qua OTcl, một sự liên kết OTcl được triển khai sử dụng tclcl. Toàn bộ các vần đề cùng NS chúng là một mở rộng thông dịch Tcl với các thư viện mô phỏng.

4.1.4. Các đặc điểm chính của NS2

Bộ mô phỏng NS2 có thể hỗ trợ người nghiên cứu mạng các đặc điểm nổi bật sau:

- Khả năng trừu tượng hóa: giúp nghiên cứu các giao thức mạng ở nhiều mức khác nhau, từ hành vi đơn lẻ của một giao thức đến kết hợp của nhiều luồng dữ liệu và tương tác của nhiều giao thức. Điều này giúp người nghiên cứu có thể dễ dàng so sánh và phân tích các kết quả chi tiết với trừu tượng.

- Khả năng tương tác với mạng thực: Cho phép chương trình mô phỏng đang chạy tương tác với các nút mạng thực đang hoạt đông thông qua việc thiết lập lưu lượng cho các liên kết mạng.

- Khả năng tạo ngữ cảnh: Người nghiên cứu có thể tạo các hiện trạng mạng phức tạp và các sự kiện động như lỗi liên kết một cách dễ dàng. Điều này giúp cho việc nghiên cứu, kiểm chứng các giao thức mạng trong các mô hình mạng khác nhau được đúng đắn hơn.

- Khả năng hiển thị hóa: Thông qua công cụ hiển thị NAM, người nghiên cứu có thể quan sát trực quan hoạt động của các nút mạng, lưu lượng, tỷ lệ lỗi để từ đó dễ dàng hiểu được các hành vi phức tạp của đồ hình mạng mô phỏng.

- Khả năng mở rộng được: NS2 cho phép mở rộng các chức năng mới một cách dễ dàng như thay đổi các tham số, xây dựng lên một giao thức mới, thử nghiệm các kịch bản khác nhau...

4.1.5. Khả năng mô phỏng của NS

Với bộ mô phỏng NS2, người dùng có thể mô phỏng nhiều giao thức khác nhau tại nhiều tầng khác nhau như: tại tầng ứng dụng, FTP, HTTP; tại tầng giao vận như: UDP,

TCP (reno, tahoe, vegas, sack…), tại tầng MAC như: MAC 802.3, MAC 802.11, MAC 802.15, ...trong các mô hình mạng có dây, mô hình mạng không dây và mô hình mạng hỗn hợp. Ngoài ra NS-2 còn có thể mô phỏng các thuật toán định tuyến trong mạng không dây, đặc biệt là mạng Ad-hoc: DSDV, DSR, AODV, TORA,… các vấn đề về định tuyến Unicast/Multicast, liên mạng sử dụng vệ tinh (Satellite network) và nhiều các vấn đề khác cụ thể như:

Đối với mạng có dây:

- Các đường truyền điểm - điểm đơn công, song công, mạng cục bộ LAN. - Các chính sách phục vụ hàng đợi.

- Các mô hình sinh lỗi.

- Vấn đề định tuyến Unicast/Multicast (Unicast/Multicast routing).

- Các giao thức tầng Giao vận: TCP/Tahoe/Reno/New-Reno/Sack/Vegas, UDP, điều khiển lưu lượng và điều khiển tắc nghẽn.

- Các giao thức tầng Ứng dụng, Web caching, truyền luồng dữ liệu đa phương tiện.

Đối với mạng không dây: (adsbygoogle = window.adsbygoogle || []).push({});

- Kênh truyền.

- Sự di chuyển của các nút mạng trong không gian hai chiều. - Mạng LAN không dây (WLAN) 802.11.

- Mobile IP.

- Các thuật toán định tuyến trong mạng không dây đặc biệt (Ad Hoc networks): DSDV, DSR, AODV, TORA...

- Liên mạng sử dụng vệ tinh (Satellite Networking).

Trong lĩnh vực mạng hỗn hợp có dây và không dây:

- Trạm cơ sở (Base station) đóng vai trò gateway giữa mạng có dây và mạng không dây.

- Snoop TCP.

4.2. Mô phỏng mạng di động không dây 802.11 trong NS [18]-[20]-[21] 4.2.1. Các mô hình truyền sóng vô tuyến 4.2.1. Các mô hình truyền sóng vô tuyến

4.2.1.1. Mô hình FreeSpace

Mô hình truỵền FreeSpace cho rằng điều kiện truyền lí tưởng là chỉ truyền theo một đường dẫn nằm trong tầm nhìn thấy giữa máy truyền và máy nhận. H. T. Friss đưa ra phương trình tính toán nguồn tín hiệu nhận trong một không gian tự do ở khoảng cách d từ thiết bị truyền.

L d ) ( λ G G P = (d) P t t r r 2 2 2 4π (4.1)

Với Pt là nguồn năng lượng tín hiệu truyền, Gt và Gr là gains ăng ten của máy phát và máy thu theo thứ tự. L (L>=1) là độ mất hệ thống, λ là bước sóng, thông thường nó được chọn Gt=Gr=1 và L=1 trong mô phỏng NS.

Mô hình FreeSpace trình bày cơ bản dải truyền thông như một vòng quanh máy phát. Nếu một máy nhận trong phạm vi vòng vòng tròn phát, nó nhận tất cả các gói tin. Ngược lại nó làm mất tất cả các gói tin.

Giao diện OTcl với việc sử dụng một mô hình truỵền thông là lệnh cấu hình nút. Một cách để sử dụng nó ở đây là:

$ns_ node-config -propType Propagation/FreeSpace Một cách khác là :

set prop [new Propagation/FreeSpace] $ns_ node-config -propInstance $prop

4.2.1.2. Mô hình hai tia mặt đất (Two Ray Ground)

Một đường truyền đơn trong tầm nhìn thấy giữa hai nút di động là rất hiếm. Mô hình phản xạ hai tia mặt đất xem xét đường truyền trực tiếp và đường truyền phản xạ từ mặt đất. Nó nói lên rằng mô hình này đem đến các dự đoán chính xác hơn với một khoảng cách lớn hơn so với mô hình FreeSpace. Năng lượng nguồn nhận ở một khoảng cách d được dự đoán bởi:

L d h h G G P = (d) P t t r t r r 4 2 2 (4.2)

Ở đây ht và hr là độ cao của ăng ten truyền và nhận theo thứ tự. Chú ý rằng công thức nguyên gốc trong tài liệu [20] giả sử L=1. Để thống nhất với mô hình FreeSpace, được thêm vào ở đây.

Phương trình trên chỉ ra một nguồn nhanh hơn phương trình (4.1) giống như khi khoảng cách tăng. Tuy nhiên, mô hình Two Ray Ground không đem lại một kết quả tốt với một khoảng cách ngắn tại vì sự dao động được gây ra bởi việc tạo và phá huỷ kết hợp của hai tia. Vì vậy, mô hình FreeSpace vẫn được sử dụng khi d nhỏ.

Do vậy, một khoảng cách lớn dc sẽ được tính toán trong mô hình này. Khi d<dc phương trình (4.1) được sử dụng, khi d>dc phương trình (4.2) được sử dụng. Với cùng một khoảng cách hai phương trình này cho kềt quả tương tự nhau. Vì thế dc có thể được tính toán như sau:

λ ) h ( = dc 4ππt r / (4.3)

Thông thường, trình thông dịch OTcl sử dụng mô hình phản xạ hai tia mặt đất như sau:

$ns_ node-config -propType Propagation/TwoRayGround Hay có thể sử dụng:

set prop [new Propagation/TwoRayGround] $ns_ node-config -propInstance $prop

4.2.1.3. Mô hình Shadowing

Tổng quan: Mô hình FreeSpace và mô hình phản xạ Two Ray Ground dự đoán

nguồn năng lượng nhận như một chức năng tất định của khoảng cách. Cả hai trình bày dải truyền thông như một vòng tròn lí tưởng. Trên thực tế, nguồn năng lượng nhận ở (adsbygoogle = window.adsbygoogle || []).push({});

một khoảng cách nhất định là một giá trị ngẫu nhiên tại vì nhiều hiệu ứng truyền khác nhau, nó cũng được biết đến như hiện tượng fading (tượng biến đổi cường độ tín hiệu sóng mang). Trên thực tế, cả hai mô hình trên đều dự đoán giá trị trung bình của nguồn năng lượng nhận ở khoảng cách d. Một mô hình tổng quát và thường được sử dụng hơn là mô hình Shadowing

Bảng 4.1. Một vài giá trị đặc biệt của độ mất đường dẫn p

Môi trường p

Không gian lí tưởng 2

Ngoài trời

Các khu vực bị khuất 2.7 tới 5 Tầm nhìn thấy (thẳng) 1.6 tới 1.8 Trong nhà

Bị che khuất 4 tới 6

Bảng 4.2. Một số giá trị đặc biệt của độ lệch hiệu ứng màn chắn (shadowing).

Môi trường dB (dB)

Ngoài trời 4 tới 12

Văn phòng, khu vực cứng cáp 7 Văn phòng, khu vực mềm dẻo 9.6 Nhà máy, tầm nhìn thẳng 3 tới 6

Nhà máy, tầm bị khuất 6.8

Mô hình Shadowing bao gồm hai phần. Phần thứ nhất được biết đến như một mô hình mất đường dẫn, điều đó cũng có thể dự đoán giá trị trung bình của nguồn năng lượng nhận ở khoảng cách d, được biểu thị bởi Pr(d). Nó sử dụng khoảng cách gần d0 như một tham chiếu. Pr(d) được tính toán liên quan tới Pr(d0) như sau:

         0 0 ) ( ) ( d d d P d P r r

β được gọi là hệ số mất đường dẫn, và nó thường được xác định theo kinh nghiệm bởi các phương pháp đo lường. Từ phương trình (4.1) chúng ta biết được rằng β =2 cho truyền dẫn trong FreeSpace. Bảng 4.1 đưa ra một số giá trị đặc biệt của β. Giá trị lớn hơn phù hợp hơn với các tắc nghẽn và do đó làm gia tăng nhanh hơn giá trị trung bình của nguồn năng lượng nhận giống như khoảng cách trở nên lớn hơn. Pr(d0) có thể đựơc tính toán từ phương trình (4.1).

Việc mất đường dẫn thường được đo bằng dB(deciBel). Từ phương trình (4.4) chúng ta có                 0 0 log 10 ) ( ) ( d d d P d P dB r r

Phần thứ hai của mô hình phản xạ Shadowing là sự thay đổi của nguồn năng lượng nhận ở một khoảng cách nhất định. Nó là biến có giá trị ngẫu nhiên, do vậy nó là phân phối Gauss nếu được đo bằng dB. Nói tóm lại, toàn bộ mô hình Shadowing được biểu diễn bởi

(4.4)

dB dB r r X d d d P d P                  0 0 log 10 ) ( ) (

Với XdB là biến ngẫu nhiên Gauss với giá trị trung bình là 0 và độ lệch chuẩn dB, được gọi là độ lệch hiệu ứng chắn và cũng thu được thông qua các phương pháp đo lường. Bảng 4.2 chỉ ra một vài giá trị đặc biệt cúa nó.

Mô hình Shadowing mở rộng mô hình vòng tròn lí tưởng để đạt tới mô hình thống kê: các nút có thể chỉ truyền theo xác suất khi ở gần rìa của dãi truyền thông.

Mục đích mô hình Shadowing: Trước khi sử dụng mô hình Shadowing, người sử dụng lên chọn các giá trị của hệ số mất đường đi và độ lệch hiệu ứng màn chắn chuẩn

dB tuỳ theo môi trường mô phỏng.

Trình thông dịch OTcl vẫn là lệnh cấu hình nút. Một cách để sử dụng nó như sau, và các giá trị với các tham số chỉ được đưa ra làm ví dụ:

# Đầu tiên phải thiết lập giá trị của mô hình hiệu ứng màn chắn. Propagation/Shadowing set pathlossExp_ 2.0 ;hệ số mất đường dẫn

Propagation/Shadowing set std_db_ 4.0 ; độ lệch hiệu ứng màn chắn (dB) Propagation/Shadowing set dist0_ 1.0 ;khoảng cách tham chiếu (m)

Propagation/Shadowing set seed_ 0 ;khởi đầu với RNG-Random number Genrator $ns_ node-config -propType Propagation/Shadowing ;Cấu hình cho nút

Mô hình Shadowing tạo ra một số ngẫu nhiên khởi xướng đối tượng RNG. RNG có ba kiểu khởi tạo: Khởi tạo thô, khởi tạo xác định trước (một thiết lập tốt của khởi tạo) và khởi tạo thông minh (hueristic) (chi tiết trong chương 22.1 tài liệu [20]). Các API trên chỉ sử dụng khởi tạo xác định trước. Nếu một người sử dụng muốn khởi tạo bằng một phương thức khác, API dưới đây có thể được sử dụng.

set prop [new Propagation/Shadowing] $prop set pathlossExp_ 2.0

$prop set std_db_ 4.0 $prop set dist0_ 1.0 (adsbygoogle = window.adsbygoogle || []).push({});

$prop seed <seed-type> 0

$ns_ node-config -propInstance $prop

<seed-type> có thể là thô, xác định trước hay heuristic.

4.2.2. Tạo một nút di động (Mobile Node)

MobileNode là đối tượng cơ bản ns đối tượng Node cùng với các chức năng thêm vào như sự di chuyển, khả năng truyền và nhận trên một kênh cho phép tạo môi các truờng di động (mobile), môi trường mô phỏng mạng vô tuyến. Lớp MobileNode có xuất phát từ lớp cơ sở Node. MobileNode là một đối tượng tách biệt. Các tính năng mobile gồm có di chuyển node, cập nhập vị trí định kỳ, duy trì đường biên của đồ hình mạng,… được thực thi trong C++ trong khi tìm kiếm các thành phần của mạng bên trong của MobileNode (như các phân lớp, dmux, LL, Mac, Channel,…) đã được thực thi trong Otcl. Các chức năng và các thủ tục được mô tả trong phần này có thể được

Một phần của tài liệu LUẬN VĂN:ĐỊNH TUYẾN TRONG MẠNG AD HOC VÔ TUYẾN pdf (Trang 65 - 94)