Giả sử kênh truyền bên dưới vừa xảy ra lỗi bit vừa xảy ra mất gói (một sự kiện không phổ biến trong mạng máy tính hiện nay, kể cả internet).

Mất gói có thể xảy ra ở bên gửi hoặc ở bên nhận (mất gói phản hồi). Cho dù xảy ra trường hợp nào, bên gửi cũng không nhận được phản hồi từ bên nhận. Bên gửi cần phải chờ một khoảng thời gian (timeout) để chắc chắn rằng gói tin gửi đi đã bị mất, khi đó, nó sẽ tiến hành gửi lại gói tin. Tính năng chờ để gửi lại gói tin này giúp chúng ta tạo ra thêm một giao thức mới, gọi là rdt3.0.

Nếu trong thời gian chờ, gói tin ACK đã phản hồi lại kịp, hiện tượng trùng gói tin ACK có ở giao thức rdt2.2 sẽ xảy ra (xem thêm NAK-free). Tuy nhiên, giao thức rdt2.2 đã có thể xử lý hiện tượng này bằng cách thêm số thứ tự gói tin vào gói tin ACK.

![[rdt3.0-sender.webp|#x-small]]

Để thực hiện việc gửi lại dựa trên thời gian chờ, ta cần một bộ đếm ngược thời gian. Bộ đếm này có thể ngắt bên gửi sau khi hết một khoảng thời gian cho trước. Bên gửi có thể bật đồng hồ khi gửi một gói tin, phản hồi mỗi khi có ngắt đồng hồ (để thực thi một hành động nào đó, chẳng hạn như gửi lại gói tin) hoặc dừng đồng hồ.

Trường hợp gửi tin thành công và trường hợp gói tin bị mất:

![[rdt3.0-in-action(1).webp|#x-small]]

Trường hợp mất gói tin ACK và trường hợp gói tin ACK đến sau thời gian timeout:

![[rdt3.0-in-action(2).webp|#x-small]]