Erőforrás-hatékony TCP-stack tervezése és megvalósítása FPGA alapú eszközökre
Erőforrás-hatékony TCP-stack megvalósítás FPGA alapú eszközökre
Róth Ádám Gábor, Vill., rothadamgabor@gmail.com
Konzulens: Varga Pál, Távközlési és Médiainformatikai Tanszék, pvarga@tmit.bme.hu
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)
szerző
-
Róth Ádám
Villamosmérnöki szak, alapképzés
alapképzés (BA/BSc)
konzulensek
-
Dr. Varga Pál
egyetemi docens, Távközlési és Mesterséges Intelligencia Tanszék -
Tóthfalusi Tamás
Doktorandusz, Távközlési és Mesterséges Intelligencia Tanszék