You are on page 1of 11

Tìm hiểu hoạt động của một số cơ chế điều khiển lỗi

Selective Repeat ARQ tại lớp data-link control và chứng


minh sự hiệu quả của các cơ chế qua mô phỏng.
Nguyễn Quang Hùng
MSSV: 20182556 MSSV: MSSV:
Abstract—Bài báo cáo về giao Selective repeat Tầng liên kết dữ liệu (Data Link Layer) là tầng thứ
ARQ trong lớp Data-link control. Trong bài này tập 2 trong mô hình bảy tầng OSI, được thể hiện trong Hình
trung tìm hiểu về giao thức, mô phỏng và đánh giá 1. Nó đáp ứng các yêu cầu phục vụ gửi tới tầng vật lý.
hiệu quả của các cơ chế của giao thức, đồng thời so Tầng này có nhiệm vụ truyền dữ liệu giữa các nút mạng
sánh hiệu quả của giao thức so với các giao thức liền kề nhau trong một mạng diện rộng hoặc giữa các
khác. nút trong cùng một segment mạng cục bộ. Nó cung cấp
các phương tiện chức năng và thủ tục để truyền dữ liệu
Keywords: ARQ,OSI, selective repeat, data-link,
giữa các thực thể mạng và có thể cung cấp phương tiện
ACK, NACK, NAK,error detecting codes
để phát hiện và có thể sữa các lỗi có thể nảy sinh tại
tầng vật lý.
I. GIỚI THIỆU MÔ HÌNH OSI VÀ LỚP DATA Nhiệm vụ của liên kết dữ liệu là gửi thông tin từ nơi
LINK CONTROL này đến một số nơi khác. Tại tầng này, một nút mạng
không cần phải có khả năng gửi tới mọi nút khác, mà
Mô hình OSI (Open Systems Interconnection
chỉ cần gửi được tới một số nút khác. Tầng liên kết dữ
Reference Model, viết ngắn là OSI Model hoặc OSI
liệu cung cấp dịch vụ chuyển dữ liệu qua các liên kết
Reference Model) – tạm dịch là Mô hình tham chiếu kết
vật lý. Việc chuyển đó có thể đáng tin cậy hoặc không
nối các hệ thống mở – là một thiết kế dựa vào nguyên
đáng tin cậy; nhiều giao thức liên kết dữ liệu không có
lý tầng cấp, lý giải một cách trừu tượng kỹ thuật kết nối
acknowledgement (các thông điệp báo rằng đã nhận
truyền thông giữa các máy vi tính và thiết kế giao thức
được một frame và đã chấp nhận frame đó), một số giao
mạng giữa chúng. Mô hình này được phát triển thành
thức liên kết dữ liệu thậm chí còn không có bất cứ dạng
một phần trong kế hoạch kết nối các hệ thống mở
checksum nào để kiểm tra lỗi truyền. Trong các trường
(Open Systems Interconnection) do ISO và IUT-T khởi
hợp đó, các giao thức ở các tầng cao hơn phải cung cấp
xướng. Nó còn được gọi là Mô hình bảy tầng của OSI.
các chức năng điều khiển khiển lưu lượng (flow
control), kiểm lỗi, và xác nhận và truyền lại
(acknowledgments and retransmission).

Hình 2: Cấu trúc lớp Data link


Tầng này được chia thành hai tầng con. Tầng con
thứ nhất là Điều khiển liên kết logic (Logical Link
Hình 1: Mô hình OSI Control, viết tắt là LLC). Tầng LLC ghép các giao thức
hoạt động phía trên tầng liên kết dữ liệu, và theo tùy
chọn có thể cung cấp chức năng điều khiển lưu lượng,
acknowledgment, và khôi phục lỗi.
Tầng con thứ hai là điều khiển truy nhập (Media 1. Mô hình cơ chế phát lại ARQ
Access Control, viết tắt là MAC). Tầng con này quyết  Sửa lỗi trong lớp kết nối dữ liệu dung cơ sở
định tại mỗi thời điểm ai sẽ được phép truy nhập môi yêu cầu lặp lại (ARQ), tức là việc truyền lại dữ
trường truyền dẫn. Có hai dạng điều khiển truy nhập liệu trong ba trường hợp :
môi trường: điều khiển phân tán và điều khiển tập  Frame(data) bị hỏng.
trung.  Frame(data) bị thất lạc.
II. CƠ CHẾ PHÁT LẠI ARQ  Tín hiệu chấp chận (ACK) bị thất lạc

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 hai cách:
 Sửa lỗi trực tiếp từ bên 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át lại. Để có thể thực hiện được
điểu này, thông tin trước khi truyền đi phải được
Hình 3: Mô hình cơ chế hoạt động của ARQ[4]
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). Các cơ chế phát lại được chia làm 3 loại chính:
 Yêu cầu phía phát truyền lại: nếu phát hiện lỗi
khi truyền thì bên thu gửi về tín hiệu không xác  Cơ chế phát lại dừng và đợi (Stop-
nhận (NAK) và frame được gửi lại. Quá trình and-Wait ARQ): Trong cơ chế phát lại theo
này được gọi là yêu cầu tự động lặp lại ARQ phương pháp dừng và đợi (Stop-and-Wait ARQ),
(Automaitc Repeat Request) phía phát sẽ thực hiện phát một khung thông tin
sau đó dừng lại, chờ phía thu báo nhận. Phía thu
Đặc điểm của hai phương pháp sửa lỗi trên: khi nhận đúng thông tin và xử lí xong sẽ gửi báo
 Sửa lỗi trực tiếp bên thu (Forward Error nhận cho bên phát khung thông tin tiếp theo.
Correction – FEC): chỉ cần truyền thông tin một Phía thu khi nhận thông tin và phát hiện sai sẽ
lần, không yêu cầu phải truyền lại thông tin trong gửi báo sai lại cho phía phát. Phía phát sau khi
trường hợp có lỗi. Tuy nhiên, số lượng bit thông nhận được báo sai sẽ thực hiện phát lại khing
tin có thể sửa sai phụ thuộc vào số loại mã sửa thông tin. Báo nhận được sử dụng cho khung
sai và số bit thông tin thêm vào cho mục đích sửa thông tin đúng và được gọi là ACK(viết tắt của
sai. Nhìn chung, số bit thông tin thêm vào càng chữ acknowledgement). Báo sai được sử dụng
lớn thì số bit có thể sửa sai càng nhiều, tuy nhiên cho khung thông tin bị sai và được gọi là
hiệu suất thông tin (số bit thông tin hữu ích trên NAK( viết tắt của chữ Negative
tổng số bit truyền đi) lại thấp. Acknowledgement).
 Sửa lỗi bằng cách truyền lại: khác với sửa lỗi
trực tiếp bên thu, trong trường hợp sửa lỗi bằng
cách truyền lại, thông tin trước khi phát chỉ cần
thêm các bit thông tin phục vụ cho mục đích phát
hiện lỗi (số bit thêm vào ít hơn so với trường hợp
sửa lỗi) do đó hiệu suất truyền thông tin cao hơn
so với trường hợp trên. Tuy nhiên, trong trường
hợp có lỗi xảy ra với khung thông tin thì toàn bộ
khung thông tin phải được truyền lại (giảm hiệu
suất truyền tin). Hình 4: Cơ chế Stop-and-Wait ARQ[4]
 Với ưu nhược điểm của các phương pháp trên,  Tóm tắt cơ chế họa động của Stop-and-Wait
sửa lỗi bằng cách truyền lại thường được dùng ARQ: Phía phát -giả sử tại thời điểm ban đầu
trong môi trường có tỷ lệ lỗi bit thấp (truyền dẫn SN=0
hữu tuyến) trong khi sửa lỗi bên thu thường được
-Nhận gói tin từ phía trên và gán SN cho gói
dùng trong trường hợp môi trường truyền dẫn có
tỷ lệ lỗi bit cao (vô tuyến). Để có thể đối phó với tin này.
trường hợp lỗi trùm (burst noise ), có thể áp dụng -Gửi gói tin SN này trong một khung thông tin
một số cơ chế như ghép xen kẽ thông tin có số thứ tự là SN.
(interleaving).
-Chờ khung thông tin (không có lỗi , đóng vai số khung mà phía thu phải xử lý tại một thời
trò là khung báo nhận) từ phía thu. điểm vẫn không vượt quá W.
Nếu khung thông tin không có lỗi, và trong
trường hợp Request có RN >SN thì đặt giá trị
SN=RN và quay lại bước 1
Nếu không nhận được khung thông tin trong
một khoảng thời gian định trước(time-out),
thì thực hiện bước 2
Phía thu-giả sử tại thời điểm đầu RN=0 Hình 6: Mô hình cơ chế Go-back-N
-Khi nhận được một khung thông tin (không
có lỗi ) từ phía phát, chuyển khung thông tin  Một sốc chú ý của chơ chế hoạt động ARQ Go-
này lên lớp phía trên và tang giá trí của RN lên back-N:
1 Bên cạnh nguyên tắc hoạt động và minh họa
-Trong trường hợp nhận được khung thông tin đã trình bày trên đây, cần chú ý một số điểm
có lỗi, gửi lại một khung thông tin cho phía sau khi tìm hiểu hoạt động của Go-back-N:
phát với RN được giữ nguyên (khung báo sai -Trong trường hợp phía thu có khả năng xử lí
-NAK). Khung được gửi từ phía thu này có thể W khung thông tin thì không cần bộ đệm. Phía
chứa cả thông tin từ phía thu sang phía phát thu chỉ nhận và xử lí thông tin theo đúng thứ
chứ không đơn thuần dung cho mục đích báo tự (dựa trên số thứ tự đánh trên các khung )
sai. -Phía thu chuyển các gói thông tin lên lớp cao
Hình mô tả nguyên tắc hoạt động của cơ chế hơn theo thứ tự.
stop-and-wait ARQ có sử dụng SN và RN. -Phía thu sẽ không nhận khung i+1 nếu chưa
nhậ được khung i. Điều này là nguyên nhân
khiến phía thu không cần phải có bộ nhớ đệm
-Phía phát phải lưu tối đa là W khung thông
tin trong bộ nhớ đệm để chở ACK
 Cơ chế phát lại có lựa chọn (Selective repeat
ARQ): Tương tự như cơ chế phát lại Go-back-N,
cơ chế phát lại có lựa chọn (selective repeat
ARQ) cũng dựa trên phương pháp cửa sổ trượt.
Phía phát được phép phát tối đa W khung thông
Hình 5: Stop-and-wait ARQ có sử dụng SN/RN tin (kích thước cửa sổ) trước khi nhận được báo
 Cơ chế phát lại theo nhóm (Go-back-N ARQ): nhận. Điểm khác biệt giữa selective repeat và
Với cơ chế phát lại Go-back-N, phía phát sẽ Go-back-N nằm ở cách hai phương thức này xử
được phát nhiều hơn một khung thông tin trước lý khung thông tin bị lỗi. Với trường hợp
khi nhận được báo nhận từ phía thu. Số khung selective repeat , phía phát sẽ chỉ thực hiện phát
thông tin cực đại mà phía phát có thể phát (ký lại khung thông tin bị lỗi mà không cần phát lại
hiệu là W) được gọi là kích thước cửa sổ. Mỗi tất cả các khung khác sau khung lỗi nếu như các
khi phát xong một khung thông tin, phía phát khung đó không bị sai.Trong nội dung bài báo
giảm kích thước cửa sổ đi 1, khi kích thước cửa cáo này sẽ tập trung vào phân tích và đánh giá
sổ bằng 0, phía phát sẽ không được phát thêm một số cơ chế điều khiển lỗi Selective reapeat
khung thông tin nào nữa (điều này đảm bảo số ARQ tại lớp data-link control và so sánh hiệu
khung thông tin đồng thời đến phía thu không quả của các phương pháp.
vượt quá W, và do đó, không vượt quá khả năng
xử lý của phía thu). Mỗi khi phía thu nhận được
một khung thông tin đúng và xử lý xong, phía
thu sẽ gửi lại một báo nhận ACK cho phía phát.
Khi nhận được báo nhận này, phía phát sẽ tăng
kích thước cửa sổ W lên 1. Điều này đồng nghĩa
với việc phía phát sẽ được phát thêm một khung
nữa, ngoài W khung đã phát trước đó, vì phía
thu đã xử lý xong một khung, và như vậy, tổng
detecting codes) để phục vụ cho các cơ chế phát lại
ARQ là hiệu quả hơn. Trên thực tế có 3 loại mã phát
hiện lỗi thường được sử dụng là[1]:
 Parity.
 Checksums.
 Cyclic Redundancy Checks (CRCs).
Thông thường trong ARQ thường sử dụng CRCs.
III. PHÂN TÍCH CƠ CHẾ PHÁT LẠI CÓ LỰA
CHỌN (SELECTIVE REPEAT ARQ)
Hình 7: Nguyên tắc hoạt động của Selective repeat. Cơ chế go-back-N đã nêu ở trên đạt hiệu suất cao
 Một số chú ý của selective repeat ARQ :Do chỉ trong các trường hợp tỷ lệ lỗi bit của kênh truyền
phía phát chỉ thực hiện phát lại các khung bị thấp. Ngược lại nếu tỷ lệ lỗi bit của kênh truyền cao, do
lỗi, do đó các khung đến phía thu có thể phải phát lại cả một khung dữ liệu (w frame) nếu xảy ra
không theo thứ tự như khi được phát đi ở lỗi nên hiệu suất đạt được của cơ chế này sẽ rất thấp.
phía phát Phía thu phải có khả năng xử lý các Cơ chế selective repeat sẽ giải quyết vấn đề này bằng
cách chỉ phát lại duy nhất một frame bị lỗi thay vì phát
khung thông tin không theo thứ tự. Do các
lại nhiều frame như GBN.
khung thông tin phải được đưa lên lớp trên
theo đúng thứ tự nên phía thu phải có bộ đệm Cơ chế SRP (Selective Repeat Protocol) yêu cầu
để lưu tạm các khung thông tin trong khi chờ bên gửi và bên nhận có khả năng lưu trữ dữ liệu vào bộ
các khung bị mất hoặc lỗi được phát lại. Phía đệm. Bên nhận sẽ nhận cả những frame không đúng
phát phải thực hiện báo nhận cho tất cả các trình tự và lưu lại sau đó gửi báo lỗi NAK để bên phát
khung thông tin mà nó nhận đúng. Các khung phát lại gói tin bị lỗi. tương ứng bên phát có khả năng
thông tin không được báo nhận trong khoảng lưu trữ các gói đã gửi đi theo đúng trình tự, rồi phát lại
thời gian time-out tương ứng sẽ được coi là bị nếu có yêu cầu.
mất hoặc lỗi Trong trường hợp phía thu nhận A. Mô hình hệ thống và nguyên lý hoạt động
được một khung thông tin sai, phía thu có thể
Cơ chế SRP trong lớp data link hoạt động với mô
gửi NAK để báo lỗi và yêu cầu truyền lại khung
hình như hình 8. Lớp datalink trong mô hình OSI đặt
đó (selective reject)
giữa lớp Network và lớp Physical, vì thế hoạt động của
2. Các phương pháp phát hiện lỗi lớp data link nói chung và cơ chế ARQ nói riêng được
Như đã đề cập ở phần trên, mã sửa lỗi (error- xem xét từ quan hệ vào ra của ba lớp này. Ngoài ra
correcting codes) chỉ hiệu quả trong môi trường truyền kênh truyền chính là nguyên nhân gây ra lỗi tin nên cần
không dây do xác suất lỗi là khá lớn, ngược lại đối với được xem xét tới ở đây.
các môi trường truyền ít xảy ra lỗi hơn như quang hay
cáp đồng trục thì việc sử dụng mã phát hiện lỗi (error-
Sender Receier

Network Network
getFromN wLayer() getFromN wLayer()
Data frame ACK or NAK frame

Control:(seqNr|ackNr )
Data link Protocol:(ACK or NAK) Data link
Data packet
getFromP hys Layer() putToPh ysL ayer() Trailer:(error detection) getFromP hys Layer() putToPh ysL ayer()

Physical Physical
Channel

Hình 8: Mô hình tổng quan hệ thống


Giả sử một yêu cầu gửi dữ liệu được chuyển tới lớp Sau khi frame được tạo ra, cơ chế SRP sẽ thực hiện
datalink từ lớp network. Lớp datalink sẽ tạo ra một lưu frame trên vào bộ đệm. Sau đó gửi frame đó xuống
frame bằng cách thêm vào các dãy bits mã hóa khác để lớp Physical để thực hiện các chức năng khác, và cuối
thực hiện các chức năng của cơ chế. Như trong hình cùng là truyền đi trên kênh truyền. Kênh truyền tác
bên gửi bên gửi sẽ tạo ra một frame data bao gồm các động lên frame và gây ra các sai hỏng tùy thuộc vào
trường: Control, Protocol, Trailer và Data. Trong đó BER (Bit error ratio) - tỷ lệ lỗi bit tương ứng của mỗi
data là dữ liệu được lấy từ lớp mạng, các trường còn lại loại kênh truyền. Khi tới phía nhận, lớp Physical sẽ tiếp
được lớp datalink thêm vào. nhận và xử lý sau đó chuyển lên cho cho lớp datalink.
Frame sẽ được kiểm tra với đoạn mã trong trailer và sẽ
Trường Control và Protocol còn được ghép lại gọi là
phát hiện ra sai hỏng nếu có. Đồng thời cũng so sánh
header, xuất hiện trong hình 1. Control bao gồm hai
giá trị của sequence number trong trường control để
thông tin và sequence number, số thứ tự frame được
biết được frame có tới đúng thứ tự hay không, nhờ đó
phát đi, và ack number, là số thứ tự mà bên gửi frame
cũng có thể biết các frame trước đó có bị mất trong quá
này đang cần nhận. Protocol được sử dụng để mã hóa
trình truyền hay không.
loại frame, với cơ chế selective repeat sẽ gồm các loại
data frame, ack frame, nak frame. Trường Trailer được Nếu frame nhận được không bị lỗi và đúng thứ tự
lưu dãy bit của mã phát hiện lỗi. Trong ARQ thông thì lớp data link sẽ chuyển dữ liệu trong trường data lên
thường sẽ là loại mã sửa sai CRC. Cũng có thể đó là lớp network. Đồng thời tạo ra một acknowledge frame
check parity hay check sum, hoặc một mã phát hiện lỗi với cấu trúc tương tự data frame nhưng không có
dạng phi tuyến nào đó tùy vào hệ thống. trường data và protocol sẽ là kiểu ack frame. Trường
hợp frame nhận được bị lỗi, hoặc không lỗi nhưng
không đúng trình tự thì bên nhận vẫn thực hiện tạo ra
một acknowledge frame nhưng với kiểu protocol là nak
frame. Nếu frame sai thứ tự nhưng hợp lệ và nằm
không cửa sổ nhận thì bên nhận đưa frame đó vào bộ
đệm để lưu lại. Sau cùng đưa frame xuống lớp vật lý và
truyền trở lại bên đã gửi dữ liệu.
B. Các trường hợp phát lại trong cơ chế Selective
repeat ARQ
Các trường hợp lỗi có thể gặp trong quá trình truyền
tin là: mất gói, gói tin tới đích nhưng bị lỗi, gói tin báo
nhận bị lỗi. Các trường hợp này được mô tả trong hình
9 bên dưới. Hình 9 mô tả quá trình truyền nhận các
frame theo trục thời gian. Từ mô tả trong hình có thể
tìm được kích thước cửa sổ bằng 3, tổng cộng có 11
frame dữ liệu đã được truyền thành công và có 3 trường
hợp xảy ra lỗi.
Seq Num 0 1 2 3 4 1 5 6 7 8 6 9 10 11
S
Time

R Req Num 0 1 1 1 1 1 5 6 6 6 6 9 10 11

Network layer 0 1 2 3 4 5 6 7 8 9 10 11

Transmit normally ACK


Retransmit NAK

Hình 9: Mô hình các trường hợp phát lại trong Selective repeat ARQ
Mất gói tin trong hình bên dưới có thể thấy trong thứ tự nhỏ hơn RN đã được chuyển lên lớp network
trường hợp của frame số 1. Gói tin bị mất trên kênh theo đúng trật tự. Như vậy khi nhận được ACK frame
truyền và không thể tới được bên nhận. Bên nhận không có RN = 10 thì bên phát sẽ hiểu là các frame SN<10 đã
làm gì cho tới khi frame tiếp theo được truyền tới. Lúc chuyển thành công và có thể tiếp tục quá trình truyền
này SN (Sequence number) số thứ tự của gói tin, là 2, mà không cần quan tâm có nhận được ack 9 hay không.
nhưng RN (Request Number) số thứ tự của frame cần
C. Hiệu suất của phương pháp Selective repeat
nhận tiếp theo là 1. Vì thế bên nhận sẽ phát hiện ra có
ARQ, so sánh với các phương pháp khác
lỗi xảy ra khi truyền frame 1. Và gửi NAK frame báo
lỗi frame số 1. Đồng thời frame 2 được đưa vào bộ Hiệu suất của cơ chế ARQ được tính bằng tỷ lệ tốc
đệm để xử lý sau. Giá trị RN lúc này cũng không thay độ truyền nhận thực tế (Reff) so với lý thuyết (R). Với
đổi cho tới khi frame 1 được phát lại và được nhận mà Reff được tính theo công thức[2]:
không có lỗi. Lúc này bên nhận sẽ đưa các frame trong
bộ đệm tới lớp network theo thứ tự tăng dần từ RN=1. number of bits delivered n −n
Reff = deliver ¿= f o
Các frame tiếp theo sẽ được đưa vào một cách đúng thứ total time ¿ E( X )
tự và không trùng lặp. (1)
Lỗi gói tin, trường hợp này xảy ra ở frame số 6 Với E(X) thời gian truyền trung bình, nf là số bit dữ
trong hình .Gói tin tới được đích nhưng bị lỗi do quá liệu, no là số bit phát hiện lỗi.
trình truyền. Bên nhận lúc này sẽ gửi báo lỗi về cho
phía phát. Sau đó lại tiếp tục nhận các frame tiếp theo
một cách bình thường. Nhưng lúc này RN sẽ giữ
nguyên giá trị 6 cho tới khi nhận được frame 6 không
lỗi. Lúc này bên nhận lúc này mới lần lượt đưa các
frame trong bộ đệm tới lớp network theo thứ tự tăng
dần từ RN=6.
Mất gói, lỗi gói ACK, trường hợp này xảy ra khi gói
tin ACK bị lỗi trong quá trình truyền. Trong hình có thể
thấy trường hợp này rơi vào ACK frame chứa RN=9.
Trường hợp này không hề gặp khó khăn trong cơ chế
SRP. Như trong hình ACK frame chứa RN = 10 đã Hình 10: Biểu đồ thời gian quá trình truyền tin cơ chế ARQ
được tiếp nhận bởi bên phát. Mà theo nguyên tắc hoạt
Nếu không có lỗi xảy ra thì giá trị E(X) = t0. Giá trị
động của cơ chế, RN=10 chỉ thay đổi khi các frame với
t có thể thấy được qua hình là:
SN<10 đã được nhận thành công. Thật vậy, quan sát
trong hình ta thấy RN chỉ thay đổi khi các frame có số
t 0=2 ( t ¿ +t proc ) +n f / R+n a /R (2) Với cơ chế Selective repeat ta tìm được:

Với na là số bit của bản tin ack, còn R là băng thông tf


E ( X ) =( 1−P f ) t f + Pf ( E ( X )+t f )=
hệ thống. Áp dụng cách tính từ công thức (1) ta tìm 1−P f
được hiệu suất của các cơ chế phát lại như sau:
nf −no
Với cơ chế Stop and Wait, coi t0 = Tout ta có:
E( X ) n (5)
E ( X ) =( 1−P f ) t 0 + P f ( E ( X ) +T out )=
t0
( 1−P f )
ƞ SR=
R nf( )
= 1− o ∙ ( 1−Pf )

Từ các công thức (3), (4), (5) ta có thể so sánh được


hiệu suất của ba cơ chế phát lại với tỷ lệ lỗi bit. Đồ thị
nf −no no mô phỏng lại quan hệ hiệu suất và BER của kênh truyền
1− được vẽ bằng matlab với giá trị kích thước 1 frame =
E( X ) nf 1024 bit ta có đồ thị như hình 11.
ƞ SW = = ∙ ( 1−Pf )
R na 2 ( t ¿ +t proc )
1+ + ∙R Hình 11 cho thấy khi tỷ lệ lỗi bit tăng lên thì tất cả
nf nf các cơ chế phát lại hiển nhiên sẽ giảm hiểu suất truyền
(3) tải. Có thể thấy cơ chế SRP ít bị ảnh hưởng nhất bởi sự
tăng lên của giá trị BER.
Với cơ chế Go back-N ta tìm được:
Cơ chế SW là cơ chế có hiệu nhất, nhưng với giá trị
t + P f ( N−1 ) tthời gian frame đi trên kênh truyền t prop càng nhỏ thì
E ( X ) =( 1−P f ) t f + Pf ( E ( X )+ Nt f ) = f f
hiệu suất càng cao. Giá trị N = 5 và N = 50 đại diện cho
( 1−P f ) tỷ lệ t và t với (N-1) = 2 t / t . Giá trị N này tương
prop f prop f
đương với kích cửa sổ trong giao thức GBN và SR. Cơ
chế GBN cũng cho thấy giá trị N càng nhỏ thì hiệu suất
n f −no n
1− o càng ít bị ảnh hưởng bởi BER. Có thể nhận xét rằng.
E( X) nf
ƞGBN = = ∙ ( 1−Pf )
R 1+ ( N−1 ) Pf BER → 1 thì ƞGBN ~ ƞSR ,
(4)
BER → 0 thì ƞGBN ~ ƞSW .
Và chắc chắn ƞSR là lớn nhất trong mọi trường hợp.
Hình 11: Quan hệ các cơ chế ARQ với tỷ lệ lỗi bit
D. Sơ đồ thuật toán cơ chế Selective Repeat ARQ start

Để làm rõ hơn cơ chế phát lại có chọn lọc Sw= W -1;


Sf = 0;
Sn = 0;
SRP ta xây dựng thuật toán điều khiển cho bên
phát và bên nhận. Mô hình thuật toán bên gửi
F waitEvent();
được mô tả trong hình.
Requ est from T
netwo rk layer
event
event == F event == F event ==
repeat forever F
repeat forever NwLayerReq FrameArrival TimeOut

Handling of Handling o f T T
event T
Time-out receiver site
sender site
r = getFromPhysLayer();
d = getFromNwLayer(); seq = getNumTimeout();
event s = makeFrame(d, Sn); d = getFromBuffer(seq%w);
event s = makeFrame(d, seq);
putToBuffer(s);
Notification from Notificatio n from putToPhysLayer(s); startTimer(seq);
physical layer physical layer Sn=Sn+1; r.kind == NAK F r.kind == ACK F
startTimer(Sn);
T
Hình 12: Mô hình hóa cơ chế xử lý T
Sn-Sf >= Sw F
r.ack between( F
r.ack between( Sf ,Sn)?
F T
Sf ,Sn)?
T
disableNwLayer();
T
Sf <= r.ack F

d = getFromBuffer(r.ack%w);
s = makeFrame(d, Sn); T
enableNwLayer();
putToPhysLayer(s);
startTimer(r.ack); purgeBuffer(Sf%w);
stopTimer(Sf);
Sf = Sf+1;

Hình 13:Sơ đồ thuật toán cơ chế SRP bên gửi


start
frame đó. Lưu ý là trường hợp này có ưu tiên
Rn = 0;
Rw= W - 1;
xử lý thấp hơn hai trường hợp còn lại.
nakSent = false;
ackNeed = false;
markBuffer[w] = {0}; Nhánh thứ tư, khi kích thước bộ đệm vượt
giới hạn, tức là chệnh lệch cạnh trên và cạnh
F waitEvent();
dưới cửa sổ lớn hơn hoặc bằng kích thước cửa
T
sổ. Lúc này bộ đệm đã đầy và không thể lưu
event == F event == F
s = makeFrame(NAK,Rn);
putToPhysLayer(s);
thêm frame nào nữa vì thế cần báo cho lớp
FrameArrival ckSumError

T T
nakSent = true;
network không tiếp tục gửi dữ liệu xuống.
r = getFromPhysLayer();

T
r.seq between(Rn,Rw) &&
!markBuffer[r.seq%w]
F Ở bên nhận, nhánh thứ nhất tương ứng với
T
sự kiện có một frame được gửi tới và không
r.seq != Rn &&
nakSent == false
F
putToBuffer(r);
gặp lỗi. Lúc này bên nhận kiểm tra xem frame
T
markBuffer[r.seq%w]=1;
nhận được có đúng thứ tự hay không.
s = makeFrame(nak,Rn);
putToPhysLayer(s);
nakSent = true;
markBuffer[
Rn%w] == 1
F ackNeed == true F Nếu frame không đúng thứ tự tức là frame
T
T
Rn trước đó đã được gửi và bị mất gói, tiếp tục
d = getFromBuffer(Rn%w);
putToNwLayer(d); s = makeFrame(ACK,Rn); kiểm tra xem báo lỗi cho Rn đã được gửi chưa
purgeBuffer(Rn%w); putToPhysLayer(s);
Rn=Rn+1;
Rw=Rw+1;
nakSent = false;
ackNeed = false;
qua biến NakSent. Nếu chưa có báo lỗi được
ackNeed=true;
gửi thì gửi NAK frame cho Rn. Sau đó tiếp tục
kiểm tra xem frame nhận được có nằm trong
Hình 14: . Sơ đồ thuật toán cơ chế SRP bên nhận cửa sổ nhận không, nếu có thì lưu vào bộ đệm,
rồi trở về vòng lặp đợi sự kiện.
Cơ chế xử lý của cả bên nhận và bên gửi
đều đặt trong một vòng lặp vô hạn, đợi một sự Nếu frame nhận được là đúng thứ tự tức Rn
kiện diễn ra và sử lý yêu càu theo sự kiện đó. = Sn của frame thì thực hiện lưu vào bộ đệm.
Với bên gửi, cần xử lý các loại sự kiện: tới từ Bước tiếp theo sẽ kiểm tra các bit trạng thái
lớp network, lớp physical và sự kiện time-out. bộ đệm. Đi từ Rn tới vị trí cuối bộ đệm nếu lần
Cụ thể hơn ta có các loại sự kiện: lượt các bit đều là 1 thì sẽ đưa các dữ liệu
NwLayerReq, FrameArrival, Timeout có thể tương ứng từ bộ đệm lên lớp network. Vòng
thấy trong sơ đồ thuật toán hình 13 .Còn ở bên lặp khi gặp 1 bit 0 sẽ dừng việc kiểm tra bộ
nhận chỉ có duy nhất nguồn sự kiện tới từ lớp đệm, lúc này giá trị mới cửa cạnh cửa sổ sẽ
Physical với hai loại sự kiện: FrameArrival và dịch lên bằng số lượng packet dữ liệu đã được
CkSumError có thể thấy trong hình 14. đưa tới lớp network.
Các rẽ nhánh của của sơ đồ thuật toán IV. KẾT LUẬN
chính là các trường hợp có thể gặp của cơ chế
SRP. Ở bên phát ta thấy có 4 nhánh chính là Qua sự so sánh hiệu suất truyền tải của cơ
các sự kiện tới từ lớp khác. chế Selective Repeat với các cơ chế ARQ khác
ta kết luận rắng, cơ chế SRP cho hiệu suất tốt
Nhánh thứ nhất, khi có yêu cầu gửi từ lơp hơn cả. Nhưng các trường hợp tính toán trong
network bên phát sẽ tạo một frame, lưu vào bộ báo cáo này chưa thể đầy đủ và đúng cho mọi
đệm rồi gửi frame đi, đồng thời bật timer trường hợp. Giả sử như hệ thống có kênh
tương ứng với thứ tự frame lên. truyền rất dài, hoặc có thời gian xử lý quá
Nhánh thứ hai, khi nhận được frame truyền nhanh, hoặc kích thước dữ liệu là quá nhỏ
tới từ lớp physical. Lúc này sẽ rẽ nhánh ra hai dẫn tới thời gian truyền frame trên kênh truyền
trường hợp khác: nếu bản tin nhận được là quá lớn so với thời gian xử lý. Điều này dẫn
NAK và nằm trong cửa sổ gửi thì gửi lại frame tới việc kích thước cửa sổ sẽ không thể lấp đầy
với số thứ tự tương ứng; nếu nhận được một khe thời gian truyền tin. Hiệu suất lúc này
frame ACK có số thứ tự cũng nằm trong cửa cũng sẽ tụt giảm rất nhiều. Báo cáo này chưa
sổ gửi thì xóa bỏ bộ đệm của tất cả các frame thể nêu được vấn đề đó.
đã gửi và dịch vị trí cửa sổ.
Ta cũng thấy được sự phức tạp của thuật
Nhánh thứ ba, khi nhận được một timeout. toán xử lý của cơ chế này, so với hai cơ chế
Bên phát sẽ gửi lại frame trong bộ đệm với số ARQ còn lại thì cơ chế SRP phức tạp hơn rất
thứ tự của time-out và khởi động lại timer cho nhiều. Đồng thời hệ thống cũng cần phải cung
cấp một bộ đệm đủ lớn để phục vụ quá trình
xử lý. Dẫn tới chi phí cho cơ chế này rất cao.
Có lẽ cũng vì điều này mà trong các hệ thống
phổ biến hiện nay ta vẫn thường thấy cơ chế
Go-Back-N thay vì Selective Repeat.
Ngoài ra còn có nhiều cơ chế mở rộng khác
của SRP mà báo cáo này chưa nói tới SACK
(selective ACKs), một cơ chế phát lại ACK
theo nhóm. Hay các cơ chế để xác định time-
out phù hợp, cũng như kích thước cửa sổ phù
hợp để khởi tạo cơ chế ARQ trước khi bắt đầu
truyền tải.
REFERENCES

[1].Stop-and-wait-ARQ-Protocol
https://www.youtube.com/watch?v=YdkksvhkQGQ
[2]Điều khiển kết nối dữ liệu (data link control).
https://tailieumienphi.vn/doc/dieu-khien-ket-noi-du-
lieu-data-link-control-9laytq.html
[3]Cơ sở mạng thông tin.
https://cuuduongthancong.com/pvf/2318068/co-so-
mang-thong-tin//co-so-mang-thong-tin.pdf?
src=afile&action=hover
[4] Truyền dữ liệu
https://www.youtube.com/watch?v=0bMdC3IVfKc
[5] Selective repeat ARQ
https://www.yumpu.com/xx/SELECTIVE_REPEAT_ARQ
[6]Mô hình OSI
https://vi.wikipedia.org/wiki/M%C3%B4_h
%C3%ACnh_OSI#T%E1%BA%A7ng_2:_T%E1%BA
%A7ng_li%C3%AAn_k%E1%BA%BFt_d%E1%BB%AF_li
%E1%BB%87u_(Data-Link_Layer)
[7] Mô phỏng
https://pdfcoffee.com/arq-pdf-free.html
[8] A.S. Tanenbaum and D.J. Wetherall, “Computer
Networks – 5th ed,” Prentice Hall, 2011.

[9]D. Bertsekas and R. Gallager, “Data Networks – 2th


ed,” Prentice Hall, 1992.

[10]THIRU,http://www.myreadingroom.co.in/notes-
and-studymaterial/68-dcn/814-selective-repeat-arq-
protocol.html, internet forum, lần cuối truy cập
31/05/2021.

[11]Selective-repeat-ARQ
https://www.youtube.com/watch?v=WfIhQ3o2xow

You might also like