Professional Documents
Culture Documents
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
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
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:
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;
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.
[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