Skip to main content
QUICK REVIEW

[論文レビュー] Fakernet -- small and fast FPGA-based TCP and UDP communication

H. Johansson, Anders Furufors|arXiv (Cornell University)|Mar 27, 2020
Network Traffic and Congestion Control参考文献 16被引用数 4
ひとこと要約

Fakernet は、100 Mbps リンク上で TCP で 11.7 MB/s を達成する軽量な FPGA ベースの TCP および UDP 実装を提供し、最小限の FPGA リソースで動作する。16 ビットワードデータフロー・アーキテクチャを採用することで、フロントエンド・ボードからの直接的なイーサネット接続を可能にし、カスタムバスや PCIe アダプタの代わりに標準ネットワークスタックを活用し、特別なドライバを不要にする。

ABSTRACT

A common theme of data acquisition systems is the transport of data from digitising front-end modules to stable storage and online analysis. A good choice today is to base this on the ubiquitous, commercially and cheaply available Ethernet technology. A firmware building block to turn already the FPGA of front-end electronics into a TCP data source and UDP control interface using a data-flow architecture is presented. The overall performance targets are to be able to saturate a 1 Gbps network link with outbound data, while using few FPGA resources. The goal is to replace the use of custom data buses and protocols with ordinary Ethernet equipment. These objectives are achieved by being just-enough conforming, such that no special drivers are needed in the PC equipment interfacing with the here presented Fakernet system. An important design choice is to handle all packet-data internally as 16-bit words, thus reducing the clock-speed requirements. An advantageous circumstance is that even at 1 Gbps speeds, for local network segments, the round-trip times are usually well below 500 microseconds. Thus, less than 50 kiB of unacknowledged data needs to be in-flight, allowing to saturate a network link without TCP window scaling. The Fakernet system has so far been shown to saturate a 100 Mbps link at 11.7 MB/s of TCP output data, and able to do 32-bit control register accesses at over 450 kword/s.

研究の動機と目的

  • カスタムフロントエンドバスや PCIe アダプタカードを標準イーサネットに置き換えることで、データ取得システムのコストを削減すること。
  • 最小限で効率的なファームウェare のみを用いて、FPGA ベースのフロントエンド・ボードがネイティブな TCP/UDP エンドポイントとして動作できること。
  • 複雑なプロトコル機能を避けることで、少数の FPGA リソースを消費しながらも、1 Gbps リンクを飽和させる高いスルーレートを達成すること。
  • TCP および UDP 標準に「ちょうどよい」適合性を持つことで、一般の PC ネットワークスタックとの互換性を確保すること。
  • 標準イーサネットハードウェアとプロトコルを活用することで、カスタム OS ドライバーや DMA プrogramming の必要性を排除すること。

提案手法

  • クロック周波数の要件と FPGA リソース使用量を削減するため、16 ビットワードデータフロー・アーキテクチャを採用する。
  • ローカルネットワーク運用に必要な最小限の機能に焦点を当てた、VHDL で実装された最小限で準拠性のある TCP および UDP スタックを構築する。
  • 再送信は RTT タイムアウトおよび重複 ACK をトリガーとし、混雑を避けるために慎重なバックオフ戦略を採用する。
  • ラウンドトリップ時間(RTT)は、再送信中に測定値を破棄するカウンターベースのフィルタを用いて測定する。
  • 選択的 ACK やウィンドウスケーリングを回避し、ローカルネットワークにおける帯域幅の過剰確保を仮定する。
  • 標準のイーサネット PHY およびコネクタ(例:RJ45)を用いることで、一般のネットワーク機器との統合を可能にする。

実験結果

リサーチクエスチョン

  • RQ1最小限の FPGA ベースの TCP/UDP スタックは、少数の FPGA リソースを消費しながらも、100 Mbps を飽和させるような高いスルーレートを達成できるか?
  • RQ2完全な混雑制御を備えずに、パケット損失と再送信を効率的に処理できる軽量な TCP 実装はどのように実現できるか?
  • RQ3一般の PC ネットワークスタックは、最小限で「ちょうどよい」適合性を持つ TCP/UDP 実装とどの程度相互運用可能か?
  • RQ4高速データ取得の文脈において、ウィンドウスケーリングと選択的 ACK の回避が性能に与える影響はどの程度か?
  • RQ516 ビットワード処理を用いることで、クロック周波数と FPGA リソース使用量を削減できるが、スルーレートに悪影響を及えないか?

主な発見

  • Fakernet は、最小限の FPGA リソースを用いて、100 Mbps ネットワークリンク上で持続的な TCP スルーレート 11.7 MB/s を達成した。
  • 制御レジスタへの 32 ビットアクセスは 450 kword/s 以上を達成し、低遅延の制御通信を実現した。
  • ウィンドウスケーリングと選択的 ACK を回避し、RTT を用いた再送信と重複 ACK 検出に依存して損失回復を実現した。
  • ローカルネットワークセグメントにおけるラウンドトリップ時間(RTT)は約 100 μs であった。これにより、ウィンドウスケーリングなしでも高い同時送信データ量が可能になった。
  • 再送信戦略により、受信側がトラックを失った場合でも帯域幅消費が僅か(約 110 Hz)に抑えられ、接続の枯渇を防いだ。
  • システムはカスタムバスや PCIe アダプタを効果的に置き換え、FPGA ベースのフロントエンド・ボードからの直接的なイーサネット接続を実現し、特別なドライバを一切不要とした。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。