You are on page 1of 50

dce

2008

Chương 5
Điều khiển ở lớp liên kết dữ liệu
 Điều khiển dòng dữ liệu
BK
TP.HCM
 Điều khiển lỗi
 Giao thức điều khiển liên kết dữ liệu cấp
cao HDLC
dce
2008
Vấn đề khi trao đổi dữ liệu
• Một số vấn đề khi hai thiết bị kết nối trực tiếp truyền
nhận dữ liệu
– Đồng bộ khung
• Dữ liệu được gửi dưới dạng các frame
• Thời điểm bắt đầu và kết thúc một frame
– Điều khiển tốc độ truyền dữ liệu
– Xử lý lỗi gặp phải trên đường truyền
– Định vị địa chỉ trong cấu hình multipoint
– Phân biệt dữ liệu và thông tin điều khiển
• Dữ liệu và thông tin điều khiển truyền chung
– Quản lý kết nối
• Thiết lập, duy trì, ngắt kết nối
• Lớp vật lý không thể thực hiện các chức năng trên
Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 2
dce
2008
Điều khiển dòng dữ liệu
• Bên nhận thường có bộ đệm để nhận dữ liệu
• Khi dữ liệu đến, bên nhận thường thực hiện
một số xử lý trước khi gửi lên lớp cao hơn
• Điều khiển dòng nhằm đảm bảo bên phát
không gởi dữ liệu quá nhanh
– Ngăn ngừa việc tràn bộ đệm

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 3
dce
2008
Mô hình truyền khung
• Dùng để phân
tích quá trình
truyền nhận
dữ liệu thành
từng khung
(frame)

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 4
dce
2008
Khái niệm
• Thời gian truyền (tframe): thời gian cần thiết để
gởi tất cả các bit của frame dữ liệu lên đường
truyền

• Thời gian lan truyền (tprop): thời gian cần thiết


để dữ liệu đi từ nguồn đến đích

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 5
dce
2008
Điều kiện giả định
• Tất cả frame đều đến đích, không bị mất
• Không có frame lỗi
• Các frame đến đúng thứ tự

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 6
dce
2008
Idle RQ (Stop–and–Wait)
• Cơ chế hoạt động
– “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
(acknowledgement)
– “Nguồn” phải đợi ACK trước khi phát tiếp dữ liệu
• “Đích” có thể dừng quá trình bằng cách không gởi ACK
• Đặc điểm
– Phương pháp đơn giản nhất
– Được dùng chủ yếu trong các ứng dụng character-
oriented.(byte-oriented)
– Sử dụng kênh truyền hoạt động trong chế độ half-
duplex
Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 7
dce
2008
Idle RQ – Hiệu suất
• Thời gian tổng cộng TD= n(2tprop + tframe)
• Hiệu suất đường truyền

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 8
dce
2008
Vấn đề kích thước frame
• Phương pháp Stop-and-wait sử dụng đường
truyền hiệu quả nếu kích thước (chiều dài)
frame lớn
• Nhưng thực tế 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
– Frame kích thước nhỏ khó xảy ra lỗi
– 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
Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 9
dce
2008
Sliding windows

• 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 frame (có
thể nhận W frame)
• Bên phát có thể truyền tối đa W frame mà không
cần đợi ACK
• Các frame được đánh số thứ tự
• ACK có chứa số thứ tự của frame kế tiếp có thể
truyền
• Số thứ tự thường được giới hạn bởi k bit trong
frame
– Đánh số quay vòng modulo 2k

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 10
dce
2008
Sliding windows

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 11
dce
2008
Sliding windows – Ví dụ

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 12
dce
2008
Sliding windows – Cải tiến
• “Đích” có thể gởi ACK không cho phép
“Nguồn” gởi tiếp dữ liệu (Receive Not Ready)
– Trong trường hợp này, sau đó “Đích” gởi ACK để
tiếp tục việc truyền nhận dữ liệu khi nó sẵn sàng
• Nếu đường truyền là full-duplex, dùng cơ chế
“piggybacking”: tích hợp ACK vào frame dữ
liệu
– Nếu không có dữ liệu để truyền, dùng ACK frame
– Nếu có dữ liệu để truyền nhưng không có ACK
mới để truyền: gởi lại ACK cuối cùng, hoặc có cờ
ACK hợp lệ (TCP)
Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 13
dce
2008
Sliding windows – Hiệu suất
• Hiệu suất
– Full- Duplex

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 14
dce
2008
Điều khiển lỗi
• Điều khiển lỗi là các kỹ thuật để phát hiện và sữa lỗi
xảy ra trong quá trình truyền các frame
• Phân loại lỗi đối với frame
– 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ư (bên nhận không thể xác
định là frame nào)
– Frame hư: thông tin điều khiển trên frame xác định được,
nhưng dữ liệu trong frame bị lỗi
• Kỹ thuật điều khiển lỗi
– Kỹ thuật phát hiện lỗi (CRC, Parity, …)
– Positive ACK – xác nhận các frame nhận được
– Negative ACK (NAK) – yêu cầu truyền lại cho các frame bị

– Truyền lại sau một thời gian time-out
Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 15
dce
2008
Cơ chế điều khiển lỗi
• Dựa trên điều khiển dòng
• Kỹ thuật Automatic Repeat Request (ARQ)
– 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 (stop-and-wait)
– Dùng với cơ chế điều khiển dòng stop-wait
• Continuous RQ
– Dùng với cơ chế điều khiển dòng sliding-window
– Selective-reject
– Go-back-N

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 16
dce
2008
Stop-and-wait ARQ
• Cơ chế hoạt động
– “Nguồn” chỉ gởi 1 I-Frame
(Information Frame) đến “Đích”
– “Nguồn” đợi phản hồi từ “Đích”
• ACK-Frame: “Nguồn” gởi frame mới
• NAK-Frame: “Nguồn” gởi lại frame
• Không nhận được trả lời: “Nguồn” gởi lại
sau thời gian time-out
• Ưu/khuyết điểm
– Đơn giản
– Độ hiệu quả đường truyền thấp

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 17
dce
2008
Stop–and–wait - Giải quyết lỗi
• I-Frame không tới được bên nhận
– Sử dụng timer: bên gởi sau khi gởi đi một I-Frame 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/ NAK báo về thì xem như I-
Frame bị mất và gởi lại frame này.

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 19
dce
2008
Stop–and–wait - Giải quyết lỗi
• I-Frame bị hư
– Bên nhận gửi NAK để yêu cầu truyền lại
– Bên nhận bỏ Frame bị hư, bên gửi sau thời gian
time-out gửi lại frame

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 20
dce
2008
Stop–and–wait - Giải quyết lỗi
• ACK-Frame bị hư hoặc mất
– “Nguồn” không nhận được ACK-frame: gửi lại sau thời gian time-out
– “Đích” nhận I-Frame trùng: dùng chỉ số tuần tự frame (sequential
number) ACK0, ACK1 để “Đích” có thể loại bỏ các frame trùng lặp

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 21
dce
2008
Go–back–N
• Cơ chế hoạt động
– Điều khiển
• RR = receive ready = ACK = acknowledgement
• REJ = reject = NAK = negative acknowledgement
– Dựa trên cơ chế sliding window
• A gởi liên tục các I-Frame đến B (trong khi cơ chế điều
khiển dòng còn cho phép)
• B chỉ nhận I-Frame theo đúng chỉ số tuần tự
• Truyền lại tất cả các Frame kể từ Frame sai đầu tiên trở
đi

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 22
dce
2008
Go–back–N – Các trường hợp lỗi
• Các kiểu lỗi tương tự như trong Idle RQ (có thể xảy
ra đồng thời trên nhiều frame)
– (E1) I-Frame không đến được bên nhận
– (E2) I-Frame đến được bên nhận, nội dung I-Frame sai
– (E3) ACK-Frame không đến được bên gửi

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 23
dce
2008
Go–back–N - Giải quyết lỗi
• Sửa lỗi mất frame
– Giả sử frame i mất
– Nếu “Nguồn” gửi tiếp frame i+1
– “Đích” nhận frame i+1, không đúng chỉ số tuần tự
– “Đích” bỏ frame này và gửi lại REJ i
– “Nguồn” nhận được REJ i sẽ gửi lại tất cả frame từ
frame I
– Đòi hỏi “Nguồn” sử dụng danh sách truyền lại
(Retransmission list) lưu các I-Frame đã gởi nhưng
chưa có ACK

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 24
dce
2008
Go–back–N - Giải quyết lỗi
• Sửa lỗi mất frame (tt)
– Giả sử frame i mất
– “Nguồn” không gửi tiếp frame nào
– “Đích” không nhận được gì nên sẽ không có phản
hồi
– “Nguồn” bị time-out, khi đó sẽ gửi ACK-frame
thăm dò với bit P được set lên 1
– “Đích” nhận được sẽ gửi ACK-frame báo đang
chờ frame i
– “Nguồn” gửi lại frame i

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 25
dce
2008
Go–back–N - Giải quyết lỗi
• Sửa lỗi frame hư
– “Đích” phát hiện lỗi ở frame i
– “Đích” báo cho “Nguồn” bằng REJ (i+1)
– “Đích” loại bỏ các frame sau i
– “Nguồn” nhận được REJ (i+1) sẽ gởi lại các frame
từ frame i
– Thời gian đáp ứng nhanh hơn so với dùng timeout
(“Đích” có thể loại bỏ các frame bị hư và xem như
chưa nhận được).

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 26
dce
2008
Go–back–N - Giải quyết lỗi
• Sửa lỗi ACK bị mất
– “Đích” nhận frame i, gửi ACK(i+1) và bị mất
• “Nguồn” gửi tiếp các frame i+1, i+2, “Đích” sẽ gửi lại
ACK(i+2), ACK(i+3) hoặc NAK tương ứng
– Nếu “Nguồn” nhận ACK(i+2), ACK(i+3)...trước khi time-out thì
truyền bình thường
– Nếu time-out “Nguồn” sẽ gửi ACK thăm dò với bit P được set
lên 1 (như giải quyết lỗi mất frame)
• “Nguồn” không gửi tiếp frame nào  time-out
– “Đích” nhận ACK thăm dò với bit P được set,
nhưng không đáp ứng lại
• Hết thời gian time-out “Nguồn” gửi lại ACK thăm dò
• Sau một số lần gửi lại không thành công “Nguồn” sẽ
reset lại đường truyền
Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 27
dce
2008
Go-back-N - Ví dụ

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 28
dce
2008
Selective Reject
• Còn được gọi là Selective retransmission
• Cơ chế hoạt động
– Tương tự như Go-Back-N
– Chỉ gởi lại các frame bị NAK hoặc time-out
– “Đích” có thể nhận I-frame không theo đúng chỉ số
tuần tự
– “Đích” phải có buffer để lưu lại các frame đến
không theo đúng chỉ số tuần tự và có cơ chế sắp
xếp lại thứ tự các frame

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 29
dce
2008
Vấn đề kích thước cửa sổ
• Tình huống: window kích thước 7, số thứ tự được
đánh bằng 3 bit
– “Nguồn” gởi các frame từ 0 đến 6 qua “Đích”
– “Đích” gửi ACK7 nhưng bị mất
– “Nguồn” bị time-out nên gởi lại frame 0
– “Đích” lúc này đã dịch cửa sổ nhận, có thể nhận các frame
7,0,1,...5. Nó tưởng frame 7 bị mất và 0 là frame mới, nên
chấp nhận (trùng frame)
• Đây là vấn đề trùng lắp giữa cửa sổ gởi và cửa sổ
nhận
• Do đó kích thước cửa sổ tối đa đối với phương pháp
này chỉ là 2k-1
Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 30
dce
2008
Selective Repeat ví dụ

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 34
dce
2008
High-level Data Link Control (HDLC)
• Nghi thức liên kết dữ liệu quan trọng nhất
• Được chuẩn hoá: ISO 33009, ISO 4335
• Nhiều nghi thức liên kết dữ liệu khác tương tự (hoặc
dựa trên) nghi thức này
• Nghi thức hướng đến bit (bit-oriented)
• Đặc điểm
– Hoạt động ở chế độ full-duplex
– Có thể hỗ trợ liên kết point-to-point hoặc multipoint
– Truyền dẫn đồng bộ
– Điều khiển lỗi “Continuous RQ”
– Có thể dùng cho các liên kết với giá trị lớn và nhỏ của a

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 45
dce
2008
Các đặc tính cơ bản
• Định nghĩa 3 loại trạm (station)
– Trạm chính (primary station)
• Điều khiển hoạt động của liên kết
• Các khung (frame) phát ra được gọi là lệnh (command)
• Giữa trạm chính và mỗi trạm phụ có một đường liên kết
luận lý riêng
– Trạm phụ (secondary station)
• Hoạt động dưới sự điều khiển của trạm chính
• Các khung phát ra được gọi là đáp ứng (response)
– Trạm tổ hợp (combined station)
• Kết hợp đặc điểm của cả trạm chính và trạm phụ
• Có thể phát ra các lệnh và đáp ứng

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 47
dce
2008
Các đặc tính cơ bản (tt)
• 2 cấu hình liên kết (link configuration)
– Không cân bằng (unbalanced)
• Bao gồm một trạm chính và một hoặc nhiều trạm phụ
• Hỗ trợ truyền half duplex và full duplex
– Cân bằng (balanced)
• Bao gồm hai trạm tổ hợp
• Hỗ trợ truyền half duplex và full duplex

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 48
dce
2008
Các đặc tính cơ bản (tt)
• 3 chế độ truyền (transfer mode)
– Normal Response Mode (NRM)
• Được sử dụng trong cấu hình không cân bằng
• Trạm chính khởi động việc trao đổi dữ liệu
• Trạm phụ chỉ có thể truyền dữ liệu đáp ứng với lệnh từ trạm chính
• Được dùng trong đường truyền multidrop
– Asynchronous Balanced Mode (ABM)
• Được sử dụng trong cấu hình cân bằng
• Một trong hai trạm có thể khởi động việc trao đổi dữ liệu
• Được sử dụng phổ biến nhất
– Asynchronous Response Mode (ARM)
• Được sử dụng trong cấu hình không cân bằng
• Trạm phụ có thể khởi động quá trình truyền dữ liệu
• Trạm chính vẫn chịu trách nhiệm cho đường truyền (khởi động, điều khiển
lỗi, ngắt kết nối … )
• Ít được sử dụng

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 49
dce
2008
Cấu trúc khung (frame structure)
• HDLC sử dụng truyền dẫn đồng bộ
• Tất cả dữ liệu đều truyền theo khung
• Sử dụng một cấu trúc khung duy nhất cho tất
cả trao đổi dữ liệu và điều khiển

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 50
dce
2008
Cờ điều khiển (flag)
• Dùng để phân cách khung (đầu và cuối)
– Giá trị được định nghĩa: 01111110
• Có thể dùng vừa là kết thúc khung này vừa là
bắt đầu khung khác
• Sử dụng kỹ thuật chèn bit (bit stuffing) để tránh
xuất hiện cờ trong dữ liệu
– Bit stuffing: 0 được chèn thêm mỗi khi xuất hiện
năm số 1 liên tiếp trong phần dữ liệu
111111111111011111101111110
1111101111101101111101011111010
Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 51
dce
2008
Ảnh hưởng nếu lỗi xảy ra với cờ

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 52
dce
2008
Trường địa chỉ
• Dùng để xác định trạm phụ đã gởi hoặc sẽ
nhận frame
• Thường dài 8 bit
• Có thể mở rộng thành bội số của 7 bit
– LSB của mỗi byte cho biết đây là byte cuối cùng
(1) hay chưa (0)

• Giá trị “11111111” là địa chỉ broadcast (gửi


đến tất cả các trạm phụ)
Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 53
dce
2008
Trường điều khiển
• HDLC định nghĩa ba loại khung, tương ứng có
ba loại trường điều khiển
– Khung thông tin (I-frame) chứa dữ liệu cần truyền
• Điều khiển dòng và điều khiển lỗi được gởi kèm trong
các khung thông tin (piggybacked)
– Khung giám sát (supevisor frame, S-frame) dùng
cho ARQ khi piggybacking không được dùng
(không có dữ liệu cần truyền)
– Khung không số (unnumbered frame, U-frame) bổ
sung các chức năng điều khiển liên kết

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 54
dce
2008
Trường điều khiển
• Hai bit đầu xác định loại khung
• Các bit khác được định nghĩa như sau

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 55
dce
2008
Trường điều khiển
• Bit Poll/Final: ý nghĩa tùy theo ngữ cảnh
– Trong khung lệnh (command frame)
• Ý nghĩa là bit P
• 1 để mời gọi (poll) khung đáp ứng của các trạm ngang
hàng
– Trong khung đáp ứng (response frame)
• Ý nghĩa là bit F
• 1 để chỉ thị khung đáp ứng là kết quả của lệnh mời gọi

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 56
dce
2008
Trường thông tin
• Chỉ có trong các khung thông tin (I-frame) và
một số khung không số (U-frame)
• Phải là một số nguyên các octet (8 bits)
• Chiều dài có thể thay đổi, giới hạn tùy hệ
thống

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 57
dce
2008
Trường FCS
• Dùng để phát hiện lỗi
• Được tính dựa trên các bit còn lại của khung
(ngoại trừ flag)
• CRC 16 bit (CRC-CCITT)
• Có thể dùng CRC 32 bit

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 58
dce
2008
Tổng kết Frame format
• HDLC frame format

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 59
dce
2008
Hoạt động của HDLC
• Trao đổi I-Frame, S-Frame và U-Frame giữa 2
bên
• 3 giai đoạn
– Khởi tạo
– Trao đổi dữ liệu
– Ngắt kết nối

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 60
dce
2008
Các lệnh và đáp ứng

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 61
dce
2008
Khởi tạo
• Gửi U-frame khởi tạo 1 trong 6 chế độ
– SNRM / SNRME
– SARM / SARME
– SABM / SABME
– Chế độ truyền và số bit đánh chỉ số frame
• Nếu đồng ý kết nối gửi lại U-frame UA
(unnumbered acknowledged)
• Nếu không đồng ý kết nối gửi lại U-frame DM
(disconnected mode)

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 62
dce
2008
Trao đổi dữ liệu
• Sau khi đã kết nối
• Cả hai bên đều có thể gửi I-frame (chỉ số tuần
tự bắt đầu từ 0)
• Các S-frame có thể được dùng để điều khiển
dòng và điều khiển lỗi
– RR : ACK
– RNR : bên nhận bận, sau đó phải phát RR để tiếp
tục nhận dữ liệu
– REJ: NACK (go-back-N)
– SREJ: NACK (selective repeat)

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 63
dce
2008
Ngắt kết nối
• Một trong hai bên ngắt kết nối bằng cách gửi
U-frame DISC (disconnect)
• Bên kia phải chấp nhận ngắt kết nối, gửi lại U-
frame UA(unnumbered acknowledgment)
• Các khung quá độ có thể bị mất (việc phục hồi
phải do các lớp trên)

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 64
dce
2008
Ví dụ quá trình hoạt động

Data Communication and Computer Networks ©2008, Dr. Dinh Duc Anh Vu 65

You might also like