3

バークレー ソケットを使用して C++ で記述した Web HTTP/1.1 サーバーの実装があります。リクエストとレスポンスの多重化を可能にする HTTP/2.0 (または SPDY) のサポートの実装を検討しています。

HTTP/2.0 のバイナリ フレーミング レイヤーは、クライアントとサーバーが HTTP メッセージを独立したフレームに分解し、それらをインターリーブし、反対側で再構築できるようにすることで、完全な要求と応答の多重化を可能にします。

私の質問は次のとおりです。バークレー ソケット API を使用して記述している既存の HTTP/1.1 プログラムで、HTTP/2.0 (または SPDY) タイプの要求と応答の多重化を有効にするにはどうすればよいですか? おそらく、HTTP/2.0 (または SPDY) でサポートされている前述のフレーム多重化は、TCP/IP スタックの既存のメカニズムによって既に処理されているのでしょうか?

説明:

単一の接続を使用して複数の要求と応答を並行して配信する多重化の部分に特に興味があります。仕様から、これがアプリケーションレベルのプロトコルでどのように実装されているかわかりませんか? 何か案は?

4

1 に答える 1

4

SPDY は TCP/IP スタックの一部ではなく、TCP の上にあり、伝統的にアプリケーション プロトコルと見なされているため、TCP スタックはこれを処理しません。そのコントロール フレームとデータ フレームは、ドラフト仕様に記載されています。プロトコルを実装することにより、多重化を実装します。TCP スタックは、HTTP または SPDY について何も知りません。

つまり、SPDY は単一の TCP 接続内のフレームで構成されており、特にセッション ID とフレーム長を含む非常に単純なヘッダーが含まれています。多重化するにはそれを実装する必要があります。標準の SSL/TLS 対応ソケット コードを使用してすべてを実装できるはずです。

私の知る限り、これは仕様です -

http://www.chromium.org/spdy/spdy-protocol/spdy-protocol-draft2

于 2014-07-13T09:42:46.057 に答える