nespolehlivy prenos pres netcat (DELSI)

Ladislav Vaiz spam na nagano.cz
Čtvrtek Září 23 13:22:59 CEST 2004


> >
> >To by melo byt videt z vypisu programu strace.
> >La'd"a
> >
> Ten mam, co mam hledat?

S tim blokujicim/neblokujicim ctenim jsem to sice prilis nepochopil, ale
uvidite, co proces precetl ze site a co zapsal do souboru.

Zkusil jsem pod debian woody (netcat v1.10):
netcat -l -p 9998 -q 1 < /vmlinuz
netcat localhost 9998 -q 1 > del

md5sum /vmlinuz del
ee8b1b3d885cc7c0fc3f96ea607a0c43  /vmlinuz
ee8b1b3d885cc7c0fc3f96ea607a0c43  del

Pokud vam nefunguje toto, pridejte na zacatek prikazu strace a koukejte na
prikazy:
read(0, "\v\361\25\352\213\210\303z\365\327%\335\360\223\370\33"..., 8192) = 8192
write(4, "\v\361\25\352\213\210\303z\365\327%\335\360\223\370\33"..., 8192) = 8192
select(16, [0 4], NULL, NULL, NULL)     = 1 (in [0])
read(0, "T\'\246L\244#08epT\362\331]\273-\260Dx\244\2373\262v"..., 8192) = 2695
write(4, "T\'\246L\244#08epT\362\331]\273-\260Dx\244\2373\262v"..., 2695) = 2695
select(16, [0 4], NULL, NULL, NULL)     = 1 (in [0])
read(0, "", 8192)                       = 0
close(0)                                = 0
shutdown(4, 1 /* send */)               = 0

Je tam videt, ze prvni strace nacetl 8k bloku dat ze standardniho vstupu,
coz je /vmlinuz. Zapsal je do socketu 4, to je tcp spojeni s druhym
netcatem (na trojce socketu posloucha listen()). Toto je posledni cely
blok, dalsi read uz nacte jen 2695 bytu a posle to same mnozstvi po
siti.

Podobne druhy strace cte ze site (socket 3) a zapisuje do standardniho
vystupu (soubor 1) v tomto pripade presmerovanem do souboru del.
Zkontrolujte hlavne posledni write(1, ..., 2595) = 2695, jestli zapsal
spravny pocet bytu pred zavrenim souboru.

La'd"a


Další informace o konferenci Linux