未確認のデータバッファ(送信者のバッファ)をTCPに保持するための最良の方法は何ですか?
データ自体を保持することと、パケット(ヘッダー+データ)を保持することのどちらかを考えていますか?
パケットを保持するのではなく、データバイトだけを保持すると、パケットの再送信が困難になるようです。
言語:C
未確認のデータバッファ(送信者のバッファ)をTCPに保持するための最良の方法は何ですか?
データ自体を保持することと、パケット(ヘッダー+データ)を保持することのどちらかを考えていますか?
パケットを保持するのではなく、データバイトだけを保持すると、パケットの再送信が困難になるようです。
言語:C
TCPでは、パケットの境界は無意味です。パケットのデータの半分が確認応答される可能性があり(たとえば、断片化が原因で)、残りの半分を再送信する必要があります。
したがって、答えは次のとおりです。パケットではなく、生データを保持する必要があります。あなたが尋ねるべき本当の質問は、どのデータが承認されたかをどうやって知るかということです。ウィンドウ内のデータの各バイトにビットマスクが必要であり、確認済みデータを1としてマークし、残りを0としてマークできます。ウィンドウの先頭からの連続するデータブロックが確認済みであることがわかった場合は常に、その部分スライドさせることができます。