Truy cập kênh truyền

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 69 - 72)

Thời gian kênh được chia thành các siêu khung, mỗi siêu khung bắt đầu bằng Beacon và nó có 3 phần chính như sau: Beacon, CAP và CTAP. CTAP được sử dụng cho các luồng dữ liệu đồng bộ và không đồng bộ cũng như các lệnh điều khiển, còn CAP sử dụng cho các lệnh và các luồng không chứa dữ liệu. Trong CAP các thiết bị truy cập kênh truyền sử dụng CSMA/CA và thủ tục backoff. Trong CTAP, PNC sẽ điều khiển truy nhập kênh truyền bằng cách khai báo các CTA cho DEV riêng hay cho một nhóm các thiết bị, mỗi CTA sẽ có một thời điểm bắt đầu và một khoảng thời gian cố định.

4.4.3.1 Truy cập kênh truyền trong CAP

Kỹ thuật truy cập môi trường truyền trong CAP đó là CSMA/CA.

Để giảm đụng độ, DEV muốn truyền sẽ cảm nhận môi trường truyền trong khoảng thời gian ngẫu nhiên. Tầng MAC sẽ sử dụng những khả năng của CCA ở tầng vật lý để phát hiện xem kênh là bận hay rỗi. Nếu môi trường rỗi sau thời gian này thì DEV sẽ bắt đầu truyền. Quá trình xử lý trước khi truyền được gọi là ―backoff‖. Thủ tục này không áp dụng cho các Beacon đầu của siêu khung và Beacon của PNC.

Trong CAP, DEV được phép truyền một khung tại một thời điểm có áp dụng thủ tục backoff trong CAP, ngoại trừ khung báo nhận tức thời. PNC có thể gửi một lệnh sau một khoảng SIFS kể từ khi gửi báo nhận cho một khung hoặc kể từ khi nhận được một khung mà trường chính sách báo nhận của nó được đặt là không cần báo nhận trong CAP. Trong trường hợp này PNC không cần yêu cầu thực hiện thủ tục backoff trước khi gửi khung của nó.

Thuật toán backoff sử dụng những thông tin sau:

- retry_count: Một số nguyên có giá trị từ 0 đến 3

- backoff_window(retry_count): Một bảng có giá trị [7, 15, 31, 63]

- pBackoffSlot: Biến này phụ thuộc vào lớp vật lý, giá trị biến này dựa trên lượng thời gian cảm nhận kênh truyền.

- bw_random(retry_count): Là một số nguyên ngẫu nhiên nằm trong khoảng từ [0,backoff_window(retry_count)].

Đầu tiên, DEV sẽ đợi trong khoảng BIFS kể từ khi môi trường truyền được cảm nhận là rỗi. Tại thời điểm bắt đầu CAP, DEV sẽ thực hiện thủ tục backoff sau khoảng SIFS và sau khi trao đổi xong Beacon. DEV sẽ chọn backoff_count là một số ngẫu nhiên trong [0, (7, 15, 31, 63)] và sẽ duy trì biến đếm này. Giá trị của biến này sẽ giảm khi môi trường là rỗi trong toàn bộ

khoảng thời gian pBackoffSlot. Giá trị retry_count sẽ được đặt là 0 cho lần truyền đầu tiên. Khi kênh truyền bận biến đếm sẽ giữ nguyên giá trị và khi môi trường rỗi trở lại, giá trị biến đếm sẽ giảm sau một khoảng thời gian SIFS. Khi biến đếm đạt giá trị 0, DEV có thể truyền khung của nó sau khoảng BIFS. Biến đếm vẫn có thể được giữ nguyên giá trị ngoài CAP. Giá trị của nó vẫn được duy trì từ siêu khung này sang siêu khung khác và nó không khởi tạo lại với mỗi Beacon.

Trong trường hợp DEV được truyền nhưng không đủ thời gian trong CAP để truyền khung thì biến đếm vẫn được giữ nguyên và sẽ được truyền lại sau khi kênh rỗi một khoảng BIFS. Nếu tổng thời gian thiết lập khi khung được đưa vào hàng đợi để truyền không đủ thì biến đếm sẽ được khởi tạo lại và việc truyền khung sẽ bị hủy. Khi một khung đã được truyền nhưng không nhận đúng báo nhận thì retry_count sẽ tăng nhưng sẽ không tăng quá giá trị 3 và giá trị biến đếm sẽ được đặt lại giá trị ngẫu nhiên trong [0, (7, 15, 31, 63)]. Nếu quá số lần thử lại cho phép đối với một khung thì thủ tục backoff sẽ được thực hiện lại từ đầu.

4.4.3.2 Truy cập kênh truyền trong CTAP

Kỹ thuật truy cập kênh truyền trong 802.15.3 là TDMA

PNC chia CTAP thành các CTA. Nếu một DEV được PNC dành cho một CTA riêng thì các DEV khác sẽ không được sử dụng CTA này nữa. DEV có CTA có thể có hoặc không sử dụng hết khoảng thời gian trong CTA. Việc lựa chọn luồng, các lệnh hay dữ liệu không đồng bộ để truyền trong CTA được quyết định cục bộ bởi DEV và phụ thuộc vào các khung đang chờ. Có 2 kiểu CTA:

- CTA động.

- CTA tựa tĩnh (pseudo-static CTA).

Kiểu của CTA được thông báo trong lệnh yêu cầu thời gian kênh. PNC có thể di chuyển các CTA động có trong siêu khung vào siêu khung khác bằng cách đơn giản là thay đổi biến CTA trong Beacon. CTA động có thể sử dụng cho cả luồng không đồng bộ và luồng đồng bộ.

Các CTA tựa tĩnh sẽ được chỉ định cho các luồng có thời gian truy cập bằng nhau. Nếu PNC cần thay đổi vị trí và khoảng cách của CTA tựa tĩnh thì nó sẽ thay đổi cả khối CTA tương ứng trong Beacon. PNC sẽ không tạo ra bất kỳ một CTA mới nào cho các luồng khác chồng lên khoảng thời gian cũ của CTA tựa tĩnh trong siêu khung.

CTA riêng là CTA mà các DEV giống nhau cả nguồn và đích. CTA riêng không sử dụng cho truyền thông trong piconet. Nó sử dụng để đặt trước thời gian kênh

cho các piconet khác sử dụng.Chẳng hạn, nó được sử dụng cho một piconet phụ thuộc. CTA riêng là một CTA tựa tĩnh. Một DEV muốn sử dụng CTA riêng nó sẽ sử dụng DEVID của chính nó cũng như SrcID và TrgtID trong lệnh yêu cầu thời gian kênh.

a) Sử dụng thời gian kênh trong CTA

Các DEV là thành viên của piconet sẽ sử dụng lệnh yêu cầu thời gian kênh khi chúng muốn thay đổi CTA của chúng. Khi nhận được lệnh này từ DEV, PNC sẽ ghi nhớ yêu cầu này cho đến khi nhận được lệnh yêu cầu thời gian kênh khác của DEV này. Các CTA trong CTAP sẽ dựa vào các yêu cầu đang chờ và thời gian kênh đang sẵn có trong CTAP.

Khi DEV nguồn có một khung để gửi cho một DEV đích, DEV sẽ gửi đi trong bất kỳ CTA nào dành cho DEV nguồn và DEV đích hoặc sử dụng CAP để truyền khung.

Nếu DEV không nhận được Beacon, nó sẽ truyền trong CAP hoặc trong bất kỳ MCTA nào hoặc trong CTA động. Các DEV có CTA tựa tĩnh sẽ được phép truyền khi số lượng Beacon bị mất liên tiếp nhỏ hơn hoặc bằng mMaxLostBeacons. Nếu DEV đích của CTA tựa tĩnh mất Beacon nó sẽ lắng nghe toàn bộ siêu khung.

Nếu một thiết bị muốn truyền từ lúc bắt đầu CTA đến lúc kết thúc CTA thì nó sẽ kiểm tra xem có đủ thời gian để truyền khung và một khoảng SIFS hay không. Nếu không đủ thời gian nó sẽ hủy truyền và không sử dụng CTA này nữa. Khi nhận được yêu cầu thời gian kênh của DEV, PNC sẽ phản hồi yêu cầu bằng lệnh phản hồi thời gian kênh.

4.5 Một số chức năng của tầng MAC

4.5.1 Quét kênh

Tất cả các thiết bị sẽ sử dụng kỹ thuật quét kênh bị động để phát hiện ra piconet đang hoạt động. Có nghĩa là, các thiết bị sẽ ở trong chế độ nhận đối với một chu kỳ thời gian trong một kênh. Ngoài việc quét kênh thông qua việc đối chiếu PNID và BSID có trong lệnh yêu câu quét kênh, các thiết bị còn sử dụng phương thức quét kênh mở, có nghĩa là các thiết bị sẽ quét kênh nhờ vào Beacon nhận được. Nếu quét mở được chỉ định trong MLME-SCAN.request thì DEV sẽ tìm bất cứ thông tin trong khung Beacon mà nó có để phục vụ cho việc quét kênh của nó. Nếu không được chỉ định, các thiết bị sẽ bỏ qua tất cả các khung nhận được mà không đúng giá trị PNID và BSID có trong yêu cầu. Hơn nữa, DEV đang tìm sẽ tập hợp thống kê trên mỗi một kênh được quét và lưu các thông tin tìm được vào một danh sách. Các thiết bị tìm các piconet bằng cách duyệt qua các kênh đã được đánh chỉ số và thông báo trong

MLMESCAN.request. Một thiết bị có thể tìm kênh theo thứ tự bất kỳ miễn sao trong mẫu tìm kiếm có kênh hợp lệ. Kết quả của việc tìm kiếm sẽ là các thông tin của piconet cha, piconet con, piconet hàng xóm bất kỳ và các piconet đã được phát hiện. Nó sẽ đưa ra một bảng tóm tắt đầy đủ cho mỗi kênh.

Trong quá trình tìm kênh, nếu thiết bị nhận được khung bất kỳ thì nó sẽ không rời khỏi kênh trong khoảng mMinChannelScan kể từ khi bắt đầu nhận khung đầu tiên đến khi chờ nhận Beacon từ PNC. Nếu DEV chỉ tìm được các khung nhưng không có Beacon thì nó sẽ thông báo ở trong MLME- SCAN.confirm. DEV đó sẽ quét tất cả các kênh được thông báo để tìm piconet trước khi trả lại thông tin quét kênh qua MLME-SCAN.confirm

Hình 4.17: Quá trình quét kênh

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 69 - 72)

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

(100 trang)