Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
MoQTフルスクラッチ実装
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Hakkadaikon
August 27, 2026
Programming
90
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
MoQTフルスクラッチ実装
2026/8/27 社内LTで発表した内容
Hakkadaikon
August 27, 2026
More Decks by Hakkadaikon
See All by Hakkadaikon
Just do it ! で 走り抜けてきたけど ちょっと立ち止まってみた
hakkadaikon
0
920
自作WebSocket (RFC6455)
hakkadaikon
0
160
routstrについて
hakkadaikon
0
180
Nostr x BTC
hakkadaikon
0
79
Blueskyのプラグインを作ってみた
hakkadaikon
1
870
PHP x Nostr
hakkadaikon
0
190
Emacs x Nostr
hakkadaikon
2
430
My Introduction To Nostr
hakkadaikon
0
280
Nostr × C#
hakkadaikon
0
270
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
240
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
370
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
650
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
130
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.9k
The Rails Doctrine Decade
koic
2
250
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
510
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
330
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
560
スマートフォンでモールス信号を送受信する 〜スマートフォンのLEDとカメラで作る光通信の設計と実装〜
atsuki_seo
0
170
SREの越境 / SRE Collaboration
y0hgi
2
270
Are APIs Still Relevant in the AI Era?
soyuka
0
290
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Scaling GitHub
holman
464
140k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Building an army of robots
kneath
307
46k
What's in a price? How to price your products and services
michaelherold
247
13k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
680
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Chasing Engaging Ingredients in Design
codingconduct
0
320
Designing for humans not robots
tammielis
254
26k
Odyssey Design
rkendrick25
PRO
2
810
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Transcript
MoQT フルスクラッチ実装 発火大根
自己紹介 1 発火大根 出身: 岡山県倉敷市
今日のテーマ claudeで作ったwebサーバー / SDKを紹介します https://github.com/Hakkadaikon/wired マニアックな話をして終わります
以前の発表 以前の開発定例で 自作WebSocket の 発表をしました (2025/12/18)
開発当時 (自作 WebSocket) - この「自作WebSocket」を作ったのが2025年2月ごろ この時はほとんどAIを使わず、手で実装していた
あれから - claude や codex など、コードを書くモデルの性能が飛躍的に進化 もっと高度なネットワークのSDKを作れるのではないか
あれから そうだ もっと難しそう & 挑戦している人が少なそうなものを作ろう
自作範囲 (WebSocketの時) C言語で直接システムコールを呼 び出し、青い部分は自作 TCPの部分は自作せず、カーネル の機能を使用 暗号化 (SSL/TLS)の対応は無し
今回自作したもの MoQT 実装 (Media over QUIC Transport)
MoQT (Media over QUIC Transport)とは? ライブ配信・双方向音声通話などに使えるメディア配信プロトコル
MoQT (Media over QUIC Transport)の特徴 他の配信プロトコルと比較 (配信遅延と大規模配信のいいとこ取り) プロトコル 配信遅延 大規模配信
主な用途 MoQT 数百ms〜1秒 高い インタラクティブ配信、ライブス ポーツ、クラウドゲーム (MoQリレー対応の基盤が必要) WebRTC 0.5秒未満 中〜高 (SFU/専用CDNが必要・コスト高) LL-HLS 2-5秒 非常に高い (既存HTTP CDNをそのまま利用) HLS / DASH 6-30秒 非常に高い (既存HTTP CDNをそのまま利用) ビデオ会議、双方向通話、低遅延 1対多配信 低遅延ライブ配信(スポーツ、オー クション) VOD(ビデオオンデマンド )、 大規模ライブ配信
MoQT (Media over QUIC Transport)の特徴 330都市以上の全ての Cloudflareサーバーが MoQTをサポート (2025/8/22) https://blog.cloudflare.com/ja-jp/moq/
MoQT (Media over QUIC Transport)の特徴 ネットワークレイヤー MoQT WebTransport HTTP/3 QUIC
(+ TLS1.3) UDP IP ハンドシェイク 確立後データ通信 ネイティブアプリ
一般的な実装範囲 - 大体QUICから上 TLS1.3は別の既存のOSSを使用 (opensslなど) UDPやIPはカーネルの機能を使用 MoQT WebTransport HTTP/3 QUIC
(+ TLS1.3) UDP IP
今回作ったOSSの実装範囲 IPから上、全部。 MoQT WebTransport HTTP/3 QUIC (+ TLS1.3) UDP IP
今回作ったOSSの実装範囲 - C言語製、libc依存なし (x86-64に特化)、シングルバイナリで起動 - 約360KBのシングルバイナリ、scratchコンテナで動作する - 他の実装のバイナリは6-8MB程度 - カーネルのネットワークスタックを迂回、自分でIPレイヤーから構築
- AF_XDPと呼ばれる技術を使用 - カーネル内部のVM (eBPF)でパケットをポーリングで刈り込む - カーネルのUDPを使うモードもアリ
実装した仕様 種類 件数 RFC 40 FIPS (NIST) 4 SP (NIST)
1 IETF draft 2 合計: 47種類の仕様を実装
実装方法 - ほぼ全てclaude - RFCなど、必要な仕様をかき集める - 実装した仕様とテストコードをセットにした台帳を用意、TDDで実装 - 基本はbypass モードで放置実装
- 1日30分 - 1時間ほどかけて、指示を与え直したりテスト確認したり これを2ヶ月続けました。(現在、2050 commit over)
テスト (e2e) - quic-interop-runner (OSS) をforkして使用 様々なサーバー x クライアントと掛け合わせでテストをしてくれる QUICとWebTransportに対応
https://interop.seemann.io/quic
テスト (e2e) クライアント別に 22ケースのテストを実施 著名な実装 (nginx) 等と比較しても、遜色ない程度にテストが通るように 今回作った実装 (quicのテスト) nginx
(quicのテスト)
速度 一部のテストでは、他の実装を大きく上回る結果に (VPSでテスト) 10MB転送テスト ループバックでリクエストを与え続ける
苦労したところ - bypassモードで放置実装・テストがしにくい所は手動でテストした - ループバックではなく、ネットワーク外から実行するテスト - AF_XDP - カーネル側の制御を行うためsudoが必要 -
RFC等の仕様からトップダウンでTDDしたはずだが、 e2eで失敗しまくる - 実際のクライアントと対向させないと分からない部分もある
実際のサンプル 通話するためのクライアントを作成、VPSでサーバーを動作させて接続 -> 実際にチャット・通話が出来た
Q. ところで... - 機能も他の実装と遜色ない程度に出来てきている 速度もそれなりに出ている 他の実装より圧倒的に優れている部分もある (バイナリサイズなど) では、もう「実用的」なのか?
A. 答え 現段階では、全く実用的ではない。(実務では使えない)
なぜ? - 運用実績 セキュリティ
なぜ? - openssl - - 1999 - 2026年 (27年間) で280件以上のCVEあり
https://openssl-library.org/news/secjson/index.html nginx - 2009 - 2026年(17年間)で45件程度のCVEあり https://nginx.org/en/security_advisories.html 過去の様々な運用の中で、これだけの脆弱性を乗り越えてきている
なぜ? 文字通りフルスクラッチの実装なので まだ見ぬ脆弱性や不具合が大量にあると予想
ただ... 強みとして、 - 依存がほぼない - 他のOSSに縛られない - 脆弱性の修正には、完全に自分の意思とタイミングで反映可能 - 別のWebサーバーがCVE発行
-> AIが検知 -> 自動で水平展開チェック -> 反映 の流れを作れたら強いかも? 将来的に、今回作った実装の方がセキュアになる可能性も?
今後 引き続きAIによる放置実装で - パフォーマンス改善 脆弱性対応 ドキュメント改善 映像配信のサンプル (音声とチャットは出来たが映像配信はまだ試せていない) などを行っていく予定
ありがとうございました! EDムービー : 私のダンス動画 (AI) 動画: Seedance 2.5 / 人物画:
実写をgrokでデフォルメ / 背景: フリー素材 / ダンス: 別動画 (フリー素材 )