0

未確認のデータバッファ(送信者のバッファ)をTCPに保持するための最良の方法は何ですか?

データ自体を保持することと、パケット(ヘッダー+データ)を保持することのどちらかを考えていますか?

パケットを保持するのではなく、データバイトだけを保持すると、パケットの再送信が困難になるようです。

言語:C

4

1 に答える 1

1

TCPでは、パケットの境界は無意味です。パケットのデータの半分が確認応答される可能性があり(たとえば、断片化が原因で)、残りの半分を再送信する必要があります。

したがって、答えは次のとおりです。パケットではなく、生データを保持する必要があります。あなたが尋ねるべき本当の質問は、どのデータが承認されたかをどうやって知るかということです。ウィンドウ内のデータの各バイトにビットマスクが必要であり、確認済みデータを1としてマークし、残りを0としてマークできます。ウィンドウの先頭からの連続するデータブロックが確認済みであることがわかった場合は常に、その部分スライドさせることができます。

于 2010-12-02T00:38:18.593 に答える