Thuật toán CSMA/CA

Một phần của tài liệu Đánh giá và so sánh hiệu suất giao thức tầng MAC theo chuẩn IEEE802 11, IEEE802 15 4 và IEEE802 15 3 (Trang 48 - 52)

Thuật toán CSMA/CA sẽ được sử dụng trước khi truyền dữ liệu hoặc truyền các khung lệnh MAC trong CAP. Thuật toán CSMA/CA sẽ không sử

dụng để truyền các khung Beacon, khung báo nhận, hoặc các khung dữ liệu truyền trong CFP.

Nếu các Beacon được sử dụng trong PAN, lớp con MAC sẽ sử dụng slotted CSMA/CA để truyền trong CAP, ngược lại MAC sẽ sử dụng unslotted CSMA/CA. Trong cả hai trường hợp, thuật toán sử dụng đơn vị là chu kì backoff, ở đây một đơn vị chu kỳ backoff sẽ bằng aUnitBackoffPeriod symbol (giá trị mặc định là 20 symbol).

Trong slotted CSMA/CA giới hạn chu kỳ backoff của mỗi thiết bị trong PAN sẽ được sắp thẳng hàng với giới hạn khe của siêu khung của PAN Coordinator. Thời điểm bắt đầu của chu kỳ backoff đầu tiên của mỗi thiết bị được sắp thẳng hàng với thời điểm bắt đầu của truyền Beacon.

Mỗi thiết bị duy trì ba giá trị cho mỗi lần truyền:

- NB là lượng thời gian kỹ thuật CSMA/CA được yêu cầu để rút lui trong khi đang cố gắng truyền. Giá trị này sẽ được khởi tạo là 0 trước khi thử truyền đợt mới.

- CW là kích thước cửa sổ tranh chấp, định nghĩa số lượng chu kỳ backoff cần thiết để làm sạch kênh một cách chủ động trước khi việc truyền được thực hiện. Giá trị này sẽ được khởi tạo là 2 trước mỗi lần thử truyền và sẽ được khởi tạo lại là 2 mỗi lần kênh truyền được quyết định là bận. CW chỉ sử dụng cho slotted CSMA/CA

- BE là số mũ của backoff

Trong hệ thống unslotted CSMA/CA hoặc slotted CSMA/CA, nếu

macBattLifeExt sẽ đặt giá trị là FALSE thì BE sẽ được khởi tạo giá trị là macMinBE. Trong slotted CSMA/CA, nếu macBattLifeExt có giá trị là TRUE

thì BE sẽ nhận giá trị là min(2, macMinBE)

Khi sử dụng slotted CSMA/CA, MAC sẽ khởi tạo NB, CW và BE và xác định giới hạn của chu kỳ backoff tiếp theo (bƣớc 1). Với unslotted CSMA/CA, MAC sẽ khởi tạo NB và BE, sau đó thực hiện bước 2. MAC sẽ làm trễ trong một khoảng ngẫu nhiên của chu kỳ backoff trong khoảng từ 0 đến 2BE -1 (bƣớc

2) sau đó yêu cầu lớp vật lý thực hiện CCA (bƣớc 3). Với hệ thống slotted

CSMA/CA, CCA sẽ bắt đầu trong giới hạn của chu kỳ backoff, còn với unslotted CSMA/CA, CCA sẽ bắt đầu ngay lập tức.

Trong slotted CSMA/CA, nếu trường con BLE (Battery Life Extension) đặt là 0 thì lớp con MAC sẽ đảm bảo rằng sau thủ tục backoff ngẫu nhiên, hoạt động còn lại của CSMA/CA được đảm bảo và toàn bộ việc truyền sẽ được thực hiện trước khi kết thúc CAP. Nếu số lượng chu kỳ backoff lớn hơn chu kỳ

backoff còn lại trong CAP, thì lớp con MAC sẽ tạm dừng việc đếm lùi backoff lúc kết thúc CAP và bắt đầu lại khi bắt đầu CAP trong siêu khung tiếp theo.

Nếu số chu kỳ backoff nhỏ hơn hoặc bằng số chu kỳ backoff còn lại trong CAP thì MAC sẽ áp dụng các độ trễ backoff của nó và tính toán xem khi nào nó có thể được xử lý. Lớp con MAC sẽ được xử lý các bước còn lại của thuật toán nếu việc truyền khung và báo nhận được hoàn thành trước khi kết thúc CAP. Khi được xử lý nó sẽ yêu cầu tầng vật lý thực hiện CCA trong siêu khung hiện tại, nếu không được xử lý nó sẽ đợi cho đến khi bắt đầu CAP trong siêu khung tiếp theo và lặp lại việc tính toán.

Nếu trường con BLE được đặt giá trị là 1 thì tầng con MAC sẽ đảm bảo rằng sau thủ tục backoff ngẫu nhiên, hoạt động còn lại của CSMA/CA sẽ được đảm bảo và toàn bộ việc truyền sẽ được thực hiện trước khi kết thúc CAP. Việc đếm ngược backoff sẽ chỉ xảy ra trong 6 chu kỳ backoff đầy đủ đầu tiên sau khi kết thúc chu kỳ IFS của Beacon. Tầng con MAC sẽ được xử lý các bước còn lại của thuật toán nếu việc truyền các khung và các báo nhận được hoàn thành trước khi kết thúc CAP và việc truyền khung bắt đầu ở một trong 6 chu kỳ backoff đầu tiên sau chu kỳ IFS của Beacon. Khi được xử lý nó sẽ yêu cầu tầng vật lý thực hiện CCA trong siêu khung hiện tại, nếu không được xử lý nó sẽ đợi cho đến khi bắt đầu CAP trong siêu khung tiếp theo và lặp lại việc tính toán.

Nếu kênh được quyết định là bận (bƣớc 4), lớp con MAC sẽ tăng cả NB và BE lên 1 và đảm bảo rằng BE không lớn hơn aMaxBE. Trong slotted CSMA/CA, nó sẽ đặt lại CW bằng 2, nếu giá trị NB nhỏ hơn hoặc bằng

macMaxCSMABackoffs thì thuật toán quay về bước 2. Ngược lại nếu giá trị NB

lớn hơn thuật toán sẽ kết thúc với trạng thái lỗi truy cập kênh truyền.

Nếu kênh được quyết định là rỗi, lớp con MAC sẽ đảm bảo rằng cửa sổ tranh chấp phải rỗi trước khi bắt đầu truyền. Để thực hiện điều này, lớp con MAC sẽ giảm CW đi 1 sau đó quyết định xem khi nào thì nó bằng 0. Nếu nó khác 0 thuật toán quay về bước 3. Nếu nó bằng 0, MAC sẽ bắt đầu truyền khung trong giới hạn chu kỳ backoff tiếp theo.

Trong unslotted CSMA/CA, nếu kênh truyền được quyết định là rỗi thì MAC sẽ truyền ngay lập tức.

Hình 3.14: Thuật toán của slotted CSMA/CA và Unslotted CSMA/CA

Nhận xét: Ta thấy được rằng trong 802.15.4, sử dụng 2 kỹ thuật CSMA/CA khác nhau cho từng trường hợp cụ thể. Mặt khác kích thước cửa sổ tranh chấp được sử dụng trong 802.15.4 không tăng lên gấp đôi trong mỗi lấn tranh chấp không thành công (nó được gán là 2) như trong 802.11. Các trạm trong 802.15.4 không phải đợi một khoảng DIFS trước khi truy cập kênh truyền vì trong quá trình thực hiện tranh cháp truy cập đường truyền các trạm đã tự làm trễ một khoảng thời gian ngẫu nhiên từ (0, 2BE

-1). 802.15.4 coi trọng việc thiết lập chế độ làm việc (tiết kiệm năng lượng hay không ) để đưa ra giao thức truy cập môi trường truyền phù hợp.

Một phần của tài liệu Đánh giá và so sánh hiệu suất giao thức tầng MAC theo chuẩn IEEE802 11, IEEE802 15 4 và IEEE802 15 3 (Trang 48 - 52)