CSMA/CA
Carrier sense multiple access with collision
avoidance


Thực hiện: Huỳnh Bá Thành
Giới thiệu
Nguyên tắc cơ bản khi
truy cập của chuẩn
802.11 là sử dụng cơ
chế CSMA-CA viết tắt
của Carrier Sense
Multiple Access
Collision Avoidance –
Đa truy cập sử dụng
sóng mang phòng
tránh xung đột.
Các chế độ truy cập CSMA

              Non-            1-
            persistent     Persistent
 CSMA
                              P-
            Persistent
                           persistent
                              O-
                           persistent
1 – persistent
1.     Trạng thái của kênh
     • Nếu bận(busy), tiếp tục lắng nghe cho tới khi kênh chuyển sang
       trạng thái idle rồi gửi
     • Nếu rỗi(idle), gửi ngay lập tức
2.     Nếu có xung đột
     • Đợi một khoản thời gian ngẫu nhiên và bắt đầu lại
P-persistent
1.     Trạng thái kênh
     • Nếu kênh rỗi, gửi gói tin với xác suất p
       • Nếu gửi thành công, qua bước 2 – kiểm tra xung đột
       • Nếu gửi không được, đợi 1 slot và quay về bước 1
     • Nếu kênh bận, đợi 1 slot và quay lại bước 1.
2.     Kiểm tra xung đột
     • Nếu xung đột xuất hiện, đợi một khoảng thời gian ngẫu nhiên rồi
      quay lại bước 1.
Non-persistent
1.     Trạng thái kênh:
     • Nếu bận: đợi 1 khoảng thời gian ngẫu nhiên và kiểm tra trạng thái
       lại
     • Nếu rỗi(idle), gửi gói tin ngay lập tức
2.     Nếu có xung đột
     • Đợi một khoảng thời gian và bắt đầu tất cả lại từ đầu
CSMA/CA Flowchart
CSMA/CA và NAV
Mô tả cơ chế hoạt động
1. Trước khi gửi một khung dữ liệu, máy gửi sẽ thăm dò trạng thái kênh dữ liệu
  1. Sử dụng chế độ persistent với backoff cho đến khi trạng thái chuyển sang
       idle.
    2. Sau khi có tính hiệu idle, máy sẽ đợi một khoảng thời gian DIFS; rồi gửi
       một frame điều khiển RTS.
2. Sau khi nhận RTS và đợi một khoảng thời gian SIFS, máy nhận sẽ gửi một
   frame điều khiển CTS tới máy gửi để cho biết là đã sẵn sàng nhận dữ liệu.
3. Sau đó máy gửi sẽ gửi một khu dữ liệu chính thức. (Data)
4. Máy nhận sau khi đợi một khoảng thời gian SIFS và sau đó gửi một thông
   báo kết quả truyền dữ liệu ACK (Acknowledgment) để cho biết frame đã
   được nhận.
NAV - Network Allocation Vector
• Làm thế nào để máy trạm khác trì hoãn việc gửi dữ liệu nếu một máy
 trạm đang sử dụng kênh, hoặc nói cách khác là làm thế nào để tránh
 xung đột?
  Cách giải quyết vấn đề gọi là NAV - Network Allocation
  Vector
  Khi một máy gửi RTS frame, thì frame này cũng chứa đựng
  thông tin về khoảng thời gian cần thiết chiếm dụng trên kênh
  (channel). Những máy khách bị ảnh hưởng bởi việc truyền tải
  này sẽ tạo ra một bộ đếm thời gian gọi là NAV. Bộ đếm này sẽ
  cho biết sẽ mất bao nhiều thời gian trước khi những máy trạm
  này được phép kiểm tra trạng thái của kênh dữ liệu.
• Mỗi lần máy truy cập vào hệ thống và gửi RTS frame, những
  máy khác bắt đầu thiết lập NAV. Nói cái khác, mỗi máy trước
  khi sử dụng cảm ứng vật lý để kiểm tra tình trạng của kênh có
  đang hoạt động hay không, thì trước hết nó sẽ kiểm tra NAV
  của chính nó xem đã hết hạn hay chưa.
Xung đột (Collision) trong quá trình bắt
tay(handshaking)
 • Chuyện gì sẽ xảy ra nếu
  như có xung độ trong quá
  trình RTS hoặc CTS control
  frame đang chuyển
  đi, thường gọi là quá trình
  bắt tay?
  Hai hoặc nhiều máy có thể
  gửi control frame RTS cùng
  một thời điểm. Những control
  frames này có thể gây ra
  xung đột. Tuy nhiên, do
  không có cơ chế phát hiện
  xung đột nên máy gửi sẽ giả
  định rằng có xung đột nếu
  không nhận được CTS Frame
  từ máy nhận. Giải thuật back-
  off được dùng và bên gửi sẽ
  thử gửi lại.
Frame
Control Frame
Một số thuật ngữ
•   DIFS: DCF inter frame space. Nếu như trạng thái kênh là rỗi trong khoản
    DIFS, thì chỉ có máy gửi được phép truyền frame đi. Nếu trạng thái của kênh
    là bận trong khoản thời gian DIFS, thì bên gửi sẽ hoãn việc truyền dữ liệu.
•   SIFS: Short inter frame space. Đây là khoảng thời gian sau khi data frame
    được gửi đi và chờ kết quả truyền dữ liệu ACK từ bên nhận. Khi nhận được
    gói tin một cách chính xác, máy gửi sẽ chờ một khoảng thời gian gọi là SIFS
    ngay lập tức sau khi quá trình tiếp nhận hoàn tất và và truyền ACK người trở
    lại máy gửi để xác nhận việc tiếp nhận thành công.
•   WAIT_FOR_ACK: chờ kết quả truyền dữ liệu từ bên nhận.
•   COLLIION: xung đột giữa các gói tin trong quá trình truyền tải.
•   ACK: Máy nhận sẽ gửi lại gói acknowledgement packet (ACK) sau khi nhận
    được data Frame.
•   IDLE: Trạng thái của kênh đang rỗi.
•   SENSING: cảm biến về trạng thái của kênh (rỗi/bận) trước khi bắt đầu quá
    trình truyền dữ liệu.
•   SENDING: gửi các gói tin.
•   BACKOFF: Khi một kênh đang bận, backoff được thiết lậo. Backoff sẽ giảm
    khi kênh chuyển thành trạng thái rỗi(idle). Quá trình đếm ngược này kết thúc
    khi kênh chuyển về trạng thái bận(busy). Khi backoff là 0 thì được phép truyền
    tải dữ liệu.
Tham khảo
• THUẬT TOÁN KIỂM SOÁT TRUY NHẬP MÔI TRƯỜNG DỰA TRÊN DANH SÁCH
    TRONG CÁC MẠNG MẮT LƯỚI VÔ TUYẾN 802.11 - Trần Hữu Hùng
•   http://vi.scribd.com/doc/55949481/10/T%E1%BA%A7ng-%C4%91i%E1%BB%81u-
    khi%E1%BB%83n-truy-nh%E1%BA%ADp-CSMA-CA
•   http://vi.scribd.com/doc/40167047/28/CSMA-CA
•   http://www.wimaxpro.org/forum/showthread.php?t=45
•   http://vi.scribd.com/doc/74265882/%C4%90i%E1%BB%83m-khac-nhau-
    gi%E1%BB%AFa-CSMA
•   http://vi.scribd.com/doc/60815624/Ky-Thuat-Mang-Khong-Day
•   http://en.wikipedia.org/wiki/Carrier_sense_multiple_access_with_collision_avoidance
•   http://en.wikipedia.org/wiki/CSMA/CA
•   http://en.wikipedia.org/wiki/Carrier_sense_multiple_access
•   http://www.globalspec.com/reference/11108/121073/chapter-14-1-1a-mac-sublayer

CSMA/CA

  • 1.
    CSMA/CA Carrier sense multipleaccess with collision avoidance Thực hiện: Huỳnh Bá Thành
  • 2.
    Giới thiệu Nguyên tắccơ bản khi truy cập của chuẩn 802.11 là sử dụng cơ chế CSMA-CA viết tắt của Carrier Sense Multiple Access Collision Avoidance – Đa truy cập sử dụng sóng mang phòng tránh xung đột.
  • 3.
    Các chế độtruy cập CSMA Non- 1- persistent Persistent CSMA P- Persistent persistent O- persistent
  • 4.
    1 – persistent 1. Trạng thái của kênh • Nếu bận(busy), tiếp tục lắng nghe cho tới khi kênh chuyển sang trạng thái idle rồi gửi • Nếu rỗi(idle), gửi ngay lập tức 2. Nếu có xung đột • Đợi một khoản thời gian ngẫu nhiên và bắt đầu lại
  • 5.
    P-persistent 1. Trạng thái kênh • Nếu kênh rỗi, gửi gói tin với xác suất p • Nếu gửi thành công, qua bước 2 – kiểm tra xung đột • Nếu gửi không được, đợi 1 slot và quay về bước 1 • Nếu kênh bận, đợi 1 slot và quay lại bước 1. 2. Kiểm tra xung đột • Nếu xung đột xuất hiện, đợi một khoảng thời gian ngẫu nhiên rồi quay lại bước 1.
  • 6.
    Non-persistent 1. Trạng thái kênh: • Nếu bận: đợi 1 khoảng thời gian ngẫu nhiên và kiểm tra trạng thái lại • Nếu rỗi(idle), gửi gói tin ngay lập tức 2. Nếu có xung đột • Đợi một khoảng thời gian và bắt đầu tất cả lại từ đầu
  • 7.
  • 8.
  • 9.
    Mô tả cơchế hoạt động 1. Trước khi gửi một khung dữ liệu, máy gửi sẽ thăm dò trạng thái kênh dữ liệu 1. Sử dụng chế độ persistent với backoff cho đến khi trạng thái chuyển sang idle. 2. Sau khi có tính hiệu idle, máy sẽ đợi một khoảng thời gian DIFS; rồi gửi một frame điều khiển RTS. 2. Sau khi nhận RTS và đợi một khoảng thời gian SIFS, máy nhận sẽ gửi một frame điều khiển CTS tới máy gửi để cho biết là đã sẵn sàng nhận dữ liệu. 3. Sau đó máy gửi sẽ gửi một khu dữ liệu chính thức. (Data) 4. Máy nhận sau khi đợi một khoảng thời gian SIFS và sau đó gửi một thông báo kết quả truyền dữ liệu ACK (Acknowledgment) để cho biết frame đã được nhận.
  • 10.
    NAV - NetworkAllocation Vector • Làm thế nào để máy trạm khác trì hoãn việc gửi dữ liệu nếu một máy trạm đang sử dụng kênh, hoặc nói cách khác là làm thế nào để tránh xung đột? Cách giải quyết vấn đề gọi là NAV - Network Allocation Vector Khi một máy gửi RTS frame, thì frame này cũng chứa đựng thông tin về khoảng thời gian cần thiết chiếm dụng trên kênh (channel). Những máy khách bị ảnh hưởng bởi việc truyền tải này sẽ tạo ra một bộ đếm thời gian gọi là NAV. Bộ đếm này sẽ cho biết sẽ mất bao nhiều thời gian trước khi những máy trạm này được phép kiểm tra trạng thái của kênh dữ liệu. • Mỗi lần máy truy cập vào hệ thống và gửi RTS frame, những máy khác bắt đầu thiết lập NAV. Nói cái khác, mỗi máy trước khi sử dụng cảm ứng vật lý để kiểm tra tình trạng của kênh có đang hoạt động hay không, thì trước hết nó sẽ kiểm tra NAV của chính nó xem đã hết hạn hay chưa.
  • 11.
    Xung đột (Collision)trong quá trình bắt tay(handshaking) • Chuyện gì sẽ xảy ra nếu như có xung độ trong quá trình RTS hoặc CTS control frame đang chuyển đi, thường gọi là quá trình bắt tay? Hai hoặc nhiều máy có thể gửi control frame RTS cùng một thời điểm. Những control frames này có thể gây ra xung đột. Tuy nhiên, do không có cơ chế phát hiện xung đột nên máy gửi sẽ giả định rằng có xung đột nếu không nhận được CTS Frame từ máy nhận. Giải thuật back- off được dùng và bên gửi sẽ thử gửi lại.
  • 12.
  • 13.
  • 14.
    Một số thuậtngữ • DIFS: DCF inter frame space. Nếu như trạng thái kênh là rỗi trong khoản DIFS, thì chỉ có máy gửi được phép truyền frame đi. Nếu trạng thái của kênh là bận trong khoản thời gian DIFS, thì bên gửi sẽ hoãn việc truyền dữ liệu. • SIFS: Short inter frame space. Đây là khoảng thời gian sau khi data frame được gửi đi và chờ kết quả truyền dữ liệu ACK từ bên nhận. Khi nhận được gói tin một cách chính xác, máy gửi sẽ chờ một khoảng thời gian gọi là SIFS ngay lập tức sau khi quá trình tiếp nhận hoàn tất và và truyền ACK người trở lại máy gửi để xác nhận việc tiếp nhận thành công. • WAIT_FOR_ACK: chờ kết quả truyền dữ liệu từ bên nhận. • COLLIION: xung đột giữa các gói tin trong quá trình truyền tải. • ACK: Máy nhận sẽ gửi lại gói acknowledgement packet (ACK) sau khi nhận được data Frame. • IDLE: Trạng thái của kênh đang rỗi. • SENSING: cảm biến về trạng thái của kênh (rỗi/bận) trước khi bắt đầu quá trình truyền dữ liệu. • SENDING: gửi các gói tin. • BACKOFF: Khi một kênh đang bận, backoff được thiết lậo. Backoff sẽ giảm khi kênh chuyển thành trạng thái rỗi(idle). Quá trình đếm ngược này kết thúc khi kênh chuyển về trạng thái bận(busy). Khi backoff là 0 thì được phép truyền tải dữ liệu.
  • 15.
    Tham khảo • THUẬTTOÁN KIỂM SOÁT TRUY NHẬP MÔI TRƯỜNG DỰA TRÊN DANH SÁCH TRONG CÁC MẠNG MẮT LƯỚI VÔ TUYẾN 802.11 - Trần Hữu Hùng • http://vi.scribd.com/doc/55949481/10/T%E1%BA%A7ng-%C4%91i%E1%BB%81u- khi%E1%BB%83n-truy-nh%E1%BA%ADp-CSMA-CA • http://vi.scribd.com/doc/40167047/28/CSMA-CA • http://www.wimaxpro.org/forum/showthread.php?t=45 • http://vi.scribd.com/doc/74265882/%C4%90i%E1%BB%83m-khac-nhau- gi%E1%BB%AFa-CSMA • http://vi.scribd.com/doc/60815624/Ky-Thuat-Mang-Khong-Day • http://en.wikipedia.org/wiki/Carrier_sense_multiple_access_with_collision_avoidance • http://en.wikipedia.org/wiki/CSMA/CA • http://en.wikipedia.org/wiki/Carrier_sense_multiple_access • http://www.globalspec.com/reference/11108/121073/chapter-14-1-1a-mac-sublayer