Slide 1

Slide 1 text

WebTransportは 未来の技術? YAPC::Hakodate 2024 Kizuku X:@Kizuku_tech

Slide 2

Slide 2 text

自己紹介 導入 HTTPの歴史 WebTransportについて まとめ アジェンダ

Slide 3

Slide 3 text

Kizuku 九州工業大学 学部4年 →DeNA 好きな言語: Go X(Twitter): @Kizuku_tech 自己紹介 メンター 学生アンバサダー

Slide 4

Slide 4 text

イベント参加/運営 Kizuku.go Gopher’s Gathering 2025/1/18 きのこカンファレンス 2025/3/9

Slide 5

Slide 5 text

イベント参加/運営 Kizuku.go Gopher’s Gathering 2025/1/18 きのこカンファレンス 2025/3/9

Slide 6

Slide 6 text

イベント参加/運営 Kizuku.go Gopher’s Gathering 2025/1/18 きのこカンファレンス 2025/3/9

Slide 7

Slide 7 text

はじめに 対象 主にWebアプリに関すること WebTransportを聞いたことない/ほぼ知ら ない人向け

Slide 8

Slide 8 text

はじめに 話すこと WebTransportって何? WebTransportの良さ 話さないこと WebTransportの詳しい仕様/実装 応用事例

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

導入 リアルタイム通信の技術 何が思い浮かびますか?

Slide 11

Slide 11 text

WebSocket WebRTC SSE Streaming

Slide 12

Slide 12 text

WebTransportは あまり出てこない...

Slide 13

Slide 13 text

WebSocket WebTransport セキュリティ 速さ 柔軟性

Slide 14

Slide 14 text

WebTransportの 何が嬉しいのか

Slide 15

Slide 15 text

HTTPの歴史を振り返る

Slide 16

Slide 16 text

HTTPの歴史 http/0.9 http/1.0 http/1.1 http/2 http/3

Slide 17

Slide 17 text

HTTPの歴史 http/0.9 http/1.0 http/1.1 http/2 http/3

Slide 18

Slide 18 text

http/1.1 http/1.0が基礎となりその拡張版 PUTやDELETEが追加 アプリケーション層のHOL問題 暗号化は任意

Slide 19

Slide 19 text

http/2 マルチプレキシング テキスト→バイナリ トランスポート層のHOL問題 サーバープッシュ → 廃止

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

http/3 QUICを採用(TCP → UDP) HOL問題の解消 ネットワークの切り替えに強い デフォルトでTLS1.3に対応 エコシステムが未熟 デバッグしづらい

Slide 22

Slide 22 text

HOL問題 Head of Line Blocking 先頭のデータパケットの処理が遅延また はブロックされると、後続のパケットも 処理できなくなる現象 パフォーマンスの低下

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

WebTransportについて 高効率で低遅延な通信を行うための新し いプロトコル IETFでの仕様はDraft段階 https://datatracker.ietf.org/doc/draft-ietf-webtrans-overview/ QUIC上で動作

Slide 26

Slide 26 text

WebTransportの嬉しさ UDP → 低遅延通信 信頼性が選択可能 Streaming(信頼性あり) Datagram (信頼性なし) セキュリティの統合

Slide 27

Slide 27 text

ただ、いいことばかりでもない...

Slide 28

Slide 28 text

そもそもまだ仕様が固まっていない ブラウザが一部未対応(Limited availablilty) ライブラリが未発達 WebTransport APIはHTTPSの環境でし か動かない WebTransportの悲しさ

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

WebTransportのライブラリ事情 Python aioquic Go quic-go/webtransport-go

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

draftのver.2だよ 今までは余暇で作ってたよ 開発資金が苦しいので2024年6月で開発 ストップしたよ

Slide 33

Slide 33 text

じゃあ、自分で作れば良くね?

Slide 34

Slide 34 text

Goのパッケージって “go”が入ること多いんですよね

Slide 35

Slide 35 text

go

Slide 36

Slide 36 text

Slide 37

Slide 37 text

5

Slide 38

Slide 38 text

Slide 39

Slide 39 text

五稜郭

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

乞うご期待!!

Slide 43

Slide 43 text

まとめ WebTransportはいい技術だよ でもまだちょっと使うには時代が 追いついてないよ 遠い“未来”の話ではない