Go-back-N スライディング ウィンドウを使用して UDP 経由でファイルを転送するために Java でクライアントを作成しようとしています。私は TftpPacket を使用していますが、それは質問には関係ありません。私の問題は、どのようにして承認制御を行うことができるかということです。例:
15 セグメントに分割されたファイル、長さ 10 のウィンドウがあります。したがって、最初に 10 セグメントを送信しますが、パッケージ 2 が失われるため、クライアントは 10 セグメントを送信し、サーバーは最初のもののみを確認したため、クライアントはセグメント 11 を送信し、停止します。タイムアウトの後、クライアントは再び送信しますが、今回のウィンドウはセグメント 2 からセグメント 11 (10 セグメント ウィンドウ) までで定義されます。
私の問題は、ウィンドウを制御する方法を理解できないため、最後に受信した ack が 1 の場合はセグメント 11 でブロックし、タイムアウト後にウィンドウ全体を再送信することです。