레이턴시 측정, Packet Capture부터 – 개념과 도구

1.
국제적으로, 일반적으로 Latency를 측정하는 기준은 Tick To Trade입니다. 틱데이타, 시세를 받고 주문을 보낸후 체결을 받은 때까지의 시간입니다. 여기에 또 다른 기준을 정할 수 있습니다. Tick To Order입니다. 시세데이타와 주문데이타의 시간입니다. Signal To Order는 매매전략에서 시그날이 발생한 때와 주문의 시간입니다.

DMA와 관련한 프로그램을 개발한 후 레이턴시 측정을 자주 합니다. ZeroAOS를 기반으로 하여 매매전략시스템을 개발한 후 Loop 환경을 구성합니다. 가상거래소기능을 하는 프로세스를 별도 혹은 전략서버에 설치한 후 체결을 하도록 하는 환경입니다. 과거의 시세 틱데이타를 이용하여 UDP시세를 만들고 주문 및 체결log를 남깁니다. 이를 기준으로 Latency를 측정합니다. Signal To Trade입니다. 이와 같은 방법은 현실적인 한계때문입니다. 다양한 측정기준이 있지만 시세와 관련한 측정은 쉽지 않습니다. 시세를 받는 매매프로그램의 경우 시세를 받을 때마다 log를 남기면 그 자체로 영향을 줍니다. 시험이 아니라 실환경에서 시세레이턴시를 측정하는 것은 더 어렵습니다. 코스콤 시세분배시스템에서 시작한 데이타가 각 금융회사의 코스콤스위치-> (금융회사의 마스터스위치) -> 금융회사의 DMA 스위치 -> DMA 서버로 이어지는 흐름속에서 부분으로 전체를 그릴 수 없습니다. 예를 들어 외국계투자자는 코스콤과 시세계약을 해서 금융회사의 코스콤 스위치 -> 금융회사의 DMA 서버로 이어지는 흐름을 만들 수 있습니다.

Corvil이라는 회사가 있었습니다. Latency Measurement System에 특화한 회사입니다. 지금은 Pico Quantitative Trading입니다. 처음 Corvil의 문서를 보면서 무척 매력적이었습니다. 어떻게 데이타를 수집하여 관리할까 하는 의문을 가졌습니다. 그렇다고 더 고민을 진전하지 않았습니다. 가격을 알아보니까 무척 높은 가격이더군요. 국내 금융회사가 도입할 가능성이 별로 없어보였습니다. 오랜만에 Corvil의 자료를 찾아보았습니다. 어떤 방식으로 데이타를 수집하는지를 확인하니까 Tap을 사용하네요.

TAP (Test Acess Port)은 네트워크 상에서 전송되는 데이터를 full duplex mode에서 패킷의 흐름에 전혀 영향을 주지 않고, 패킷 손실없이 패킷을 모니터링할 수 있는 장비입니다. 비슷한 기능을 하는 SPAN과 TAP을 비교한 글입니다.

TAP – Network Test Access Point
네트워크에 액세스해서 모니터닝 할 수 있는 하드웨어 도구 입니다.TAP은 송/수신 데이터 스트림을 분리된 전용 채널을 통해서 동시에 전송하며, 모니터링 또는 보안장치에 모든 데이터를 실시간으로 전달합니다.

  • TAP은 참조 시간을 가지고100% 정확하게 데이터를 수집하여 포렌식 사운드 데이터 / 증거를 제공합니다.
  • TAP들은 Frame들과 관련된 시간을 변경하지 않습니다. 간격 및 응답시간은 VoIP와 FDX 분석을 포함한 Triple Play 분석에 중요합니다.
  • Fiber TAP들은 100% Passive 방식이며 전원을 가지고 있지 않습니다.
  • 네트워크 TAP들은 IP Address와 MAC Address를 가지고 있지 않아서 해킹될 수 없습니다.

SPAN – Switch Port for Analysis
SPAN (Switched Port Analyzer)라고도 알려진  포트 미러링은 한 포트 (또는 전체 VLAN)의 모든 네트워크 패킷의 사본을 다른 포트로 보내며 패킷을 분석 할 수 있습니다. 패킷 미러는 스위치 리소스를 필요로 하기 때문에 스위치의 스위칭 성능을 저하시킬 수 있습니다.

  • SPAN 세션은 스위치의 정상 작동을 방해하지 않습니다.
  • 스위치에 연결된 모든 시스템에서 원격으로 구성이 가능합니다.
  • 네트워크로의 트래픽 역류를 방지하기 위해 해당 포트에서는 양방향 트래픽을 허용하지 않습니다.

TAP vs SPAN vs Port Mirroring 에 관하여.중에서


Corvil의 기술을 좀더 살펴보니까 FPGA가 있네요. Napatech가 만든 SmartNIC과 Link Capture Software를 결합한 제품입니다.

2.
일반적으로 엔지니어와 트레이더는 레이턴시를 이해하는 방식이 다릅니다. 엔지니어는 숫자로 이해합니다. ‘예전에는 얼마인데, 지금은 얼마이다’식입니다. 반면 트레이더는 체결율입니다. 숫자와 관계없이 체결율이 높으면 빠릅니다. 반대로 체결률이 떨어지면 느려집니다. 저도 이런 이야기를 듣습니다. CPU 클락을 제외한 모든 것이 동일한 서버 두대를 놓고 원인을 분석하려고 하면 난감합니다. 이럴 때 측정이 어렵습니다. Tick To Order를 측정하여야 하는데 이를 하는 방법이 마땅하지 않습니다. 유일한 방법은 Packet Capture입니다.

저비용으로 패킷을 갈무리해서 분석하는 방법이 없을까.. 하는 고민에서 조사를 시작하였습니다. 출발점은 Napatech의 Link Capture Software였습니다. 눈이 간 소프트웨어는 n2disk입니다.

n2disk:10/40 Gbit network traffic recorder with indexing capabilities

관련한 설명을 읽어보면서 SmartNIC만이 아니라 Intel 제품도 지원을 합니다.

Support of Intel 1/10/40Gbit commodity adapters (Intel and Myricom) and FPGA-accelerated NICs (Accolade Technology, Napatech, and Silicom/Fiberblaze).

희망을 보았습니다. Intel NIC은 다양한 가격대가 있기때문입니다. 저장을 하는 것에서 한걸음 나아가서 Packet Capture를 하는 프로그램도 살폈습니다. 10G로 사용하는 Mellanox를 지원합니다.

Support of Accolade, Exablaze, Endace, Fiberblaze, Inveatech, Mellanox, Myricom/CSPI, Napatech, Netcope and Intel (ZC) network adapters.

문서를 보니까 libvma를 설치할 때처럼 같은 Kernel Module을 설치합니다. 별도의 작업이 필요없습니다. pf_Ring을 설치하면 끝이네요. pf_ring은 패킷을 갈무리할 수 있는 프레임워크입니다.

Intel이나 Mellanox가 아닌 SolarFlare를 이용한 방법도 있습니다. 당연히 SolarFlare RNIC이 있어야 합니다.

Download (PDF, 4.1MB)

이상의 도구들은 오픈소스입니다. github에서 확인하실 수 있고 소스를 받아서 사용할 수 있습니다. 다만 저작권을 확인하시길 바랍니다.

ntop
SolarCapture-Nodes

3.
이상을 좀더 깊숙히 들어가보죠.

먼저 Harnessing low-level tuning in modern architectures for high-performance network monitoring in physical and virtual platforms 을 보시면 packet Capture와 관련한 도구들을 분석합니다. PF_RING DNA, PacketShader, netmap, PFQ, Intel DPDK, HPCAP등입니다.


Download (PDF, 3.66MB)

10Gbps 네트워크 트래픽 저장 및 실시간 인덱스 생성은 ETRI논문으로 pf_ring을 자세히 소개하고 있습니다. pf_ring으로 무언가를 구현하고자 하면 읽어보시길 바랍니다.

Download (PDF, 4.87MB)

Latency 측정만에 한정하여 패킷 캡처를 다루었는데 적용하는 분야가 무척 많네요. 대표적인 부분이 침입탐지입니다.

오래전에 썼던 레이턴시 모니터링과 PACKET_MMAP을 보니까 마지막에 자체적으로 Latency Measurement System을 구축해보라고 하였네요. 늦었지만 시험해볼 겸 해서 Homelab에 있는 서버를 이용하여 관련한 작업을 해보려고 합니다. Intel과 Solarflare NIC을 가지고 있어서 ntop과 solarcapture 모두시험 가능할 듯 합니다. 자세한 내용은 다음으로…

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.