Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
Alternatív TCP variánsok vizsgálata nagy sávszélességű, magas késleltetésű kapcsolatokon Orosz Péter, Sztrik János, Che Soong Kim** Debreceni Egyetem Informatikai Kar
[email protected],
[email protected] ** Department of Industrial Engineering, Sangji University
[email protected]
Bevezetés A nagytávolságú adatkommunikációs kapcsolatok fizikai sávszélessége a technológiai fejlődésnek köszönhetően egyre dinamikusabban növekszik, átlépve a LAN környezetben alkalmazott 1Gbit/sec-os átviteli kapacitást. A fizikai sávszélesség növekedése azonban nem elegendő ahhoz, hogy a nagyságrendbeli átviteli teljesítménytöbbletet alkalmazás szinten is érzékelhessük. Tudjuk, hogy nagymennyiségű adatot megbízhatóan TCP szállítási protokoll segítségével továbbíthatunk. Azonban a TCP torlódásvezérlő mechanizmusa komoly korlátot jelent az átviteli teljesítményre a nagytávolságú és nagy sávszélességű kapcsolatokon. A standard TCP torlódásvezérléséből eredő szűk keresztmetszetre egy gyakorlati példával szeretnénk rávilágítani: Egy 100ms késleltetésű, 10Gbit-es kapcsolaton 1500 bájtos standard TCP csomagokat forgalmazunk. Ahhoz, hogy egy TCP adatfolyammal tartósan elérjük a 10Gbit-es fizikai kapcsolat maximális kapacitását, az ablakméretet 121665kB méretűre kellene beállítani, ráadásul a csomagvesztési arány nem lehetne több mint egy torlódás 5 millió csomagonként. A felállított tesztrendszerrel és a benne végzett mérésekkel célunk az volt, hogy megvizsgáljunk az utóbbi időkben megjelent alternatív TCP változatok teljesítményparamétereit és viselkedésüket nagysebességű, magas késleltetésű hálózatokon. Vizsgálatainkat két lépésre bontottuk, az elsőben meghagytuk a TCP protokollhoz kapcsolódó kernel-paramétereket alapértelmezett értékeiken, majd a második lépésben elvégeztük a méréseket finomhangolt paraméter-beállításokkal is. Vizsgált TCP variánsok • • • • • • •
TCP BIC/Cubic (nagy sávszélességű hálózatok: WAN/LAN) TCP Reno (Van Jacobson) TCP Westwood (vezeték nélküli hálózat: bit hiba <> torlódás) Highspeed TCP (HSTCP) Scalable TCP (STCP) (max. ablakméret > 65536) TCP Vegas TCP Hybla (műholdas kapcsolat, magas RTT, nagy sávszélesség)
1
Informatika a felsőoktatásban 2008
Debrecen, 2008. augusztus 27-29.
Nagysebességű TCP variánsok •
• •
A TCP BIC/Cubic a nagysebességű, nagy távolságú kapcsolatokon jelentkező teljesítmény problémára ad megoldást. Ennek megfelelően egyedi ablak-növelő függvényt alkalmaz. Nagyobb dinamikával képes alkalmazkodni a rendelkezésre álló sávszélességhez, anélkül, hogy rontaná a TCP fairness tulajdonságát. Bináris kereső algoritmus alkalmaz, mellyel logaritmikusan növelhető az ablakméret. A Westwood algoritmus a nyugta-folyamból próbál a kapcsolatra vonatkozó információt gyűjteni, miáltal pontosabb torlódási-ablak meghatározást érhető el. HSTCP módosított válaszfüggvénye kizárólag nagy ablakméret esetén érezteti hatását, sűrű torlódásos környezetben klasszikus TCP módban működik. A HSTCP különválasztja a válaszfüggvény módosításától a nagy kezdeti ablakméretet megvalósítását, mivel ahhoz közvetlen visszajelzésre lenne szükség a kapcsolatban közreműködő minden forgalomirányítótól, ellenkező esetben magas kockázatot hordozna csomagvesztés tekintetében.
TCP BIC/Cubic
A középső, lineáris szakasz ideje alatt az egyidejű TCP kapcsolatok versenyezhetnek a rendelkezésre álló sávszélességért: teljesül a fairness kritérium.
Mérési környezet • • • • • • • • •
FTP szerver 1Gbit/sec LAN kapcsolattal. 1Gbit/sec gerinc sávszélesség Szoftver-környezet: OS: Linux – Fedora Core 7, kernel v2.6.20-1 Forgalom generátor: Iperf v2.0.2 Forgalomelemző eszközök: Wireshark v0.99.5, tcpdump Mérési intervallum: 30 sec. Egyidejű TCP kapcsolatok száma: 1 (egyirányú) Alapértelmezett és módosított TCP kernel-paraméterek Módosítható torlódásvezérlés (sysctl)
2
Informatika a felsőoktatásban 2008 •
Debrecen, 2008. augusztus 27-29.
Forgalom-karakterisztika: generált, folyamatos flow
BDP (Bandwidth Delay Product) Átviteli teljesítmény számítása az aktuális ablak- és puffer-méretek, valamint az adott küldési ablakhoz tartozó RTT ismeretében:
Torlódás-korlátozott átvitel: alacsony torlódási ablakméret Puffer-korlátozott átvitel: alacsony küldő vagy fogadó puffer-méret Debrecen-Budapest kapcsolat késleltetése (RTT): ~4.4ms Gerinckapcsolat maximális fizikai sávszélessége: 10Gbit/sec A következő szabály alkalmazásával meghatározhatóak a fogadó oldalon kívánatos optimális TCP puffer méretek a B x D szozat ismeretében. A képletben a sávszélesség megadásakor a két hálózati végpont közötti összeköttetés legalacsonyabb sávszélességű szegmensét vesszük alapul. (A mi esetünkben az 1Gbit/sec-os access kapcsolat a legszűkebb keresztmetszet.) Kernel paraméterek: Fogadó TCP puffer mérete: >= (RTT x BW) R= 0.0044 x 1Gbit = ~550Kbyte (BDP) Konfigurációs példa a Linux kernel TCP paramétereinek módosítására: /sbin/sysctl -w net.ipv4.tcp_congestion_control=bic echo "65536 131072 16777216" > /proc/sys/net/ipv4/tcp_mem
TCP átviteli teljesítmény Default: alapértelmezett TCP kernel-paraméterek, a kernel határozza meg rendszerindításkor a változók értékeit. Tuned: tcp_mem, tcp_rmem, tcp_wmem, tcp_app_win, tcp_sack, tcp_wmax, tcp_rmax kernelparaméterek módosított, finomhangolt értékekkel.
BIC
Cubic
Reno
Vegas
HTCP
3
Westwood
Scalable
Hybla
Informatika a felsőoktatásban 2008 TCP paraméterek
Debrecen, 2008. augusztus 27-29.
Maximális átviteli teljesítmény (Mbit/sec)
Default
306
302
284
132
304
289
298
287
Tuned
549
552
575
243
608
606
539
-
kByte
tcp_mem
tcp_wmem
tcp_rmem
38912 Default 51882 77824 65536 131072 Tuned 16777216
4096 16384 1660224 4096 131072 16777216
4096 87380 1660224 4096 174760 16777216
tcp_app_win tcp_sack
wmem_max rmem_max
31
1
131071
131071
15
1
16777216
16777216
Eredmények A klasszikus Reno torlódásvezérlés korlátai: alacsony hatékonyság magas BDP értékű hálózatokon, 64K maximális ablakméret, nincs szelektív nyugtázás (SACK). Számos TCP variáns látott napvilágot az elmúlt pár évben, jellemzően mindegyiket egy-egy jól meghatározott forgalom- és kapcsolattípusra tervezték, ezért univerzális TCP mechanizmusként nem sikerült felváltani a jelenleg is alapértelmezett TCP-Reno változatot. Ennek következtében a legoptimálisabb átviteli teljesítményt akkor kapjuk, ha az adott hálózati paraméterek, valamint forgalom-karakterisztika ismeretében választjuk ki a megfelelő torlódásvezérlő mechanizmust, valamint az alapértelmezett kernel-paramétereket hangoljuk a forgalom karakterisztikája alapján: sávszélesség, késleltetés, egyidejű TCP kapcsolatok száma, csomagvesztés, forgalom jellege, teljesítmény vs. fairness. A magas sávszélesség-késleltetés szorzatú kapcsolatokon a Reno és Vegas lassú ablaknövelő függvénye nem eredményez hatékony sávszélesség kihasználást, ezen kívül tovább rontja teljesítményüket a 64kB-ra korlátozott maximális ablakméret. A mérési eredményekből az is megállapítható, hogy a BIC, Cubic és HSTCP mechanizmusok nem megfelelő kernel-paraméter beállításokkal átlag alatti átviteli teljesítményt eredményeznek. A Westwood algoritmus működéséből adódóan alacsony maximális ablakméret (85kB) esetén is hatékony lehet bizonyos forgalmi szituációkban.
Megoldás TCP kernel-paraméterek dinamikus szabályozása: minden kiépülő TCP kapcsolathoz karakterisztikájának megfelelő (útvonal sávszélessége, késleltetés, konkurens kapcsolatok, forgalom jellege) egyéni puffer méretek, illetve torlódásvezérlő mechanizmus beállítása. Window-based vs. Rate-based átvitelvezérlés •
Window-based: a maximális nyugtázatlan adatmennyiség hangolása (különböző TCP variánsok)
4
Informatika a felsőoktatásban 2008 •
Debrecen, 2008. augusztus 27-29.
Rate-based: Csomagok közötti időtartam szabályozása küldésnél (UDT)
Irodalom • • •
Allman, M. – Paxson, V. – Stevens, W.: TCP congestion control, RFC 2581 (RFC2581), http://www.faqs.org/rfcs/rfc2581.html TCP Westwood reference pages: http://www.cs.ucla.edu/NRL/hpi/tcpw/ TCP BIC/Cubic reference pages: http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/index_files/Page703.htm
5