4.2 Techniky urýchlenia smerovania

Fyzické prepínače používajú pre urýchlenie preposielania paketov špeciálne techniky, ktoré im umožňuje ich hardvérová realizácia, ako napr. paralelné spracovanie viacerých paketov, asociatívne pamäte (CAM - Content Addressable Memory) a na výkon optimalizované návrhy vo forme obvodov ASIC, FPGA alebo NP.

Tieto možnosti nie sú dostupné pre virtuálne prepínače, ktoré realizujú preposielanie  paketov softvérovo. Postupom času sa však pre urýchlenie preposielania paketov vyvinulo niekoľko riešení. Medzi najznámejšie z nich patria: DPDK, FD.io a VPP.

DPDK

DPDK (Data Plane Development Kit) je súbor knižníc a ovládačov pre
rýchle spracovanie paketov. Je vyvíjaný organizáciou Linux Foundation  a licencovaný pod Open Source BSD licenciou.       DPDK skrýva hardvérové/softvérové špecifiká prostredia prostredníctvom špeciálnej abstrakčnej vrstvy EAL (Environment Abstraction Layer), ktorá poskytuje štandardné programovacie rozhranie pre knižnice, dostupné hardvérové urýchľovače a ďalšie prvky hardvéru a OS (Linux, FreeBSD). DPSK podporuje inštrukčné sady architektúr Intel, IBM POWER8, Ezchip a ARM.

Základom DPDK je knižnica, ktorá umožňuje prijímať a posielať pakety v rámci minimálneho počtu CPU cyklov. Podporuje algoritmy pre rýchle zachytenie paketov (podobné tcpdump).

Open vSwitch môže používať knižnicu DPDK, aby pracoval  úplne v používateľskom priestore.

FD.io

FD.io (Fast data – Input/Output) je projekt univerzálnej dátovej vrstvy pre rýchle dáta. Tvorí ho súbor viacerých projektov a knižníc pre urýchlenie zavedenia flexibilných, programovateľných  služieb poskytovaných na generickej hardvérovej platforme.
FD.io poskytuje platformu, ktorá umožňujem aby služby dátovej vrstvy boli: vysoko výkonné,  modulárne a rozšíriteľné, open-source, interoperabilné a dodávateľsky nezávislé. Základnou časťou FD.io je technológia VPP.

VPP

VPP (Vector Packet Processing) je technológia pre rýchle spracovanie paketov. VPP je open-source verzia CISCO VPP technológie. Spracovanie paketov prostredníctvom VPP prebieha kompletne v používateľskom priestore, pričom sú podporované viaceré architektúry (x86, ARM, Power). Návrh VPP je hardvérovo, kernelovo a implementačnenezávislý (bare metal, VM, kontajner).

Základným princípom VPP umožňujúcim urýchlenie spracovania paketov je spôsob, akým sú spracovaávané pakety. VPP ich nespracovaná jednotlivo ale po skupinách, t.j. VPP najväčší možný vektor (súbor) paketov zo sieťovej IO vrstvy  a následne daný vektor paketov spracuje podľa grafu spracovania paketov (Packet Processing graph).