Professional Documents
Culture Documents
Cac Ky Thuat Phat Hien Loi Va Sua Sai
Cac Ky Thuat Phat Hien Loi Va Sua Sai
Cac Ky Thuat Phat Hien Loi Va Sua Sai
Việc phát hiện và sửa lỗi được thiết lập ở lớp kết nối dữ liệu hoặc lớp vận
chuyển trong mô hình OSI.
1. Tổng quan:
Khi dữ liệu được truyền đi giữa 2 DTE (Data Terminal Equipment – thiết bị đầu
cuối xử lý số liệu) đây là thiết bị lưu trữ và xử lý thông tin. Trong hệ thống truyền
số liệu hiện đại thì DTE thường là máy tính hoặc máy fax hoặc là trạm cuối
(terminal). Như vậy tất cả các ứng dụng của người sử dụng (chương trình, dữ liệu)
đều nằm trong DTE. Chức năng của DTE thường lưu trữ các phần mềm ứng dụng,
đóng gói dữ liệu rồi gửi ra DCE (thiết bị đầu cuối kênh dữ liệu – Data circuit
terminal equipment) hoặc nhận gói dữ liệu từ DCE theo một giao thức xác định
DTE trao đổi với DCE thông qua một chuẩn giao tiếp nào đó. Như vậy mạng
truyền số liệu chính là để nối các DTE lại cho phép chúng ta phân chia tài nguyên,
trao đổi dữ liệu và lưu trữ thông tin dung chung đặc biệt nếu các đường dây truyền
dẫn ở trong môi truyền xuyên nhiễu như mạng điện thoại công cộng, thì những tín
hiệu điện đại diện luồng bit rất dễ bị thay đổi do ảnh hưởng của các thiết bị điện
gần đó. Điều đó có nghĩa là tín hiệu đại diện cho bit 1 bị máy thu dịch ra như bit
nhị phân 0 và ngược lại.
Kiểm soát lỗi hướng tới (FEC-Forward Error Control): trong mỗi ký tự hay
mỗi frame dữ liệu được truyền đi có chứa thông tin bổ sung cần thiết để bên
thu phát hiện lỗi và có thể dò tìm vị trí của các bit lỗi. Sau đó chỉ cần đảo
ngược các bit lỗi để nhận được dữ liệu đúng.
Kiểm soát lỗi quay lui (Backward Error Control): Trong mỗi ký tự hay mỗi
frame dữ liệu được truyền đi chỉ chứa thông tin cần thiết để bên thu chỉ có
thể phát hiện ra lỗi. Một bộ điều khiển sẽ yêu cầu bên phát phát lại bản dữ
liệu đúng.
Trong thực tế, số lượng bit thêm vào để đạt được độ tin cần thiết trong điều
khiển hướng tới sẽ gia tăng nhanh chóng khi số lượng bit thông tin tăng lên. Do đó,
phương pháp điều khiển lỗi quay lui được sử dụng nhiều hơn trong các dạng truyền
số liệu và các hệ thống mạng.
Về bản chất, lỗi truyền số liệu là lỗi bit. Nếu tín hiệu mang dữ liệu nhị phân
được mã hóa, những thay đổi như thế có thể làm thay đổi ý nghĩa của dữ liệu.
Các quá trình vật lý sinh ra: đó là các lỗi xảy ra trong quá trình truyền số liệu
trên đường truyền vật lý. Bất cứ khi nào một tín hiệu điện từ di chuyển từ
một điểm này tới điểm khác, nó dễ bị nhiễu không đoán trước từ sức nóng,
từ tính và các dạng của điện. Sự nhiễu này có thể làm thay đổi hình dạng và
thời gian của tín hiệu.
Các thiết bị truyền thông gây ra: là các lỗi xẩy ra do chính các thiết bị tham
gia truyền số liệu gây ra.
Để xác định xác suất lỗi gói số liệu sử dụng công thức:
Về bản chất, lỗi có thể được chi thành 2 loại: là lỗi đơn và lỗi chum. Trong một
lỗi đơn bit, một bit 0 được thay đổi thành 1 hoặc 1 thành 0. Trong một lỗi bit chum
bit, nhiều bit bị thay đổi. ví dụ một nhiều xung hàng hoạt kéo dài 0.01 giây trên
đường truyền cùng với một tốc độ dữ liệu 1200 bps có thể thay đổi tất cả hoặc một
vài bit trong 12 bit thông tin.
Errors
Thật ngữ lỗi bit đơn có nghĩa là các lỗi bit riêng lẻ, phân bố ngẫu nhiên trong gói
số liệu.
Để hiểu tầm ảnh hưởng của thay đổi đó hình dung rằng mỗi nhóm 8 bit là một ký
tự ASC với một bit 0 được bổ sung vào bên trái. Trong hình vễ, 00000010 (ACSII
STX) được gửi đi, có nghĩa là ký tự bắt đầu, nhưng bên nhận lại nhận được
00001010 (ACSCII LF – line feed).
Các lỗi bit đơn là kiểu lỗi ít xảy ra trong truyền dữ liệu nối tiếp. Để hiểu lí
do tại sao, ta hãy hình dung người gửi thực hiện gửi dữ liệu với tốc độ 1 Mbps.
Điều đó có nghĩa là một bit chỉ kéo dài trong khoảng 1/1.000.000 giây hay 1 micro
giây. Để lỗi bit đơn xảy ra, nhiều phải nằm trong khoảng 1 micro giây, điều đó ít
khi xảy ra, nhiễu thường kéo dài hơn nhiều so với khoảng đó.
Tuy nhiên, lỗi bit đơn có thể xảy ra nếu gửi dữ liệu sử dụng truyền dữ liệu
song song. Ví dụ, nếu có 8 đường song song được sử dụng để gửi tất cả 8 bit của
một byte ở cùng một thời điểm, một trong những đường đó bị nhiễu, một bit có thể
bị thay đổi trong mỗi byte. Ví dụ như thực hiện truyền dẫn song song trong một
máy tính giữa CPU và bộ nhớ.
Thuật ngữ lỗi bit chum nghĩa là có 2 hay nhiều bit trong đơn vị dữ liệu có thay
đổi bit 1 thành bit 0 và từ 0 thành 1.
Trong
trường
hợp này,
0100010001000011 được gửi, nhưng bên nhận thì nhận được 0101110101000011.
Chú ý là lỗi bit hàng loạt không phải luôn luôn có nghĩa là xảy ra ở các bit liên tiếp
nhau. Một số bít nằm giữa có thể không bị ảnh hưởng.
Burst (Bùng nổ): là vùng trong đó BER cục bộ vượt quá một giá trị ngưỡng
nhất định. Burst bắt đầu và kết thúc bằng các lỗi.
Burst interval (khoảng lỗi chum): vùng giữa 2 vùng lỗi chum liên tiếp.
Cluster: vùng không có bất kì một bit đúng nào xen giữa.
Ký hiệu: 1 là bit đị lỗi, 0 là bit đúng (không bị lỗi), 0 x là một dãy liên tiếp x
bit đúng.
Lỗi ở một số môi trường có khuynh hướng bùng nổ
- Mặt dễ giải quyết: số liệu máy tính luôn được gửi thành các khối bit. Giả sử
rằng kích thước khối là 1000 bit, và tỉ lệ là 0.001. Nếu các lỗi là độc lập thì
hầu hết các khói đều chứa lỗi. Nếu các lỗi xuất hiện một cách bùng nổ trong
100 khối, thì tính trung bình chỉ có một hoặc hai khối trong 100 khối bị ảnh
hưởng. khi đó việc giải quyết các khối bit bị lỗi sẽ trở nên đơn giản.
- Mặt khó: khó phát hiện và sửa hơn so với các lỗi cô lập.
Phương pháp để phát hiện sai trong truyền số liệu là do dung dư thừa. Một cơ
chế dò tìm lỗi phải thảo mãn những yê cầu đặt ra cần phải gửi tất cả dữ liệu 2 lần.
Thiết bị nhận sau đó sẽ có thể thực hiện công việc so sánh bit-bit giữa hai phiên
bản dữ liệu. Bất kỳ sự khác nhau nào sẽ chỉ báo một lỗi và một cơ chế sửa lỗi phù
hợp sẽ được thiết lập tại đó. Hệ thống này sẽ hoàn thành một cách chính xác (các
lỗi bit lẻ được đưa ra bằng đúng các bit trong cả hai tập dữ liệu là rất nhỏ), nhưng
cách này cũng khá chậm, không chỉ mất gấp đôi thời gian cho việc truyền dẫn mà
còn mất thời gian cho quá trình so sánh từng đơn vị bit-bit.
Khái niệm bao gồm thông tin bổ sung trong truyền dẫn chỉ dành cho mục đích
so sánh là một cách tốt. Nhưng thay vì lặp lại toàn bộ dòng dữ liệu, một nhóm nhỏ
hơn các bit có thể được ghép thêm vào cuối mỗi đơn vị. Kỹ thuật này được gọi là
dư thừa – redundancy bởi vì các bit phụ thêm là dư thừa đối với dữ liệu thông tin;
chúng sẽ bị loại bỏ ngay khi độ chính xác của truyền dẫn được xác nhận.
Dò tìm lỗi sử dụng khái niệm về dư thừa có nghĩa là ghép thêm các bit phụ
thêm cho việc dò tìm lỗi tại thiết bị nhận.
Một khi dòng dư liệu được tạo ra, nó truyền qua một thiết bị và thiết bị này
thực hiện phân tích dòng dữ liệu, bổ sung một mã kiểm tra dư thừa một cách hợp
lý. Đơn vị dữ liệu giờ có chiều dài được mở rộng thêm nhiều bit (trong hình minh
họa là 7 bit thêm), đi qua đường kết nối tới bệnh nhân. Bên nhận chuyển toàn bộ
dòng dữ liệu đó qua một bộ phận chức năng kiểm tra. Nếu dòng bit nhận được
kiểm tra dựa vào các tiêu chuẩn xác định, phần dữ liệu của đơn viij dữ liệu được
chấp nhận và các bit dư thừa được loại bỏ.
- Bên gửi bổ sung thêm các thông tin dư thừa vào số liệu cần gửi đi một cách
thích hợp (theo quy luật = thật toán nhất định).
- Bên nhận dựa trên các thông tin dư thừa để xác định xem gói tin nhận được
có bị lỗi hay không.
Có ba dạng kiểm tra lỗi cơ bản dung mã thừa trong truyền dữ liệu:
(1) C D S P H D
1 1 1 1 1 1 0
0 0 0 0 0 0 0
0 0 1 1 0 0 0
0 0 0 0 1 0 1
0 1 0 0 0 1 0
1 0 1 0 0 0 0
(3) C D S P H D
1 1 1 1 1 1 0
0 0 0 0 0 0 0
1 1
1 1 0 0 0
0 0 0 0 1 0 1
0 1 0 0 0 1 0
1 0 1 0 0 0 0
=> Phương pháp này chỉ kiểm tra được số bit trên cùng 1 hàng bị lỗi là lẻ,
nếu số bit trên cùng 1 hàng bị lỗi là chẵn thì không kiểm tra được
(1) C D S P H D
1 1 1 1 1 1
0 0 0 0 0 0
0 0 1 1 0 0
0 0 0 0 1 0
0 1 0 0 0 1
1 0 1 0 0 0
1 0 1 0 0 0
1 0 0 0 0 0
(3) C D S P H D
1 1 1 1 1 1
1 0 0 0 0 0
1
0 1 1 0 0
0 0 0 0 1 0
0 1 0 0 0 1
1 0 1 0 0 0
1 0 1 0 0 0
1 0 0 0 0 0
(1) C D S P H D
1 1 1 1 1 1 0
0 0 0 0 0 0 0
0 0 1 1 0 0 0
0 0 0 0 1 0 1
0 1 0 0 0 1 0
1 0 1 0 0 0 0
1 0 0 0 0 0 1
(2) C D S P H D
1 1 1 1 1 1 0
1 0 0 0 0 0 1
1 0 1 1 0 0 1
0 0 0 0 1 0 1
0 1 0 0 0 1 0
1 0 1 0 0 0 0
1 0 0 0 0 0 1
(3) C D S P H D
1 1 1 1 1 1 0
0 0 0 0 0 0 0
1 1 1 1 0 0 0
0 0 0 0 1 0 1
0 1 0 0 0 1 0
1 0 1 0 0 0 0
0 1 0 0 0 0 1
(4) C D S P H D
1 1 1 1 1 1 0
0 0 0 0 0 0 0
1 1 1 1 0 0 0
1 1
0 0 1 0 1 0
0 1 0 0 0 1 0
1 0 1 0 0 0 0
1 0 0 0 0 0 1
=> Phát hiện các lỗi đơn và lỗi ghép, không phát hiện tất cả các lỗi đặc biệt
lỗi tạo ra hình chữ nhật như trường hợp (4)
Bước thứ nhất, một chuỗi n bit được ghép vào đơn vị dữ liệu. Số n là một số
nhỏ hơn số các bit trong số chia xác định tước có chiều dài n+1 bit
Bước thứ hai, đơn vị dữ liệu mới kéo dài chia cho số chia sử dụng một quá
trình gọi là chia nhị phân. Phần dư của phép chia là CRC.
Bước thứ 3, CRC của n bit dẫn ra từ bước 2 thay thế các bit 0 được ghép vào
cuối đơn vị dữ liệu. Chú ý là CRC có thể bao gồm tất cả các bit 0.
Đầu tiên, dữ liệu được nhận, theo đó là CRC. Bên nhận coi toàn bộ chuỗi dữ
liệu đó là một đơn vị và chia nó cho cùng số chia mà đã được sử dụng trước đó để
tìm ra số dư CRC.
Nếu chuỗi đến mà không có lỗi, bộ kiểm tra CRC sẽ cho kết quả đầu ra là số
dư bằng 0 và đơn vị dữ liệu được qua. Nếu chuỗi đó bị thay đổi trong quá trình
truyền, kết quả phép chia là một số khác 0, do đó đơn vị dữ liệu không được qua.
Bộ sinh CRC- CRC generator
Một bộ sinh CRC sử dụng phép chia modulor 2. Trong bước đầu tiên, số
chia 4 bit được trừ đi từ 4 bit đầu tiên của số bị chia. Mỗi bit của số chia được trừ
đi tương ứng với bit của số bị chia mà không cần nhớ sang bit tiếp theo cao hơn.
Trong ví dụ của , số chia 1101 được trừ từ 4 bit của số bị chia, 1001 cho kết quả là
100 (số 0 ở đầu của số dư được bỏ đi).
Các bít chưa được sử dụng tiếp theo từ số bị chia sau đó được chuyển xuống
dưới để tạo ra số các bit trong số dư bằng với số các bit ở số chia. Do đó, theo
bước tiếp theo là 1000-1101=101…
Trong quá trình này, số chia luôn bắt đầu với bit 1; số chia được trừ từ một
phần của số bị chia/số dư trước bằng nhau về độ dài; số chia chỉ có thể được trừ đi
từ số bị chia/số dư mà bit trái nhất của nó bằng 1. Tại bất kỳ thời điểm nào bit trái
nhất này của bị chia/số dư là 0, một chuỗi các số 0, có cùng chiều dài như số chia,
thay thế số chia trong bước đó của toàn bộ quá trình. Ví dụ, nếu số chia có độ dài 4
bit, nó được thay thế bằng 4 số 0. (Chú ý rằng đang xử lý với các mẫu bit, chứ
không phải với các giá trị định lượng; 0000 không giống 0.). Hạn chế này có nghĩa
rằng tại bất kỳ bước nào bên trái nhất của phép trừ sẽ là 0-0 hoặc 1-1, cả hai đều
bằng 0. Vì vậy, sau phép trừ, bit bên trái nhất của số dư sẽ luôn dẫn tới 0, do đó bit
này được loại bỏ và bit tiếp theo chưa được sử dụng của số bị chia được đẩy xuống
để đưa ra số dư. Cần chú ý là chỉ có bit đầu tiên của số dư được loại bỏ- nếu bit
tiếp theo cũng là 0, nó vẫn được giữ lại, và số bị chia/số dư cho bước tiếp theo sẽ
bắt đầu với 0. Quá trình này lắp lại cho đến khi toàn bộ số bị chia được sử dụng.
Bộ
kiểm tra
CRC- CRC
Checker
Bộ kiểm tra
CRC thực
hiện chức
năng một
cách chính
xác như bộ
sinh CRC.
Sau khi nhận
được dữ liệu
được ghép với
CRC, nó
tương tự thực
hiện phép chia modulor-2. Nếu số dư tất cả bằng 0, các bit CRC được bỏ đi và dữ
liệu được chấp nhận, nếu không dòng các bit nhận được bị bỏ đi và dữ liệu được
gửi lại. giải sử rằng không có lỗi xảy ra. Số chia do đó tất cả bằng 0 và dữ liệu
được chấp
nhận.
Các đa
thức CRC
Bộ sinh
CRC (số chia)
thường được
biểu diễn
không chỉ ở
dưới dạng
chuỗi các bit
0 và 1 mà còn
là một đa thức
đại số. Khuôn dạng của đa thức là hữu dụng vì hai lý do: Nó ngắn, và có thể được
sử dụng để chứng minh khái niệm toán học
Mối quan hệ của một đa thức đối với biểu diễn nhị phân
Một đa thức sẽ
được lựa chọn sao cho
thỏa mãn:
-Nó sẽ không
được chia hết bởi x
- Nó có thể được
chia hết bởi (x+1)
Điều kiện đầu tiên đảm bảo rằng tất cả các lỗi bit chùm bit có độ dài bằng với
độ dài của đa thức được dò thấy. Điều kiện thứ 2 đảm bảo rằng mọi lỗi bit hàng
loạt ảnh hưởng một số lẻ các bit được dò thấy.
Các đa thức sinh chuẩn:
CRC12: x12+x11+x3+x+1
CRC16: x16+x15+x2+1
CRC-ITU-T: x16+x12+x5+1
CRC32: x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
Hiệu quả của kỹ thuật của CRC
CRC là phương pháp dò tìm lỗi rất hiệu quả. Nếu số chia được chọn theo
nguyên tắc đã nếu trước đó thì:
- CRC có thể dò tất cả các lỗi bit chùm bit mà ảnh hưởng một số lẻ các bit
- CRC có thể dò tất cả các lỗi bit chùm có chiều dài nhỏ hơn hoặc bằng bậc
của đa thức.
1. - CRC có thể dò tìm với khả năng tìm thấy lỗi bit chùm bit có chiều dài lớn
hơn bậc của đa thức.