Vấn đề xử lý lỗi Vấn đề xử lý lỗi Bởi: unknown Vấn đề xử lý lỗi Bộ mã phát lỗi Khi truyền tải chuỗi bit, lỗi phát sinh ra, bit biến thành bit hay ngược lại Ta định nghĩa tỷ lệ lỗi tỷ số sau: τ = Số bít bị lỗi / Tổng số bít truyền Tỷ lệ lỗi có giá trị từ 10-5 đến 10-8 Tùy thuộc vào loại ứng dụng, lỗi có mức độ nghiêm trọng khác nhau, cần có chế cho phép phát lỗi sửa lỗi Các thống kê cho thấy 88% lỗi xẩy sai lệch bit 10% lỗi xảy sai lệch bit kề Chính ta ưu tiên cho vấn đề phát lỗi bit sửa đổi chúng cách tự động Với ý tưởng thế, ta sử dụng mã phát lỗi: bên cạnh thông tin hữu ích cần truyền đi, ta thêm vào thông tin điều khiển Bên nhận thực việc giải mã thông tin điều khiển để phân tích xem thông tin nhận xác hay có lỗi Mô hình xử lý lỗi truyền liệu(H4.5) Thông tin điều khiển đưa vào theo chiến lược Chiến lược thứ gọi mã sửa lỗi (Error-correcting codes) chiến lược thứ hai gọi mã phát lỗi (Error-detecting codes) Bộ mã sửa lỗi cho phép bên nhận tính toán suy 1/7 Vấn đề xử lý lỗi thông tin bị lỗi (sửa liệu bị lỗi) Trong mã phát lỗi cho phép bên nhận phát liệu có lỗi hay không Nếu có lỗi bên nhận yêu cầu bên gởi gởi lại thông tin Với tốc độ đường truyền ngày cao, người ta thấy việc gởi lại khung thông tin bị lỗi tốn so với việc tính toán để suy giá trị ban đầu liệu bị lỗi Chính đa số hệ thống mạng ngày chọn mã phát lỗi Những mã phát lỗi (Error-Detecting Codes) Có nhiều sơ đồ phát lỗi, có sơ đồ thông dụng là: • Kiểm tra chẵn lẻ (Parity checks) • Kiểm tra thêm theo chiều dọc (Longitudinal reduncy check) • Kiểm tra phần dư tuần hoàn (Cyclic redundancy check) Kiểm tra chẵn lẻ (Parity Check) Sơ đồ phát bit lỗi đơn giản nối bit chẵn-lẻ vào cuối từ khung Một ví dụ tiêu biểu việc truyền ký tự ASCII, mà bit chẵn-lẻ nối vào ký tự ASCII bit Giá trị bit lựa chọn cho có số chẵn bit 1, với kiểm tra chẵn (even parity) số lẻ bit 1, với kiểm tra lẻ (odd parity) Ví dụ, bên gởi truyền ký tự ASCII G ( mã ASCII là1110001) dùng phương pháp kiểm tra lẽ, nối bit truyền 11100011 Bên nhận kiểm tra ký tự nhận tổng bit lẻ, xem lỗi Nếu bit số lẻ bit bị lỗi đảo ngược rõ ràng bên nhận phát lỗi Tuy nhiên, hai hay số chẵn bit bị lỗi đảo ngược không phát lỗi Trên thực tế xung nhiễu lại thường đủ dài để phá hủy bit, đặc biệt với tốc độ liệu cao Do đó, cần phải có phương pháp cải thiện trường hợp 2/7 Vấn đề xử lý lỗi Kiểm tra thêm theo chiều dọc (Longitudinal Redundancy Check or Checksum) Kiểm tra chiều dọc tuần hoàn(H4.6) Có thể cải thiện sơ đồ cách dùng phương pháp LRC Trong phương pháp này, khung xem khối nhiều ký tự xếp theo dạng hai chiều, việc kiểm tra thực chiều ngang lẫn chiều dọc Theo chiều ngang, ký tự thêm vào bit kiểm tra chẵn lẽ trường hợp trên, gọi bit Kiểm tra chiều ngang VRC (Vertical Redundancy Check) H4.6 Kiểm tra chiều dọc tuần hoànTheo chiều dọc, cung cấp thêm ký tự kiểm tra, gọi ký tự Kiểm tra chiều dọc LRC (Longitudinal Redundancy Check) hay Checksum Trong đó, bít thứ i ký tự bit kiểm tra cho tất bit thứ i tất ký tự khối Các phép đo việc dùng hai VRC LRC giảm tỷ lệ lỗi không phát hai đến bốn bậc so với dùng VRC Hãy xem trường hợp bit ký tự bị lỗi Khi bên nhận tính toán bit VRC cho ký tự 1, kiểm tra với bit VRC nhận, không phát lỗi Tuy nhiên, tính toán ký tự LRC, bit ký tự khác với bit ký tự LRC nhận được, phát lỗi Tuy nhiên, sơ đồ thật tốt Bây giờ, giả sử bit ký tự bị lỗi, phương pháp không phát điểm sai 3/7 Vấn đề xử lý lỗi Kiểm tra phần dư tuần hoàn (Cyclic Redundancy Check) Để cải tiến nhà thiết kế dùng kỹ thuật dễ dàng hiệu gọi kiểm tra phần dư tuần hoàn, sử dụng số phương pháp cài đặt khác như: modulo 2, đa thức, ghi dịch cổng Exclusive-or Các thủ tục với modulo diễn sau Với thông điệp M có k bit cần gởi đi, bên gởi nối vào cuối thông điệp chuỗi F có r bit, gọi Chuỗi kiểm tra khung (FCS: Frame Check Sequence) Chuỗi kiểm tra khung tính toán cho khung kết T hình thành từ việc nối M với F (gồm k + r bit) chia hết số P định trước Bên gởi gởi T Khi bên nhận nhận T, thực phép chia modulo T cho P Nếu phép chia không hết, tức có số dư, bên nhận xác định khung T bị lỗi, ngược lại lỗi Nếu khung lỗi, bên nhận tách thông điệp M từ T, k bits trọng số cao T Phương pháp dùng phép chia modulo việc chia T cho P, phép toán modulo dùng phép cộng nhị phân không nhớ phép toán Exclusive-or Ví dụ sau mô tả phép toán cộng nhân modulo 2: 1111 + 1010 0101 11001 x 11 11001 11001 101011 • Giả sử ta có: ◦ M: Thông điệp k bit cần gởi sang bên nhận ◦ F : Chuỗi kiểm tra khung FCS gồm r bit thông tin điều khiển gởi theo M để giúp bên nhận phát lỗi ◦ T =MF khung (k + r) bit, hình thành cách nối M F lại với T truyền sang bên nhận, với r < k • Với M (k bit) , P (r+1 bit), F (r bit), T (k+r bit), thủ tục tiến hành để xác định checksum F tạo khung truyền sau: ◦ Nối r bit vào cuối M, hay thực phép nhân M với 2r ◦ Dùng phép chia modulo chia chuỗi bit M*2r cho P ◦ Phần dư phép chia cộng với M*2r tạo thành khung T truyền ◦ Trong P chọn dài F bit, hai bit cao thấp phải 4/7 Vấn đề xử lý lỗi Ví dụ: • Giả sử ta có: ◦ M = 1010001101 (10 bit) ◦ P = 110101 (6 bit) ◦ FCS cần phải tính toán ( bit) • Ta thực bước sau: ◦ Tính M*25 = 101000110100000 ◦ Thực phép chia modulo M*25 cho P hình dưới, ta phần dư F = 01110 ◦ Tạo khung gởi T = M*2r + F = 101000110101110 Ngoài người ta sử dụng phương pháp đa thức để biểu diễn phương pháp kiểm tra phần dư tuần hòan Trong phương pháp người ta biểu diễn chuỗi nhị 5/7 Vấn đề xử lý lỗi phân dạng đa thức biến x với hệ số nhị phân Các hệ số tương ứng với bit chuỗi nhị phân cần biểu diễn Giả sử ta có M=110011và P = 11001, M P biểu diễn lại đa thức sau: M(x) = x5 + x4 + x + P(x) = x4 + x3 + Những phép toán đa thức modulo Quá trình tính CRC mô tả dạng biểu thức sau: 6/7 Vấn đề xử lý lỗi 7/7 .. .Vấn đề xử lý lỗi thông tin bị lỗi (sửa liệu bị lỗi) Trong mã phát lỗi cho phép bên nhận phát liệu có lỗi hay không Nếu có lỗi bên nhận yêu cầu bên gởi gởi lại... khác với bit ký tự LRC nhận được, phát lỗi Tuy nhiên, sơ đồ thật tốt Bây giờ, giả sử bit ký tự bị lỗi, phương pháp không phát điểm sai 3/7 Vấn đề xử lý lỗi Kiểm tra phần dư tuần hoàn (Cyclic... kiểm tra ký tự nhận tổng bit lẻ, xem lỗi Nếu bit số lẻ bit bị lỗi đảo ngược rõ ràng bên nhận phát lỗi Tuy nhiên, hai hay số chẵn bit bị lỗi đảo ngược không phát lỗi Trên thực tế xung nhiễu lại thường