Tải bản đầy đủ (.doc) (20 trang)

TIỂU LUẬN MẠNG Máy tính_Khoa học máy tinh: Tổng quan về phát hiện 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 (631.73 KB, 20 trang )

MỤC LỤC

MỞ ĐẦU.......................................................................................1
NỘI DUNG....................................................................................3
I.TỔNG QUAN VỀ PHÁT HIỆN VÀ SỬA LỖI.....................................3
1. Các khái niệm về lỗi........................................................................................3
2. Các kiểu lỗi......................................................................................................4
2.1 Lỗi bit đơn – Single bit error.....................................................................5
2.2 Lỗi bit chùm – Burst Error.........................................................................5
3. Phát hiện sai trong truyền số liệu.....................................................................6
II. CÁC KĨ THUẬT PHÁT HIỆN LỖI.................................................8
1. Phương pháp kiểm tra bit chẵn lẻ (Parity bit)..................................................8
2. Kiểm tra tổng khối BSC ( Block Sum Check )..............................................12
3. Kiểm tra CRC (Cyclic Redundancy Check)..................................................13
KẾT LUẬN..................................................................................17
TÀI LIỆU THAM KHẢO...............................................................19


MỞ ĐẦU
1.Tính cấp thiết của đề tài
Trao đổi thông tin là một nhu cầu bức thiết và không thể thiếu của con người.
Mạng máy tính ra đời đã giải quyết được phần nào nhu cầu này. Hơn nữa, để tồn tại và
phát triển con người phải từng bước khám phá được thiên nhiên thông qua việc giải
những bài toán rất phức tạp. Chỉ một vài nhà khoa học và chỉ bằng những máy tính đơn
lẻ làm công cụ sẽ không thể nào xử lý và giải quyết được những bài toán phức tạp đó.
Việc kết nối các máy tính thành mạng máy tính giúp cho con người sử dụng được sức
mạnh tổng hợp của trí tuệ nhân loại cũng như sức mạnh tổng hợp của công cụ xử lý
thông tin.
Sự kết hợp của mạng máy tính với các hệ thống truyền thông đã tạo một sự
chuyển biến có tính cách mạng trong vấn đề tổ chức khai thác và sử dụng các hệ thống
máy tính. Mô hình tập trung dựa trên các máy tính lớn với phương thức xử lý đã được


thay thế bởi một mô hình tổ chức sử dụng mới, trong đó các máy tính đơn lẻ được kết
nối lại để cùng thực hiện công việc. Một môi trường làm việc nhiều người sử dụng phân
tán đã hình thành, cho phép nâng cao hiệu quả khai thác tài nguyên chung từ những vị
trí địa lý khác nhau.
Mạng máy tính ra đời cần có khả năng truyền dữ liệu một cách chính xác. Một hệ
thống không đảm bảo được tính năng này thì không sử dụng được. Trong quá trình
truyền dữ liệu luôn bị tác động bởi nhiều yếu tố, làm sai lệch dữ liệu truyền và nhận. Vì
vậy hệ thống cần có độ tin cậy tốt với cơ chế phát hiện và sửa lỗi. Đó chính là lý do bản
thân lựa chọn đề tài tiểu luận: Một số kĩ thuật phát hiện lỗi khi truyền và nhận dữ liệu
trong mạng máy tính.
Thực ra, việc phát hiện và sửa lỗi là một lĩnh vực đã được nghiên cứu sâu và ứng
dụng mạnh mẽ. Tuy nhiên, tiểu luận được trình bày có tính cơ bản và tổng quan. Tiểu
luận chỉ nhằm tóm tắt lại những tri thức mà bản thân đã thu nhận được qua một thời
gian học tập ngắn và qua tham khảo một số tài liệu.
Tiểu luận gồm hai phần. Phần 1: giới thiệu một cách tổng quan về phát hiện và
sửa lỗi trên mạng máy tính. Phần 2: giới thiệu một số kĩ thuật phát hiện lỗi và đưa ra
một số nhận xét, đánh giá về các kĩ thuật này.

1


2.Mục đích, nhiệm vụ nghiên cứu
2.1 Mục đích nghiên cứu
Bài tiểu luận đưa ra một số kĩ thuật phát hiện lỗi khi truyền dữ liệu trong mạng
máy tính nhằm đảm bảo độ tin cậy trong việc truyền dữ liệu giữa các thiết bị đầu cuối.
2.2 Nhiệm vụ nghiên cứu
Để đạt được mục đích trên, bài tiểu luận cần thực hiện các nhiệm vụ sau:
- Làm rõ các kiểu lỗi khi truyền và nhận dữ liệu
- Phân tích một số kĩ thuật nhằm phát hiện lỗi khi truyền dữ liệu .
3.Đối tượng, phạm vi nghiên cứu

3.1 Đối tượng nghiên cứu
Bài tiểu luận nghiên cứu về vấn đề phát hiện lỗi khi truyền dữ liệu giữa các thiết
bị đầu cuối.
3.2 Phạm vi nghiên cứu
Bài tiểu luận nghiên cứu 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.
4.Phương pháp luận và phương pháp nghiên cứu
4.1 Phương pháp luận nghiên cứu
Bài tiểu luận dựa trên cơ sở lý thuyết về mạng máy tính, nghiên cứu mạng máy
tính thông qua các nguồn tài liệu, kết hợp phương pháp tìm kiếm, phân tích, so sánh,
tổng hợp.
4.2 Phương pháp nghiên cứu
Bài tiểu luận sử dụng các phương pháp nghiên cứu như: tìm kiếm, phân tích, so
sánh, tổng hợp….

2


NỘI DUNG
I.TỔNG QUAN VỀ PHÁT HIỆN VÀ SỬA LỖI
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.
Có hai phương pháp cho vấn đề này, đó là:
 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.

1. Các khái niệm về lỗi
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.

3


Nguyên nhân gây ra lỗi:
 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 bit sử dụng Pb
Xác định tỉ suất lỗi bit – BER (Bit Error Rate)
BER £ 10-9 – đường truyền được xem là tốt
BER £ 10-4 – đường truyền chấp nhận được
Ngoài ra còn một số đơn vị đo khác, ít được sử dụng hơn:
FER (Frame Error Rate)
PER (Packet Error Rate)
Để xác định xác suất lỗi gói số liệu sử dụng công thức:
Pf = 1 – (1 – Pb) N với N – độ dài gói số liệu, đo bằng bit
Pf ≈ N.Pb, nếu N.Pb <<1
Thí dụ minh họa: cho N = 1000 bit, Pb = 10-6
Pf = 1 – (1 – Pb)N = 1 – (1-10-6)1000 = 0.00095
Hay Pf ≈ N.Pb, ≈ 1000.10 – 6 ≈ 0.001.

2. Các kiểu lỗi
Về bản chất, lỗi có thể được chia thành 2 loại: là lỗi đơn và lỗi chùm. 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 chùm 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
Single - bit

Burst
4


2.1 Lỗi bit đơn – Single bit error

Thuậ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ớ.

2.2 Lỗi bit chùm – Burst Error
Thuật ngữ lỗi bit chùm 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.

5


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.
Các khái niệm liên quan:
 Gap (kẽ hở): là vùng nằm giữa 2 vùng lỗi.

 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 chùm): vùng giữa 2 vùng lỗi chùm 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.

3. Phát hiện sai trong truyền số liệu
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êu 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.

6



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 vị dữ liệu được chấp nhận và các bit dư thừa được
loại bỏ.
Như vậy phương pháp này có thể hiểu:
-

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ác phương pháp kiểm tra:
Có ba dạng kiểm tra lỗi cơ bản dung mã thừa trong truyền dữ liệu:

Phương pháp kiểm tra

Kiểm tra bit chẵn lẻ (Prarity bit)

Kiểm tra tổng khối BSC (Block
sum check)

7

Kiêm tra CRC
( Cyclic redundancy check)


II. CÁC KĨ THUẬT PHÁT HIỆN LỖI

1. Phương pháp kiểm tra bit chẵn lẻ (Parity bit)
Đây là phương pháp thông dụng nhất để dò tìm các bit lỗi trong truyền bất đồng
bộ và đồng bộ hướng ký tự.
Với lược đồ này, máy phát sẽ thêm vào mỗi ký tự truyền đi một bit kiểm tra
parity (được tính toán trước khi truyền). Khi tiếp nhận thông tin, máy thu sẽ thực hiện
các thao tác tính toán tương tự trên các ký tự thu được và so sánh kết quả với bit parity
thu được. Nếu chúng bằng nhau, thì không có lỗi xảy ra, nếu chúng không bằng nhau thì
có lỗi xảy ra. Gồm 3 phương pháp:
+ Phương pháp kiểm tra ngang
+ Phương pháp kiểm tra dọc
+ Kết hợp 2 phương pháp
 Nguyên lý:
- Thêm vào mã cần truyền 1 tập bit kiểm tra nào đó để bên dẫn có thể kiểm soát
lỗi
- Trước khi truyền dữ liệu đi, người ta thêm vào cuối bit 1 gọi là parity bit.

- Nếu tổng số bit 1 của xâu truyền đi là chẵn thì bit thêm vào là 0
- Nếu tổng số bit 1 của xâu truyền đi là lẻ thì bit thêm vào là 1
Ví dụ: Truyền xâu CDSPHD
C(67) = 1000011
D(68) = 1000100
S(83) = 1010011
P(80) = 1010000
H(72) = 1001000
+ Phương pháp kiểm tra ngang:
(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

8


(2) C D S P H D

Lỗi do mạng truyền thông

1 1 1 1 1 1 0

sinh ra

0 0 0 0 0 0 0
1 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 0 0 0

1

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
+ Phương pháp kiểm tra dọ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

9


(2) C D S P H D


Lỗi do mạng truyền thông

1 1 1 1 1 1
1 0 0 0 0 0

sinh ra

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
0 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
+ Kết hợp 2 phương pháp:
(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

10


(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 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

1 1 0 0 0
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)

11


2. Kiểm tra tổng khối BSC ( Block Sum Check )
Block Sum Check (BSC): kết hợp parity hàng và cột
• Phát hiện được lỗi sai một số lẻ bit.
• Dò được các lỗi sai một số chẵn bit, ngoại trừ những lỗi xảy ra đồng thời trên cả
hàng và cột.
• Chỉ sửa được sai một bit đơn.
- Khi các khối ký tự đang được truyền, xác suất một ký tự chứa lỗi bit gia tăng.
- Xác suất một khối ký tự bị lỗi bit được gọi là tỉ lệ lỗi bit BER.
- Phương pháp này sử dụng một tập parity bit được tính từ toàn bộ khối ký tự trong
khung.
- Mỗi ký tự trong khung được phân phối một parity bit (parity hàng). Ngoài ra một bit

mở rộng được tính cho mỗi vị trí bit (parity cột) trong toàn bộ khung. Tập các parity bit
cho mỗi cột được gọi là ký tự kiểm tra khối BCC (Block Check Character)

Ví dụ:
Data
H
E
L
L
O
BCC(odd)

Start
1
1
1
1
1
1

Data
B1
0
1
0
0
1
1

Parity (even) stop

B2
0
0
1
1
1
0

B3
0
0
0
0
0
1

B4
0
0
0
0
0
1

B5
0
0
0
0
0

1

B6
0
0
0
0
0
1

B7
1
1
1
1
1
0

3. Kiểm tra CRC (Cyclic Redundancy Check)
12

1
0
0
0
1
1

0
0

0
0
0
0


CRC (cyclic redundancy check) là một loại hàm băm, được dùng để sinh ra giá
trị kiểm thử, của một chuỗi bit có chiều dài ngắn và cố định, của các gói tin vận chuyển
qua mạng hay một khối nhỏ của tệp dữ liệu. Giá trị kiểm thử được dùng để dò lỗi khi dữ
liệu được truyền hay lưu vào thiết bị lưu trữ. Giá trị của CRC sẽ được tính toán và đính
kèm vào dữ liệu trước khi dữ liệu được truyền đi hay lưu trữ. Khi dữ liệu được sử dụng,
nó sẽ được kiểm thử bằng cách sinh ra mã CRC và so khớp với mã CRC trong dữ liệu.
CRC là một loại mã phát hiện lỗi. Cách tính toán của nó giống như phép toán
chia số dài trong đó thương số được loại bỏ và số dư là kết quả, điểm khác biệt ở đây là
sử dụng cách tính không nhớ (carry-less arithmetic) của một trường hữu hạn. Độ dài của
số dư luôn nhỏ hơn hoặc bằng độ dài của số chia, do đó số chia sẽ quyết định độ dài có
thể của kết quả trả về. Định nghĩa đối với từng loại CRC đặc thù quyết định số chia nào
được sử dụng, cũng như nhiều ràng buộc khác.
CRC dựa chủ yếu vào phần bit bổ sung, kỹ thuật CRC dựa trên phép chia nhị
phân. Trong CRC, thay vì thêm các bit để cùng đạt được một tính chẵn lẻ theo mong
đợi, một chuỗi các bit dư thừa được gọi là CRC hay số dư CRC, được ghép vào cuối
đơn vị dữ liệu do đó đơn vị dữ liệu kết quả có thể chia hết cho số nhị phân thứ hai được
xác định trước. Tại đích của nó, đơn vị dữ liệu đến được chia bởi cùng số đó. Nếu tại
bước này, phép chia có số dư bằng 0, đơn vị dữ liệu được coi là còn nguyên vẹn và do
đó được chấp nhận. Nếu số dư khác không có nghĩa là đơn vị dữ liệu đó đã bị hư hại
trong quá trình truyền và do đó bị loại bỏ. Các bit dư thừa được sử dụng bởi CRC lấy
được từ phép chia đơn vị dữ liệu theo số chia đã xác định trước; phần dư của phép chia
sẽ là CRC. Để có thể phân loại quá trình này, bắt đầu một cách tổng quan và sau đó đi
sâu vào chi tiết hơn.


13


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ố

14


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.

15


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.
- 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.

16


KẾT LUẬN
Khi truyền tải một chuỗi các bit, các lỗi có thể phát sinh ra, bit 1 có thể biến thành
bit 0 hay ngược lại.
Ta định nghĩa tỷ lệ lỗi bởi tỷ số sau:
τ = Số bít bị lỗi / Tổng số bít được truyền
Tỷ lệ lỗi này có giá trị từ 10 -5 đến 10-8. Tùy thuộc vào từng loại ứng dụng, một lỗi có
mức độ nghiêm trọng khác nhau, chính vì thế cần có các cơ chế cho phép phát hiện lỗi
cũng như sửa lỗi.

Các thống kê cho thấy rằng 88% các lỗi xẩy ra do sai lệch một bit và 10% các lỗi
xảy ra do sự sai lệch 2 bit kề nhau. Chính vì thế ta ưu tiên cho vấn đề phát hiện các lỗi
trên một bit và sửa đổi chúng một cách tự động.
Với ý tưởng như thế, ta sử dụng các mã phát hiện lỗi: bên cạnh các thông tin hữu
ích cần truyền đi, ta thêm vào các thông tin điều khiển. Bên nhận thực hiện việc giải mã
các thông tin điều khiển này để phân tích xem thông tin nhận được là chính xác hay có
lỗi.

Thông tin điều khiển được đưa vào có thể theo 2 chiến lược. Chiến lược thứ nhất
gọi là bộ mã sửa lỗi (Error-correcting codes) và chiến lược thứ hai gọi là bộ mã phát
hiện lỗi (Error-detecting codes). Bộ mã sửa lỗi cho phép bên nhận có thể tính toán và
suy ra được các thông tin bị lỗi (sửa dữ liệu bị lỗi). Trong khi bộ mã phát hiện lỗi chỉ
cho phép bên nhận phát hiện ra dữ liệu có lỗi hay không. Nếu có lỗi bên nhận sẽ yêu cầu
bên gởi gởi lại thông tin. Với tốc độ của đường truyền ngày càng cao, người ta thấy rằng
việc gởi lại một khung thông tin bị lỗi sẽ ít tốn kém hơn so với việc tính toán để suy ra
giá trị ban đầu của các dữ liệu bị lỗi. Chính vì thế đa số các hệ thống mạng ngày nay đều
chọn bộ mã phát hiện lỗi.

Những bộ mã phát hiện lỗi (Error-Detecting Codes)
17


Có nhiều sơ đồ phát hiện lỗi, trong đó có các sơ đồ thông dụng là:
 Kiểm tra chẵn lẻ (Parity checks)
 Kiểm tra tổng khối BSC (Block sum check)
 Kiểm tra phần dư tuần hoàn (Cyclic redundancy check)
Mỗi kỹ thuật, phương pháp đều có ưu và nhược điểm riêng. Dựa trên các kĩ thuật
phát hiện lỗi mà con người xây dựng các thiết bị và giao thức mạng máy tính phù hợp
để đảm bảo độ tin cậy khi truyền và nhận dữ liệu giữa các thiết bị đầu cuối.


18


TÀI LIỆU THAM KHẢO

1. Bài giảng chuyên nghành Mạng máy tính, TS. Nguyễn Thành Đạt, Đại học Quy
Nhơn
2. Giáo trình Mạng và truyền số liệu , Đại học Thái Nguyên
3. Slide Các kĩ thuật truyền dữ liệu số, Đại học Bách Khoa TP.HCM
4. Vấn đề xử lý lỗi trong mạng, />
19



×