概要
- Tailscale はNATトラバーサルとネットワーク高速化に注力
- Linux/Android 向けのメモリ・スループット最適化を進行中
- マルチキュー技術 でサブネットルーターやアプリコネクタの性能向上
- netmapキャッシュ による起動高速化と不安定なネットワーク対応
- 今後は パフォーマンステストツール の開発にも注力予定
Tailscaleのネットワーク高速化への取り組み
- NATトラバーサル を独自技術で実現し、幅広いネットワーク条件下で接続性を確保
- TCP/UDPスループット 向上のため、Linuxデバイスでの最適化やwireguard-goの改良を実施
- Tailscale Peer Relays などのネットワークプリミティブを開発し、困難な環境でも性能を維持
- パフォーマンス重視のワークロード (CI、エージェントワークフロー、リモート開発、ロボティクス、テレメトリ等)にも対応可能な実用性を実現
メモリオーバーヘッド削減とキュー最適化
- 小パケット (1KiB程度)が大半だが、LinuxのGRO利用には64KiBバッファが必要
- 従来は各パケットを64KiBバッファにコピーしていたが、 直接大きなバッファ内で管理 することでメモリ効率化
- 多数の小パケットが1つの割り当てで済み、コピー回数も削減
- 5%程度の速度向上 を多くのネットワーク構成で実現
- パケットキュー長の短縮 により、待機時間とメモリオーバーヘッドも削減
- 解放されたメモリ資源を サブネットルーターやアプリコネクタ に還元
マルチキュー技術の導入
- サブネットルーター や アプリコネクタ、 エグジットノード でマルチキュー化を実現
- 複数の独立したストリームを 単一スレッドで順序維持 して処理していた従来方式から進化
- 各ストリームごとに 専用レーン を割り当て、CPUコア全体で並列処理
- レイテンシ低減 と スループット向上 を両立
- ハードウェアリソースの有効活用による 体感速度の大幅向上
- 特に 多ユーザー・短命接続 が多い環境で効果を発揮
writevによるスループット向上
- Linuxのwritev機能 を活用し、複数のパケットデータを一括でカーネルに渡す最適化
- データコピー回数や書き込み操作の削減 によりメモリ効率とスループットを向上
netmapキャッシュによる起動高速化
- Linux/Android で先行導入、他OSにも展開予定
- ネットワークマップ(netmap) をディスクにキャッシュし、コントロールプレーン到達前でも接続開始可能
- 悪条件下(不安定Wi-Fi・ホテルネット等) でも迅速な起動を実現
- キャッシュは一度でも接続経験がある場合のみ有効、ディスク常駐が必須
- 大規模tailnetやSDカード等の記憶媒体 では利用推奨外の場合あり
- ウォームキャッシュ起動 により、通常より1~2桁速い接続確立が可能
今後のリリース予定
- バッファ変更によるメモリ削減 (Linux/Android):v1.104クライアントで提供予定
- マルチキュー対応 :v1.104以降のリリースで提供
- writev等によるスループット向上 :2026年春に一部実装済、追加最適化はv1.104以降
- netmapキャッシュ :現行クライアントでfeature flagとして利用可能。v1.104でデフォルト化予定、モバイルはv1.104以降を予定
パフォーマンステストツールへの課題と展望
- 現状のパフォーマンステストツール の課題
- 配布の手間 :エンドポイントごとにツール導入が必要
- ワークフローの硬直化 :誤ったテストや誤判定のリスク
- 新プロトコル未対応 :QUICやHTTP/3等をサポートしないツールが多い
- Tailscale固有情報の非対応 :DERP利用やピアリレー有無、経路変化の可視化不可
- Tailscaleネイティブなパフォーマンスツール の開発を検討中
- ユーザー自身が ネットワーク状態を正確に把握・診断 できる仕組みの提供を目指す
Tailscale は今後もネットワーク高速化とユーザー体験向上のため、技術革新とツール開発を継続予定
投稿がLinux/Androidに焦点を当てているのは、単にそこから始まったからなのか、それともLinux/Androidでしかできない技術を活用しているからなのか、気になるな。