# RSS(Receive Side Scaling) RSS(Receive Side Scaling)とは、マルチキュー NIC(Network Interface Card)がハードウェアレベルで複数の受信キューを持ち、パケットの 4 タプル(送受信 IP アドレス・ポート番号)のハッシュによって各キューに振り分け、それぞれのキューを異なる CPU コアに割り当てることで受信割り込みを分散する仕組みである。 ## 動作原理 1. NIC ハードウェアがパケットの 4 タプルをハッシュ化 2. ハッシュ値に基づいて複数の受信キューにパケットを振り分け 3. 各キューは異なる CPU コアに対応するハードウェア割り込みを生成 4. 各 CPU コアが独立してプロトコル処理を実行 ## 要件 NIC ハードウェアとドライバの両方が RSS に対応している必要がある。ハードウェア依存が高いため、すべての環境で使えるわけではない。 ## ソフトウェア代替 RSS に対応していない NIC 環境向けに、ソフトウェア実装の [[RPS(Receive Packet Steering)]] が Linux 2.6.35 で導入された。さらにキャッシュ局所性を考慮した [[RFS(Receive Flow Steering)]] も同バージョンで追加された。 ## 関連する [[スマートNICオフロード]] との関係 RSS はパケット分散のみを行うハードウェア機能。[[スマートNICオフロード]] はより広範なオフロード(TCP 処理全体・チェックサム計算等)を対象にしており、RSS とは目的が異なる。 ## 横断的知見 - 今後の取り込みで、複数ソース間の関係を追記する。 ## 未解決の問い - この概念をどのソース群で継続的に検証するか。