Hình 3.10 cho thấy các đại diện của FSM rdt2.0, một phát hiện lỗi giao thức truyền dữ liệu sử dụng, cam kết tích cực, và nhận phủ định.
Việc gửi bên của rdt2.0 có hai trạng thái. Trong trạng thái tận cùng bên trái, col phác đồ gửi bên đang chờ đợi dữ liệu được truyền từ các lớp trên. Khi rdt_send (dữ liệu) sự kiện xảy ra, người gửi sẽ tạo ra một gói (sndpkt) có chứa các dữ liệu được gửi đi, cùng với một tổng kiểm tra gói tin (ví dụ, như đã thảo luận trong mục 3.3.2 cho trường hợp của một UDP segment), và sau đó gửi các gói tin thông qua các udt_send (sndpkt) hoạt động. Trong nhà nước phải nhất, các giao thức gửi là ing wait- cho một ACK hoặc NAK một gói tin từ người nhận. Nếu một gói tin ACK được nhận (ký hiệu rdt_rcv (rcvpkt) && isACK (rcvpkt) trong hình 3.10 tương ứng với sự kiện này), người gửi biết rằng các gói tin truyền đi gần đây nhất đã được nhận được một cách chính xác và do đó trở về giao thức đến trạng thái chờ đợi cho dữ liệu từ các lớp trên. Nếu một NAK được nhận, các giao thức truyền lại các gói tin cuối cùng và chờ đợi cho một ACK hoặc NAK để được trả lại bởi người nhận để đáp ứng với các gói dữ liệu truyền lại. Điều quan trọng cần lưu ý là khi người gửi đang trong trạng thái chờ đợi-cho-ACK-hay-NAK, nó không thể có được nhiều dữ liệu từ các lớp trên; đó là, sự kiện rdt_send () không thể xảy ra; đó sẽ chỉ xảy ra sau khi người gửi nhận được một ACK và lá trạng thái này. Như vậy, người gửi sẽ không gửi một mảnh mới của dữ liệu cho đến khi nó là chắc chắn rằng người nhận đã nhận được một cách chính xác các gói hiện. Vì hành vi này, các giao thức như rdt2.0 được gọi là giao thức stop-and-wait
đang được dịch, vui lòng đợi..