多数のTCPパケットに分割された大きなHTTPパケットがある場合、どのようにそれらを単一のHTTPパケットに再構成できますか?基本的に、パケットのどこでHTTPパケットが開始/終了しているかを調べますか? HTTPパケットの開始または終了を示すTCPヘッダーにフラグ/フィールドがないようです。HTTPパケットの再構成
編集:フォローアップの回答。 TCPがストリームを管理している場合、ストリームの開始と終了をどのように知るのですか?それはソケットの開閉によって決定されますか?いくつかのレベルでは、HTTPストリーム/パケットがいつ開始され、終了したかを知ることができなければならないプロトコルもあります。それは私が知りたいことです。
私は、TCPパケットを読み取るC#でパケットスニッファを使用していますが、HTTP要求/応答/などを再構築できるようにしたいと考えています。 wiresharkや他のさまざまなスニッファの管理方法のようなインターフェースを介して行きます。あるいは、HTTPストリーム/パケットを自分で再構築する必要がなくなり、より高いレベルでHTTPストリームを利用できるC#ライブラリがありますか?
ありがとうございました。
を、あまりにも長さをうまくする方法は他にもあります。例えばhttp://www.httpwatch.com/httpgallery/chunked/ – mike
少し遅れているかもしれませんが、 'Content-Length'ヘッダーは総パケット長を指定しません。コンテンツのサイズ、つまりヘッダーの後に続く本文を指定するだけです。ヘッダーと本文は '\ r \ n \ r \ n'で区切られています。 –