Tự như trong Idle RQ

Một phần của tài liệu KTTSL_CHUONG4 docx (Trang 26 - 31)

 (E1) I-Frame 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 I-Frame

 (E2) I-Frame đến được bên nhận, nhưng nội dung I-Frame sai, lỗi này cùng có thể xảy ra đồng thời trên nhiều I-Frame

 (E3) ACK-Frame 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 ACK-frame

I ( N ) I ( N ) I ( N ) I ( N + 1 ) I ( N + 1 ) P r i m a r y ( P ) S e c o n d a r y ( S ) I ( N + 2 ) I ( N + 2 ) I ( N + 3 ) I ( N + 4 ) I ( N + 3 ) I ( N + 4 ) I ( N + 5 ) I ( N + 5 ) I ( N ) A C K ( N ) E 1 E 2 E 1 E 3

CSE 501035 – Data Communication 27

Go–back–N

 Sửa lỗi E1

 Sử dụng danh sách truyền lại (Retransmission list) để lưu các I-Frame gởi đi nhưng chưa có ACK báo về. Bên thu nếu nhận được các I-frame không đúng thứ tự sẽ yê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 I-Frame 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 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 báo về (có thể do bên thu

không gởi NAK) thì xem như I-Frame này chưa tới và gởi lại các frame kể từ frame này

Go–back–N

 Sửa lỗi E2

 Implicit Retransmission: dùng timer

 Khi một I-Frame 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 I-Frame sai thì cách sửa lỗi cũng tương tự như trong trường hợp E1

 Explicit Retransmission: dùng NAK-Frame

 Khi một I-Frame 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 NAK-Frame. Như vậy thời gian đáp ứng sẽ nhanh hơn. Khi NAK-Frame 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 I- Frame này

CSE 501035 – Data Communication 29

Go–back–N

 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 I-Frame này, mặc dù lúc đó bên nhận đã nhận đúng I-Frame này (lỗi trùng I-frame) → phải dùng chỉ số tuần tự frame để phân biệt giữa các I-frame với nhau

 Do bên nhận chỉ nhận I-Frame 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 I-Frame có chỉ số từ N → N+1, do đó bên gởi vẫn không gởi lại các I-Frame từ N → N+1 mặc dù ACK của các I-Frame 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

Go–back–N

 Khái niệm

 Giả sử dòng các I-Frame đ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 full- duplex 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

CSE 501035 – Data Communication 31

Một phần của tài liệu KTTSL_CHUONG4 docx (Trang 26 - 31)

Tải bản đầy đủ (PPT)

(39 trang)