Với các thể hiện của DSDV, ta có thể nhận thấy rõ hoạt động rất hiệu quả của giao thức chủ ứng dựa trên vecto khoảng cách này trong việc định tuyến khi vận tốc nút tăng. Trễ đầu cuối trung bình của DSDV rất nhỏ, khá ổn định với các mức độ linh động của nút khác nhau mặc dù độ trễ có tăng lên khi vận tốc tăng. Mặt khác, tỷ lệ phân phát gói tin thành công là khá tốt trong khi tải định tuyến chuẩn hóa rất nhỏ, điều này minh chứng cho nhận xét của ta về hoạt động hiệu quả của DSDV. Ta lý giải như sau: DSDV sử dụng cập nhật định kỳ và cập nhật sự kiện nên phản ứng tốt với sự thay đổi cấu hình mạng nhanh, mặt khác nó tối ưu hóa cập nhật bằng cách sử dụng hai loại thông điệp cập nhật là thông điệp cập nhật đầy đủ và thông điệp cập nhật bổ xung do đó trong bốn giao thức, tải định tuyến chuẩn hóa của DSDV là tốt nhất. Để tránh sự bùng nổ các cập nhật định tuyến tại các thời điểm cấu hình mạng thay đổi nhanh, DSDV cũng áp dụng cơ chế hãm các cập nhật tức thời khi có các thay đổi xảy ra trong mạng.
43 trang |
Chia sẻ: lylyngoc | Lượt xem: 6730 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Tìm hiểu về mạng MANET, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thức định tuyến.
Ðịnh tuyến theo bảng (proactive)
Trong các giao thức định tuyến theo bảng, tất cả các node cần duy trì thông tin về cấu hình mạng. Khi cấu hình mạng thay đổi, các cập nhật được truyền lan trong mạng nhằm thông báo sự thay đổi. Hầu hết các giao thức định tuyến theo bảng đều kế thừa và sửa đổi đặc tính tương thích từ các thuật toán chọn đường dẫn ngắn nhất trong các mạng hữu tuyến truyền thống. Các thuật toán định tuyến theo bảng được sử dụng cho các node cập nhật trạng thái mạng và duy trì tuyến bất kỳ có lưu lượng hay không. Vì vậy, tiêu đề thông tin để duy trì cấu hình mạng đối với các giao thức này thường là lớn. Một số giao thức định tuyến điển hình theo bảng trong MANET gồm:
Giao thức định tuyến không dây WRP (Wireless Routing Protocol)
Ðịnh tuyến vector khoảng cách tuần tự đích DSDV (Destination Sequence Distance Vector)
Ðịnh tuyến trạng thái tối ưu liên kết OLSR (Optimized Link State Routing)
Ðịnh tuyến theo yêu cầu (reactive)
Trong mạng MANET, các tuyến hoạt động có thể ngừng do tính di động của node. Vì vậy, thông tin duy trì tuyến là tối quan trọng đối với các giao thức định tuyến theo yêu cầu. So với các giao thức định tuyến theo bảng, các giao thức định tuyến theo yêu cầu thường có tiêu đề trao đổi thông tin định tuyến nhỏ hơn. Vì vậy, về mặt nguyên tắc, các giao thức này có khả năng mở rộng tốt hơn so với các giao thức định tuyến theo bảng. Tuy nhiên, vấn đề lớn nhất của các giao thức định tuyến theo yêu cầu là trễ do tìm kiếm tuyến trước khi chuyển tiếp thông tin dữ liệu. Ví dụ về một số giao thức định tuyến theo yêu cầu gồm:
Giao thức định tuyến nguồn động DSR (Dynamic Source Routing)
Giao thức định tuyến vector khoảng cách theo yêu cầu AODV (Ad hoc On- demand Distance Vector routing)
Giao thức định tuyến theo thứ tự tạm thời TORA (Temporally Ordered Routing Algorithm).
Giao thức định tuyến lai ghép
Các giao thức định tuyến lai ghép được đề xuất để kết hợp các đặc tính ưu điểm của các giao thức định tuyến theo bảng và theo yêu cầu. Thông thường, các giao thức định tuyến lai ghép Manet được sử dụng trong kiến trúc phân cấp. Các giao thức định tuyến theo bảng và theo yêu cầu được triển khai trong các cấp thích hợp
Một số ví dụ về giao thức định tuyến lai ghép:
Giao thức định tuyến vùng ZRP (Zone Routing Protocol)
Giao thức định tuyến trạng thái liên kết dựa trên vùng ZHLS (Zone-based Hierarchical Link State routing)
Giao thức định tuyến mạng tuỳ biến lai HARP (Hybrid Ad hoc Routing Protocol)
Ngoài ra, chúng cũng được phân loại theo cách khác:
Link state protocol : Trong các giao thức loại này, các router sẽ trao đổi LSA (Link state advertisement) với các router khác để xây dựng và duy trì cơ sở dữ liệu về trạng thái của toàn mạng (Network topology database). Các thông tin này được trao đổi dưới dạng multicast (Một router đến nhiều router khác). Như vậy mỗi router sẽ có một cái nhìn đầy đủ và độc lập về toàn mạng (Routing table chung) và từ đó sẽ tìm cách xây dựng đường đi ngắn nhất đến đích
Distance vector protocol : Trong giao thức loại này, các router sẽ chỉ trao đổi bảng định tuyến (Routing table) riêng của mình đến các router lân cận được kết nối trực tiếp với mình. Như vậy, các router này không tự biết được đường đi đến đích, không biết các router trung gian mà phải dựa vào bảng định tuyến của router lân cận (Bị chi phối bởi các router lân cận).
2.2.2. Các giao thức định tuyến cơ bản.
Giao thức DSDV(Destination Sequence Distance Vector)
Mô tả
DSDV là giao thức định tuyến vector khoảng cách theo kiểu từng bước: Trong mỗi nút mạng duy trì bảng định tuyến lưu trữ đích có thể đến ở bước tiếp theo của định tuyến và số bước để đến đích. DSDV yêu cầu nút mạng phải gửi đều đặn thông tin định tuyến quảng bá trên mạng
Ưu điểm của DSDV là đảm bảo không có đường định tuyến kín bằng cách sử dụng số thứ tự để đánh dấu mỗi đường. Số thứ tự cho biết mức độ “mới” của đường định tuyến, số càng lớn thì mức độ đảm bảo càng cao (đường R được coi là tốt hơn R’ nếu số thứ tự của R lớn hơn, trong trường hợp có cùng số thứ tự thì R phải có số bước nhỏ hơn). Số thứ tự sẽ tăng khi nút A phát hiện ra đường đến đích D bị phá vỡ, sau đó nút A quảng bá đường định tuyến của nó tới nút D với số bước không giới hạn và số thứ tự sẽ tăng lên
Ðặc điểm
+ DSDV phụ thuộc vào thông tin quảng bá định kỳ nên nó sẽ tiêu tốn thời gian để tổng hợp thông tin trước khi đường định tuyến được đưa vào sử dụng. Thời gian này là không đáng kể đối với mạng có cấu trúc cố định nói chung (bao gồm cả mạng có dây), nhưng với mạng Ad hoc thời gian này là đáng kể, có thể gây ra mất gói tin trước khi tìm ra được định tuyến hợp lý. Ngoài ra, bản tin quảng cáo định kỳ cũng là nguyên nhân gây ra lãng phí tài nguyên mạng.
Giao thức DSR (Dynamic source routing)
Mô tả
+ Ðây là một giao thức thuộc dạng Distance Vector được dùng trong Manet. Khi một node mạng cần chuyển dữ liệu nhưng chưa biết được đường dẫn đến một địa chỉ nào đó, node mạng này bắt đầu quá trình tìm kiếm đường dẫn (Route discovery). Vì vậy, DSR là giao thức bị động (Chỉ cập nhật trạng thái mạng và tìm đường dẫn khi có yêu cầu). Một ưu điểm của DSR là không có gói tìm đường nào được phát đi định kỳ (vì không cần phải cập nhật trạng thái mạng thường xuyên – trái ngược với giao thức Link state). DSR còn có khả năng điều hành đường dẫn một chiều. Vì DSR tìm đường theo yêu cầu nên nó không thích hợp cho các mạng dung lượng lớn và có tính di động cao. Giao thức DSR cũng có hai hoạt động chính: Tìm đường và bảo trì đường dẫn (Router maintenance). Hình dưới đây cho ta thấy một ví dụ đơn giản của DSR. Router A, B và C lập thành một mạng Manet. Router A và C không kết nối với nhau trong khi cả hai cùng kết nối với router B
Hình 2.1 Mô tả giao thức DSR
Thủ tục tìm kiếm đường
+ Giả định rằng ban đầu bộ nhớ đệm trong tất cả các router đều trống (những router này chưa biết gì về sự có mặt của nhau và những đường dẫn có thể có giữa chúng). Khi router A muốn gửi dữ liệu đến router C, nó phát ra tín hiệu yêu cầu tìm đường dẫn, và quá trình tìm đường dẫn lúc này mới được kích hoạt. Router B nhận được yêu cầu của A vì nó nằm trong vùng phủ sóng của A. Router C là địa chỉ của yêu cầu đó và B chưa có thông tin nào về địa chỉ của C lúc này, vì vậy router B gắn ID của nó vào trong danh sách các router trung gian được đính kèm trong yêu cầu của A và chuyển tiếp yêu cầu đó đến những router khác. Khi C nhận được yêu cầu được gửi đến từ B, nó nhận biết rằng địa chỉ của nó trùng với địa chỉ đích đến. Vì vậy một đường dẫn từ A đến C được tìm thấy. Ðể giúp cho router nguồn (A) và những router trung gian (B) thiết lập đúng đường dẫn, router C gửi một thông điệp trả lời về A trong trường hợp đây là đường dẫn hai chiều. Quá trình này được thực hiện dễ dàng vì ID của những router trung gian đều nằm trong gói yêu cầu được gửi đến C. Những router trung gian này sẽ xây dựng cho mình bảng định tuyến ngay khi chúng nhận được trả lời từ router C. Vì vậy, một đường dẫn từ A đến C được thiết lập
Ðặc điểm
Trong quá trình tìm đường, các router duy trì danh sách ID của những router trung gian trong các yêu cầu tìm kiếm gần thời điểm đó để tránh phải xử lý cùng một yêu cầu tìm kiếm (lặp). Yêu cầu tìm kiếm bị bỏ qua trong trường hợp chúng đã được xử lý gần thời điểm đó và được xác định là một yêu cầu lặp. Khi một router nhận được yêu cầu và nhận ra rằng ID của nó đã nằm sẵn trong danh sách router trung gian của yêu cầu đó thì yêu cầu này sẽ bị bỏ qua
Quá trình bảo trì đường dẫn diển ra khi đường dẫn trở nên không thể sử dụng được vì sự di chuyển không đoán trước của các router (đặc trưng của MANET). Mỗi router quản lý tất cả đường dẫn để chuyển tiếp các gói, khi một đường dẫn hỏng, một gói báo cáo lỗi đường dẫn (Route error) lập tức được gửi về router nguồn và đường dẫn tương ứng. Vì vậy, đường dẫn bị hỏng sẽ bị bỏ qua.
Ðể quản lý việc truyền gói dữ liệu điều khiển vốn không đảm bảo (topo mạng luôn thay đổi), DSR phải dựa vào giao thức ngầm định MAC (XX) để đảm bảo nơi nhận luôn nhận được dữ liệu hoặc nó sẽ gửi gói dữ liệu điều khiển một số lần nhất định. Vì DSR là một giao thức bị động, nó không thể biết được router đích bị ngắt kết nối hay yêu cầu tìm đường bị mất. Vì vậy, chi phí vận hành sẽ lớn trong trường hợp giao thức MAC không đảm bảo dữ liệu luôn tới được đích. Ðây là một vấn đề phổ biến của các giao thức bị động, bởi vì khi không nhận được trả lời từ router đích, router có giao thức bị động sẽ không thể phân biệt được hai trường hợp lỗi xảy ra trong quá trình truyền dẫn hoặc một hoặc nhiều node mạng trở nên không thể sử dụng được. Giao thức bị động thường sử dụng nhiều gói xác nhận (Acknowledgement) hoặc gửi dữ liệu đi nhiều lần để khắc phục vấn đề này, tuy nhiên phương pháp này lại làm tăng chi phí hoạt động. Giao thức chủ động phát đi các gói điều khiển định kỳ và bỏ qua các node mạng khi chúng không trả lời sau một số lần phát nhất định, vì vậy giao thức này không mắc phải vấn đề trên, tuy nhiên việc phát các gói điều khiển một cách định kỳ như vậy cũng làm tăng chi phí.
Chương 3: Ứng dụng của manet
Với sự gia tăng của thiết bị cầm tay cũng như sự tiến bộ trong thông tin không dây. Mạng di động gia tăng thêm tầm quan trọng với sự gia tăng các ứng dụng rộng rãi. Mạng di động nay có thể áp dụng ở những nơi có ít cơ sở hạ tầng hoặc không có trước cơ sở hạ tầng, hoặc những nơi có sẵn cơ sở hạ tầng đắt tiền, không tiện cho sử dụng. Mạng manet cho phép duy trì những kết nối hoặc thêm vào hay dở bỏ đi một cách dễ dàng. Những bộ ứng dụng cho các mạng manet là rất đa dạng, khoảng lệch lớn, di động, mạng có tính động cao, mạng tĩnh thường bị hạn chế bởi công suất nguồn. Bên cạnh những ứng dụng cũ trước đây trong những môi trường truyền thẳng, những ứng dụng mới sẽ được tạo ra trong những môi trường mới. Những ứng dụng điển hình bao gồm
3.1. Trong quân sự.
- Trang thiết bị quân sự hiện nay thường chứa một số loại thiết bị máy tính. Mạng lưới manet sẽ cho phép quân đội để tận dụng lợi thế của công nghệ mạng phổ biến để duy trì một thông tin mạng lưới giữa những người lính, xe cộ, và thông tin từ bộ chỉ huy. Các kỹ thuật cơ bản của mạng ad hoc đến từ lĩnh vực này
3.2. Trong thương mại.
- MANET có thể sử dụng trong cứu hộ nhằm nỗ lực cứu trợ những thiên tai. Vd: hoả hoạn, lũ lụt, động đất… Lĩnh vực cứu hộ làm việc trong môi trường khắc nhiệt và nguy hiểm cho hạ tầng thông tin và tốc độ triển khai hệ thống nhanh thì cần thiết. Thông tin được chuyển tiếp với các thành viên trong nhóm cứu hộ với nhau bằng một thiết bị nhỏ cầm tay
3.3. Trong đời sống.
- Mạng manet có thể chủ động liên kết một mạng lưới đa phương tiện tức thời và tạm thời nhờ sử dụng máy tính xách tay để truyền bá và chia sẽ thông tin giữa các đại biểu tham dự như một hội nghị, lớp học. Một cách sử dụng khác của loại mạng này là sử dụng trong gia đình để trao đổi trực tiếp thông tin với nhau. Tương tự như vậy trong các lĩnh vực khác như taxi dân sự, thể thao, sân vận động, thuyền và máy bay nhỏ…MANET tầm ngắn có thể đơn giản hoá việc truyền thông giữa các thiết bị di động ( PDA, laptop, cellphone). Những dây cáp được thay thế bằng việc kết nối vô tuyến. Mạng manet cũng có thể mở rộng chức năng truy cập Internet như các mạng khác ví dụ như WLAN, GPRS, và USTM. PAN là một lĩnh vực có tiềm năng ứng dụng đầy hứa hẹn của Manet phổ biến trong tương lai.
Hình 3.1 Ứng dụng PAN
Chương 4 : Mô phỏng mạng manet bằng NS2
I. Thiết lập mô phỏng mạng MANET trong NS2.
1.1. Tạo các nút mạng trong MANET
Các thành phần mạng chính được dùng để cấu trúc nên tầng giao thức cho mỗi nút di động gồm có: kênh (channel), giao tiếp mạng (network interface), mô hình phát sóng vô tuyến (radio propagation model), các giao thức MAC, hàng đợi giao diện (interface queue), lớp liên kết (link layer), mô hình giao thức phân giải địa chỉ ARP và thành phần định tuyến (routing agent).
Hình dưới đây biểu diễn cấu tạo nút di động mô phỏng trong NS2:
Hình 4.1. Nút di động mô phỏng trong NS2
Mô phỏng lớp vật lý thực
Các mô hình phát sóng quyết định khoảng cách gói tin có thể được truyền đi trong không khí. Nếu gọi r là khoảng cách giữa các ăng ten thì sự suy yếu của sóng vô tuyến giữa các ăng ten ở gần mặt đất được mô hình là 1/r2 với khoảng cách ngắn và và 1/r4 với các khoảng cách xa. Khi đó, điểm giao giữa khoảng cách ngắn và khoảng cách xa được gọi là khoảng cách tham chiếu (reference distance). Khoảng cách này thông thường là 100 m đối với các ăng ten 1,5m loại có độ lợi thấp (low-gain) ngoài trời hoạt động ở dải tần 1-2GHz. Đặc tả của mô hình phát sóng trong NS2 tương tự như giao tiếp sóng vô tuyến Lucent’s WaveLAN với tốc độ bit danh định có thể đạt tới 2,5Mb/s và phạm vi truyền sóng vô tuyến là 250m. Các mô hình cũng thể hiện độ trễ truyền, các ảnh hưởng và cảm nhận sóng mang.
Mô phỏng lớp MAC
Lớp liên kết của bộ mô phỏng cài đặt hoàn chỉnh chuẩn giao thức MAC của IEEE 802.11 DCF(Distributed Coordination Function). Các chức năng của lớp MAC được cài đặt bao gồm phát hiện xung đột, phân mảnh, biên nhận và đặc biệt có khả năng phát hiện các lỗi truyền (transmision error). 802.11 là giao thức CSMA/CA. Việc tránh xung đột được thực hiện bằng việc kiểm tra kênh truyền trước khi sử dụng. Nếu kênh rỗi, nút có thể bắt đầu gửi. Nếu không, nút phải đợi một khoảng thời gian ngẫu nhiên trước khi kiểm tra lại. Mỗi lần cố gắng gửi không thành công, giải thuật rút lui theo hàm mũ được sử dụng. Vấn đề trong môi trường không dây là thiết bị đầu cuối ẩn (hidden terminal). Việc khắc phục được thực hiện bằng cơ chế tránh xung đột CA cùng với lược đồ biên nhận tích cực (RTS/CTS). 802.11 cũng hỗ trợ việc tiết kiệm năng lượng và bảo mật. Các gói tin được lưu trong bộ đệm khi hệ thống ở trạng thái nghỉ (sleep); bảo mật được cung cấp bởi giải thuật WEP xác thực và mã hóa. Một trong các đặc điểm quan trọng nhất của 802.11 là chế độ AD HOC cho phép xây dựng các mạng WLAN không có cơ sở hạ tầng.
Mô phỏng giao thức phân giải địa chỉ ARP
Giao thức ARP dịch địa chỉ IP thành địa chỉ phần cứng MAC. Việc này được thực hiện trước khi gói tin được gửi tới lớp MAC.
Hàng đợi giao diện
Mỗi nút có hàng đợi các gói tin đang chờ để được truyền bởi giao diện mạng. Hàng đợi được cài đặt là DropTail (thuật ngữ trong bộ mô phỏng NS2, tương tự như hàng đợi kiểu FIFO) và có khả năng chứa 50 gói tin.
Giao diện sóng vô tuyến
Đây là mô hình phần cứng thực sự chuyển gói tin vào kênh. Giao diện sóng vô tuyến được mô hình hóa với các mức năng lượng và lược đồ điều biến.
Năng lượng truyền
Bán kính bộ thu phát sóng phụ thuộc vào dạng ăngten, nhiều dạng ăngten được hỗ trợ bởi bộ mô phỏng.
Các giao thức định tuyến AD HOC
Hiện tại có bốn giao thức được cài đặt sẵn trong NS2 là DSDV, AODV, TORA và DSR.
1.2. Mô hình phương tiện chia sẻ trong NS2
Mô hình không dây được dựa trên mô hình phương tiện chia sẻ (Ethernet trong không khí), được minh họa trên hình 4.2. Tất cả các nút di động có một hoặc nhiều giao diện mạng kết nối vào một kênh. Kênh là một dải tần số vô tuyến cụ thể với lược đồ điều biến và mã hóa riêng. Các kênh là trực giao, có nghĩa là các gói tin được gửi trên một kênh không làm nhiễu các gói tin được truyền và nhận trên một kênh khác.
Hoạt động cơ bản như sau, mọi gói tin được gửi hoặc đặt vào kênh sẽ được nhận hoặc sao chép bởi tất cả các nút di động có kết nối tới cùng kênh. Khi nút di động nhận được gói tin, đầu tiên nút xem xét nó có được nhận gói tin hay không. Điều này được quyết định bởi mô hình phát sóng vô tuyến, dựa trên dải truyền thông, khoảng cách gói tin đã di chuyển và lượng bit lỗi.
Hình 4.2. Mô hình phương tiện chia sẻ trong NS2
1.3. Hoạt động của nút di động
Hoạt động của nút di động được thể hiện như sau. Mỗi nút di động sử dụng thành phần định tuyến (routing agent) để tính toán đường tới các nút khác trong mạng AD HOC. Các gói tin được gửi từ ứng dụng và được nhận bởi thành phần định tuyến. Bộ phận này sẽ quyết định đường đi của gói tin để tới đích và gắn vào gói tin thông tin này. Gói tin sau đó được gửi xuống lớp liên kết. Lớp liên kết sử dụng giao thức phân giải địa chỉ ARP để quyết định địa chỉ phần cứng của nút hàng xóm và ánh xạ địa chỉ IP tới giao diện chính xác. Khi thông tin nhận được, gói tin được gửi xuống hàng đợi giao diện và đợi tín hiệu từ giao thức MAC. Khi lớp MAC quyết định gói tin có thể được gửi vào kênh, gói tin được lấy từ hàng đợi chuyển tới giao diện mạng và sau đó được gửi ra kênh vô tuyến. Gói tin được sao chép và được phân phát tới tất cả các giao diện mạng tại thời điểm bít đầu tiên của gói tin bắt đầu đến giao diện trong hệ thống vật lý. Mỗi giao diện mạng đánh dấu gói tin với các thuộc tính của giao diện nhận và sau đó gọi tới mô hình phát sóng.
Mô hình phát sóng sử dụng các đánh dấu truyền và nhận để quyết định mức năng lượng mà giao diện nhận gói tin. Các giao diện nhận sử dụng các thuộc tính của chúng để quyết định việc nhận gói tin thật sự thành công hay không và gửi gói tin tới lớp MAC nếu thích hợp. Nếu lớp MAC nhận gói tin không có lỗi và không có xung đột, gói tin được gửi tới điểm đầu vào của nút di động. Từ đó, gói tin tới bộ phân tách kênh (demultiplexer) để xác định gói tin có được chuyển tiếp nữa hay không hoặc đã tới nút đích. Nếu tới được nút đích, gói tin được gửi tới bộ phân tách cổng (port demultiplexer) để quyết định ứng dụng nhận của gói tin. Nếu gói tin được chuyển tiếp, thành phần định tuyến sẽ đươc gọi và thủ tục được lặp lại
1.4. Cấu hình nút di động trong NS
Nút di động (MobileNode) là đối tượng nsNode cơ bản với các chức năng bổ sung như di chuyển, khả năng truyền và nhận trên một kênh cho phép nó được sử dụng để tạo tính di động, mô phỏng môi trường không dây. Lớp MobileNode có nguồn gốc từ lớp cơ sở Node. MobileNode là một đối tượng tách biệt (split object). Các đặc tính di động bao gồm di chuyển nút, cập nhật vị trí định kỳ, duy trì ranh giới cấu trúc liên kết … được thực hiện trong C++, trong khi các thành phần mạng trong chính MobileNode (như classifiers, dmux, LL, Mac, Channel, …) được thực hiện trong Otcl. Các chức năng và thủ tục mô tả 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. [ns Manual] Cấu hình API để tạo một nút di động được mô tả như sau:
$ns_ node-config -adhocRouting $opt(adhocRouting)
-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ác thủ tục trên tạo một đối đối tượng Mobilenode , một agent định tuyến adhoc-routing xác định, tạo ngăn xếp mạng (stack network) gồm một lớp liên kết, hàng đợi giao diện, lớp MAC và một giao tiếp mạng với một ăng ten, sử dụng mô hình phát sóng vô tuyến, các liên kết giữa các thành phần và kết nối ngăn xếp tới kênh.
1.5. Tạo sự di chuyển của nút trong NS
Mobilenode được thiết kế để di chuyển trong không gian 3 chiều. Tuy nhiên, cho đến nay chiều thứ 3 (Z) không được sử dụng, nghĩa là mobilenode được giả định luôn di chuyển trên một mặt phẳng với Z = 0. Khi đó, mobilenode có tọa độ X, Y, Z (= 0) được liên tục điều chỉnh khi nút di chuyển. Có 2 cơ chế để tạo chuyển động trong các mobilenode. Trong phương pháp thứ nhất, bắt đầu từ vị trí của nút và các đích đến của các nút đó có thể được thiết lập rõ ràng. Các chỉ thị điều khiển thường nằm trong một file kịch bản di chuyển riêng biệt.
Vị trí ban đầu và đích đến đối với một mobilenode có thể được thiết lập bằng cách sử dụng các API dưới đây:
$node set X_
$node set Y_
$node set Z_
$ns at $time $node setdest
Tại thời điểm $time, nút bắt đầu di chuyển từ vị trí ban đầu (x1,y1) của nó tới một đích đến (x2,y2) với vận tốc speed xác định. Trong phương pháp này, các cập nhật di chuyển của nút được kích hoạt bất cứ khi nào để xác định vị trí nút tại thời điểm yêu cầu. Việc kích hoạt có thể do một nút hàng xóm có yêu cầu truy vấn để xác định khoảng cách giữa chúng hoặc bộ công cụ setdest trực tiếp mô tả bằng chỉ thị điều khiển hướng hoặc vận tốc của nút.
Phương pháp thứ hai sử dụng chuyển động ngẫu nhiên của nút, như sau:
$mobilenode start
nó bắt đầu mobilenode với vị trí ngẫu nhiên, có các cập nhật thường xuyên để thay đổi hướng và vận tốc của nút. Các giá trị vận tốc và đích được tạo theo một kiểu ngẫu nhiên.
Với cả hai phương thức tạo di chuyển nút trên, vùng mô phỏng cần được xác định trước khi tạo các mobilenode. Thông thường, vùng mô phỏng là miền phẳng và được tạo bằng cách xác định chiều dài và chiều rộng, ta định nghĩa như sau:
set topo [new Topography]
$topo load_flatgrid $opt(x) $opt(y)
trong đó opt(x) và opt(y) lần lượt là chiều dài và chiều rộng của vùng mô phỏng.
II. Tạo các đường truyền không dây (air interface) trong MANET
2.1. Mô hình FreeSpace
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
2.2. Mô hình 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 gặp trong thực tế. Mô hình Two Ray Ground phản xạ hai tia mặ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.
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
2.3. Mô hình Shadowing
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 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.
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 miền 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 cần chọn các giá trị của hệ số suy hao trên đường truyền (path loss) và độ lệch hiệu ứng màn chắn chuẩn σ dB tuỳ theo môi trường mô phỏng.
Chúng ta vẫn sử dụng lệnh cấu hình nút bằng Otcl. Một cách để sử dụng nó như sau, với các giá trị 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
$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 (Random number Genrator). 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 0
$ns_ node-config -propInstance $prop
có thể là thô, xác định trước hay heuristic.
2.4. Tạo ngữ cảnh chuyển động
Trong mô phỏng mạng AD HOC, việc mô phỏng được dựa trên hai mô hình là mô hình truyền thông thể hiện khuôn dạng truyền thông giữa các nút trong mạng và mô hình di chuyển thể hiện chuyển động của các nút trong mạng.
2.5. Tạo diện tích mô phỏng
Nhóm xây dựng mạng mô phỏng với các nút di động tạo nên một mạng ad hoc. Các nút này di chuyển trong một khu vực địa lý (không gian phẳng, hình chữ nhật). Toạ độ của các nút tại mỗi thời điểm là (x, y, z), trong đó tọa độ z = 0. Giá trị chiều dài và chiều rộng của vùng mô phỏng được khai báo bằng câu lệnh sau:
set val(x) a; # X dimension of the topography
set val(y) b; # Y dimension of the topography
2.6. Tạo các thực thể giao thức và các nguồn sinh lưu lượng
Các mô hình truyền thông được mô phỏng trong NS2 (hình 4.3) gồm hai loại bộ tạo lưu lượng (traffic generator) và các ứng dụng mô phỏng (simulated application). Các các bộ tạo truyền thông sử dụng giao thức UDP để gửi các gói tin và các ứng dụng mô phỏng sử dụng giao thức TCP.
Hình 4.3. Các mô hình truyền thông trong NS2
Có bốn loại bộ tạo lưu lượng là: bộ tạo lưu lượng có phân bố lũy thừa, pareto, CBR và theo file trace.
Bộ tạo lưu lượng có phân bố lũy thừa: tạo lưu lượng theo một phân bố bật/ tắt lũy thừa. Trong quãng thời gian “bật”, các gói tin được gửi với tốc độ cố định, và trong quãng thời gian “tắt” không có gói tin nào được gửi. Ngoài ra, quãng thời gian bật, tắt được phân bố theo một phân bố lũy thừa. Các gói tin có kích thước không đổi. Bộ tạo lưu lượng lũy thừa có thể cấu hình để hoạt động như một quá trình Poisson.
Bộ tạo lưu lượng có phân bố Parero: tạo lưu lượng theo phân bố bật/ tắt Pareto.
Phân bố này tương tự phân bố bật/ tắt lũy thừa, chí khác là các quãng thời gian bật, tắt lấy theo phân bố Pareto. Các nguồn này có thể được dùng để tạo các lưu lượng kết hợp thể hiện sự phụ thuộc.
Bộ tạo lưu lượng có phân bố đều - CBR: tạo lưu lượng theo một tốc độ xác
định. Kích thước gói tin là không đổi. Ngoài ra, một số các dao động ngẫu nhiên được thực hiện giữa các quãng khởi đầu của các gói tin.
Bộ tạo lưu lượng theo tệp vết: tạo lưu lượng theo một tệp vết (trace file) xác định thời gian phát và ngừng phát gói tin cùng các thông số khác dựa trên số liệu thu được từ mạng thực, đã được ghi trong tệp vết.
Trong thực nghiệm mô phỏng của luận văn, nhóm sử dụng bộ tạo lưu lượng CBR để tạo tệp truyền thông. Câu lệnh tạo tệp như sau:
ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-rate rate] > outdir/file_name
Trong đó: -type: kiểu lưu lượng kết nối cbr hay tcp; -nn: số lượng nút; -seed: giá trị seed; -mc: số lượng kết nối; -rate: vận tốc nút; -outdir: đường dẫn đến thư mục chứa tệp cần tạo; -file_name: tên tệp lưu lượng
III. Tạo các dạng chuyển động theo mẫu
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. Chúng cầ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 đúng hiệu suất của các giao thức trước khi được triển khai trong thực tế. Đối với các mạng không dây, hai loại mô hình di chuyển được sử dụng là mô hình vết (trace model) và mô hình tổng hợp (synthetic model). Các mô hình vết là các khuôn dạng di chuyển được quan sát trong hệ thống thực. Mô hình vết cung cấp thông tin chính xác, đặc biệt khi chúng liên quan tới nhiều bên tham gia và quãng thời gian quan sát đủ dài. Tuy nhiên, với môi trường mạng mới, các mạng AD HOC không dễ dàng được mô hình vết. Trong trường hợp này cần thiết phải sử dụng các mô hình tổng hợp.
Các mô hình tổng hợp cố gắng thể hiện thực hành vi của các nút di động mà không sử dụng tới mô hình vết bằng việc mô tả các di chuyển của nút một cách thống kê. Mỗi nút được gán một giải thuật dùng để ngẫu nhiên hóa sự di chuyển. Khuôn dạng di chuyển của mạng là tập hợp các di chuyển từ việc áp dụng mô hình di chuyển vào một hoặc nhiều nút. Hai mô hình di chuyển tiêu biểu mô phỏng các mạng AD HOC là Random Waypoint và Random Walk.
Mô hình Random Waypoint
Mô hình Random Waypoint được sử dụng rộng rãi trong mô phỏng các giao thức định tuyến thiết kế cho các mạng AD HOC đặc biệt, nó được định nghĩa như sau. Đầu tiên 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 gọi là thời gian tạm dừng. Khi quãng thời gian này hết hạn, nút chọn ngẫu nhiên một đích trong khu vực mô phỏng và một tốc độ được phân bố đồng đều giữa [Speedmin, Speedmax]. Sau đó, nút di chuyển tới vị trí mới với tốc độ đã chọn. Khi tới vị trí mới, nút dừng một khoảng thời gian được chọn theo phân bố đồng đều giữa [Pmin, Pmax], và sau đó tiếp tục lại quá trình.
Trực quan hoá di chuyển của một nút theo mô hình Random Waypoint bởi
Gnuplot trong hình 4.4 bên dưới.
Hình 4.4. Di chuyển của một nút theo mô hình Random Waypoint Các tham số mô phỏng cho Random Waypoint được cho trong bảng :
Tham số
Ý nghĩa
Speedmin
Tốc độ thấp nhất
Speedmax
Tốc độ cao nhất
Pmin
Thời gian tạm dừng nhỏ nhất
Pmax
Thời gian tạm dừng lớn nhất
Bảng các tham số của mô hình Random Waypoint
Mô hình Random Waypoint được dùng rộng rãi trong các nghiên cứu về mạng AD HOC, do nó rất linh động trong việc tạo ra khuôn dạng di chuyển thực tế theo cách mọi người chuyển động trong các hội thảo, hội nghị. Trong NS2, mô hình Random Waypoint được tạo bởi công cụ setdest. Cấu trúc câu lệnh của setdest tạo tệp ngữ cảnh (scenario file) như sau:
Tạo tệp di chuyển kiểu cũ:
./setdest -v -n -p -M -t
-x -y
Tạo tệp di chuyển kiểu mới:
./setdest -v -n -s -m -M -t
-P -p -x -y
Trong đó: -v: version; -n: số tham gia mô phỏng nút; -P: kiểu thời gian tạm dừng; -p: thời gian tạm dừng; -m: vận tốc di chuyển nút nhỏ nhất; -M: vận tốc di chuyển nút tối đa; -t: thời gian mô phỏng; -x: chiều X vùng mô phỏng; -y: chiều Y vùng mô phỏng.
Sơ đồ khái quát quá trình mô phỏng
Quá trình mô phỏng mạng AD HOC trong NS2 được thể hiện trong hình 4.5. Quá trình bao gồm việc tạo hai tệp đầu vào cho NS2:
Tệp ngữ cảnh (scenario file): là file kịch bản mô tả khuôn dạng di chuyển của các nút.
Tệp truyền thông (communication file): là file kịch bản mô tả các truyền thông trong mạng.
Hình 4.5. Sơ đồ tổng quan quá trình mô phỏng
Trong quá trình chương trình mô phỏng chạy, bộ mô phỏng NS ghi nhận các hoạt động mạng tại các lớp sau đó xuất dữ liệu thu được ra một tệp vết (trace file). Do đó, trước khi mô phỏng ta cần lựa chọn các tham số cấu hình cho việc ghi tệp vết. Tệp vết sau đó có thể được duyệt và phân tích để xác định các tham số cần tính toán. Các kết quả tính toán, phân tích có thể dùng là dữ liệu cho các chương trình vẽ đồ thị như gnuplot, xgraph, tracegraph. Tệp vết cũng có thể được dùng để trực quan hóa việc chạy mô phỏng bằng ad-hockey hoặc NAM.
IV. Thực nghiệm mô phỏng
4.1. Các thông số mô phỏng
Mạng MANET có những đặc điểm là: cấu hình mạng động, các liên kết với dung lượng thay đổi - băng tần hạn chế, các nút có năng lượng thấp và bảo mật vật lý hạn chế. Do đó, khi phân tích hiệu suất các giao thức định tuyến AD HOC ta cần xem xét một số tham số của ngữ cảnh mạng như sau:
Kích thước mạng: được thể hiện bằng số các nút trong mạng.
Kết nối mạng: được thể hiện bằng số trung bình các hàng xóm của một nút.
Tốc độ thay đổi mạng: là tốc độ thay đổi tô-pô của mạng theo thời gian.
Khả năng của liên kết: là băng thông của liên kết không dây, được tính bằng bps.
Dạng truyền thông: được thể hiện bằng các mức độ tải trong mạng, có thể là đồng dạng, không đồng dạng hoặc bùng phát.
Dạng di chuyển: được thể hiện các mô hình chuyển động cụ thể.
Mục đích các thí nghiệm của nhóm là đánh giá khả năng của các giao thức định tuyến trong việc phản hồi lại các thay đổi cấu hình mạng gây ra bởi sự di động của các nút mạng. Phương pháp của chúng nhóm là áp dụng nhiều dạng di chuyển với vận tốc chuyển động của các nút khác nhau. Các mạng AD HOC mô phỏng được xây dựng dựa trên các mô hình di chuyển và mô hình truyền thông. Đối với mô hình di chuyển, chúng nhóm sử dụng hai mô hình tiêu biểu Random Waypoint Đối với mỗi mô hình, chúng nhóm thay đổi các giá trị tham số để thay đổi các trạng thái của mạng như vận tốc chuyển động của các nút mạng, lần lượt là 0, 5, 10, 15, 20, 25, 30 m/s.
Khi so sánh các giao thức định tuyến, để đảm bảo tính công bằng, điều quan trọng là phải áp dụng các điều kiện tải và môi trường giống nhau với từng giao thức. Chính vì vậy, với mỗi mô hình di chuyển nhóm xây dựng các file ngữ cảnh mô tả chính xác chuyển động của mỗi nút cùng với thời gian diễn ra sự thay đổi của nút. Còn đối với các mô hình truyền thông, các file ngữ cảnh truyền thông được tạo ra thể hiện chính xác các kết nối giữa các nút và thời gian các truyền thông này diễn ra. Do đó, tập các file ngữ cảnh chuyển động và truyền thông giống nhau được áp dụng cho từng giao thức.
Trong tất cả các thí nghiệm, nhóm lựa chọn mô hình truyền thông là CBR. Nhóm không sử dụng các mô hình truyền thông là các ứng dụng mô phỏng sử dụng TCP để gửi các gói tin. Vì TCP điều phối tải theo tình trạng mạng, có nghĩa là thời gian gửi gói tin thay đổi dựa trên khả năng truyền tải hiện tại của mạng. Do vậy, thời gian mỗi gói tin được tạo ra tại bên gửi và vị trí của nút khi gửi các gói tin sẽ khác nhau giữa các giao thức do vậy khó có thể thực hiện các so sánh giữa các giao thức với nhau.
Lần lượt áp dụng các giao thức AODV, DSR, DSDV, OLSR vào các ngữ cảnh mạng khác nhau. Bộ mô phỏng ghi nhận lại các hoạt động mạng diễn ra tại các lớp. Từ các ghi nhận này, ta đánh giá khả năng làm việc của các giao thức, chủ yếu là trên lớp ứng dụng và lớp mạng. Các thí nghiệm và các đánh giá được thể hiện trong các phần sau bao gồm thí nghiệm với mô hình Random Waypoint. Các nhận xét về hiệu suất các giao thức được trình bày trong phần 4.4.
4.2. Chương trình mô phỏng
Chương trình mô phỏng của nhóm được đặt tên là: dsdv-cbr10-rwp0-speed10.tcl, được trình bày tại phụ lục.
Nhóm đã cho thi hành chương trình mô phỏng như sau:
ns dsdv-cbr10-rwp0-speed10.tcl
Kết xuất thông tin ra tệp dsdv-cbr10-rwp0-speed10-out.tr để phân tích bằng các script perl như sau:
perl average_end-end_delay.pl dsdv-cbr10-rwp0-speed10-out.tr 10 >> avg_rwp1_dsdv.out
perl normalized_routing_overhead.pl dsdv-cbr10-rwp0-speed10-out.tr 10 >> nro_rwp1_dsdv.out
perl packet_delivery_fraction.pl dsdv-cbr10-rwp0-speed10-out.tr 10 >> pdf_rwp1_dsdv.out
perl routing_overhead.pl dsdv-cbr10-rwp0-speed10-out.tr 10 >> ro_rwp1_dsdv.out
perl throughput.pl dsdv-cbr10-rwp0-speed10-out.tr 10 >> thr_rwp1_dsdv.out
Kết quả nhận được lưu trong các file sau:
avg_rwp1_dsdv.out nro_rwp1_dsdv.out pdf_rwp1_dsdv.out ro_rwp1_dsdv.out thr_rwp1_dsdv.out
Để kết quả đạt độ chính xác cao hơn, ứng với mỗi vận tốc 0, 5, 10, 15, 20, 25 và 30 m/s nhóm tạo 5 tệp mẫu di chuyển khác nhau. Như vậy, tổng số tệp vết được tạo ra là: 2 (mô hình di chuyển) x 4 (giao thức định tuyến) x 7 (vận tốc) x 5 (kiểu tệp mẫu di chuyển) = 280 tệp vết (*.tr). Từ những tệp vết thu được ta dùng các script perl phân tích để tính toán các độ đo hiệu năng mạng. Kết quả cuối cùng (của các độ đo hiệu năng mạng) được chọn là trung bình của 5 kết quả đã được tính toán và được trả về trong các file: avg_rwp_dsdv.out, nro_rwp_dsdv.out, pdf_rwp_dsdv.out, ro_rwp_dsdv.out, thr_rwp_dsdv.out
4.3. Các độ đo hiệu năng được dùng trong luận văn
Theo nghĩa chung, hiệu năng là một độ đo công việc mà một hệ thống thực hiện được. Hiệu năng chủ yếu được xác định bởi tính sẵn sàng để dùng, thông lượng và thời gian đáp ứng. Trong mạng Ad Hoc, các giới hạn về tài nguyên mạng yêu cầu các giao thức bên cạnh các yếu tố hiệu suất nêu trên cần đảm bảo việc dùng hiệu quả các tài nguyên hạn chế này. Với các giao thức định tuyến, đó chính là chi phí để thực hiện các yêu cầu định tuyến được thể hiện bởi mức tải định tuyến.
Do vậy, chúng nhóm sử dụng các độ đo sau để đánh giá hiệu quả các giao thức
định tuyến trong các mạng mô phỏng:
Phần trăm gói tin được phân phát thành công (Packet delivery fraction): Là tỷ lệ giữa số các gói tin được phân phát thành công tới đích so với số các gói tin tạo ra bởi nguồn phát.
Trễ đầu cuối trung bình của các gói dữ liệu (Average end to end data packet delay): Là độ trễ toàn phần được tính từ khi gói tin phát đi từ ứng dụng phát cho tới khi được nhận bởi ứng dụng nhận bao gồm các trễ có thể như trễ do quá trình phát hiện đường, xếp hàng tại các hàng đợi, trễ phát lại tại tầng MAC, và thời gian trễ truyền.
Thông lượng dữ liệu đầu cuối (End-to-end data throughput): Tổng số dữ liệu của các gói tin tạo bởi mọi nguồn đo được trong một khoảng thời gian mô phỏng, tính bằng k bit/s.
Tải định tuyến chuẩn hóa (Normalized Routing Load): Là tỷ lệ giữa số các gói tin định tuyến trên số gói tin dữ liệu được phân phát thành công. Nếu gói tin định tuyến đi qua nhiều chặng thì mỗi chặng được tính như một lần truyền thông.
Hai độ đo đầu đánh giá kết quả làm việc của các giao thức. Các độ đo này có ý nghĩa đối với hoạt động của các giao thức lớp trên như các giao thức giao vận và các giao thức ứng dụng. Độ đo tải định tuyến chuẩn hóa thể hiện việc sử dụng các tài nguyên mạng.
4.4. Kết quả mô phỏng mô hình Random Waypoint.
4.4.1. Thiết lập thông số mô phỏng
Đối với mô hình RW, chúng nhóm xây dựng mạng mô phỏng gồm 50 nút di động, hình thành nên một mạng ad hoc. Các nút này di chuyển trong một khu vực địa lý rộng 1500m x 900m (không gian phẳng). Toạ độ của các nút tại mỗi thời điểm là (x, y, z), trong đó tọa độ z = 0. Chúng nhóm lựa chọn không gian hình chữ nhật để đường đi giữa các nút có độ dài lớn hơn so với trong các không gian hình vuông với mật độ nút tương đương. Cụ thể là độ dài đường lớn nhất trong mạng mô phỏng của chúng nhóm là 8 chặng (trong khi không gian hình vuông là 4 chặng). Thời gian mô phỏng là 900 giây.
Nhóm tạo ra 7 tệp mẫu di chuyển của nút với 7 giá trị vận tốc nút khác nhau là 0, 5, 10, 15, 20, 25 và 30 m/s. Thời gian tạm dừng 0 giây tương ứng với việc các nút di chuyển liên tục trong suốt thời gian mô phỏng.
Mô hình truyền thông được lựa chọn là CBR (constant bit rate). Đây là mô hình truyền thông được mô phỏng bởi NS2 với tốc độ phát gói tin không đổi. Nhóm chọn tham số cho nguồn phát CBR có tốc độ gửi là 4 gói tin/giây với kích thước các gói tin là 512 bytes. Số lượng kết nối cho mỗi mô hình di chuyển nút là 10 nguồn phát.
Tổng kết về các cấu hình mạng mô phỏng và các tham số của các mô hình di chuyển, mô hình truyền thông được cho trong bảng.
Tham số mô phỏng
Giá trị
Số nút tham gia mô phỏng
50
Kích thước vùng mô phỏng (m x m)
1500 x 900
Phạm vi truyền sóng vô tuyến (m)
250
Băng thông (Mbps)
2
Kích thước gói tin (bytes)
512
Tốc độ gửi gói tin (packets/ s)
4
Dạng truyền thông
Cbr
Số lượng nguồn phát
10
Thời gian tạm dừng (s)
0
Tốc độ nút di chuyển (m/s)
0-5-10-15-20-25-30
Thời gian mô phỏng (s)
900
Giao thức định tuyến mô phỏng
AODV-DSDV-DSR-OLSR
Bảng cấu hình các mạng mô phỏng trong mô hình Random Waypoint
4.4.2. Kết quả và nhận xét.
Phần trăm gói tin được phân phát thành công
Hình 4.6. Đánh giá kết quả phân phát gói tin trong mô hình Random Waypoint
Trễ đầu cuối trung bình
Hình 4.7. Đánh giá kết quả trễ đầu cuối trong mô hình Random Waypoint
Thông lượng đầu cuối trung bình
Hình 4.8. Đánh giá kết quả thông lượng trong mô hình Random Waypoint
Tải định tuyến chuẩn hóa
Hình 4.9. Đánh giá kết quả tải chuẩn hóa trong mô hình Random Waypoint
Với tập các cấu hình mạng mô phỏng được xây dựng ở trên, nhóm tiến hành mô phỏng, phân tích, đánh giá các kết quả làm việc giữa các giao thức dựa trên các độ đo hiệu suất. Các kết quả so sánh được cho thấy sau đây bao gồm: kết quả phân phát gói tin, độ trễ đầu cuối trung bình, thông lượng đầu cuối trung bình và tải định tuyến chuẩn hóa của bốn giao thức.
Từ hình 4.6, nếu coi tỷ lệ phân phát gói tin thành công là độ đo quan trọng nhất thì ta có thể đánh giá giao thức AODV hoạt động ổn định, đạt hiệu quả tốt nhất với tỷ lệ phân phát gói tin thành công trung bình trên 80%. Còn lại, 3 giao thức DSDV, DSR và OLSR thì tỷ lệ phân phát gói tin thành công xuống thấp khi vận tốc nút tăng lên. Điều này phù hợp với thông lượng đầu cuối trung bình, hình 29 cho thấy kết quả là thông lượng của AODV lớn nhất trung bình đạt trên 130 kpbs, trong khi thông lượng của DSDV, DSR và OLSR giảm dần khi vận tốc nút tăng. Những cải tiến từ DSR giúp AODV hoạt động tốt hơn, cụ thể là AODV dựa vào thiết lập động các bảng định tuyến ở các nút trung gian, điều này làm giảm rất nhiều tải định tuyến chuẩn hóa so với việc truyền từng gói tin dữ liệu chứa các tuyến đường nguồn trong tiêu đề như trong DSR. Hai nguyên nhân: Một là, DSR là giao thức phản ứng dựa trên định tuyến nguồn; hai là, trong bộ mô phỏng ns-2.34 thời gian giữa các ROUTE REQUEST được phát lại chỉ là 500 ms trong khi thời gian giữ các gói tin chờ đường là 30s dẫn đến số lượng gói tin ROUTE REQUEST là rất lớn lý giải cho vấn đề thông lượng đầu cuối trung bình thấp và độ trễ đầu cuối trung bình cao của DSR. Cuối cùng, ta thấy DSR có tải định tuyến chuẩn hóa rất cao. Từ bốn độ đo trên, trong mô hình này ta có thể đánh giá DSR hoạt động tồi khi vận tốc các nút lớn. Còn đối với AODV, đây là giao thức định tuyến phản ứng dựa trên vec tơ khoảng cách với các bảng định tuyến của các nút hàng xóm được tổ chức để tối ưu hóa thời gian phản ứng các di chuyển cục bộ và cung cấp thời gian phản ứng nhanh cho các yêu cầu thành lập tuyến đường mới. Chính sự linh hoạt này đã khiến AODV hoạt động ổn định, hiệu quả kể cả khi vận tốc các nút tăng.
Với các thể hiện của DSDV, ta có thể nhận thấy rõ hoạt động rất hiệu quả của giao thức chủ ứng dựa trên vecto khoảng cách này trong việc định tuyến khi vận tốc nút tăng. Trễ đầu cuối trung bình của DSDV rất nhỏ, khá ổn định với các mức độ linh động của nút khác nhau mặc dù độ trễ có tăng lên khi vận tốc tăng. Mặt khác, tỷ lệ phân phát gói tin thành công là khá tốt trong khi tải định tuyến chuẩn hóa rất nhỏ, điều này minh chứng cho nhận xét của ta về hoạt động hiệu quả của DSDV. Ta lý giải như sau: DSDV sử dụng cập nhật định kỳ và cập nhật sự kiện nên phản ứng tốt với sự thay đổi cấu hình mạng nhanh, mặt khác nó tối ưu hóa cập nhật bằng cách sử dụng hai loại thông điệp cập nhật là thông điệp cập nhật đầy đủ và thông điệp cập nhật bổ xung do đó trong bốn giao thức, tải định tuyến chuẩn hóa của DSDV là tốt nhất. Để tránh sự bùng nổ các cập nhật định tuyến tại các thời điểm cấu hình mạng thay đổi nhanh, DSDV cũng áp dụng cơ chế hãm các cập nhật tức thời khi có các thay đổi xảy ra trong mạng. Bằng việc ghi nhận các quãng thời gian xảy ra những thay đổi về đường, DSDV làm trễ các cập nhật tức thời theo thời gian đó. Thời gian làm trễ thường là thời gian trung bình để có được tất cả các quảng bá cập nhật cho một tuyến đường. Bằng cách này, các nút có thể chắc chắn nhận được tất cả những thay đổi đường dẫn định tuyến đến một đích trước khi lan truyền bất cứ thay đổi nào. Điều này làm giảm việc sử dụng băng thông và tiêu thụ điện năng của các nút hàng xóm. Kết quả là, trong hình 4.8 thông lượng của DSDV là khá tốt. Trong mô hình Random Waypoint, giao thức định tuyến OLSR chỉ đạt hiệu quả trung bình. Mặc dù là giao thức định tuyến chủ ứng nhưng tải định tuyến chuẩn hóa của OLSR cao hơn nhiều so với DSDV do nó dựa trên định tuyến trạng thái liên kết dù đã được cải tiến bằng cách sử dụng các chuyển tiếp đa điểm (MultiPoint Relays - MPRs) để giảm chi phí flooding mạng và kích thước của các bản cập nhật trạng thái liên kết. Nhưng so với các giao thức phản ứng như AODV, DSR thì tải định tuyến chuẩn hóa của OLSR khá nhỏ. Tuy nhiên, trễ đầu cuối trung bình của OLSR là rất cao, đi kèm với phần trăm phân phát gói tin thành công thấp. Điều này là phù hợp với thông lượng đầu cuối trung bình chỉ ở mức thấp.
PHỤ LỤC
dsdv-cbr10-rwp0-speed10.tcl
# ============================================================
# Define options
# ============================================================
set val(chan) Channel/WirelessChannel set val(prop) Propagation/TwoRayGround set val(netif) Phy/WirelessPhy
set val(mac) Mac/802_11
set val(ifq) Queue/DropTail/PriQueue
set val(ll) LL
set val(ant) Antenna/OmniAntenna
set val(x) 1500 ;# X dimension of the topography set val(y) 900 ;# Y dimension of the topography set val(ifqlen) 50 ;# max packet in ifq
set val(seed) 1.0
set val(adhocRouting) DSDV
set val(nn) 50 ;# how many nodes are simulated set val(cp) "/home/phd1983/ns-2.34/protocols/cbr/cbr-50-10-4"
set val(sc) "/home/phd1983/ns-2.34/protocols/scen/rwp/rwp-1500-900-50-0-10-0" set val(stop) 900.0 ;# simulation time
# ============================================================
# Main Program
# ============================================================
# Initialize Global Variables
# create simulator instance
set ns_ [new Simulator]
# setup topography object
set topo [new Topography]
# create trace object for ns and nam
set tracefd [open dsdv-cbr10-rwp0-speed10-out.tr w]
set namtrace [open dsdv-cbr10-rwp0-speed10-out.nam w]
$ns_ trace-all $tracefd
$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
# define topology
$topo load_flatgrid $val(x) $val(y)
# Create God
set god_ [create-god $val(nn)]
# define how node should be created
#global node setting
$ns_ node-config -adhocRouting $val(adhocRouting) \
-llType $val(ll) \
-macType $val(mac) \
-ifqType $val(ifq) \
-ifqLen $val(ifqlen) \
-antType $val(ant) \
-propType $val(prop) \
-phyType $val(netif) \
-channelType $val(chan) \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-movementTrace ON \
-macTrace OFF
# Create the specified number of nodes [$val(nn)] and "attach" them to the channel.
for {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node]
$node_($i) random-motion 0 ; # disable random motion
}
# Define node movement model
puts "Loading connection pattern..." source $val(cp)
# Define traffic model
puts "Loading scenario file..." source $val(sc)
# Define node initial position in nam for {set i 0} {$i < $val(nn)} {incr i} {
$ns_ initial_node_pos $node_($i) 50
}
# Tell nodes when the simulation ends
for {set i 0} {$i < $val(nn) } {incr i} {
$ns_ at $val(stop).0 "$node_($i) reset";
}
$ns_ at $val(stop).0002 "puts \"NS EXITING...\" ; $ns_ halt"
puts $tracefd "M 0.0 nn $val(nn) x $val(x) y $val(y) rp $val(adhocRouting)" puts $tracefd "M 0.0 sc $val(sc) cp $val(cp) seed $val(seed)"
puts $tracefd "M 0.0 prop $val(prop) ant $val(ant)"
puts "Starting Simulation..."
$ns_ run
average_end-end_delay.pl
# type: perl average_end-end_delay.pl
# ---------------------------------------------------------------------------
$infile=$ARGV[0];
$speed=$ARGV[1];
$sum=0;
$recvnum=0;
# ---------------------------------------------------------------------------
open (DATA,") {
@x = split(' ');
for ($x[5])
{
if (( $x[0] eq "s") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" ))
{$start_time = $x[1]; }
if (( $x[0] eq "r") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" ))
{$end_time = $x[1]; $recvnum++;}
$packet_duration =$end_time - $start_time;
if ( $packet_duration > 0 ) { $sum += $packet_duration; }
}
}
# ---------------------------------------------------------------------------
$delay=$sum/$recvnum;
#print STDOUT "Total delay time of packets = $sum\n";
#print STDOUT "Total packets = $recvnum\n";
print STDOUT "$speed", " ", "$delay\n";
close DATA; exit(0);
normalized_routing_overhead.pl
# type: perl normalized_routing_overhead.pl
# ---------------------------------------------------------------------------
$infile=$ARGV[0];
$speed=$ARGV[1];
$routing_packets=0;
$sum_received=0;
# ---------------------------------------------------------------------------
open (DATA,") {
@x = split(' ');
if (( $x[0] eq "r") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" ))
{$sum_received++; }
if (( $x[0] eq "s" || $x[0] eq "f") && ( $x[6] eq "message" ) && ( $x[3] eq "RTR" )) {$routing_packets++; }
}
# ---------------------------------------------------------------------------
$normalized_routing_overhead=($routing_packets/$sum_received);
#print STDOUT "Total packets received = $sum_received\n";
#print STDOUT "Total routing packets sent & forward = $routing_packets\n"; print STDOUT "$speed", " ", "$normalized_routing_overhead \n";
close DATA; exit(0);
packet_delivery_fraction.pl
# type: perl packet_delivery_fraction_ratio.pl
# ---------------------------------------------------------------------------
$infile=$ARGV[0];
$speed=$ARGV[1];
$sum_sent=0;
$sum_received=0;
# ---------------------------------------------------------------------------
open (DATA,") {
@x = split(' ');
if (( $x[0] eq "s") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" ))
{$sum_sent++; }
if (( $x[0] eq "r") && ( $x[6] eq "cbr" ) && ( $x[3] eq "AGT" ))
{$sum_received++; }
}
# ---------------------------------------------------------------------------
$packet_delivery_ratio=($sum_received/$sum_sent)*100;
#print STDOUT "Total packets sent = $sum_sent\n";
#print STDOUT "Total packets received = $sum_received\n"; print STDOUT "$speed", " ", "$packet_delivery_ratio\n";
close DATA; exit(0);
throughput.pl
# type: throughput.pl
# ---------------------------------------------------------------------------
$infile=$ARGV[0];
$speed=$ARGV[1];
$recvdSize = 0;
$startTime = 1000;
$stopTime = 0;
# ---------------------------------------------------------------------------
open (DATA,") {
@x = split(' ');
$pkt_size = $x[7];
# Store start time
if (($x[3] eq "AGT") && ($x[0] eq "s") && ($pkt_size >= 512)) { if ($x[1] < $startTime) {
$startTime = $x[1];
}
}
# Update total received packets' size and store packets arrival time if (($x[3] eq "AGT") && ($x[0] eq "r") && ($pkt_size >= 512)) {
if ($x[1] > $stopTime) {
$stopTime = $x[1];
}
# Rip off the header
$hdr_size = $pkt_size % 512;
$pkt_size -= $hdr_size;
# Store received packet's size
$recvdSize += $pkt_size;
}
}
# ---------------------------------------------------------------------------
#print("Average Throughput[kbps] = ",($recvdSize/($stopTime-$startTime))* (8/1000)," ",$startTime," ","$stopTime\n");
print STDOUT "$speed", " ", ($recvdSize/($stopTime-$startTime))*(8/1000),"\n";
close DATA; exit(0);
Các file đính kèm theo tài liệu này:
- bao_cao_mang_manet_1405.doc