SEIL/X4のマルチコア処理
SEIL/X4は搭載するイーサネットコントローラが持つReceive-Side Scaling(RSS)機能を用いて、マルチコアCPUを活かしたパケット転送の並列処理が可能です。
パケット転送処理は、図のようにCPUコアごとに受信してから送信するまでの処理を一つのパスとして並列化されています。イーサネットフレーム(またはVLANフレーム)を受信すると、ペイロード内のIPフローからハッシュ値を計算し、値ごとに受信キューに振り分けます。ハッシュ値が同じIPフローは同じパスで処理するため通信の傾向によってIPフローが偏るとCPUリソースを活かしきれない場合がありますが、ひとつのIPフローのフレームを複数のパスに振り分けると、わずかな処理時間の差によってフレームの送信順序が入れ替わり、TCPの再送機構等によりエンド間のアプリケーション層での通信速度が低下してしまう可能性があります。 このフレームの整列処理を単純化するためにも、ひとつのIPフローの全てのフレームは同一の処理パスを通るように設計されています。

- 並列処理可能なトラフィック
- イーサネットインタフェースが受信したIPパケットを転送する場合に並列処理が働きます(受信したイーサネットフレームまたはVLANフレームのペイロードの先頭がIPヘッダの場合に、IPフローに基づく振り分けの対象になります)。
- IPフローの単位
- TCPパケットの場合は、IPヘッダの送信元アドレス、送信元ポート番号、送信先アドレス、および送信先ポート番号からハッシュ値を計算します。このため送受信アドレスおよびポート番号が全て同じ組み合わせの場合に同一フローとみなされます。
- 並列処理されないトラフィック(1)
-
ペイロードがIPでないフレームを受信した場合には並列処理が働きません。
PPPoEフレームの受信は対応外となるため、PPPoEのWAN→LAN方向のトラフィックは並列処理できません。複数のPPPoEセッションを接続した場合でもすべて同じパスで処理されます。
LAN→WAN方向のトラフィックは、LAN側のイーサネットインタフェースが受信したフレームのペイロードがIPであれば、送信インタフェースがPPPoEであっても並列処理の対象になります。
- 並列処理されないトラフィック(2)
- SEIL/X4自身がパケットの送信元となる通信は並列処理が働きません。
インタフェース | 並列処理対応 |
---|---|
GE,VLANインタフェース | 受信したフレームのペイロードの先頭がIPヘッダの場合に並列処理されます。 |
ブリッジインタフェース | ブリッジに所属するGEまたはVLANインタフェースが受信したフレームのペイロードの先頭がIPヘッダの場合に並列処理されます。VLANタグ付きのフレームを透過的に転送する場合も、ペイロードの先頭がIPヘッダであれば並列処理されます。 |
PPPoEインタフェース | PPPoEフレームの受信は並列処理非対応です。 |
PPPインタフェース | モバイルデータ通信端末からの受信は並列処理非対応です。 |
PPPAC,IPsec,Tunnel,L2TPv3インタフェース | GEポートから各プロトコルのパケットを受信した場合に、カプセル化されたIPパケットとして並列処理の振り分け対象になります。このためVPN対向ごとに1フローとなります。 |