trình truyền tải. Các tầng trên làm việc trên một số quan điểm rộng rãi về cấu trúc mạng và không nhận thức được tiến trình dữ liệu phần cứng thực sự. Hầu hết các ứng dụng không có tính năng mà dự kiến được trong trường hợp chúng nhận dữ liệu lỗi. Các ứng dụng như âm thanh và video có thể không bị ảnh hưởng với một số lỗi và chúng vẫn hoạt động tốt.
Tầng liên kết-dữ liệu sử dụng một số kỹ thuật kiểm soát lỗi mà khung dữ liệu (luồng bit dữ liệu) được truyền với mức độ chính xác nhất định. Nhưng để hiểu phương thức mà các lỗi được kiểm soát, nó là quan trọng để biết về các kiểu lỗi có thể xảy ra.
Các kiểu lỗi
Có 3 kiểu lỗi:
Lỗi bit đơn
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 62
Lỗi nhiều bit
Khung dữ liệu được nhận có nhiều hơn một bit bị lỗi.
Lỗi từng loạt
Khung dữ liệu nhận có nhiều hơn một bit liên tiếp bị lỗi. Kỹ thuật kiểm soát lỗi có thể bao gồm hai cách sau:
Phát hiện lỗi
Chỉnh sửa lỗi
Phát hiện lỗi
Các lỗi trong các khung dữ liệu được nhận được phát hiện bằng kỹ thuật Parity Check and Cyclic Redendancy Check. Trong cả hai trường hợp, một vài bit thêm được gửi song song với dữ liệu thực để xác nhận rằng các bit nhận tại đầu trạm khác là giống với khi chúng được gửi. Nếu kiểm tra bộ đếm tại trạm nhận lỗi, các bit được xem như là bị lỗi.
Kiểm tra chẵn lẻ (Prity Check)
Một bit thêm được gửi song song với các bit đầu để báo hiệu số lượng bit có giá trị bằng 1s (tạo 1 số học) trong một nhóm bit cho trước là một số chẵn hay số lẻ.
Người gửi trong khi tạo một khung dữ liệu tính số 1 trong đó. Ví dụ, nếu ngang bậc chẵn được sử dụng và 1s là chẵn thì khi đó một bit với giá trị 0 được thêm vào. Theo cách này thì 1s vẫn là chẵn. Nếu 1s là lẻ, để làm cho một bit chẵn, giá trị 1 được thêm vào.
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 63 Trạm nhận đơn giản chỉ cần tính số 1s trong khung dữ liệu. Nếu số 1s là chẵn thì ngang bậc chẵn được sử dụng, khung được cho là không bị lỗi và được chấp nhận. Nếu tính số 1s là lẻ thì ngang bậc lẻ được sử dụng, khung vẫn không bị lỗi.
Nếu một bit đơn bị lỗi khi truyền tải, trạm nhận có thể phát hiện nó bằng cách tính số 1s. nhưng khi nhiều hơn một bit bị lỗi, thì nó rất khó để trạm nhận có thể phát hiện ra lỗi.
Cyclic Redundancy Check (CRC)
CRC là một hướng tiếp cận khác để phát hiện lỗi nếu khung dữ liệu được nhận chứa dữ liệu có hiệu lực. Kỹ thuật này bao gồm sự phân chia nhị phaann của các bit dữ liệu được gửi đị. Số chia được tạo ra bằng cách sử dụng đa thức. Trạm gửi thực hiện hoạt động chia trên các bit được gửi và tính toán số dư. Trước khi gửi các bit thực sự, người gửi thêm phần dư vào cuối các bit dữ liệu thực. Các bit dữ liệu thực cộng với phần dư của nó được gọi là một codeword. Người gửi truyền tải các bit dữ liệu như là các codeword.
Tại đầu nhận khác, người nhận thực hiện hoạt động chia trên các codeword sử dụng cùng một số chia CRC. Nếu người nhận nhận được kết quả chứa tất cả là số 0, các bit dữ liệu được chấp nhận, nếu không thì, các dữ liệu được cho là bị lỗi.
http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Trang 64
Chỉnh sửa lỗi
Trong thế giới kỹ thuật số, chỉnh sửa lỗi có thể được thực hiện theo hai cách:
Chỉnh sửa lỗi ngược về phía trước (BEC) Khi người nhận phát hiện một lỗi trong dữ liệu nhận được, nó gửi yêu cầu trở lại cho người gửi để truyền tải lại đơn vị dữ liệu.
Chỉnh sửa lỗi thuận chiều về phía sau (FEC) Khi người nhận phát hiện một vài lỗi trong dữ liệu nhận được, nó chạy mã chỉnh lỗi, mà giúp nó tự động phục hồi và để chỉnh sửa một vài loại lỗi.
Trong cách đầu tiên, BEC, là đơn giản và chỉ có thể được sử dụng một các hiệu quả khi việc truyền tải lại là không tốn kém. Ví dụ, các sợi quang học. Nhưng trong trường hợp truyền tải không dây, việc truyền tải lại có thể quá tốn kém. Trong trường hợp này, FEC được sử dụng.
Để chỉnh sửa lỗi trong khung dữ liệu, người nhận phải biết chính xác bit nào trong khung bị lỗi. Để xác định vị trí bit trong lỗi, các bit còn lại được sử dụng, đóng vai trò như là các bit ngang hàng (chẵn lẽ) để phát hiện lỗi. Ví dụ, chúng ta sử dụng các từ ASII (dữ liệu 7 bit), sau đó có 8 loại thông tin chúng ta cần: 7 bit đầu tiên để nói cho chúng ta biết bit nào là lỗi và bit còn lại để nói rằng nó không bị lỗi.
Với m bit dữ liệu, r bit thừa được sử dụng. r bit có thể cung cấp 2r kết nối của thông tin. Trong m+r codeword, sẽ không khả năng xảy ra mà r bit chính nó bị lỗi. Vì thế số lượng r bit được sử dụng phải thông báo về m+r vị trí cộng với thông tin không lỗi, ví dụ như m+r+1.
DCN - Giao thức và kiểm soát data-link