DCN - Giao thức và điều khiển liên kết dữ liệu
Lớp liên kết dữ liệu chịu trách nhiệm thực hiện luồng điểm-điểm và cơ chế kiểm soát lỗi.
Kiểm soát lưu lượng
Khi khung dữ liệu (dữ liệu Lớp-2) được gửi từ máy chủ này sang máy chủ khác qua một phương tiện duy nhất, yêu cầu người gửi và người nhận phải hoạt động ở cùng tốc độ. Tức là, người gửi gửi ở tốc độ mà người nhận có thể xử lý và chấp nhận dữ liệu. Điều gì sẽ xảy ra nếu tốc độ (phần cứng / phần mềm) của người gửi hoặc người nhận khác nhau? Nếu người gửi gửi quá nhanh, người nhận có thể bị quá tải, (đầm lầy) và dữ liệu có thể bị mất.
Hai loại cơ chế có thể được triển khai để kiểm soát luồng:
Stop and WaitCơ chế kiểm soát luồng này buộc người gửi sau khi truyền một khung dữ liệu phải dừng lại và đợi cho đến khi nhận được thông báo của khung dữ liệu đã gửi.
Sliding Window
Trong cơ chế điều khiển luồng này, cả người gửi và người nhận đều đồng ý về số lượng khung dữ liệu mà sau đó xác nhận sẽ được gửi đi. Như chúng ta đã tìm hiểu, cơ chế kiểm soát luồng dừng và chờ gây lãng phí tài nguyên, giao thức này cố gắng tận dụng các tài nguyên bên dưới càng nhiều càng tốt.
Kiểm soát lỗi
Khi khung dữ liệu được truyền đi, có một xác suất là khung dữ liệu có thể bị mất trong quá trình truyền hoặc nó được nhận bị hỏng. Trong cả hai trường hợp, người nhận không nhận được khung dữ liệu chính xác và người gửi không biết bất kỳ điều gì về bất kỳ tổn thất nào. Trong trường hợp đó, cả người gửi và người nhận đều được trang bị một số giao thức giúp họ phát hiện các lỗi truyền tải như mất dữ liệu- khung. Do đó, người gửi truyền lại khung dữ liệu hoặc người nhận có thể yêu cầu gửi lại khung dữ liệu trước đó.
Yêu cầu đối với cơ chế kiểm soát lỗi:
Error detection - Người gửi và người nhận, cả hai hoặc bất kỳ, phải chắc chắn rằng có một số lỗi trong quá trình vận chuyển.
Positive ACK - Khi người nhận nhận được một khung chính xác, nó sẽ xác nhận nó.
Negative ACK - Khi người nhận nhận được một khung bị hỏng hoặc một khung trùng lặp, nó sẽ gửi lại một NACK cho người gửi và người gửi phải truyền lại đúng khung.
Retransmission: Người gửi duy trì đồng hồ và đặt khoảng thời gian chờ. Nếu một xác nhận của một khung dữ liệu đã truyền trước đó không đến trước thời gian chờ, người gửi sẽ truyền lại khung đó, nghĩ rằng khung đó hoặc thông báo của nó bị mất khi truyền.
Có ba loại kỹ thuật có sẵn mà lớp liên kết dữ liệu có thể triển khai để kiểm soát lỗi bằng Yêu cầu lặp lại tự động (ARQ):
ARQ dừng và chờ
Quá trình chuyển đổi sau có thể xảy ra trong ARQ Dừng và Chờ:
- Người gửi duy trì một bộ đếm thời gian chờ.
- Khi một khung được gửi đi, người gửi sẽ bắt đầu bộ đếm thời gian chờ.
- Nếu xác nhận khung đến đúng lúc, người gửi sẽ truyền khung tiếp theo trong hàng đợi.
- Nếu xác nhận không đến kịp thời, người gửi sẽ giả định rằng khung hoặc thông báo của nó bị mất trong quá trình vận chuyển. Người gửi truyền lại khung và bắt đầu bộ đếm thời gian chờ.
- Nếu nhận được một xác nhận phủ định, người gửi sẽ truyền lại khung.
Go-Back-N ARQ
Cơ chế dừng và chờ của ARQ không sử dụng tài nguyên ở mức tốt nhất. Khi nhận được xác nhận, người gửi sẽ không sử dụng và không làm gì cả. Trong phương pháp Go-Back-N ARQ, cả người gửi và người nhận đều duy trì một cửa sổ.
Kích thước cửa sổ gửi cho phép người gửi gửi nhiều khung mà không nhận được xác nhận của những khung trước đó. Cửa sổ nhận cho phép người nhận nhận nhiều khung hình và xác nhận chúng. Người nhận theo dõi số thứ tự của khung đến.
Khi người gửi gửi tất cả các khung trong cửa sổ, nó sẽ kiểm tra số thứ tự mà nó đã nhận được xác nhận tích cực. Nếu tất cả các khung đều được xác nhận tích cực, người gửi sẽ gửi tập hợp các khung tiếp theo. Nếu người gửi thấy rằng nó đã nhận được NACK hoặc không nhận được bất kỳ ACK nào cho một khung cụ thể, nó sẽ truyền lại tất cả các khung mà sau đó nó không nhận được bất kỳ ACK dương nào.
ARQ lặp lại có chọn lọc
Trong Go-back-N ARQ, giả định rằng bộ thu không có bất kỳ không gian đệm nào cho kích thước cửa sổ của nó và phải xử lý từng khung hình khi nó xuất hiện. Điều này buộc người gửi phải truyền lại tất cả các khung không được thừa nhận.
Trong ARQ có chọn lọc-lặp lại, người nhận trong khi theo dõi số thứ tự, đệm các khung trong bộ nhớ và gửi NACK cho duy nhất khung bị thiếu hoặc bị hỏng.
Người gửi trong trường hợp này, chỉ gửi gói mà NACK được nhận.