2016-09-28 5 views
2

enter image description hereHTTP/2では、req/resp、frameとTCPパケットの関係は何ですか?

画像はhttps://hpbn.co/http2/#streams-messages-and-framesです。

  • TCPパケットが複数のフレームを含むことができ、それらは異なるストリームに属することができます:

    私はので、ここで私の理解だ、私は本当に何が起こっているか理解しておくようにしたいです。

  • 要求または応答は、同じストリームに属する1つ以上のフレームで構成されます。
  • 物理的には「ストリーム」はありません。論理的な概念です(各フレームにストリームIDが含まれています)。

正しいですか?

+0

HTTP/2はアプリケーション層プロトコルであり、TCPはトランスポート層ストリーミングプロトコルです。 TCPパケットとアプリケーション層の特定の部分との間に特定の関係はなく、すなわち、単一のTCPパケット、部分的なエンティティなどの内部に複数のアプリケーション層エンティティが存在する可能性がある。 –

+0

右について考える。 –

+0

フレームとストリームはTCP上に構築された抽象です。 1つのブラウザ要求が抽象化の7つのレイヤーで構築されているとします。https://en.wikipedia.org/wiki/OSI_model#Description_of_OSI_layers –

答えて

3

私はあなたが言ったすべてが正しいと信じて、私は明確にしたい:

  • 主なポイントは、単一のTCP 接続は、多くの異なるHTTP/2ストリーム、インターリーブされたからフレームを含むことができることです。 TCP パケットとの関係は重要ではありません.TCPパケットは、TCPスタックによってTCPストリームに再組み立てされ、HTTP/2の理解には関係しないはずです。
  • 最初の点が重要である理由は、現在の要求に対する応答が必要であるため、HTTPストリームが1つの要求/応答ペアによって「ブロック」されているHTTP/1から大きな前進です。他のものの前に送信されます。これは、HTTP/1の大きなボトルネックを解消する多重化機能です。
  • 要求または応答はというメッセージと呼ばれ、1つまたは複数のフレームで構成されています。
  • 実際のTCPストリームが存在しないのと同じように物理HTTP/2 ストリームはありません。それは個々のパケットやフレームをストリームに再構成する、問題のレイヤで処理されるより高いレベルの概念/抽象です。それは無限に対処しやすくなります。

希望するものがあります。

+0

私がTCPパケットについて尋ねるのは、WireSharkを使ってhttp2をデバッグすることです.Wiresharkの各「回線」はTCPパケットです(私は思いますか?)。私は各ラインが複数のフレームを含んでいるのを見るので、私は尋ねています。 BTW私は本当にあなたが "TCPパケットがあなたのTCPスタックによってTCPストリームに再組み立てされていてはならない"という意味を理解していません。 – laike9m

+1

@ laike9m:各TCP「パケット」は、TCPストリームのちょうど一部を含んでいます。これらのパケットは、あらゆる種類のメッセージとの関係がありません.TCPは単一のストリームであり、一連のメッセージではないからです。したがって、アプリケーション層フレームは、複数のTCPパケット内のパケットであってもよく、単一のパケットは複数のアプリケーション層フレームなどを含んでもよい。アプリケーション層フレームからTCPパケットへのマッピングは定義されていない。 –

関連する問題