issues
search
yunker00
/
hands_on
0
stars
0
forks
source link
非同期アーキもろもろ
#2
Open
yunker00
opened
2 years ago
yunker00
commented
2 years ago
yunker00
commented
2 years ago
リアルタイム通信
websocket
TCPベース
輻輳制御や再送はTCPに任せるので、常にデータの並び順を保とうとするので、送信に失敗したパケットが一つでもあると後続のパケット送信を待たせることになり、詰まる。これをhead of line blockingと呼ぶ
webRTC
UDPベース
head of line blockingは発生しないけど複雑
media向けのプロトコルで、映像や音声はmedia channel,他のデータはdata channelを利用して双方向通信を行う
DataChannelには暗号化にDTLSを採用し、その上にSCTPをいれて到達点順序保証を行う
ピア接続パターンと、SFUサーバ経由での通知んパターンがある
QUIC
HTTP /3のデータ転送を担うプロトコル
UDPベースで、プロトコル自体が輻輳・再送盛業を行う
コネクションIDで通信相手を特定するので相手のIPが変わっても大丈夫(5Gのように頻繁に基地局が変わってIPが変化し得るインフラの場合)
RUDP
Reliable UDPで、UDPを拡張して到達管理をする
ゲームとかレイテンシにシビアなユースケースに利用されている