Professional Documents
Culture Documents
Bài 8 ARQ Lecture
Bài 8 ARQ Lecture
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
Các phương thức ARQ: Idle ARQ và Continuos ARQ
Stop-and-Wait ARQ
Go-Back N ARQ
Selective Repeat ARQ
Các thành phần cơ bản của ARQ:
Mã phát hiện Lỗi (Error-detecting code) với khả năng
phát hiện lỗi lớn
ACKs (Xác nhận)
NAKs (Xác nhận phủ định)
Cơ cấu Hết giờ (Timeout mechanism)
Idle ARQ
Truyền theo thiên hướng ký tự
Hoạt động theo cơ chế bán song công
Có 2 phương pháp thực hiện:
Truyền lại ngầm định
Truyền lại yêu cầu rõ
Stop-and-Wait ARQ
(ARQ Dừng-và-Đợi)
Truyền một frame, đợi phản hồi ACK
Gói không lỗi
Packet
Information frame
Đặt đồng hồ sau Transmitter Receiver
khi truyền mỗi (Process A) (Process B)
frame
Control frame
Header
CRC
Information Header
packet CRC
Information frame Control frame: ACKs
Các kiểu frame
I-frame: là các
khung truyền
(frame) mang
thông tin
ACK-frame: là các
khung truyền báo
nhận tốt
NAK-frame : là các
khung truyền báo Hình 3.3 Cấu trúc các dạng frame trong Idle RQ
từ chối nhận hoặc
nhận bị lỗi
Cần thiết đánh số thứ tự
(a) Frame 1 lost Time-out
Time
A Frame Frame Frame Frame
0 1 1 2
ACK ACK
B
Time-out
Time
A Frame
0 Frame Frame Frame
ACK 0 1 2
ACK
B
Slast Rnext
Timer
Hình 3.6 Kiến trúc hệ thống truyền tin và giao tiêp thực thể giao thức
Sơ đồ trạng thái phía phát
A t
B t
B
Thời gian
tprop tproc tack tprop
frame tf
n f - no
t0 no
1-
Reff 1 - Pf nf
hSW = = = (1 - Pf )
R R na 2(t prop + t proc )R
1+ +
nf nf
Ảnh hưởng
của mất
khung
Ví dụ: Ảnh hưởng BER
fr fr fr fr fr fr fr fr fr fr fr fr fr fr Time
0 1 2 3 4 5 6 3 4 5 6 7 8 9
A
B
A A A out of sequence A A A A A A
C C C frames C C C C C C
K K K K K K K K K
1 2 3 4 5 6 7 8 9
Rnext 0 1 2 3 3 4 5 6 7 8 9
Go-Back-N ARQ Bốn frame đang còn tồn tại; quay lại 4
fr fr fr fr fr fr fr fr fr fr fr
0
Time
1 2 3 0 1 2 3 4 5 6
A Một lỗi
khung gây
nên mất
thời gian
truyền =
B A A
Ws khung
A A A A
Máy thu Các frame ko C C C C C C
tìm đúng thứ tự K K K K K K
Rnext=0 1 2 3 4 5 6
Go-Back-N với Timeout
Send Window
... Receive Window
Frames
đã phát và S
last Srecent Slast+Ws-1
đã ACKed
Frames
Buffers Rnext
received
Frame lâu nhất
Timer Slast
chưa xác nhận Máy thu chỉ nhận một
Timer Slast+1 (un-ACKed) frame hợp lệ (không lỗi và có
... số TT Rnext)
Timer
Srecent Frame vừa mới
gửi Sau khi nhận được frame
... hợp lệ tăng Rnext lên 1 đơn vị,
Slast+Ws-1 Số TT max cho nên cửa sổ thu trượt về phía
phép trước một frame
Go-Back-N là t/h đặ̣c biệt của Cửa sổ trượt (sliding windows)
Thao tác Cửa Sổ trượt
Máy phát
A A A A
B C C C C
K K K K Máy thu nhận được Rnext= 0, nhưng ko
1 2 3 0
biết đây là ACK cho frame 0 cũ, vì vậy,
Rnext 0 1 2 3 0 nó không biết đây frame 0 cũ hay mới
T/h 2 M = 22 = 4, Go-Back-3: Máy phát quay lại 3
fr fr fr fr fr fr Time
A 0 1 2 0 1 2
A A A
B C C C
K K K Máy thu có Rnext= 3, vì vậy loại
1 2 3
bỏ frame 0 cũ.
Rnext 0 1 2 3
Giới hạn Kích thước cửa sổ cho phép là Ws = 2m-1
Go-Back-N 2 chiều
Go-Back-N 2 chiều: chức năng máy thu và máy
phát được tích hợp vào cả 2 trạm
Mỗi chiều gửi cả control frame và data frame
Loại bỏ bớt một số frame điều khiển nhờ “cõng”
(piggybacking) các ACK trên header của data
frame
Khi máy thu nhận được một frame không lỗi, gài
ACK vào data frame gửi tiếp theo. Nếu không có
data frame được gửi ngay, máy thu đặt thời gian
để chờ data frame tiếp theo. Nếu hết thời gian
chờ không có data frame để gửi thì mới sử dụng
control frame để gửi ACK.
Tăng hiệu suất sử dụng băng tần
ACK Piggybacking ở GBN 2 chiều
SArecent RA next
Transmitter Receiver
Receiver Transmitter
S B
recent R
B
next
RA next RB next
“A” Send Window “B” Send Window
... ...
Tprop Tf Tf Tprop
Thời gian time-out cần đảm bảo cho:
Hai lần thời gian truyền sóng + 1 thời gian xử lý: 2Tprop +
Tproc
Thời gian nhận hết 1 frame Tf
Thời gian truyền frame tiếp theo (ACK), Tf
Ws cần đủ lớn để duy trì kênh luôn bận trong khoảng
Tout
Kích thước Cửa sổ Yêu cầu
theo Tích Trễ-Băng thông
1 ms 1000 bits 1
10 ms 10.000 bits 2
Nếu Ws đủ lớn để duy trì kênh bận và nếu kênh ko có lỗi, thì
GBN hết sức hiệu quả
Giả sử Pf là xác suất lỗi khung, thì thời gian cần chuyển 1 khung
là:
tf nếu frame đầu tiên truyền thành công (1 – Pf )
tf +Wstf /(1-Pf) nếu frame đầu tiên truyền không thành công Pf
W st f W st f
tGBN = t f (1 - Pf ) + Pf {t f + } = t f + Pf and
1 - Pf 1 - Pf
n f - no n
1- o
tGBN nf
hGBN = = (1 - Pf )
R 1 + (W s - 1)Pf
fr fr fr fr fr fr fr fr fr fr fr fr fr fr Time
0 1 2 3 4 5 6 2 7 8 9 10 11 12
A
B
A A N A A A A A A A A A
C C A C C C C C C C C C
K K K K K K K K K K K K
1 2 2 2 2 2 7 8 9 1 1 1
0 1 2
Selective Repeat ARQ
Transmitter Receiver
Frames Frames
transmitted S received Rnext Rnext + Wr-1
last Srecent Slast+ Ws-1
and ACKed
Buffers Buffers
Timer Slast Rnext+ 1
Timer Slast+ 1 Rnext+ 2
...
Timer
Srecent ...
Rnext+ Wr- 1 max Seq #
... accepted
Slast+ Ws - 1
Cửa sổ Phát & Thu Windows
Máy phát Máy thu
0 0
2 -1
m
1 2 -1
m
1
2 2
Rnext
Slast
send receive j
window i window
i
i + Ws – 1 i+1
j + Wr – 1
Chuyển về phía trước k khi ACK Chuyển về phía trước 1 hay nhiều
đến với Rnext = Slast + k hơn khi frame đến với STT = Rnext
k = 1, …, Ws-1
Kích thước của Ws & Wr?
T/h Ws =Wr=2m -1
Ví dụ: M=22=4, Ws=3, Wr=3
Gửi lại frame 0
Send
{0,1,2} {1,2} {2} {.}
Window
fr0 fr1 fr2 fr0
A Time
B ACK1 ACK2
Receive
{0,1} {1,2} {2,3}
Window
Frame 0 cũ bị loại do nằm ngoài
của sổ thu
Tại sao Ws + Wr = 2m tốt?
Máy phát gửi các frame 0 đến to Cửa sổ thu bắt đầu từ {0, …, Wr}
Ws-1; cửa số phát rỗng
Tất cả đến máy thu
Cửa sổ trượt về phía trước đến {Ws,
…,Ws+Wr-1}
Tất cả ACKs bị mất
Máy phát phát lại frame 0
Máy thu loại frame 0 do nằm ngoài
cửa sổ thu
0 0
2m-1 1 2 -1
m
1
Slast Ws +Wr-1 2
2
receive Rnext Ws
send window
window Ws-1
Ứng dụng cúa Selective Repeat
ARQ
TCP (Transmission Control Protocol): giao
thức lớp Vận chuyển sử dụng biến đổi của
selective repeat ARQ để cung cấp dịch vụ tin
cậy
Service Specific Connection Oriented
Protocol: kiểm soát lỗi cho các bản tin ở các
mạng ATM
Hiệu suất của Selective Repeat
ARQ
Giả sử Pf là xác suất mất frame, thì số các lần truyền
lại để gửi một frame thành công là: tf / (1-Pf)
n f - no
t f / (1 - Pf ) no
hSR = = (1 - )(1 - Pf )
R nf
VḌ: Ảnh hưởng của BER đến SR-
ARQ
nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits
So sánh hiệu suất S&W, GBN & SR cho t/h p=0, 10-6, 10-5, 10-4 and R= 1 Mbps & 100 ms
Selective Repeat vượt trội GBN và S&W, nhưng hiệu suất
vẫn giảm khi BER tăng
So sánh hiệu suất của các ARQ
Giả thiết na và no có thể bỏ qua so với nf, và
L = 2(tprop+tproc)R/nf =(Ws-1), then
Selective-Repeat:
no
hSR = (1 - Pf )(1 - ) » (1 - Pf )
nf
Go-Back-N: For Pf≈0, SR & GBN same
1 - Pf 1 - Pf
hGBN = =
1 + (W S - 1)Pf 1 + LPf
- LOG(p)
p Stop and Wait
10
Tích trễ- Băng thông = 10, 100
Điều khiển luồng
buffer fill
Information frame
Transmitter
Receiver
Control frame
Máy thu có bộ nhớ đệm hạn chế để lưu giữ
các frame tới
Một số trường hợp có thể làm tràn buffer
Mất phối hợp giữa tốc độ phát và tốc độ thu
Một loạt các frame tới liên tục
Điều khiển luồng ngăn buffer khỏi bị tràn
bằng cách điều khiển tốc độ phát của nguồn
X ON / X OFF
threshold
Information frame
Transmitter
Receiver
on off on off
B Time
2Tprop
Ngưỡng cần phải kích hoạt tín hiệu OFF khi 2 Tprop R bits
vẫn còn lưu lại trong buffer
Điều khiển luồng bằng Cửa sổ
Return of permits
tcycle
A
Time
B
Time
Phương pháp ARQ cửa sổ trượt với Ws bằng buffer còn trống
Máy phát không thể phát nhiều hơn Ws frames
Các ACKs làm trượt cửa sổ về phía trước có thể coi như là các giấy phép phát
tiếp tục
Cũng có thể điều chỉnh tốc độ ACKs như trên hình vẽ
Gửi trả giấy phép (ACKs) vào cuối chu kỳ cho phép điều khiển tốc độ truyền dẫn
Vấn đề sử dụng cửa sổ trượt cho cả điều khiển luồng/lỗi
Lựa chọn cửa sổ
Interplay between transmission rate & retransmissions
TCP chia riêng điều khiển lỗi và luồng
Các giao thức thiên hướng ký tự
Các giao thức thiên hướng ký tự được dùng
trong các ứng dụng điểm-nối-điểm và cả đa
điểm
Dùng các ký tự điều khiển truyền để thực
hiện các chức năng điều khiển liên quan đến
quản lý dữ liên kết, đánh dấu đầu và cuối
frame, kiểm soát lỗi và “trong suốt” dữ liệu.
Các giao thức
Các giao thức đơn công (simplex protocols):
Liên kết số liệu điểm-nối-điểm
Giao thức được dùng rộng rãi nhất là kermit
Thường dùng truyền đồng bộ
Các giao thức bán song công
Giao thức thiên hướng ký tự hoạt động theo idle RQ
BSC (Binary Synchronous Control).
Các giao thức song công hoàn toàn
liên kết song công điểm -nối-điểm kết nối hai node
chuyển mạch với nhau
đồ điều khiển truyền continuous RQ cho cả hai hướng
.
Giao thức XMODEM
Là giao thức stop and wait ARQ
Truyền bán song công (half-duplex)
TÊt c¶ c¸c field ngo¹i trõ field th«ng tin, ®Òu cã
®é dài là mét byte
Vïng th«ng tin cã ®é dài cè ®Þnh là 128 bytes,
th«ng tin cã thÓ là d¹ng text hoÆc nhÞ ph©n.
field kiÓm tra cã ®é dài 2 byte và dïng phư¬ng
ph¸p kiÓm tra CRC víi ®a thøc sinh theo CCITT
là X16 +X12+X5 +1 .
Lưu đồ
thuật
toán gửi
và nhận
tập tin
của giao
thức
XMODEM
Giao thức YMODEM
giao thức tương tự như XMODEM
Các điểm khác so với XMODEM:
Đơn vị dữ liệu là 1024 byte
Dùng hai tín hiệu CAN để hủy việc truyền tin
Có thể truyền đồng thời nhiều file.
Giao thức Kermit
Cho phép truyền và nhận tập tin giữa các hệ
thống lớn
Sử dụng thủ tục idle RQ (dừng và chờ)
Cho phép truyền và nhận nhiều tập tin cùng một
lúc
Gói dữ liệu của kermit có chiều dài thay đổi được
Các tín hiệu trả lời của máy thu là những gói
Có thể dùng thủ tục continuous RQ nhờ trong gói
ACK và NAK có vùng (field) chứa chỉ số thứ tự
truyền (hay nhận) của gói.