III. Giao thức CSMA (Carrier Sense Multiple Access) (tiếp theo)
3. Thuật toán CSMA
Thuật toán CSMA là một trong những phương pháp hiệu quả để quản lý việc truyền dữ liệu trong mạng máy tính. Quá trình thuật toán này được mô tả qua các bước sau đây:
- Yêu cầu truyền dữ liệu: Nút (điểm cuối) trong mạng muốn gửi dữ liệu.
- Kiểm tra kênh truyền: Nút thực hiện việc kiểm tra xem kênh truyền có đang bận hay không. Nếu kênh không bận, quá trình sẽ tiếp tục; nếu kênh bận, nó sẽ tiếp tục kiểm tra cho đến khi kênh rảnh.
- Chuyển đổi dữ liệu thành frame: Dữ liệu sẽ được đóng gói thành các khung (frames) để chuẩn bị cho việc truyền.
- Truyền frame: Khung dữ liệu được gửi đi.
- Kiểm tra va chạm: Nếu trong quá trình truyền xảy ra va chạm (thường có dấu hiệu là giảm mạnh tín hiệu), cần thực hiện bước tiếp theo.
- Tiếp tục truyền: Nếu không phát hiện va chạm, nút sẽ tiếp tục quá trình truyền cho đến khi hoàn thành.
- Kiểm tra dữ liệu đã truyền hết: Xác nhận rằng tất cả dữ liệu đã được truyền đi.
- Kết thúc: Khi tất cả dữ liệu đã được gửi, quá trình kết thúc.
- Gửi tín hiệu JAM: Nếu có va chạm, nút sẽ phát đi tín hiệu JAM để thông báo cho các nút khác.
- Tăng số lần cố gắng truyền: Tăng số lần cố gắng gửi dữ liệu.
- Kiểm tra số lần cố gắng: Xác định xem số lần cố gắng đã vượt quá giới hạn chưa.
- Thông báo lỗi: Nếu vượt quá số lần cho phép, sẽ thông báo lỗi.
- Tính toán khoảng thời gian backoff: Nếu còn cơ hội, thuật toán sẽ tính toán khoảng thời gian ngẫu nhiên để chờ trước khi gửi lại.
- Delay(t): Nút sẽ đợi một khoảng thời gian (t) trước khi thử gửi lại dữ liệu.
Quá trình này giúp giảm thiểu xác suất phát sinh va chạm bằng cách yêu cầu các nút chờ một khoảng thời gian ngẫu nhiên trước khi thử gửi lại dữ liệu.
4. Giao thức CSMA/CA (CSMA Collision Avoidance)
CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) là cơ chế nhằm giảm thiểu nguy cơ va chạm khi nhiều thiết bị cố gắng gửi dữ liệu cùng lúc trên cùng một kênh truyền. CSMA/CA sử dụng các biện pháp như gói tin RTS (Request to Send) và CTS (Clear to Send) để giao tiếp và điều phối quyền truyền dữ liệu.
Nguyên tắc hoạt động
CSMA/CA hoạt động theo các bước sau:
- Cảm nhận kênh truyền: Khi một thiết bị muốn gửi dữ liệu, nó sẽ kiểm tra kênh truyền để xác định xem có thiết bị nào khác đang truyền hay không.
- Đợi khi kênh bận: Nếu kênh đang bận, nút sẽ chờ cho đến khi kênh rảnh, áp dụng thuật toán back-off để tránh va chạm.
- Gửi yêu cầu truyền: Khi kênh rảnh, nút sẽ gửi một gói tin RTS đến nút đích thông báo rằng nó muốn gửi dữ liệu.
- Chờ phản hồi: Nút đích sẽ gửi gói tin CTS nếu sẵn sàng nhận dữ liệu, đồng thời thông báo cho các nút khác để tránh việc gửi dữ liệu trong thời gian này.
- Truyền dữ liệu: Sau khi nhận được CTS, nút gửi sẽ truyền dữ liệu của mình.
- Xác nhận nhận dữ liệu: Nút đích gửi gói tin ACK để xác nhận dữ liệu đã được nhận.
- Xử lý va chạm: Nếu không nhận được CTS hoặc ACK, nút sẽ áp dụng thuật toán back-off trước khi thử gửi lại.
Hiệu suất
Mặc dù hiệu suất của CSMA/CA không cao như CSMA/CD do thời gian chờ và cảm nhận, nhưng trong môi trường không dây, nơi mà phát hiện va chạm có thể gặp khó khăn, CSMA/CA cho thấy hiệu quả lớn khi giảm thiểu số lần va chạm.
5. Giao thức CSMA/CD (CSMA Collision Detection)
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) là giao thức cho phép các thiết bị trên mạng Ethernet có dây phát hiện va chạm. Khi hai thiết bị truyền dữ liệu cùng lúc, sẽ xảy ra va chạm, làm hỏng thông tin được gửi. CSMA/CD giúp ngăn chặn việc truyền tiếp khi va chạm xảy ra, đồng thời thực hiện các bước để khôi phục kết nối.
Nguyên tắc hoạt động
CSMA/CD hoạt động theo các nguyên tắc cơ bản:
- Kiểm tra kênh: Trước khi truyền, thiết bị sẽ kiểm tra kênh truyền để xác định xem có kênh nào đang được sử dụng hay không.
- Truy cập nhiều thiết bị: Nhiều thiết bị có khả năng truy cập vào cùng một kênh và gửi dữ liệu.
- Phát hiện va chạm: Trong quá trình truyền, nếu phát hiện va chạm, thiết bị sẽ ngừng truyền và gửi tín hiệu JAM để báo cho các thiết bị khác biết có va chạm xảy ra.
Hiệu suất
Hiệu suất của CSMA/CD phụ thuộc vào tải trọng mạng. Đạt hiệu suất cao nhất khi số va chạm và nghẽn mạng thấp. Khi tải trọng mạng tăng, số va chạm cũng tăng, làm giảm hiệu suất. CSMA/CD vẫn có hiệu suất tốt hơn so với các giao thức truy cập ngẫu nhiên khác vì nó giảm thiểu thời gian và năng lượng lãng phí trong các va chạm.