LMAC (Lightweight MAC)

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 61 - 67)

Giao thức LMAC được trình bày tại [6] có mục đích là tối thiểu hóa một số bộ ngắt mạch thu phát để tạo khoảng thời gian ngủ cho các nút cảm biến thích nghi với số lượng lớn lưu lượng dữ liệu. Trong suốt khe thời gian của nó, một nút sẽ truyền thông điệp gồm 2 phần là phần thông điệp điều khiển (Control Message - CM) và phần thông điệp dữ liệu (Data Message - DM). Giữa CM và DM là một khoảng nhỏ cho phép lớp MAC xử lý thông điệp vừa nhận được. Hình dưới dây minh họa khe thời gian LMAC.

Hình 2.11. Khe thời gian LMAC

Lưu ý rằng phần DM không có chiều dài cố định, thậm chí sẽ bỏ qua khi không có dữ liệu nào để truyền. LMAC là giao thức lập lịch. Khi một nút không yêu cầu kết nối thì nó sẽ chuyển sang chế độ chờ (standby) để tiết kiệm năng lượng. Giao thức MAC dựa trên lập lịch có ưu điểm là các nút không bao giờ tiêu tốn năng lượng cho bộ thu phát khi không cần thiết. Mỗi nút khi hoạt động sẽ có rất ít xung đột.

Khung và khe thời gian:

Trong giao thức LMAC thì thời gian được chia thành các khe và số khe được nhóm lại thành một khung. Mỗi khung có chiều dài cố định là số khe thời gian của nó. Số khe thời gian trong một khung nên thích hợp với dự tính của nút mạng hoặc theo yêu cầu của hệ thống. Nguyên tắc lập trình của LMAC rất

đơn giản đó là trong một khung mỗi nút truyền dữ liệu trong khe thời gian của nó. Khi một nút có dữ liệu để truyền, nó sẽ đợi đến khe thời gian tiếp theo của nó thì nó sẽ đánh địa chỉ cho các nút hàng xóm của nó và truyền các gói dữ liệu mà không gây xung đột hay phải có can thiệp khác để truyền.

Để có thể nhận được thông điệp thì các nút còn lại luôn luôn phải lắng nghe tại thời điểm bắt đầu khe thời gian của chúng để tìm hiểu xem liệu chúng có được đánh địa chỉ bằng định danh hay địa chỉ quảng bá. Trong giao thức LMAC, các nút có thể nhận được nhiều thông điệp trên một khung thời gain. Nhưng chỉ cho phép truyền một lần trong một khung.

Thông điệp điều khiển

Thông điệp CM có kích thước cố định và được sử dụng cho vài mục đích. Trong một mạng, thông điệp điều khiển mang ID của bộ điều khiển khe thời gian, nó cho biết khoảng cách đo bằng đơn vị chặng từ nút đó tới cổng của nó cho định tuyến đơn tới một cổng. Nó cho biết địa chỉ nút đích và biết chiều dài của đơn vị dữ liệu. Thông điệp điều khiển có cấu trúc gồm các trường thông tin và kich thước byte như trong bảng 2.1.

Bảng 2.1. Bảng cấu trúc thông điệp điều khiển của LMAC

Trong một khung, dữ liệu điều khiển sẽ được sử dụng để duy trì việc đồng bộ giữa các nút. Cho nên, các nút cũng phải truyền thông điệp điều khiển theo đúng số thứ tự khe thời gian của chúng. Việc truyền dữ liệu điều khiển là

thời điểm thận trọng, mặc dù chúng ta không cho rằng các nút đó đếm thời gian với sự chính xác cao. Tất cả các nút hàng xóm sẽ đặt nỗ lực vào việc nhận thông điệp điều khiển. Khi một nút không được đánh địa chỉ trong thông điệp hoặc thông điệp không được đánh địa chỉ như tất cả các thông điệp khác, nó sẽ tắt nguồn điện để dành thời gian thức tiếp theo. Sau khi hoàn thành việc truyền thông điệp, cả hai nguồn truyền và nhận sẽ tắt đơn vị chức năng truyền. Nếu nút được đánh địa chỉ, nó sẽ nghe đơn vị dữ liệu dù dữ liệu có thể không được đưa vào phần còn lại của khe thời gian. Sau khi hoàn thành việc truyền thông điệp, cả hai nguồn truyền và nhận sẽ tắt đơn vị có chức năng truyền.

Trong giao thức LMAC, mỗi nút chỉ được truyền một thông điệp trong một khung truyền. Hiện tại, giả sử rằng kích thước lớn nhất của đơn vị dữ liệu là 256 bytes, giá trị này sẽ dễ dàng được truyền qua mạng cảm biến không dây. Cần lưu ý rằng một nút có thể nhận được nhiều thông điệp từ nguồn khác nhau để tránh độ trễ cao.

Thông điệp dữ liệu

Phần thông diệp dữ liệu chứa dữ liệu gửi. Phần này không cố định, có chiều dài lớn nhất là 256byte. Nút được đánh địa chỉ sẽ thu thập dữ liệu đến tận khi hoàn thành việc truyền dữ liệu và chuyển mạch sang trạng thái chờ trong khe thời gian của nó.

Thuật toán tìm kiếm khe thời gian

Vấn đề ở đây của LMAC đó là giải quyết việc tìm kiếm khe thời gian rảnh để đảm bảo thực hiện truyền thông. Khi một nút mới tham gia vào mạng, nó cần tìm ra khe thời gian để điều khiển, trước khi nó bắt đầu gửi dữ liệu và tham gia vào mạng. Phương thức tìm kiếm này có thể được thực hiện hoàn toàn cục bộ và phân tán.

Đầu tiên, một nút xác định các khe thời gian đã được dùng bởi các nút hàng xóm của nó. Các khe thời gian không thuộc các khe như trên là khe thời gian “rảnh rỗi”. Thuật toán phân tán sẽ thực hiện như sau: Khi một nút tìm thấy hàng xóm đang truyền dữ liệu trong khe thời gian, nó thêm ‘1’ vào vector bit của các khe đang bị chiếm tại vị trí tương ứng với khe thời gian đó. Ngược lại, các khe thời gian khác là bit 0. Để có được một danh sách các khe thời gian rảnh rỗi, một nút đơn giản chỉ cần “OR” với tất cả các bit của khe bị chiếm được truyền trong khung. Bit 0 trong kết quả nghĩa là khe thời gian được tự do trong 2 chặng và bit 1 là kết quả cho thấy khe thời gian bị chiếm bới hàng xóm

đầu tiên hoặc thứ 2. Điều này để chắc chắn rằng, một khe thời gian chỉ được sử dụng ít nhất sau 3 chặng. Mô tả thuật toán được minh họa như đoạn mã giả phía dưới.

Khi không tìm thấy khe thời gian rảnh rỗi nào thì các nút duy trì trạng thái khởi tạo để theo dõi các khung nhằm tìm ra khe thời gian rảnh rỗi. Trong trạng thái này, các kỹ thuật tiết kiệm năng lượng được dùng để lấy mẫu kênh vô tuyến không dây.

Hình 2.12. Minh họa thuật toán phân tán để tìm kiếm khe thời gian rảnh rỗi của giao thức LMAC

Giả sử trong hình 2.12 thì nút có dấu “?” là nút mới trong mạng. Nó thực hiện việc nghe toàn bộ khung và khám phá ra các khe chưa dùng là nút 1,2,7. Nên nó có khể chọn một trong ba khe đó.

Giải quyết xung đột

Việc giải quyết xung đột được xử lý trong giao thức LMAC đó khi 2 hay nhiều nút cùng chọn một khe thời gian để điều khiển. Điều này xảy ra khi thiết lập mạng hoặc mô hình mạng bị thay đổi do nút di chuyển. Các nút gây ra xung đột thì không thể phát hiện xung đột do chúng gây ra. Chúng cần được thông báo bởi các nút hàng xóm, đơn giản vì khe thời gian bị chúng sở hữu thông báo với mạng là chúng tìm thấy xung đột các khe thời gian trong khung. Khi một nút được thông báo là CM của nó và có thể là DM của nó bị xung đột thì nó sẽ

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

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.

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 61 - 67)

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

(83 trang)