Portál AbcLinuxu, 4. května 2025 09:19
V blízké době, snad už ve verzi 2.6.16, by se měla v Linuxu objevit nová technologie pro meziprocesovou komunikaci - TIPC (Transparent InterProcess Communication). Byla navržena hlavně pro počítačové clustery, ale díky svým zajímavým vlastnostem by se mohla prosadit i jinde.
Můžeme se oprávněně ptát: k čemu další komunikační technologii? Vždyť už teď máme hromadu metod (roury, unixové sockety, TCP/IP, RPC, DBUS, sdílenou paměť, mqueue...), tak proč chtít nějakou další? Ano, máme hodně metod, ale žádná není ani dostatečně rychlá, ani dostatečně univerzální pro použití v distribuovaných výpočtech a podobných aplikacích.
Nebudu TIPC popisovat podrobně, k tomu slouží dokumentace. Spíš zdůrazním charakteristické vlastnosti. Především je důležité, že TIPC funguje velice podobně jako TCP/IP, s nímž může koexistovat, a dokonce ho v některých případech používat jako vrstvu nižší úrovně. V závislosti na dostupných možnostech však používá i jiné, rychlejší metody (síťové protokoly 2. vrstvy, sdílená paměť apod.), aby byla komunikace co nejefektivnější.
Adresace je založena na čistě logické bázi (logické porty), bez fyzického rozlišení. Obsahuje typ procesu a jeho instance (64-bitový identifikátor). Více procesů může sdílet stejnou adresu, proces se pak vybírá algoritmy round-robin nebo nejbližší nejdřív. Naopak může mít jediný proces přidělenu celou posloupnost adres. Struktura komunikační sítě je víceúrovňová (zóny, clustery a uzly), nesouvisí s adresacemi typu IP apod.
TIPC podporuje jak spojovou (streamovou) komunikaci, tak i datagramy (ovšem s kontrolou správného doručení). Oproti jiným technologiím má nižší režii při navázání spojení (žádné "prázdné pakety").
Technologie TIPC vznikla v laboratořích firmy Ericsson, je šířen pod licencí BSD (resp. BSD/GPL) a existuje její implementace na více platformách. Nyní prochází procesem začleňování do linuxového kernelu.
Nemohu ovšem nechat bez povšimnutí ani nevýhody. Podpora většího množství nízkoúrovňových metod komunikace se nepříjemně odráží na složitosti (a tedy i velikosti) implementace. Modul do jádra Linuxu má cca 170 KB, což není zrovna málo. Dále je tu problém s logickými porty a jejich použitím při hledání fyzického stroje v síti TIPC (může se dynamicky měnit) - přináší dodatečnou režii spojenou se samotnou existencí sítě. A konečně asi v současné době největší nevýhoda: některé části dosud nejsou implementovány, zejména v bezpečnostní oblasti.
Netvrdím, že je TIPC všelék, který vyléčí všechny komunikační neduhy. Ale minimálně pro distribuované výpočty by to mohl být výrazný přínos. Navíc si myslím, že TIPC může najít své místo i v dalších oblastech, kam by se jeho vlastnosti hodily.
Tiskni
Sdílej:
nvidia
:)
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.