Luận văn Định tuyến trong mạng AD HOC vô tuyến

Mạng vô tuyến Ad Hoc là mạng mà các nút mạng được tổ chức một cách ngang hàng với nhau, nghĩa là trong mạng không có máy chủ, không có bộ định tuyến lên các nút mạng vừa là máy chủ, vừa là máy khách, lại vừa là bộ định tuyến, hơn nữa các nút trong mạng cần có tính tự tổ chức, tự thích ứng khi trạng thái, đồ hình mạng thay đổi như sự gia nhập mạng của nút mới, quá trình ngắt bỏ kết nối,.

pdf94 trang | Chia sẻ: lylyngoc | Lượt xem: 5526 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Định tuyến trong mạng AD HOC vô tuyến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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, 70 70 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: - 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.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. Ld)( λGGP=(d)P rttr 22 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. 71 71 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: Ld hhGGP=(d)P rtrttr 4 22 (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(=d rtc /4ππ (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 ở 72 72 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 dP dP 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ó             00 log10 )( )( d d dP dP dBr 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) (4.5) 73 73 dB dBr r X d d dP dP             00 log10 )( )(  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 $prop seed 0 $ns_ node-config -propInstance $prop 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 tìm thấy trong ~ns/mobilenode.{cc,h}, ~ns/tcl/lib/ns-mobilenode.tcl, (4.6) 74 74 ~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 and ~ns/tcl/ex/wireless.tcl. Trong khi minh họa ví dụ đầu tiên sử dụng một topo nhỏ chỉ có 3 node, minh họa thứ hai thực thi trên một topo có 5 node. Các tập lệnh này có thể được thực thi một các đơn giản bằng cách gõ lệnh: $ns tcl/ex/wireless.tcl (or /wireless-test.tcl) Có bốn giao thức định tuyến ad-hoc hiện được hỗ trợ là DSDV, DSR, TORA và OADV. Ngoài ra còn có các giao thức khác được thêm vào như: OLSR, ZRP, ... Cơ sở tạo một mobilenode được mô tả bên dưới. Chú ý rằng các API trước đây dành cho việc tạo ra một mobilenode phụ thuộc vào mỗi giao thức định tuyến đã sử dụng, giống như lệnh: set mnode [$opt(rp)-create-mobile-node $id] Trong đó: $opt(rp): chỉ ra "dsdv", "aodv", "tora" hay "dsr" và định danh (id) hay là chỉ số của mobilenode. Nhưng cách sử dụng trước đây của API đang được phản đối và API mới được trình bày như sau: Trước hết chúng ta cần định nghĩa các kiểu của những thành phần mạng này nhờ sử dụng một mảng opt() trong ngôn ngữ Tcl: set opt(chan) Channel/WirelessChannel ;Chọn kiểu kênh truyền thông set opt(prop) Propagation/TwoRayGround ;Chọn mô hình truyền thông set opt(ant) Antenna/OmniAntenna ; Mô hình anten set opt(ll) LL ; Kiểu tầng liên kết dữ liệu set opt(ifq) Queue/DropTail/PriQueue ; Kiểu của giao diện hàng đợi set opt(ifqlen) 50 ; Số gói tin lớn nhất có trong hàng đợi giao diện set opt(netif) Phy/WirelessPhy ; Kiểu giao diện mạng tầng vật lý set opt(mac) Mac/802_11 ; Kiểu giao thức MAC set opt(rp) DSDV ;Chọn giao thức định tuyến DSDV, AODV, DSR,... set opt(nn) 50 ;Thiết lập số mobile node mạng trong cần mô phỏng set val(x) 1500 ; Mảng X, Y chứa diện tích địa hình mô phỏng (m) set val(y) 1500 Sau đó chúng ta cần phải thiết lập một đối tượng tôpô mạng để ghi lại sự di động của mobile node trong một vùng giới hạn. Trong ví dụ sau, ta thiết lập các mobile node di chuyển trong một vùng 1500m X 1500m: set topo [new Topography] $topo load_flatgrid $opt(x) $opt(y) Cuối cùng ta thực hiện cấu hình các thành phần mạng với đối tượng bộ mô phỏng. Việc cấu hình này sử dụng các hàm API như sau: $ns_ node-config -Ad HocRouting $opt(Ad HocRouting) -llType $opt(ll) -macType $opt(mac) -ifqType $opt(ifq) -ifqLen $opt(ifqlen) 75 75 -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 giao thức định tuyến Ad Hoc-routing, ngăn xếp mạng, kênh, đồ hình (topography), mô hình truyền sóng, với định tuyến hữu tuyến trả về on hay off (yêu cầu cho kịch bản mạng không dây, có dây hỗn hợp) và vết tìm kiếm trả về on hay off tại các mức khác nhau (router, mac, agent). Địa chỉ phân cấp cũng được sử dụng, địa chỉ phân cấp của node cần phải được đưa ra chính xác. Tiếp theo là phương pháp tạo ra các mobilenode: for { set j 0 } { $j < $opt(nn)} {incr j} { set node_($j) [ $ns_ node ] $node_($i) random-motion 0 ;Xóa tính năng di chuyển ngẫu nhiên } Thủ tục trên tạo ra một đối tượng mobilenode (tách biệt), tạo ra một tác nhân định tuyến Ad Hoc-routing như đã được chỉ định, tạo ra ngăn xếp mạng gồm: lớp liên kết (link), giao diện hàng đợi, lớp mac, và giao diện mạng với một antenne, sử dụng để định nghĩa mô hình truyền sóng, nối liền (interconnects) các thành phần cấu thành này và kết nối ngăn xếp đến kênh. Mobilenode hiện nay trông giống như sơ đồ trong hình sau: 76 76 Hình 4.4: Một mobilenode dưới chuẩn wireless của Monarch của CMU mở rộng ra NS Cấu trúc mobilenode sử dụng cho giao thức định tuyến DSR hơi khác biệt với mobilenode được trình bày ở trên. Lớp SRNode được xuất phát từ lớp MobileNode. SRNode không sử dụng địa chỉ demux hay các phân lớp và tất cả các packet nhẩn bởi node được điều khiển giảm xuống tác nhân định tuyến DSR theo mặc định. Tác nhân (Agent) định tuyến DSR hoặc là nhận packets cho chính nó bằng cách điều khiển trên cổng (port) dmux hoặc là chuyển tiếp packets như trên tuyến nguồn trong tiêu đề hay gửi ra tuyến yêu cấu và tuyến trả lời (reply) cho các packet mới. Chi tiết về tác nhân định tuyến DSR có thể được tìm thấy trong chương 3. Mô hình lưu đồ của một SRNode được biểu diễn trong hình dưới 77 77 Hình 4.5: Một SRNode dưới chuẩn wireless của Monarch của CMU mở rộng ra NS 4.2.3. Tạo sự chuyển động cho Node (Creating Node movements) Mobilenode được thiết kế để chuyển động (move) trong 3 tọa độ của đồ hình mạng (topology). Tuy nhiên tọa độ thứ 3 (trục Z) không được sử dụng. Đó là vì Mobilenode được đề nghị để luôn luôn chuyển động trên mặt phẳng (flat) với tọa độ trục Z lúc nào cũng bằng 0. Vì vậy, mobilenode có toạ độ X, Y, Z(=0) mà tiếp tục được điều chỉnh khi node hoạt động (move). Có hai phương thức được đưa ra để hỗ trợ sự di chuyển trong các mobilenode. Trong phương thức đầu tiên, vị trí bắt đầu của node và các đích sau này của nó có thể được thiết lập một cách rõ ràng. Những chỉ dẫn (directive) thường tập trung trong một chuỗi các file kịch bản di chuyển riêng biệt. 78 78 Vị trí bắt đầu và đích tương lai của mobilenode có thể được thiết lập bằng cách sử dụng API sau: $node set X_ $node set Y_ $node set Z_ $ns at $time $node setdest Tại thời điểm $time giây, node sẽ bắt đầu chuyển động (moving) từ vị trí bắt đầu của nó là (x1,y1) chuyển tiếp sang đích (x2,y2) với tốc độ (speed) tính theo (m/s) xác định. Trong phương thức này, node-movement-updates được nổ ra bất cứ vị trí nào của node ở tại thời gian được yêu cầu. Quá trình này có thể được gây ra bằng một dạng truy vấn (query) từ quá trình tìm kiếm một node lân cận để biết được khoảng cách giữa chúng, hoặc thiết lập đích chỉ dẫn mô tả ở trên để thay đổi hướng và tốc độ của node. Một minh hoạ về sự chuyển động (movement) của chuỗi các file kịch bản chuyển động sử dụng các phương thức trên API, có thể được tìm thấy trong thư mục ~ns/tcl/mobility/scene/scen-670x670-50-600-20-0. Ở đây, 670x670 định nghĩa chiều dài và chiều rộng của topo với 50 node hoạt động với tốc độ tối đa là 20m/s với thời gian tạm dừng (pause) trung bình trong 600s. Các file chuyển động trong node có thể được sinh ra bằng cách sử dụng kịch bản tạo ra bởi CMU được tìm thấy trong ~ns/indep-utils/cmu-scen-gen/setdest. Phương thức thứ hai sử dụng quá trình chuyển động ngẫu nhiên của node. Thường được sử dụng: $mobilenode start: khởi động mobilenode với một vị trí ngẫu nhiên và thường cập nhập tuyến để thay đổi hướng và tốc độ của node. Giá trị đích và tốc độ được sinh ra ngẫu nhiên. Chúng ta đã không sử dụng phương thức thứ hai và đưa nó đến người dùng với khảo sát chi tiết. Quá trình họat động của mobilenode được thực thi trong C++. Hãy xem các phương pháp trong ~ns/mobilenode.{cc.h}chi tiết quá trình thực thi. Không quan tâm đến các phương thức được sử dụng để sinh ra chuyển động cho node, topo của mobilenode cần phải được định nghĩa. Nó lên được định nghĩa trước khi tạo ra các mobilenode. Thông thường dạng topo phẳng (flat) được tạo ra dựa vào đặc tả chiều dài và chiều rộng của topo cơ sở sử dụng: set topo [new Topography] $topo load_flatgrid $opt(x) $opt(y) opt(x) opt(y) là giới hạn được sử dụng trong trình mô phỏng. Quá trình họat động của mobilenode có thể được đưa vào (logged) bằng cách sử dụng thủ tục như sau: proc log-movement {} { global logtimer ns_ ns set ns $ns_ 79 79 source ../mobility/timer.tcl Class LogTimer -superclass Timer LogTimer instproc timeout {} { global opt node_; for {set i 0} {$i < $opt(nn)} {incr i} { $node_($i) log-movement } $self sched 0.1 } set logtimer [new LogTimer] $logtimer sched 0.1 } Trong trường hợp này, vị trí của mobilenode sẽ được đặt vào sau mỗi 0.1 giây. 4.2.4. Tạo bộ lập lịch sự kiện (Creating Event Scheduler) Tạo bộ lập lịch như sau: set ns [new Simulator] Lập lịch sự kiện: $ns at : Chỉ ra các sự kiện phù hợp với ns/tcl Bộ lập lịch bắt đầu thực hiện $ns run 4.2.5. Ghi lại vết các sự kiện mô phỏng (vào file *.tr, *.nam) Vết các gói trên tất cả các liên kết bên trong test.out (hoặc out.tr như trong ns-simple- trace.tr) $ns trace-all [open test.out w] Vết các gói trên tất cả các liên kết trong định dạng nam-1 $ns namtrace-all [open test.nam w] Cũng có thể chỉ “trace” một số tham số, thí dụ: $ns trace-queue $n0 $n1 $ns namtrace-queue $n0 $n1 4.2.6. Tạo ra các kết nối TCP và nguồn sinh lưu lượng Tạo ra các thực thể gửi và nhận của TCP (source and sink) set tsrc [new Agent/TCP] set tdst [new Agent/TCPSink] Gắn các thực thể TCP với nút mạng $ns attach-agent $n0 $tsrc $ns attach-agent $n1 $tdst Tạo ra kết nối giữa thực thể gửi và nhận TCP $ns connect $tsrc $tdst 80 80 Tạo nguồn sinh lưu lượng của ứng dụng FTP set ftp [new Application/FTP] $ftp attach-agent $tsrc $ns at “$ftp start” Tạo nguồn sinh lưu lượng của ứng dụng Telnet set telnet [new Application/Telnet] $telnet attach-agent $tsrc 4.2.7. Tạo ra các kết nối UDP và nguồn sinh lưu lượng Tạo ra các thực thể gửi và nhận của UDP (source and NULL) set usrc [new Agent/UDP] set udst [new Agent/NULL] Gắn các thực thể UDP với nút mạng $ns attach-agent $n0 $usrc $ns attach-agent $n1 $udst Tạo ra kết nối giữa thực thể gửi và nhận UDP $ns connect $usrc $udst Lưu lượng của các nguồn sinh với tốc độ không đổi – CBR (Constant Bit Rate) set src [new Application/Traffic/CBR] Lưu lượng của các nguồn sinh gói tin theo phân bố hàm mũ Exponential hoặc Pareto on-off set src [new Application/Traffic/Exponential] set src [new Application/Traffic/Pareto] 4.3. Cấu trúc tệp vết đối với mạng di động không dây theo chuẩn 802.11 [16]-[18]- [19]-[20]-[21] Tệp vết do NS2 sinh ra khi ta mô phỏng mạng LAN theo chuẩn 802.11 gồm có các dòng, mỗi dòng được chia ra thành nhiều cột, số lượng cột cùng với ý nghĩa của các cột tùy thuộc vào đồ hình mạng ta mô phỏng cho mạng không dây có cơ sở hạ tầng hay mạng không dây Ad hoc. Hay ngay các các giao thức định tuyến khác nhau cũng có cấu trúc tệp vết khác nhau. Sau đây là cấu trúc tệp vết dành cho mạng Ad hoc theo chuẩn IEEE 802.11.  Giải thích định dạng tệp vết theo kiểu mới (new trace) Định dạng vết tìm kiếm mới new trace có thể chia thành các trường như sau: + Kiểu sự kiện (Event type): Đây là trường đầu tiên, mô tả kiểu của sự kiện nói lên tại nút đã xảy ra sự kiện và bằng 1 trong 4 giá trị sau: s send (chỉ đây là sự kiện gửi gói tin) r receive (chỉ đây là sự kiện nhận gói tin) d drop (chỉ đây là sự kiện mất gói tin) f forward (chỉ đây là sự kiện chuyển tiếp gói tin) + General tag Trường thứ hai bắt đầu với "-t" chỉ thời gian hay thời gian hoặc thiết lập chung:(-t time; -t * (global setting)) 81 81 + Các thẻ thuộc tính node (Node property tags) Trường này chỉ định thuộc tính của node như định danh của nút (node-id), ở mức độ tìm kiếm giống như tác nhân thực hiện, bộ định tuyến hoặc MAC. Thẻ này bắt đầu với "-N" và được liệt kê dưới đây: -Ni: Định danh nút (node id) -Nx: Tọa độ x của nút -Ny: Tọa độ y của nút -Nz: Tọa độ z của nút -Ne: Mức năng lượng của nút -Nl: Mức tìm kiếm, như AGT, RTR, MAC -Nw: Nguyên nhân của sự kiện. Các lý do khác dẫn đến hủy một gói tin được đưa ra như sau: "END" DROP_END_OF_SIMULATION ;Lỗi kết thúc mô phỏng "COL" DROP_MAC_COLLISION ;Xung đột tầng MAC "DUP" DROP_MAC_DUPLICATE ;Trùng MAC "ERR" DROP_MAC_PACKET_ERROR ; Lỗi gói tin "RET" DROP_MAC_RETRY_COUNT_EXCEEDED;Vượt quá số đếm "STA" DROP_MAC_INVALID_STATE ;Trạng thái MAC không đúng "BSY" DROP_MAC_BUSY ;MAC bận "NRTE" DROP_RTR_NO_ROUTE ;tuyến này không tồn tại. "LOOP" DROP_RTR_ROUTE_LOOP ;có lặp vòng tuyến. "TTL" DROP_RTR_TTL ;có nghĩ là khi TTL không còn. "TOUT" DROP_RTR_QTIMEOUT ;khi gói tin hết hiệu lực. "CBK" DROP_RTR_MAC_CALLBACK "IFQ" DROP_IFQ_QFULL ;không còn khoảng trống trong bộ đệm trong IFQ. "ARP" DROP_IFQ_ARP_FULL ;hủy bởi ARP "OUT" DROP_OUTSIDE_SUBNET ;hủy bởi trạm cơ sở trên cập nhật tuyến nhận từ node bên ngoài domain của nó. + Thông tin gói tin (Packet) tại mức IP Các thẻ dùng cho trường này bắt đầu với “-I” và được liệt kê dưới đây: -Is: Địa chỉ nguồn. Chỉ số cổng nguồn -Id: Địa chỉ đích. Chỉ số cổng đích -It: Kiểu của gói tin -Il: Kích thứơc của gói tin -If: Định danh tiếp theo. -Ii: Định danh duy nhất. -Iv: Giá trị ttl. + Next hop info: Trường này cung cấp thông tin về chặng tiếp theo và trạng thái thẻ với ký hiệu bắt đầu bằng "-H". -Hs: Định danh của nút -Hd: Định danh của nút đích chuyển tiếp. 82 82 + Packet info at MAC level: Trường này ghi nhận thông tin lớp và bắt đầu với ký hiệu "-M" như dưới đây: -Ma: Thời gian truyền gói tin -Md: Địa chỉ ethernet đích -Ms: Địa chỉ ethernet nguồn -Mt: Kiểu ethernet + Thông tin của gói tin tại “Mức ứng dụng” (Application level) Thông tin của gói tin tại mức ứng dụng bao gồm có kiểu của ứng dụng như ARP, TCP, kiểu của giao thức định tuyến Ad hoc như DSDV, DSR, AODV, … được tìm thấy. Trường này bắt đầu với "-P" và danh sách các thẻ cho các ứng dụng khác nhau được liệt kê dưới đây: + P arp Giao thức phân giải địa chỉ. Có nội dung với ARP được đưa ra các thẻ sau: -Po: ARP Yêu cầu và hồi đáp (Request/Reply) -Pm: Địa chỉ nguồn của lớp MAC -Ps: Địa chỉ nguông -Pa: Địa chỉ đích của lớp MAC -Pd: Địa chỉ đích + P dsr Phần này chỉ ra giao thức định tuyến Ad Hoc được gọi định tuyến nguồn chủ động (Dynamic). Thông tin trên DSR được trình bày bởi các thẻ sau đây: -Pn: Có bao nhiêu nút đi qua -Pq: Cờ yêu cầu định tuyến -Pi: Số tuần tự yêu cầu tuyến -Pp: Cờ đáp lại của định tuyến (Reply) -Pl: Chiều dài thông tin đáp lại -Pe: src của srcrouting->dst của định tuyến nguồn -Pw: Cờ báo lỗi -Pm: Số lỗi -Pc: Báo cáo đến ai? -Pb: Lỗi liên kết từ linka->linkb + P cbr Hằng số chỉ tốc độ của bit. Thông tin về ứng dụng CBR được trình bày bởi các thẻ sau: -Pi: Chỉ số tuần tự -Pf: Bao nhiêu thời gian để pkt này được chuyển tiếp -Po: Số tối ưu của quá trình chuyển tiếp + P tcp Thông tin của luồng TCP được đưa ra bởi các thẻ nhỏ sau: -Ps: seq number: chỉ số tuần tự -Pa: ack number: chỉ số gói tin báo nhận đúng -Pf: Bao nhiêu thời gian để pkt này được chuyển tiếp -Po: Chỉ số tối ưu của chuyển tiếp  Nội dung của các trường và ý nghĩa tệp vết mô phỏng theo giao thức định tuyến DSR như sau: 83 83 s 606.210364161 _39_ RTR --- 1306 DSR 44 [13a a 27 800] ------- [39:255 8:255 255 8] 2 [0 0] [0 0 0 0->0] [1 1 8 39->10] - Kiểu sự kiện (Event type): Đây là trường đầu tiên, mô tả kiểu của sự kiện nói lên tại nút đã xảy ra sự kiện và bằng 1 trong 4 giá trị sau: s send (chỉ đây là sự kiện gửi gói tin) r receive (chỉ đây là sự kiện nhận gói tin) d drop (chỉ đây là sự kiện mất gói tin) f forward (chỉ đây là sự kiện chuyển tiếp gói tin) - Thời gian xảy ra sự kiện (time stamp) ở ví dụ trên là 606.210364161: - Định danh của nút (node id) phát sinh sự kiện _39_: - Trường tiếp theo nhận một trong các giá trị sau: RTR: Thông báo tuyến, AGT: Cho biết thông tin ở tầng giao vận, IFQ: Cho biết các sự kiện ở hàng đợi ưu tiên - Định danh của gói tin(id of this packet): 1306: - Tác nhân định tuyến theo (DSR): - Kích thước chung của phần tiêu đề gói tin 44: - Nội dung của lớp MAC [13a a 27 800]: 13a(=314 của hệ thập phân): Chỉ định thời gian truyền thông ( chú ý rằng kích thước của gói tin = 44 bytes, 314 giây?) a: Nghĩa là nút nhận = 10 (của hệ 10) 27: Nghĩa là nút gửi bằng 39 (của hệ 10) 800: Tiêu để gói tin IP: 0x0800, (ETHERTYPE_ARP là 0x0806) - Nội dung gói tin IP [39:255 8:255 255 8]: 39: Địa chỉ nguồn src address bằng 0.0.0.39 255: Số hiệu cổng nguồn 8: Địa chỉ đích bằng 0.0.0.8 255: Số hiệu cổng đích 255: Time to Live (TTL:) của gói tin 8: Số chặng tồn tại (Next Hop) - Nội dung của DSR 2 [0 0] [0 0 0 0->0] [1 1 8 39->10]: 2: Số địa chỉ num_addrs() [0 0]:Tùy chọn tuyến yêu cầu giá trị bằng: 0 là không yêu cầu tuyến 0 là nhãn cho số tuần tự [0 0 0 0->0] Tùy chọn tuyến trả lời: [ " route-reply?" "Rreq seqno" "reply length" "dst of src route", "src of the src route"] - Mô tả lỗi tuyến [1 1 8 39->10], 1: 1: Số của tuyến lỗi 84 84 8: Cảnh báo nút 8. 39->10: liên kết từ nút 39 đến nút 10 đã bị hỏng 4.4. Các công cụ xử lý sau khi mô phỏng 4.4.1. Sử dụng Grep Grep là một lệnh trong Unix|Linux, là thuật ngữ viết tắt của: “Global Regular Expression Parser”. Grep là một bộ lọc, nó tìm và hiển thị các dòng kết quả trong lệnh có chứa mẫu (pattern) mà người sử dụng chỉ ra. Cách 1: Lọc đầu ra của một chương trình khác. Cú pháp lệnh: | grep Ví dụ: cat DSDV_30.tr |grep "^s" |grep "_12_" ;Hiển thị các sự kiện gửi dữ liệu của nút có id=_12_ trong file DSDV_50.tr cat DSDV_30.tr |grep "^s" |grep "_8_" |wc -l ;Đếm số sự kiện gửi tại nút id=_8_ trong file DSDV_50.tr Cách 2: lọc file. Cú pháp như sau: grep Ví dụ: grep " 0 2 tcp "tr1.tr > tr2.tr ;Sao chép tất cả các dòng có chuỗi " 0 2 tcp " từ file tr1.tr sang file tr2.tr grep "^r" tr1.tr > tr2.tr ;Sao chép tất cả các dòng có ký hiệu "r" từ file tr1.tr sang file tr2.tr grep "^s" simple.tr | grep "tcp 1020" > tr3.tr ;Sao chép tất cả các dòng có ký hiệu "s" và có chuỗi "tcp 1020" từ file simple.tr sang file tr3.tr 4.4.2. Xử lý file dữ liệu với Awk AWK là một ngôn ngữ lập trình được sáng tạo bởi 3 người là Alfred Aho, Peter Weinberger, and Brian Kernighan; chữ cái đầu của tên (last name) 3 người được ghép lại và đặt làm tên cho ngôn ngữ của họ. Chương trình awk được tích hợp trong Linux là ứng dụng GNU của ngôn ngữ lập trình awk. Awk cho phép chúng ta xử lý thông tin chứa trong file dữ liệu như: hiển thị một phần hoặc toàn bộ file, có thể trích chọn để hiển thị dòng, cột hoặc trường theo các tiêu chuẩn được chỉ rõ. − Có thể phân tích văn bản để tính tần suất các word v.v. − Chuẩn bị các báo cáo đưa ra có định dạng, dựa trên các thông tin của file. − Lọc văn bản theo một cách thức rất mạnh. − Thực hiện tính toán trên các thông tin số trong file. Ví dụ kịch bản awk tính tổng giá trị của cột 4 trong file BEGIN { FS = "\t"} { nl++} {s=s+$4} END {print "average:" s/nl} 4.4.3. Xử lý file dữ liệu với Perl Perl viết tắt của “Practical Extraction and Report Language”, cho phép chúng ta lọc và xử lý dễ dàng với file dữ liệu ASCII trong unix. Perl là một ngôn ngữ lập trình thông dịch được phát triển bởi Larry Wall. Perl có một số ưu điểm như sau: 85 85 - Dễ dàng triển khai chương trình nhỏ để sử dụng cho các bộ lọc, trích rút thông tin từ tệp text - Perl có thể được sử dụng ở nhiều hệ điều hành khác nhau mà không phải thay đổi mã - Bảo trì và gỡ rối chương trình, kịch bản Perl đơn giản hơn các ngôn ngữ khác - Perl rất thông dụng do vậy tồn tại rất nhiều tài liệu, kịch bản trên mạng 4.3.5. Vẽ đồ thị với gnuplot [26] Gnuplot là phần mềm được hỗ trợ miễn phí chạy trên cả Windows và trên Unix|Linux. Gnuplot cho phép thực hiện vẽ một hoặc nhiều đồ thị trên cùng một biểu đồ, dữ liệu dầu vào có thể là file văn bản có nhiều cột, nhưng ta cần chỉ ra 2 cột chứa số liệu vẽ đồ thị. Sử dụng Gnuplot chúng ta có thể tổng hợp, so sánh kết quả của nhiều file dữ liệu trên một biểu đồ, điều này rất thuận lợi cho việc nghiên cứu. 4.3.6. Vẽ đồ thị với xgraph [27] Xgraph là một tiện ích dùng để vẽ đồ thị, luôn đi kèm NS. Dữ liệu đầu vào của nó là một hoặc một số file dạng văn bản, trên mỗi dòng là một cặp số liệu có dạng “x y” cho một điểm trên đồ thị. 4.3.7. Tổng hợp dữ liệu với Trace graph [23]-[24]-[25] Tác giả của Trace graph là Jaroslaw Malek (Copyright (c) 2001-2003 by Wroclaw University of Technology, Poland). TraceGraph là một phần mềm mã nguồn mở tự do (hiện đã được thương mại hoá cho các phiên bản ra đời từ năm 2004), có khả năng vẽ đồ thị dựa trên thư viện đồ hoạ của MathLab, phân tích và hiển thị các kết quả mô phỏng khá tốt (dữ liệu đầu vào là tệp vết). Trace graph có các phiên bản chạy trên Windows và các phiên bản chạy trên Linux/Unix (?). Sử dụng TraceGraph khi ta muốn nhanh chóng phân tích, tổng hợp dữ liệu và vẽ đồ thị cho các kết quả mô phỏng bằng NS-2, những người chưa thành thạo về Linux/Unix và các công cụ phân tích, hiển thị đồ hoạ như grep, awk, perl, xgraph, gnuplot, có thể tìm và sử dụng công cụ này Các thông tin về Trace graph có thể tìm thấy tại các địa chỉ xem 4.5. Mô phỏng mạng Ad hoc theo chuẩn IEEE 802.11 4.5.1. Thiết lập topo mạng Ad hoc Để thiết lập mô hình mô phỏng mạng Ad hoc tôi xây dựng một kịch bản mô phỏng bao gồm 50 nút (mỗi nút được tạo theo cấu trúc như trên), các nút được thiết lập ở các vị trí ngẫu nhiên trong một vùng 2000m x 2000m với vùng phủ sóng của mỗi trạm là 250m. Trên mỗi trạm có gắn một thực thể truyền thông CBR (Constrant Bit Rate) hoặc FPT dựa trên giao thức tầng giao vận UDP hoặc TCP với kích thước gói tin là 1500 bytes tốc độ phát của CBR không đổi 100 bps, phát đến các trạm được kết nối theo mô phỏng. Để đánh giá hiệu năng hoạt động của các giao thức định tuyến tôi thực hiện đánh giá dựa vào tải đưa vào mạng cùng với việc đánh giá các thông số gồm thông lượng (throughput), độ trễ (delay), độ thăng gián (jitter) và tỉ lệ mất gói tin 86 86 (packet loss ratio). Thời gian mô phỏng dành cho toàn bộ kịch bản là 30 phút, các tham số và tải đưa vào mạng là như nhau đối với các giao thức định tuyến Do đặc thù của mạng Ad Hoc là topo mạng động, băng thông hạn chế, khả năng liên kết giữa các nút mạng có thể thay đổi, lên việc phân tích hiệu năng của các giao thức định tuyến trong mạng Ad Hoc ta cần xét đến các đặc tính như: độ lớn của mạng được thể hiện bằng số các nút mạng, các nút mạng được kết nối thông qua số lượng nút hàng xóm của nó, quá trình thay đổi cấu hình vật lý của mạng theo thời gian (do các nút có thể di chuyển trong khi mạng vẫn đang hoạt động) và dạng truyền thông trong mạng có thể là đồng dạng, không đồng dạng hoặc bùng phát. Đây chính là mức độ tải trong mạng. 4.5.2. Thực hiện mô phỏng Sau khi xây dựng script mô phỏng cho cả bốn giao thức, ta thực hiện mô phỏng theo từng giao thức định tuyến bằng cách chọn giao thức định tuyến cần mô phỏng rồi thực hiện lệnh sau: ns dsdv_aodv_dsr_olsr_09.tcl  ta được màn hình nam mô phỏng sau: Hình 4.6: Đồ hình mô phỏng 50 node mạng ah hoc Mỗi một giao thức sau khi mô phỏng ta sẽ có một tệp vết ghi lại toàn bộ các sự kiện xảy ra của mạng. dựa vào các tệp vết này ta sẽ sử dụng mã script perl để đánh giá hiệu năng cho từng giao thức. 87 87 4.5.3. Đánh giá hiệu năng các giao thức mạng Để đánh giá hiệu năng hoạt động của các giao thức mạng tôi thực hiện đánh giá các thông số gồm thông lượng (throughput), độ trễ (delay), thăng giáng độ t rễ (jitter) và tỉ lệ mất gói tin (packet loss ratio) theo các kết nối TCP lưu lượng vận chuyển FTP và kết nối UDP luồng sinh lưu lượng không đổi CBR (Constant Bit Rate), các giao thức đều được thực hiện tren cùng một kịch bản mô phỏng, nghĩa là đồ hình mạng là như nhau, quá trình di chuyển của các nút cũng như thời gian mô phỏng của các nút là như nhau cùng với tải đưa vào mạng để đánh giá hiệu năng của các giao thức định tuyến cũng như nhau. Ứng với mỗi giao thức định tuyến sẽ cho ta kết quả đánh giá thông qua từng biểu đồ 4.5.3.1. Thông lượng trung bình Thông lượng trung bình của toàn mạng được tính bằng tổng thông lượng trung bình của từng kết nối. Thông lượng trung bình của từng kết nối bằng tổng kích thước các gói tin nhận được chia cho thời gian truyền lưu lượng qua kết nối. Thông lượng trung bình 1 kết nối (Mbps) = Tổng (Kích thước gói tin) / (Thời gian gian nhận gói tin cuối cùng - Thời gian gửi gói tin đầu tiên) (Mbps) Hình 4-7: Thông lượng trung bình của toàn mạng Đồ thị trên biểu thị thông lượng trung bình của các giao thức định tuyến khác nhau trong suốt khoảng thời gian mô phỏng. Trục hoành biểu thị khoảng thời gian mô phỏng, ở đây khoảng thời gian mô phỏng được tính bằng giây, trục tung biểu diễn thông lượng trung bình của toàn mạng, (bao gồm tất cả các kết nối, tất các thực thể có tham gia vào quá trình truyền thông) theo đơn vị tính mêgabít. Vậy biểu đồ trên sẽ biểu diễn thông lượng trung bình theo Mbps. Nhìn vào biểu đồ ta thấy thông lượng trung bình vào thời gian đầu mô phỏng các giao thức đạt dưới 3Mbps, do vào thời gian này tải đưa vào mạng chưa cao. Sau đó 88 88 các giao thức dần dần đi vào ổn định. Giao thức DSR đạt hiệu năng cao nhất, thông lượng trên dưới 10Mbps, Còn giao thức AODV cũng đạt thông lượng trung bình cao xấp xỉ ngưỡng 6Mbps, OLSR ổn định ở mức 4Mbps giao thức DSDV có thông lượng trung bình thấp nhất ở mức dưới 3Mbps. 4.5.3.2. Độ trễ trung bình Độ trễ trung bình của toàn mạng được tính bằng tổng độ trễ của từng kết nối. Độ trễ trung bình của từng kết nối bằng tổng độ trễ của từng gói tin gửi thành công chia cho tổng số lượng gói tin nhận được Độ trễ trung bình của một kết nối = Tổng(Thời gian nhận gói tin – thời gian gửi gói tin) / Số gói tin nhận được Độ trễ trung bình của toàn mạng = Tổng (Độ trễ trung bình của các kết nối) Hình 4-8: Độ trễ trung bình của toàn mạng Trục hoành của biểu đồ biểu diễn số gói tin truyền được, trục tung biểu diễn độ trễ truyền thông tính theo giây. Nhìn vào biểu đồ ta thấy độ trễ trung bình của giao thức AODV có giá trị cao nhất, đạt đến gần 800 giậy trên 500 gói tin. Độ trên trung bình của giao thức DSR và giao thức DSDV có vẻ tăng theo số lượng gói tin truyền trong mạng. Giao thức OLSR là giao thức có độ trễ thấp nhất, đạt dưới 100 giây trên gần 3500 gói tin và có vẻ không táng nhiều khi số lượng gói tin truyền trong mạng tăng cao. 4.5.3.3. Thăng giáng độ trễ trung bình Thăng giáng độ trễ so với độ trễ trung bình hay còn gọi là sự biến đổi độ trễ so với độ trễ trung bình, được tính bằng mức độ chênh lệch so với độ trễ trung bình. Thăng giáng độ trễ trung bình = Độ trễ của từng gói tin trong mạng / Độ trễ trung bình của toàn mạng 89 89 Hình 4-9: Thăng giáng độ trễ trung bình của toàn mạng Nhìn vào biểu đồ ta thấy thăng giáng độ trễ so với độ trễ trung bình của các giao thức DSDV, DSR,OLSR ổn định ở mức trên dưới 50 giây cho toàn bộ các gói tin truyền trong mạng, với giao thức AODV có thăng giáng độ trễ so với độ trễ trung bình có khoảng lên tới trên 100 giây rồi sau đó dần đi vào ổn định dưới 100 giây. 4.5.3.4. Tỷ lệ mất gói tin Tỷ lệ mất gói tin của toàn mạng được tính bằng tổng số gói tin gửi đi trừ số gói tin nhận được chia cho số gói tin gửi đi tính theo một đơn vị thời gian. Tỉ lệ mất gói tin = Tổng (Số gói tin gửi đi – Số gói tin nhận được) / Số gói tin gửi đi (%) Hình 4-10: Tỷ lệ mất gói tin trên toàn mạng 90 90 Thông số trên biểu đồ trục hoành diễn tả thời gian mô phỏng, trục tung biểu diễn tỷ lệ mất gói tin tính theo đơn vị phần trăm. Nhìn vào biểu đồ ta thấy tỷ lệ mất gói tin của các giao thức AODV có tỷ lệ mất gói tin tăng đột biến vào các khoảng thời gian từ 25 đến 30 giây cuối cùng còn tỷ lệ mất gói tin trung bình của các giao thức OLSR, DSDV, DSR đạt gần xấp xỉ như nhau khoảng từ 1% đến 1,5% và OLSR có tỷ lệ mất gói tin thấp nhất. Như vậy đánh giá hiệu năng chung của các giao thức ta nhận thấy: - Với giao thức DSR và giao thức AODV có thông lượng cao nhất trong bốn giao thức tuy nhiên có độ trễ cao và tăng theo số lượng gói tin truyền trong mạng cũng như tỷ lệ mất gói tin cho toàn mạngcó thời điểm cao vút. - Giao thức DSDV và OLSR hai giao thức này có thông lượng trung bình ở mức độ vừa phải với OLSR gần 5Mbps, DSDV thì thấp hơn tuy nhiên lại có độ trễ trung bình và tỷ lệ mất gói tin trên toàn mạng lại thấp nhất. 4.5.4. Đánh giá các tuyến đường được thiết lập trong thời gian mô phỏng Để đánh giá các tuyến được thiết lập vào các thời điểm khác nhau theo từng giao thức, ta dựa vào tệp kết quả mô phỏng để tìm ra các tuyến và sự di chuyển của các nút đã làm hỏng tuyến từ đó nút nguồn sẽ phải tìm ra tuyến mới. Kết quả mô phỏng tuyến đường từ nút 6 đến nút 23 theo giao thức DSDV trong khoảng thời gian 10 giây đầu ta được: tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 6 23 10 Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 5 6 --> 10 --> 27 --> 18 --> 9 --> 23 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 6 23 20 Vào 15.00000 (s) node 9 di chuyển từ: (850.00, 950.00, 0.00), đến: (910.00, 730.00), vận tốc:200.00 (m/s) Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 4 Do nút 9 di chuyển vào giây thứ 15 lên tuyến đường cũ đã bị hỏng, DSDV xá lập lại tuyến mới: 6 --> 27 --> 18 --> 9 --> 23 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 6 23 30 Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s) lên tuyến đường từ nút 6 đến nút 23 có độ dài bằng 2 được DSDV xác lập lại: 6 --> 25 --> 23 Đánh giá tuyến đường theo giao thức AODV: tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 6 23 10 Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 4 6 --> 27 --> 18 --> 9 --> 23 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 6 23 20 Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s) khi đó AODV xác lập lại tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 2 6 --> 25 --> 23 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 6 23 30 91 91 Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s). Ta thấy nút 25 di chuyển nhưng vẫn lằm trong khoảng truyền thông của nút 6 và 23 lên tuyến vẫn được giữ nguyên trong suốt thời gian mô phỏng 6 --> 25 --> 23 Đánh giá tuyến đường theo giao thức OLSR: tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _OLSR_50.tr 6 23 10 Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 4 6 --> 27 --> 18 --> 9 --> 23 Ta thấy theo giao thức OLSR, khoảng 10 giây đầu tiên cũng không khác gì so với hai giao thức trước AODV và DSDV tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _OLSR_50.tr 6 23 20 Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s) Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 2 6 --> 25 --> 23 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _OLSR_50.tr 6 23 30 Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s) nút 25 có di chuyển nhưng vẫn nằm trong phạm vi truyền sóng của nút 6 và 23 lên OLSR xác lập tuyến có độ dài bằng: 2 6 --> 25 --> 23 Đánh giá tuyến đường theo giao thức DSR tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 6 23 10 Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 4 6 --> 27 --> 18 --> 9 --> 23 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 6 23 20 Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s) Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 2 6 --> 25 --> 23 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 6 23 30 Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s) Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 2 6 --> 25 --> 23 Cuối cùng ta thấy với giao thức DSR cũng giống như DSDV hay AODV hay OLSR giao thức trước. Tuy nhiên kết quả mô phỏng lại khác nhau khi ta thay đổi liên kết: tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 12 29 10 Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 8 12 --> 7 --> 44 --> 20 --> 23 --> 35 --> 33 --> 19 --> 29 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 12 29 30 Không tìm thấy tuyến nào từ 12 đến 29 .... tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 12 29 10 92 92 Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 8 12 --> 7 --> 44 --> 20 --> 23 --> 35 --> 33 --> 19 --> 29 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 12 29 20 Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s) Vào 15.00000 (s) node 19 di chuyển từ: (1400.00, 850.00, 0.00), đến: (1300.00, 580.00), vận tốc:300.00 (m/s) Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 6 12 --> 7 --> 44 --> 15 --> 25 --> 19 --> 29 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 12 29 30 Vào 6.00000 (s) node 6 di chuyển từ: (250.00, 600.00, 0.00), đến: (1450.00, 50.00), vận tốc:50.00 (m/s) Vào 15.00000 (s) node 19 di chuyển từ: (1400.00, 850.00, 0.00), đến: (1300.00, 580.00), vận tốc:300.00 (m/s) Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 4 12 --> 6 --> 24 --> 19 --> 29 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 12 29 10 Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 8 12 --> 7 --> 44 --> 20 --> 23 --> 35 --> 33 --> 19 --> 29 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 12 29 20 Vào 6.00000 (s) node 6 di chuyển từ: (250.00, 600.00, 0.00), đến: (1450.00, 50.00), vận tốc:50.00 (m/s) Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s) Vào 15.00000 (s) node 19 di chuyển từ: (1400.00, 850.00, 0.00), đến: (1300.00, 580.00), vận tốc:300.00 (m/s) Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 4 12 --> 6 --> 25 --> 19 --> 29 tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _OLSR_50.tr 12 29 20 Vào 6.00000 (s) node 6 di chuyển từ: (250.00, 600.00, 0.00), đến: (1450.00, 50.00), vận tốc:50.00 (m/s) Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00, 100.00), vận tốc:100.00 (m/s) Vào 15.00000 (s) node 19 di chuyển từ: (1400.00, 850.00, 0.00), đến: (1300.00, 580.00), vận tốc:300.00 (m/s) Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 4 12 --> 6 --> 25 --> 19 --> 29 Bây giờ ta thấy vào cuối của thời gian mô phỏng kết quả khám phá tuyến của DSDV, DSR, AODV, OLSR lại rất khác nhau khi mà AODV và DSDV, OLSR lại tìm ra được tuyến tối ưu còn DSR thì không tìm được. 4.6. Tóm tắt chương Chương này đã thực hiện xây dựng chương trình mô phỏng đánh giá mạng vô tuyến Ad Hoc với 50 nút tham gia kết nối mạng tác giả đã thực hiện mô phỏng các kết 93 93 nối thực hiện truyền dữ liệu dựa trên giao thức truyền có kết nối, điều khiển cửa sổ trượt TCP và giao thức truyền không kết nối UDP dựa theo mô hình truyền không đổi cbr. Sau khi mô phỏng luận văn đã trình bày biểu đồ biểu thị thông lượng trung bình của toàn mạng, điộ trễ trung bình, thăng giáng độ trễ so với độ trễ trung bình, tỷ lệ mất gói tin và liệt kê các tuyến. Từ chương trình mô phỏng này, tác giả mong muốn phần nào giải quyết được yêu cầu đặt ra của bài toán. 94 94 KẾT LUẬN Mạng vô tuyến Ad Hoc là mạng mà các nút mạng được tổ chức một cách ngang hàng với nhau, nghĩa là trong mạng không có máy chủ, không có bộ định tuyến lên các nút mạng vừa là máy chủ, vừa là máy khách, lại vừa là bộ định tuyến, hơn nữa các nút trong mạng cần có tính tự tổ chức, tự thích ứng khi trạng thái, đồ hình mạng thay đổi như sự gia nhập mạng của nút mới, quá trình ngắt bỏ kết nối,... Hơn nữa do đặc thù của mạng Ad Hoc các nút chủ yếu sử dụng năng lượng pin để duy trì quá trình hoạt động trong mạng do vậy sử dụng giao thức định tuyến nào để hệ thống ít tốn năng lượng hoạt động hiệu quả là vấn đề cần được quan tâm. Đề tài luận văn tốt nghiệp "Định tuyến trong mạng Ad Hoc vô tuyến" đây là chủ đề khá mới ở Việt Nam, chưa được nhiều người khai thác, ứng dụng. Để đạt được mục tiêu đề gia, tác giả đã tìm hiểu nghiên cứu và dùng mô phỏng để đánh giá hiệu năng mạng. Cấu trúc của luận văn được chia thành bốn chương trình bày các vấn đề cơ bản về mạng vô tuyến có cơ sở hạ tầng, mạng vô tuyến không có cơ sở hạ tầng Ad Hoc. Trình bầy các mô hình truyền thông, các kỹ thuật điều chế tầng vật lý cùng với các chức năng điều khiển truy nhập môi trường truyền MAC và các chuẩn dùng cho mạng vô tuyến Ad Hoc. Chương 3, 4 của bản luận văn trình bầy chi tiết về các giao thức định tuyến dùng trong mạng vô tuyến Ad Hoc, ở đây tác giả đưa ra quá trình nghiên cứu của bốn giao thức định tuyến thông dụng là OLSR, AODV, DSR và DSDV, đây là các giao thức định tuyến thông dụng được dùng trong mạng vô tuyến Ad Hoc đặc trưng cho hai phương pháp định tuyến là giao thức định tuyến điều khiển theo bảng ghi, giao thức định tuyến theo yêu cầu khởi phát từ nguồn và định tuyến lai ghép. Để làm rõ hơn cũng như đánh giá hiệu năng hoạt động của các giao thức trên, tác giả đã tiến hành mô phỏng để đánh giá hiệu năng hoạt động giữa các giao thức. Thông qua kết quả mô phỏng ta có thể thấy được những ưu điểm khác nhau của mỗi giao thức, qua đó tùy vào từng mô hình mạng cụ thể ta sẽ có lựa chọn tốt hơn cho nhu cầu ứng dụng. Như trên đã trình bầy, đối với mạng vô tuyến Ad Hoc hiện nay còn rất nhiều thách thức về mặt công nghệ cần được giải quyết, trong đó vấn đề định tuyến đường đi cho các gói tin truyền trong mạng là vấn đề quan trọng và cơ bản nhất vì nó có ảnh hưởng trực tiếp đến hiệu năng hoạt động của mạng vô tuyến Ad Hoc. Hướng nghiên cứu tiếp theo - Nghiên cứu và đánh giá hiệu năng mạng vô tuyến Ad Hoc sử dụng giao thức định tuyến ZRP, ABR, CGSR, SSR, ... - Nghiên cứu, xây dựng và triển khai các vấn đề về an ninh cho mạng vô tuyến Ad Hoc. - 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 Ad Hoc. 95 95 TÀI LIỆU THAM KHẢO Tiếng Việt 1. Nguyễn Đình Việt (2008), Bài giảng đánh giá hiệu năng mạng máy tính, Trường Đại học Công nghệ - Đại học quốc gia Hà Nội Tiếng Anh 2. AndreaGoldsmith (2005), Wireless Communication, Cambridge University 3. Charles E. Perkins and P. Bhagwat (1994), Highly Dynamic Destination-Sequenced Distance-Vector Routing (DSDV) for Mobile Computers, SIGCOMM ’94: Computer Communications Review, 24(4), 234–244, October 1994. 4. Dharma Prakash Agrawal-Qing-An Zeng (2006), Introduction to Wirreless and Mobile Systems 5. Jochen H.Schiller (2000), Mobile Communication, Addison Wesley 6. Martin Sauter (2006), Communication Systems for the Mobile Information Society, John Wiley & Sons Lt 7. Matthew Gast (2002), 802.11 Wireless Networks The Definitive Guide, O'Reill 8. Michel Barbeau and Evangelos Kranakis(2007), Principles of Ad Hoc Networking, John Wiley & Sons Ltd 9. P. Nicopolitidis, M. S. Obaidat, G. I. Papadimitriou and A. S. Pomportsis (2003), Wireless NetWorks, John Wiley & Sons Ltd 10. Stefano Basagni, Macro Contisilvia giordano and Ivan Stojmenovic (2004), Mobile Ad Hoc Networking, John Wiley & Sons 11. Subir Kumar Sarkar, T G Basavaraju, C Puttamadappa(2008), Ad Hoc Mobile Wireless Networks Principles, Protocols and Applications, Taylor & Francis Group 12. T.S. Rappaport (1996), Wireless communications, principles and practice, Prentice Hall 13. Vijay K. Garg(2007), Wireless Communication and NetWorking, Morgan Kaufmann Publishers 14. 15. 16. 17. 18. 19. Kevin Fall and Kannan Varadhan (2005), documentation.html 20. 21. 22. 23. 24. 96 96 25. 26.

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN-ĐỊNH TUYẾN TRONG MẠNG AD HOC VÔ TUYẾN.pdf