Trong khi truyền đi một byte trong hệ thống máy tính thì khả năng xảy ra một lỗi do hỏng hoặc do gây nhiễu là khá lớn, đặc biệt là trong khoảng cách xa. Các kênh vào-ra thường xảy ra nhiều lỗi, đặc biệt là khi truyền số liệu. Phần lớn các hệ thống đều có các
Mạng truyền thông – Bài 6 Trang 4
phương pháp phát hiện và sau đó sửa lỗi. Quá trình sửa lỗi thường khó hơn rất nhiều so với phát hiện lỗi. Có thể chia phương pháp xử lý lỗi ra làm 2 nhóm:
Nhóm phát hiện lỗi và thông báo cho bên phát biết để phát lại tin.
Phát hiện và tự sửa lỗi.
1. Phương pháp bit chẵn lẻ (Parity)
Sơ đồ phát hiện bit lỗi đơn giản nhất là nối một bit chẵn-lẻ vào cuối của mỗi từ trong khung. Một ví dụ tiêu biểu là việc truyền các ký tự ASCII, mà trong đó một bit chẵn-lẻ được nối vào mỗi ký tự ASCII 7 bit. Giá trị của bit này được lựa chọn sao cho có một số chẵn của bit 1, với kiểm tra chẵn (even parity) hoặc một số lẻ của bit 1, với kiểm tra lẻ (odd parity).
Ví dụ, nếu bên gửi đang truyền một ký tự ASCII G ( mã ASCII là1110001) và đang dùng phương pháp kiểm tra lẽ, nó sẽ nối một bit 1 và truyền đi 11100011. Bên nhận sẽ kiểm tra ký tự nhận được và nếu tổng của các bit 1 là lẻ, nó xem như không có lỗi. Nếu một bit hoặc một số lẻ bất kỳ các bit bị lỗi đảo ngược thì rõ ràng bên nhận sẽ phát hiện được lỗi. Tuy nhiên, nếu hai hay một số chẵn bất kỳ các bit bị lỗi đảo ngược thì nó sẽ không phát hiện được lỗi. Trên thực tế những xung nhiễu lại thường đủ dài để có thể phá hủy hơn một bit, đặc biệt là với tốc độ dữ liệu cao. Do đó, cần phải có một phương pháp cải thiện trường hợp này.
Cải tiến
Thuật toán được cải thiện bằng các phương pháp kiểm tra dọc (LRC –Longitudinal Redundancy Check) và phương pháp kiểm tra ngang VRC (Vertical Redundancy Check).Trong phương pháp này, khung được xem như một khối nhiều ký tự được sắp xếp theo dạng hai chiều, và việc kiểm tra được thực hiện cả chiều ngang lẫn chiều dọc.
Phương pháp VRC: Theo chiều ngang, mỗi ký tự được thêm vào một bit kiểm tra chẵn lẽ như trường hợp trên, và được gọi là bit Kiểm tra chiều ngang VRC (Vertical Redundancy Check)
Phương pháp LRC: Theo chiều dọc, cung cấp thêm một ký tự kiểm tra, được gọi là ký tự Kiểm tra chiều dọc LRC (Longitudinal Redundancy Check) hay Checksum. Trong đó, bít thứ i của ký tự này chính là bit kiểm tra cho tất cả các bit thứ i của tất cả các ký tự trong khối
Ví dụ: về các phương pháp kiểm tra được minh họa ở bản sau
Mạng truyền thông – Bài 6 Trang 5
Các phép đo chỉ ra rằng việc dùng cả hai VRC và LRC giảm đi tỷ lệ lỗi không phát hiện được hai đến bốn bậc so với dùng chỉ VRC
2. Tính theo đa thức chuẩn
Cách tính Check sum được thực hiện như sau:
Giả sử ta nhận được bản tin M(x).
Nếu đa thức chuẩn G(x) có bậc là r, ta bổ sung thêm r bit 0 vào cuối bản tin và thu được m+r bit tương uwnsgs đa thức xrM(x).
Chi xrM(x) theo module 2 cho G(x). Kết quả ta thu được số dư là T(x) là check sum được phát đi
Các đa thức chuẩn thường được sử dụng để tính tổng kiểm tra là:
CRC-12 = x12 + x11 + x3 + x + 1 (dùng cho ký tự 6 bits)
CRC-16 = x16 + x15 + x2 + 1 (dùng cho ký tự 8 bits)
CRC-CCITT = x16 + x12 + x5 + 1 (dùng cho ký tự 16 bits)
Ví dụ: Khung tin ban đầu: 1101011000, G(x) = x4 + x + 1 vậy r = 4, chuỗi bit thêm sẽ
là 10011. Ta có xrM(x) = 1101011011 0000. Chia xrM(x) theo module 2 cho G(x), ta được thông số kiểm tra tổng T(x) = 1110.
1101011011 0000
10011
010011
Mạng truyền thông – Bài 6 Trang 6
10011
0000010110
10011
0010100
10011
001110 Số dư là 1110
Khung tin được truyền đi là: 1110011011 1110
3. Mã sửa sai
Để sửa sai một bit ta dùng tập mã Hamming dựa trên các “bit chẵn lẻ” được rải vào các bit số liệu trong từng byte theo nguyên lý cân bằng chẵn lẻ để chỉ ra các bit lỗi.
Nếu trong bản tin có k bit số “bit chẵn lẻ” là r, thì số bit tin và “bit chẵn lẻ” sẽ phát đi
là n = k+r. r bit kiểm tra luôn các vị trí 1,2,4,8,.., 2r-1 và được tạo bởi cộng module 2 giá trị nhị phân của các vị trí có bit ‘1’ của từ mã. Vì các bit kiểm tra chiếm vị trí 2i với i = 0,1,2,….., r-1 nên độ dài cực đại củ các từ mã Hamming là n ≤ 2r – 1 và từ dãy số cực đại của các bit tin được bảo vệ là: k ≤ (2r-1-r). Từ đây ta xác định được r
Ví dụ bản tin 11 bit (10101011001) được bảo vệ bởi mã Hamming.
Từ điều kiện 11 ≤ 2r – 1 –r, ta cần 4 bit kiểm tra (r=4) để tạo mã Hamming (n=11+4=15)
Thiết lập kết nối
Việc thiết lập nối kết nghe có vẻ dễ dàng, nhưng khi thực hiện có thể sẽ gặp nhiều rắc rối. Thoạt nhìn, một phiên thiết lập nối kết sẽ diễn ra như sau: một bên sẽ gửi TPDU yêu cầu nối kết (Connection Request - CR) đến bên kia, bên kia sẽ gửi một TPDU trả lời chấp nhận nối kết (Connection Accepted - CA).
Vấn đề phát sinh khi mạng làm mất, tồn trữ quá lâu hay làm trùng lắp các gói tin do hai thực thể vận chuyển trao đổi qua lại với nhau. Ví dụ một tình huống như sau: tiến trình 1 gửi yêu cầu kết nối đến tiến trình 2, yêu cầu này bị các mạng con trung gian trì hoãn do tắc nghẽn. Mãn kỳ, tiến trình 1 gửi lại yêu cầu nối kết, vừa lúc đó yêu cầu nối kết bị trì hoãn cũng đến tiến trình 2. Giải thuật thiết lập nối kết phổ biến nhất là giải thuật bắt tay 3 chiều (three-way hand-shake). Xin xem các tình huống được mô phỏng trong hình dưới đây.
Mạng truyền thông – Bài 6 Trang 7
Vị trí cac
bit 1
Giá trị nhị phân
1 1 1 1 1 1 9 8 7 6 5 4 3 2 1
5 4 3 2 1 0
15 1111 1 0 1 0 0 0 1 0 1 0 0 1 1 0 0
13 1101
9 1001
7 0111
4 0100
3 0011 (11)
Vị trí sai bit 11