Moku 기가비트 스트리머는 고속 SFP 또는 QSFP 인터페이스를 통해 Moku:Delta와 Linux 호스트 컴퓨터 간에 빠르고 안정적인 샘플 데이터 스트리밍을 제공하며, 동시 송수신 작업을 지원합니다. 이 가이드에서는 스트림 설정, 패킷 구조, 송수신 워크플로우에 대한 실제적인 고려 사항을 다루면서 Moku와 호스트 시스템 간에 안정적인 데이터 스트리밍을 위해 기가비트 스트리머를 구성하고 사용하는 방법을 설명합니다.

개요

Moku 기가비트 스트리머는 고속 SFP(Small Form-factor Pluggable) 및 QSFP(Quad Small Form-factor Pluggable) 인터페이스를 통해 Moku:Delta와 호스트 컴퓨터 간에 빠르고 안정적인 샘플 데이터 스트리밍을 제공합니다. 동일 포트에서 동시 송수신을 지원하여 실시간 녹음 및 재생 워크플로우를 구현할 수 있습니다.

Moku Gigabit Streamer는 Gigabit Streamer와 Gigabit Streamer+ 두 가지 버전으로 제공되며, 두 버전 모두 동일한 패킷 구조와 스트리밍 모델을 사용하고 물리적 연결 방식과 최대 데이터 전송 속도에서만 차이가 있습니다.

기가비트 스트리머는 두 개의 SFP 인터페이스를 사용하여 포트당 최대 5Gbit/s의 데이터 전송 속도로 두 채널의 실수 값 샘플을 스트리밍할 수 있습니다. 이 제품은 직접적이고 효율적인 데이터 경로가 필요한 고대역폭 데이터 수집 및 실시간 스트리밍에 적합합니다.

Gigabit Streamer+는 QSFP 인터페이스를 통해 이러한 기능을 확장하여 멀티 인스트루먼트 모드에서 듀얼 채널 스트리밍을 지원하거나, 독립형 작동 모드에서 최대 4개 채널까지 지원하며, 총 데이터 전송 속도는 최대 80Gbit/s에 달합니다. 이는 초고속 캡처, 까다로운 하드웨어 인 더 루프 시스템 및 대규모 데이터 처리 워크플로우에 이상적입니다. 

두 버전 모두 IPv4 기반의 UDP(User Datagram Protocol)를 사용하며, 고정 전송률, 낮은 지연 시간, 예측 가능한 타이밍을 제공하는 DIFI(Direct Information Functional Integration) 표준을 준수하는 VITA 49.2 패킷 구조를 채택하고 있습니다. Moku Gigabit Streamer는 다중 계측 모드에서 외부 시스템을 사용하여 실시간 파형 캡처, 파형 재생, 센서 시뮬레이션 및 분산 처리를 지원합니다.

이 가이드는 Moku:Delta와 호스트 컴퓨터 간의 고속 스트리밍 링크를 구성, 검증 및 운영하는 방법에 대한 완벽한 개요를 제공합니다. 필수적인 전송 개념, 패킷 구조, 그리고 송수신 작업을 위한 실제 설정 단계를 다룹니다. 이 가이드는 보다 유연한 네트워크 구성을 위해 Linux 운영 체제를 기반으로 작성되었으며, 다른 운영 체제를 사용하는 경우 적절히 수정해야 합니다.

애플리케이션 노트 다운로드

하드웨어 설정

Moku:Delta는 고속 데이터 전송을 위해 두 개의 SFP 포트와 하나의 QSFP 포트를 제공합니다. Moku Gigabit Streamer는 SFP 인터페이스를 사용하고, Moku Gigabit Streamer+는 QSFP 인터페이스를 통해 작동합니다.

  • 기가비트 스트리머는 10Gbit/s SFP 포트 두 개를 활용합니다.
  • 100Gbit/s QSFP 포트를 사용하는 Gigabit Streamer+

SFP 및 QSFP 포트는 Moku:Delta의 FPGA에 있는 특정 영역에 연결됩니다. 이러한 고정된 하드웨어 라우팅 때문에 Gigabit Streamer 및 Gigabit Streamer+는 다중 기기 모드에서 사용할 때 지정된 슬롯에 배치해야 합니다. 대부분의 Moku 기기와 달리 임의의 슬롯에 설치할 수 없습니다.

고속 데이터 스트리밍을 위한 기가비트 스트리머

그림 1. 3슬롯 다중 장비 모드에서 기가비트 스트리머 및 기가비트 스트리머+의 할당

표 1. 3슬롯 다중 계측기 모드에서의 계측기 매핑

다중 악기 모드 슬롯 악기 물리적 포트
슬롯 1 기가비트 스트리머 SFP1
슬롯 2 기가비트 스트리머+ QSFP
슬롯 3 기가비트 스트리머 SFP2
 
고속 데이터 스트리밍을 위한 기가비트 스트리머

그림 2. 5슬롯 다중 장비 모드에서의 기가비트 스트리머 할당

 

표 2. 5슬롯 다중 계측기 모드에서의 계측기 매핑

다중 악기 모드 슬롯 악기 물리적 포트
슬롯 2 기가비트 스트리머 SFP1
슬롯 4 기가비트 스트리머 SFP2

Gigabit Streamer+는 독립 실행형 모드로도 작동할 수 있으며, 이 경우 전체 FPGA 패브릭을 사용하고 항상 QSFP 포트를 통해 작동합니다.

호스트 컴퓨터 권장 사항

고속 UDP 스트림을 처리하려면 충분한 입력 및 출력 속도와 처리 용량을 갖춘 호스트가 필요하며, 이러한 호스트는 중단 없이 지속적인 데이터 수신 및 저장을 지원해야 합니다. 이 섹션에서는 지속적인 고속 UDP 수신에 적합한 호스트 구성에 대한 지침을 제공합니다. 요구 사항은 회선 속도 및 애플리케이션 부하에 따라 달라질 수 있습니다. 전반적인 성능은 네트워크 인터페이스 카드(NIC), CPU, 시스템 메모리 및 스토리지가 병목 현상 없이 원활하게 작동하는지에 따라 결정됩니다.

네트워크 인터페이스

Moku Gigabit Streamer를 사용하려면 호스트에 SFP+ 또는 SFP28 NIC가 필요하고, Gigabit Streamer+를 사용하려면 QSFP28 NIC가 필요합니다. 스트리밍에는 DAC(Direct Attached Copper) 링크가 필요하므로 이러한 인터페이스는 DAC 케이블을 지원해야 합니다.

NIC는 원하는 링크 속도에 충분한 대역폭을 제공하는 PCIe 슬롯에 설치해야 합니다.

CPU 및 인터럽트 처리

고속 UDP 캡처는 ​​호스트 CPU가 패킷을 수신하고, 들어오는 데이터를 버퍼링하고, 샘플을 사용자 공간으로 전달하는 데 의존합니다. 안정적인 스트리밍을 위해서는 호스트 시스템이 들어오는 데이터 속도를 따라잡을 수 있는 충분한 처리 용량을 제공해야 합니다.

실제로 이는 다음과 같은 방법으로 가장 잘 달성할 수 있습니다.

  • 멀티코어 CPU, 싱글 스레드 성능 우수
  • 수신측 스케일링을 지원하는 네트워크 인터페이스 카드 드라이버
  • CPU 코어 전체에 처리 부하가 분산되도록 인터럽트가 잘 분산되어 있습니다.

고속 QSFP 링크의 경우, 특히 장시간 또는 연속 캡처 시 워크스테이션급 또는 서버급 프로세서가 더 큰 여유 공간을 제공합니다.

시스템 메모리

수신되는 네트워크 데이터의 버퍼링은 짧은 패킷 버스트를 흡수하고 디스크에 데이터를 기록할 때 발생하는 순간적인 지연을 보정하기 위해 사용 가능한 시스템 메모리에 의존합니다. 충분한 메모리를 제공하면 끊김 없는 스트리밍을 유지하는 데 도움이 됩니다.

저장 처리량

안정적인 스토리지 처리량은 캡처 프로세스 전반에 걸쳐 원활한 데이터 흐름을 유지하는 데 도움이 되며, 적절한 스토리지 구성은 목표 스트리밍 속도와 예상 캡처 시간에 따라 달라집니다. 대부분의 고속 스트리밍 애플리케이션의 경우, 필요한 처리량으로 연속적인 대용량 블록 순차 쓰기를 지원하는 스토리지 솔루션을 사용하면 이를 달성할 수 있습니다. 회선 속도가 높을수록 고성능 장치 또는 여러 드라이브를 함께 사용하는 등 추가 스토리지 대역폭이 유용할 수 있습니다.

하드웨어 연결

호스트-모쿠 스트리밍은 모쿠와 호스트 컴퓨터 간의 직접적인 이더넷 연결을 사용합니다. 이 연결에는 네트워크 스위치나 라우터가 필요하지 않으며 고속 데이터 스트리밍을 위한 전용 링크로 구성됩니다.

지원되는 DAC 케이블을 사용하여 호스트 네트워크 인터페이스 카드를 Moku:Delta의 해당 SFP 또는 QSFP 포트에 직접 연결하십시오. 호스트 컴퓨터에 SFP 또는 QSFP 포트가 없는 경우 운영 체제에서 지원하는 호환 어댑터를 설치하십시오.

Moku Gigabit Streamer(SFP 버전)의 경우:

  • 호환되는 10G SFP+ 또는 SFP28 DAC 케이블
  • DAC 케이블을 지원하는 SFP+ 또는 SFP28 NIC가 장착된 호스트 컴퓨터

Moku Gigabit Streamer+ (QSFP 버전)용:

  • 호환되는 100G QSFP28 DAC 케이블
  • DAC 케이블을 지원하는 QSFP28 NIC가 장착된 호스트 컴퓨터

연결이 설정되면 Moku 전면 패널의 LED 3이 파란색으로 켜져 링크가 활성화되었음을 나타냅니다. 호스트 컴퓨터의 네트워크 인터페이스에서도 링크 상태를 확인할 수 있습니다. 아래 예시에서는 "enp5s0f0np0"이라는 인터페이스 이름을 사용했는데, 실제 인터페이스 이름으로 바꿔야 합니다.

  1. 다음 인터페이스를 찾으세요:

ip addr

예를 들어 Moku:Delta에 연결된 SFP 또는 QSFP 포트에 해당하는 항목을 찾으십시오.

enp5s0f0np0 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 ...

UP 및 LOWER_UP은 인터페이스가 활성화되어 있고 링크가 연결되어 있음을 나타냅니다.

  1. 링크 상태 및 속도를 확인하세요

ethtool 물리적 링크가 활성화되어 있는지 확인하고 협상된 속도를 읽으려면:

sudo ethtool enp5s0f0np0

확인해야 할 주요 항목:

    • 링크 감지됨: 예
    • 속도: 10000Mb/s 또는 100000Mb/s (SFP 또는 QSFP 링크에 따라 다름)
    • 듀플렉스: 풀

Moku Gigabit Streamer+용 QSFP 구성

Moku:Delta의 QSFP 인터페이스는 FEC(순방향 오류 수정)를 사용하지 않습니다. 호스트 NIC에서 FEC가 기본적으로 활성화되어 있는 경우 링크가 제대로 작동하지 않을 수 있습니다. 대부분의 NIC는 다음 순서로 인터페이스를 비활성화한 다음 FEC를 비활성화하고 마지막으로 인터페이스를 다시 활성화하여 FEC를 비활성화할 수 있습니다. <interface> 인터페이스 이름을 입력하세요. 예: enp7s0f0np0.

sudo ip link set <interface> down

sudo ethtool --set-fec <interface> encoding off

sudo ip link set <interface> up

이제 인터페이스에 링크가 감지되었다는 메시지와 구성된 속도가 표시되어야 합니다. 물리적 링크가 안정화되면 IP 구성 및 기가비트 스트리머 설정을 진행할 수 있습니다.

고정 IP 주소 지정을 사용한 전송 구성

Moku Gigabit Streamer를 이용한 고속 데이터 스트리밍은 Moku:Delta와 호스트 컴퓨터 간의 직접적인 고정 파라미터 UDP 링크를 사용합니다. 스트리밍에 사용되는 SFP 및 QSFP 포트는 지점 간 이더넷 연결을 통해 연결되며, 구성된 피어만 해당 포트에서 패킷을 송수신할 수 있습니다. 이러한 방식은 예측 가능한 타이밍, 낮은 프로토콜 오버헤드 및 일관된 처리량을 제공합니다.

기가비트 스트리머는 스트리밍 포트에 고정 IP 주소를 사용하여 작동합니다. 이러한 포트는 결정론적 데이터 전송을 위해 구성되어 있으므로 ARP 또는 DHCP와 같은 자동 주소 검색 메커니즘을 사용하지 않습니다.

정상적인 작동을 위해서는 Moku와 호스트 모두 스트리밍 인터페이스에 대해 동일한 서브넷에 속하는 IP 주소로 구성되어 있어야 합니다.

전송 모드(Moku에서 호스트로):
호스트는 설정된 IP 주소를 사용하여 Moku와 통신하고 지정된 포트에서 UDP 패킷을 수신합니다. 이 설정은 Moku 앱을 통해 직접 처리되므로 일반적으로 호스트 측에서 추가적인 네트워크 설정을 할 필요가 없습니다.

수신 모드(호스트에서 Moku로):
Moku로 데이터를 전송하려면 Moku 앱에서 스트리밍 포트를 설정하는 것 외에도 호스트는 정적 네이버 항목을 사용하여 Moku 스트리밍 IP 주소를 해당 MAC 주소와 연결해야 합니다. 이렇게 하면 패킷이 직접 링크를 통해 올바르게 전달됩니다.

이 연결은 케이블을 다시 연결하거나 호스트 또는 Moku를 재시작한 후와 같이 수신 모드 스트리밍 연결이 설정될 때마다 필요합니다.

호스트의 현재 이웃 테이블을 확인하려면 다음 명령을 실행하십시오.

ip neighbor | grep <moku_NIC_IP>

입력 내용이 다음과 같으면 INCOMPLETE대신 다음 명령을 실행하세요:

sudo ip neigh replace <moku_NIC_IP> lladdr <moku_MAC> dev <interface> nud permanent

예를 들어, Moku 앱에서 기가비트 스트리머를 다음과 같이 구성했다고 가정해 보겠습니다.

  • 로컬 IP 주소: 10.10.1.1
  • 로컬 MAC 주소: 70:69:79:b2:02:69

호스트 컴퓨터가 enp5s0f0np0 네트워크 인터페이스를 사용하여 Moku:Delta로 데이터를 전송하는 경우, 호스트가 Moku:Delta의 IP 주소를 MAC 주소로 확인할 수 있도록 정적 네이버 항목을 추가해야 합니다.

sudo ip neigh replace 10.10.1.1 lladdr 70:69:79:b2:02:69 dev enp5s0f0np0 nud permanent

이렇게 하면 10.10.1.1로 전송되는 패킷이 지정된 인터페이스의 올바른 목적지 MAC 주소로 전송됩니다.

패킷 및 데이터 구조

Moku 기가비트 스트리머는 모든 송수신 샘플 데이터에 대해 DIFI 표준을 준수하는 VITA-49.2 패킷 형식을 사용하며, IPv4를 통해 UDP 프로토콜로 전송됩니다. 사용되는 패킷 유형은 두 가지입니다. 하나는 스트림 구성을 설명하는 컨텍스트 패킷이고, 다른 하나는 샘플 페이로드를 전달하는 데이터 패킷입니다. 두 패킷 유형 모두 정해진 레이아웃을 따르므로 호스트는 데이터 스트림을 해석하고 재구성하기 위해 패킷을 정확하게 파싱해야 합니다.

샘플 데이터는 고정된 속도로 UDP 패킷의 연속적인 스트림 형태로 전송됩니다. 스트리밍 속도는 선택된 샘플링 속도, 샘플 크기, 채널 수 및 구성된 최대 전송 단위(MTU)에 따라 결정됩니다. MTU는 최대 UDP 페이로드 크기를 결정하며, 따라서 각 패킷에 포함될 샘플 수를 결정합니다.

스트리밍 링크는 확인 응답, 재전송 또는 이더넷 일시 정지 프레임과 같은 안정성 또는 흐름 제어 메커니즘 없이 작동합니다. 패킷은 스트림 지속 시간 동안 구성된 속도로 전송되며, 호스트 시스템은 해당 속도로 데이터를 지속적으로 수신하고 처리할 수 있어야 합니다.

패킷 해석 순서

기가비트 스트리머 데이터 스트림은 일관된 순서로 패킷을 처리함으로써 정의되고 해석됩니다.

  1. 컨텍스트 패킷

컨텍스트 패킷이 먼저 처리되어 이후 데이터 패킷의 해석 방식을 결정합니다. 컨텍스트 패킷에는 스트림 식별자, 샘플 속도, 데이터 형식, 스케일링 매개변수 및 데이터 패킷 페이로드 형식이 포함됩니다. 이러한 필드는 샘플 유형, 항목 크기, 소수점 크기, 채널 태깅 및 벡터 크기를 설명하며, 이들을 통해 각 데이터 패킷 내에 샘플이 어떻게 패킹되는지가 정의됩니다.

  1. 데이터 패킷 헤더

각 데이터 패킷 헤더를 읽고, 스트림 식별자를 사용하여 패킷을 활성 컨텍스트 정보와 연결합니다.

  1. 데이터 패킷 페이로드

샘플 값은 정의된 패킹 형식에 따라 압축 해제됩니다. 다중 채널 스트림의 경우 샘플은 컨텍스트 패킷에 설명된 순서대로 디인터리빙됩니다.

  1. 컨텍스트 매개변수 적용

컨텍스트 패킷의 샘플링 속도, 스케일링 및 게인 정보는 샘플을 시간에 배치하고 물리적 신호 값을 재구성하는 데 사용됩니다.

이러한 순서는 다음 섹션에서 설명하는 패킷 구조 및 레이아웃에도 반영됩니다.

전체 패킷 구조

기가비트 스트리머가 전송하는 샘플 데이터와 스트림 메타데이터는 표준 이더넷, IP 및 UDP 헤더 내에 캡슐화됩니다. 그림 3은 이러한 캡슐화 계층 구조를 보여주고 각 패킷과 관련된 프로토콜 오버헤드를 강조 표시합니다.

고속 데이터 스트리밍을 위한 이더넷 패킷 구조

그림 3은 DIFI 프로토콜 스택 패킷 구조를 따르는 Moku 기가비트 스트리머 패킷 구조를 보여줍니다.


이더넷 프레임

이더넷 프레임은 가장 바깥쪽 링크 계층 캡슐화를 제공합니다. 이더넷 프레임은 이더넷 프레임 헤더와 IP 패킷을 전달하는 이더넷 프레임 페이로드로 구성됩니다. 그림 3에 표시된 모든 프로토콜 오버헤드는 이더넷 프레임 페이로드 내에 포함됩니다.

인터넷 프로토콜 계층

인터넷 프로토콜 계층은 UDP 데이터그램을 캡슐화하고 Moku:Delta와 호스트 컴퓨터 간의 논리적 주소 지정을 제공합니다. 고정된 헤더 크기는 각 이더넷 프레임 내의 전체 프로토콜 오버헤드에 영향을 미칩니다.

사용자 데이터그램 프로토콜(UDP) 계층

UDP 계층은 VITA 패킷의 경량 전송을 제공합니다. UDP 헤더는 UDP 페이로드 앞에 오며, 페이로드에는 정확히 하나의 VITA 패킷이 포함됩니다.

VITA 레이어

VITA 계층은 스트리밍 콘텐츠의 구조와 해석을 정의합니다. 각 UDP 페이로드에는 VITA 헤더와 VITA 페이로드로 구성된 단일 VITA 패킷이 포함됩니다.

VITA 헤더는 7개의 32비트 워드로 구성된 고정된 크기를 가지며 모든 VITA 패킷에 포함됩니다. VITA 페이로드는 패킷 유형에 따라 컨텍스트 정보 또는 신호 샘플 데이터를 전달합니다. 이러한 구분은 VITA 헤더 자체에 명시되어 있습니다.

패킷 오버헤드 및 페이로드 크기

그림 3에서 보는 바와 같이, IPv4를 사용할 때 이더넷, IP, UDP 및 VITA 헤더를 모두 합치면 각 이더넷 프레임 내에 56옥텟(56바이트)의 고정 오버헤드가 발생합니다. 이더넷 프레임 페이로드 내의 나머지 공간은 사용 가능한 최대 신호 데이터 페이로드 크기를 결정합니다. 모든 패킷이 동일한 구조를 따르므로, 더 큰 MTU를 선택하면 상대적인 헤더 오버헤드가 줄어들고 전반적인 스트리밍 효율이 향상됩니다.

컨텍스트 패킷

컨텍스트 패킷은 현재 스트리밍 세션과 관련된 메타데이터를 정의합니다. 이 패킷은 모든 기가비트 스트리머 스트리밍 세션의 시작 시 전송됩니다. 컨텍스트 패킷에는 샘플 데이터가 포함되어 있지 않습니다. 대신, 뒤따르는 데이터 패킷의 페이로드 형식과 타이밍을 디코딩하는 데 필요한 정보를 제공합니다.

Moku 기가비트 스트리머의 레이아웃은 VITA-49.2 컨텍스트 패킷 클래스 0x0001 구조를 따르며, 자세한 내용은 아래와 같습니다.

고속 데이터 스트리밍을 위한 컨텍스트 패킷 구조

그림 4. Moku 기가비트 스트리머 컨텍스트 패킷 구조


표 3 Moku 기가비트 스트리머 컨텍스트 패킷 필드 정의

분야 기술설명
패킷 개수 컨텍스트 패킷이 전송될 때마다 (모듈로 16) 값이 증가합니다.
스트림 식별자 특정 데이터 스트림을 식별합니다. 스트림 식별자는 동일한 스트리밍 세션 내의 컨텍스트 패킷과 해당 데이터 패킷 간에 일치해야 합니다.
정수 초 타임스탬프 계측기가 배치되거나 마지막으로 재설정된 시점(기준 시점) 이후 경과된 시간(초)입니다.
참조 레벨 완전한 크기의 디지털화된 사인파를 생성하는 사인파의 교류 전력( 최대 진폭 ± 2N−1), 어디서 N 는 50Ω 부하를 기준으로 한 비트 수입니다.
품목 포장 필드 크기 스트림의 항목당 할당된 비트 수를 지정합니다. 이는 다음과 같이 인코딩됩니다. (샘플 비트 폭 − 1)

일반 모드에서는 15(0b001111)를 사용하고 정밀 모드에서는 31(0b011111)을 사용합니다.

데이터 항목 크기 각 샘플이 실제로 사용한 비트 수를 지정합니다. 이는 다음과 같이 인코딩됩니다. (샘플 비트 폭 − 1)

일반 모드에서는 15(0b001111)를 사용하고 정밀 모드에서는 31(0b011111)을 사용합니다.

벡터 크기 채널 수에서 1을 뺀 값 (단일 채널 스트리밍의 경우 0, 듀얼 채널 스트리밍의 경우 1)
 

데이터 패킷

각 데이터 패킷은 샘플 페이로드의 구성 방식을 설명하는 간결한 헤더로 시작합니다. 이 헤더는 컨텍스트 패킷 헤더와 동일한 구조를 가지며, 샘플 블록을 올바르게 압축 해제하고 해석하는 데 필요한 매개변수를 제공합니다. 이러한 필드는 개별 샘플의 인코딩 방식과 페이로드에 나타나는 샘플의 개수를 정의합니다.

그림 5는 Moku Gigabit Streamer에서 사용되는 데이터 패킷 구조를 자세히 보여주며, 이는 표준 흐름 신호 데이터 패킷인 DIFI 패킷 클래스 0x0000과 매우 유사합니다.

그림 5. Moku 기가비트 스트리머 데이터 패킷 구조.


표 4 Moku 기가비트 스트리머 데이터 패킷 필드 정의

분야 기술설명
패킷 개수 컨텍스트 패킷이 전송될 때마다 (모듈로 16) 값이 증가합니다.
스트림 식별자 특정 스트림을 나타냅니다. 컨텍스트 패킷과 데이터 패킷의 스트림 식별자는 일치해야 합니다.
정수 초 타임스탬프 계측기가 배치되거나 마지막으로 재설정된 시점(기준 시점) 이후 경과된 초 수입니다.

샘플 페이로드 형식

데이터 페이로드에는 컨텍스트 패킷과 데이터 패킷 헤더에 설명된 매개변수에 따라 인코딩된 샘플 값 시퀀스가 ​​포함됩니다. 기가비트 스트리머는 데시메이션 모드에 따라 16비트 또는 32비트 표현을 사용하여 실수 값 샘플을 전송합니다. 샘플 패킹은 결정론적이며, 각 데이터 패킷의 샘플 수는 선택된 MTU와 샘플 크기에 따라 결정됩니다.

채널들은 패킷 순서대로 섞여 있습니다. 예를 들어, 2채널 스트림에서 페이로드는 다음과 같이 배열됩니다.

CH1[0], CH2[0], CH1[1], CH2[1], …

이 인터리빙 방식은 기가비트 스트리머+ 4채널 스트림을 포함한 모든 멀티채널 구성에 적용됩니다.

Moku에서 호스트로 데이터 전송

패킷 구조와 스트림 형식이 정의되었으므로, 이 섹션에서는 Moku에서 호스트 컴퓨터로의 데이터 전송 구성에 중점을 둡니다. 기가비트 스트리머는 동일한 스트리밍 인터페이스에서 송신과 수신을 동시에 지원하지만, 이 섹션의 구성 단계는 송신 작업에 대해서만 설명하고 수신 설정은 다음 섹션에서 다룹니다.

전송 모드에서 Moku는 Moku 앱 또는 API에 구성된 고정 네트워크 및 스트림 매개변수를 사용하여 전용 SFP 또는 QSFP 링크를 통해 샘플 데이터를 스트리밍합니다. 다음 단계에서는 전송 경로를 설정하고 호스트가 수신 데이터 스트림을 수신하고 해석할 수 있도록 준비하는 방법을 설명합니다.

Moku 설정(전송)

전송할 신호는 멀티 인스트루먼트 모드를 통해 라우팅하거나, Gigabit Streamer+의 독립형 장비로 사용할 경우 기본적으로 아날로그 입력으로 전송됩니다. 신호가 아날로그 포트를 통해 들어오는 경우, 먼저 입력 범위, 커플링 및 감쇠 설정이 소스 신호에 적합한지 확인하십시오.

기가비트 스트리머 인터페이스에서 지구본 아이콘을 클릭하여 네트워크 매개변수를 구성하십시오. 이러한 매개변수는 Moku 인터페이스의 네트워크 ID와 호스트 컴퓨터의 대상 위치를 정의합니다.

위치 :

  • IP 주소
    SFP/QSFP 포트에 고정 IP 주소를 할당하십시오. 이 주소는 호스트와 동일한 서브넷에 있어야 합니다.
  • UDP 포트
    수신용으로만 사용됩니다.
  • MAC 주소
    Moku에서 사용 중인 특정 SFP/QSFP 포트에 맞게 수정되었습니다.

원격 목적지:

  • IP 주소
    이 값을 호스트 NIC의 IP 주소로 설정하십시오.
  • UDP 포트
    호스트 소프트웨어가 수신할 포트로 설정하십시오.
  • MAC 주소
    Moku에 연결된 호스트 NIC의 MAC 주소를 입력하십시오. 기가비트 스트리머는 ARP를 수행하지 않으므로 이 필드를 명시적으로 설정해야 합니다.

발송 소포:

  • 네트워크 MTU
    지원되는 MTU 크기 중 하나를 선택하십시오. 네트워크 인프라 및 호스트에서 지원하는 가장 큰 MTU를 사용하십시오.
  • UDP 페이로드
    MTU와 표본 크기를 기준으로 계산되었습니다.
  • 패킷당 샘플 수
    MTU와 표본 크기를 기준으로 계산되었습니다.

UDP 포트는 호스트 애플리케이션 내의 목적지를 식별합니다. 사용되지 않는 포트는 기가비트 스트리머 작동에 사용할 수 있습니다. VITA-49 및 관련 VRT 워크플로에서는 관례적으로 4991번 포트를 사용하지만, 반드시 그래야 하는 것은 아닙니다. 기가비트 스트리머는 구성된 포트를 통해 패킷을 전송하거나 수신합니다.

샘플 형식 및 소수점 처리

기가비트 스트리머에는 출력 스트림의 샘플링 속도와 샘플 폭을 설정하는 데시메이션 블록이 포함되어 있습니다. 스트리머로 전송되는 모든 데이터는 패킷화되기 전에 이 블록을 거칩니다. 데시메이션 프로세스는 샘플 모드와 데시메이션 계수를 통해 구성됩니다.

소거 모드

간소화 모드는 각 출력 샘플의 숫자 형식을 설정합니다.

  • 일반 모드 :
    16비트 실제 샘플을 생성합니다.
    다운샘플링은 직접 다운샘플링 방식으로 수행되며, 이때 D번째 입력 샘플은 필터링 없이 그대로 유지됩니다.
  • 정밀 모드:
    32비트 실제 샘플을 생성합니다.
    다운샘플링은 블록 평균화를 통해 수행되며, 각 출력 샘플은 D개의 연속적인 입력 샘플의 평균입니다. 이는 더 낮은 유효 샘플링 속도에서 수치 정밀도를 향상시킵니다.

전멸 계수

데시메이션 계수 D는 입력 샘플링 속도를 줄이는 방법을 설정합니다. 기가비트 스트리머는 다음 두 가지 계수 중 하나를 지원합니다.

  • 2의 거듭제곱(1, 2, 4, 8, 16, 32, …) 또는
  • 16의 배수 (16, 32, 48, 64, 80, 96, …)

유효한 요소 D에 대해, 데시메이션 블록은 다음과 같은 비율로 출력 스트림을 생성합니다.

(유효율(Sa/s) = 입력율(Sa/s) ⁄ D)

네트워크 처리량은 다음과 같습니다.

(스트림 전송률(비트/초) = 유효 전송률(Sa/초) × 샘플 크기(비트/Sa) × 채널 수)

이 계산을 통해 필요한 호스트 측 대역폭이 결정됩니다.

데시메이션을 사용할 때 에일리어싱이 결과적인 신호 대역폭에 영향을 미칠 수 있습니다. 광대역 또는 고주파 신호의 경우, 적절한 데시메이션 및 샘플링 모드 설정을 선택하면 원하는 주파수 성분을 유지하는 데 도움이 됩니다.

호스트 컴퓨터에서 Moku로 데이터 수신하기

센서 에뮬레이션, 폐루프 제어 테스트 및 광대역 파형 재생과 같은 응용 분야에서는 기가비트 스트리머를 수신 모드로 사용하여 외부에서 생성되거나 사전 녹음된 데이터를 Moku:Delta로 전송할 수 있습니다.

수신 경로는 전송 경로와 네트워크 요구 사항이 다릅니다. Moku는 ARP에 참여하지 않고 링크 상에서 자신의 존재를 알리지 않기 때문입니다. 데이터를 전송하는 호스트는 기가비트 스트리머가 예상하는 형식에 맞는 패킷을 구성하여 스트리밍 인터페이스로 직접 전달해야 합니다.

호스트 구성

호스트 인터페이스

Moku에 연결된 NIC의 IP 주소 및 MAC 주소를 포함하여 필요한 호스트 네트워크 매개변수를 다음 명령어를 사용하여 확인하십시오.

ip addr

이 명령은 모든 네트워크 인터페이스와 해당 인터페이스에 할당된 IP 주소 및 하드웨어(MAC) 주소를 표시합니다.

Moku에 직접 연결된 호스트 NIC에 고정 IP 주소를 할당할 수도 있습니다.

sudo ip addr add <sub_net> dev <interface>

sudo ip link set dev <interface> up

이 기능은 선택한 인터페이스에 지정된 서브넷을 구성하고 해당 서브넷으로 향하는 트래픽이 올바른 NIC를 통해 라우팅되도록 합니다.

MTU 구성

기가비트 스트리머에서 사용하는 MTU와 일치시키세요. Moku에서 허용하는 최대 MTU는 1500바이트입니다.

sudo ip link set dev <interface> mtu 1500

MTU 값이 일치하지 않으면 패킷 손실이 발생할 수 있습니다.

정적 이웃 항목(ARP 대체)

Moku의 수신 포트는 ARP 확인 없이 작동합니다. 호스트가 ARP 기반 MAC 매핑을 사용하여 패킷을 전송하려고 하면 패킷이 불완전한 상태로 남아 Moku에 도달하지 못합니다. 따라서 호스트는 Moku로 패킷을 전송할 때 고정 MAC 주소를 사용해야 합니다.

먼저 인접 테이블(neighbor table)을 확인하세요.

ip neighbor | grep <moku_NIC_IP>

불완전한 항목이 나타나면 고정된 항목으로 대체하십시오.

ip neighbor replace < moku_NIC_IP> lladdr <MOKU_MAC> dev <interface> nud permanent

Moku 설정(수신)

기가비트 스트리머는 유니캐스트(point-to-point) 또는 멀티캐스트 전송 방식을 사용하여 데이터를 수신할 수 있습니다. 다음 섹션에서는 각 옵션에 대한 구성 워크플로를 설명하고, 데이터가 각 경우에 올바른 인터페이스와 주소로 전달되도록 필요한 호스트 네트워크 설정 및 기가비트 스트리머 설정을 안내합니다.

지점 간(유니캐스트)

수신 전용 워크플로에서는 로컬 IP, 로컬 UDP 포트 및 로컬 MAC 주소 필드만 관련이 있으며 원격 대상 설정은 사용되지 않으므로 구성되지 않은 상태로 둘 수 있습니다.

기가비트 스트리머 인터페이스에서 지구본 아이콘을 클릭하여 네트워크 매개변수를 구성하십시오. 이러한 매개변수는 Moku 인터페이스의 네트워크 ID와 호스트 컴퓨터의 대상 위치를 정의합니다.

위치 :

  • IP 주소
    Moku의 SFP/QSFP 포트에 고정 IP 주소를 할당하십시오. 이 주소는 호스트와 동일한 서브넷에 있어야 합니다.
  • 멀티캐스트 주소
    자세한 내용은 아래에서 다룹니다.
  • UDP 포트
    호스트는 패킷을 이 포트로 전송해야 합니다. VITA-49.2 규정에서는 4991번 포트를 사용하지만, 전송된 패킷의 목적지 포트와 일치하는 한 어떤 UDP 포트든 유효합니다.
  • MAC 주소
    Moku에서 특정 SFP/QSFP 포트로 수정되었습니다.

원격 대상(수신 모드에서만 사용하는 경우 구성하지 않아도 됨):

  • IP 주소
    선택 사항이며, 호스트 포트의 IP 주소와 일치합니다.
  • UDP 포트
    선택 사항이며, 호스트 소프트웨어가 수신 대기할 포트로 설정할 수 있습니다.
  • MAC 주소
    (선택 사항) Moku에 연결된 호스트 NIC의 MAC 주소를 입력하십시오.

발송 소포:

  • 네트워크 MTU
    지원되는 MTU 크기 중 하나를 선택하십시오. Moku는 최대 1500바이트의 MTU를 지원합니다.
  • UDP 페이로드
    MTU와 표본 크기를 기준으로 계산되었습니다.
  • 패킷당 샘플 수
    MTU와 표본 크기를 기준으로 계산되었습니다.

멀티 캐스트

기가비트 스트리머는 멀티캐스트 스트리밍도 지원하므로 호스트 컴퓨터가 멀티캐스트 IP 주소를 사용하여 하나 이상의 수신기로 데이터를 전송할 수 있습니다. 멀티캐스트를 사용하려면 호스트 운영 체제에서 선택한 멀티캐스트 트래픽을 올바른 네트워크 인터페이스로 라우팅하도록 구성해야 하며, 호스트와 기가비트 스트리머 모두에 동일한 멀티캐스트 주소를 구성해야 합니다.

먼저, 호스트가 멀티캐스트 트래픽을 원하는 네트워크 인터페이스로 라우팅하도록 구성합니다. 예를 들면 다음과 같습니다.

sudo ip route add 224.1.2.0/24 dev enp129s0f0np0

이 명령은 224.1.2.X 범위의 모든 멀티캐스트 트래픽을 네트워크 인터페이스 enp129s0f0np0으로 리디렉션합니다. /24 접두사는 주소의 최상위 비트 중 몇 개가 일치해야 하는지를 지정합니다. 모든 멀티캐스트 주소를 포함하는 더 넓은 범위를 라우팅하려면 224.0.0.0/4를 사용하거나, 특정 멀티캐스트 주소를 대상으로 하려면 /32(예: 224.1.2.3/32)를 사용할 수 있습니다.

다음으로, 멀티캐스트 IP 주소 필드에 224.1.2.3과 같은 원하는 멀티캐스트 IP 주소를 입력하여 기가비트 스트리머를 구성합니다.

마지막으로, 호스트 컴퓨터에서 평소처럼 데이터를 전송하되, 목적지 주소로 구성된 멀티캐스트 IP 주소를 사용하십시오. 기가비트 스트리머는 구성된 인터페이스를 통해 이 멀티캐스트 주소로 전송된 패킷을 수신합니다.

호스트에서 데이터 전송

호스트에서 Moku로 데이터를 전송할 때, 수신되는 데이터 스트림은 패킷 및 데이터 구조 섹션에 설명된 패킷 형식을 따릅니다. 데이터는 컨텍스트 패킷과 데이터 패킷의 순서 있는 시퀀스로 전달되며, 이 두 패킷이 함께 샘플 스트림을 정의하고 전달합니다.

전송 순서는 다음과 같습니다.

  1. 컨텍스트 패킷

데이터 전송은 Moku에서 사용하는 스트림 구성을 정의하는 컨텍스트 패킷으로 시작됩니다. 호스트에서 Moku로의 데이터 전송에서 Moku는 16비트 샘플 데이터를 수신합니다.

  1. 데이터 패킷

컨텍스트 패킷 다음에는 동일한 스트림 식별자를 사용하는 데이터 패킷이 연속적으로 전송됩니다. 이러한 패킷은 연속적인 재생을 유지하기 위해 구성된 샘플링 속도와 일치하는 일정한 속도로 전송됩니다.

  1. 패킷 크기

데이터 패킷은 구성된 최대 전송 단위에 맞게 구성되어야 하며, 그래야 페이로드 크기가 선택된 네트워크 설정과 일치하게 됩니다.

Moku는 수신 데이터를 고정된 샘플링 속도와 패킷 순서대로 처리하며, 속도 적응이나 리샘플링을 수행하지 않습니다. 따라서 호스트 애플리케이션은 데이터 패킷 전송 시 속도 제어 또는 스로틀링을 적용하여 전송 속도가 구성된 스트림 속도와 일치하도록 해야 합니다. 안정적인 패킷 타이밍을 유지하면 기가비트 스트리머가 수신 데이터를 원활하게 처리하고 다운스트림 장비에 영향을 줄 수 있는 오버플로 또는 언더플로를 방지할 수 있습니다.

참고로, Moku 기가비트 스트리머의 출력 연결(보간 블록과 출력 포트 사이)은 Moku 앱을 통하지 않고 수신된 컨텍스트 패킷의 "벡터 크기"를 기반으로 자동으로 연결됩니다. 기가비트 스트리머는 벡터 크기 매개변수에 따라 출력 A부터 시작하여 출력 B 순으로 지정된 개수의 채널을 연결합니다.

I/Q 처리(DIFI 호환성)

Moku 기가비트 스트리머는 VITA-49.2 패킷 구조를 따르며 DIFI와 밀접하게 연관되어 있습니다. 복소수 스트림의 I 및 Q 성분을 두 개의 별개의 실수 값 채널로 해석하여 DIFI 패킷을 처리할 수 있습니다. 복소수 스트림이 수신되면 I 성분은 출력 A로, Q 성분은 출력 B로 자동으로 라우팅됩니다.

수신 데이터 분석

기가비트 스트리머가 유효한 데이터 패킷을 수신하기 시작하면, 이러한 출력은 다중 기기 모드를 통해 다른 기기에 연결하여 검증 및 분석을 수행할 수 있습니다.

예를 들어 다음과 같이 사용할 수 있습니다.

  • 수신된 파형의 시간 영역 검사를 위한 오실로스코프
  • 실시간 주파수 영역 분석을 위한 스펙트럼 분석기
  • 외부 장비 연결을 위한 아날로그 출력

사용 가능한 슬롯 수에 따라 기가비트 스트리머를 동시 시간 영역 캡처, 스펙트럼 모니터링 및 하드웨어 인 더 루프 작동과 결합할 수 있습니다.

문제해결

이 섹션에서는 기가비트 스트리머를 구성하거나 작동할 때 발생할 수 있는 몇 가지 일반적인 문제점을 설명하고, 이러한 문제점을 파악하고 해결하기 위한 구체적인 점검 방법을 제공합니다.

링크가 나타나지 않습니다

물리적 링크 상태가 DOWN 또는 LOWER_DOWN으로 표시되는 경우 다음을 확인하십시오.

  1. 케이블 및 NIC 호환성

케이블이 지원되는 DAC 유형인지 확인하고, NIC가 선택한 회선 속도에서 패시브 DAC를 지원하는지 확인하십시오.

  1. FEC 불일치(QSFP에만 해당)

QSFP 작동에는 다음이 필요합니다. FEC 비활성화됨 호스트 NIC에서.

FEC가 비활성화되었는지 확인하려면 다음 명령을 사용하십시오.

sudo ethtool --show-fec <interface>

  1. 인터페이스 상태

NIC를 활성화하세요:

sudo ip link set dev <interface> up

링크 상태를 확인하세요:

sudo ethtool <interface>

링크 협상이 불가능한 경우, NIC 회선 속도 구성을 다시 확인하고 기가비트 스트리머가 멀티 계측 모드에서 특정 SFP 및 QSFP 포트에 매핑되는 올바른 슬롯에 배포되었는지 확인하십시오.

패킷이 호스트(전송 경로)에 도달하지 못했습니다.

Moku가 데이터를 전송하고 있지만 호스트에서 패킷을 수신하지 못하는 경우:

  1. IP/MAC 설정이 잘못되었습니다.

IP 주소와 서브넷 마스크는 정확히 일치해야 하며, MAC 주소도 정확히 일치해야 합니다.

호스트는 Moku 앱의 원격 UDP 포트로 구성된 것과 동일한 포트에서 수신 대기해야 합니다.

  1. MTU 불일치

호스트 측의 MTU가 Moku에 설정된 값보다 작으면 호스트는 데이터 패킷을 수신할 수 없습니다.

  1. 방화벽/인터페이스 바인딩

수신 애플리케이션이 기본 경로가 아닌 올바른 인터페이스에 바인딩되어 있는지 확인하십시오.

패킷이 Moku(수신 경로)에 도달하지 못했습니다.

가장 흔한 원인은 Moku가 ARP에 응답하지 않아 인접 장치 확인이 실패하는 것입니다.

  1. 불완전한 ARP/이웃 항목 입력

인접 테이블을 확인하세요:

ip neighbor | grep <moku-ip>

입력 내용이 불완전한 경우, 다음 명령을 실행하여 교체하십시오.

ip neighbor replace < moku_NIC_IP> lladdr <MOKU_MAC> dev <interface> nud permanent

SFP 또는 QSFP 케이블을 뽑았다가 다시 꽂으면 이 과정을 반복해야 합니다.

  1. 잘못된 목적지 항구

호스트는 Moku에 정의된 로컬 UDP 포트로 패킷을 전송해야 합니다. 이 필드가 잘못되면 패킷은 아무런 경고 없이 삭제됩니다.

  1. 잘못된 컨텍스트 패킷

출력 포트는 유효한 컨텍스트 패킷이 처음으로 도착했을 때만 연결됩니다. 컨텍스트 패킷 내의 필드 중 하나라도 형식이 잘못된 경우, Moku 앱(버전 4.2 이상)은 구문 분석 오류를 보고하고 해당 출력을 활성화하지 않습니다.

Wireshark와 같은 패킷 검사 도구를 사용하여 다음 사항을 확인하십시오.

    • 컨텍스트 패킷이 존재합니다.
    • 채널 개수가 "벡터 크기"로 올바르게 선언되었습니다.
    • 데이터 너비와 샘플 형식이 유효합니다.
    • MTU가 맞습니다
    • 헤더 필드 형식이 잘못되지 않았습니다.

왜곡되거나 에일리어싱된 신호

Moku로 스트리밍하는 동안 신호가 왜곡되거나 에일리어싱되는 현상이 발생하는 경우 다음 설정을 확인하십시오.

  1. 호스트에서 생성된 스트림의 잘못된 데시메이션

호스트는 컨텍스트 패킷에 명시된 샘플링 속도와 일치해야 합니다.

  1. 잘못된 샘플 포장

2채널 실수 스트림의 경우, 샘플은 다음과 같은 순서로 샘플 단위로 인터리빙됩니다.

CH1[n], CH2[n], CH1[n+1], CH2[n+1], …

이러한 순서를 유지하면 각 채널에 대해 샘플이 정확하게 재구성됩니다. 샘플이 다르게 패킹되면 계단식 파형, 의도치 않은 진폭 변조 또는 반복되는 샘플 패턴과 같은 현상이 발생할 수 있습니다.

  1. 엔디안 방식이 잘못되었습니다

샘플 엔디안은 멀티바이트 값의 처리 방식에 영향을 미칩니다. 데이터 페이로드 해석됩니다. Moku Gigabit Streamer는 다음을 사용합니다. 리틀 엔디안 송신 및 수신 경로 모두에서 페이로드 샘플의 바이트 순서가 중요합니다. 엔디안 방식이 잘못되면 샘플 바이트가 반전되어 파형이 눈에 띄게 왜곡될 수 있습니다.

맺음말

기가비트 스트리머는 Moku:Delta와 외부 시스템 간에 결정론적이고 고대역폭의 인터페이스를 제공하여 샘플 단위로 정확한 데이터 전송을 기기 내부 또는 외부로 직접 수행할 수 있도록 합니다. 이 가이드에 설명된 구성 단계를 따르면 스트리밍 인터페이스는 호스트 기반 캡처, 실시간 재생, 하드웨어 인 더 루프 테스트 등 다양한 워크플로우를 지원할 수 있습니다.

이 시스템은 여러 고속 채널에서 동시 스트리밍을 지원합니다. 최대 6개 채널을 동시에 스트리밍할 수 있으며, 이 중 4개 채널은 실시간 대역폭 75MHz, 나머지 2개 채널은 실시간 대역폭 최대 1.25GHz입니다. 이러한 기능 덕분에 기가비트 스트리머는 타이밍이나 처리량을 저하시키지 않고 까다로운 데이터 수집 및 신호 주입 환경에 통합될 수 있습니다.

고정 속도 UDP 전송 경로를 설정하고, 네트워크 매개변수를 정렬하며, DIFI 표준을 준수하는 VITA-49.2 패킷 구조를 사용함으로써, 기가비트 스트리머는 결정론적 데이터 수집 및 처리를 위한 안정적인 엔드포인트를 제공합니다. 스트리밍된 데이터는 수신 스트림을 중단하거나 수정하지 않고 오실로스코프, 스펙트럼 분석기, 디지털 처리 블록 또는 아날로그 출력과 같은 여러 하위 장비로 동시에 전송될 수 있습니다.

이러한 기반을 바탕으로 기가비트 스트리머는 Moku:Delta와 네트워크 스토리지, 실시간 DSP 파이프라인, 자동 검증 플랫폼, 혼합 신호 테스트베드와 같은 상위 시스템 간의 인터페이스 역할을 할 수 있습니다. 기가비트 스트리머(SFP)와 기가비트 스트리머+(QSFP) 모두 동일한 구성 방식을 적용하여 중간 속도 링크부터 플랫폼에서 지원하는 최고 대역폭 모드까지 설계를 확장할 수 있습니다.

애플리케이션 노트 다운로드

데모 모드에서 Moku를 사용해 보세요

macOS 및 Windows용 Moku 앱을 다운로드할 수 있습니다. 여기에서 확인하세요.


FAQ에 대한 답변을 받으세요

장치 및 계측기에 대한 질문과 답변을 찾아보세요. 기술 자료.


Moku 사용자와 연결

또한 사용자 포럼 새로운 기능을 요청하고, 지원 팁을 공유하고, 글로벌 사용자 커뮤니티와 소통하세요.

기타 권장 어플리케이션 노트

모든 애플리케이션 노트로 돌아가기