MPTCP - hamarosan érkezik

 ( SPYFF | 2019. június 18., kedd - 12:19 )

A Linux TCP stack nagyjából 80000 sor kód és nagyobb változtatások elég ritkán érik. Most viszont hosszú idő óta a legnagyobb (kb. 4000 sor) pull request jött, ami az MPTCP-t tartalmazza: https://patchwork.ozlabs.org/cover/1117531/. Két éve írtam már itt a protokollról: https://hup.hu/node/155046 [lentebb még pár infó...]

Röviden arról van szó, hogy több hálózati kártya esetén csinál több TCP subflow-ot és ezeken képes egyszerre forgalmazni. Applikációkat nem szükséges módosítani, sima TCP socket alatt a kernel elvégzi az adatok felosztását subflowok között, jó esetben a felhasználó csak azt látja, hogy gyorsabb az átvitel. Az első verzió 2009 környékén készült el, ezt fejlesztették utána, igaz cserélődtek is az emberek. Ez egy eléggé széthekkelt verzió (jelenleg is fejlesztik, feature complete de túl sok dolgot módosít a kernelen ahhoz hogy mergelhető lehessen, 0.94 verziónév alatt található meg a neten). Ettől függetlenül az eredeti fejlesztők és pár Inteles mérnök elkezdtek egy elegánsabb verziót fejleszteni, ami szinkronban van a net-next tree-vel és csak a core funkciókat tartalmazza. Ez az utóbbi 3 év terméke, mostra jutott olyan állapotba, hogy mint RFC patchset be tudták küldeni. Stabil kernelben nem tudom mikorra kerül be, szerintem kell még neki nagyjából fél év. Akit érdekel a dolog addig persze ki tudja próbálni, az MPTCP kernel tree gitje elérhető.

szerk.: pontosítanék, egyelőre sima TCP socketek működése nem módosul, ha MPTCP socket van létrehozva az alkalmazásban, az képes sima TCP fallbackre, ha a peer nem tud MPTCP-t.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Az IP cím különböző lehet NIC-enként?

Igen és az alapértelmezett átjárójuk is lehet különböző. Ha van két szolgáltatód és mindkettő ad sima DHCP-s routert, ha a távoli peer tud MPTCP-t akkor kész is vagy, egyszerre megy sebesség növelés vagy failover több szolgáltatóval. Ha a távoli peer nem tud MPTCP (ez manapság még esélyes :-) ) akkor érdemes valami proxy-t beiktatni ami tud MPTCP-t.

Kár, hogy VPN-hez nem ideális a TCP, oda pont jól jönnének ezek a képességek.

GloryTUN talán képes ilyesmikre UDP-vel, persze sávszélesség növeléstől sokat nem kell várni, de failovert tud.

Istenem, mennyi bug lesz ebben az első húsz évben! :)

+1, sőt majd erre fognak hibákat az elmúlt 10 évből is...

QUIC-ről mi hír Linux fronton?

Nem lesz. Ez nagyjából 90%, lesz pár UDP gyorsító meg okosító patch, de a QUIC marad userspace protokoll. QUIC titkosítását viszont egyes hálókártyák kísérleti jelleggel már tudják offloadolni, így tényleg minimalizálható az overhead CPU oldalról, ahol erre nagy szükség van. Azt tudom még elképzelni, hogy UDP működést lehet majd eBPF-el programozni és nem kizárt hogy ezzel valaki meg tud majd oldani pár core QUIC funkciót.