Skip to main content
QUICK REVIEW

[논문 리뷰] Fakernet -- small and fast FPGA-based TCP and UDP communication

H. Johansson, Anders Furufors|arXiv (Cornell University)|2020. 03. 27.
Network Traffic and Congestion Control참고 문헌 16인용 수 4
한 줄 요약

Fakernet는 경량 FPGA 기반의 TCP 및 UDP 구현을 제공하여 고속 데이터 수집 시스템에서 사용되며, 16비트 워드 데이터 플로우 아키텍처를 사용하여 100 Mbps 링크에서 최소한의 FPGA 자원으로도 11.7 MB/s의 속도를 달성한다. 이는 프론트엔드 보드에서 직접 이더넷 연결을 가능하게 하여 커스텀 버스와 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 어댑터 카드를 표준 이더넷으로 대체하여 데이터 수집 시스템의 비용을 절감하기 위해.
  • 최소한의 효율적인 펌웨어만을 사용하여 FPGA 기반 프론트엔드 보드가 네이티브 TCP/UDP 엔드포인트로 작동할 수 있도록 하기 위해.
  • 복잡한 프로토콜 기능을 피하면서도 낮은 FPGA 자원 소비와 함께 높은 처리량(1 Gbps 링크를 포화시키기)을 달성하기 위해.
  • TCP 및 UDP 표준 사양에 '적정 수준'으로 준수하여 일반 PC 네트워크 스택과의 호환성을 확보하기 위해.
  • 표준 이더넷 하드웨어와 프로토콜을 사용함으로써 커스텀 OS 드라이버와 DMA 프로그래밍이 필요 없도록 하기 위해.

제안 방법

  • 시스템은 클럭 주파수 요구를 줄이고 FPGA 자원 소비를 최소화하기 위해 16비트 워드 데이터 플로우 아키텍처를 사용한다.
  • 지역 네트워크 운영에 필요한 기능에만 집중하여 VHDL로 최소한의 준수된 TCP 및 UDP 스택을 구현한다.
  • 재전송은 RTT 타임아웃과 중복 ACK를 기반으로 하며, 혼잡을 피하기 위해 보수적인 백오프 전략을 사용한다.
  • Round-trip time(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로 측정되었으며, 윈도우 스케일링 없이도 높은 인-flight 데이터 제한을 가능하게 했다.
  • 재전송 전략은 수신기가 추적을 잃는 경우 대역폭 소비가 극히 낮은 수준(약 110 Hz)으로 떨어지며, 연결의 고갈을 방지한다.
  • 시스템은 커스텀 버스와 PCIe 어댑터를 성공적으로 대체하여 FPGA 기반 프론트엔드 보드에서 표준 이더넷 연결을 가능하게 하였으며, 특수 드라이버가 필요 없었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.