bỏ khe thời gian của nó và quay lại quá trình tìm kiếm khe thời gian rảnh rỗi khác.
Lưu ý: trong vector bit, các nút lưu thông tin điều khiển các khe thời gian và chia sẻ thông tin này cho các hàng xóm. Mỗi vị trí trong vector bit đại diện cho một khe thời gian. Bit 1 thể hiện khe thời gian bị chiếm, bit 0 thể hiện khe thời gian rảnh rỗi.
Thiết lập mạng
Khi các nút được bật lên, chúng sẽ thực hiện việc đồng bộ với nhau. Để đồng bộ thì các cổng sẽ chủ động điều khiển khe thời gian. Mỗi chặng của nút hàng xóm sẽ nhận được thông điệp điều khiển cổng. Các nút hàng xóm này sẽ đồng bộ với đồng bộ của chúng với cổng. Sau một khung truyền, trong phạm vi tiếp nhận của nút hàng xóm mỗi chặng này sẽ nhận ra là tất cả các khe thời gian được sở hữu bởi nhiều cổng.
Tiếp theo, các nút đã được đồng bộ sẽ chọn ngẫu nhiên 1 khe thời gian rỗi để điều khiển (trừ những khe bị chiếm). Khe thời gian bị chiếm được mã hóa bởi số bít bằng số khe thời gian trong một khung. Các nút bắt đầu điều khiển khe thời gian khi khe thời gian được xem như là không thuộc bất kỳ nút nào và các nút sẽ lưu lại danh sách hàng xóm của chúng trong một bảng. Phương pháp này chắc chắn rằng khe thời gian chỉ sử dụng lại sau ít nhất ba chặng và không có tranh chấp nào xảy ra.
Bởi vì có thể thiết lập mạng thì các nút sẽ chọn khe thời gian để điều khiển, các nút sẽ báo cho hàng xóm của nó khi có xung đột xảy ra giữa các thông điệp điều khiển. Các nút truyền thông điệp điều khiển bị xung đột sẽ chọn lại khe thời gian của chúng sau khoảng thời gian trì hoãn (backoff time), khe thời gian đó phụ thuộc vào mã định danh của nút. Các nút sẽ duy trì khe thời
Có thể bạn quan tâm!
- Quan Hệ Định Thời Giữa Nút Nhận Và Các Nút Gửi
- Thực Hiện Gửi Rts Và Chọn Ta Trong T-Mac
- Giao Thức Mac Dựa Trên Đa Truy Cập Phân Chia Theo Thời Gian
- Đánh giá một số giao thức lớp MAC trong mạng cảm biến không dây - 10
- Đánh giá một số giao thức lớp MAC trong mạng cảm biến không dây - 11
Xem toàn bộ 97 trang tài liệu này.
gian của nó đến khi pin hết hoặc chúng được thông báo rằng khe thời gian của chúng bị tranh chấp với nút khác. Số khe thời gian phải lớn hơn số kết nối cực đại trong mạng. Điều này đảm bảo chắc chắn rằng mọi thứ trong mạng có thể tìm thấy khe trống trong một khoảng thời gian nào đó.
Định tuyến tới các cổng
Sau khi thực hiện thiết lập mạng, thì LMAC cần thực hiện định tuyến tới các cổng. Khi thông điệp tới hoặc được tạo ra bởi các nút hoặc chính nó nhận được từ các nút khác, nút đó sẽ tìm trong bảng các hàng xóm của nó một nút hàng xóm gần với cổng nó hơn và sẽ chọn nút hàng xóm là đích cho các thông điệp. Trong trường hợp có nhiều hàng xóm gần hơn thì nó chọn ngẫu nhiên một nút làm đích. Cuối cùng thông điệp sẽ đến cổng được chọn.
2.6. Kết luận Chương 2
Mục đích của giao thức MAC là điều khiển truy nhập môi trường truyền sao cho quản lý hiệu quả hoạt động của sóng vô tuyến trong mạng WSN nhằm tiết kiệm năng lượng cho mạng. Trong chương này chúng ta đã khái quát nội dung về giao thức MAC trong mạng WSN, vấn đề gây lãng phí năng lượng trong mạng WSN. Đồng thời, chỉ ra được mục tiêu thiết kế giao thức MAC trong mạng WSNs.
Tiếp đến, chương 2 trình bày về một số giao thức MAC phổ biến hiện này như S-MAC, T-MAC, CSMA và LMAC.
CHƯƠNG 3: ĐÁNH GIÁ MỘT SỐ GIAO THỨC MAC TRONG MẠNG CẢM BIẾN KHÔNG DÂY
3.1. Giới thiệu
Trong mạng WSN, nhiều nút có thể dự định truyền trên cùng một kênh ở cùng một thời điểm. Trong tình huống này dữ liệu truyền sẽ bị xung đột nếu nhiều hơn một nút thực hiện truyền thông đồng thời, nên hệ thống mạng cần có chế trọng tài truy nhập phù hợp. Đây chính là công việc của giao thức MAC. Giao thức là một lớp con của giao thức liên kết dữ liệu và nó trực tiếp gọi giao thức của lớp vật lý [1, 2], [6, 8]. Trước đây là mạng WLAN, sau này là mạng Adhoc thì chuẩn IEEE 802.11 đã được sử dụng phổ biến cho cơ sở hạ tầng mạng không dây. Cho nên, nhiều giao thức MAC cho mạng không dây đã được đề xuất, chuẩn hóa và sử dụng rộng rãi. Nhưng với mạng WSN thì có nhiều đặc trưng khác biệt, trong đó có vấn đề về nguồn tài nguyên hạn chế và có tính động trong liên kết. Bởi vậy, một giao thức MAC phù hợp có tác dụng đáng kể trong việc tiêu thụ năng lượng để kéo dài tuổi thọ của mạng.
Trong khuôn khổ luận văn này sẽ tập trung vào việc phân tích so sánh 2 giao thức dựa trên sự cạnh tranh đó là S-MAC và T-MAC, bởi tính kinh điển của chúng, cũng như xu thế là nghiên cứu phát triển giao thức MAC trong thời gian
tới. Căn cứ vào vào kết quả phân tích và đánh giá này, học viên thực hiện việc thực nghiệm mô phỏng giải thuật điều khiển thâm nhập môi trường trong mạng WSN trong việc thu thập nhiệt độ môi trường.
3.2. Giới thiệu Castalia
Hiện nay, bộ công cụ mô phỏng Castalia [9,10] được dùng phổ biến để thực hiện việc mô phỏng giao thức mạng cảm biến không dây, trong đó có giao thức lớp MAC. Castalia được phát triển trên nền tảng OMNET++ và cho phép chúng ta có thể nghiên cứu và kiểm tra thuật toán, giao thức theo mô hình không dây gần với thực tế. Mô hình biến đổi theo thời gian của Castalia được thiết kế để phù hợp với dữ liệu đo trên thực tế. Các tính năng của Castalia bao gồm mô hình hóa quá trình vật lý, cảm biến độ lệch và tiếng ồn, cũng như giao thức MAC và định tuyến trong mạng WSNs. Castalia cung cung cấp sẵn các thành phần tương ứng với mô hình thực tế. Các thành phần này còn được gọi là module có khả năng lập trình bằng OMNET++, cũng như hỗ trợ giao diện đồ họa với nhiều thư viện có khả năng như mô phỏng, biên dịch, …
Castalia có các mô hình kênh và radio tiên tiến cho phép nhà khoa học phát triển và nghiên cứu nhiều mô hình mạng WSN khác nhau, cũng như cho phép thực hiện một giao thức MAC với nhiều tham số khác nhau và linh hoạt trong việc mô phỏng. Castalia cung cấp đầy đủ để mô phỏng cả lớp vật lý của module radio và module radio. Đồng thời, nó hỗ trợ bộ điều khiển vô tuyến CC2420, là bộ điều khiển vô tuyến có tiêu thụ năng lượng thấp và tiên tiến hiện nay. Kịch bản mô phỏng cài đặt trong file omnetpp.ini. Trong file này, kích thước mạng, tốc độ, vị trí, thời gian được định nghĩa. Ví dụ như minh họa sau.
Qua đây, chúng ta thấy rằng, kịch bản mô phỏng được thực hiện trong thời gian là 100s. Trong mạng sẽ được đặt 3 nút mạng với không gian đặt mạng này là 200x200 m.
Hình 3.1. Minh họa code của file omnetpp.ini
Sau khi thực hiện việc cài đặt Castalia trên hệ điều hành Linux, chúng ta có thể lập trình trên giao diện đồ họa. Castalia cung cấp nhiều thư viện, sourcecode để chúng ta phát triển, cũng như công cụ lấy kết quả đầu ra.
Hình 3.2. Minh họa giao diện lập trình trên Castalia
3.3. Mô phỏng giao thức S-MAC và T-MAC trên Castalia
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).