Lớp MAC phải đảm bảo một vài nhiệm vụ sau. Thứ nhất, nó phải điều khiển môi trường truy cập, nhưng nó cũng có thể cung cấp hỗ trợ cho roaming, chứng thực và bảo toàn năng lượng. Dịch vụ cơ bản được cung cấp bởi tầng MAC là dịch vụ thiếu đồng bộ dữ liệu bắt buộc và một dịch vụ khoảng thời gian giới hạn tùy ý. Trong khi 802.11 chỉ cung cấp dịch vụ không đồng bộ trong chế độ mạng đặc biệt, cả hai kiểu dịch vụ có thể được cung cấp sử dụng cơ sở hạ tầng mạng cùng với điểm truy cập kết hợp truy cập môi trường. Dịch vụ không đồng bộ hỗ trợ quảng bá và truyền đa gói, và
thay đổi gói là được dựa vào chế độ cố gắng tốt nhất. Ví dụ như không có giới hạn trễ trong truyền thông.
Theo cơ chế truy cập cơ bản thứ ba được mô tả trong IEEE 802.11: phương thức cơ bản bắt buộc dựa vào phiên bản của CSMA/CA, phương thức tùy ý ngăn chặn vấn đề trạm cuối ẩn và cuối cùng phương thức thăm dò tranh giành tự do cho dịch vụ khoảng thời gian giới hạn. Phương thức thứ nhất cũng tổng kết như chức năng kết hợp phân tán (DCF), phương thức thứ ba được gọi là chức năng kết hợp điểm (PCF). DCF chỉ đưa ra dịch vụ thiếu đồng bộ trong khi PCF đã ra cả hai dịch vụ thiếu đồng bộ và khoảng thời gian giới hạn nhưng cần đến điểm truy cập để điều khiển môi trường truy cập và ngăn chặn tranh giành. Cơ chế MAC cũng được gọi là điều khiển môi trường không dây truy cập thiết lập phân tán (DFWMAC).
Cho mọi phương thức truy cập, vài tham số để điều khiển thòi gian đợi trước môi trường truy cập là quan trọng. Hình 3.15 mô tả ba tham số khác nhau định nghĩa quyền ưu tiên của môi trường truy cập. Môi trường như được mô tả có thể bận hoặc rỗi (được phát hiện bởi CCA). Nếu môi trường bận điều này có thể trong khung dữ liệu đến hoặc khung điều khiển khác. Trong suốt giai đoạn tranh giành vài nút cố gắng truy cập môi trường.
Khoảng trống trong khung DCF (DISF): tham số này biểu diễn thời gian đợi và do đó quyền ưu tiên môi trường truy cập nhỏ nhất. Thời gian đợi này sử dụng cho dịch vụ thiếu đồng bộ trong giai đoạn tranh giành. Khoảng trống trong khung PCF (PIFS): Thời gian đợi giữa DIFS và SIFS (và do đó quyền ưu tiên trung bình) được dùng trong dịch vụ thời gian giới hạn, đó là điểm truy cập thăm dò các nút khác chỉ có đợi PIFS cho môi trường truy cập (xem chi tiết trong phần 3.2.2.3).
Khoảng trống ngắn trong khung (SIFS): thời gian đợi ngắn nhất cho môi trường truy cập (do đó quyền ưu tiên là cao nhất) được định nghĩa cho thông điệp điều khiển ngắn, như xác nhận gói dữ liệu hoạc đáp ứng thăm dò. Việc dùng tham số này sẽ được giải thích từ phần 3.2.2.1 đến 3.2.2.3.
DIFS DIFS
PIFS SIFS Medium
busy contention Next frame
3.2.2.1. DFWMAC-DCF cơ bản sử dụng CSMA/CA
Cơ chế (kỹ thuật) truy cập bắt buộc của IEE 802.11 được căn cứ trên truy cập đa hướng mang với tránh xung đột, là cơ chế truy cập ngẫu nhiên với đa hướng mang và tránh xung đột qua backoff ngẫu nhiên. Cơ chế CSMA/CA cơ bản mô tả trong hình 3.16 Nếu môi trường cảm giác rỗi trong một khoảng tối thiểu của DIFS (với sự trợ giúp của tín hiện CCA trong tầng vật lý), một nút có thể truy cập môi trường một lần. Điều này cho phép độ trễ truy cập ngắn dưới tải ánh sáng. Nhưng ngay lập tức và càng nhiều nút cố gắng truy cập môi trường, cơ chế thêm vào là cần thiết.
Nếu môi trường bận, nút phải đợi trong khoảng thời gian của DIFS, bắt đầu giai đoạn tranh giành tiếp sau. Mỗi nút bây giờ chọn thời gian backoff ngẫu nhiên trong cửa sổ tranh giành và thêm độ trễ môi trường truy cập cho lượng thời gian ngẫu nhiên này. Ngay khi mà nút nghe thấy kênh truyền bận, nó bỏ chu trình này và chờ cơ hội tiếp theo, ví dụ đến khi môi trường rỗi lần nữa tại DIFS tối thiểu. Nhưng nếu thời gian đợi được thêm vào ngẫu nhiên cho một nút quá lâu và môi trường vẫn rỗi, nút có thể truy cập môi trường ngay lập tức. Thời gian đợi thêm vào đo bằng số khe. Khe thời gian nhận được từ độ trễ truyền thông, độ trễ truyền bá môi trường và tham số phụ thuộc PHY khác.
Hiển nhiên, cơ chế CSMA/CA cơ bản không được vừa ý lắm. Tính độc lập của thời gian đợi tất cả cho truyền thông, mỗi nút có cùng cơ hội cho truyền dữ liệu trong chu trình tiếp theo. Để cung cấp hợp ý nhất, IEEE 802.11 thêm thiết bị bấm giờ backoff. Lẫn nữa mỗi nút lựa chọn một thời gian chờ ngẫu nhiên trong phạm vi của cửa sổ tranh giành. Nếu một trạm nào đó không có khả năng truy cập môi trường trong chu trình đầu tiên, nó sẽ dừng thiết bị bấm giờ backoff, đợi kênh truyền rỗi lần nữa cho DIFS và bắt
Medium busy
Next frame Direct access
if medium is
free ≥ DIFS Slot time
Contention window (randomize backoff mechanism)
t
DIFS DIFS
đầu đếm lại. ngay khi bộ đếm hết hạn, nút truy cập môi trường. Điều này có nghĩa là các trạm bị hoãn lại không lựa chọn thời gian backoff ngẫu nhiên nhưng tiếp tục đếm xuống. Do vậy, trạm chờ lâu hơn quá mức trung bình tiến hành làm mới trạm, trong đó chúng chỉ phải đợi phần còn lại của thiết bị bấm giờ backoff từ chu trình trước.
Hình 3.17 giải thích cơ chế truy cập cơ bản của IEEE 802.11 cho 5 trạm cố gắng truy cập để gửi một gói tại điểm được đánh dấu đúng giờ. Trạm 3 có yêu cầu trước tiên từ tầng cao hơn để gửi mộ gói, chò DIFS và truy cập môi trường, ví dụ gửi một gói. Trạm 1, trạm 2 và trạm 4 phải đợi tối thiểu đến khi môi trường rỗi lại sau DIFS trạm 3 phải dừng gửi. Bây giờ cả ba rạm chọn thời gian backoff trong của sổ tranh giành và bắt đầu đếm xuống thiết bị bấm giờ của chúng.
Hình 3.17 mô tả thời gian backoff ngẫu nhiên của trạm 1 như tổng của boe(thời gian backoff trôi qua) và bo1 (thời gian backoff còn lại). Tương tự như vậy với trạm 5. Trạm 2 có tổng thời gian backoff của chỉ boe và do đó được truy cập môi trường đầu tiên. Sau đó, không có thời gian backoff còn lại cho trạm 2 như mô tả. Thời gian
backoff của trạm 1 và trạm 3 dừng và trạm lưu lại thời gian backoff còn lại của chúng. Trong khi một trạm mới phải chọn thời gian backoff của nó từ trong cửa sổ tranh giành, hai trạm cũ có giá trị backoff nhỏ hơn sử dụng giá trị cũ.
Lúc này trạm 4 muốn gửi một gói như thế và do đó sau DIFS thời gian đợi, ba trạm cố gắng được truy cập. Nó có thể xảy ra bây giờ, như mô tả trong hình vẽ hai trạm
Medium not idle (frame, ack, etc) DIFS DIFS boe bor boe busy busy boe bor DIFS boe bor boe busy boe busy DIFS boe busy boe bor boe bor t busy
Packet arrival at MAC
boe Elabsed backoff time bor Resicual backoff time
Hình 3.17. Base DFWMAC-DCF with several competing sender
Station 4 Station 1
Station 2
Station 3
đó đụng độ có cùng thời gian backoff, không quan trọng còn lại hay lựa chọn mới. Kết quả này trong sự xung đột trên môi trường như mô tả. Ví dụ truyền khung bị phá hủy. Trạm 1 lựa thời gian backoff còn lại của nó một lần nữa. Trong chu trình cuối cùng mô tả trạm 1 cuối cùng được truy cập môi trường trong khi trạm 4 và trạm 3 phải đợi. Một xung đột nổ ra sự truyền lại với việc lựa chọn ngẫu nhiên mới của thời gian backoff.
Đến tận khi, cơ chế truy cập có vấn đề dưới mức nặng hoặc tải ánh sáng. Sự phụ thuộc và kích cỡ của cửa sổ tranh giành (CW), giá trị ngẫu nhiên có thể cũng đóng cùng hoặc do quá nhiều tranh giành, hoặc giá trị quá cao, do độ trễ không cần thiết. Vì thế, hệ thống cố gắng thêm vào (thích nghi) số trạm hiện thời cố gắng gửi.
Cửa sổ tranh giành bắt đầu với kích thước ví dụ CWmin=7. Mỗi thời gian tranh giành xảy ra, cho biết tải cao hơn trên môi trường, đôi cửa sổ tranh giành lên tới giới hạn ví dụ CWmax=255 (cửa sổ có thể đạt các giá trị 7, 15, 31, 63, 127 và 255). Cửa sổ tranh giành rộng hơn, năng lượng giải quyết lớn hơn của cơ chế ngẫn nghiên. Nó là tối thiểu giống như chọn cùng thời gian backoff sử dụng CW rộng. Tuy nhiên, dưới tải ánh sáng, CW nhỏ bảo đảm độ trễ truy cập ngắn hơn. Thuật toán này được gọi là backoff hàm mũ và sẵn sàng gia nhập từ IEEE 802.3 CSMA/CD trong phiên bản tương tự.
Trong khi xử lý này mô tả cơ chế truy cập hoàn thiện cho khung quảng bá, một vấn đề thêm vào là cung cấp bởi chuẩn cho dữ liệu truyền rộng. Hình 3.18 mô tả bên gửi truy cập môi trường và gửi dữ liệu. Nhưng bên nhận trả lời một cách chính xác với xác nhận (ACK) thế nào. Bên nhận truy cập môi trường sau khi chờ một khoảng SIFS và do đó không trạm nào có thể truy cập môi trương trong thời gian chính và nguyên nhân là tranh giành. Những trạm khác phải đợi DIFS cộng thêm thời gian backoff của chúng. Xác nhận này bảo đảm biên nhận đúng (đúng kiểm tra CRC tại bên nhận) của
khung trên tầng MAC, mà nhất là quan trọng trong môi trường lỗi có thể xảy ra như là kết nối không dây. Nếu không có ACK nào trả lại, bên gửi tự động truyền lại khung. Nhưng bây giờ bên gửi không đợi lần nữa và hoàn thành truy cập đúng. Không đúng đặc biệt cho truyền thông. Số lần truyền lại là có giới hạn, và cuối cùng lỗi được báo cáo cho lớp trên.
3.2.2.2. DFWMAC-DCF với RTS/CTS mở rộng
Về vấn đề của các trạm cuối ẩn, tình trạng đó có thể cũng xảy ra trong mạng tiêu chuẩn IEEE 802.11. Hiện tượng này xảy ra nếu một trạm nào đó có thể nhận được từ hai trạm khác nhưng những trạm khác thì không nhận được gì. Tiếp theo hai trạm đó phát hiện (cảm giác) đường truyền rỗi, nó sẽ gửi một tín hiệu (frame) và xung đột xảy ra vì nhận cùng một lúc. Để giải quyết vấn đề này, những định nghĩa chuẩn được thêm vào kỹ thuật sử dụng sử dụng 2 gói tin điều khiển RTS và CTS. Việc sử dụng kỹ thuật này là không bắt buộc, tuy nhiên trong mọi bản 802.11 đều bổ xung thêm một chức năng để khắc phục vấn đề trên chấp nhận gói tin điều khiển RTS/CTS.
Sử dụng RTS/CTS với phân đoạn: Sau đây là một mô tả sử dụng RTS/CTS cho một phân đoạn MSDU hoặc MMPDU. Các khung RTS/CTS định nghĩa khoảng thời gian của khung và báo nhận tiếp theo. Trường thời gian/ID định nghĩa khoảng thời gian của khung và báo nhận tiếp theo. Trường thời gian/ID trong các khung dữ liệu và báo nhận ACK xác định khoảng thời gian tổng của phân đoạn và báo nhận kế tiếp.
data DIFS ACK data DIFS SIFS Waiting time contention t sender receiver Other station
Hình 3.19. RTS/CTS với MSDU được phân đoạn
Mỗi khung chứa thông tin về khoảng thời gian của lần truyền dẫn kế tiếp. Thông tin khoảng thời gian từ các khung RTS sẽ được sử dụng để cập nhật NAV để chỉ thị bận cho đến khi kết thúc ACK 0. Thông tin khoảng thời gian từ khung CTS cũng sẽ được sử dụng để cập nhật NAV để chỉ thị bận cho đến khi kết thúc ACK 0. Tiếp theo trường thời gian/ID trong các khung Data và ACK sẽ được sử dụng. Nó sẽ tiếp diễn cho đến khung cuối cùng, trong khung cuối cùng trường Thời gian/ID sẽ có khoảng thời gian bằng một thời gian của ACK cộng với thời gian SIFS và trong khung ACK của khung cuối cùng, trường Thời gian/ID đặt về không. Mỗi phân đoạn và ACK hoạt động như một RTS/CTS ảo, do đó không có thêm khung RTS/CTS nào cần phải tạo ra sau khi RTS/CTS bắt đầu chu trình trao đổi khung mặc dù các phân đoạn kế tiếp có thể lớn hơn dot11RTSThreshold. Tại các STA sử dụng một PHY nhảy tần, khi không có đủ thời gian trước biên giới hạn ngưng tiếp theo để truyền phân đoạn kế tiếp, STA khởi tạo trình tự trao đổi khung có thể đặt trường Thời gian/ID trong khung dữ liệu hay quản lý cuối cùng để truyền đi trước biên giới hạn ngừng thành khoảng thời gian của một thời gian ACK cộng với một thời gian SIFS.
Trong trường hợp một xác nhận được gửi đi nhưng không nhận được bởi STA nguồn, các STA nghe được phân đoạn hay ACK, sẽ đánh dấu kênh bận cho lần trao đổi
khung tiếp theo do NAV đã được cập nhật từ các khung này. Đây là tình huống xấu nhất đã được chỉ ra.
Hình 3.20 Nếu cho một báo nhận không được gửi đi bởi STA đích, các STA có thể chỉ nghe thấy STA đích sẽ không cập nhật NAV của chúng và có thể cố gắng truy nhập khi NAV của nó được cập nhật từ khung nhận được trước đó đạt đến 0. Tất cả các STA nghe nguồn sẽ có thể truy nhập kênh sau khi NAV đã cập nhật từ phân đoạn truyền đi kết thúc.
Hình 3.20. RTS/CTS với ưu tiên bên truyền và báo nhận bị lỗi
Hình 3.21 mô tả việc sử dụng RTS và CTS. Sau khi đợi DIFS - khoảng thời gian đồng bộ (cộng thêm khoảng thời gian backoff ngẫu nhiên nếu môi trường truyền thông bận), bên gửi có thể phát ra một yêu cầu để gửi gói điều khiển RTS. Do đó gói tin RTS chưa được cấp bất kỳ quyền ưu tiên nào cao hơn so với các gói dữ liệu khác. Gói RTS bao gồm thông tin bên nhận dữ liệu được truyền tới và khoảng thời gian của toàn bộ quá trình truyền dữ liệu. Khoảng thời gian này chỉ rõ khoảng thời gian cần thiết để truyền toàn bộ frame dữ liệu và những thông tin ghi nhận liên quan đến chúng. Mỗi nút nhận gói RTS này bây giờ sẽ phải đặt NAV (vectơ định vị mạng) của nó phù hợp với trường thời gian trống. Những vectơ định vị mạng (NAV) chỉ rõ khi đó một điểm sớm nhất trong khoảng thời gian của trạm cố gắng truy cập lại kênh truyền.
Nếu bên nhận nhận được RTS, nó sẽ trả lời bằng thông điệp CTS (clear to send) sau khi đợi SIFS. Gói CTS này lại gồm một trường thời gian và mọi trạm nhận được gói tin này phải điều chỉnh lại NAV theo như dự định truyền dữ liệu (bằng cách trừ đi
aSIFSTime và số miligiây yêu cầu để truyền một khung CTS tại tốc độ sử dụng để truyền khung RTS mà khung CTS này phản hồi lại cho nó). Những trạm nhận sau không cần phải đặt giống như những trạm nhận gói RTS đầu tiên. Lúc này, tất cả các nút trong tầm nhận xung quanh trạm gửi và trạm nhận đều có thông tin vì chúng phải
đợi nhiều thời gian hơn trước khi truy cập môi trường. Về cơ bản, cơ chế này dự trữ môi trường cho một người gửi riêng (đây là lý do tại sao trước kia nó là một sơ đồ hạn chế thực tế). Sau khi truyền một khung RTS, STA sẽ chờ một khoảng thời gian CTSTimeout, bắt đầu tại PHY-TXEND.confirm. Nếu một PHY-RXSTART.indication không xảy ra trong khoảng CTSTimeout, STA sẽ kết luận rằng truyền RTS đã bị lỗi và STA này sẽ kích hoạt thủ tục ngừng vào lúc kết thúc khoảng thời gian CTSTimeout, STA sẽ chờ PHY-RXEND tương ứng để xác định xem truyền RTS có thành công hay không.
Cuối cùng, người gửi có thể gửi gói dữ liệu sau khi SIFS. Bên nhận đợi SIFS sau khi nhận gói dữ liệu (Nhận được khung CTS hợp lệ được gửi đi bởi bên nhận khung RTS, tương ứng với PHY-RXEND này) và sau đó xác nhận việc truyền thông đã chính xác. Lúc này việc truyền dẫn được hoàn thành và như vậy NAV trong nút đánh dấu môi trường như được tự do và chu trình chuẩn có thể bắt đầu lần nữa. Nếu nhận ra bất cứ khung nào khác, bao gồm cả các khung hợp lệ, sẽ được coi là lỗi truyền RTS. Trong trường hợp này STA sẽ kích hoạt thủ tục ngừng của nó tại PHY-RXEND.indication và