LỜI NÓI ĐẦU
Cùng với sự phát triển mạnh mẽ của khoa học kỹ thuật, ngành viễn thông đã có
nhiều bước tiến vượt bậc, nhiều hệ thống thông tin hiện đại đã được ra đời nhằm
đáp ứng nhu cầu trao đổi thông tin và giải trí của con người. Đặc biệt là hệ thống
thông tin số với các đường truyền tốc độ cao, đã dần thay thế hệ thống thông tin
tương tự. Vấn đề được đặt ra vơi hệ thống thông tin số là truyền với khoảng cách
xa mà vẫn đảm bảo độ chính xác thông tin hay chất lượng dịch vụ của hệ thống.
Đó là sự ra đời của các phương pháp phát hiện và sửa lỗi, nhằm sửa chữa được
những lỗi thông tin sai sót trên đường truyền nhằm đảm bảo độ tin cậy, độ chính
xác thông tin. Để hiểu thêm về quá trình phát hiện lỗi và sửa lỗi của thông tin trước
hết chúng ta cần hiểu biết về hệ thống thông tin.
1
CHƯƠNG I:
CƠ SỞ LÝ THUYẾT VỀ KIỂM SOÁT LỖI.
1.1 Hệ thống thông tin số và mục đích của kiểm soát lỗi.
Hệ thống thông tin số là hệ thống mà tín hiệu được truyền đi dưới dạng số nhị
phân.
Sơ đồ tổng quát của hệ thống thông tin số:
- Nguồn tin là nơi tạo ra hay chứa các tập tin truyền đi. Nó có thể là số hoặc
tương tự.
- Khối tạo dạng có chứa chức năng tạo dạng tín hiệu, biến đổi tin tức cần
truyền thể hiện ở dạng tín hiệu liên tục hay số có dạng chuỗi bit nhị phân.
2
ĐA
TRUY
NHẬP
PHÁT
TRẢI
PHỔ
ĐIỀU
CHẾ
GHÉP
KÊNH
MÃ
BẢO
MẬT
MÃ
KÊNH
MÃ HÓA
NGUỒN
TẠO
DẠNG
KÊNH
THÔNG
TIN
ĐỒNG
BỘ
NGUỒN
KHÁC
NGUỒN
TIN
THUGIẢI ĐA
TRUY
NHẬP
GIẢI
TRẢI
PHỔ
GIẢI
ĐIỂU
CHẾ
PHÂN
KÊNH
GIẢI MÃ
KÊNH
GIẢI
MÃ
MẬT
GIẢI MÃ
NGUỒN
TẠO
DẠNG
ĐÍCH
NHẬN
TIN
ĐÍCH
KHÁC
- Mã nguồn: biến đổi các tin tức, kí hiệu… thành các bit nhị phân. Các mà
dùng để mã hóa nguồn:ACSII, BCD, mã tối ưu Fano….
- Mã bảo mật: bảo mật nguồn thông tin chống lại việc đánh cắp thông tin,
sự làm nhiễu, sai lệch thông tin truyền đi từ các yếu tố bên ngoài tại bất kì
vị trí nào trên đường truyền. Mã hóa tin tin dưới dạng khóa nhằm bảo vệ tin
tức.
- Mã hóa kênh: làm giảm thiểu xác suất sai thông tin qua kênh truyền đảm
bảo độ tin cậy của thông tin, sửa lỗi hướng đi FEC,chống nhiễu và các tác
động xấu khác của kênh truyền.
Việc giảm thiểu xác suất sai dực vào phát hiện lỗi và sửa lôi dẫn đến việc giảm
tỉ số tín hiệu nhiễu (SNR), nhờ đó làm thuận lợi cho việc bảo mật, trải phổ và tăng
độ chính xác của thông tin nhận -> mục đích quan trọng của truyền thông.
- Ghép kênh: ghép các nguồn tin khác nhau lại để truyền trên cùng một hệ
thống truyền dẫn.
- Điều chế: biến đổi chuỗi tín hiệu số thành các tín hiệu phù hợp với kệnh
truyền nhằm nâng cao chất lượng và độ tin cậy cao cho quá trình truyền tin.
- Trải phổ: biến đổi tín hiệu băng thông hẹp thành tín hiệu băng thông rộng,
nhằm bảo mật thông tin sử dụng băng tần một cách có hiệu quả và bảo mật
tin tức.
- Đa truy nhập: Cho phép nhiều đối tượng có thể truy nhập mạng thông tin
để sử dụng hệ thống truyền dẫn theo yêu cầu.
Khi môi trường truyền dẫn bị nhiễu và các vấn đề khác xảy ra trên đường
truyền thì dữ liệu nhận được sẽ bị lỗi vì thế mục đích của kiểm soát lỗi ARQ là
nhằm nhận biết được thông tin nhận được là đúng hay sai. Nếu sai thì có thể là
truyền lại hoặc sửa lỗi…. cho đến khi nhận được tin thông tin chính xác.
Mục đích: ARQ (Yêu cầu phát lặp tự động) đảm bảo dòng dữ liệu được phân
phối tới người sử dung bất chấp các lỗi xảy ra trong quá trình truyền.
1.2: Các phương pháp phát hiện lỗi.
Phát hiện lỗi là quá trình kiểm tra và xác định xem dữ liệu thu được có bị lỗi
hay không. Việc phát hiện lỗi có khi chỉ cần biết đoạn từ mã hoặc đoạn tin truyền
đi có bị lỗi hay không mà không cần biết lỗi cụ thể.
3
Như vậy cần có cơ chế phát hiện lỗi nhằm mục đích nhận được thông tin chính
xác bằng cách truyền lại hoặc sửa lỗi. Có hai cơ chế kiểm soát lỗi:
- Kiểm soát lỗi thuận thường không yêu cầu truyền lại thông tin mà chỉ
phát hiện lỗi hoặc có khả năng sửa hạn chế các bít lỗi. Phương pháp
này thường áp dụng cho các đường truyền có cự ly rất xa và trường
hợp truyền đơn công.
- Kiểm soát lỗi phản hồi nhằm mục đích phát hiện sai và yêu cầu phía
phát gửi lại cho đến khi nhận được là chính xác.
1.2.1 Phương pháp kiểm tra chẵn lẻ.
Kiểm tra chẵn lẻ (parity) là phương pháp đơn giản nhất thường được áp
dụng trong các hệ thống truyền dữ liệu để phát hiện dữ liệu bị truyền sai. Việc
kiểm tra chẵn lẻ một đoạn tin có thể kiểm tra theo hàng ngang hoặc hàng dọc với
nguyên tắc:
Kiểm tra bổ sung bit 1 hoặc bit 0 vào dữ liệu sao cho bit 1 trong khối dữ liệu đó là
chẵn hoặc là lẻ. Bit thêm vào là bit parity(chẵn –lẻ).
Hệ thống bên gửi và bên nhận cùng sử dụng một loại parity (chẵn – lẻ) để nhận
biết được dữ liệu truyền. Nếu dữ liệu truyền sai thì bên thu sẽ từ chối nhận khối
dữ liệu đó.
Gọi M là tổng số bit 1 có trong thông tin cần kiểm tra lỗi.
P là giá trị parity . Bit parity có thể là 0 hoặc 1 tùy thuộc vào parity chẵn hay lẻ. Bit
parity chẵn thì tổng số bit trong (M+P) phải là 1 số chẵn. Bit parity lẻ thì tổng số
bit trong (M+P) phải là một số lẻ.
- Ưu điểm: phương pháp này khá đơn giản và rất thích hợp với đường truyền ngắn
hoặc trong môi trường có nhiễu ít.
- Nhược điểm: Không định vị được bit lỗi nên không thể tự sử lỗi mà phải yêu cầu
truyền lại. Hiệu suất truyền thông tin bị kém. Phương pháp này không phát hiện ra
các lỗi không phải là bit đơn.
Ví dụ: phát: 10110|0 # 10010|1 (nhận)
10110|0 11010|0(nhận và phát trùng nhau cùng thêm bit parity
là 0)
1.2.2 Phương pháp kiểm tra tổng khối (Block check sum – BCS)
Để khắc phục nhược điểm của phương pháp kiểm tra chẵn lẻ là không phát
hiện được số bít sai là chẵn. Mà dữ liệu thường được truyền đi dưới dạng từng
4
khối cho nên để cải thiện khả năng phát hiện lỗi thì phương pháp kiểm tra tổng
khối là lựa chọn.
Mỗi khối được phân thành parity cột và hàng , mỗi bit được kiểm tra 2
lần. Phương pháp này hiệu quả đáng kể so với phương pháp parity chẵn lẻ
hàng và cột.
• Kiểm tra theo cột dọc: là phát hiện lỗi sử dụng phương pháp kiểm tra chẵn lẻ
để xác định lỗi truyền đi trong một kí tự.
• Kiểm tra theo hàng ngang: là kiểu phát hiện lỗi sử dụng phương pháp kiểm tra
chẵn lẻ để xác định lỗi truyền trong một đoạn tin.
Ví dụ: cho khối tin được truyền đi trong quá trình truyền bị lỗi ở bit thứ 2,3
của hàng thứ nhất.
1 0 1 1|1 (P- chẵn) > 1 1 0 1|1 (P-chẵn)
0 1 1 0|0 (P- chẵn) > 0 1 1 0|0 (P-chẵn)
1 0 0 1|0 (P- chẵn) > 1 0 0 1|0 (P-chẵn)
(P- lẻ) 1 0 1 1 1 1 0 1 (P- lẻ)
5
- Ưu điểm:
- Có khả năng phát hiện tất cả các bit sai lẻ.
- Có khẳ năng phát hiện tất cả các bit lỗi chẵn thậm chí cùng hàng cùng cột.
- Đơn giản, dễ thiết kế.
- Trong trường hợp đơn lỗi có thể định vị được vị trí của bit lỗi nên tự sửa được lỗi
mà không cần truyền lại
- Trong trường hợp lỗi kép hàng và cột thì mã này có thể phát hiện lỗi để yêu cầu
truyền lại.
- Nhược điểm: hiệu suất đường truyền không cao.
1.2.3 Phương pháp CRC (mã dư vòng).
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 dược sử dụng , nó sẽ được kiểm thử bằng cách sinh ta mã CRC và so khớp
với mã CRC trong dữ liệu.
Nguyên lý làm việc của CRC:
Biết m-bit thông tin và đa thức sinh cho trước(hay còn gọi là khóa).
Bên phát tạo ra chuỗi r-bit FCB(frame check sequeence) sao cho frame gửi đi bao
gồm (m + r)bit chia hết cho đa thức sinh.
Bên thu chia khung dữ liệu nhận được cho cùng đa thức sinh và nếu không có phần
dư thì có khả năng không có lỗi.
Cách tạo mã CRC và frame cần truyền
• Cho r bằng bậc của đa thức sinh G(x), gắn r bit 0 vào cuối của thông tin sau bit có
trọng số thấp nhất vì thế ta có (m + r) bit , tương ứng với đa thức x^r.M(x)
• Chia sâu bit tương ứng với x^r.M(x) cho đa thức sinh G(x). Dùng phép thica modul
2 (phép chia không nhớ). Phần dư chính là CRC cần tìm.
• Lấy x^r.M(x) trừ đi phần dư (luôn có số bit nhỏ hơn hoặc bằng r) dùng phép trừ
modul 2. Kết quả nhận được là frame cần tìm (checksuned frame).
6
Ví dụ: cho một máy phát trong hệ thống đồng bộ tuyến một bản tin:110101 +
CRC. Giả sử bít tin chỉ dùng các tin + CRC. Đa thức sinh dùng trong mạch kiểm
soát lỗi G(x)= x^3 + 1. Hãy tìm bản tin mà máy phát truyền đi.
Giải
B1: G(x) =x^3 + 1 => r = 3 ( thêm 3 bit 0 ở sau bản tin)
x^3M(x) = 110101000 = x^8 +x^7 + x^5 + x^3
B2: (M(x)x^r)/G(x)= x^5 =x^4 +x + 1 dư x + 1
R(x) = x + 1
CRC = 011
Q(x) = x^5 + x^4 +x^2 +1
B3: 110101000 - 011 = 110101011
Vậy chuỗi thông tin cần truyền là 110101011.
CRC rất phổ biến vì đơn giản dễ lắp đặt trong các máy tính sử dụng hệ cơ số
nhị phân, dễ dàng phân tích tính đúng và rất phù hợp để dò các lỗi gây ra bởi nhiễu
trong khi truyền dữ liệu.
Thu và kiểm tra CRC:
Để kiểm tra sai số khi truyền, bên thu đem khối thông tin thu được chia
cho G(x) theo modul2.
Nếu phần dư còn lại là 0 thì từ mã nhận được không sai.
Nếu phần dư còn lại khác 0 thì từ mã nhận được không đúng.
1.2.4 Phương pháp truyền phản hồi
Phương pháp này còn gọi là phương pháp dội. Trong phương pháp này bên
phát sẽ truyền sang bên thu thông điệp hay một đoạn tin, khi bên thu nhận được sẽ
phát lại một bản sao về bên phát:
Như vậy
7
BẢN SAO
THÔNG
ĐIỆP
BỘ THU
BỘ PHÁT
Như vậy bên phát sẽ so sánh dữ liệu nằm trong vùng đệm để biết là dữ liệu
truyền đúng hay truyền sai.
Ưu điểm: phương pháp này có khả năng phát hiện sai rất chính xác từ trường
hợp các bit thông điệp và bản sao sai trùng nhau. Tuy nhiên khả năng để có sai
trùng nhau là rất nhỏ.
Nhược điểm:phương pháp này có hiệu suất đường truyền thấp do cùng một
thông điệp truyền phải truyền hai lần. trong trường hợp bên thu nhận được thông
tin đúng nhưng khi truyền lại có thể bên phát nhận được bị lỗi.
1.2.5 Phương pháp truyền dư thừa.
Phương pháp này còn gọi là phương pháp truyền lặp lại. Bên phát sẽ truyền
thông điệp và kèm theo bản sao của nó sang bên thu.
Ở bộ so sánh bản sao thông điệp và bản sao nếu không giống nhau tức lầ bị lỗi
khi truyền.
Ưu điểm: phương pháp này có khả năng phát hiện sai rất chính xác trừ trường
hợp các bit ở thông điệp và bản sao sai trùng nhau, tuy nhiên khả năng để có các
bit sai trùng nhau là rất ít.
8
Nhược điểm: phương pháp này có hiệu suất đường truyền thấp do cùng một
thông tin phải truyền hai lần. Trong trường hợp ở phía thu nhận được ký tự đúng
nhưng có thể bản sao bị lỗi, như vậy việc truyền đúng lại là truyền sai.
1.3 Lỗi dữ liệu kênh truyền.
Các đường truyền dữ liệu có thể có khoảng cách ngắn vài m và cũng có thể dài
hàng nghìn km, môi trường truyền dữ liệu có thể là hệ thống dây đồng hay vi ba,
vệ tinh, sợi cáp quang hoặc vô tuyến. Do các đặc tính không lý tưởng của kênh
truyền cũng như tác động của các yếu tố can nhiễu bên ngoài. Trong thực tế không
bao giờ đạt được độ tin cậy hoàn toàn. Sai hoặc lỗi xuất hiện trog quá trình truyền
dữ liệu là không thể tránh khỏi.
Trong các kênh truyền tin số, nếu như xem rằng các chuỗi ký hiệu truyền vẫn
được giữ nguyên trật tự và chỉ sai số ở dạng bit, các lỗi kênh truyền nhị phân có thể
chia làm hai loại sau:
- Lỗi xác suất có ký hiệu một xảy ra ở các kênh truyền có tốc độ thấp, độ tin
cậy truyền tin lớn. Các lỗi thường độc lập không phụ thuộc vào nhau.
- Lỗi có tính chất cụm: thường do các yếu tố tạp nhiễu bên ngoài tác động làm
cho một số bit liên tiếp hay một cụm bit nào đó bị sai lệch.
Kiểm soát lỗi: khi chúng ta nhập dữ liệu vào máy tính bằng bàn phím thì chương
trình sẽ đọc kí tự nhận được rồi gửi ra màn hình. Như vậy nếu ký tự ngập bị sai thì
người sử dụng có thể dùng các kí tự điểu khiển: delete hoặc backcpace để loại bỏ
kí tự sai và nhập lại. Công việc này gọi là kiểm soát lỗi bằng tay.
Đối với việc truyền dữ liệu, khi 1 thiết bị đầu cuối chuyển các khối ký tự hay
là khung dọc theo một đường truyền nối tiếp đến các thiết bị đầu cuối khác,
chương trình bên thu sẽ thực hiện một thủ tục kiểm soát lỗi tự động trong suốt đối
với người sử dụng. Thông thường bên thu sẽ kiểm tra các khung vừa nhận được và
trả về bên phát một thông điệp để xác định là đã nhận được đúng hoặc yêu cầu gửi
lại một bản sao khác. Loại khiểm soát lỗi này gọi là ARQ (Automatic Repeat
Request).
9
CHƯƠNG II:
KỸ THUẬT KIỂM SOÁT LỖI ARQ
2.1 : Đặc điểm ARQ
Trong thực tế có 2 loại cơ sở ARQ đó là Idle RQ được dung với truyền định
hướng ký tự, continuous RQ được dùng với các loại truyền lại selective repeat
hoặc goback N. Loại RQ liên tục thường dùng với truyền định hướng bit.
Nguyên lý kiểm soát lỗi idle RQ được định nghĩa để cho phép các khung của
ký tự được truyền một cách tin cậy. Để phân biệt phía gửi ( nguồn ),và phía nhận
đích các thuật ngữ P ( primary ) và S ( secondary ) sẽ được sử dụng. Để phân biệt
các khung dữ liệu và khung giám sát ta thường dùng các thuật ngữ I-Frame và
ACK hay NAK Frame.
10
Idle RQ hoạt động ở chế độ mode bán song công, bởi vì sau khi P gửi một I-
Frame nó phải chờ bên S báo cho biết là khung trước đó đã nhận đúng hay sai. Và
P sẽ truyền một khung mới nếu thông tin nhận được là đúng, và yêu cầu gửi lại
khung cũ nếu thông tin nhận được là sai.
Có 2 cách thực hiện nguyên lý này là truyền hiểu ngầm và truyền tường
minh.
Khi truyền thông tin trong mạng, thông tin truyền từ phía phát sang phía thu
có thể bị sai lỗi hoặc mất.Trong trường hợp thông tin bị mất, cần phải thực hiện
truyền lại thông tin. Với trường hợp thông tin bị sai, có thể sửa sai bằng một trong
2 cách:
- Sửa lỗi trực tiếp bên phía thu: phía thu sau khi phát hiện lỗi có thể sửa lỗi
trực tiếp ngay bên thu mà không yêu cầu phải phát lại. Để thực hiện được
điều này, thông tin trước khi truyền đi phải được cài các mã sửa lỗi ( bên
cạnh việc có khả năng phát hiện lỗi, cần có khả năng sửa lỗi ).
- Yêu cầu phía phát truyền lại: phía thu sau khi kiểm tra và phát hiện có lỗi sẽ
yêu cầu phía phát truyền lại thông tin.
ARQ ( Automatic Repeat Request ), có thể dịch là cơ chế phát lại, ở giao thức TCP
có sử dụng đến cơ chế này. Nó dùng để điều khiển luồng và điều khiển chống tắc
nghẽn.
2.1.1 : Vấn đề khi trao đổi dữ liệu
Một số vấn đề khi hai thiết bị kết nối trực tiếp truyền nhận dữ liệu :
○ Đồng bộ khung.
○ Điều khiển tốc độ truyền dữ liệu.
○ Xử lý lỗi gặp phải trên đường truyền.
○ Định vị địa chỉ ( trong cấu hình multipoint ).
○ Phân biệt điều khiển và thông tin điều khiển.
○ Quản lý liên kết.
11
Nội dung:
Điều khiển dòng dữ liệu
Điểu khiển lỗi
Một số nghi thức điều khiển liên kết dữ liệu
Điều khiển dòng dữ liệu
Bên nhận thường có bộ đệm để nhận dữ liệu.
Khi dữ liệu đến, bên nhận thường thực hiện một số xử lý trước khi gửi
lên lớp cao hơn.
Điều khiển dòng: đảm bảo bên phát không gửi dữ liệu quá nhanh.
Ngăn ngừa việc tràn bộ đệm.
* Mô hình truyền khung:
12
2.1.2: Phân khung.
Khối lớn dữ liệu có thể chia thành các khung nhỏ.
Phù hợp với bộ nhớ đệm giới hạn.
Phát hiện các lỗi nhanh hơn ( khi cả khung được nhận xong).
Trong trường hợp lỗi, chỉ cần truyền lại các khung nhỏ hơn.
Tránh trường hợp một trạm bất kì chiếm đường truyền quá lâu.
Điều kiện giả định:
Tất cả frame đều đến đích
Không có frame lỗi
Các frame đến đúng thứ tự
Nghi thức Idle RQ ( stop – and – Wait )
13
- Đặc điểm:
+ Phương thức đơn giản nhất
+ Được dùng chủ yếu trong các ứng dụng character-oriented.( byte-oriented)
+ Sử dụng kenh truyền hoạt động trong chế độ half-duplex
- Cơ chế hoạt động:
+ Nguồn phát dữ liệu ( dưới dạng các frame )
+ Đích nhận dữ liệu và trả lời bằng ACK
+ Nguồn phải đợi ACK trước khi phát tiếp dữ liệu
+ Đích có thể ngưng truyền dữ liệu bằng cách không gửi ACK
Idle RQ- Hiệu suất
- Thời gian truyền ( tframe ) : thời gian cần thiết để gửi tất các bit dữ liệu trên
đường truyền.
- Thời gian lan truyền ( tprop ) : thời gian cần thiết để 1 bit đi từ nguồn đến
đích.
- Thời gian tổng cộng: TD=n(2tprop + tframe).
- Hiệu suất đường truyền:
14
Vấn đề kích thước Frame:
- Hiệu quả đường truyền cao nếu frame kích thước lớn.
- Thực tế dữ liệu lớn được chia thành các frame nhỏ.
- Kích thước bộ đệm có giới hạn.
- Frame kích thước nhỏ khó xảy ra lỗi.
- Lỗi được phát hiện sớm.
- Khi có lỗi chỉ cần truyền lại frame nhỏ.
- Ngăn ngừa tình trạng 1 trạm làm việc chiếm đường truyền lâu Sliding
windows.
Cơ chế hoạt động:
- Cho phép nhiều frame có thể truyền đồng thời.
- Bên thu có bộ đệm với kích thước W ( có thể nhận W frame).
- Bên phát có thể truyền tối đa W-1 frame mà không cần đợi ACK.
- ACK có chứa số thứ tự của frame kế tiếp có thể truyền.
Số thứ tự được quay vòng bởi kích thước của sổ ( modulo 2k)
15
Cải tiến:
- Bên thu có thể gửi ACK mà không cho phép bên phát gửi tiếp dữ liệu
( Receive Not Ready ).
- Trong trường hợp này, bên thu phải gửi ACK để bình thường hóa việc truyền
nhận dữ liệu khi nó sẵn sằng.
- Nếu đường truyền là full-duplex, dùng cơ chế “ piggybacking” : tích hợp
ACK vào frame dữ liệu.
- Nếu có dữ liệu để truyền nhưng không có ACK để truyền, gửi lại ACK cuối
cùng, hoặc có cờ ACK hợp lệ (TCP).
16
Hiệu suất
- Full-Duplex
Điều khiển lỗi là gì?
- Điều khiển lỗi là các kỹ thuật để phát hiện và sửa lỗi xảy ra trong quá trình
truyền các frame.
- Đảm bảo truyền nhận dữ liệu chính xác.
Kỹ thuật điều khiển lỗi
- Phân loại đối với lỗi frame.
- Mất frame: frame không đến đích hoặc đến nhưng thông tin điều khiển trên
frame bị hư ( bên nhận không thể xác định là frame nào ).
- Frame hỏng: thông tin điều khiển trên frame xác định được, nhưng dữ liệu
trong frame bị lỗi.
- Phát hiện lỗi ( CRC, Parity…).
- Positive ACK - xác nhận các frame nhận được.
- Negative ACK ( NAK ) - yêu cầu truyền lại cho các frame bị hỏng .
- Truyền lại sau một thời gian time-out.
17
Cơ chế:
- Dựa trên điều khiển dòng.
- Kỹ thuật ARQ ( Automatic Repeat Request)
Cho phép các nghi thức liên kết dữ liệu quản lý và yêu cầu truyền lại.
- Phân loại:
+ Idle RQ ( stop-and-wait)
Dùng với cơ chế điều khiển dòng stop-wait.
+ Continuous RQ
Dùng với cơ chế điều khiển dòng silding-windows.
Selective repeat.
Go – back – N .
∆ → Idle RQ
- Cơ chế hoạt động:
A gửi một I-frame ( Information Frame ) đến B
A đợi phản hồi từ B trước khi gửi tiếp frame
ACK-frame – A gửi dữ liệu mới
NAK-frame – A gửi lại dữ liệu
Không nhận được trả lời – A gửi lại sau thời gian time-out
- Ưu / khuyết điểm:
+ Đơn giản
+ Độ hiệu quả đường truyền thấp
18
2.2 : Phân loại kỹ thuật kiểm soát lỗi ARQ
Các cơ chế phát lại được chia làm 3 loại :
- Cơ chế phát lại dừng và đợi ( Stop – and – wait ARQ ) .
- Cơ chế phát lại theo nhóm ( Go – back – N ARQ ) .
- Cơ chế phát lại có lựa chọn ( Selecive repeat ARQ ) .
2.2.1: Cơ chế phát lại dừng và đợi ( Stop – and – wait ARQ ).
Stop – and – wait ARQ là một dạng của điều khiển dòng truyền dừng và đợi
đã mở rộng để chứa các chức năng truyền lại dữ liệu trong trường hợp dữ liệu bị
mất hoặc bị hư hỏng, để việc truyền lại có thể thực hiện được bổ sung vào cơ cấu
dòng truyền 4 tính chất sau:
19
- Thiết bị gửi lưu bản copy khung được truyền cuối cùng cho đến khi nó nhận
được ACK của khung đó. Việc này cho phép thiết bị gửi truyền lại khung bị
mất hoặc khung bị hư hỏng đến khi chúng được nhận đúng.
- Để nhận dạng đúng, cả khung dữ liệu lẫn khung ACK được đánh số luân
phiên 0 và 1. Khung dữ liệu 1 được nhận biết bởi khung ACK1 có nghĩa là
thiết bị nhận đã nhận được dữ liệu 1 và bây giờ đang chờ nhận dữ liệu 0,
việc đánh số này cho phép nhận dạng khung dữ liệu trong trường hợp dữ
liệu truyền 2 lần ( điều này là quan trọng khi các khung ACK bị mất ) .
- Nếu một lỗi được phát hiện trong khung dữ liệu thì nơi nhận gửi khung
NAK. Các khung NAK không được đánh số, thiết bị tự hiểu cần phải truyền
lại khung cuối. Stop – and – wait ARQ đòi hỏi thiết bị gửi đợi đến khi nhận
ACK khung cuối, trước khi truyền khung tiếp theo. Khi thiết bị gửi nhận
khung NAK nó gửi lại khung đã được truyền sau ACK cuối mà bỏ qua số
khung của nó.
- Thiết bị gửi được trang bị đồng hồ. Nếu chờ khung NAK trong một thời gian
xác định mà không thấy thì cho rằng khung dữ liệu cuối đã bị mất và gửi lại
khung đó.
Cơ chế hoạt động:
• Nghi thức điều khiển lỗi đơn giản nhất.
• Máy phát gửi một frame sau đó dừng và chờ một xác nhận từ máy thu.
• Nếu xác nhận là ACK thì frame kế tiếp sẽ được gửi đi.
• Nếu xác nhận là NAK thì truyền lại frame vừ truyền.
• Nếu nhận một frame hỏng thì bỏ đi.
• Máy phát có time out.
• Nếu không có ACK trả về trong thời gian time out thì truyền lại.
• Nếu ACK bị hỏng, máy phát không nhận ra.
• Máy phát sẽ truyền lại.
• Máy thu nhận 2 bản copy của khung.
• Dùng ACK0 và ACK1.
20
21
Các loại lỗi:
- E1: I-Frame không đến được bên nhận.
- E2: I-Frame đến được bên nhận nhưng nội dung I-Frame bị sai.
- E3: ACK-Frame không đến được bên gửi hay ACK-Frame đến được bên gửi
nhưng nội dung ACK-Frame bị sai.
Cách sửa lỗi:
→ Sửa lỗi E1:
Sử dụng timer: bên gửi sau khi gửi một I-Frame thì khởi động bộ đếm thời
gian , sau khoảng thời gian đợi T mà chưa nhận được tín hiệu ACK/NAK báo về
thì xem như I-Frame chưa tới và gửi lại Frame này.
22
→ Sửa lỗi E2:
Khi một khung dữ liệu nhận được bị lỗi thì thiết bị nhận sẽ gửi khung NAK
và truyền lại khung cuối.
23
→ Sửa lỗi E3:
Trong trường hợp khung dữ liệu nhận đúng ở bên nhận. Khung ACK (NAK)
mà thiết bị nhận gửi bị mất trên đường truyền thì:
- Thiết bị gửi dợi hết thời gian quy định, sau đó truyền lại khung dữ liệu cuối.
Thiết bị nhận kiểm tra số khung dữ liệu mới. Nếu khung bị mất là NAK thiết
bị nhận nhận khung mới này và trả lời ACK ( khung mới không bị hỏng).
- Nếu khung mất là ACK thì thiết bị nhận nhận khung mới này như bản sao
khác nữa sau đó gửi ACK rồi bỏ qua những bản sao này và đợi khung tiếp
theo.
24
** Cửa sổ trượt ARQ
Trong nhiều cơ cấu điều khiển lỗi truyền thông , có 2 thủ tục phổ biến nhất
Go-Back-N ARQ và chọn lựa từ chối ARQ. Cả 2 đều dựa vào điều khiển dòng cửa
sổ trượt. Để mở rộng cửa sổ trượt cho truyền lại các khung bị mất hoặc bị hỏng
phải bổ sung thêm 3 điểm vào điều khiển dòng truyền:
- Thiết bị gửi lưu bản copy tất cả các khung đã được truyền cho đến khi nhận
được khung ACK. Nếu các khung từ 0 đến 6 đã được truyền và nhận biết
cuối cùng cho khung 2 ( chờ khung 3) thì thiết bị gửi lưu bản copy của
khung 3 đến khung 6 cho đến khi nó biết rằng những khung này đã được
nhận đúng.
- Bên cạnh các khung ACK thiết bị nhận còn gửi các khung NAK nếu dữ liệu
nhận được bị lỗi. Bởi cửa sổ trượt là cơ cấu truyền liên tục, cả khung ACK
và NAK đều được đánh số để nhận diện. Các khung ACK mang số của
khung sẽ gửi tiếp theo.Các khung NAK mang số của chính khung hỏng.
Trong cả 2 trường hợp đều cho biết số khung mà thiết bị nhận đang chờ đợi.
Nếu ACK trước đó được đánh số 3, thì ACK 6 hiện thời cho biết đã nhận tốt
các khung 3,4,5 . Nếu NAK 4 có nghĩa là tất cả các khung nhận được trước
khung 4 đều đúng.
Giống như Stop – and – Wait ARQ ở đây thiết bị gửi theo dõi thời gian để điều
khiển khi ACK và NAK bị mất.
25