Erőforrás-hatékony TCP-stack tervezése és megvalósítása FPGA alapú eszközökre

OData támogatás
Konzulens:
Dr. Varga Pál
Távközlési és Médiainformatikai Tanszék

Az alkalmazás-rétegbeli funkciókkal ellátott maghálózatok (pl. az LTE Evolved Packet Core) fejlesztéséhez és üzemeltetéséhez is fontos tudnunk, hogy azok eszközei milyen mennyiségű forgalmat képesek biztonságosan kezelni. Ezért a funkcionális és integrációs tesztek mellett egyik legfontosabb vizsgálat a terheléses, vagy tömeg-tesztelés.

Napjaink legnagyobb internetes forgalmát – beleértve a mobil adatforgalmat is – a Facebook és Youtube alkalmazások generálják. Ezen felhasználói szokások kialakulását a szolgáltatás mögötti minőségbiztosítás (QoS) és a felhasználói élmény (QoE) erősítette meg. A megbízható adatátvitelt nyújtó TCP [1] protokoll jelen esetben nagyban támogatja az ezen szolgáltatások nyújtásához szükséges transzport-funkciókat. A hatékony tömeg-tesztelőnek tehát TCP alapú forgalmat kell tudnia generálni és kezelni. A párhuzamos TCP-folyamok állapotának követése azonban nagyon erőforrás-igényes feladat: ez esetben legalább tízezres mennyiségű párhuzamos folyamot kell tudni kézben tartani, nagy sebességgel. Ehhez hardveres támogatásra van szükség: az FPGA-alapú [2] (Field Programmable Gate Array), alacsony szinten programozható hálózati eszközöket hasonló alkalmazásokban már bizonyítottak.

A nagy hálózati sebesség melletti magas párhuzamosítási igény miatt a hardveres elérésű protokoll megvalósítás a célszerű, mivel ez késleltetés-mentes, és megbízható adatátvitelt is képes biztosítani. A feladat tehát egy olyan TCP forgalom-generátor modul megtervezése és megvalósítása, amely képes egy FPGA-n belül, sok példányban működni. Sajnálatos módon a TCP-kapcsolat létrehozásához és fenntartásához minden szempontból viszonylag nagy erőforrás-igény tartozik. Ennek oka a sorrendhelyes és csomagvesztés-mentes adatátvitel igénye. Ez komoly nehézségeket okozhat nagy mennyiségű párhuzamos kapcsolat forgalmának generálásakor.

Dolgozatomban egy XILINX VIRTEX-5 [3] családba tartozó FPGA-ra fejlesztett TCP implementációt mutatok be. A munka során nagyon fontos volt, hogy a TCP szabvány [1] által meghatározott legfontosabb funkciók le legyenek fedve. Értelemszerűen, a kezdeti kihívást a „felesleges” funkciók megtalálása és elhagyása nyújtotta. Ennek eredményeképp egy, a fenti célhoz illesztett, lecsupaszított TCP-variánst definiáltam, terveztem, és valósítottam meg.

[1] RFC 7414 - A Roadmap for Transmission Control Protocol (TCP) Specification Documents, 2015, https://tools.ietf.org/html/rfc7414

[2] A Xilinx FPGA gyártó hivatalos oldala az FPGA-ról: http://www.xilinx.com/training/fpga/fpga-field-programmable-gate-array.htm

(2016. szeptemberi állapot)

[3] A Xilinx által kiadott Virtex 5 FPGA család dokumentációja: http://www.xilinx.com/support/documentation/data_sheets/ds100.pdf

(2016. júliusi állapot)

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.