10000以上といった多セッション同時接続にも1つのコアで対応しており、高品質・高性能と合わせて、弊社TCP/UDPオフロードエンジンの特長となっています。
組み込み端末向けと、サーバー向けの2種類のIPを用意しています。
組み込み端末向けでは、10Gbpsを超える高速通信を超低消費電力で実現します。
サーバー向けでは、最大100Gbpsのスループットと、10000セッション以上の同時接続機能を持ち、仮想マシンやコンテナにも対応するため、サーバーアプリケーションのバックエンドとして高性能・CPU低負荷を実現します。
TCP/UDPオフロードエンジンの特徴
-
高性能
フルハードでTCPスタックを実装しているため、CPUを使わず高スループット(100G-Ethernet対応)かつ超低遅延の処理が可能です。また、10000以上の同時接続を処理することが出来ます。
-
高信頼性
TCPフル機能によりデータの送達が保証されます。また、高いリアセンブル機能や、ネットワーク状況に応じたフロー制御により、あらゆる環境において、無駄の無い効率的な転送を行います。
-
ソフトウェア互換
ソフトウェアで処理していたお客様のアプリケーションは、一切変更することなく動作します。ただちにハードウェアオフロードのメリットを享受できます。
ハードウェアで完結するプロトコルスタック
TCP/UDPオフロードエンジンは、トランスポート層であるTCPおよびUDPのプロトコル処理を、下位層のIP, ARP, ICMPを含めてCPUから肩代わりします。
弊社のオフロードエンジンは、ARP処理・再送・高速再転送・フロー制御といった、全機能をハードウェアで代替します。またホストのメモリからのダイレクトRead, Writeを行うためRDMA同様のゼロコピーを実現可能で、CPUの負荷をほぼゼロに低減します。
また別の使い方として、CPUの無いハードウェアのみによるTCP通信が可能とsなり、SWによるプロトコルスタックを必要とせず高性能な通信を実現します。
TCP/UDPオフロードエンジン概要
CPUが制御しデータを受け渡しするCPU用のインターフェースと、ハードウェアであるユーザロジックが制御およびデータ受け渡しを行うためのインターフェースのどちらかを利用できます。
TCPの場合は、IPアドレスを指示してコネクションの接続を指示すれば、ARP解決に必要なARPの処理も行い、3-wayハンドシェイクを行い接続を行います。その他、Activeオープン、Passiveオープン、再送、高速再転送、タイムアウト、フロー制御、Windowプローブなど、TCPに必要な全ての機能を備えたエンジンです。
OS・ソフトウェアとの統合
LinuxやリアルタイムOS(RTOS, Zephyerなど)と統合されたドライバを提供いたします。例えばLinuxであればsocketライブラリを利用していたこれまでのアプリケーションは、socket APIの下でハードウェアによる処理に置き換わるため、そのまま変更せずに動作します。つまり、ハードウェアオフロードによる高性能・低遅延メリットを直ちに享受することができます。その上で、これまでのTCP通信でボトルネックであった、SWプロトコルスタック処理、データコピー、カーネルのコンテキストスイッチといったオーバーヘッドが大幅に削減されます。
サーバーオフロード型利用法
サーバーオフロード型では、ホストマシンのTCP/IPソフトウェアスタックをオフロードします。Socket APIをそのまま利用し、ドライバがオフロードエンジンを利用するように切り替えるため、アプリケーションの変更無く、通信に費やすCPUの負荷を無くすことが出来ます。
またこのエンジンはSR-IOV (Single-Root I/O Virtualization) に対応しているため、ハードウェアが複数のマシンからの要求を調停・割り振りを行います。これにより、複数のVM、コンテナから、オフロードエンジンを、ソフトウェアのオーバーヘッド無しに利用しフル性能を発揮することが出来ます。さらに、通常はHypervisorソフトウェアで行っている、VM間やコンテナ間のパケットのスイッチ機能もオフロードし、CPUの負荷を低減します。
IoT端末型利用法
Xilinx Zynqボード(ZCU102)での動作比較
Xilinx ZCU102はSoC(System On Chip)タイプのFPGAデバイスの評価ボードで、ARMのCPUがFPGAに搭載されています。
ARMのCPUのみでTCPの性能測定ツールであるiperfによって測定すると、送信2.1Gbps, 受信1.5Gbpsのスループットですが、PTUを入れることによって、CPUの負荷を無くした上で、送信9.0Gbps, 受信8.2Gbpsのスループットを出しています。
TCP/UDPオフロードエンジン仕様一覧
プロトコル | 802.3, ARP, ICMP, IPv4, TCP, UDP, RTP |
---|---|
性能 | スループット: 最大100Gbps (1コア) |
TCP | オフロード機能:パケット生成, チェックサム, 3-wayハンドシェイク, パケット再送, 高速再転送, フロー制御, TCPリアセンブル, Delayed Ack(ソケットライブラリ同等のTCPフル機能) |
UDP | 10,000セッション以上 |
対応デバイス | Altera Arria/Stratix 4/5/10, Agilex他 |
ソフトウェアI/F | Linux用ドライバ, ソケットライブラリ |