(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