nespolehlivy prenos pres netcat (DELSI)

oldfrog.linux na volny.cz oldfrog.linux na volny.cz
Čtvrtek Září 23 14:32:16 CEST 2004


Ladislav Vaiz wrote:

>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

Vysilaci strana:
----------------

# tail data.send
bc9169c597149adc1f63c3235304eeed  -
3092b241b19475fd0f25d7c9871933e9  -
f93bed37d6b72588b6940feb7bab2ad5  -
a6125ae4b59764f5b54277e3725831ab  -
50218729fc40fa62f25c1cb9e682c67b  -
041041c33fb340bb5fd1f04466d5c86d  -
74b677899f3d4b5d240f3b46f905b5ef  -
72bb946607a12544d2a510e3d9f71911  -
a17c3f38156452b35916f678e9e225ec  -
85a5abf923ebf4307911a41228820dcd  -

# strace -o strace.send netcat -l -p 9998 -c < data.send;

# tail strace.send
read(0, "3e463a1b  -\n8176806a804887283b53"..., 1024) = 1024
write(4, "3e463a1b  -\n8176806a804887283b53"..., 1024) = 1024
select(5, [0 4], [], NULL, NULL)        = 1 (in [0])
read(0, "dd92eb5df25c717812073a9780ae  -\n"..., 1024) = 860
write(4, "dd92eb5df25c717812073a9780ae  -\n"..., 860) = 860
select(5, [0 4], [], NULL, NULL)        = 1 (in [0])
read(0, "", 1024)                       = 0
shutdown(4, 2 /* send and receive */)   = 0
close(4)                                = 0
exit_group(1)                           = ?


Prijimaci strana:
----------------

# tail data.recv
b931ac550ae1dcb22070bafaf9c1e4ac  -
8acade83ecad509f6139a05d75f595c5  -
0593a6f1595ceb16683d372db6542558  -
90b9022e16a25ed700e69682662a02e2  -
4d38a1c14538ef3bc0523a6e0a75e2ad  -
c94148b79f1e353d14adfc95c256f6e1  -
6072b9dd88e50f57c9f037e530826f6c  -
f9544f8f1830dc029e075386531dbe36  -
3f930d5084c0bc19c569c395fc31bfe7  -

# strace -o strace.recv netcat localhost 9998 -c > data.recv;

# tail -n 16 strace.recv
read(3, "91fb43ec2907  -\n05222d289a086b99"..., 1024) = 1024
write(1, "91fb43ec2907  -\n05222d289a086b99"..., 1024) = 1024
select(4, [0 3], [], NULL, NULL)        = 1 (in [3])
read(3, "68684a90a9540833038c3bf8ca066e45"..., 1024) = 1024
write(1, "68684a90a9540833038c3bf8ca066e45"..., 1024) = 1024
select(4, [0 3], [], NULL, NULL)        = 1 (in [3])
read(3, 0xbfffe450, 1024)               = -1 ECONNRESET (Connection
reset by peer)
dup(2)                                  = 4
fcntl64(4, F_GETFL)                     = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat64(4, {st_mode=S_IFCHR|0720, st_rdev=makedev(136, 1), ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0x40000000
_llseek(4, 0, 0xbfffe190, SEEK_CUR)     = -1 ESPIPE (Illegal seek)
write(4, "read(net): Connection reset by p"..., 36) = 36
close(4)                                = 0
munmap(0x40000000, 4096)                = 0
exit_group(1)                           = ?


Vysilaci strana tedy neposle ani cely soubor. Skonci zrejme predcasne,
nevim proc.

-- 
------------------------------
Ondrej Nemecek alias 'OldFrog'

tel (domu):     241766035
tel (prace):    222090711
tel (mobil):    775046246
icq:            250163477
------------------------------




Další informace o konferenci Linux