Bài giảng Kỹ thuật truyền số liệu - Chương 5: Điều khiển ở lớp liên kết dữ liệu cung cấp cho người học các kiến thức: Điều khiển dòng dữ liệu, điều khiển lỗi, giao thức điều khiển liên kết dữ liệu cấp cao HDLC. Hi vọng đây sẽ là một tài liệu tham khảo hữu ích dành cho các bạn sinh viên dùng làm tài liệu tham khảo phục vụ học tập và nghiên cứu.
Trang 1Điều khiển ở lớp liên kết dữ liệu
Điều khiển dòng dữ liệu
Điều khiển lỗi
Giao thức điều khiển liên kết dữ liệu cấp cao HDLC
Trang 2dce
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 (Flow control) – X ử lý lỗi gặp phải trên đường truyền (Error control) – Định vị địa chỉ trong cấu hình multipoint (addressing) – 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
Trang 3dce
Đ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
Trang 4dữ liệu thành
từng khung (frame)
Trang 5dce
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
Trang 6dce
Đ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ự
Trang 7• “Đí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ế độ duplex
Trang 8dce
• Th ời gian tổng cộng TD= n(2tprop + tframe)
• Hi ệu suất đường truyền
Idle RQ – Hi ệu suất
Trang 9dce
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
Trang 10dce
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ó
Trang 11dce
Sliding windows
Trang 12dce
Sliding windows – Ví d ụ
Trang 13dce
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ữ
Trang 15dce
Đ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ị hư
– Truy ền lại sau một thời gian time-out
Trang 16dce
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 ARQ)
– 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 ARQ
– Go-back-N ARQ
Trang 18– “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
Trang 19dce
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.
Trang 21dce
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
Trang 22• 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
Trang 23dce
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
Trang 24dce
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
Trang 25dce
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
Trang 26dce
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)– “Đích” loại bỏ các frame sau i
– “Nguồn” nhận được REJ (i) 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)
Trang 27dce
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
Trang 28dce
Go-back-N - Ví d ụ
Trang 29l ại ACK) và RR1 cũng có thể hiểu là frame 0 của 7 frame
v ừa mới gởi.
– Vì v ậy mà kích thước cửa sổ lớn nhất là 2 k -1
Trang 30tuầ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
Trang 31– “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
Trang 32dce
Selective Reject - Gi ải quyết lỗi
• S ửa lỗi mất I-Frame
– 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
– Khi gởi mỗi I-Frame thì khởi động một bộ đếm thời gian tương ứng với I-Frame đó
– Sau khoảng thời gian đợi T mà chưa nhận được frame ACK thì gởi lại frame này
Trang 33dce
Selective Repeat
• S ửa lỗi I-Frame bị hư
– I-Frame truyền đến bên nhận nhưng bị lỗi– Bên nhận báo cho bên gởi biết thông qua NAK-Frame
– Bên nhận vẫn lấy các frame tiếp theo vào bộ đệm(nhưng chưa đưa lên lớp trên)
– Bên gởi chỉ truyền lại I-Frame bị lỗi– Bên nhận nhận đúng các frame theo trình tự thì có
thể đưa dữ liệu lên lớp trên
Trang 34dce
Selective Repeat
• S ửa lỗi ACK-Frame bị mất
– Sử dụng chỉ số tuần tự frame (sequential number): Khi ACK-frame bị lỗi hay không đến được bên gởi, sau thời gian timeout bên gởi sẽ gởi lại I-Frame
này
Trang 35dce
Selective Repeat ví d ụ
Trang 36dce
N ội dung
• Điều khiển dòng dữ liệu
• Điều khiển lỗi
• M ột số nghi thức điều khiển liên kết dữ liệu
– Nghi th ức Binary synchronous communication (BSC)
– Nghi thức High-level data link control (HDLC)– Một số nghi thức tựa DLC khác
Trang 37dce
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
Trang 38• Đ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ụ
Trang 39dce
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
Trang 40dce
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
Trang 41dce
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
Trang 42dce
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
Trang 43dce
Ảnh hưởng nếu lỗi xảy ra với cờ
Trang 44• 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
Trang 45dce
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
Trang 46dce
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
Trang 47dce
Trường điều khiển
• Bit Poll/Final: ý ngh ĩa tùy theo ngữ cảnh
– Trong khung lệnh (command frame)
Trang 48dce
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
Trang 50dce
T ổng kết Frame format
• HDLC frame format
Trang 52dce
Các l ệnh và đáp ứng
Trang 53• 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)
Trang 54dce
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)
Trang 56dce
Ví d ụ quá trình hoạt động