4.2 Techniky urýchlenia smerovania
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).