ハードウェアによるTCP処理の完全オフロードは
高性能と送達保証の両方を実現します

 

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処理・再送・高速再転送・フロー制御といった、全機能をハードウェアで代替しますので、CPUの負荷をほぼゼロに低減します。またCPUの無いハードウェアのみによるTCP通信も実現可能です。

TCP/UDPオフロードエンジン概要

CPUが制御しデータを受け渡しするCPU用のインターフェースと、ハードウェアであるユーザロジックが制御およびデータ受け渡しを行うためのインターフェースのどちらかを利用できます。
TCPの場合は、IPアドレスを指示してコネクションの接続を指示すれば、ARP解決に必要なARPの処理も行い、3-wayハンドシェイクを行い接続を行います。その他、Activeオープン、Passiveオープン、再送、高速再転送、タイムアウト、フロー制御、Windowプローブなど、TCPに必要な全ての機能を備えたエンジンです。

OS・ソフトウェアとの統合

LinuxやリアルタイムOS(RTOS, Zephyerなど)と統合されたドライバを提供いたします。例えばLinuxであればsocketライブラリを利用していたこれまでのアプリケーションは、socket APIの下でハードウェアによる処理に置き換わるため、そのまま変更せずに動作します。
つまり、ハードウェアオフロードによる高性能・低遅延メリットを直ちに享受することができます。

サーバーオフロード型利用法

サーバーオフロード型では、ホストマシンの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フル機能)
最大コネクション数: 16,000 (コンフィグで変更可能)
スループット: 最大100Gbps / 1コア
TCPオプション: MSS(Maximum Segment Size)対応, TimeStamp対応

UDP

10,000セッション以上
スループット 最大100Gbps
H.264 over RTP
他、各種プロトコルにカスタムで対応

対応デバイス

Intel Arria/Stratix 4/5/10, Agilex他
Intel PAC (Programmable Acceleration Card), OFS (Open FPGA Stack)対応
Xilinx 7-シリーズ, UltraScale, UltraScale+他
Xilinx Alveoシリーズに対応, HBM2に対応

ソフトウェアI/F

Linux用ドライバ, ソケットライブラリ
VM対応, コンテナ対応(SR-IOV)