CSMA/CD là phương pháp kiểm soát truy cập phương tiện được sử dụng trong công nghệ Ethernet mạng thời kỳ đầu khi có cấu trúc liên kết Bus được chia sẻ và mỗi nút (máy tính) được kết nối bằng cáp đồng trục. Ngày nay, Ethernet là kết nối Full Duplex và cấu trúc liên kết là mạng hình sao (được kết nối qua Switch hoặc Router) hoặc kết nối điểm điểm trực tiếp. Vì vậy CSMA/CD không được sử dụng nhưng vẫn được hỗ trợ.
Nếu một mạng có nhiều trạm trên một liên kết và tất cả đều muốn truyền dữ liệu qua kênh. Các trạm đều muốn truy cập vào liên kết kênh để truyền dữ liệu của mình. Điều này khiến phát sinh vấn đề va trạm gây xung đột dữ liệu giữa các trạm khác nhau.
CSMA/CD là kỹ thuật để giải quyết vấn đề này. Theo đó, các trạm khác nhau sẽ tuân theo giao thức này với một số quy tắc để phát hiện xung đột. Khi thấy xung đột xảy ra, giao thức CSMA/CD sẽ quyết định trạm nào sẽ truyền dữ liệu đến đích mà không bị hỏng.
Hãy xem ví dụ cụ thể dưới đây để hình dung chi tiết nhất tại sao cần có CSMA/CD:
Hình ảnh trên cho thấy mạng HUB làm trung tâm với 4 máy chủ A, B, C, D. Nếu cùng một lúc máy chủ A và C đều muốn gửi dữ liệu tới Máy chủ B. Điều này khiến xung đột dữ liệu xảy ra. Sau khi xảy ra xung đột các gói tin sẽ phải gửi lại.
CSMA/CD hoạt động thế nào?
Giao thức này hoạt động khá đơn giản:
Bước 1: Kiểm tra xem máy chủ nguồn đã sẵn sàng truyền gói dữ liệu chưa.
Bước 2: Kiểm tra xem đường truyền có ở trạng thái rảnh không.
Máy chủ nguồn phải tiếp tục kiểm tra xem liên kết có ở trạng thái rảnh hay không. Việc này khiến máy chủ liên tục cảm nhận được truyền từ các nút khác. Máy nguồn gửi dữ liệu giá trên liên kết.
Nếu nó không nhận được tín hiệu xung đột nào thì có nghĩa là liên kết hiện đang bận. Nhưng nếu nó cảm nhận được sóng mạng rảnh và không có xung đột thì nó sẽ gửi dữ liệu. Nếu không sẽ không gửi.
Bước 3: Truyền dữ liệu và kiểm tra xung đột.
Máy chủ nguồn gửi dữ liệu của mình trên liên kết. CSMA/CD không sử dụng hệ thống xác nhận. Nó kiểm tra việc truyền thành công hay không thành công thông qua tín hiệu va chạm. Trong quá trình truyền, nếu nút nhận được tín hiệu xung đột thì quá trình truyền sẽ dừng. Sau đó, trạm sẽ truyền tín hiệu kẹt trên liên kết và đợi các khoảng thời gian ngẫu nhiên trước khi gửi lại khung.
Sau 1 khoảng thời gian nó sẽ cố gắng truyền dữ liệu và lặp lại quá trình trên.
Bước 4: Nếu không phát hiện xung đột trong quá trình truyền, người gửi hoàn tất việc truyền khung và đặt lại bộ đếm.
Làm sao để máy chủ xác định dữ liệu bị xung đột hay không?
Hãy xem ví dụ thực tế sau:
Theo hình trên ta có hai trạm A và B tượng trưng cho 2 máy chủ. Giả sử thời gian truyền giữa 2 trạm là 1H. Cùng 1 lúc cả trạm A và B đều truyền dữ liệu vậy sau 30P sau thì va chạm sẽ xảy ra.
Khi xảy ra va chạm, tín hiệu va chạm sẽ được gửi đến cả trạm A và B để thông bảo và phải mất 30P nữa để tới nơi. Vì vậy kể từ lúc bắt đầu gửi gói tin đến lúc nhận được tín hiệu va chạm sẽ bằng 1H.
Đây là mình chỉ giả sử vậy thôi chứ tốc độ truyền dữ liệu chỉ tính bằng giây và mili giây mà thôi.
Làm sao xác định được dữ liệu của một trạm bị xung đột?
Tiếp tục ví dụ ở trên, lần này không phải cả 2 trạm A và B đều truyền dữ liệu cùng lúc nữa. Mà sau khi A truyền dữ liệu được 59P rồi thì trạm B mới bắt đầu truyền dữ liệu. Lúc này xung đột vẫn xảy ra và thông báo va chạm phải mất 59P nữa để thông báo cho trạm A. Do đó A nhận được thông báo va chạm sau 2x59P, tức là 2xTp (tp là thời gian lan truyền).
Do đó, để ràng buộc chặt chẽ hơn, phát hiện va chạm thì Tt phải lớn hơn hoặc bằng 2*Tp. Đây chính là thời gian tối đa mà hệ thống xác định xem liệu xung đội có phải của nó không? Ở trong ví dụ thời gian tối đa sẽ là 2x59P bằng 118P nếu nhỏ hơn 118P thì đây không phải là tín hiệu của trạm.
Ưu điểm và nhược điểm của CSMA/CD
Về ưu điểm:
- Đơn giản và áp dụng phổ biến: CSMA/CD là giao thức được sử dụng rộng rãi cho mạng Ethernet và dễ dàng triển khai và sử dụng vì đơn giản.
- Tính công bằng: Trong mạng CSMA/CD, tất cả các thiết bị đều có quyền truy cập như nhau vào phương tiện truyền dẫn, điều này đảm bảo tính công bằng trong truyền dữ liệu.
- Hiệu quả: CSMA/CD cho phép sử dụng hiệu quả môi trường truyền dẫn bằng cách ngăn chặn các xung đột không cần thiết và giảm tắc nghẽn mạng.
Về nhược điểm:
- khả năng mổ rộng hạn chế: CSMA/CD có những hạn chế về khả năng mở rộng và có thể không phù hợp với các mạng lớn có số lượng thiết bị cao.
- Gói tin dễ va chạm: Mặc dù CSMA/CD có thể phát hiện va chạm nhưng nó không thể ngăn chặn chúng xảy ra. Xung đột có thể dẫn đến hỏng dữ liệu, trễ truyền lại và giảm hiệu suất mạng.
- Sử dụng băng thông không hiệu quả: CSMA/CD sử dụng thuật toán dự phòng ngẫu nhiên có thể dẫn đến việc sử dụng băng thông mạng không hiệu quả nếu thiết bị liên tục gặp phải xung đột.
- Dễ bị tấn công bảo mật: CSMA/CD không cung cấp bất kỳ tính năng bảo mật nào và giao thức dễ bị tấn công bảo mật như đánh hơi gói và giả mạo.
Kết luận:
Như vậy mình đã vừa giới thiệu với bạn về giao thức CSMA/CD và cách nó hoạt động như thế nào? Hiện này CSMA/CD không được sử dụng nữa vì các thiết bị HUB đã được thay thế phần lớn bởi Switch.
Nếu bạn có thắc mắc gì thêm, hãy để lại dưới phần bình luận để được hỗ trợ giải đáp nhanh nhất!
Xem thêm bài viết:
Sự khác biệt giữa cáp thẳng và cáp chéo? Khi nào nên dùng cáp thẳng và cáp chéo?
https://vienthongxanh.vn/cac-tieu-chuan-ieee-ethernet/