2007-04-26

Magia w tcp/ip linuxa. Bug czy ficzer?

Z tcp/ip dzieje się coś dziwnego, po odpaleniu skryptu, pierwsze dwa połączenia są poprawnie nawiązane. Natomiast system nie widzi trzeciego połączenia. Syn-ack po sieci śmiga, a jądro z jakichś powodów go nie zauważa.
Netstat pisze:

tcp        0      0 127.0.0.1:60885         127.0.0.1:8081          ESTABLISHED
tcp 0 0 127.0.0.1:8081 127.0.0.1:60885 ESTABLISHED

tcp 0 0 127.0.0.1:60886 127.0.0.1:8081 ESTABLISHED
tcp 0 0 127.0.0.1:8081 127.0.0.1:60886 ESTABLISHED

tcp 0 0 127.0.0.1:60887 127.0.0.1:8081 ESTABLISHED
tcp 0 0 127.0.0.1:8081 127.0.0.1:60887 SYN_RECV


Taka magia, że jest SYN_RECV w jedną stronę a ESTABLISHED w drugą. Kiedyś posiedzę nad tym dłużej i wyjaśnię :)

Oto jak zreprodukować to dziwne zachowanie:
a) Odpal skrypt.
b) Na innej konsoli uruchom
tcpdump -np -i any port 8081

Jak już powiedziałem, z trzecim połączeniem dzieje się magia.

A może ktoś zna racjonalne wyjaśnienie? Jakiś ficzer protokołu tcp/ip czy bug kernela?

POPRAWKA:
Wyjaśniło się. To jest ficzer jajka, wymyślony przez Van Jacobsena. Chodzi o to, żeby w przypadku gdy kolejka się przepełni nie odrzucać połączenia. Host będzie się dobijał dłużej, i możliwe że za którymś razem będzie miejsce dla niego w kolejce.

Ja bym to zaimplementował po prostu dropując pierwszy pakiet SYN, lecz widać z jakichś powodów dropują dopiero ACK.

Aby wyłączyć takie zachowanie można użyć:
 echo 1 > /proc/sys/net/ipv4/tcp_abort_on_overflow


2007-04-19

Web 2.0

Czym właściwie jest web 2.0? Spotkałem się z kilkoma definicjami.

  • Web 2.0 to serwisy społecznościowe, gdzie każdy użytkownik może wpływać na prezentowaną treść. Taka definicja jest chyba najbardziej popularna.
  • Podejście techniczne, gdzie aby utrzymać serwery portali społecznościowych potrzebne są zupełnie nowe rozwiązania dotyczące skalowania serwerowni. Web 2.0 w tym kontekście to nie ludzie i treść, lecz waty, procesory i nacisk na skalowalność.
  • Oddzielenie formy od treści i dowolne łączenie treści. Głównym przykładem może być serwowanie danych jako xml + xslt.


Nmap nse-pcap, próba #2

Właśnie skończyłem testować patch do nmapa, o roboczej nazwie nse-pcap.

Zamiast opisywać jego działanie powiem tylko, że jest po prostu zajebisty.

Wkrótce postaram się opisać jego możliwości.