2012-09-09 20 views
5

Tôi hiện đang nghiên cứu về mạng khá cơ bản và hiện tôi đang ở đối tượng truyền đáng tin cậy. Tôi đang sử dụng cuốn sách Mạng máy tính bởi Kurrose & Ross, và hai trong số những câu hỏi đánh giá như sau:SR & GBN: ACK ngoài cửa sổ

Với giao thức chọn lọc-repeat/đi-back-n, nó có thể cho các người gửi đến nhận được một ACK cho một gói tin rơi bên ngoài của nó cửa sổ hiện tại?

Đối với phiên bản SR, câu trả lời của tôi cho câu hỏi như sau:

Vâng, nếu kích thước cửa sổ là quá lớn đối với không gian số thứ tự. Đối với ví dụ , người nhận nhận được một số gói dữ liệu bằng không gian của số thứ tự . Cửa sổ nhận của nó do đó di chuyển sao cho nó là mong đợi một tập hợp các gói mới có cùng số thứ tự như cuối cùng. Người nhận hiện gửi một ACK cho từng gói, nhưng tất cả chúng đều bị mất trên đường đi. Điều này cuối cùng khiến người gửi hết thời gian chờ cho mỗi tập hợp các gói trước đó và truyền lại mỗi gói. Người nhận nghĩ rằng tập hợp các gói dữ liệu này thực sự là những gói mới mà nó đang mong đợi, và nó gửi ACK cho mỗi người trong số họ thành công đến người gửi. Người gửi bây giờ trải nghiệm một loại nhầm lẫn tương tự, nơi mà nó cho rằng ACKs là xác nhận rằng mỗi gói cũ đã được nhận, khi chúng thực sự là ACK cho gói mới, chưa được gửi.

Tôi chắc chắn điều này đúng (nếu không, hãy cho tôi biết!), Vì loại kịch bản này có vẻ là lý do cổ điển về lý do kích thước cửa sổ phải nhỏ hơn hoặc bằng một nửa kích thước của không gian số thứ tự khi nói đến các giao thức SR, nhưng còn GBN thì sao?

Có thể cùng một loại vấn đề bao quanh xảy ra với nó, làm cho câu trả lời hầu như giống hệt nhau? Nếu không, có trường hợp nào khác có thể khiến người gửi GBN điển hình nhận ACK ngoài cửa sổ của nó không?

Về sau, ví dụ duy nhất tôi có thể nghĩ đến là như sau:

Một GBN người gửi gửi các gói Một & B theo thứ tự. Người nhận nhận được cả hai theo thứ tự, và gửi một ACK tích lũy bao gồm tất cả các gói trước và lên đến A, và sau đó một gói khác bao gồm tất cả các gói trước và lên đến B (bao gồm cả A). Người đầu tiên bị trì hoãn nặng nề đến nỗi người thứ hai đến trước người gửi, khiến cửa sổ của họ bị trượt ra ngoài A & B. Khi người đầu tiên cuối cùng đến, nó không cần thiết thừa nhận rằng mọi thứ tới A đã được nhận đúng, khi A là đã ở bên ngoài cửa sổ của người gửi.

Ví dụ này có vẻ khá vô hại và không tương phản với trang trước, vì vậy tôi nghi ngờ chính xác (nhưng một lần nữa, sửa tôi nếu tôi sai, vui lòng!).

Trả lời

1

Trong thế giới thực tế, làm thế nào về một trùng lặp ACK bị trì hoãn đủ lâu để rơi ra khỏi cửa sổ?

Giao thức là giữa người gửi và người nhận, nhưng nó không có quyền kiểm soát cách thức hoạt động của phương tiện truyền thông (đường dẫn mạng).

Giao thức sẽ vẫn đáng tin cậy theo thiết kế nhưng việc triển khai sẽ có thể xử lý các ACK trùng lặp ngoài cửa sổ đó.