Hai giao thức khác nhau có vấn đề khác nhau.
Trong trường hợp Go-Back-N, bạn là chính xác. Kích thước cửa sổ có thể lên đến 255. (2^8-1 là seq cuối cùng của gói tin để gửi bắt đầu từ 0. Và nó cũng là kích thước cửa sổ tối đa có thể cho giao thức Go-Back-N.)
Tuy nhiên , Giao thức lặp lại chọn lọc có giới hạn kích thước cửa sổ lên đến một nửa tối đa seq # vì người nhận không thể phân biệt gói truyền lại có cùng số seq # với gói đã được kích hoạt nhưng bị mất và không bao giờ tới được người gửi trong cửa sổ trước đó. Do đó, kích thước cửa sổ phải nằm trong một nửa phạm vi của seq # sao cho các cửa sổ liên tiếp không thể sao chép được số seq # lẫn nhau.
Go-Back-N không có vấn đề này vì người gửi đẩy n gói lên đến kích thước cửa sổ (tối đa: n-1) và không bao giờ trượt cửa sổ cho đến khi nó được tích lũy lên đến n. Và hai giao thức này có các cửa sổ kích thước tối đa khác nhau.
Lưu ý: Đối với Go-Back-N, kích thước cửa sổ tối đa là số chuỗi số duy nhất tối đa - 1. Nếu cửa sổ bằng số thứ tự duy nhất tối đa, nếu tất cả xác nhận bị mất, người nhận sẽ chấp nhận tất cả các tin nhắn được truyền lại dưới dạng một tập hợp các tin nhắn riêng biệt và chuyển tiếp các tin nhắn thêm một lần nữa vào ứng dụng của nó. Để tránh sự không nhất quán này, kích thước cửa sổ tối đa = số lượng tối đa các số thứ tự duy nhất - 1. Câu trả lời này đã được cập nhật theo thực tế được cung cấp trong nhận xét của @noamgot.
Bạn đang thiết kế giao thức ở đây? Hay nó có một cái tên, trong trường hợp này, xin hãy nêu tên nó. Chỉ cần làm rõ: bạn đang nói về TCP, phải không? – cxxl