Hình 3.2 Kiến trúc NS2
Hình 3.2 cho thấy kiến trúc tổng quát của bô ̣ mô phỏng NS2. Trong hình này, một ngƣời dùng thông thƣờng đứng ở vị trí góc dƣới bên trái, thiết kế và chạy các mô phỏng đƣợc viết bằng Tcl.
Tcl dùng các đối tƣợng mô phỏng trong Otcl . Các đối tƣợng b ộ lập lịch các sự kiện và các đối tƣợng thành ph ần ma ̣ng thƣ̣c thi bằng C ++ và sẵn có cho Otcl qua mô ̣t liên kết Otcl . Liên kết OTcl đƣợc thƣ̣c thi sử dụng tclcl. Tất cả đã làm nên NS2, bô ̣ biên di ̣ch TCL mở rô ̣ng hƣớng đối tƣợng và các thƣ viê ̣n mô phỏng mạng
3.1.3 Đặc điểm chính Ns2
- Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại. - Khả năng đánh giá các giao thức mạng mới trƣớc khi đƣa vào sử dụng. - Khả năng thực thi những mô hình mạng lớn mà gần nhƣ ta không thể thực thi đƣợc trong khi cần nghiên cƣ́u.
- Khả năng mô phỏng nhiều loại mạng khác nhau bao gồm ma ̣ng có dây , mạng không dây, và mạng hỗn hợp cả có dây và không dây.
- 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.
3.1.4 Khả năng mô phỏng mạng của NS2
Đố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:FTP, HTTP, Web caching,
- Các giao thức tầng MAC nhƣ: MAC 802.3, MAC 802.11,MAC 802.15.
Đối với mạng không dây: - 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.
3.1.5 Mô hình truyền sóng vô tuyến trong mạng di động không dây
Mô hình truyền vô tuyến đƣợc triển khai trong NS đƣợc sử dụng để cho biết công suất tín hiệu nhận đƣợc của mỗi gói tin. Tại lớp vật lý của mỗi nút mạng không dây , có một ngƣỡng tiếp nhận . Khi một gói tin đƣợc nhận, nếu công suất tín hiệu của nó nhỏ hơn ngƣỡng nhận thì gói tin đó sẽ bị đánh dấu là lỗi và bị hủy bỏ tại tầng MAC.
Hiện nay, NS hỗ trợ 3 mô hình truyền vô tuyến, đó là mô hình Free Space, mô hình Two-Ray Ground Reflection và mô hình the Shadowing. Các mô hình này đƣợc triển khai trong NS thông qua các file: ~ns/propagation.{cc,h}, ~ns/tworayground.{cc,h} và ~ns/shadowing.{cc,h}.
3.1.5.1 Mô hình FreeSpace [7, tr.189]
Đây là mô hình lan truyền trong không gian tƣ̣ do với các điều kiện lan truyền lý tƣởng mà chỉ có duy nhất mô ̣t đƣờng giƣ̃a thiết bi ̣ phát và thiết bi ̣ thu. Công thƣ́c (3.1) sẽ tính công suất tín hiệu nhận đƣợc với khoảng cách d từ thiết bi ̣ phát là:
L d ) ( λ G G P = (d) P t t r r 2 2 2 4π Trong đó
Thông thƣờng trong các mô phỏng thì Gr, Gt và L đƣợc gán giá trị bằng 1. Mô hình không gian tự do cơ bản tƣợng trƣng cho phạm vi truyền nhƣ một vòng tròn xung quanh máy phát. Nếu máy nhận là trong vòng tròn này nó sẽ nhận đƣợc tất cả các gói. Nếu không, nó sẽ mất tất cả các gói.
Câu lệnh khai báo mô hình truyền vô tuyến Free Space đƣợc thực hiện:
$ns_ node-config -propType Propagation/FreeSpace set prop [new Propagation/FreeSpace]
$ns_ node-config -propInstance $prop
3.1.5.2 Mô hình hai tia mặt đất (Two Ray Ground) [7, tr.190]
Mô hình mô ̣t con đƣờng giƣ̃a 2 nút di đô ̣ng (mô hình freeSpace) là rất hiếm khi xảy ra . Mô hình phản xạ hai tia mă ̣t đất xem xét cả đƣờng dẫn trƣ̣c tiếp và đƣờng dẫn phản xạ trên mă ̣t đất. Mô hình này cho phép dƣ̣ đoán chính xác hơn so với mô hình FreeSpace . Công suất thu ở khoảng cách d đƣợc dƣ̣ đoán bởi công thƣ́c sau: d L h h G G P = (d) P t t r t r r 4 2 2
Pr, Pt: là công suất tín hiệu đƣợc nhận, truyền tƣơng ứng
Gr, Gt: năng lực nhận, truyền của ăng tên λ : bƣớc sóng
d: khoảng cách
L: sự tiêu hao của hệ thống (L >=1)
(3.1)
Trong đó
Tƣ̀ công thƣ́c (3.2) mô hình Two Ray Ground không đem lại một kết quả tốt với 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, với khoảng cách truyền lớn dc sẽ đƣợc tính toán theo mô hình này. Khi d<dc phƣơng trình (3.1) đƣợc sử dụng, khi d>dc phƣơng trình (3.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 / (3.3)
Câu lệnh khai báo mô hình truyền vô tuyến Two-ray Ground Feflection đƣợc thực hiện:
$ns_ node-config -propType Propagation/TwoRayGround set prop [new Propagation/TwoRayGround]
$ns_ node-config -propInstance $prop
3.1.5.3 Mô hình Shadowing [7, tr.189]
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 ở 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 pha-đing (fading), là hiê ̣n tƣợng biến đổi (giảm) 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.
Pr, Pt: là công suất tín hiệu đƣợc nhận, truyền tƣơng ứng Gr, Gt: năng lực nhận, truyền của ăng tên
λ : bƣớc sóng d: khoảng cách
L: sự tiêu hao của hệ thống (L >=1)
ht và hr biểu diễn cho chiều cao của các ăng ten truyền và nhận tƣơng ứng
Bảng 3.1. Một vài giá trị đặc biệt của độ mất đƣờng dẫn p
Môi trƣờng p
Ngoài trời Không gian lí tƣởng 2
Các khu vực bị khuất 2.7 tới 5 Trong nhà Tầm nhìn thấy (thẳng) 1.6 tới 1.8
Bị che khuất 4 tới 6
Bảng 3.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 năng lƣợng trên đƣờng truyề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 trên đƣờng truyề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 (3.1) chúng ta biết đƣợc rằng β =2 cho truyền dẫn trong FreeSpace. Bảng 3.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 (3.1).
Việc mất đƣờng dẫn thƣờng đƣợc đo bằng dB(deciBel). Từ phƣơng trình (3.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,
(3.4)
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
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 3.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 thành công theo xác suất khi ở gần rìa của phạm vi 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 nên chọn các giá trị của hệ số mất trên đƣờng truyền và độ lệch hiệu ứng màn chắn chuẩn dB tuỳ theo môi trƣờng mô phỏng.
# Đầ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). 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
$prop seed <seed-type> 0
$ns_ node-config -propInstance $prop <seed-type> có thể là thô, xác định trƣớc hay heuristic.
3.1.6. Mô hình chuyển động của các nút mạng
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 việc đánh giá hiệu suất của các giao thức trƣớc khi mang ra triển khai thực tế. Đối với ma ̣ng không dây có hai loại mô hình di chuyển đƣợc sử dụng đó
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 cung cấp cho ta thông tin chính xác, đặc biệt là khi nó có liên quan tới nhiều bên tham gia và có thời gian đủ dài. Tuy nhiên, mô hình tổng hợp là 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ê. Mỗi nút sẽ đƣợc gán một giải thuật nhằm ngẫu nhiên hóa quá trình di chuyển. Hai mô hình chuyển đô ̣ng tiêu biểu đã đƣợc tích hợp vào NS2 để mô phỏng các mạng Ad-hoc là: Random Waypoint và Random Walk.
3.1.6.1. Mô hình Random Waypoint
Mô hình Random waypoint lần đầu tiên đƣợc đề xuất bởi Johnson và Maltz. Ngay sau đó, nó đã trở thành một mô hình di động 'chuẩn' để đánh giá các giao thức định tuyến cho ma ̣ng Manet, vì tính đơn giản và tính sẵn sàng mở rộng. 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.
Hình 3.3 Di chuyển một nút theo mô hình Random Waypoint
Để tạo ra các dấu vết nút của mô hình Random waypoint, công cụ setdest đƣuợc xây dƣ̣ng bởi nhóm CMU Monarch có thể đƣợc sử dụng. Công cụ này đƣợc đƣa vào sử dụng rộng rãi cho các mô phỏng mạng MANET bằng NS2 . Cấu trúc câu lê ̣nh của setdest ta ̣o tê ̣p ngƣ̃ cảnh nhƣ sau:
Tạo tệp tin di chuyển kiểu cũ
./setdest – v <1> -n <nodes> -p <pause_time> -M<max_speed> -t <simulation_time> -x <max X> -y <max Y>
Tạo tệp tin di chuyển kiểu mới
./setdest – v <2> -n <nodes> -s <speed_type> -m<min_speed> -M <max_speed> -t <simulation_time> -x <max X> -y <max Y>
3.1.6.2. Mô hình Random Walk
Mô hình di đô ̣ng Random Walk đƣợc Einstein mô tả toán học đầu tiên vào năm 1926 . 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 độ. Hình 3.4 thể hiện trực quan hóa quá trình di chuyển của tám nút mạng theo mô hình Random Walk.
Hình 3.4 Di chuyển của 8 nút theo mô hình Random Walk
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.
3.1.6.3 Mô hình random direction
Trong mô hình di đô ̣ng hƣớng ngẫu nhiên (random direction) mẫu, mỗi nút
đƣợc gán một hƣớng ban đầu, tốc độ và thời gian đi lại hữu hạn. Các nút sau đó di chuyển đến biên giới của khu vực mô phỏng theo hƣớng đó. Khi di chuyển đến ranh giới vùng mô phỏng, nút tạm dừng trong một thời gian nhất định, chọn một hƣớng góc (từ 0 đến 180 độ) và tiếp tục quá trình.
3.1.7 Tạo một nút di động (Mobile Node) [7, tr143]
MobileNode là đối tƣợng ns node cơ bản cùng với các chức năng thêm vào nhƣ sự chuyển đô ̣ng, khả năng truyền và nhận trên một kênh cho phép tạo nên nút di động (mobile). Lớp MobileNode có ngồn gốc từ lớp cơ sở Node. MobileNode là một đối tƣợng tách biệt. Tính năng mobile bao gồm chuyển đô ̣ng của nút, 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 tìm thấy trong ~ns/mobilenode.{cc,h}, ~ns/tcl/lib/ns-mobilenode.tcl, ~ns/tcl/mobility/dsdv.tcl, ~ns/tcl/mobility/dsr.tcl, ns/tcl/mobility/tora.tcl. Các ví
dụ minh hoạ có thể đƣợc tìm thấy trong ~ns/tcl/ex/wireless-test.tcl và ~ns/tcl/ex/wireless.tcl.
Trong khi ví dụ đầu tiên sử dụng một topo nhỏ chỉ có 3 node, ví dụ thứ hai thực thi trên mô ̣t cấu trúc 50 nút. Các tập lệnh này có thể đƣợc thực thi một cách đơn giản bằng cách gõ lệnh: $ns tcl/ex/wireless.tcl (or /wireless-test.tcl)
Có năm giao thức định tuyến ad-hoc hiện đƣợc hỗ trợ là DSDV, DSR, TORA và AODV và PUMA. Cơ sở để tạo ra một mobilenode đƣợc mô tả dƣới đây.
$ns_ node-config -Ad HocRouting $opt(Ad HocRouting) -llType $opt(ll)
-macType $opt(mac) -ifqType $opt(ifq) -ifqLen $opt(ifqlen) -antType $opt(ant)
-propInstance [new $opt(prop)] -phyType $opt(netif)
-channel [new $opt(chan)] -topoInstance $topo
-wiredRouting OFF -agentTrace ON
-routerTrace OFF -macTrace OFF
Cấu hình của API ở trên cho một mobilenode với tất cả các giá trị của