Bài giảng Truyền thông kỹ thuật số: Chương 4 của Trịnh Huy Hoàng giới thiệu tới các bạn những nội dung về vấn đề khi trao đổi dữ liệu; điều khiển dòng dữ liệu; Idle RQ (Stop–and–Wait); Sliding windows; điều khiển lỗi; Stop–and–Wait; Go–back–N và một số nội dung khác.
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:hoangth@hcmup.edu.vn 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) 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 Đ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 Đ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 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 Idle RQ (Stop–and–Wait) Animation CSE 501035 – Data Communication 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 2a V R R d L V 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 Sliding windows Animation CSE 501035 – Data Communication 10 Go–back–N I(N + ) I(N ) I(N ) I(N + ) I(N ) I(N + ) P r im a r y (P ) I(N + ) I(N + ) I(N ) I(N + ) 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 + ) I(N + ) 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 m e a c c e p te d I(N + ) V (s )= N + V (s )= N + F m e F 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 + ) I(N + ) V (s )= N + V (s )= N + F m e n o t F m e n o t a c c e p te d a c c e p te d I(N + ) I(N + ) I(N + ) V (s )= N + F m e a c c e p te d V (s )= N + F m e a c c e p te d V (s )= N + F m e a c c e p te d 25 Go–back–N Trong trường hợp lỗi xảy ra: các kiểu lỗi cũng tương tự như trong Idle RQ (E1) IFrame khơng đến được bên nhận, và lỗi này có thể xảy ra đồng thời trên cùng nhiều IFrame (E2) IFrame đến được bên nhận, nhưng nội dung IFrame sai, lỗi này cùng có thể xảy ra đồng thời trên nhiều IFrame (E3) ACKFrame khơng đến được bên nhận, hay đến được bên nhận nhưng nội dung frame bị sai, lỗi này có thể xảy ra đồng thời trên nhiều ACKframe P r im a r y (P ) I(N ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) E I(N ) A C K (N ) E E I(N ) S e c o n d a ry (S ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) E CSE 501035 – Data Communication 26 Go–back–N Sửa lỗi E1 Sử dụng danh sách truyền lại (Retransmission list) để lưu các IFrame gởi đi nhưng chưa có ACK báo về. Bên thu nếu nhận được các Iframe khơng đúng thứ tự sẽ u cầu truyền lại các frame kể từ frame khơng nhận được (bằng cách gởi NAK). Bên gởi sẽ lấy ra IFrame từ danh sách này ra truyền lại 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ề (có thể do bên thu khơng gởi NAK) thì xem như IFrame này chưa tới và gởi lại các frame kể từ frame này CSE 501035 – Data Communication 27 Go–back–N Sửa lỗi E2 Implicit Retransmission: dùng timer Khi một IFrame truyền đến bên nhận nhưng bị lỗi, bên nhận khơng đáp ứng tín hiệu sau thời gian timeout, bên gởi sẽ truyền lại I Frame này. Nếu có nhiều IFrame sai thì cách sửa lỗi cũng tương tự như trong trường hợp E1 Explicit Retransmission: dùng NAKFrame Khi một IFrame truyền đến bên nhận nhưng bị lỗi, bên nhận sẽ báo lại cho bên gởi biết trường hợp này thông qua NAKFrame. Như vậy thời gian đáp ứng sẽ nhanh hơn. Khi NAKFrame bị lỗi hay không đến được bên gởi, sau thời gian timeout bên gởi cũng sẽ tiến hành gởi lại IFrame này CSE 501035 – Data Communication 28 Go–back–N Sửa lỗi E3 Sử dụng chỉ số tuần tự frame (sequential number): Khi ACKframe 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, mặc dù lúc đó bên nhận đã nhận đúng IFrame này (lỗi trùng Iframe) phải dùng chỉ số tuần tự frame để phân biệt giữa các Iframe với nhau Do bên nhận chỉ nhận IFrame theo đúng chỉ số tuần tự nếu bên gởi nhận được ACK(N+i+1) thì biết chắc chắn là bên nhận đã nhận đúng tất cả các IFrame có chỉ số từ N N+1, do đó bên gởi vẫn khơng gởi lại các IFrame từ N N+1 mặc dù ACK của các IFrame này có thể bị lỗi hay bị mất ? tăng hiệu suất Nếu sau thời gian timeout mà bên gởi vẫn khơng nhận được ACK/NAK nào, nó sẽ gởi lại các frame kể từ frame cuối cùng nhận được ACK CSE 501035 – Data Communication 29 Go–back–N Khái niệm Giả sử dòng các IFrame đi theo một chiều và chiều kia chỉ dùng cho ACK Các frame thơng tin điều khiển đủ chỗ để chứa ACK (piggybacked acknowledgment), do đó việc trao đổi dữ liệu fullduplex sẽ chứa ACK. NAK thường được gởi riêng, không theo kiểu piggyback ACKN xác nhận cho frame N1 CSE 501035 – Data Communication 30 Selective Reject Cơ chế hoạt động Tương tự như GoBackN, ngoại trừ việc chỉ gởi lại các frame bị NAK hoặc timeout Bên nhận có thể nhận frame thơng tin khơng theo đúng chỉ số tuần tự thứ tự frame thơng tin truyền khơng được bảo đảm và bên nhận phải có buffer để lưu lại các frame đến khơng theo đúng chỉ số tuần tự Vấn đề kích thước cửa sổ Tình huống A gởi 06 đến B B xác nhận tất cả, nhưng tất cả ACK đều bị mất A đợi hồi, nên gởi lại 0 B đã dịch cửa sổ nhận, nên có thể nhận 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 Kích thước cửa sổ tối đa là ½(2n), tức 2n1 CSE 501035 – Data Communication 31 Selective Reject CSE 501035 – Data Communication 32 Selective Reject 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 Sử dụng danh sách truyền lại (Retransmission list) để lưu các IFrame gởi đi nhưng chưa có ACK báo về. Lúc lỗi sẽ lấy ra IFrame từ danh sách này ra truyền lại Đối với selective reject, khi lỗi xảy ra sẽ truyền lại chỉ các I Frame sai. Do đó thứ tự IFrame đến bên nhận là khơng có thứ tự và bên nhận phải có buffer để lưu lại các Iframe đến khơng đúng thứ tự này CSE 501035 – Data Communication 33 Selective Reject I(N + ) I(N ) I(N ) I(N ) I(N + ) I(N + ) P r im a r y (P ) I(N + ) I(N + ) I(N + ) I(N + ) I(N ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) R e t r a n s m itt e d m ode I(N + ) I(N + ) E1 I(N ) T im e o u t r e tr a n s m itte d A C K (N ) V (s )= N + S e c o n d a ry (S ) I(N ) I(N ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) I(N + ) CSE 501035 – Data Communication 34 Selective Reject Sửa lỗi E2 Implicit Retransmission: dùng timer Khi một IFrame truyền đến bên nhận nhưng bị lỗi, bên nhận khơng đáp ứng tín hiệu ? sau thời gian timeout, bên gởi sẽ truyền lại I Frame này. Nếu có nhiều IFrame sai thì cách sửa lỗi cũng tương tự như trong trường hợp E1 Explicit Retransmission: dùng NAKFrame Khi một IFrame truyền đến bên nhận nhưng bị lỗi, bên nhận sẽ báo lại cho bên gởi biết trường hợp này thông qua NAKFrame. Như vậy thời gian đáp ứng sẽ nhanh hơn. Khi NAKFrame bị lỗi hay không đến được bên gởi, sau thời gian timeout bên gởi cũng sẽ tiến hành gởi lại IFrame này CSE 501035 – Data Communication 35 Selective Reject Sửa lỗi E3 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 IFrame này, mặc dù lúc đó bên nhận đã nhận đúng IFrame này (lỗi trùng Iframe) ? phải dùng chỉ số tuần tự frame để phân biệt giữa các Iframe với Do bên gởi chỉ truyền lại các IFrame bị sai nên thứ tự I Frame đến bên nhận khơng theo thứ tự, vì vậy bên nhận phải có buffer để lưu lại các frame đến khơng theo chỉ số tuần tự này. Khi nhận được IFrame có đúng chỉ số, bên nhận sẽ lấy các IFrame tuần tự tiếp theo từ buffer để đưa lên ứng dụng CSE 501035 – Data Communication 36 Continuous ARQ – So sánh 5 E D D D E rro r D is c a r d e d f r a m e s G o -b a c k -N p ro to c o l E E rro r S e le c t iv e r e p e a t CSE 501035 – Data Communication B u ffe re d fra m e s fra m e s -5 r e le a s e d 37 Điều khiển lỗi – Hiệu suất Stopandwait protocol GobackN protocol U U P 2a P 2aP N(1 P) (2a 1)(1 P NP) Selective reject protocol U CSE 501035 – Data Communication 1 P N(1 P) 2a N 2a N 2a N 2a N 2a 38 Đọc thêm W. Stallings, Data and Computer Communications (7th edition), Prentice Hall 2004, chapter 7 CSE 501035 – Data Communication 39 ... 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... 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 ... 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ừ