Tải bản đầy đủ (.pdf) (38 trang)

Các kĩ thuật phát hiện lỗi và sửa lỗi

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (975.22 KB, 38 trang )





CÁC KỸ THUẬT
PHÁT HIỆN LỖI VÀ SỬA LỖI
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
2

I. CÁC KỸ THUẬT PHÁT HIỆN LỖI
1. Khái niệm lỗi trong truyền tin.
Trong các hệ thống truyền tín hiệu số, một lỗi sảy ra khi một bit bị
thay đổi giữa bên gửi và bên nhận. Đó là bên gửi gửi đi bit 1 nhưng
bên nhận lại nhận được bit 0 và ngược lại.
Nhìn chung có hai kiểu lỗi có thể sảy ra đó là lỗi đơn (single
error) và lỗi xuất hiện đột ngột. Một lỗi đơn là một trạng thái lỗi biệt
lập nó thay đổi một bit nhưng không ảnh hưởng các bit bên cạnh.
Một lỗi xuất hiện đột ngột có độ dài B (bit) là một chuỗi B bit kề
nhau trong đó bit đầu tiên, bit cuối cùng và một số bit ở giữa hai bit
này là nhận được có lỗi. Một cách chính xác, IEEE Std 100 định
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
3

nghĩa một lỗi xuất hiện đột ngột như là một nhóm các bit trong đó hai
bit lỗi liên tiếp luôn bị ngăn cách bởi một số x cho trước các bít chính
xác. Bít lỗi cuối cùng trong một lỗi xuất hiện đột ngột và bit lỗi đầu
tiên trong xuất hiện đột ngột tiếp theo cũng được ngăn cách x hoặc


nhiều hơn các bít chính xác.
Lỗi đơn có thể sảy ra và được thể hiện như là sự thể hiện của
nhiễu nhiệt khi tỷ số SNR bị giảm đáng kể dẫn đến bên nhận bị nhầm
lẫn khi nhận một bit
Lỗi xuất hiện đột ngột phổ biến hơn lỗi đơn và khó giải quyết
hơn, lỗi này thường bị gây ra bởi tạp nhiễu xung lực hoặc sự giảm âm
(fading) trong môi trường mạng không dây (mobile wireless). Những
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
4

tác động của lỗi xuất hiện đột ngột sẽ cao hơn với tốc độ truyền cao
hơn.
2. Pháp hiện lỗi (Error Detection)
Giả sử rằng dữ liệu được truyền theo các chuỗi bít liên tiếp và
được gọi là các frames. Khi đó các khả năng có thể sảy ra như sau:
- P
b
: Khả năng 1 bit nhận được là bị lỗi và còn được gọi là tỷ lệ
bit lỗi (bit error rate – BER)
- P
1
: Khả năng một frame nhận được không có lỗi
- P
2
: Khả năng với một giải thuật phát hiện lỗi được sử dụng, một
frame nhận được còn một hoặc nhiều lỗi không được phát hiện
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.


Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
5

- P
3
: Khả năng với một giải thuật phát hiện lỗi được sử dụng, một
frame nhận được với một hoặc nhiều bit lỗi đã được phát hiện và
không có các bit lỗi không được phát hiện.
- Khi không có một phương tiện nào được sử dụng để phát hiện
lỗi thì P3 bằng 0. Giả sử rằng số lượng bit trong một frame là F khi
đó:
P
1
=(1-P
b
)
F

P
2
=1-P
1

Như vậy khả năng một frame nhận được không có bit lỗi giảm khi
khả năng lỗi đơn tăng. Hơn nữa, khả năng một frame nhận được
không có bit lỗi giảm khi tăng độ dài của frame.
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
6


Như vậy P
3
là một khả năng một frame có lỗi và cơ chế phát hiện
lỗi đã phát hiện được các lỗi này. P
2
được biết đến như là tỷ lệ lỗi còn
sót lại và là khả năng các lỗi không được phát hiện mặc dù đã sử
dụng cơ chế phát hiện lỗi
Có nhiều kỹ thuật được dùng để phát hiện lỗi. Tất các các kỹ thuật
này tuân thủ theo các nguyên tắc sau đây:
Cho một frame gồm các bit, một số bit để tạo thành một mã phát
hiện lỗi được thêm vào bởi bên gửi (transmitter). Mã phát hiện lỗi
được tính toán như là một hàm của các bit sẽ được được truyền.
Thông thường, với một khối gồm k bit dữ liệu, thuật toán phát hiện
lỗi sinh ra một mã phát hiện lỗi gồm n-k bit, trong đó (n-k)<k, và
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
7

được gắn vào khối dữ liệu này và tạo thành một frame gồm n bit và
được truyền đi. Mã phát hiện lỗi còn được gọi là các bit kiểm tra.
Bên nhận chia frame nhận được thành k bit dữ liệu và n-k bit của
mã phát hiện lỗi. Bên nhận thực hiện cùng một tính toán phát hiện lỗi
trên k bit dữ liệu nhận được và so sánh kết quả tính toán này với mã
phát hiện lỗi đã nhận được. Một lỗi được phát hiện khi và chỉ khi có
sự khác nhau giữa hai đoạn mã này.

3. Một số kỹ thuật phát hiện lỗi

a, Phương pháp phát hiện lỗi bằng kiểm tra chẵn lẻ (parity check
– Vertical Redundancy Check – VRC)
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
8

Phương pháp này gắn thêm một bit vào cuối khối dữ liệu. Đơn
giản nhất là truyền ký tự, đó là: một ký tự được xem như là một khối
gồm 7 bit dữ liệu, một bit kiểm tra chẵn lẻ được gắn vào khối này.
Giá trị của bit chẵn lẻ này được lựa chọn sao cho ký tự cần gửi có
một số chẵn (even) hay có một số lẻ (odd) các bit 1
Ví dụ: Cần gửi chữ G (1110001) và sử dụng odd parity. Khi đó bit
1 được gắn vào tạo thành 11110001. Bên nhận xem xét ký tự vừa
nhận được, nếu số lượng các bit 1 la lẻ (odd) thì giả thiết rằng không
sảy ra lỗi. Nếu một hay một số lượng lẻ các bit bị thay đổi trong quá
trình truyền thì bên nhận xẽ phát hiện ra lỗi. Tuy nhiên nếu hai hay
một số lượng chẵn các bit bị thay đổi bởi lỗi khi truyền thì bên nhận
sẽ không được phát hiện được lỗi đã sảy ra.
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
9

Thông thường bit kiểm tra chẵn được dùng trong truyền đồng bộ
và bit kiểm tra lẻ được dùng trong truyền không đồng bộ. Việc sử
dụng bit kiểm tra chẵn lẻ là không dễ ràng chẳng hạn như xung lực
tạp nhiễu có thể phá hủy một hay nhiều bit, đặc biệt với tốc độ truyền
dữ liệu cao.
b, Phương pháp phát hiện lỗi bằng kiểm tra dư thừa theo chiều

dọc - Longitudinal Redundancy Check – LRC
Một kỹ thuật khác được sử dụng để hỗ trợ cho kỹ thuật kiểm tra
bit chẵn lẻ đó là kỹ thuật Longitudinal Redundancy Check – LRC –
Kiểm tra dư thừa theo chiều dọc. Kỹ thuật này như sau:


Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
10

Thay vì kiểm tra riêng lẻ từng ký tự như trong VRC, dữ liệu được
gửi đi như là một khối gồm nhiều ký tự, ta gắn thêm vào một bit ở
cuối mỗi hàng và một bit ở cuối mỗi cột sao cho thỏa mãn điều kiện
tổng số các bit 1 là chẵn hay lẻ. Thường một khối dữ liệu bao gồm 7
hoặc 8 ký tự phụ thuộc vào cách mã hóa ký tự là 7 hay 8 bit. Nếu mỗi
ký tự được mã hóa bằng một mã dài 7 bit khi đó một khối dữ liệu sẽ
gồm 7 ký tự và giả sử rằng số các bit 1 là lẻ. Ví du:




Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
11

Bit/Value C

O


N

T

R

O

L

Odd Parity

1 1

1

0

0

0

1

0

0
2 1


1

1

0

1

1

0

0
3 0

1

1

1

0

1

1

0
4 0


1

1

0

0

1

1

1
5 0

0

0

1

1

0

0

1
6 0


0

0

0

0

0

0

1
7 1

1

1

1

1

1

1

0
8 (Odd Parity)


0

0

1

0

0

0

0




Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
12

Khi đó nếu hai hay một số chẵn bit của một ký tự bị thay đổi thì
giá trị của bit chẵn lẻ trên cột kiểm tra không thay đổi nhưng giá tri
của bit chẵn lẻ trên hàng kiểm tra sẽ thay đổi. Kỹ thuật này cũng
không phát hiện được hết tất cả các lỗi, chẳng hạn như hai hay một số
chẵn các bit ở cùng vị trí của hai hay một số chẵn các ký tự bị thay
đổi thì vẫn không phát hiện được lỗi.
c, Phương pháp phát hiện lỗi bằng kiểm tra dư thừa vòng -
Cyclic Redundancy Check (CRC)

Đây là một phương pháp phổ biến và có hiệu quả nhất trong việc
phát hiện lỗi. Cơ chế hoạt động của phương pháp này như sau: Cho
một khối dữ liệu hay một message gồm k bit, bên gửi sinh ra một
chuỗi gồm n-k bit được gọi là chuỗi kiểm tra frame (Frame Check
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
13

Sequence – FCS), như vậy sẽ tạo ra một frame gồm n bit và sau đó
được gửi đi.
Thông thường FCS được tính toán bằng cách chia n bit (bao gồm
k bit dữ liệu và n-k bit 0) cho một số P cho trước. Bên nhận sau khi
nhận được frame đó cũng đem chia frame nhận được bởi số P này,
nếu không có dư thì cho rằng không có lỗi. Phương pháp này được
chia thành các loại như modulo 2, đa thức và lô gic số học
+ Phương pháp Modulo 2: Sử dụng phép cộng không nhớ trong
hệ đếm cơ số 2 hoặc phép trừ không nhỡ trong hệ đếm cơ số 2
(XOR), Ví du:


Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
14

Phép cộng trừ không nhớ trong hệ đếm cơ số 2:


1111



1111


11001


+

1010


-

0101


x 11



0101


1010


11001





11001



11001



101011




Khi đó:

Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
15

+ T= một frame gồm n bit để truyền
+ D= một khối dữ liệu hay một message gồm k bit, đây là k bit
đầy tiên của T
+ F= FCS gồm n-k bit và là các bit cuối cùng của T
+ P là một mẫu gồm n-k+1 bit là số chia được xác định trước
Ta mong muốn rằng T/P không có dư
Thuật toán được thực hiện như sau:

+ Ban đầu ta gắn n-k bit 0 vào cuối D để được n bit
+ Thực hiện phép chia lấy phần dư của n bit này cho mẫu P để
tạo ra n-k bit của FCS
+ Gắn n-k bit của số dư vào cuối của T để tạo thành một khối dữ
liệu và truyền đi
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
16

+ Bên nhận sau khi nhận được khối dữ liệu gồm n bit, thực hiện
việc chia n bit này cho mẫu P, nếu kết quả chia không có dư thì
khẳng định việc truyền là không bị lỗi
Ví dụ: Message D=1010001101(10 bits)
Mẫu P=110101(6bits)
FSC F=Được tính gồm 5 bits
Do vậy: n=15, k=10, n-k=5
Từ k bits ban đầu ta có được 15 bits: 101000110100000
Thực hiện phép chia 15 bits này cho mẫu P (110101)


Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
17

101000110100000 110101
110101 1
11101110100000 110101
110101 11

111010100000 110101
110101 1
1111100000 110101
110101 1
10110000 110101
110101 1
1100100 110101
110101 1
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
18

1110
Phần dư là 01110, do đó ta có khối dữ liệu 15 bit:
101000110101110 và được truyền đi. Bên nhận sau khi nhận được
chuỗi bit thực hiện phép chia chuỗi bít này cho mẫu P nếu không có
dư thì khẳng định không có lỗi, nếu có dư thì cho rằng đã có lỗi do đó
có thể vứt bỏ khối dữ liệu vừa nhận được và yêu cầu gửi lại.
Mẫu P được chọn sao cho dài hơn FSC 1 bit và mẫu P được chọn
phụ thuộc vào các loại lỗi có thể sảy ra, thông thường các bit cao nhất
và bit thấp nhất trong mẫu P phải được chọn bằng 1.
+ Đa thức (Polynomials)

Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
19

Một cách khác để diễn tả quá trình của CRC là diễn tả tất cả các

giá trị D, P, T như là các đa thức của một Nn số X nào đó với hệ số
2. Các hệ số tương ứng với các bit trong các chuỗi nhị phân, chẳng
hạn với D=110011 ta có D(x)=X
5
+X
4
+X+1 và P=11001 ta có
P(X)=X
4
+X
3
+1. Các công việc tính toán tương tự như trong modulo
2. Lấy lại ví dụ trên ta có:
D=1010001101 do đó D(X)=X
9
+X
7
+X
3
+X
2
+1
P=110101 ta có P(X)=X
5
+X
4
+X
2
+1
Thực hiện phép nhân đa thức D(X) với phần tử có số mũ cao nhất

trong P(X) khi đó ta có D(X)x X
5
=x
14
+X
12
+X
8
+X
7
+X
5

Thực hiện phép chia đa thức vừa nhận được cho P(X)

Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
20

X
14
+ X
12
+X
8
+X
7
+X
5

/ X
5
+X
4
+X
2
+1
X
14
+ X
13
+X
11
+ X
9
X
9
+X
8
+X
6
+X
4
+X
2
+X

X
13
+X

12
+ X
11
+X
9
+ X
8

X
13
+X
12
+ X
10
+X
8

X
11
X
10
+X
9
X
7

X
11
X
10

X
8
X
6

X
9
+ X
8
+ X
7
+

X
6
+X
4
X
9
+ X
8
+

X
6

X
7
+ X
5

+X
4
X
7
+ X
6
+ X
4
+ X
2

X
6
+ X
5
+ X
2

Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
21

X
6
+ X
5
+ X
3
+X

X
3
+ X
2
+X

Ta có đa thức dư bằng X
3
+X
2
+X tương đương với 01110
Cách lựa chọn P(X):
Có 4 cách lựa chọn P(x) thường được sử dụng rộng rãi, đó là:
CRC - 12 = X
12
+ X
11
+ X
3
+ X
2
+ X +1
CRC - 16 = X
16
+X
15
+ X
2
+1
CRC - CCITT = X

16
+ X
12
+ X
2
+ 1
CRC 32 = X
32
+ X
26
+ X
23
+ X
22
+ X
16
+ X
12
+ X
11
+ X
10
+ X
8
+ X
7
+
X
5
+ X

4
+ X
2
+ X +1
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
22

CRC - 12 được sử dụng để truyền các ký tự 6 bit và sinh ra một FCS
có độ dài 12 bit.
CRC -16 và CRC - CCITT thường được sử dụng để truyền các ký tự
8 bit tại Mỹ và Châu Âu và sinh ra một CRC có độ dài 16 bit.
CRC - 32 được lựa chọn trong truyền điểm – điểm đồng bộ và được
sử dụng trong các chuNn của LAN (802).






Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
23

II. CÁC KỸ THUẬT SỬA LỖI
1. Khái niệm về sửa lỗi trong truyền thông
Sửa lỗi là một kỹ thuật có ích được sử dụng trong các giao thức
điều khiển liên kết dữ liệu và giao thức truyền tải. Tuy nhiên việc sửa

lỗi sử dụng mã phát hiện lỗi đòi hỏi phải truyền lại khối dữ liệu này.
Điều này là không thích đáng cho các ứng dụng không dây vì:
- Tỷ lệ bit lỗi trong các truyền không dây là tương đối cao, điều
này đòi hỏi phải truyền lại nhiều khối dữ liệu.
- Trong một vài trường hợp, đặc biệt là truyền vệ tinh độ trễ trong
khi truyền là lớn hơn so với thời gian truyền một frame, làm cho hệ
thống kém hiệu quả.
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
24

Một cách tiếp cận phổ biến để truyền lại là: truyền frame bị lỗi và
các frame sau frame lỗi này. Với một liên kết dữ liệu dài một lỗi
trong một frame sẽ bắt buộc phải truyền lại nhiều frame do đó nếu
phải truyền lại nhiều thì sẽ làm cho hệ thống hoạt động không hiệu
quả.
Do đó nên cung cấp cho bên nhận một cơ chế sửa lỗi để sửa các
lỗi sinh ra trong quá trình truyền dữ liệu. Cơ chế này có thể được mô
tả như sau: Với mỗi một khối dữ liệu gồm k bit bên gửi sẽ sinh ra một
khối gồm n bit (n >k) được gọi là một từ mã (codeword) bằng cách sử
dụng mã sửa lỗi tiến (forward error correction – FEC), khối này sau
đó được truyền đi.
Trường Đại học Tây Bắc - Khoa Toán - Lý – Tin.

Mai Văn Tám – Bộ môn Kỹ thuật máy tính và Mạng
25

Trong quá trình truyền tin, một vài bit lỗi có thể được đưa vào
khối này. Tại bên nhận, các tín hiệu đến được giải điều chế để sinh ra

một chuỗi bit tương tự như chuỗi ban đầu nhưng có thể có lỗi. Khối
này sau đó được chuyển đến bộ phận giải mã sửa lỗi tiến với một
trong bốn khả năng sau:
i, Nếu không có bit lỗi nào thì dữ liệu vào bộ phận giải mã sửa lỗi
tiến sẽ tương tự như mã lệnh nguồn và bộ phận giải mã sẽ sinh ra
khỗi dữ liệu ban đầu.
ii, Với một vài loại lỗi, bộ phận giải mã có khả năng phát hiện và
sửa những lỗi này

×