Mô phỏng giao thức S-MAC và T-MAC trên Castalia

Một phần của tài liệu (LUẬN văn THẠC sĩ) đánh giá một số giao thức lớp MAC trong mạng cảm biến không dây (Trang 71 - 83)

T-MAC là một MAC phổ biến cho WSN vì nó sử dụng nhiều kỹ thuật để giữ mức tiêu thụ năng lượng thấp (sử dụng chu kỳ và đồng bộ hóa nhiệm vụ tích cực) trong khi cố gắng duy trì hiệu suất (ví dụ: phân phối gói) bằng cách điều chỉnh chu kỳ nhiệm vụ của nó theo nhu cầu lưu lượng. S-MAC có thể được xem là tiền thân của T-MAC khi nó khởi xướng nhiều kỹ thuật nhưng sử dụng chu kỳ nhiệm vụ cứng nhắc hơn. Một mô-đun Castalia (TMAC) cung cấp chức năng của cả hai giao thức. Việc triển khai T-MAC ở Castalia là một nhiệm vụ phức tạp và tốn thời gian vì nhiều chi tiết thực tế của giao thức không được nêu rõ trong bài báo gốc. Ví dụ, không có chi tiết về đồng bộ hóa thời gian. Đồng bộ hóa thời gian chỉ được xử lý bằng cách tham khảo S-MAC. Quan trọng hơn, kỹ thuật đồng bộ hóa S-MAC không phù hợp với những ý tưởng mới mà T- MAC đang giới thiệu, do đó phải đưa ra quyết định để duy trì hiệu suất của T- MAC cao. Trên hết, Castalia đã thêm chức năng bổ sung không được mô tả rõ ràng trong bài báo gốc, chẳng hạn như một số lần truyền lại cố định cho các gói

tin unicast không thành công. Các chi tiết về việc triển khai T-MAC, tập trung vào sự mơ hồ về giao thức và các quyết định được đưa ra, được mô tả trong bài báo WCNC 2010. Các tham số mà mô-đun T-MAC có thể được tìm thấy trong:

src/node/communication/mac/tMac/TMAC.ned

Bắt đầu lại với một số tham số để kiểm soát thu thập dấu vết và đầu ra gỡ lỗi. Sau đó, xác định kích thước của các gói điều khiển khác nhau trong T- MAC (SYNC, ACK, RTS, CTS) cũng như kích thước khung tối đa cho dữ liệu và chi phí chung. Ngoài ra kích thước bộ đệm của MAC được đưa ra. Sau đó, 12 tham số theo đó xác định hành vi của giao thức. Nếu bạn muốn ở gần với T- MAC ban đầu, hãy để các tham số này về giá trị mặc định của chúng.

int maxTxRetries = default(2);

Số lần thử truyền của một gói unicast mà T-MAC sẽ thực hiện. Truyền được coi là thành công chỉ khi gói xác nhận được nhận từ nút đích. Gửi một gói RTS cũng được coi là một nỗ lực truyền tải. Lưu ý rằng tham số này không áp dụng cho các gói tin quảng bá

double frameTime = default(610);

Độ dài của mỗi chu kỳ khung cho tất cả các nút (tính bằng mili giây). Các nút cố gắng đồng bộ hóa bắt đầu và kết thúc của mỗi khung với một lịch trình toàn cầu (với khả năng có nhiều hơn một lịch trình). Lưu ý rằng điều này đề cập đến thời lượng của toàn bộ khung; các phần hoạt động và không hoạt động của mỗi khung được xác định động và riêng cho từng nút.

double contentionPeriod = default(10);

Thời lượng của khoảng thời gian tranh chấp (tức là khoảng thời gian truyền ngẫu nhiên), tính bằng mili giây, cho bất kỳ nỗ lực truyền nào. Tác dụng chính của tham số này là để tránh nhiễu truyền từ các nút lân cận.

double listenTimeout = default(15);

Thời lượng của thời gian chờ nghe tính bằng mili giây (cũng có thể được gọi là thời gian chờ kích hoạt). Tham số này xác định lượng thời gian phải vượt qua mà không có bất kỳ hoạt động nào trên kênh không dây để một nút đi ngủ trong khung hiện tại.

double waitTimeout = default(5);

Thời gian chờ để mong trả lời từ một nút khác (tính bằng mili giây). Câu trả lời này có thể là gói CTS hoặc gói ACK. Nếu không có phản hồi nào được nhận sau khoảng thời gian này, thì nỗ lực truyền được coi là không thành công và bộ đếm nỗ lực truyền bị giảm.

double resyncTime = default(6);

Khoảng thời gian giữa các gói đồng bộ hóa phát sóng (tính bằng giây). Giá trị của tham số này liên quan trực tiếp đến độ trôi đồng hồ của các nút trong mạng mô phỏng. Các thí nghiệm của Castalia cho thấy 40 giây là một giá trị phù hợp để sử dụng với mô hình trôi đồng hồ hiện tại của Castalia.

bool allowSinkSync = default(true);

Nếu giá trị này được đặt thành 1 (true), T-MAC sẽ cố trích xuất thông tin từ các lớp cao hơn (tức là, tham số mô-đun ứng dụng isSink) để tìm hiểu xem nút hiện tại có được đánh dấu là ‘sink’ hay không.

Tham số này cho phép các nút ‘sink’ tránh khoảng thời gian tranh chấp khi tạo lịch trình đồng bộ hóa cho mạng, do đó cho phép đồng bộ hóa nhanh hơn và do đó, thông lượng tốt hơn (đặc biệt là nếu các gói cần được gửi sớm trong mô phỏng).

bool useFrts = default(false);

Tham số này đề cập đến việc sử dụng yêu cầu trong tương lai để gửi (FRTS) như được xác định bởi những người tạo ra thuật toán T-MAC. Trong triển khai T-MAC hiện tại, Castalia không cung cấp hỗ trợ cho tham số này vì cho rằng nó đang giải quyết một vấn đề cụ thể, trong khi không phải là một phần của thuật toán T-MAC cốt lõi.

bool useRtsCts = default(true);

Tham số này là một tính năng bổ sung, ban đầu không được đề xuất trong T-MAC. Nó cho phép tắt các gói RTS và CTS, do đó hạn chế mọi truyền đến một trao đổi DATA - ACK đơn giản giữa các nút. Castalia thấy tham số này hữu ích cho các tình huống chỉ gửi các gói nhỏ, do đó không cần thiết phải thực sự dự trữ kênh để truyền (vì việc đặt trước sẽ mất nhiều thời gian hơn so với truyền chính).

bool disableTAextension = default(false);

Một tham số bổ sung khác cho phép tắt tiện ích mở rộng thời gian chờ kích hoạt. Vì giai đoạn hoạt động linh hoạt là sự cải tiến của T-MAC so với S- MAC, bằng cách vô hiệu hóa nó và xác định khoảng thời gian nghe thích hợp (10% toàn bộ khung), về cơ bản Castalia đang triển khai S-MAC. Castalia cung cấp một tệp ini để đưa vào các mô phỏng để người dùng xác định các tham số thích hợp của mô-đun T-MAC để mô phỏng giao thức S-MAC.

bool conservativeTA = default(true);

Sử dụng khoảng TA, sẽ đảm bảo MAC tỉnh táo ít nhất 15 ms sau bất kỳ hoạt động nào trên radio.

int collisionResolution = default(0);

Chọn một cơ chế giải quyết va chạm từ những cơ chế này. Các giá trị có thể là:

1 - Chỉ thử lại khi nghe CTS hoặc RTS 2 - Chỉ thử lại trong khung tiếp theo

Cuối cùng, 3 tham số liên quan đến hoạt động của lớp vật lý, chẳng hạn như tốc độ dữ liệu, độ trễ đối với cảm giác sóng mang và chi phí vật lý được xác định. Một lần nữa như với TunableMAC, điều quan trọng là làm cho người dùng MAC tiếp xúc với những điều này để thể hiện sự phụ thuộc vào radio.

Nếu bạn muốn sử dụng S-MAC thì tệp sau sẽ xác định tham số T-MAC theo cách mô phỏng S-MAC (bạn chỉ cần đưa nó vào tệp .ini của mình):

Simulations/Parameters/MAC/SMAC.ini

Mục đích của các thí nghiệm là để đo tiêu thụ năng lượng của hai giao thức: S-MAC, T-MAC.

Bảng dưới đây là kịch bản mô phỏng cho việc so sánh giữa 2 giao thức MAC là S-MAC và T-MAC.

Thông số chung Giá trị

Diện tích địa hình 60 x 60 mét

Số lượng nút triển khai 5*5 / 7*7

Tiêu thụ điện năng mỗi thiết bị 0.5mw

Khoảng thời gian nghe của MAC 10ms

Radio được sử dụng Telco CC2420

Công suất truyền tải 5dBm

Kịch bản được đặt ra là sâu trong rừng quốc gia Cúc Phương, các nhà nghiên cứu cần đặt các thiết bị cảm biến để theo dõi độ ẩm, nhiệt độ, ánh sáng trong khu rừng. Phục vụ cho việc tìm hiểu, đánh giá sự phát triển, sự sống của các thực vật, động vật trong rừng quốc gia Cúc Phương. Các nút cảm biến được

gắn trải khắp rừng, có những địa điểm rất khó tiếp cận. Với nguồn năng lượng hạn chế, cần chọn những thiết bị phù hợp, tối ưu về năng lượng đảm bảo cho mạng tồn tại lâu trong tự nhiên. Với thuật toán định tuyến được xem là tối ưu, cần chọn một giao thức MAC phù hợp để tiết kiệm năng lượng nhất có thể.

Với kịch bản này thì ban đầu, nếu đặt các cảm biến trên động vật và thực vật, kiểu mạng sẽ là kiểu động, các nút mạng vào ra liên tục khiến mạng sẽ phải tái cấu trúc mạng nhiều, từ đó lộ rõ nhược điểm của giao thức S-MAC, với chu kỳ thức ngủ cứng nhắc nó sẽ thích nghi kém hơn, tiêu tốn nhiều năng lượng hơn T-MAC với một chu kỳ mềm dẻo hơn. Với việc làm việc thiếu hiệu quả trong môi trường tải biến động, S-MAC một lần nữa kém hiệu quả hơn so với T-MAC. Do đó học viên thực hiện mô phỏng theo kịch bản trên với kiểu mạng tĩnh, giảm bớt yếu điểm của S-MAC so với T-MAC. Và đưa ra nhìn nhận rõ nét hơn về việc sử dụng hiệu quả năng lượng của T-MAC so với S-MAC nhờ tối ưu hóa thời gian thức. Ở mô phỏng đầu tiên có tổng số 25 nút. Kết quả mô phỏng tập trung vào việc quan sát năng lượng tiêu thụ bởi giao thức S-MAC và T-MAC với những lần khác nhau của các node. Kết quả mô phỏng thu được như hình 3.1 dưới đây

Hình 3.3. Minh họa năng lượng tiêu thụ của S-MAC và T-MAC trong mạng cảm biến không dây với số lượng 25 nút

Trong hình 3.3 này, trục X là thời gian (s), trục Y là mức năng lượng tiêu thụ của mạng cảm biến không dây. Trong hình này chúng ta thấy rằng năng lượng tiêu thụ của mạng cảm biến không dây sử dụng giao thức S-MAC nhiều hơn so với giao thức T-MAC, chiếm khoảng 77%. Với thời gian hoạt động càng lâu, càng thấy được ưu thế về tiết kiệm năng lượng của T-MAC, nhờ sự linh hoạt trong chu kỳ thức ngủ. Qua đó, chúng ta thấy rằng giao thức T-MAC đã chứng minh được giao thức cải tiến của giao thức S-MAC. Để kiểm chứng trong môi trường có nhiều nút hơn, tiếp tục thay đổi số nút mạng tăng lên gấp đôi, 49 nút mạng tham gia mạng WSN được thiết lập. Kết quả mô phỏng được minh họa trong hình 3.4 như sau:

Hình 3.4. Minh họa năng lượng tiêu thụ của S-MAC và T-MAC trong mạng cảm biến không dây với số lượng 49 nút

Trong hình 3.4 cho thấy rằng năng lượng tiêu thụ của giao thức S-MAC cũng cao hơn so với T-MAC trong trường hợp mạng WSN được mở rộng lên gấp đôi (49 nút). Qua đây, chúng ta cũng thấy rằng khi mà thời gian mô phỏng càng tăng thì năng lượng tiêu thụ của giao thức S-MAC càng lớn hơn so với giao thức T-MAC, lớn hơn 75%. Số lượng nút tăng nhiều, đồng nghĩa với tăng khả năng xảy ra xung đột, cũng như phải thực hiện truyền thông nhiều hơn trước để gửi dữ liệu về tới trung tâm. T-MAC đã thể hiện được ưu thế vượt trội và là phiên

bản nâng cấp của S-MAC, giải quyết được vấn đề tối ưu thời gian thức, tăng thông lượng cực đại trong truyền thông đẳng hướng. Trong khi với S-MAC để tối ưu năng lượng sử dụng, nó cần giảm thông lượng xuống.

Cũng với kịch bản trên nhưng học viên thực hiện với cấu trúc liên kết đơn giản hơn gồm 10 nút và 20 nút. Học viên thay đổi số lượng nút để đo mức tiêu thụ năng lượng trong các tải lưu lượng khác nhau.

Hình 3.5: Minh họa tải cao điểm và mức năng lượng tiêu thụ (với 10 nút và 20 nút)

Trong hình 3.5 các sự kiện (gửi và nhận gói tin) xảy ra trong mạng với tần suất một trên mỗi 10s. Sự kiện có một thời lượng trung bình 5s và ảnh hưởng tới một khu vực khoảng 10 nút. Một nút lân cận (hàng xóm) nhận được một trong số những tin nhắn này trả lời với xác suất 20%. Học viên thực hiện nhiều phép đo, với các số đo tần suất gói tin khác nhau. Tấn suất này thể hiện trên trục hoành của hình 3.5. T-MAC sử dụng tránh nghe lỏm nhưng không ưu tiên gửi khi bộ đệm đầy. T-MAC sử dụng ít năng lượng hơn nhiều so với S-MAC, đặc biệt khi tần suất gói tin trong các sự kiện tăng lên. Tuy nhiên tối đa tần suất mà T-MAC có thể xử lý thấp hơn của S-MAC, do đó có thể xảy ra vấn đề tiêu thụ năng lượng của T-MAC tăng nếu tải lưu lượng và số lượng nút tăng lên. Một lần nữa, T-

MAC gặp vấn đề từ hiện tượng ngủ sớm. Qua mô phỏng trên học viên thấy rằng dù đã đưa ra 2 giải pháp để hạn chế hiện tượng ngủ sớm trong giao thức T-MAC nhưng khi tải lưu lượng tăng cao và số nút tham gia mạng nhiều lên vẫn gây ảnh hưởng lớn đến tối ưu năng lượng trong giao thức T-MAC. Cần có thêm nhiều thử nghiệm và nghiên cứu mới để tìm ra một giải pháp tối ưu hơn cho giao thức này.

Như vậy, trong mạng cảm biến không dây với trường hợp năng lượng đóng vai trò quan trọng hàng đầu vì các hạn chế về tài nguyên, thì công suất là thông số quan trọng nhất cần được quan tâm. Do đó, việc tiết kiệm năng lượng trọng mạng WSN trở thành nghiên cứu cấp thiết. Giao thức S-MAC và T-MAC là nghiên cứu cơ bản, giúp cho việc hiểu rõ vấn đề tiêu hao năng lượng của vai trò của giao thức MAC trong hoạt động của mạng WSN. Qua đó, cho thấy mọi hoạt động trong quá trình truyền thông đóng vai trò quan trọng để giảm tiêu hao năng lượng, kéo dài thời gian sống của mạng WSN.

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

Mạng cảm biến không dây WSNs có thể gồm từ chục đến hàng trăm, hàng nghìn, thậm chí hàng triệu thiết bị cảm biến. Mỗi thiết bị được trang bị một bộ xử lý, một bộ nhớ dung lượng nhỏ, bộ thu phát sóng vô tuyến và các cảm biến để đo ánh sáng, độ ẩm, áp suất, nhiệt độ, EC, pH,… Mạng cảm biến liên hệ bằng sóng vô tuyến, tiêu thụ cực ít năng lượng, hoạt động liên tục trong mọi điều kiện, môi trường. Cho nên, mạng WSN được ứng dụng rất rộng rãi trong xã hội như trong công nghiệp, nông nghiệp, giao thông, y tế, quốc phòng,…

Tuy nhiên, với đặc điểm là tài nguyên hạn chế, nên việc thiết kế và xây dựng mạng cảm biến không dây cần phải tối ưu và giải quyết được những vấn đề, trong đó việc tối ưu năng lượng trong việc định tuyến là cần thiết vì năng lượng tiêu thụ của mạng cảm biến không dây chiếm tới 70% năng lượng tiêu thụ của toàn mạng, trong đó có sự tiêu thụ năng lượng của giao thức MAC. Đây là vấn đề sống còn, quyết định thời gian sống và hiệu suất của toàn hệ thống mạng WSN. Do đó, luận văn “Đánh giá một số giao thức lớp MAC trong

mạng cảm biến không dây” có nghĩa lý luận và thực tiễn, cũng như là nền tảng

cơ sở cho nghiên cứu sau này.

Mục tiêu chính của luận văn là nghiên cứu tổng thể về mạng cảm biến không dây (WSN), ứng dụng và một số giao thức trong lớp MAC nhằm mục tiêu sử dụng năng lượng một cách hiệu quả và thích ứng để kéo dài thời gian sống của toàn hệ thống mạng. Phân tích và đánh giá hiệu quả sử dụng năng lượng của một số giao thức lớp MAC đặc trưng như CSMA, S-MAC, T-MAC, LMAC. Trong luận văn này, học viên đơn giản chỉ tập trung vào hiệu suất tiêu thụ năng lượng của MAC, xác định ưu nhược điểm của S-MAC và T-MAC để tiết kiệm năng lượng bằng cách tắt bộ thu phát vô tuyến càng nhiều càng tốt. Với

lịch trình time-out được thực hiện trong giao thức T-MAC giúp tiết kiệm năng lượng hơn đáng kể so với chu kỳ nhiệm vụ cố định như trong giao thức S-MAC, khi được áp dụng trong một môi trường với tốc độ gói tin khác nhau. Lợi thế chính xác phụ thuộc vào mức độ thay đổi của tốc độ tin nhắn. T-MAC có những

Một phần của tài liệu (LUẬN văn THẠC sĩ) đánh giá một số giao thức lớp MAC trong mạng cảm biến không dây (Trang 71 - 83)

Tải bản đầy đủ (PDF)

(83 trang)