CHƯƠNG 4
CÁC NGHI THỨC ĐIỀU
KHIỂN LIÊN KẾT DỮ LIỆU
Giảng viên: Trịnh Huy Hoàng
Email:
Nội dung
Đi ều khi ển liên k ết d ữ li ệu
( Data Link Control )
Đi ều khi ển dòng
( Flow Control)
CSE 501035 – Data Communication
Đi ều khi ển l ỗi
( Error Control)
2
Vần đề khi trao đổi dữ liệu
Đồng bộ khung
Điều khiển dòng dữ liệu
Xác định 2 thiết bị trao đổi dữ liệu trên đường truyền
Tích hợp dữ liệu và điều khiển trên cùng đường truyền
Xử lý lỗi gặp phải trên đường truyền
Định vị địa chỉ
Điều khiển tốc độ truyền dữ liệu
Điều khiển lỗi
Dữ liệu được truyền theo khung
Phân biệt dữ liệu và thông tin điều khiển
Quản lý liên kết
Cấp phát, duy trì và giải phóng đường truyền giữa 2 thiết bị
CSE 501035 – Data Communication
3
Điều khiển dòng dữ liệu
Bảo đảm cho việc bên phát không gởi dữ liệu quá
nhanh
Ngăn ngừa việc tràn bộ đệm
Khái niệm thời gian
Thời gian truyền (tframe): thời gian cần thiết để gởi tất cả các
bit dữ liệu lê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.
CSE 501035 – Data Communication
4
Điều khiển dòng dữ liệu
Mô hình truyền
khung
Đi ều khi ển dòng
( Flow Cont rol)
I dle RQ
( Stop and Wait )
CSE 501035 – Data Communication
Sliding w indow s
5
Idle RQ (Stop–and–Wait)
Đặc điểm
Cơ chế hoạt động
Được dùng chủ yếu trong các ứng dụng characteroriented (byteoriented)
Sử dụng kênh truyền hoạt động trong chế độ halfduplex
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 đợi ACK trước khi phát tiếp dữ liệu
Đích có thể ngưng bằng cách không gởi ACK
Thích hợp khi chỉ có vài frame có kích thước lớn
Dữ liệu lớn được chia thành các frame có kích thước nhỏ
Kích thước bộ đệm có giới hạn
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
Stopandwait protocol không thích hợp
CSE 501035 – Data Communication
6
Idle RQ (Stop–and–Wait)
Animation
CSE 501035 – Data Communication
7
Idle RQ – Hiệu suất
Thời gian tổng cộng TD
Hiệu suất đường truyền
CSE 501035 – Data Communication
n(2t prop t frame )
U
a
n t frame
TD
t prop
d
t frame
L
1
1 2a
V
R
R d
L V
8
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
Bên phát có thể truyền tối đa W frame mà không cần đợi ACK
Cơ chế đánh số thứ tự cho các frame
ACK có chứa số của frame kế tiếp đang được mong đợi
Số thứ tự được quay vòng bởi kích thước cửa sổ (modulo 2k)
CSE 501035 – Data Communication
9
Sliding windows
Animation
CSE 501035 – Data Communication
10
Sliding windows
CSE 501035 – Data Communication
11
Sliding windows
CSE 501035 – Data Communication
12
Điều khiển lỗi
Cung cấp cơ chế cho việc truyền dữ liệu trong trường hợp dữ
liệu bị mất hay sai sót trên đường truyền
Loại lỗi
Bảo đảm dữ liệu nhận được đúng và chính xác
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ư, không thể xác định được
Frame hư: thông tin điều khiển trên frame xác định được, nhưng dữ liệu
trong frame bị hư
Kỹ thuật dùng để điều khiển lỗi
Phát hiện lỗi (CRC, Parity, …)
Positive ACK – xác nhận các frame nhận được
Truyền lại sau một thời gian timeout
Negative ACK (NAK) và truyền lại – yêu cầu truyền lại (NAK) cho các
frame bị hư
CSE 501035 – Data Communication
13
Điều khiển lỗi
ARQ (Automatic Repeat Request)
Cơ chế cho phép các nghi thức liên kết dữ liệu quản lý lỗi và yêu cầu truyền lại
Phân loại
Idle RQ (stopandwait)
Dùng với cơ chế điều khiển dòng stopwait
Được dùng chủ yếu trong truyền dữ liệu là ký tự hay byte thông tin (characteroriented or
byteoriented)
Continuous RQ
Dùng với cơ chế điều khiển dòng slidingwindow
Được dùng chủ yếu trong truyền dữ liệu là bit thông tin (bitoriented)
Được chia làm hai loại tùy theo cách thức sửa lỗi: selective reject và gobackN
Đi ều khi ển l ỗi
( Error Cont rol)
ARQ
Stop and Wait
ARQ
Sliding w indow s
Go Back N
CSE 501035 – Data Communication
Selective reject
14
Stop–and–Wait
Cơ chế hoạt động
A gởi một IFrame (Information Frame) đến B
A đợi trả lời
Lặp lại các bước trên
Ưu/khuyết điểm
ACKFrame – A gới tiếp dữ liệu
NAKFrame – 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 timeout
Đơn giản
Không hiệu quả
Vấn đề
IFrame nhận được, nhưng ACK bị mất/hư?
Có dùng được cho cơ chế slidingwindow không?
CSE 501035 – Data Communication
15
Stop–and–Wait
Cơ chế hoạt động
Trong trường hợp lỗi xảy ra
(E1) IFrame không đến được bên nhận
(E2) IFrame đến được bên nhận nhưng nội dung IFrame bị sai
(E3) ACKFrame không đến được bên gởi hay ACKFrame đến được
bên gởi nhưng nội dung ACKFrame bị sai
E3
Primary (P)
I(N)
I(N+1)
E3
I(N)
ACK(N)
I(N+1)
ACK(N+1)
E1
I(N)
I(N+1)
Secondary (S)
E2
CSE 501035 – Data Communication
16
Stop–and–Wait
Sửa lỗi E1
Sử dụng timer: bên gởi sau khi gởi đi một IFrame thì khởi
động một bộ đếm thời gian, sau khoảng thời gian đợi T mà
chưa nhận được tín hiệu ACK báo về thì xem như IFrame
chưa tới và gởi lại frame này.
Timer started
Timer expired
restarted
Timer stopped
Primary (P)
I(N)
I(N)
I(N)
ACK(N)
I(N)
ACK(N)
E1
I(N)
I(N)
Secondary (S)
CSE 501035 – Data Communication
17
Stop–and–Wait
Sửa lỗi E2
Implicit retransmission: sử dụng timer
Timer expired
restarted
Timer started
Timer stopped
Primary (P)
I(N)
I(N)
I(N)
E2
I(N)
I(N)
ACK(N)
I(N)
Secondary (S)
Explicit retransmission: NAKFrame (negative acknowledgement frame)
P r im a r y (P )
I(N )
E 2
I(N )
I(N )
I(N )
N A K (N )
I(N )
A C K (N )
I(N )
S e c o n d a ry (S )
CSE 501035 – Data Communication
18
Stop–and–Wait
Sửa lỗi E3
Lỗi lặp lại frame (duplicated frame): dùng chỉ số tuần tự
frame (sequential number)
Timer expired
restarted
Timer started
Timer stopped
Primary (P)
I(N)
I(N)
Sequential
number
E3
I(N)
I(N)
ACK(N)
ACK(N)
I(N)
I(N)
I(N)
I-Frame corrected
Frame duplicated
Secondary (S)
CSE 501035 – Data Communication
19
Stop–and–Wait
Hoạt động tốt
CSE 501035 – Data Communication
20
Stop–and–Wait
IFrame không đến
CSE 501035 – Data Communication
21
Stop–and–Wait
ACKFrame hư/không đến
CSE 501035 – Data Communication
22
Stop–and–Wait
IFrame hư
CSE 501035 – Data Communication
23
Go–back–N
Cơ chế hoạt động
Điều khiển
P r im a r y (P )
I(N )
I(N + 1 )
I(N + 2 )
I(N )
I(N )
S e c o n d a ry (S )
I(N + 3 )
I(N + 4 )
I(N + 5 )
A C K (N )
I(N + 1 )
I(N + 2 )
I(N + 3 )
I(N + 4 )
I(N + 5 )
RR = receive ready = ACK = acknowledge
REJ = reject = NAK = negative acknowledge
Dựa trên cơ chế sliding window
A gởi liên tục các IFrame đến B (trong khi cơ chế điều khiển dòng còn cho
phép)
B chỉ nhận IFrame theo đúng chỉ số tuần tự ? thứ tự IFrame truyền đượ c
bảo đảm
Truyền lại tất cả các Frame sai kể từ Frame sai đầu tiên trở đi, bất kể các I
Frame sau là đúng hay sai
IFrame hư
A gởi frame i, B phát hiện lỗi và gới NAKi, A gởi lại các frame, kể từ frame i
Frame i bị mất nhưng frame i+1 nhận được, B gởi NAKi, A gởi lại các frame kể
từ frame i
Frame i bị mất và sau i, không còn frame nào được gởi. A không nhận được trả
lời, sẽ gởi lại frame I sau một thời gian timeout
ACK hư
B nhận được frame i, gởi ACKi, nhưng ACK này bị mất
A đợi hoài, sẽ gởi lại các frame, kể từ frame i
A gởi frame i, i+1, i+2. B gởi ACKi+2, được hiểu như bao gồm ACKi, ACKi+1
NAK hư
A đợi hoài, sẽ gởi lại các frame, kể từ frame i
CSE 501035 – Data Communication
24
Go–back–N
I(N + 1 )
I(N )
I(N )
I(N + 1 )
I(N )
I(N + 2 )
P r im a r y
(P )
I(N + 2 )
I(N + 1 )
I(N )
I(N + 3 )
I(N
I(N
I(N
I(N
+3)
+2)
+1)
+4)
I(N
I(N
I(N
I(N
+4)
+3)
+2)
+2)
R e tr a n s m itte d
m ode
I(N + 3 )
I(N + 4 )
E1
I(N )
T im e o u t
r e tr a n s m itte d
A C K (N )
S e c o n d a ry
(S )
I(N )
V (s )= N
F ra m e
a c c e p te d
I(N + 1 )
V (s )= N + 1 V (s )= N + 2
F ra m e F ra m e n o t
a c c e p te d a c c e p te d
CSE 501035 – Data Communication
I(N + 3 )
I(N + 4 )
V (s )= N + 2 V (s )= N + 2
F ra m e n o t F ra m e n o t
a c c e p te d
a c c e p te d
I(N + 2 )
I(N + 3 )
I(N + 4 )
V (s )= N + 2
F ra m e
a c c e p te d
V (s )= N + 3
F ra m e
a c c e p te d
V (s )= N + 4
F ra m e
a c c e p te d
25