2012-02-18 16 views
6

Câu hỏi đặt ra là:Các realationship giữa kích thước cửa sổ và số thứ tự

Chúng tôi có một protocoll giao thông có sử dụng pipelining và sử dụng một 8-bit số thứ tự dài (0 đến 255)

cửa sổ tối đa là gì kích thước người gửi có thể sử dụng? (Có bao nhiêu gói mà người gửi có thể gửi ra trên mạng trước khi nó chờ đợi một ACK?)

Go-Back-N kích thước cửa sổ tối đa là: w = 2^m -1 w = 255.

Chọn lọc Lặp lại kích thước cửa sổ maximu là: w = (2^m)/2 w = 128.

Tôi không biết đó là chính xác và công thức nào tôi sẽ sử dụng.

Cảm ơn bạn đã trợ giúp

+0

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

Trả lời

2

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.

+1

Xin chào, xin lỗi vì đã gửi bài này từ người chết, nhưng tôi tin rằng có vấn đề với câu trả lời của bạn - trong GBN kích thước cửa sổ thực sự phải lên tới 255, và không phải 256. xem xét ví dụ sau - người gửi gửi gói 0-255 (toàn bộ cửa sổ), người nhận nhận được chúng và gửi một ACK. Thật không may, ACK bị mất vì vậy sau khi hết thời gian chờ, người gửi sẽ gửi lại các gói đó. nhưng bây giờ người nhận chờ đợi một chuỗi các gói khác bắt đầu bằng 0, vì vậy chúng tôi có một vấn đề. với kích thước cửa sổ 255 nó không xảy ra. xem xét việc xem này: http://webmuseum.mi.fh-offenburg.de/index.php?view=exh&src=73 – noamgot

Các vấn đề liên quan