rfc9000

Vajon mikor fog beépülni Linux kernel szintre?

... minden ami régen faék egyszerűen volt megoldva, idővel olyan túlbonyolítottá válik ...

Hozzászólások

Szerintem 5 éven belül, szurkoljunk neki. De a másik akadály a hardver offload hiánya, arra nem tudom mi lesz a megoldás. Csak elő ne jöjjön valaki egy még jobb protokollal, aztán ezt is dobhatjuk ki.

HTTP/* rétegnél vágható a dolog. Eddig stream + ioctrl. A QUIC alatt datagram.

Innentől ezeket átnézve:
  https://images.ctfassets.net/ee3ypdtck0rk/7LvJpY7ZB8GfikS2AQMujY/88856d…
  https://images.ctfassets.net/ee3ypdtck0rk/2k3XMGTy7JNERDEaoboj36/19beff…

Az alábbi PDF 20. oldalán levő TLS Offload-ot végiggondolva a QUIC állapotgépe is lerakható.
  https://papers.freebsd.org/2019/EuroBSDCon/shwartsman_gallatin-Kernel_T…

Lépések, szintek:
   1. célalkalmazásból kimegy a QUIC egy letisztult LIB-re. Folyamatban.
   2. kernelbe kerül a QUIC, ahogy ma már a TLS-t is képes a Linux kernel kezelni. Userspace: sycall().
   3. kernelbeli QUIC-et implementálják a NIC-be. Kernel csak adatátrakást csinál DMA-val. Userspace: változatlan sycall().

Jelenleg ami quick-et használ, az maga kezeli le és közvetlenül az IP csomagokkal bűvészkedik?

Szerintem ez pont az a protokoll aminél nincs szükség kernel támogatásra. Kb. mindenki aki webezik, youtubeozik az az aktuális legújabb verziót használja. Felületesen foglalkoztam a témával de legjobb tudomásom szerint a szerver oldal is userspace, legalábbis amiket találtam implementációkat githubon mind az volt. Amiért (szerintem) jó ez userspaceben, az az hogy ezt a protokollt főleg webezéshez találták ki, ami nem eszi túlzottan a sávszélességet viszont fontos hogy alacsony legyen a latency és ne szakadjon meg a kapcsolat akkor sem ha épp váltogatsz wifi és mobilnet között. A linux patcheket követve a Googlenél (kb. onnét indult a QUIC) sincs szándék kernel implementációra, de - nagyon helyesen - mindig jönnek kisebb-nagyobb optimalizációk az UDP stackhez, ezek egy része specifikusan QUIC miatt. Pl. ami most fontos lenne és még nincs, az egy rendes hw offloados packet pacing. A QUIC is BBR szerű (pontosabban BBR2) congestion control algoritmust használ aminek a lényege, hogy nem tölti meg a buffert és úgy is képes magas kihasználtságot elérni. Ehhez viszont kell packet pacing, ami jelenleg csak FQ qdisc-el megy. Ez pedig full szoftveres és bár optimalizált, sok sessionnél nem a legjobb, főleg ha vannak mellette pacelt TCP kapcsolatok is.