欠点
1コネクション内に1ストリームしかない。
引き起こされる問題
TCP HoLブロッキング。
1コネクションで複数ストリーム/ファイルの並列送信をしたいとき、擬似マルチストリームで実現できる。
ここで現れるのがTCP HoL。パケロス時にロスの無いストリームも止まる/取り出せない。
原因
- 要素1: TCPレイヤーに順序制御
- 要素2: ソケットはストリームを区別しない
この組み合わせにより、TCPが順序制御付き単一ストリームとなるのが原因。
ソケットが "IPアドレス+ポート番号+ストリーム識別子" だったらアプリ間で複数のコネクションを張れるのでマルチストリームに出来た。
TCP方式の限界
TCP以上のレイヤーでは真マルチストリームが実現できない。
なのでHTTP/2はTCP HoLブロッキングの問題を原理的に解消できない。
その先へ
じゃあストリーム識別子を導入すればいいじゃない。
-> QUICプロトコル