Nie jesteś zalogowany | Zaloguj się

Implementation of UDP network stack for Java using ef_vi

Prelegent(ci)
Damian Werpachowski
Afiliacja
MIMUW
Język referatu
polski
Termin
21 stycznia 2025 10:15
Pokój
p. 4060
Tytuł w języku angielskim
Implementation of UDP network stack for Java using ef_vi
Seminarium
Seminarium "DeSeR: Dane, strumienie, rozpraszanie"

We współczesnych serwerowniach istnieje potrzeba bardzo szybkiej komunikacji sieciowej między komputerami. Jednym z takich zastosowań jest zautomatyzowany handel instrumentami finansowymi (takimi jak opcje czy akcje) na giełdzie, gdzie kluczowe jest szybkie reagowanie na dynamicznie zmieniające się ceny. Kluczowym czynnikiem wpływającym na latencję są karty sieciowe. Pod systemami z rodziny Linux standardowo korzysta się z nich za pośrednictwem gniazd sieciowych. Niestety wiąże się to z licznymi wywołaniami systemowymi i przerwaniami, co niesie ze sobą znaczące koszty czasowe. Z tego względu, czołowi producenci wydajnych kart sieciowych udostępniają własne API, które pozwala na bezpośrednią komunikację z kartą, z pominięciem jądra. Jednym z takich API jest ef_vi (skrót od Ethernet Fabric Virtual Interface) od AMD.

Podczas referatu opowiem o swojej pracy magisterskiej, która dotyczy stworzenia biblioteki umożliwiającej korzystanie z protokołu UDP w Javie za pośrednictwem ef_vi pod zastosowania w zautomatyzowanym handlu instrumentami finansowymi. Opowiem przeglądowo o specyfice sieci w giełdowych serwerowniach, problemach wydajnościowych gniazd sieciowych, architekturze kart sieciowych i realizacji protokołów w przestrzeni użytkownika. Następnie przejdę do opisu zaproponowanego rozwiązania i trudności związanych z ef_vi oraz obsługą ARP, ICMP, IGMP, Ethernet i IP. Na koniec przedstawię rozważania nad możliwymi sposobami integracji z Javą (wybór między JNA, JNI, FFI) i interfejsem dla użytkownika końcowego biblioteki.