dce 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 t
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 – 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
Trang 3dce
©2008, Dr Dinh Duc Anh Vu 3
Data Communication and Computer Networks
Đ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
©2008, Dr Dinh Duc Anh Vu 5
Data Communication and Computer Networks
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 7dce
©2008, Dr Dinh Duc Anh Vu 7
Data Communication and Computer Networks
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 oriented.(byte-oriented)
character-– 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
©2008, Dr Dinh Duc Anh Vu 9
Data Communication and Computer Networks
Vấn đề kích thước frame
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
©2008, Dr Dinh Duc Anh Vu 11
Data Communication and Computer Networks
Sliding windows
Trang 12dce
Sliding windows – Ví dụ
Trang 13dce
©2008, Dr Dinh Duc Anh Vu 13
Data Communication and Computer Networks
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)
Trang 15dce
©2008, Dr Dinh Duc Anh Vu 15
Data Communication and Computer Networks
Đ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ỗixả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
Trang 17dce
©2008, Dr Dinh Duc Anh Vu 17
Data Communication and Computer Networks
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
Trang 18dce
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 19dce
©2008, Dr Dinh Duc Anh Vu 20
Data Communication and Computer Networks
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
Trang 20dce
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 21dce
©2008, Dr Dinh Duc Anh Vu 22
Data Communication and Computer Networks
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
Trang 22dce
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 23dce
©2008, Dr Dinh Duc Anh Vu 24
Data Communication and Computer Networks
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
Trang 24dce
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 25dce
©2008, Dr Dinh Duc Anh Vu 26
Data Communication and Computer Networks
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)
Trang 26dce
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 27dce
©2008, Dr Dinh Duc Anh Vu 28
Data Communication and Computer Networks
Go-back-N - Ví dụ
Trang 28– 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
Trang 29dce
©2008, Dr Dinh Duc Anh Vu 30
Data Communication and Computer Networks
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
Trang 30dce
Selective Repeat ví dụ
Trang 31dce
©2008, Dr Dinh Duc Anh Vu 45
Data Communication and Computer Networks
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 32• Đ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
Trang 33dce
©2008, Dr Dinh Duc Anh Vu 48
Data Communication and Computer Networks
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 34dce
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
Trang 35dce
©2008, Dr Dinh Duc Anh Vu 50
Data Communication and Computer Networks
Cấu trúc khung (frame structure)
• 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 36dce
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 37dce
©2008, Dr Dinh Duc Anh Vu 52
Data Communication and Computer Networks
Ảnh hưởng nếu lỗi xảy ra với cờ
Trang 38• 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ụ)
Trang 39dce
©2008, Dr Dinh Duc Anh Vu 54
Data Communication and Computer Networks
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 40dce
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 41dce
©2008, Dr Dinh Duc Anh Vu 56
Data Communication and Computer Networks
Trường điều khiển
• Bit Poll/Final: ý nghĩa tùy theo ngữ cảnh
– Trong khung lệnh (command frame)
Trang 42dce
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 43dce
©2008, Dr Dinh Duc Anh Vu 58
Data Communication and Computer Networks
Trang 44dce
Tổng kết Frame format
• HDLC frame format
Trang 45dce
©2008, Dr Dinh Duc Anh Vu 60
Data Communication and Computer Networks
Trang 46dce
Các lệnh và đáp ứng
Trang 47dce
©2008, Dr Dinh Duc Anh Vu 62
Data Communication and Computer Networks
– 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)
Trang 48dce
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
– REJ: NACK (go-back-N)
– SREJ: NACK (selective repeat)
Trang 49dce
©2008, Dr Dinh Duc Anh Vu 64
Data Communication and Computer Networks
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 frame UA(unnumbered acknowledgment)
U-• Các khung quá độ có thể bị mất (việc phục hồi phải do các lớp trên)
Trang 50dce
Ví dụ quá trình hoạt động