はじめに LinuxのeBPFを使ってQUICパケットのDestination Connection IDを元にQUICサーバーのSO_REUSEPORTした特定のソケットへパケットを送り込む試みについて記述します。 ユースケース TCPを扱う典型的なマルチスレッドサーバーの一例としては、各スレッドでlisten、受信データの処理を行います。カーネルがパケットの面倒は全て見てくれるため、アプリケーションはソケットからデータの送受信だけをしていれば良かったのです。QUICはUDPパケットのハンドリングはカーネル任せですがその先は、ユーザースペースで実装する必要があります。UDPでSO_REUSEPORTを使って複数ソケットで同じアドレスで待ち受けすることはできますが、IPアドレス、ポートの四つ組で振り分けされることになります。QUICは概ねこれでも行けそうですが、QUICはコネクションのマイ