Truyền thông dữ liệu - Chương 5: Cơ sở của giao thức - Nguyễn Hồng Sơn
Các yếu tố cơ bản của giao thức Chế độ truyền (Transmission Mode) Encapsulation/Decapsulation Error control Flow control Thể lệ và qui trình hoạt động
Bạn đang xem trước 20 trang tài liệu Truyền thông dữ liệu - Chương 5: Cơ sở của giao thức - Nguyễn Hồng Sơn, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1CƠ SỞ CỦA GIAO THỨC
TS. NGUYỄN HỒNG SƠN
Bộ môn Mạng máy tính và Truyền số liệu
Học viện Công nghệ Bưu Chính Viễn Thông
CHƯƠNG 5
2Các yếu tố cơ bản của giao thức
Chế độ truyền (Transmission Mode)
Encapsulation/Decapsulation
Error control
Flow control
Thể lệ và qui trình hoạt động
3Các chế độ truyền
Connectionless (best-effort transmission):
mục tiêu của giao thức loại này là truyền
nhanh nhất có thể, không cài đặt cơ chế
kiểm soát lỗi.
Connection-Oriented(reliable transmission):
Cài đặt cơ chế kiểm soát lỗi, phương thức
phổ biến là BEC với các cơ chế truyền lại
khi phát hiện lỗi. Cần xây dựng một kết nối
rõ ràng.
4ARQ (Automatic Repeat reQuest)
Là thủ tục kiểm soát lỗi tự động với biện
pháp sửa sai chủ yếu là truyền lại.
Có hai loại ARQ:
Idle RQ: truyền có nghỉ (không liên tục)
Continuous RQ: truyền liên tục
5Idle RQ
Còn gọi là send-and-wait hay stop-and-wait
Máy phát truyền một frame và vào trạng thái đợi báo nhận
từ máy thu.
Máy thu nhận một frame thấy tốt sẽ gửi một báo nhận
ACK (Acknowledgment) cho máy phát
Khi nhận ACK từ máy thu, máy phát tiếp tục truyền
frame kế tiếp, vào trạng thái đợi, và cứ thế.
Sửa sai tùy theo phiên bản, có hai phiên bản:
Implicit retransmission: ngầm định(không tường minh, kiểu ẩn)
Explicit request: yêu cầu rõ (tường minh, kiểu hiện)
6N
N
N+1
N+1
A C
K (
N )
A C
K (
N +
1 )
Máy phát
Máy thu
Đợi ACK Đợi ACK
time
Nguyên lý hoạt động Idle RQ
7Phiên bản của Idle RQ-Implicit Retransmission
Khi phát hiện sai máy thu không gửi bất kỳ thông báo nào
Máy phát dùng cơ cấu timer để tự sửa sai.
N
N
N+1
N+1
A C
K (
N )
Máy
phát
Máy
thu
stop timer
Hết hạn timer
time
start timer
start timer
N+1
N+1
A C
K (
N +
1 )
stop timerstart timer
Timeout
N+2
truyề
n
lại
8Phiên bản của Idle RQ-Explicit Request
Khi phát hiện sai máy thu gửi NAK (Negative ACK)
Máy phát truyền lại sớm hơn.
N
N
N+1
N+1
A C
K (
N )
Máy
phát
Máy
thu
stop timer
time
start timer
start timer
N+1
N+1
A C
K (
N +
1 )
stop timer
start timer
N+2
truyề
n
lạiN A
K (
N +
1 )
stop timer
start timer
9Continuous RQ
Truyền liên tục không chờ
Khi nhận tốt máy thu sẽ gửi báo nhận ACK
Ở máy phát, các frame đã truyền chưa có báo
nhận được đưa vào danh sách để theo dõi, khi
nhận được báo nhận thì frame tương ứng được
loại khỏi danh sách.
Ở máy thu cũng duy trì danh sách frame có
nhiệm vụ đệm frame và chuyển giao theo đúng
thứ tự cho giao thức lớp trên.
10
N N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12
N N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12
A C
K ( N
)
A C
K ( N
+
1 )
A C
K ( N
+
2 )
A C
K ( N
) + 3
)
A C
K ( N
+
4 )
A C
K ( N
+
5 )
A C
K ( N
+
6 )
A C
K ( N
+
7 )
A C
K ( N
+
8 )
A C
K ( N
+
9 )
A C
K (
N +
1 0
)
N N
N+1
N
N+1
N+2
N+1
N+2
N+3
N+2
N+3
N+4
N+3
N+4
N+5
N+4
N+5
N+6
N+5
N+6
N+7
N+6
N+7
N+8
N+7
N+8
N+9
N+8
N+9
N+10
N+9
N+10
N+11
N+10
N+11
N+12
N+11
N+12
N
NVR
N+1
N+1
N+2
N+2
N+3
N+3
N+4
N+4
N+5
N+5
N+6
N+6
N+7
N+7
N+8
N+8
N+9
N+9
N+10
N+10
N+11
N+11
N+12
N+12
NVS N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12
Máy phát
Máy thu
Nguyên lý hoạt động Continuous RQ
11
Các phiên bản của Continuous RQ
Selective Repeat
SR-Implicit Retransmission
SR-Explicit Request
Go-back-N
12
SR-Implicit Retransmission
Khi phát hiện sai máy thu không gửi bất kỳ
thông báo nào.
Máy phát căn cứ vào các ACK trước và sau
để suy ra frame bị mất và truyền lại.
Trạng thái truyền lại của máy phát: Treo
biến VS, truyền lại, kết thúc truyền lại phục
hồi truyền theo biến VS.
13
N N+1 N+2 N+3 N+4 N+1 N+5 N+6 N+7 N+8 N+9 N+10 N+11
N X N+2 N+3 N+4 N+1 N+5 N+6 N+7 N+8 N+9 N+10 N+11
A C
K ( N
)
A C
K ( N
+
2 )
A C
K ( N
) + 3
)
A C
K ( N
+
4 )
A C
K ( N
+
1 )
A C
K ( N
+
5 )
A C
K ( N
+
6 )
A C
K ( N
+
7 )
A C
K ( N
+
8 )
A C
K (
N +
9 )
N N
N+1
N
N+1
N+2
N+1
N+2
N+3
N+1
N+2
N+3
N+1
N+3
N+4
N+1
N+4
N+5
N+1
N+5
N+6
N+5
N+6
N+7
N+6
N+7
N+8
N+7
N+8
N+9
N+8
N+9
N+10
N+9
N+10
N+11
N+10
N+11
N
NVR N+1
N+2
N+1
N+2
N+1
N+2
N+1
N+1
N+1
N+5
N+5
N+6
N+6
N+7
N+7
N+8
N+8
N+9
N+9
N+10
N+10
N+11
N+11 N+12
NVS N+1 N+2 N+3 N+4 N+5 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12
N+4
Vào trạng thái
truyền lại
Kết thúc trạng thái truyền lại,
phục hồi truyền theo VS
N+3 N+3
N+4
N+2
N+3
N+4
N+12
14
SR-Explicit Request
Khi phát hiện sai máy thu gửi NAK yêu cầu
máy phát truyền lại.
Bổ sung:
Trạng thái truyền lại của máy thu: trong trạng thái
truyền lại máy thu không được gửi bất kỳ thông báo
nào
Cho phép máy thu báo nhận đại diện ACK(N) báo
nhận tốt cho tất cả các frame từ N trở về trước.
15
N N+1 N+2 N+3 N+1 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11
N X N+2 N+3 N+1 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11
A C
K ( N
)
N A
K ( N
+
1 )
A C
K ( N
+
3 )
A C
K ( N
+
4 )
A C
K ( N
+
5 )
A C
K ( N
+
6 )
A C
K ( N
+
7 )
A C
K ( N
+
8 )
A C
K (
N +
9 )
N N
N+1
N
N+1
N+2
N+1
N+2
N+3
N+1
N+2
N+3
N+1
N+2
N+3
N+1
N+2
N+3
N+4
N+5
N+6
N+5
N+6
N+7
N+6
N+7
N+8
N+7
N+8
N+9
N+8
N+9
N+10
N+9
N+10
N+11
N+10
N+11
N
NVR N+1
N+2
N+1
N+2
N+1
N+1
N+1
N+4
N+4
N+5
N+5
N+6
N+6
N+7
N+7
N+8
N+8
N+9
N+9
N+10
N+10
N+11
N+11 N+12
NVS N+1 N+2 N+3 N+4 N+4 N+5 N+6 N+7 N+8 N+9 N+10 N+11 N+12
Vào trạng thái
truyền lại
Kết thúc trạng thái truyền lại,
phục hồi truyền theo VS
N+3 N+2
N+3
N+12
Vào trạng thái
truyền lại Kết thúc trạng thái truyền lại, phục hồi truyền ACK
N+4
N+5
N+4
16
Go-back-N
Khi máy thu phát hiện sai sẽ gửi NAK yêu cầu máy
phát truyền lại.
Khi nhận NAK máy phát phải vào trạng thái truyền
lại, dừng truyền frame mới, truyền lại tất cả các
frame đang có mặt trong danh sách chờ báo nhận
(truyền lại một nhóm). Khi truyền lại hết các frame
trong danh sách thì máy phát ra khỏi trạng thái
truyền lại và truyền các frame mới theo biến VS.
Sau khi gửi NAK(i), máy thu chỉ tiếp nhận các
frame có thứ tự từ i trở đi.
17
N N+1 N+2 N+3 N+4 N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8
N N+2 N+3 N+4 N+1 N+2 N+3 N+4 N+5 N+6 N+7 N+8
A C
K ( N
)
N A
K ( N
+
1 )
A C
K ( N
+
1 )
A C
K ( N
+
2 )
A C
K ( N
+
3 )
A C
K ( N
+
4 )
A C
K ( N
+
5 )
A C
K (
N +
6 )
N N
N+1
N
N+1
N+2
N+1
N+2
N+3
N+1
N+2
N+3
N+1
N+2
N+3
N+2
N+3
N+4
N+3
N+4
N+4
N+5
N+6
N+5
N+6
N+7
N+6
N+7
N+8
N+7
N+8
N
NVR N+1
N+2
N+1
N+3
N+1
N+4
N+1
N+1
N+1
N+2
N+5
N+3
N+6
N+4
N+7
N+5
N+8
N+6
N+9
N+7
N+10
N+8
N+11 N+12
NVS N+1 N+2 N+3 N+4 N+5 N+5 N+5 N+5 N+5 N+6 N+7 N+8 N+9
N+4
Vào trạng thái
truyền lại
Kết thúc trạng thái truyền lại,
phục hồi truyền theo VS
N+9
x
N+4
N+1
N+2
N+3
N+4
N+1
N+2
N+3
N+4
N+5
18
ĐIỀU KHIỂN LUỒNG
(FLOW CONTROL)
Điều khiển luồng nhằm điều tiết hoạt động truyền
của máy phát để máy thu không bị tràn bộ đệm
thu.
Điều khiển luồng
Harware flow control: Trên các giao tiếp vật lý, ví dụ
RTS/CTS
Software flow control, tiêu biểu:
XON/XOFF
Sliding Window (cửa sổ trượt)
19
Sliding Window
Nhằm giới hạn số frame truyền liên tục một lần.
Kích thước cửa sổ truyền xác định số frame truyền liên tục
một lần.
Chỉ được truyền frame khi cửa sổ còn mở.
Khi truyền một frame, cửa sổ khép một đơn vị.
Một ACK nhận được từ máy thu khiến cửa sổ mở một đơn
vị.
Khi hoạt động bình thường với cửa sổ đã đóng lại hoàn toàn,
cứ một ACK nhận thì một frame được truyền, khiến cho cửa
sổ như trượt trên trục thời gian.
20
N N+1 N+2 N+3 N+4
Nguyên lý cửa sổ trượt
N+5 N+6 N+7 N+8
Cửa sổ truyền K=3A
C K A C
K
Các frame đã
được báo nhận
Các frame đang
đợi truyền Các frame đang
đợi báo nhận
Dừng luồng
21
Chỉ số tuần tự frame
ARQ hoạt động dựa vào chỉ số tuần tự frame
Trong mỗi frame một vùng có số bit giới hạn xác
định chỉ số tuần tự frame. Nếu truyền một lượng
frame lớn hơn chỉ số tối đa thì làm sao đánh chỉ số
các frame vượt quá?
Nhờ cửa sổ trượt để giải quyết vấn đề đánh chỉ số
frame, đánh số theo kích thước cửa sổ.
Với SR đánh vòng từ 0 đến 2K, Go-back-N đánh
vòng từ 0 đến K+1
22
7 0
1
2
34
5
6
Go-back-N, với K=7 Selective Repeat, với K=8
0
1
2
3
4
5
678
9
10
11
12
13
14
15
VÍ DỤ VỀ ĐÁNH CHỈ SỐ TUẦN TỰ THEO KÍCH THƯỚC CỬA SỔ
23
QUẢN LÝ LIÊN KẾT
Một liên kết truyền số liệu qua 3 pha:
Pha 1: Thiết lập liên kết
Pha 2: Truyền data
Pha 3: Xóa liên kết
Pha 1 và 3 gọi là quản lý liên kết
Hoạt động liên kết truyền số liệu với 3 pha được xúc
tiến qua giao tiếp nội và ngoại (theo mô hình truyền
thông ở chương 1)
Giao tiếp nội được thực hiện bằng cách gọi thực thi các
hàm primitive
24
Ví dụ dùng hàm thực thể liên quan
đến lớp liên kết dữ liệu
LS-User data link data link LS-User
Máy truyền Máy nhận
VS=0 VR=0
L-CONNECT.request
L-CONNECT.confirm
L-DATA..request
L-DISCONNECT.request
L-DISCONNECT.confirm
SETUP-Frame
L-CONNECT.indication
L-DATA..indication
L-DISCONNECT.indication
U A - F r a m e
I-Frame
A C K - F r a m e
DISC-Frame
U A - F r a m e
thời gian
Giao thức
liên kết dữ liệu,
ví dụ HDLC Giao tiếp nộiGiao tiếp nội
Pha 1
Pha 2
Pha 3
25
ĐỀ NGHỊ
Đọc về phương pháp đặc tả giao thức để biết
bước đầu phát triển một giao thức, phát triển
ứng dụng mạng (lập trình truyền thông).
Đọc chương 6 trong textbook để tiếp cận các
giao thức cụ thể, chuẩn bị cho môn mạng máy
tính và các công nghệ truyền thông.
26
Bài tập
1. Nếu đã kiểm soát lỗi hoàn hảo thì có cần điều khiển
luồng hay không? tại sao?
2. Khi truyền 15 frame theo Selective Repeat, hãy vẽ
sơ đồ trình bày việc đánh số frame và hoạt động điều
khiển luồng với kích thước cửa sổ K=7?
3.Mô tả quá trình truyền nhận 12 gói tin theo phương
pháp selective repeat_explicit request, trong đó gói
số 2 và 3 bị máy thu phát hiện sai; ACK (9) bị hỏng;
các gói số liệu và gói báo hiệu khác đều tốt ?