PDA

View Full Version : 802.11 Medium Access Mechanisms



friends
12-03-2006, 05:05
Cơ chế truy nhập đường truyền của 802.11
Như ta đã biết, CSMA/CD là cơ chế truy nhập đường truyền được dùng trong mạng Ethernet 802.3. Mạng 802.11 WLAN sử dụng một cơ chế tương tự gọi là Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA). CSMA/CA là cơ chế lắng nghe trước khi truyền (Listen Before Talk = LBT). Trạm truyền sẽ kiểm tra tín hiệu sóng mang trên đường truyền và đợi cho đến khi kênh truyền rỗi trước khi thực sự truyền.

Mạng Ethernet có dây có thể phát hiện được xung đột trên đường truyền. Hai trạm cùng truyền tại một thời điểm sẽ làm tăng mức tín hiệu trên đường dây, nó báo cho trạm truyền biết rằng đã có xung đột xảy ra. Các trạm không dây 802.11 không có khả năng này. Cơ chế truy nhập của 802.11 phải nỗ lực mọi lúc để tránh xung đột giữa các trạm với nhau.

Tổng quan về CSMA/CA
Cơ chế CSMA/CD được mô tả như là một cuộc hội thảo qua điện thoại. Mỗi cá nhân tham gia muốn nói chuyện thì phải đợi mọi người khác ngừng nói. Một khi đường dây đã yên tĩnh, cá nhân đó có thể bắt đầu nói chuyện. Nếu 2 người bắt đầu nói chuyện cùng 1 lúc thì họ phải ngừng lại, sau đó thử nói lại lần nữa.

Cơ chế CSMA/CA đòi hỏi thứ tự chặc chẽ hơn CSMA/CD. Để mô tả CSMA/CA theo ví dụ này, ta cần điều chỉnh như sau:
+ Trước khi một người muốn nói chuyện, người đó phải thông báo cho biết họ muốn nói trong bao lâu. Lời thông báo này sẽ cho các người khác trong cuộc hội thảo biết họ phải đợi bao lâu trước khi họ có thể nói.
+ Các người tham gia hội thảo này sẽ không thể nói chuyện được cho đến khi khoảng thời gian phải chờ kết thúc.
+ Các người tham gia sẽ không biết được liệu lời nói của họ đã được nghe bởi người họ muốn nói hay chưa, trừ khi họ nhận được một lời khẳng định từ người đã nghe.
+ Nếu 2 người nói chuyện cùng một lúc, họ cũng không biết được họ đang gây nhiễu lẫn nhau. Người nói chỉ nhận biết được đang có người cùng nói với họ khi họ không nhận được sự khẳng định đã nghe được lời của họ từ người họ muốn nói.
+ Các người tham gia phải đợi một khoảng thời gian ngẫu nhiên rồi thử nói lại lần nữa (khi họ nhận biết được có người đang giành nói với họ, gây nhiễu họ).

Như bạn thấy, CSMA/CA có những quy tắc nghiêm ngặt hơn CSMA/CD, những nguyên tắt này giúp ngăn chặn xung đột có thể xảy ra. Sự ngăn chặn này là một điều cốt yếu của mạng không dây bởi vì không có một cơ chế phát hiện xung đột nào. CSMA/CA chỉ biết được có xung đột khi nó không nhận được frame ACK mà nó đang chờ từ người nhận sau khi gởi đi 1 frame dữ liệu.

Chuẩn 802.11 cài đặt CSMA/CA trong chế độ DCF. Để mô tả cơ chế hoạt động của CSMA/CA, chúng ta cần phải biết về một số thành phần quan trọng của nó trước:
+ Carrier sense
+ DCF
+ Acknowledgment frames
+ Request to Send/Clear to Send (RTS/CTS) medium reservation

Thêm vào đó, 2 cơ chế truy nhập đường truyền khác gắn liền với 802.11 không được ghép vào CSMA/CA là:
+ Frame fragmentation
+ Point coordination function (PCF)

(còn tiếp)

friends
12-03-2006, 05:08
Carrier Sense
Một trạm không dây muốn truyền dữ liệu phải kiểm tra xem đường truyền có bận không, nếu đường truyền đang bận, trạm đó phải trì hoãn việc truyền lại cho đến khi đường truyền rỗi. Các trạm xác định trạng thái của đường truyền dựa trên 2 cơ chế:
+ Kiểm tra lớp vật lý (PHY) xem có sóng mang hay không
+ Sử dụng chức năng carrier sense ảo là Network Allocation Vector (NAV)

Các trạm có thể kiểm tra lớp vật lý và thấy rằng đường truyền rỗi. Nhưng trong một số trường hợp, đường truyền có thể đã được đặt chổ trước bởi một trạm khác thông qua NAV. NAV là một timer được cập nhật bởi các frame dữ liệu truyền trong đường truyền.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413efbb43cbf.jpg

Ví dụ, trong một Infrastructure BSS có 3 client Martha, Vivian, George. Giả sử Martha đang truyền một frame đến George. Bởi vì đường truyền không dây là đường truyền chia sẽ dựa trên quảng bá nên Vivian cũng có thể nhận được frame. Nhưng các frame của 802.11 có chứa 1 trường thời gian (Duration Field). Giá trị duration này là đủ lớn để cho frame có thể truyền đến đích và hồi đáp lại một ACK. Vivian sẽ cập nhật giá trị NAV của mình với giá trị duration trong frame, và sẽ không thực hiện truyền cho đến khi giá trị của NAV giảm đến 0.

Chú ý là các trạm chỉ cập nhật giá trị NAV của chúng khi trường duration trong frame nhận được có giá trị lớn hơn giá trị của NAV mà nó đang lưu giữ. Sử dụng ví dụ trên, nếu Vivian có giá trị NAV là 10 miliseconds, Vivian sẽ không cập nhật NAV nếu Vivian nhận được một frame có trường duration là 5 miliseconds. Vivian chỉ cập nhật NAV khi trường duration lớn hơn 10.

(còn tiếp)

friends
12-03-2006, 05:13
Distributed Coordination Function (DCF)
IEEE xác định cơ chế truy nhập cho mạng 802.11 là DCF. DCF là một cơ chế truy nhập dựa trên phương pháp truy nhập CSMA/CA. Để mô tả phương thức hoạt động của DCF, trước tiên chúng ta định nghĩa một số khái niệm cơ bản.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413efbb9da50.jpg

Trong cơ chế hoạt động của DCF, một trạm muốn truyền frame phải đợi một khoảng thời gian xác định sau khi đường truyền rỗi. Giá trị thời gian này được gọi là DCF Interframe Space (DIFS). Một khi DIFS trôi qua, đường truyền đã có thể sẵn sàng cho các trạm giành quyền truy nhập.

Trong ví dụ trước, giả sử Vivian và George muốn truyền frame sau khi Martha truyền xong. Cả Vivian và George đều có cùng giá trị NAV, cả 2 sẽ kiểm tra vật lý và thấy đường truyền rỗi. Có khả năng rất lớn là 2 trạm sẽ truyền cùng lúc gây ra xung đột. Để tránh tình huống này, DCF sử dụng một Random Back-Off timer.

Thuật toán Random Back-Off sẽ chọn ngẫu nhiên một giá trị từ 0 đến giá trị Contention Window (CW). Theo mặc định, giá trị CW có thể khác nhau tùy nhà sản xuất và nó được lưu trữ trong NIC (Network Interface Card) của máy trạm. Để có được giá trị Random Back-Off, ta lấy một số ngẫu nhiên đã chọn ở trên nhân với Slot Time (Random Back-Off chính là số lần Slot Time). Giá trị của Random Back-Off là khoảng thời gian các trạm phải chờ thêm sau khi đường truyền rỗi và DIFS đã trôi qua, sau đó trạm nào có Random Back-Off ngắn nhất sẽ giành được quyền truyền frame.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413ef7d1c09d.jpg

Trở lại ví dụ trước, Vivian đã sẵn sàng truyền dữ liệu (sau khi DIFS trôi qua), giá trị NAV của nó đã giảm đến 0, và kiểm tra lớp vậy lý cũng cho thấy rằng đường truyền đang rỗi. Vivian sẽ đợi thêm một Random Back-Off timer (giả sử là 4 Slot Time) nữa trước khi có thể bắt đầu truyền dữ liệu. Giá trị Random Back-Off timer là khác nhau tùy mỗi trạm. Nếu Vivian và George đều muốn truyền dữ liệu nhưng George có gí trị Random Back-Off nhỏ hơn (giả sử là 2 Slot Time) thì George sẽ là người truyền dữ liệu trước. Lúc đó, Vivian sẽ nhận được frame từ George có chứa trường duration lớn hơn giá trị NAV của Vivian (NAV hiện tại = 0) nên Vivian sẽ cập nhật NAV sang giá trị mới. Đồng thời Vivian cũng lưu giá trị Random Back-Off còn lại của mình (trong trường hợp này là 2 Slot Time). Sau đó Vivian sẽ lại phải chờ chờ cho đến khi NAV = 0 và kiểm tra vật lý thấy đường truyền rỗi thì Vivian sẽ chỉ phải đợi thêm một giá trị Random Back-Off đã lưu lại ở lần trước (2 Slot Time). Trước khi Vivian thực sự truyền dữ liệu.

Giả sử như sau khi Vivian truyền được frame, thì làm thế nào Vivian biết được frame đó đã đến đích mong muốn hay chưa? Đặc tả 802.11 yêu cầu rằng trạm nhận phải hồi đáp lại một frame ACK cho trạm phát nếu nó nhận được frame thành công. Frame ACK này cho phép trạm truyền gián tiếp xác định được xung đột có xảy ra hay không. Nếu trạm truyền không nhận được frame ACK, nó sẽ cho rằng đã có xung đột xảy ra trên đường truyền. Trạm truyền sẽ cập nhật lại biến đếm Retry của nó, tăng giá trị CW lên gấp đôi (với hy vọng làm tăng giá trị Random Back-Off) và bắt đầu tiến trình truy nhập đường truyền lại lần nữa.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413ef4d98824.jpg

(còn tiếp)

friends
12-03-2006, 05:16
Frame ACK
Trạm nhận sau khi nhận được frame thành công (không có lỗi) sẽ hồi đáp lại một frame ACK cho trạm truyền. Lưu ý là, trạm nhận phải truy nhập đường truyền và truyền frame ACK. Bạn có thể nghĩ rằng frame ACK nhiều khả năng sẽ bị trì hoãn bởi vì phải đấu tranh giành đường truyền. Tuy nhiên, việc truyền frame ACK là một trường hợp đặc biệt. Frame ACK được phép bỏ qua quá trình Random Back-Off và chỉ phải đợi một khoảng thời gian ngắn sau khi nhận được frame để có thể truyền ACK. Khoảng thời gian ngắn mà trạm nhận phải đợi được gọi là Short Interframe Space (SIFS). SIFS là nhỏ hơn DIFS 2 Slot Time. Nó đảm bảo cho trạm nhận có nhiều cơ hội nhất để truyền trước các trạm khác.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413ef7d2e986.jpg

Cũng với ví dụ trước, sau khi Vivian trì hoãn việc truyền tổng cộng 4 Slot Time, đường truyền vẫn rỗi, Vivian bắt đầu truyền frame sang George. Access Point (AP) nhận được frame và đợi một khoảng SIFS trước khi gởi lại frame ACK. Giả sử vì lý do nào đó, Vivian không nhận được frame ACK, Vivian sẽ tăng gấp đôi giá trị CW và lặp lại tiến trình Back-Off. Cứ mỗi lần việc truy nhập đường truyền bất thành, các trạm 802.11 sẽ tăng giá trị biến đếm Retry. CW tiếp tục được tăng gấp đôi cho đến khi nó đạt giá trị lớn nhất là CWmax . Lớp MAC có thể tiếp tục cố gắng truyền frame, nhưng khi biến đếm Retry dành cho frame đạt giá trị ngưỡng do administrator đặt ra cho Retry, trạm Vivian sẽ cố gắng giành lấy đường truyền.

(còn tiếp)

friends
12-03-2006, 05:19
Vấn đề Hidden Node và RTS/CTS
Vivian có lẽ sẽ không thể truy nhập đường truyền vì một trạm khác trong vùng phủ sóng của AP nhưng lại ngoài tầm với của chính Vivian. Trong hình dưới, Vivian và George nằm trong vùng phủ sóng của nhau và trong vùng phủ sóng của AP nhưng không có ai nằm trong vùng phủ sóng của Tony. Tony nằm trong vùng phủ sóng của AP và cũng muốn truyền frame. Tình huống này được gọi là Hidden Node bởi vì Tony là ẩn đối vơi Vivian và George.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413ef7d5a8a8.jpg

Vivian cố gắng giành lấy đường truyền bằng cách sử dụng một frame đặc biệt được gọi là frame RTS. Frame RTS được gởi đến AP, nó thông báo cho AP và tất cả các trạm khác trong vùng phủ sóng của Vivian biết khoảng thời gian (duration) cần thiết để Vivian trao đổi dữ liệu. Việc trao đổi frame bao gồm Vivian truyền frame và nhận ACK.

AP nhận được frame RTS của Vivian và hồi đáp lại với một frame điều khiển gọi là CTS. Frame CTS chứa trường duration có giá trị đủ lớn cho phép Vivian hoàn thành việc trao đổi frame. Tất cả các trạm trong vùng phủ sóng của AP bao gồm cả Tony và George nhận được frame CTS và cập nhật giá trị NAV của họ như được minh họa trong hình sau:

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413efbb13f14.jpg


Việc khởi tạo frame RTS mà Vivian đã truyền cũng phải đi qua đầy đủ các tiến trình trong DCF như các frame bình thường khác. Nhưng cũng tương tự như frame ACK, frame CTS tương ứng từ AP cũng bỏ qua thủ tục Random Back-Off và chỉ cần đợi SIFS trước khi truyền. Hình dưới mô tả quá trình truyền frame RTS của Vivian. Cả George và Tony đều cập nhật giá trị NAV tương ứng, nhưng frame ACK gởi trả lại từ AP đến Vivian không cần phải tuân theo nguyên tắc trong DCF. Khi George nhận được frame, George ngay lập tức hồi đáp lại bằng frame ACK. Mặc dù giá trị NAV của George là khác zero (0), nhưng George vẫn gởi frame ACK sau khi SIFS trôi qua.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413ef4e1b837.jpg

(còn tiếp)

friends
12-03-2006, 05:21
802.11 Frame Fragmentation
Sự phân mảnh frame là chức năng của lớp MAC, nó được thiết kế để làm tăng tính tin cậy trong việc truyền frame qua môi trường không dây. Mục đích của phân mảnh là chia nhỏ frame thành các mảnh nhỏ hơn, mỗi mảnh được truyền độc lập với nhau và có ACK khác nhau. Có một sự ngầm hiểu là việc truyền các frame nhỏ qua môi trường có nhiều lỗi thì sẽ có khả năng truyền thành công cao hơn là truyền các frame lớn. Trong quá trình truyền, nếu mảnh nào gặp lỗi hay xung đột thì chỉ mảnh đó được truyền lại, không phải là toàn bộ frame, nên làm tăng hiệu quả sử dụng băng thông.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413ef7cf3db8.jpg

Các nhà quản trị mạng có thể định nghĩa kích thước phân mảnh. Sự phân mảnh chỉ xuất hiện trên các frame unicast. Các frame broadcast hay multicast vẫn được giữ nguyên. Cần lưu ý là các mảnh được truyền 1 lần, chỉ sử dụng 1 vòng lặp DCF duy nhất.

Mặc dù việc phân mảnh có thể làm tăng hiệu quả thực sự việc truyền frame trên WLAN, nhưng nó cũng làm tăng chi phí cho giao thức lớp MAC. Mỗi frame đề bao gồm header lớp MAC, cũng như yêu cầu phải có frame ACK tương ứng. Điều này sẽ làm tăng chi phí và làm giảm băng thông thực sự trên các trạm không dây. Phân mảnh là sự cân bằng giữa độ tin cậy và chi phí đường truyền.

(còn tiếp)

friends
12-03-2006, 05:24
Point Coordinator Function (PCF)
PCF là một cơ chế truy nhập tùy chọn (ngoài DCF) của 802.11. PCF là một cơ chế truy nhập cung cấp việc phân phát các frame đến và đi từ AP mà không cần phải đấu tranh giành đường truyền (Contention Free). Hầu hết các nhà sản xuất không hỗ trợ PCF bởi vì nó làm tăng chi phí trong BSS nên chúng không được phổ biến lắm. Việc mở rộng đặc tả 802.11 cho phép hỗ trợ chất lượng dịch vụ (QoS) dựa trên PCF sẽ tạo ra một cơ chế mới hữu ích hơn.

Phần này mô tả hoạt động của PCF, chi tiết về sự vận hành của Point Coordination (PC, tạm dịch là điểm điều phối hoạt động) và PCF-aware station (trạm hoạt động ở chế độ PCF)

Contention Free Period (CFP)
CFP là khoảng thời gian để PCF hoạt động. CFP bắt đầu khi frame Beacon chứa trường thông tin Delivery Traffic Indication Map (DTIM) được phát đi. Tần số xuất hiện của CFP được xác định bởi nhà quản trị mạng. Một khi CFP bắt đầu, AP được xem như là đóng vai trò của một Point Coordination (PC) (PCF chỉ hoạt động được trong mạng Infrastructure BSS). Mỗi client 802.11 thiết lập giá trị NAV của nó sang giá trị CFPMaxDuration. Giá trị này được chứa trong tham số CF lúc thiết lập thông tin cho các thành phần (trong Beacon chứa DTIM). Point Coordination (PC) có thể kết thúc CFP trước khi thời gian CFPMaxDuration trôi qua. AP truyền frame Beacon theo chu kỳ xác định, và frame Beacon được gởi trong thời gian CFP sẽ chứa trường CFPDurationRemaining để cập nhật giá trị NAV của các trạm sang khoảng thời gian còn lại của CFP (điều này rất thích hợp trong trường hợp Point Coordination (PC) kết thúc CFP trước khi thời gian CFPMaxDuration trôi qua). Hình dưới mô tả CFP và Contention Period (CP) theo thời gian.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413ef4d7b35d.jpg

Không giống như hoạt động của DCF, PCF không cho phép các trạm tự do truy nhập đường truyền và truyền dữ liệu. Các trạm chỉ có thể gởi dữ liệu (mỗi lần một frame) khi Point Coordination (PC) chọn (bầu) chúng. PC có thể gởi frame đến máy trạm, bầu chọn trạm nào được phép truyền dữ liệu, gởi hồi đáp bằng frame ACK (yêu cầu ở mức độ MAC), hoặc có thể kết thúc CFP.

(còn tiếp)

friends
12-03-2006, 05:26
Hoạt động của Point Coordination
Khi CFP bắt đầu, PC phải truy nhập đường truyền theo cách tương tự như các trạm sử dụng DCF. Tuy nhiên, không giống như các trạm DCF, PC sẽ cố gắng truy nhập đường truyền sau khi phải đợi một khoảng thời gian được gọi là Priority Interframe Space (PIFS, Có sách gọi là PCF Interframe Space). Khoảng thời gian PIFS này là nhiều hơn SIFS 1 Slot Time, và ít hơn DIFS 1 Slot Time. Cho phép các trạm PCF truy nhập đường truyền trước các trạm DCF trong khi vẫn cho phép các frame điều khiển như ACK frame có cơ hội cao nhất giành lấy đường truyền. Hình dưới mô tả mối quan hệ giữa DIFS, SIFS, PIFS và Slot Time.

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413efbb872eb.jpg

Sau khi đợi một khoảng thời gian PIFS, PC sẽ gởi frame Beacon để khởi tạo, Beacon này chứa tham số thông tin thành phần CF. Sau đó, PC sẽ đợi một khoảng thời gian SIFS để cho Beacon có thể truyền đi và tiếp theo, nó gởi một trong những frame sau đến các trạm PCF (trạm chạy ở chế độ PCF).
+ Data frame
+ Poll frame (CF-Poll)
+ Combination data and poll frame (Data+CF-Poll)
+ CFP end frame (CF-End)

Nếu PC không có frame nào để gởi và không có trạm PCF nào cần gởi dữ liệu thì CFP được xem như là Null, và ngay sau frame Beacon, PC sẽ gởi frame CF-End để kết thúc CFP.

(còn tiếp)

friends
12-03-2006, 05:32
Ví dụ về họat động của PCF
Hình sau mô tả hoạt động của PCF

https://www.genebase.com/upload/user_31/978810/photo/P978810_4413efbb68e89.jpg

AP1 gởi frame Beacon báo hiệu sự bắt đầu của một CFP. CFP được thiết lập là 20 giây (đây chính là giá trị CFPMaxDuration). Vivian, Martha và George cập nhật giá trị NAV của họ sang giá trị 20 giây của CFP. Sau khi đợi một khoảng thời gian SIFS, AP1 gởi 1 frame dữ liệu đã giành cho Vivian và đồng thời cũng gởi 1 CF-Poll đến Vivian để xem Vivian có dữ liệu cần truyền hay không bằng cách sử dụng frame kết hợp Data+CF-Poll. Vivian nhận được frame Data+CF-Poll, gởi lại 1 frame dữ liệu và 1 frame CF-ACK và cũng sử dụng frame kết hợp Data+CF-ACK sau khi đã đợi 1 khoảng thời gian SIFS. Chú ý là Vivian đã bỏ qua những thiết lập về NAV (không quan tâm đến NAV) khi truyền frame hồi đáp cho frame CF-Poll.

AP1 tiếp tục trong danh sách bầu chọn là Martha. AP1 sử dụng 1 frame kết hợp khác để gởi 1 frame dữ liệu đến Martha, hồi đáp cho frame của Vivian (vừa mới nhận), và hỏi xem Martha có dữ liệu cần truyền hay không (Data+CF-ACK+CF-Poll). Chú ý là frame này dành cho Martha nhưng nó chứa CF-ACK dành cho Vivian. Bản chất đa truy nhập của 802.11 cho phép điều này xảy ra. Martha sẽ đợi một khoảng thời gian SIFS, sau đó gởi frame Data+CF-ACK cho AP1.

Cuối cùng, AP1 bầu chọn cho George. AP1 không có frame nào cần gởi cho George vì thế nó chỉ gởi frame CF-Poll để xem George có dữ liệu cần truyền không. Trong trường hợp này, George cũng không có dữ liệu cần truyền vì thế George gởi lại 1 frame Null. Mặc dù CFP vẫn chưa kết thúc, nhưng do không có dữ liệu truyền nên AP1 gởi frame CF-End đến các trạm rồi chuyển sang khoảng thời gian Contention Period (CP) và hoạt động giống như các trạm DCF bình thường khác. Vivian, Martha và George nhận được frame CF-End và thiết lập lại giá trị NAV của chúng.

Đến đây tôi xin kết thúc loạt bài dịch về cơ chế truy nhập trong mạng WLAN. Bạn nào có thắc mắc, phát hiện sai sót xin cứ nêu ra. Mong nhận được sự đóng góp của các bạn để các bài dịch sau được hoàn thiện hơn. Xin chân thành cảm ơn
(hết)