Giao thức S-MAC

Một phần của tài liệu Nghiên cứu, đánh giá hiệu suất một số phương pháp điều khiển truy nhập BAC trong mô phỏng máy tính và điều biến. (Trang 51)

S-MAC được giới thiệu bởi cỏc tỏc giả: Wei Ye, Jonh Heidermann, Deborah Estrin tại Hội nghị INFOCOM lần thứ 21, năm 2002. Được xõy dựng trờn nền tảng của cỏc giao thức cạnh tranh như 802.11, S-Mac cố gắng kế thừa sự linh hoạt, tớnh khả biến của giao thức trờn nền cạnh tranh trong khi cải tiến tớnh hiệu quả sử dụng năng lượng trong mạng đa bước nhảy. S-MAC cố gắng giảm bớt tiờu thụ năng lượng từ tất cả cỏc nguồn được xỏc định là nguyờn nhõn gõy tiờu hao năng lượng, đú là: nghe khi rỗi (idle listening), xung đột (collision), nghe thừa (overhearing) và xử lý thụng tin điều khiển

(overhead). Để đạt được mục đớch như thiết kế, S-MAC được thiết kế gồm cú ba vấn đề chớnh: thực hiện chu kỳ thức - ngủ; trỏnh xung đột và nghe thừa; xử lý thụng điệp.

4.1.1. Thực hiện chu kỳ thức/ngủ

Trong những ứng dụng của mạng cảm biến, nỳt cảm biến thường ở trạng thỏi nhàn rỗi trong phần lớn thời gian nếu khụng xuất hiện sự kiện cảm biến. Thực tế tốc độ trao đổi dữ liệu rất thấp do vậy khụng cần thiết để cỏc nỳt cảm biến ở trạng thỏi thức trong tất cả thời gian. S-MAC được thiết kế để giảm bớt thời gian thức bằng cỏch để cho nỳt cảm biến định kỳ chuyển sang trạng thỏi ngủ. Vớ dụ, trong chu kỳ một giõy, nỳt cảm biến ở trạng thỏi ngủ nửa giõy và ở trạng thỏi nghe ở nửa giõy cũn lại thỡ chu trỡnh hoạt động giảm bớt tới 50%. Như vậy cú thể tiết kiệm được 50% năng lượng.

4.1.1.1. Lược đồ cơ bản

Mỗi nỳt cảm biển chuyển vào trạng thỏi “ngủ” trong một khoảng thời gian, sau đú tỉnh dậy và nghe xem liệu cú nỳt nào muốn “núi chuyện” với nú. Trong thời gian ngủ, nỳt cảm biến tắt bộ phận thu phỏt vụ tuyến và đặt thời gian để quay về trạng thỏi thức.

Khoảng thời gian cho việc thức và ngủ cú thể được lựa chọn theo những ứng dụng khỏc nhau.

Hỡnh 4.1. Lược đồ S-MAC

Lược đồ trờn yờu cầu cú định kỳ sự đồng bộ giữa cỏc nỳt cảm biến trong vựng trỏnh sai lệch thời gian. Ở đõy cú thể sử dụng hai kỹ thuật để đồng bộ thời gian: Thứ nhất, chỳng trao đổi cỏc thụng số thời gian qua cỏc gúi tin

timestamps, thời gian được đồng bộ là tương đối. Thứ hai, tăng khoảng thời gian nghe lờn đỏng kể so với thời gian bị sai lệch do lỗi. Vớ dụ, khoảng thời gian nghe là 0.5s gấp 105 lần thời gian lệch. So sỏnh với lược đồ TDMA với khe thời gian rất nhỏ, yờu cầu điều kiện đồng bộ giữa cỏc nỳt lõn cận khụng khắt khe bằng. Tất cả cỏc nỳt cảm biến đều tự do lập lịch cho mỡnh chu kỳ thức/ngủ. Tuy nhiờn, để giảm bớt phải xử lý những gúi tin điều khiển, tốt hơn là để cho cỏc nỳt trong vựng đồng bộ cựng nhau. Cú nghĩa là chỳng thức cựng lỳc và chuyển sang trạng thỏi ngủ cựng lỳc. Nhưng cũng cần chỳ ý trong một mạng đa bước nhảy khụng phải tất cả cỏc nỳt lõn cận cú thể đồng bộ húa cựng nhau. Hai nỳt lõn cận A và B cú thể cú lịch khỏc nhau vỡ chỳng tiến hành đồng bộ với những nỳt khỏc nhau, C và D (Hỡnh 4.2).

Hỡnh 4.2. Đồng bộ giữa cỏc nỳt. Hai nỳt lõn cận A, B cú lịch khỏc nhau vỡ A đồng bộ với C, B đồng bộ với D

Cỏc nỳt cảm biến trao đổi với nhau thụng tin lịch làm việc của chỳng bằng cỏch phỏt quảng bỏ cho tất cả cỏc nỳt lõn cận hiện thời. Điều này bảo đảm rằng tất cả cỏc nỳt trong vựng vẫn cú thể núi chuyện được với nhau dự chỳng cú lịch làm việc khỏc nhau. Vớ dụ trong Hỡnh 4.2, nếu nỳt A muốn núi chuyện với nỳt B, nú chỉ cần đợi cho đến khi B ở trạng thỏi thức. Nếu cú nhiều nỳt trong vựng lõn cận muốn núi chuyện với một nỳt, thỡ chỳng cần tiến

hành cạnh tranh chiếm đường truyền khi nỳt nhận ở trạng thỏi thức. Cơ chế cạnh tranh dành quyền truy nhập cũng giống chuẩn IEEE 802.11, sử dụng gúi tin RTS (Request to Send) và CTS (Clear to Send). Nỳt nào gửi gúi tin RTS ra trước sẽ giành quyền truy nhập và nỳt nhận sẽ trả lời với một gúi CTS. Sau đú chỳng bắt đầu sự truyền dữ liệu, lỳc này chỳng khụng tuõn theo lịch làm việc trước đú của chỳng cho đến khi chỳng kết thỳc truyền dữ liệu.

Đặc trưng khỏc của lược đồ trờn là nú hỡnh thành những nỳt vào trong tụpụ phẳng. Cỏc nỳt cảm biến trong vựng lõn cận tự do núi chuyện với nhau bất kể lịch làm việc nào mà chỳng cú. Cỏc nỳt được đồng bộ tự hỡnh thành một nhúm ảo. Lược đồ này khỏ dễ để làm thớch nghi đối với mạng cú thay đổi tụpụ.

Mặt trỏi của lược đồ là sự gia tăng độ trễ do duy trỡ chu kỳ ngủ (sleep)

của mỗi nỳt. Hơn nữa, độ trễ cú thể tớch lũy qua mỗi chặng (hop), nờn yờu cầu giới hạn độ trễ của ứng dụng tạo ra giới hạn thời gian ngủ trong chu kỳ làm việc của cỏc nỳt cảm biến.

4.1.1.2. Tiến trỡnh lựa chọn và duy trỡ lịch làm việc

Trước khi mỗi nỳt bắt đầu chu kỳ thức/ngủ, nú cần phải chọn một lịch biểu làm việc (khi nào thức, khi nào ngủ) và trao đổi lịch này với cỏc nỳt lõn cận. Mỗi nỳt duy trỡ một bảng lưu giữ tất cả cỏc thời gian biểu của cỏc nỳt lõn cận mà nú biết. Quy trỡnh chọn thời gian biểu của mỗi nỳt như sau:

Bước 1, đầu tiờn nỳt cảm biến nghe trong một khoảng thời gian nhất định. Nếu nú khụng nghe thấy thời gian biểu từ nỳt khỏc, nú chọn ngẫu nhiờn một khoảng thời gian để bắt đầu ngủ và tức thời quảng bỏ thời gian biểu của nú trong thụng điệp SYNC, thụng điệp này thụng bỏo rằng nú sẽ ngủ sau khoảng thời gian t giõy. Chỳng ta gọi một nỳt trờn là nỳt đồng bộ (synchronizer), nú đó tự chọn cho mỡnh một thời gian biểu độc lập và những nỳt khỏc sẽ phải đồng bộ theo nú.

Bước 2, nếu một nỳt nhận được một thời gian biểu của một nỳt lõn cận trước khi tự chọn cho mỡnh thỡ nú sẽ lấy thời gian biểu đú thiết lập thời gian biểu cho mỡnh. Ta gọi nỳt như vậy là nỳt đồng bộ theo (follower). Sau đú nú

đợi một khoảng thời gian ngẫu nhiờn td và phỏt quảng bỏ lại thời gian biểu này, và thụng bỏo rằng nú sẽ ngủ sau t - td giõy nữa. Sở dĩ phải đợi ngẫu nhiờn khoảng thời gian td để trỏnh xung đột, vỡ nhiều khả năng cú nhiều nỳt đồng bộ theo một nỳt, khi quảng bỏ lại thời gian biểu của mỡnh cựng một thời điểm sẽ xảy ra xung đột.

Bước 3, nếu một nỳt nhận được một thời gian biểu khỏc sau khi nú lựa chọn và quảng bỏ thời gian biểu của mỡnh, nú sẽ chấp nhận cả hai (Vớ dụ, nú sẽ lập lịch cho nú tỉnh dậy tại những thời điểm trong cả hai thời gian biểu, của chớnh nú và của nỳt lõn cận). Nú quảng bỏ thời gian biểu của nú trước khi chuyển sang trạng thỏi ngủ.

Rất hiếm khi xảy ra cỏc nỳt phải duy trỡ nhiều thời gian biểu. Cỏc nỳt sẽ cố gắng chọn một thời gian biểu đó tồn tại trước khi tự chọn cho mỡnh một thời gian biểu độc lập. Mặt khỏc, xảy ra trường hợp cỏc nỳt lõn cận thất bại trong việc khỏm phỏ, phỏt hiện ra nhau tại thời điểm ban đầu do xung đột khi quảng bỏ thời gian biểu, thỡ chỳng vẫn cú thể tỡm thấy nhau trong chu kỳ kế tiếp.

Để minh họa giải thuật này, hóy xem xột một mạng gồm cỏc nỳt cú thể “nghe” thấy lẫn nhau. Đồng hồ hệ thống của một nỳt sẽ khởi động tớnh giờ trước và sự quảng bỏ sẽ đồng bộ tất cả trong thời gian biểu của nú. Nếu thay vỡ hai nỳt độc lập đăng ký thời gian biểu (vỡ chỳng khụng thể nghe thấy lẫn nhau, hoặc vỡ chỳng tỡnh cờ truyền ở tại thời điểm gần nhau), những nỳt trờn nằm ở ranh giới giữa thời gian biểu sẽ chấp nhận cả hai. Với cỏch này, một nỳt chỉ cần gửi một lần cho một gúi tin quảng bỏ. Điều bất lợi là những nỳt trờn cú ớt thời gian hơn để ngủ và do đú sẽ tiờu thụ nhiều năng lượng hơn những nỳt khỏc.

Một tựy chọn khỏc để cho những nỳt trờn vựng biờn chấp nhận duy nhất một thời gian biểu là chấp nhận cỏi đến trước tiờn. Khi nú biết thời gian biểu khỏc mà một số nỳt lõn cận của nú theo, nú cú thể vẫn cũn núi chuyện với chỳng. Tuy nhiờn, với những gúi quảng bỏ, nú cần gửi hai lần với hai thời gian biểu khỏc nhau. Ưu điểm của phương phỏp này là cỏc nỳt nằm trong vựng biờn sẽ cú cựng chu kỳ nghe ngủ với những nỳt khỏc.

4.1.1.3. Thực hiện đồng bộ

Lược đồ thức/ngủ yờu cầu sự đồng bộ giữa những nỳt trong vựng lõn cận. Việc cỏc nỳt trong vựng lõn cận định kỳ cập nhật lẫn nhau thời gian biểu của chỳng là cần thiết để ngăn ngừa sự sai lệch thời điểm của chu kỳ nghe/ngủ.

Việc cập nhật thời gian biểu được thực hiện bằng trao đổi gúi tin đồng bộ SYNC. Gúi tin SYNC rất ngắn, và bao gồm địa chỉ của nỳt gửi và thời điểm chuyển sang trạng thỏi ngủ tiếp theo của nú. Thời điểm ngủ tiếp theo liờn quan đến thời điểm mà nơi gửi kết thỳc truyền gúi tin đồng bộ SYNC, cũng xấp xỉ khi nỳt nhận nhận được gúi tin (khi độ trễ truyền ngắn). Những nỳt nhận sẽ điều chỉnh đồng hồ của chỳng ngay sau khi nhận được gúi tin đồng bộ. Nỳt cảm biến sẽ chuyển sang trạng thỏi ngủ khi đồng hồ của nú kết thỳc tớnh giờ, bỏo đến thời điểm ngủ.

Để một nỳt nhận được cả những gúi đồng bộ lẫn những gúi dữ liệu, chỳng ta chia khoảng thức (active time) của nú thành hai phần. Phần đầu tiờn để nhận những gúi tin đồng bộ, phần hai để nhận những gúi RTS (Hỡnh 4.3). Mỗi phần được chia tiếp thành nhiều khe thời gian cho những nỳt gửi để thực hiện cảm nhận súng mang. Vớ dụ, nếu một nỳt gửi muốn gửi một gúi tin đồng bộ thỡ nú khởi động cảm nhận súng mang khi nỳt nhận bắt đầu nghe. Nú ngẫu nhiờn lựa chọn một khe thời gian để kết thỳc cảm nhận súng mang. Nếu nú khụng phỏt hiện ra bất kỳ sự truyền nào vào khoảng cuối khe, thỡ nú chiếm được đường truyền và bắt đầu gửi gúi tin đồng bộ của nú ở tại thời điểm ấy. Việc thực hiện truyền gúi dữ liệu cũng được thực hiện tương tự.

Hỡnh 4.3. Quan hệ định thời giữa nỳt nhận và cỏc nỳt gửi.

Hỡnh 4.3 cũng thể hiện mối quan hệ định thời của ba trường hợp cú thể khi một nỳt gửi thực hiện truyền tới một nỳt nhận. CS là cảm ứng súng mang. Trong lược đồ, Nỳt gửi 1 chỉ gửi một gúi tin đồng bộ SYNC. Nỳt gửi 2 chỉ muốn gửi dữ liệu. Nỳt gửi 3 gửi một gúi tin đồng bộ và một gúi tin RTS.

Mỗi nỳt định kỳ quảng bỏ những gúi tin đồng bộ tới cỏc lõn cận của nú kể cả khi nú khụng cú nỳt đồng bộ theo. Điều này cho phộp một nỳt mới gia nhập nhúm lõn cận đó hỡnh thành trước đú. Nỳt mới thực hiện thủ tục để chọn một thời gian biểu cú sẵn làm thời gian biểu của nú. Quóng thời gian nghe đủ dài để nú cú khả năng học và theo một thời gian biểu cú sẵn trước khi nú tự chọn cho mỡnh một thời gian biểu độc lập.

4.1.2. Trỏnh xung đột và nghe thừa

Trỏnh xung đột là một nhiệm vụ cơ bản của giao thức MAC. S-MAC sử dụng một lược đồ trỏnh xung đột trờn nền cạnh tranh. Khi một nỳt phỏt đi một gúi tin, gúi tin đú được thu bởi tất cả cỏc nỳt lõn cận của nú mặc dự chỉ

một trong số chỳng là nỳt nhận, đú chớnh là nghe thừa. Phải nghe thừa làm cho giao thức MAC trờn nền cạnh tranh kộm hiệu quả về tiết kiệm năng lượng hơn so với những giao thức TDMA, vậy nờn nú cần phải trỏnh.

4.1.2.1. Trỏnh xung đột

Khi nhiều nỳt cú nhu cầu gửi số liệu vào cựng một thời điểm, chỳng cần cạnh tranh để quyết định một nỳt được quyền gửi (chiếm đường truyền). Trong số những giao thức cạnh tranh, 802.11 thực hiện rất tốt việc trỏnh xung đột. S-MAC sử dụng cỏc kỹ thuật như chuẩn 802.11, bao gồm cảm nhận súng mang vật lý, cảm nhận súng mang ảo lẫn thực hiện trao đổi RTS/CTS.

Cú một trường độ dài phỏt (duration field) trong mỗi gúi tin được truyền đi để chỉ rằng việc truyền này sẽ duy trỡ trong thời gian bao lõu. Như vậy nếu một nỳt nhận được một gúi tin dành cho nỳt khỏc, thỡ nú biết việc nú phải giữ yờn lặng bao lõu. Nỳt ghi giỏ trị này trong một biến gọi là vectơ thời gian chiếm giữ mạng (Network allocation Vector - NAV) và đặt một đồng hồ tớnh giờ cho nú. Vào mọi thời điểm khi đồng hồ NAV hoạt động, nỳt cảm biến tuần tự giảm giỏ trị của NAV cho đến khi nú về giỏ trị 0. Khi một nỳt cú dữ liệu để gửi, đầu tiờn nú kiểm tra đồng hồ NAV. Nếu giỏ trị của NAV khỏc 0, thỡ nỳt xỏc định rằng đường truyền bận và sẽ khụng thực hiện phỏt dữ liệu. Kỹ thuật này được gọi là cảm nhận súng mang ảo (Vitual Carrier Sense).

Cảm nhận súng mang vật lý được thực hiện ở tại lớp vật lý bằng cỏch thực hiện nghe kờnh để truyền. Thời gian ngẫu nhiờn cho việc cảm nhận súng mang rất quan trọng cho viờc trỏnh xung đột. Đường truyền chỉ được xỏc định là rỗi nếu cả cảm nhận súng mang vật lý lẫn cảm nhận súng mang ảo đều xỏc định đường truyền rỗi.

Tất cả cỏc nỳt gửi thực hiện cảm nhận súng mang trước khi bắt đầu phỏt dữ liệu. Nếu một nỳt thất bại trong việc thăm dũ đường truyền, thỡ nú chuyển sang trạng thỏi ngủ và thức giấc tại thời điểm nỳt nhận ở trạng thỏi nghe và đường truyền rỗi trở lại. Những gúi tin quảng bỏ được gửi mà khụng sử dụng kỹ thuật RTS/CTS. Những gúi tin Unicast sẽ theo tuần tự RTS/CTS/Data/ACK giữa nỳt gửi và nỳt nhận.

4.1.2.2. Trỏnh nghe thừa

Ở chuẩn 802.11, mỗi nỳt duy trỡ trạng thỏi nghe cho việc truyền tới tất cả cỏc nỳt lõn cận của nú để thực hiện cú hiệu quả việc cảm nhận súng mang ảo. Kết quả là mỗi nỳt phải nghe thừa nhiều gúi khụng gửi cho nú. Đõy là một trong những nguyờn nhõn chớnh cho việc tiờu phớ năng lượng khụng cần thiết, đặc biệt khi mật độ nỳt lớn và lưu lượng mạng tăng.

S-MAC được thiết kế với mục tiờu cố gắng trỏnh nghe thừa bằng cỏch để cho những nỳt cú khả năng gõy nhiễu khụng tham gia vào quỏ trỡnh truyền phỏt dữ liệu, chuyển sang trạng thỏi ngủ sau khi chỳng nhận được một gúi RTS hoặc CTS. Khi những gúi dữ liệu luụn dài hơn gúi tin điều khiển, cỏch tiếp cận là ngăn cản cỏc nỳt lõn cận nghe thừa những gúi dữ liệu dài và sử dụng gúi tin ACK theo sau. Phần tiếp theo sẽ mụ tả cỏch truyền cú hiệu quả một gúi tin dài kết hợp trỏnh nghe thừa.

Hỡnh 4.4. Thực hiện trỏnh nghe thừa. Nỳt nào nờn chuyển tới trạng thỏi ngủ.

Trong Hỡnh 4.4, nỳt A, B, C, D, E, Và F hỡnh thành một mạng đa bước nhảy mà từng nỳt chỉ cú thể nghe thụng tin truyền từ lõn cận hiện thời của nú. Giả thiết nỳt A đang truyền một gúi dữ liệu tới nỳt B. Cõu hỏi đặt ra những nỳt nào phải chuyển sang trạng thỏi ngủ.

Xung đột dễ xảy ra ở nỳt nhận, nỳt D cần phải ngủ vỡ sự truyền của nú ảnh hưởng tới sự tiếp nhận tớn hiệu của B. Cũng dễ để nhận ra nỳt E và nỳt F khụng phỏt sinh nhiễu, vỡ vậy chỳng khụng cần phải ngủ. Nỳt C cú nờn đi ngủ hay khụng? C là cỏch hai bước tới B, và sự truyền của nú khụng gõy nhiễu tới sự tiếp nhận của B, như vậy nú tự do được phộp truyền tới lõn cận của nú, vớ dụ như E. Tuy nhiờn, C khụng thể nhận bất kỳ sự trả lời nào từ E, vỡ sự truyền

Một phần của tài liệu Nghiên cứu, đánh giá hiệu suất một số phương pháp điều khiển truy nhập BAC trong mô phỏng máy tính và điều biến. (Trang 51)