Hlavní navigace

Názor k článku Happy Eyeballs – aby uživatelé při výpadcích netrpěli od Yenya - Tady je otázka, co takhle rozumíte tím "TCP...

  • Článek je starý, nové názory již nelze přidávat.
  • 19. 4. 2012 14:15

    Yenya (neregistrovaný) ---.ip6.fi.muni.cz

    Tady je otázka, co takhle rozumíte tím "TCP stackem". Obvykle se tím rozumí jádro, které vystavuje aplikacím nějaké API (typicky BSD sockets). Vše nad tím už je aplikační část.

    Ale asi by šlo tohle dát do getaddrinfo(3), že by se záznamy vracely nikoli podle staticky nastaveného gai.conf, ale podle nějakého dynamického nastavení. Šlo by to cachovat podobně jako třeba funguje nscd(8).

    Akorát je otázka, jak ty informace do tohoto zdroje ukládat, nejlépe tak, aby to neumožňovalo zneužití tím, že jedna podvratná aplikace do té cache uloží něco, co jiným bude vadit. Nebo že nějaká aplikace bude schopna z odezvy getaddrinfo(3) usuzovat na to, na jaké stroje v poslední době přistupovala jiná aplikace.

    Jádro by asi muselo umět nějak předávat informace o úspěšných voláních connect(2) nebo tak něco. Nějaký démon by to sbíral a cpal do té cache. Tohle aspoň v Linuxu jednoduše nejde (šlo by přes perf nebo systemtap).

    Zejména ten bezpečnostní aspekt je problematický. A to jsem vůbec neřešil otázku, že u většiny aplikací by bylo třeba triviální volání connect(2) nahradit neblokujícími voláními, a čekáním na některé z nich pomocí select(2)/poll(2)/e­poll(2). Nebo vláknem, což zase není vhodné pro všechny situace.

    -Yenya, http://www.fi.muni.cz/~kas/blog/