SCTP(Stream Control Transimission Protocol)とは
TCP/UDPと同じTransport層のプロトコル。TCP/UDPばかり有名だが、第三の選択肢と言える
https://gyazo.com/1a4fc5522a0cf075dbe6a7ab9de348b3
https://gyazo.com/4ee088227b008c96318165f7f8813f3e
TCPのような信頼性と、UDPのような少ないオーバーヘッドのいいとこ取りを目指したものである。
TCPだとやりすぎ。UDPだと足りなすぎという状況の時に程よい中間に位置しているプロトコル
https://gyazo.com/eeaad64139c3e4114b5510c3766ca502
SCTPの、TCP/UDPよりも優れている特徴
- マルチホーミング
複数のI/Fを束ねる機能の事。
複数のI/Fを用いて冗長化してくれる?
複数のネットワークI/Fを束ねることで、TCPを使用するよりも高い可用性をアプリケーションに提供する
I/F = インターフェース
https://gyazo.com/8cecdc61a2e9c9997cb490d0798e7927
- マルチストリーミング
TCPのコネクションと違う点は、SCTPがアソシエーション内の複数のストリームをサポートするということ(TCPはしない?)
一つのストリームの中で複数のストリームを同時に流すことができる。
一本のストリームを開いておき、その中だけでイメージやhtmlドキュメントを同時進行でダウンロードすることができる
TCPは、一般に、制御とデータは同じコネクションを共有するので、制御パケットがデータ・パケットより遅れる点が問題である。制御とデータが個別のストリームに分けられていれば、制御データをよりタイムリーに扱うことができる
複数のストリームをもつ利点は、ブロックされたストリームパケットを消失して再送信を待っているストリームなどがアソシエーション内の他のストリームに影響を与えない点にある。ヘッドオブライン・ブロッキングと呼ばれる問題を解消できる
https://gyazo.com/44214a9f1c1e42ce20ee2d0ae400c074
レイヤは違うが、マルチストリーミングはHTTP/2で実装されている(考え方が似ている)
従来のHTTPでは、リクエストとレスポンスの組みを一つずつしか送受信しかできないことがボトルネックになっていた。その問題を改善するべく、HTTP/2では、一つの接続状にストリームと呼ばれる仮想的な双方向シーケンスを作ることでこの問題の解消に取り組んでいる
https://gyazo.com/1fc4e5c02005b368ebf0abf2eb62b5e4